A terminal-based YouTube downloader for Linux. Paste any channel, playlist, or single video URL — browse, select, and download in MP4 or MP3 with your choice of quality.
- Channels — paste a channel URL (e.g.
https://www.youtube.com/@martyandjamie), then grab the top 20 most popular or hand-pick from the full list - Playlists — paste a playlist URL to download the entire playlist or select specific videos
- Single videos — paste any
watch?v=,youtu.be/, or/shorts/link to download one video directly - Smart detection — auto-detects URL type; if a video link contains a playlist, asks whether you want the single video or the full playlist
- MP4 video — quality options: Best, 1080p, 720p, 480p, 360p
- MP3 audio — bitrate options: 320, 256, 192, 128, 96 kbps
- Custom download directory — defaults to
~/Downloads/YT-Downloader - Interactive TUI — arrow-key navigation, checkboxes, and rich formatted tables
- Python 3.10+
- ffmpeg (for MP3 conversion and merging best-quality MP4)
Install ffmpeg if you don't have it:
sudo apt install ffmpeg# 1. Clone / navigate to the project
cd ~/Documents/YT-Downloader
# 2. Run the installer (creates venv + installs deps)
bash install.sh
# 3. Launch the app
./run.shpython3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
python3 downloader.py- Run
./run.sh - Paste any YouTube URL — channel, playlist, or single video
- Channel → Top 20 most popular or select manually
- Playlist → Download all or select manually
- Video → Confirm and download
- Pick format: MP4 or MP3
- Choose quality / bitrate
- Confirm download directory
- Downloads begin!
YT-Downloader/
├── downloader.py # Main application
├── install.sh # One-time setup script
├── run.sh # Launch script
├── requirements.txt # Python dependencies
└── README.md # This file