β‘οΈ High-Quality YouTube Video, Playlist & Channel Downloader π₯
Note
Download any YouTube video, playlist, or entire channel just by pasting a URL. Videos are saved in high quality β no account needed.
| π₯ | Download any YouTube video as MP4 |
| π΅ | Download audio-only as MP3 β great for music and podcasts |
| π | Download entire playlists, each saved in its own numbered folder |
| πΊ | Download a whole YouTube channel |
| β‘ | Download multiple URLs simultaneously |
- π Quick Start
- πͺ Usage
- π΅ Playlist Downloads
- πΊ Channel Downloads
- π§Ή Clean Up Incomplete Downloads
- π¦ Full Setup (for developers)
- π οΈ Advanced Options
- π¨βπ³ Who made this?
- π€ Contributing
- βοΈ License
New here? Follow these steps and you'll be downloading videos in a few minutes.
Download Python 3.10 or newer and install it.
Windows users: during installation, tick the "Add Python to PATH" checkbox at the bottom of the first screen β easy to miss!
FFmpeg is a free tool that handles saving and converting video files.
-
macOS β open Terminal and run:
brew install ffmpeg
Don't have Homebrew? Install it here first (one command, takes about a minute).
-
Windows β download FFmpeg here, unzip it, and add it to your PATH. (step-by-step guide)
-
Linux (Ubuntu/Debian) β open a terminal and run:
sudo apt-get install ffmpeg
Click the green Code button at the top of this page β Download ZIP. Unzip it anywhere you like (your Desktop is fine).
- macOS: right-click the unzipped folder β New Terminal at Folder
- Windows: open the folder, click the address bar at the top, type
cmd, press Enter - Linux: right-click the folder β Open Terminal
Since Python 3.11, macOS and Linux block global pip install (PEP 668) to protect system-managed packages. The solution is to install dependencies inside a virtual environment, an isolated sandbox scoped to this project.
Run these three commands in order:
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txtWindows: use
venv\Scripts\activateinstead ofsource venv/bin/activate.
You'll see (venv) appear at the start of your prompt β that means the sandbox is active. That's it β you're ready!
Each time you open a new terminal, run
source venv/bin/activate(macOS/Linux) orvenv\Scripts\activate(Windows) before using the script.
First, make sure your virtual environment is active. If you see
(venv)at the start of your terminal prompt, you're good. If not, run:source venv/bin/activate(Windows:
venv\Scripts\activate)
In your terminal, run:
python download.pyYou'll be asked for a YouTube URL. Paste it and press Enter β that's it!
Enter YouTube URL(s): https://www.youtube.com/watch?v=Hhb8ghB8lMg
Your video will be saved in the downloads/ folder.
Paste multiple URLs separated by commas:
Enter YouTube URL(s): https://youtu.be/abc123, https://youtu.be/def456, https://youtu.be/ghi789
Or press Enter on an empty prompt to switch to one-URL-per-line mode:
Enter YouTube URL(s): [press Enter]
π Multi-line mode activated!
URL 1: https://youtu.be/abc123
URL 2: https://youtu.be/def456
URL 3: [press Enter again to finish]
You can freely mix videos, playlists, and channel URLs in the same command β the script handles each one correctly.
If one URL fails, the rest keep downloading. A dead link or private video won't stop your other downloads.
When the script asks for a format, choose option 2:
Choose format:
1. MP4 Video (default)
2. MP3 Audio only
Enter choice (1-2, default=1): 2
Great for music playlists, podcasts, and lectures.
Paste a playlist URL and every video in it will be downloaded and saved in its own folder:
Enter YouTube URL(s): https://www.youtube.com/playlist?list=PLxxxxxxx
You can download multiple playlists at once by separating their URLs with commas.
MP3 mode works with playlists too β all audio files are saved in the same numbered folder structure.
π Example result:
downloads/
βββ My Awesome Playlist/
β βββ 01-First Video.mp4
β βββ 02-Second Video.mp4
β βββ 03-Third Video.mp4
βββ Another Great Playlist/
β βββ 01-Another Video.mp4
β βββ 02-Last Video.mp4
βββ Individual Video.mp4
Paste any YouTube channel URL to download all its videos:
Enter YouTube URL(s): https://www.youtube.com/@channelname
All these URL formats work automatically:
https://www.youtube.com/@channelnamehttps://www.youtube.com/channel/UCxxxxxxxxxhttps://www.youtube.com/c/channelnamehttps://www.youtube.com/user/username
Videos are saved in a folder named after the channel, sorted by upload date.
MP3 mode works for channels too β useful for music or podcast channels to save disk space.
Heads up: channels with hundreds of videos can take a long time to download. The script paces requests automatically to avoid being blocked by YouTube.
π Channel file structure example:
downloads/
βββ TechChannel/
β βββ 20240815-Latest Tech Review.mp4
β βββ 20240810-Programming Tutorial.mp4
β βββ 20240805-Tech News Update.mp4
βββ Individual Video.mp4
If a download was interrupted (e.g. you lost internet or closed the terminal), some unfinished files may be left in the downloads/ folder. To remove them, run:
python3 cleanup_downloads.pyThis only deletes incomplete files (.part, .ytdl, temp fragments) β your finished downloads are untouched. No need to activate the virtual environment for this; it uses no external dependencies. Most people will never need this.
If you're comfortable with the command line or want to contribute to the project:
-
Clone the repository
git clone https://github.com/pH-7/Download-Simply-Videos-From-YouTube.git cd Download-Simply-Videos-From-YouTube -
Create a virtual environment (keeps this project's packages separate from your system)
python3 -m venv venv source venv/bin/activateWindows: use
venv\Scripts\activateinstead. Run this activation command again each time you open a new terminal. -
Install dependencies
pip install -r requirements.txt
-
Install FFmpeg β see Step 2 of Quick Start above.
To see all quality options for a specific video before downloading:
python download.py --list-formatsThe script supports simultaneous downloads. When downloading multiple videos, you'll be asked how many to run in parallel (1β5, default is 3). More = faster, but uses more bandwidth.
Number of concurrent downloads (1-5, default=3): 5
You can edit download.py to change:
- Maximum video resolution (currently capped at 1080p)
- Default output folder
- Number of retry attempts for failed downloads
Pierre-Henry Soria β software AI engineer, passionate about automation, content creation, and building tools that save time.
βοΈ Buy me a coffee if this saved you some time!
Fork the repo and submit a pull request.
This script is for educational purposes only. Before using this script, please ensure you have the right to download the content and that you comply with YouTube's terms of service.
