This project is a Command Line Interface (CLI) application for Linux, written in C/C++, that serves as a basic media files and video files browser/player.
-
Universal Accessibility:
- Runs from any directory on your computer.
- Supports external devices (e.g., USB). The application can mount devices, parse files, and navigate directories on external storage.
-
Media Browsing:
- View a list of media files (audio and video) in the current folder and all sub-folders.
- Supports pagination, displaying 25 files per page.
-
Playlist Management:
- List all available playlists.
- View details of a specific playlist.
- Create, update, and delete playlists.
-
Metadata Management:
- Display detailed metadata of media files using Taglib.
- Audio Metadata: Track name, Album, Artist, Duration, Genre, Publisher, Publish Year, etc.
- Video Metadata: Name, Size, Duration, Bitrate, Codec, etc.
- Edit metadata, including changing values and adding new keys.
- Display detailed metadata of media files using Taglib.
-
Media Playback:
- Play music directly from the application using the SDL2 library on a separate thread.
- Playback controls include Play/Pause, Next/Previous track, and automatic progression to the next song.
- Display the current playback time and total duration of the track.
- Adjust the device volume from within the application.
- C/C++ Compiler: Ensure you have a C/C++ compiler installed (e.g.,
gcc
). - SDL2 Library: Install the SDL2 library.
- Taglib: Install Taglib for metadata handling.
-
Clone the Repository
git clone https://github.com/ cd media-browser-player
-
Build the Application
make
-
Run the Application
./media_browser_player
-
Command Options
-
View Media Files: List all media files in the current directory and sub-folders.
./media_browser_player --list
-
Manage Playlists:
- List Playlists:
./media_browser_player --playlists
- View a Playlist:
./media_browser_player --playlist <playlist_name>
- Create/Update/Delete a Playlist:
./media_browser_player --playlist <create|update|delete> <playlist_name>
- List Playlists:
-
View and Edit Metadata:
- View Metadata:
./media_browser_player --metadata <file_name>
- Edit Metadata:
./media_browser_player --metadata-edit <file_name> <key> <value>
- View Metadata:
-
Playback Control:
- Play/Pause:
./media_browser_player --play <file_name>
- Next/Previous:
./media_browser_player --next ./media_browser_player --previous
- Adjust Volume:
./media_browser_player --volume <level>
- Play/Pause:
-
- SDL2 Library: SDL2 Installation Guide
- Taglib: Taglib Installation Guide
Contributions are welcome! Please fork the repository, create a new branch, and submit a pull request.
This project is licensed under the MIT License - see the LICENSE file for details.