FluxMedia - Cross-platform Command-Line Media Downloader
Project description
🌊 FluxMedia
FluxMedia is a powerful, open-source, and cross-platform command-line media downloader designed for simplicity, robustness, and speed. Built on top of yt-dlp and rich, it provides a beautiful terminal user interface (TUI) to download videos, audio streams, playlists, channel uploads, and subtitles from thousands of supported websites.
This project is licensed under the MIT License—making it entirely open-source and free to modify, distribute, and use.
🚀 Key Features
- Dynamic Terminal TUI: Rich color panels, progress bars, tables, status indicators, and robust inputs.
- Auto-Bootstrapping: Standalone scripts automatically initialize a virtual environment (
.venv), install dependencies, and run seamlessly without cluttering your directory. - Zero-Dependency Standalone Files: You can run
fluxmedia_windows.batorfluxmedia_linux.shas independent, single-file scripts. They dynamically extract, run, and self-clean the python source code. - Multiple Quality Profiles: Choose between 1080p, 720p, 480p, or best available quality.
- Smart Audio Extraction: Download and automatically convert streams to high-quality MP3 (192kbps) with embedded metadata (requires FFmpeg).
- Batch Downloads: Save entire playlists or recent videos from content creator channels.
- Subtitles Only: Extract and save captions for specific language codes.
- Logs & Download History: Keep track of previous downloads and review errors via
fluxmedia.logandhistory.json.
📁 File Structure
The project consists of three core entry points:
fluxmedia_windows.bat: The standalone Windows Batch script. No other files needed.fluxmedia_linux.sh: The standalone Bash script for Linux, macOS, and Android (Termux). No other files needed.fluxmedia_aio.py: The raw Python All-in-One script for direct execution or advanced development.LICENSE: The open-source MIT License declaration.requirements.txt: Python dependencies list (installed automatically).
🛠️ Step-by-Step Installation & Setup
1. Windows Execution (Standard/Bootstrapper)
The batch file is self-contained. It contains the Python script embedded inside it, extracts it to the system temporary directory on start, runs it, and cleans up when finished.
- Prerequisites: Install Python 3.10+ from Python.org.
[!IMPORTANT] Make sure to check the box "Add Python to PATH" during Python installation.
- Running the script:
- Download or clone this directory.
- Double-click
fluxmedia_windows.bator run it from Command Prompt:fluxmedia_windows.bat
- The script will automatically create a
.venvdirectory, install required packages (yt-dlp,requests,rich), extract the application code, and launch the interface.
2. Linux & macOS Execution (Standard/Bootstrapper)
Like the Windows version, the bash script is self-contained and manages its own extraction and cleanup.
- Prerequisites: Ensure Python 3.10+ is installed on your system.
- Running the script:
- Open a terminal in the folder containing
fluxmedia_linux.sh. - Grant execution permissions:
chmod +x fluxmedia_linux.sh
- Launch the application:
./fluxmedia_linux.sh
- Open a terminal in the folder containing
3. Android Execution (Termux)
You can run FluxMedia directly on your Android phone or tablet using Termux.
- Download and install Termux (from F-Droid).
- Open Termux and run:
pkg update && pkg upgrade
- Install dependencies:
pkg install python git ffmpeg
- Copy
fluxmedia_linux.shinto your Termux home directory. - Grant execution permissions and run:
chmod +x fluxmedia_linux.sh ./fluxmedia_linux.sh
4. Direct Python Execution (fluxmedia_aio.py)
If you prefer to run the raw Python script directly or inspect/develop the code:
- Create a Python virtual environment:
python -m venv .venv
- Activate the virtual environment:
- Windows:
.venv\Scripts\activate.bat - Linux/macOS:
source .venv/bin/activate
- Windows:
- Install dependencies:
pip install -r requirements.txt
- Launch the script:
python fluxmedia_aio.py
🎬 How to Use: Script Guide
When you launch the script, you are greeted by the main menu panel showing your FFmpeg status and 10 menu options. Use your keyboard to enter the number corresponding to your choice and press Enter.
1. Download Single Video
- Prompts you to enter a video URL (e.g., YouTube, Vimeo, Twitter, etc.).
- Asks you to select quality:
Best,1080p,720p,480p. - The script streams the download and shows a live progress bar, speed, ETA, and file size.
2. Download Audio Only (MP3)
- Prompts you for the media URL.
- Extracts the audio track and encodes it to a high-quality 192kbps MP3 file.
- Note: Requires FFmpeg to perform the MP3 conversion.
3. Download Playlist
- Enter a playlist URL.
- Downloads all videos in the playlist sequentially using the default quality profile.
4. Download Channel Videos
- Enter a channel URL.
- Prompts you for a maximum limit of videos to download (e.g.,
5to download the 5 most recent videos). Enter0to download all videos.
5. Custom URL & Command Options
- Enter a URL and provide custom arguments matching
yt-dlpsyntax for advanced downloading.
6. Download Subtitles Only
- Enter a video URL.
- Prompts you for the language code (e.g.,
enfor English,esfor Spanish). - Downloads only the subtitles file (no video content).
7. View Download History
- Opens a tabular report of all previous downloads including timestamp, URL, title, format, file size, status, and destination folder.
8. Settings
Customize default behavior without manually editing files. You can change:
- Download Directory: Path where downloaded media is saved.
- Default Video Quality: Quality level automatically chosen when downloading playlists/channels.
- Filename Template: Format for naming files (e.g.
%(title)s.%(ext)s). - UI Theme: Theme styling options for the console panels.
9. Open Downloads Folder
- Automatically opens your configured downloads directory in your system file explorer (explorer.exe on Windows, xdg-open on Linux, or open on macOS).
10. Exit
- Safely shuts down the application and cleans up temporary files.
🎧 FFmpeg Setup (Highly Recommended)
FFmpeg is required for merging high-definition video streams and converting audio to MP3 format.
- Windows: Install via winget (
winget install Gyan.FFmpeg) or scoop (scoop install ffmpeg). - macOS: Install via Homebrew (
brew install ffmpeg). - Linux: Install via apt (
sudo apt install ffmpeg). - Termux: Install via pkg (
pkg install ffmpeg).
If FFmpeg is not installed, FluxMedia will notify you in the main header and fall back to single-file downloads (usually limited to 720p or native audio formats).
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file fluxmedia-1.0.0.tar.gz.
File metadata
- Download URL: fluxmedia-1.0.0.tar.gz
- Upload date:
- Size: 16.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bed114f06c56077774fe5904c625ec3bed7f88759f31532fd02f749ffe6ed0e6
|
|
| MD5 |
3d0b615a4ab24403b2aa8c3c8520fd43
|
|
| BLAKE2b-256 |
17dfd9ec2a3e26ad59dc4f12f9d2526ff3ab9c30c5fa4483147816a08cab8d86
|
File details
Details for the file fluxmedia-1.0.0-py3-none-any.whl.
File metadata
- Download URL: fluxmedia-1.0.0-py3-none-any.whl
- Upload date:
- Size: 13.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f71500c959e9d066f573c6659ea3373e267d4a3d9785b5b61d8418613a380c6a
|
|
| MD5 |
af10e86a944ccf73bf5d94255332ff6b
|
|
| BLAKE2b-256 |
06e2ead09e99c9c6f6c30050807f0a3cc04bd327950585bca92b0656585e50f2
|