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
1K
x32x01
x32x01
x32x01
Replies
0
Views
2K
x32x01
x32x01
x32x01
Replies
0
Views
2K
x32x01
x32x01
x32x01
Replies
0
Views
1K
x32x01
x32x01
TAGs: Tags
beginner python automation download youtube playlist python networking script python scripting projects python youtube downloader pytube playlist script video download automation youtube automation python youtube playlist downloader youtube video downloader
Register & Login Faster
Forgot your password?

Latest Resources

Forum Statistics
Threads
745
Messages
750
Members
71
Latest Member
Mariaunmax
Back
Top