TubeTracks: Enhanced YouTube to MP3 Downloader with multi-platform support
Project description
TubeTracks
Overview
TubeTracks is a Python-based media downloader supporting 9+ platforms including YouTube, TikTok, Instagram, SoundCloud, Spotify, and more. Features include multiple quality presets, format conversion, playlist support, and both CLI and GUI interfaces.
Features
- Multi-platform support: YouTube, TikTok, Instagram, SoundCloud, Spotify, Twitch, Dailymotion, Vimeo, Reddit
- Quality presets: 128 kbps, 192 kbps, 320 kbps, or original quality
- Format conversion: MP3, M4A, FLAC, WAV, OGG via FFmpeg
- Batch processing: Download multiple URLs from text files
- Playlist support: Automatic playlist extraction and download
- GUI interface: User-friendly desktop application with Tkinter
- Download archive: Track downloads to prevent duplicates
- Metadata embedding: Automatic ID3 tags and thumbnail artwork
Requirements
- Python 3.8+
- FFmpeg
- Dependencies listed in requirements.txt
Installation
Install from PyPI
pip install tubetracks
Quick Install (Source)
git clone https://github.com/jomardyan/TubeTracks.git
cd TubeTracks
make install
Manual Installation
-
Clone repository
git clone https://github.com/jomardyan/TubeTracks.git cd TubeTracks
-
Install dependencies
pip install -r requirements.txt
-
Install FFmpeg You can use the provided cross-platform PowerShell script:
pwsh ./install_ffmpeg.ps1
Or install manually:
- Windows:
winget install Gyan.FFmpeg - macOS:
brew install ffmpeg - Linux:
sudo apt-get install ffmpeg
- Windows:
Verify Installation
python --version # Check Python
ffmpeg -version # Check FFmpeg
python downloader.py --help # Test downloader
Quick Start
CLI Usage
Note: If you installed via PyPI, use the tubetracks command instead of python downloader.py.
# Single download (PyPI)
tubetracks "https://www.youtube.com/watch?v=VIDEO_ID"
# Single download (Source)
python downloader.py "https://www.youtube.com/watch?v=VIDEO_ID"
# With quality and format
tubetracks -q high -f flac "URL"
# Playlist
tubetracks -p "PLAYLIST_URL"
# Batch from file
tubetracks -b urls.txt
Python Library Usage
TubeTracks can be used as a Python library to integrate media downloading capabilities directly into your own applications.
from downloader import download_audio
# Simple download
result = download_audio("https://www.youtube.com/watch?v=dQw4w9WgXcQ")
See LIBRARY_USAGE.md for complete API documentation and examples.
GUI
Launch the desktop interface:
python tubetracks_gui.py
Or with Make:
make gui
Usage
Quality Options
| Preset | Bitrate | Use Case |
|---|---|---|
low |
128 kbps | Podcasts, audiobooks |
medium |
192 kbps | General listening (default) |
high |
320 kbps | High-quality music |
best |
Original | Maximum quality |
Output Formats
Supported formats: mp3, m4a, flac, wav, ogg
python downloader.py -f mp3 <url>
python downloader.py -f flac -q best <url>
Common Options
# Custom output directory
python downloader.py -o ~/Music <url>
# Custom filename template
python downloader.py -t "%(artist)s - %(title)s" <url>
# Dry-run (preview without downloading)
python downloader.py --dry-run <url>
# Network options
python downloader.py --proxy socks5://127.0.0.1:1080 <url>
python downloader.py --limit-rate 1M <url>
# Error handling
python downloader.py --retries 5 <url>
Configuration
View or save configuration:
python downloader.py --show-config
python downloader.py --save-config
Configuration files are loaded from:
~/.tubetracks.conf./.tubetracks.conf
Supported Platforms
| Platform | Playlist | Content Types |
|---|---|---|
| YouTube | ✅ | Videos, Shorts, Music |
| TikTok | ✅ | Videos, Clips |
| ❌ | Posts, Reels, Stories | |
| SoundCloud | ✅ | Tracks, Playlists |
| Spotify | ✅ | Tracks, Playlists, Albums |
| Twitch | ❌ | VODs, Clips, Highlights |
| Dailymotion | ✅ | Videos, Playlists |
| Vimeo | ✅ | Videos, Channels |
| ❌ | Videos, Posts |
View all plugins: python downloader.py --list-plugins
See PLUGIN_API.md for custom plugin development.
Development
Testing
make test # Run all tests
make smoke-test # Quick validation
make coverage # Coverage report
Code Quality
make lint # Check code style
make format # Auto-format code
make check # Run all checks
Disclaimer
This software is provided for educational and personal use only. Users are solely responsible for ensuring their usage complies with applicable laws, regulations, and the terms of service of the platforms from which content is downloaded. The software owner and contributors assume no responsibility or liability for any misuse, legal violations, or consequences arising from the use of this software.
By using this software, you acknowledge that:
- You have the legal right to download the content
- You will respect copyright laws and intellectual property rights
- You will comply with the terms of service of all platforms accessed
- The software owner is not liable for your actions or any resulting damages
License
This project is licensed under the GNU General Public License v3.0 or later — see LICENSE file for details.
Contributing
Contributions are welcome! Please feel free to submit issues and pull requests.
Acknowledgments
This project uses:
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 tubetracks-1.5.0.tar.gz.
File metadata
- Download URL: tubetracks-1.5.0.tar.gz
- Upload date:
- Size: 70.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
12910be59ee15a79da5f15c07287da71dd03f90413862e258dfd079692e00c49
|
|
| MD5 |
1f90d912e40f3a0e34230bc8b403e46c
|
|
| BLAKE2b-256 |
6aa2c03c3177d3b62c0491a4e71c4e9ea3d9578774c174be3b4f2a74888352bc
|
File details
Details for the file tubetracks-1.5.0-py3-none-any.whl.
File metadata
- Download URL: tubetracks-1.5.0-py3-none-any.whl
- Upload date:
- Size: 59.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0af1204434fd0daafd7f2da025e27e34b2ef5c8e069b979f61cbb9410c74f106
|
|
| MD5 |
3756baee539507900de064f66dba90a0
|
|
| BLAKE2b-256 |
e73f8a227ac3b1ad91bcf34d19f33778a7b2d7c02061ad51335340491727b01d
|