Skip to main content

TubeTracks: Enhanced YouTube to MP3 Downloader with multi-platform support

Project description

TubeTracks

Build and Test Python 3.8+ License: GPL v3 Code style: black

Multi-platform media downloader with advanced quality control and batch processing capabilities.


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


Installation

Install from PyPI

pip install tubetracks

Quick Install (Source)

git clone https://github.com/jomardyan/TubeTracks.git
cd TubeTracks
make install

Manual Installation

  1. Clone repository

    git clone https://github.com/jomardyan/TubeTracks.git
    cd TubeTracks
    
  2. Install dependencies

    pip install -r requirements.txt
    
  3. 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

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:

  1. ~/.tubetracks.conf
  2. ./.tubetracks.conf

Supported Platforms

Platform Playlist Content Types
YouTube Videos, Shorts, Music
TikTok Videos, Clips
Instagram Posts, Reels, Stories
SoundCloud Tracks, Playlists
Spotify Tracks, Playlists, Albums
Twitch VODs, Clips, Highlights
Dailymotion Videos, Playlists
Vimeo Videos, Channels
Reddit 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:

  • yt-dlp — YouTube extraction and download
  • rich — Rich terminal output
  • FFmpeg — Audio processing and conversion

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tubetracks-1.5.0.tar.gz (70.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tubetracks-1.5.0-py3-none-any.whl (59.8 kB view details)

Uploaded Python 3

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

Hashes for tubetracks-1.5.0.tar.gz
Algorithm Hash digest
SHA256 12910be59ee15a79da5f15c07287da71dd03f90413862e258dfd079692e00c49
MD5 1f90d912e40f3a0e34230bc8b403e46c
BLAKE2b-256 6aa2c03c3177d3b62c0491a4e71c4e9ea3d9578774c174be3b4f2a74888352bc

See more details on using hashes here.

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

Hashes for tubetracks-1.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0af1204434fd0daafd7f2da025e27e34b2ef5c8e069b979f61cbb9410c74f106
MD5 3756baee539507900de064f66dba90a0
BLAKE2b-256 e73f8a227ac3b1ad91bcf34d19f33778a7b2d7c02061ad51335340491727b01d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page