A professional, feature-rich YouTube Downloader built for Termux and Linux with a modern, interactive terminal user interface powered by rich, prompt_toolkit, and yt-dlp.
- 🎥 High-Definition Video Downloads: Download videos up to 4K / 1080p 60fps with ease.
- 🎵 Smart Audio Matching: Automatically selects and pairs the highest quality audio stream for your chosen video stream.
- ⚡ Dual Progress Dashboard: Concurrent video & audio stream downloading with real-time speed, ETA, and CPU/RAM resource monitoring.
- 🛠️ Seamless Stream Merging: Merges video and audio losslessly using
FFmpeg. - 📱 Termux Storage Optimized: Direct saving to Android
/sdcard/Download/YTDownloaderor Linux download directories. - 🔍 Interactive Quality Selection: Clean, color-coded tabular view for available resolutions and codecs.
Before installing, ensure your environment has the required dependencies:
- Python 3.8+: Language runtime.
- FFmpeg: Required for merging separate high-definition video & audio streams.
- Storage Access (Termux only): Permission to write downloaded files to your Android internal storage.
Open Termux and run the following commands line by line:
# 1. Update package list and install required system packages
pkg update && pkg upgrade -y
pkg install python git ffmpeg -y
# 2. Grant Termux storage access (Required to save videos to downloads)
termux-setup-storage
# 3. Clone the repository
git clone https://github.com/soumik183/Ytdownloder.git
cd Ytdownloder
# 4. Install Python dependencies and package
pip install -r requirements.txt
pip install -e .Open your Linux terminal and run:
# 1. Install system dependencies (Debian/Ubuntu)
sudo apt update && sudo apt install python3 python3-pip git ffmpeg -y
# 2. Clone the repository
git clone https://github.com/soumik183/Ytdownloder.git
cd Ytdownloder
# 3. Install Python dependencies and package
pip install -r requirements.txt
pip install -e .Once installed, you can launch the application using any of the following methods:
ytdownloaderor shorthand:
ytdownhpython3 main.py- Launch App: Start
ytdownloaderorpython3 main.py. - Enter URL: Paste any valid YouTube video link when prompted.
- Metadata View: The app fetches and presents video title, channel name, duration, and view count.
- Select Resolution: Pick your preferred video quality (e.g. 1080p 60fps, 720p, 480p) from the interactive table.
- Download & Merge: Watch real-time dual progress bars for video & audio downloads. FFmpeg will automatically combine them into a single high-quality video file.
- Access File: Find your downloaded video in:
- Termux:
/sdcard/Download/YTDownloader/ - Linux:
~/Downloads/YTDownloader/or current directory.
- Termux:
Tip
Keep yt-dlp Updated
YouTube frequently updates its service. If video fetching fails, update yt-dlp to the latest version by running:
pip install --upgrade yt-dlpWarning
FFmpeg Missing Error
If you see ❌ FFmpeg is missing!, install FFmpeg manually:
- Termux:
pkg install ffmpeg - Ubuntu/Debian:
sudo apt install ffmpeg
Important
Termux Permission Denied
If downloads fail due to storage permission issues in Termux, run:
termux-setup-storageAnd accept the storage permission prompt on your Android screen.
Ytdownloder/
├── main.py # Main CLI execution entry point
├── setup.py # Package installation & command setup
├── requirements.txt # Python dependencies
├── README.md # Documentation
└── ytdownloader/ # Core application source code
├── cli.py # CLI controller workflow
├── downloader.py # yt-dlp metadata and stream download engine
├── ffmpeg_utils.py # FFmpeg stream merging utilities
├── format_parser.py # Stream parsing & audio pairing logic
├── system_stats.py # CPU/RAM system monitor
└── ui/ # Terminal UI components (rich banners, tables, progress)
This project is open source and available under the MIT License.