fluxmedia 1.0.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 FluxMedia Authors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,189 @@
1
+ Metadata-Version: 2.4
2
+ Name: fluxmedia
3
+ Version: 1.0.0
4
+ Summary: FluxMedia - Cross-platform Command-Line Media Downloader
5
+ License: MIT
6
+ Project-URL: Homepage, https://github.com/pdev-labs/FluxMedia
7
+ Classifier: Programming Language :: Python :: 3
8
+ Classifier: License :: OSI Approved :: MIT License
9
+ Classifier: Operating System :: OS Independent
10
+ Classifier: Environment :: Console
11
+ Classifier: Topic :: Multimedia :: Video
12
+ Requires-Python: >=3.8
13
+ Description-Content-Type: text/markdown
14
+ License-File: LICENSE
15
+ Requires-Dist: rich>=13.7.0
16
+ Requires-Dist: requests>=2.31.0
17
+ Requires-Dist: yt-dlp>=2025.2.18
18
+ Dynamic: license-file
19
+
20
+ # 🌊 FluxMedia
21
+
22
+ 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.
23
+
24
+ This project is licensed under the **MIT License**β€”making it entirely open-source and free to modify, distribute, and use.
25
+
26
+ ---
27
+
28
+ ## πŸš€ Key Features
29
+
30
+ * **Dynamic Terminal TUI**: Rich color panels, progress bars, tables, status indicators, and robust inputs.
31
+ * **Auto-Bootstrapping**: Standalone scripts automatically initialize a virtual environment (`.venv`), install dependencies, and run seamlessly without cluttering your directory.
32
+ * **Zero-Dependency Standalone Files**: You can run `fluxmedia_windows.bat` or `fluxmedia_linux.sh` as independent, single-file scripts. They dynamically extract, run, and self-clean the python source code.
33
+ * **Multiple Quality Profiles**: Choose between 1080p, 720p, 480p, or best available quality.
34
+ * **Smart Audio Extraction**: Download and automatically convert streams to high-quality MP3 (192kbps) with embedded metadata (requires FFmpeg).
35
+ * **Batch Downloads**: Save entire playlists or recent videos from content creator channels.
36
+ * **Subtitles Only**: Extract and save captions for specific language codes.
37
+ * **Logs & Download History**: Keep track of previous downloads and review errors via `fluxmedia.log` and `history.json`.
38
+
39
+ ---
40
+
41
+ ## πŸ“ File Structure
42
+
43
+ The project consists of three core entry points:
44
+
45
+ 1. **`fluxmedia_windows.bat`**: The standalone Windows Batch script. No other files needed.
46
+ 2. **`fluxmedia_linux.sh`**: The standalone Bash script for Linux, macOS, and Android (Termux). No other files needed.
47
+ 3. **`fluxmedia_aio.py`**: The raw Python All-in-One script for direct execution or advanced development.
48
+ 4. **`LICENSE`**: The open-source MIT License declaration.
49
+ 5. **`requirements.txt`**: Python dependencies list (installed automatically).
50
+
51
+ ---
52
+
53
+ ## πŸ› οΈ Step-by-Step Installation & Setup
54
+
55
+ ### 1. Windows Execution (Standard/Bootstrapper)
56
+ 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.
57
+
58
+ * **Prerequisites**: Install **Python 3.10+** from [Python.org](https://www.python.org/downloads/).
59
+ > [!IMPORTANT]
60
+ > Make sure to check the box **"Add Python to PATH"** during Python installation.
61
+ * **Running the script**:
62
+ 1. Download or clone this directory.
63
+ 2. Double-click `fluxmedia_windows.bat` or run it from Command Prompt:
64
+ ```cmd
65
+ fluxmedia_windows.bat
66
+ ```
67
+ 3. The script will automatically create a `.venv` directory, install required packages (`yt-dlp`, `requests`, `rich`), extract the application code, and launch the interface.
68
+
69
+ ---
70
+
71
+ ### 2. Linux & macOS Execution (Standard/Bootstrapper)
72
+ Like the Windows version, the bash script is self-contained and manages its own extraction and cleanup.
73
+
74
+ * **Prerequisites**: Ensure Python 3.10+ is installed on your system.
75
+ * **Running the script**:
76
+ 1. Open a terminal in the folder containing `fluxmedia_linux.sh`.
77
+ 2. Grant execution permissions:
78
+ ```bash
79
+ chmod +x fluxmedia_linux.sh
80
+ ```
81
+ 3. Launch the application:
82
+ ```bash
83
+ ./fluxmedia_linux.sh
84
+ ```
85
+
86
+ ---
87
+
88
+ ### 3. Android Execution (Termux)
89
+ You can run FluxMedia directly on your Android phone or tablet using Termux.
90
+
91
+ 1. Download and install **Termux** (from F-Droid).
92
+ 2. Open Termux and run:
93
+ ```bash
94
+ pkg update && pkg upgrade
95
+ ```
96
+ 3. Install dependencies:
97
+ ```bash
98
+ pkg install python git ffmpeg
99
+ ```
100
+ 4. Copy `fluxmedia_linux.sh` into your Termux home directory.
101
+ 5. Grant execution permissions and run:
102
+ ```bash
103
+ chmod +x fluxmedia_linux.sh
104
+ ./fluxmedia_linux.sh
105
+ ```
106
+
107
+ ---
108
+
109
+ ### 4. Direct Python Execution (`fluxmedia_aio.py`)
110
+ If you prefer to run the raw Python script directly or inspect/develop the code:
111
+
112
+ 1. Create a Python virtual environment:
113
+ ```bash
114
+ python -m venv .venv
115
+ ```
116
+ 2. Activate the virtual environment:
117
+ * **Windows**: `.venv\Scripts\activate.bat`
118
+ * **Linux/macOS**: `source .venv/bin/activate`
119
+ 3. Install dependencies:
120
+ ```bash
121
+ pip install -r requirements.txt
122
+ ```
123
+ 4. Launch the script:
124
+ ```bash
125
+ python fluxmedia_aio.py
126
+ ```
127
+
128
+ ---
129
+
130
+ ## 🎬 How to Use: Script Guide
131
+
132
+ 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**.
133
+
134
+ ### 1. Download Single Video
135
+ * Prompts you to enter a video URL (e.g., YouTube, Vimeo, Twitter, etc.).
136
+ * Asks you to select quality: `Best`, `1080p`, `720p`, `480p`.
137
+ * The script streams the download and shows a live progress bar, speed, ETA, and file size.
138
+
139
+ ### 2. Download Audio Only (MP3)
140
+ * Prompts you for the media URL.
141
+ * Extracts the audio track and encodes it to a high-quality 192kbps MP3 file.
142
+ * *Note: Requires FFmpeg to perform the MP3 conversion.*
143
+
144
+ ### 3. Download Playlist
145
+ * Enter a playlist URL.
146
+ * Downloads all videos in the playlist sequentially using the default quality profile.
147
+
148
+ ### 4. Download Channel Videos
149
+ * Enter a channel URL.
150
+ * Prompts you for a maximum limit of videos to download (e.g., `5` to download the 5 most recent videos). Enter `0` to download all videos.
151
+
152
+ ### 5. Custom URL & Command Options
153
+ * Enter a URL and provide custom arguments matching `yt-dlp` syntax for advanced downloading.
154
+
155
+ ### 6. Download Subtitles Only
156
+ * Enter a video URL.
157
+ * Prompts you for the language code (e.g., `en` for English, `es` for Spanish).
158
+ * Downloads only the subtitles file (no video content).
159
+
160
+ ### 7. View Download History
161
+ * Opens a tabular report of all previous downloads including timestamp, URL, title, format, file size, status, and destination folder.
162
+
163
+ ### 8. Settings
164
+ Customize default behavior without manually editing files. You can change:
165
+ * **Download Directory**: Path where downloaded media is saved.
166
+ * **Default Video Quality**: Quality level automatically chosen when downloading playlists/channels.
167
+ * **Filename Template**: Format for naming files (e.g. `%(title)s.%(ext)s`).
168
+ * **UI Theme**: Theme styling options for the console panels.
169
+
170
+ ### 9. Open Downloads Folder
171
+ * Automatically opens your configured downloads directory in your system file explorer (explorer.exe on Windows, xdg-open on Linux, or open on macOS).
172
+
173
+ ### 10. Exit
174
+ * Safely shuts down the application and cleans up temporary files.
175
+
176
+ ---
177
+
178
+ ## 🎧 FFmpeg Setup (Highly Recommended)
179
+
180
+ FFmpeg is required for merging high-definition video streams and converting audio to MP3 format.
181
+
182
+ * **Windows**: Install via winget (`winget install Gyan.FFmpeg`) or scoop (`scoop install ffmpeg`).
183
+ * **macOS**: Install via Homebrew (`brew install ffmpeg`).
184
+ * **Linux**: Install via apt (`sudo apt install ffmpeg`).
185
+ * **Termux**: Install via pkg (`pkg install ffmpeg`).
186
+
187
+ 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).
188
+
189
+
@@ -0,0 +1,170 @@
1
+ # 🌊 FluxMedia
2
+
3
+ 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.
4
+
5
+ This project is licensed under the **MIT License**β€”making it entirely open-source and free to modify, distribute, and use.
6
+
7
+ ---
8
+
9
+ ## πŸš€ Key Features
10
+
11
+ * **Dynamic Terminal TUI**: Rich color panels, progress bars, tables, status indicators, and robust inputs.
12
+ * **Auto-Bootstrapping**: Standalone scripts automatically initialize a virtual environment (`.venv`), install dependencies, and run seamlessly without cluttering your directory.
13
+ * **Zero-Dependency Standalone Files**: You can run `fluxmedia_windows.bat` or `fluxmedia_linux.sh` as independent, single-file scripts. They dynamically extract, run, and self-clean the python source code.
14
+ * **Multiple Quality Profiles**: Choose between 1080p, 720p, 480p, or best available quality.
15
+ * **Smart Audio Extraction**: Download and automatically convert streams to high-quality MP3 (192kbps) with embedded metadata (requires FFmpeg).
16
+ * **Batch Downloads**: Save entire playlists or recent videos from content creator channels.
17
+ * **Subtitles Only**: Extract and save captions for specific language codes.
18
+ * **Logs & Download History**: Keep track of previous downloads and review errors via `fluxmedia.log` and `history.json`.
19
+
20
+ ---
21
+
22
+ ## πŸ“ File Structure
23
+
24
+ The project consists of three core entry points:
25
+
26
+ 1. **`fluxmedia_windows.bat`**: The standalone Windows Batch script. No other files needed.
27
+ 2. **`fluxmedia_linux.sh`**: The standalone Bash script for Linux, macOS, and Android (Termux). No other files needed.
28
+ 3. **`fluxmedia_aio.py`**: The raw Python All-in-One script for direct execution or advanced development.
29
+ 4. **`LICENSE`**: The open-source MIT License declaration.
30
+ 5. **`requirements.txt`**: Python dependencies list (installed automatically).
31
+
32
+ ---
33
+
34
+ ## πŸ› οΈ Step-by-Step Installation & Setup
35
+
36
+ ### 1. Windows Execution (Standard/Bootstrapper)
37
+ 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.
38
+
39
+ * **Prerequisites**: Install **Python 3.10+** from [Python.org](https://www.python.org/downloads/).
40
+ > [!IMPORTANT]
41
+ > Make sure to check the box **"Add Python to PATH"** during Python installation.
42
+ * **Running the script**:
43
+ 1. Download or clone this directory.
44
+ 2. Double-click `fluxmedia_windows.bat` or run it from Command Prompt:
45
+ ```cmd
46
+ fluxmedia_windows.bat
47
+ ```
48
+ 3. The script will automatically create a `.venv` directory, install required packages (`yt-dlp`, `requests`, `rich`), extract the application code, and launch the interface.
49
+
50
+ ---
51
+
52
+ ### 2. Linux & macOS Execution (Standard/Bootstrapper)
53
+ Like the Windows version, the bash script is self-contained and manages its own extraction and cleanup.
54
+
55
+ * **Prerequisites**: Ensure Python 3.10+ is installed on your system.
56
+ * **Running the script**:
57
+ 1. Open a terminal in the folder containing `fluxmedia_linux.sh`.
58
+ 2. Grant execution permissions:
59
+ ```bash
60
+ chmod +x fluxmedia_linux.sh
61
+ ```
62
+ 3. Launch the application:
63
+ ```bash
64
+ ./fluxmedia_linux.sh
65
+ ```
66
+
67
+ ---
68
+
69
+ ### 3. Android Execution (Termux)
70
+ You can run FluxMedia directly on your Android phone or tablet using Termux.
71
+
72
+ 1. Download and install **Termux** (from F-Droid).
73
+ 2. Open Termux and run:
74
+ ```bash
75
+ pkg update && pkg upgrade
76
+ ```
77
+ 3. Install dependencies:
78
+ ```bash
79
+ pkg install python git ffmpeg
80
+ ```
81
+ 4. Copy `fluxmedia_linux.sh` into your Termux home directory.
82
+ 5. Grant execution permissions and run:
83
+ ```bash
84
+ chmod +x fluxmedia_linux.sh
85
+ ./fluxmedia_linux.sh
86
+ ```
87
+
88
+ ---
89
+
90
+ ### 4. Direct Python Execution (`fluxmedia_aio.py`)
91
+ If you prefer to run the raw Python script directly or inspect/develop the code:
92
+
93
+ 1. Create a Python virtual environment:
94
+ ```bash
95
+ python -m venv .venv
96
+ ```
97
+ 2. Activate the virtual environment:
98
+ * **Windows**: `.venv\Scripts\activate.bat`
99
+ * **Linux/macOS**: `source .venv/bin/activate`
100
+ 3. Install dependencies:
101
+ ```bash
102
+ pip install -r requirements.txt
103
+ ```
104
+ 4. Launch the script:
105
+ ```bash
106
+ python fluxmedia_aio.py
107
+ ```
108
+
109
+ ---
110
+
111
+ ## 🎬 How to Use: Script Guide
112
+
113
+ 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**.
114
+
115
+ ### 1. Download Single Video
116
+ * Prompts you to enter a video URL (e.g., YouTube, Vimeo, Twitter, etc.).
117
+ * Asks you to select quality: `Best`, `1080p`, `720p`, `480p`.
118
+ * The script streams the download and shows a live progress bar, speed, ETA, and file size.
119
+
120
+ ### 2. Download Audio Only (MP3)
121
+ * Prompts you for the media URL.
122
+ * Extracts the audio track and encodes it to a high-quality 192kbps MP3 file.
123
+ * *Note: Requires FFmpeg to perform the MP3 conversion.*
124
+
125
+ ### 3. Download Playlist
126
+ * Enter a playlist URL.
127
+ * Downloads all videos in the playlist sequentially using the default quality profile.
128
+
129
+ ### 4. Download Channel Videos
130
+ * Enter a channel URL.
131
+ * Prompts you for a maximum limit of videos to download (e.g., `5` to download the 5 most recent videos). Enter `0` to download all videos.
132
+
133
+ ### 5. Custom URL & Command Options
134
+ * Enter a URL and provide custom arguments matching `yt-dlp` syntax for advanced downloading.
135
+
136
+ ### 6. Download Subtitles Only
137
+ * Enter a video URL.
138
+ * Prompts you for the language code (e.g., `en` for English, `es` for Spanish).
139
+ * Downloads only the subtitles file (no video content).
140
+
141
+ ### 7. View Download History
142
+ * Opens a tabular report of all previous downloads including timestamp, URL, title, format, file size, status, and destination folder.
143
+
144
+ ### 8. Settings
145
+ Customize default behavior without manually editing files. You can change:
146
+ * **Download Directory**: Path where downloaded media is saved.
147
+ * **Default Video Quality**: Quality level automatically chosen when downloading playlists/channels.
148
+ * **Filename Template**: Format for naming files (e.g. `%(title)s.%(ext)s`).
149
+ * **UI Theme**: Theme styling options for the console panels.
150
+
151
+ ### 9. Open Downloads Folder
152
+ * Automatically opens your configured downloads directory in your system file explorer (explorer.exe on Windows, xdg-open on Linux, or open on macOS).
153
+
154
+ ### 10. Exit
155
+ * Safely shuts down the application and cleans up temporary files.
156
+
157
+ ---
158
+
159
+ ## 🎧 FFmpeg Setup (Highly Recommended)
160
+
161
+ FFmpeg is required for merging high-definition video streams and converting audio to MP3 format.
162
+
163
+ * **Windows**: Install via winget (`winget install Gyan.FFmpeg`) or scoop (`scoop install ffmpeg`).
164
+ * **macOS**: Install via Homebrew (`brew install ffmpeg`).
165
+ * **Linux**: Install via apt (`sudo apt install ffmpeg`).
166
+ * **Termux**: Install via pkg (`pkg install ffmpeg`).
167
+
168
+ 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).
169
+
170
+
@@ -0,0 +1,8 @@
1
+ """
2
+ FluxMedia - Cross-platform Command-Line Media Downloader
3
+ """
4
+
5
+ from .main import main
6
+
7
+ __version__ = "1.0.0"
8
+ __all__ = ["main"]
@@ -0,0 +1,4 @@
1
+ from .main import main
2
+
3
+ if __name__ == "__main__":
4
+ main()