Skip to content

pH-7/Download-Simply-Videos-From-YouTube

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

87 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“₯ Download Any Videos From YouTube

⚑️ High-Quality YouTube Video, Playlist & Channel Downloader πŸŽ₯

Demo. Download any YouTube videos and YouTube playlists

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

New here? Follow these steps and you'll be downloading videos in a few minutes.

Step 1 β€” Install Python

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!

Step 2 β€” Install FFmpeg

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

Step 3 β€” Download this project

Click the green Code button at the top of this page β†’ Download ZIP. Unzip it anywhere you like (your Desktop is fine).

Step 4 β€” Open a terminal inside the project folder

  • 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

Step 5 β€” Set up a sandbox and install libraries

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.txt

Windows: use venv\Scripts\activate instead of source 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) or venv\Scripts\activate (Windows) before using the script.

πŸͺ„ Usage

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.py

You'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.

Download multiple videos at once

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.

Download audio only (MP3) 🎡

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.

🎡 Playlist Downloads

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

πŸ“Ί Channel Downloads

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/@channelname
  • https://www.youtube.com/channel/UCxxxxxxxxx
  • https://www.youtube.com/c/channelname
  • https://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

🧹 Optional: Clean Up Incomplete Downloads

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.py

This 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.


πŸ“¦ Full Setup (for developers)

If you're comfortable with the command line or want to contribute to the project:

  1. Clone the repository

    git clone https://github.com/pH-7/Download-Simply-Videos-From-YouTube.git
    cd Download-Simply-Videos-From-YouTube
  2. Create a virtual environment (keeps this project's packages separate from your system)

    python3 -m venv venv
    source venv/bin/activate

    Windows: use venv\Scripts\activate instead. Run this activation command again each time you open a new terminal.

  3. Install dependencies

    pip install -r requirements.txt
  4. Install FFmpeg β€” see Step 2 of Quick Start above.


πŸ› οΈ Advanced Options

List available formats for a video

To see all quality options for a specific video before downloading:

python download.py --list-formats

Control how many downloads run at the same time

The 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

Customise the script

You can edit download.py to change:

  • Maximum video resolution (currently capped at 1080p)
  • Default output folder
  • Number of retry attempts for failed downloads

πŸ‘¨β€πŸ³ Who made this?

Pierre-Henry Soria

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!

@phenrysay pH-7 YouTube Tech Videos BlueSky

🀝 Contributing

Fork the repo and submit a pull request.

βš–οΈ License

MIT License

⚠️ Disclaimer

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.