Accessing the Media Manager
Click the “Manage Media” button on the main panel to open the media management interface (MainPanel.java:402-410).
The button is located at the bottom-right of the main panel (590, 500).
Media Library Table
The central feature of the Manage Media panel is a sortable table displaying all media files (ManageMediaPanel.java:698-719).
Table Columns
The table displays six columns of information:| Column | Description | Source |
|---|---|---|
| Status | Checkmark (✓) if file exists both locally and on server, download icon (⬇) during download | ManageMediaPanel.java:109 |
| File Name | Name of the media file | Local file or server metadata |
| Type | ”Video” or “Audio” classification | Detected from MIME type |
| Size | File size in B, KB, MB, or GB | Local files only |
| Date Modified | Last modified date in “dd-MM-yyyy HH:mm:ss” format | Local files only (DownloadedMedia.java:80-83) |
| Source | ”Local”, “Server”, or “Both” | Based on file location |
Auto-Refresh
The media table automatically refreshes when the panel becomes visible (ManageMediaPanel.java:272-279):
Search and Filter Functionality
Text Filter
The text filter field provides real-time search across all media filenames (ManageMediaPanel.java:283-307).
Enter search text
Type any text into the filter field (located at coordinates 260, 60).The search is case-insensitive and matches partial filenames.
Type Filter ComboBox
The type filter dropdown allows filtering by media type (ManageMediaPanel.java:728-735):
- All files - Show all media (default)
- Video - Show only video files
- Audio - Show only audio files
ManageMediaPanel.java:752-756):
Supported File Types
The application recognizes the following media formats (ManageMediaPanel.java:629-653):
Video formats:
.mp4,.webm,.mkv,.avi,.flv,.mov
.mp3,.m4a,.opus,.wav,.flac,.aac
Quick Actions
The Quick Actions list provides fast access to common operations (ManageMediaPanel.java:350-357):
- Play - Open the selected file in default media player
- Open Folder - Open the download directory in file explorer
- Download - Download a server file to local storage
- Delete - Remove a local file from disk
Using Quick Actions
Right-Click Context Menu
Right-clicking on any file in the table opens a context menu with all available actions (ManageMediaPanel.java:309-347).
Context Menu Options
The context menu includes:Play
Play
Opens the selected local file using your system’s default media player.Implementation:
executeAction("Play") → playSelectedFile()Availability: Local files onlyOpen Folder
Open Folder
Opens the download directory in your file explorer.Implementation:
executeAction("Open Folder") → openCurrentFolder()Availability: Always availableDownload
Download
Downloads a server file to your local download directory.Implementation:
executeAction("Download") → downloadSelectedFile()Availability: Server files only (shows info message for local files)Delete
Delete
Permanently deletes a local file from disk after confirmation.Implementation:
executeAction("Delete") → deleteSelectedFile()Availability: Local files onlyContext Menu Activation
The context menu appears on right-click (popup trigger) and automatically selects the row under the cursor (ManageMediaPanel.java:328-346):
Playing Files
The Play action opens media files using your system’s default application (ManageMediaPanel.java:415-445).
Play Workflow
Select a local file
Click on a file with Source = “Local” or “Both”.Server-only files cannot be played directly.
Opening the Download Folder
The “Open Folder” action opens your download directory in the system file explorer (ManageMediaPanel.java:447-458).
This uses the same Desktop API:
currentDirectory is read from config.txt (ManageMediaPanel.java:576-596):
Downloading Server Files
Files stored on the server (Source = “Server”) can be downloaded to local storage using a SwingWorker (ManageMediaPanel.java:465-504).
Download Process
Background download
A SwingWorker downloads the file without blocking the UI (
ManageMediaPanel.java:477-496):If you select a file that’s already downloaded locally, you’ll see: “This file is already downloaded locally”
Deleting Files
The Delete action permanently removes local files from disk after confirmation (ManageMediaPanel.java:510-539).
Delete Workflow
File deletion
If you click Yes, the file is deleted using Java’s File API (
DownloadedMedia.java:99-105):Server File Deletion
Server files cannot be deleted from the Manage Media panel:File Size Formatting
Local files display formatted file sizes using a human-readable format (ManageMediaPanel.java:660-672):
1024bytes →1.00 KB5242880bytes →5.00 MB1073741824bytes →1.00 GB
Media Type Detection
The Type column displays “Video”, “Audio”, or “Other” based on MIME type detection.Local Files
Local files use Java’sFiles.probeContentType() to detect MIME type (DownloadedMedia.java:66-76):
DownloadedMedia.java:87-95):
Server Files
Server files use the MIME type provided by the API (ManageMediaPanel.java:675-686):
Duplicate Detection
The media library intelligently detects when the same file exists both locally and on the server (DownloadedMedia.java:114-125).
Matching Algorithm
Files are matched using three criteria:- Server ID match:
this.serverId == serverMedia.id - BLOB GUID match:
this.serverBlobGuid.equals(serverMedia.blobNameGuid) - Filename + MIME type match:
this.fileName.equals(serverMedia.mediaFileName) && this.mimeType.equals(serverMedia.mediaMimeType)
- Status column shows: ✓
- Source column shows: “Both”
- The file is only listed once in the table
Server Media Integration
The Manage Media panel integrates with a server API to display and download remote media (ManageMediaPanel.java:48).
Media Polling
The panel uses aMediaPollingComponent to periodically fetch new media from the server (ManageMediaPanel.java:767-778):
New Media Notifications
When new media is detected on the server, it’s automatically added to the table without requiring a manual refresh (ManageMediaPanel.java:191-242).
Sorting and Organization
The table supports automatic sorting on all columns (ManageMediaPanel.java:708):
When rows are sorted, the application correctly maps view row indices to model row indices using
convertRowIndexToModel() to ensure actions are performed on the correct file.Keyboard Shortcuts
- ESC - Return to main panel (
ManageMediaPanel.java:542-555)
Exit Button
The Exit button returns you to the main download panel (ManageMediaPanel.java:724).
Next Steps
Download More Media
Return to the main interface to download more videos
Configure Settings
Customize download directory and other preferences

