FluxMedia
A premium, cross-platform media portal and processing toolkit.
FluxMedia is a production-ready media manager, automated downloader, and local streaming gateway wrapped in a responsive terminal application and web interface.
📢 Latest Release: v1.6.54
- Watch Party Auto-Play Fixed: Watch Party host now forces playback immediately when starting a session, fixing an issue where streams would remain paused. If a browser blocks automatic playback, it now displays a prominent "Tap to Start" overlay.
- Watch Party Host Waiting Flow: The CLI now properly waits and displays a live-updating table of connected devices for the host to review before proceeding to the device selection stage.
- Full Watch Party in Share Portal: Connected devices now appear in a live panel (FAB or tab mode) with green pulsing dots for SYNCED vs grey for WATCHING. The CLI host picks which devices to sync, and the browser clients automatically seek and play/pause in real time.
- Audio + Video Sync: Both audio and video files are now properly synchronized across devices — the portal auto-detects
media_typeand applies sync to the correct player. - Sync Lock Modes: Strict (full lock) or Loose (volume/fullscreen allowed) — user-configurable in Settings.
- Custom Device Names: Each device auto-detects its name (iPhone, Android, Mac...) and lets users override it in Settings > Watch Party.
- Mid-session Device Management: Use the
Dcommand in the Watch Party CLI control loop to add or remove devices from sync without stopping the session.
🌟 Key Features
- Universal Extraction Core: Seamlessly download high-quality videos, playlists, audio streams, channel collections, and subtitles powered by a robust wrapper around
yt-dlp. - Sync Play (Watch Party) [Beta]: Synchronize media playback across all connected devices on your local network, perfect for hosting local watch parties.
- FluxMedia Web UI: A beautiful, responsive React-based web dashboard to remotely control your downloads, manage files, and host Watch Parties directly from your browser.
- Built-in LAN Sharing Gateway: Share downloaded files instantly to any device on your local network using a built-in password-protected HTTP server with QR code access.
- Instagram Profile Downloader [Beta]: Batch download media directly from Instagram profiles with our new custom extraction module.
- Advanced Post-Processing: Automatically extract audio (MP3/M4A/FLAC), merge separate audio/video formats, inject descriptions and tags, and embed album artwork via FFmpeg.
- Universal OS Support: The one-liner
install.shscript automatically resolves dependencies across macOS (brew), Android Termux (pkg), and virtually all Linux package managers (apt,pacman,dnf,apk,zypper,xbps).
💻 Visual Preview
FluxMedia CLI showing QR Share Gateway active on the local network.
🚀 Quick Start
1. Installation
Linux / macOS (Bash):
curl -sL https://raw.githubusercontent.com/pdev-labs/FluxMedia/main/install.sh | bash
Windows (PowerShell):
iex (irm https://raw.githubusercontent.com/pdev-labs/FluxMedia/main/install.ps1)
Alternatively, you can install directly via pip:
pip install fluxmedia
For detailed, OS-specific manual installation instructions, please check the Installation Guide.
2. Usage
Launch the interactive console portal:
fluxmedia
Launch the newly added Web UI dashboard (also accessible by pressing W in the main menu):
fluxmedia --web
Or open the Textual TUI dashboard directly:
fluxmedia --tui
📚 Documentation
Detailed user guides and developer docs are organized in the docs/ folder:
- 📥 Installation Guide — Step-by-step setup guides for Windows, macOS, Linux, and Android (Termux).
- ⚙️ Configuration Guide — Explanations of config options, directories, and customization schemas.
- 📦 Downloader Engine — Internals on formatting flags, post-processors, and download strategies.
- 📶 LAN QR Share Portal — Guide to local HTTP streaming, REST API endpoints, and authentication tokens.
- 🛠️ Troubleshooting Guide — Common solutions for SSL issues, Windows Defender configurations, and storage permissions.
- 📖 Frequently Asked Questions — Answers to common developer and user questions.
- 🏗️ Architecture Overview — Codebase directory layout, dynamic imports, and module dependencies.
🗺️ Roadmap
We are constantly improving the platform. Here are our high-level goals:
- Milestone 1: Parallel multi-threaded downloading and expanded website extractors.
- Milestone 2: In-terminal visual video trimming and custom TUI styling themes.
- Milestone 3: Multi-user permissions on the share portal and upgraded web player seeking.
Check out ROADMAP.md for our complete milestones plan.
🤝 Contributing
We welcome all contributions! Whether you are fixing type errors, adding new feature modules, or enhancing the documentation:
- Review the Contributing Guide.
- Ensure you adhere to the Code of Conduct.
- If you modify any frontend web assets, remember to run the repack builder:
python repack.py
📜 License & Credits
FluxMedia is open-source software licensed under the MIT License.
Credits
- Core extraction engine powered by yt-dlp.
- Terminal styling and layouts powered by rich and textual.
- Audio tagging powered by mutagen.
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.6.54.tar.gz.
File metadata
- Download URL: fluxmedia-1.6.54.tar.gz
- Upload date:
- Size: 1.3 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5e324c6c1289ed091b1ac033c08c2ac551b58058763c10ee9afd8700edf2f04c
|
|
| MD5 |
12f05e44503b0bf107174a43c87cfd8d
|
|
| BLAKE2b-256 |
f74633bc0f3b85092da007f9ba9276a590f3bada2457861707ed265f1823eb12
|
Provenance
The following attestation bundles were made for fluxmedia-1.6.54.tar.gz:
Publisher:
publish.yml on pdev-labs/FluxMedia
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
fluxmedia-1.6.54.tar.gz -
Subject digest:
5e324c6c1289ed091b1ac033c08c2ac551b58058763c10ee9afd8700edf2f04c - Sigstore transparency entry: 2206948534
- Sigstore integration time:
-
Permalink:
pdev-labs/FluxMedia@98875372c68a7c104c0722e03b2bb04127282c54 -
Branch / Tag:
refs/tags/v1.6.54 - Owner: https://github.com/pdev-labs
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@98875372c68a7c104c0722e03b2bb04127282c54 -
Trigger Event:
release
-
Statement type:
File details
Details for the file fluxmedia-1.6.54-py3-none-any.whl.
File metadata
- Download URL: fluxmedia-1.6.54-py3-none-any.whl
- Upload date:
- Size: 1.3 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8795c2e0b836c712ce7722e26f7f46cf6e372fd2e111c6f0fd4fdfdd10158407
|
|
| MD5 |
bc3bb853f25ce109470fe3ca2a1e83c6
|
|
| BLAKE2b-256 |
07c87720fb65e27a366f66f765a0f495ad46157d50d11a65c114041e95eee881
|
Provenance
The following attestation bundles were made for fluxmedia-1.6.54-py3-none-any.whl:
Publisher:
publish.yml on pdev-labs/FluxMedia
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
fluxmedia-1.6.54-py3-none-any.whl -
Subject digest:
8795c2e0b836c712ce7722e26f7f46cf6e372fd2e111c6f0fd4fdfdd10158407 - Sigstore transparency entry: 2206948548
- Sigstore integration time:
-
Permalink:
pdev-labs/FluxMedia@98875372c68a7c104c0722e03b2bb04127282c54 -
Branch / Tag:
refs/tags/v1.6.54 - Owner: https://github.com/pdev-labs
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@98875372c68a7c104c0722e03b2bb04127282c54 -
Trigger Event:
release
-
Statement type: