YouTube Playlist Downloader Script in Python

x32x01
  • by x32x01 ||
Downloading a full YouTube playlist manually can be frustrating 😤.
One video at a time, ads everywhere, and sometimes broken download links.
This Python YouTube Playlist Downloader Script solves that problem by allowing you to download entire playlists automatically with just one command 🚀.
The script uses popular Python libraries to fetch playlist videos and download them in 360p or 720p resolution.

Why Use a Python Playlist Downloader? 🧠​

This script is perfect if you want:
  • 📂 Download full playlists at once
  • ⚡ Save time and effort
  • 🎯 Choose video resolution
  • 🤖 Automate repetitive tasks
  • 🧑‍💻 Practice real-world Python scripting
It’s especially useful for:
  • Developers
  • Automation learners
  • Ethical hacking & scripting practice
  • Content archiving



Script Requirements 📦​

Before running the script, make sure you have these Python libraries installed:
Code:
pip install requests
pip install pytube
pip install youtube-dl
These libraries handle:
  • 🌐 HTTP requests
  • 🎥 YouTube video fetching
  • 📥 Video downloading



How the Playlist Downloader Script Works ⚙️​

The script follows a clear flow:
  1. Ask for the YouTube playlist URL
  2. Ask for desired video resolution (360p or 720p)
  3. Extract all video links from the playlist
  4. Create a folder for the playlist
  5. Download videos one by one
  6. Skip already downloaded files
Simple, efficient, and automated 🔥.



Python YouTube Playlist Downloader Script 🧑‍💻​

Here’s the full working script:
Python:
#!python3
# Usage -
# 1. open cmd
# 2. cd to the folder where these files are present
# 3. type - python ytdown.py

import os
from pytube import YouTube
import requests
import re

def foldertitle(url):
    try:
        res = requests.get(url)
    except:
        print('No internet connection')
        return False

    if 'list=' in url:
        return url.split('=')[-1]
    else:
        print('Invalid playlist URL')
        return False

def link_snatcher(url):
    links = []
    try:
        res = requests.get(url)
    except:
        print('No internet connection')
        return False

    playlist_id = url.split('=')[-1]
    pattern = re.compile(r'watch\?v=\S+?list=' + playlist_id)
    matches = re.findall(pattern, res.text)

    for match in matches:
        video_url = 'https://youtube.com/' + match.replace('&', '&')
        if video_url not in links:
            links.append(video_url)

    return links

BASE_DIR = os.getcwd()

print('WELCOME TO PLAYLIST DOWNLOADER')

url = input('\nEnter YouTube playlist URL:\n')
resolution = input('\nChoose resolution (360p or 720p):\n').lower()

video_links = link_snatcher(url)

folder_name = foldertitle(url)[:7]
os.makedirs(folder_name, exist_ok=True)
os.chdir(folder_name)

SAVE_PATH = os.getcwd()
print(f'\nVideos will be saved to: {SAVE_PATH}')

for link in video_links:
    try:
        yt = YouTube(link)
        title = yt.title.replace('|', '') + '.mp4'
    except:
        print('Error fetching video info')
        continue

    if resolution in ['360p', '720p']:
        stream = yt.streams.filter(progressive=True, file_extension='mp4', res=resolution).first()
        if stream:
            print(f'Downloading {stream.default_filename}')
            stream.download(SAVE_PATH)
            print('Download completed ✅')
        else:
            print('Resolution not available ❌')
    else:
        print('Invalid resolution selected ❌')

print('\nAll videos downloaded successfully 🎉')

Key Features of This Script ⭐​

  • 📥 Downloads full YouTube playlists
  • 🎞️ Supports 360p and 720p resolution
  • 🗂️ Automatically creates folders
  • 🔁 Skips existing videos
  • ⚡ Fast and efficient
  • 🧠 Easy to modify and extend



Important Notes Before Running the Script ⚠️​

Keep these points in mind:
  • 🌐 Stable internet connection is required
  • ❌ Invalid playlist URLs will cause errors
  • 📺 Some videos may not support selected resolution
  • 🔒 Private or deleted videos will be skipped



Final Thoughts 💡​

This YouTube Playlist Downloader Script in Python is a great example of how Python can automate real-world tasks with ease.
If you’re learning:
  • Python scripting
  • Automation
  • Networking basics
  • Tool development
This project is a must-have in your portfolio 🚀.
 
Last edited:
Related Threads
x32x01
Replies
0
Views
2K
x32x01
x32x01
x32x01
Replies
0
Views
715
x32x01
x32x01
x32x01
Replies
0
Views
1K
x32x01
x32x01
x32x01
Replies
0
Views
1K
x32x01
x32x01
x32x01
Replies
0
Views
1K
x32x01
x32x01
Register & Login Faster
Forgot your password?
Forum Statistics
Threads
820
Messages
826
Members
74
Latest Member
logic_mode
Back
Top