Skip to main content

YouTube Playlist Downloader & Archiver

CI Python Version License: MIT Powered by yt-dlp Code style: ruff Patreon

Fast, lightweight local Web UI & CLI to archive public, unlisted, and private YouTube playlists as high-quality MP3, M4A, or Opus audio files with metadata and album art.

YouTube Playlist Downloader Desktop Interface


⚡ Quick Start

1. Prerequisites (Windows PowerShell)

winget install Gyan.FFmpeg DenoLand.Deno

(Requires Python 3.11+ and uv)

2. Install & Run

Option A: Run from anywhere with uv tool (Zero cloning)

uv tool install git+https://github.com/tahsinsoyak/youtube-playlist-download.git
youtube-playlist-download ui

Option B: Clone & run (or double-click run.bat on Windows)

git clone https://github.com/tahsinsoyak/youtube-playlist-download.git
cd youtube-playlist-download
uv run youtube-playlist-download ui

Your browser will automatically open at http://127.0.0.1:8765.


🔒 Private Playlists (Liked Videos, Watch Later)

Download your private and unlisted playlists safely on your own machine:

  1. Sign in to YouTube in your browser (Firefox recommended on Windows).
  2. Select your browser in the Web UI session dropdown.
  3. Paste URL & download — in-memory session access only, zero cookies on disk, 100% localhost.

🖥️ Command-Line Interface (CLI)

Prefer the terminal? Run downloads directly:

# Public playlist (MP3, best quality)
uv run youtube-playlist-download download "PLAYLIST_URL" --confirm-rights

# Private playlist via Firefox session
uv run youtube-playlist-download download "PLAYLIST_URL" --browser firefox --confirm-rights

# Specific tracks & format (Opus, items 1 to 10)
uv run youtube-playlist-download download "PLAYLIST_URL" --audio-format opus --playlist-items "1:10" --confirm-rights

✨ Highlights

  • Local Web UI & CLI: Zero heavy build steps; runs on pure HTML5/CSS3/ES6 and fast Typer CLI.
  • Dark & Light Themes: Tactile cassette-deck dark mode and crisp studio light paper mode.
  • Folder Reveal & Copy Path: One-click button in the UI to open downloaded folders or copy the path.
  • Sequential Queue: FIFO queue processes one playlist at a time to prevent YouTube rate-limiting.
  • Smart History & Clean-up: Review recent download outcomes and clear history with one click.
  • Audiophile Audio & Tags: High-quality VBR encoding, embedded ID3 tags, and album cover art.
  • Duplicate Prevention: Automated download archive (.playlist-audio-archive.txt) skips existing tracks.
  • Crash Resilience: Queue state persists locally across app restarts.

📚 Documentation


💖 Support the Project

If this project helps you archive and organize your music library, consider supporting ongoing maintenance and updates:

Support on Patreon


📄 License

MIT License. See LICENSE for details.

Metadata

Release files for youtube-playlist-download 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for youtube-playlist-download 0.2.0
File Size Uploaded Provenance Actions
youtube_playlist_download-0.2.0.tar.gz 5.0 MB Without provenance Details for youtube_playlist_download-0.2.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for youtube-playlist-download 0.2.0
File Interpreter ABI Platform Actions
youtube_playlist_download-0.2.0-py3-none-any.whl Python 3 none any Details for youtube_playlist_download-0.2.0-py3-none-any.whl

Total release size: 5.1 MB

Release files / youtube_playlist_download-0.2.0.tar.gz

Download URL youtube_playlist_download-0.2.0.tar.gz
Size 5.0 MB
Tags Source
SHA-256 checksum
How to use checksums
b8fa0b543d4e9a2b17f1cae1a83c25a2f6fc986209286ac7ecbcbdda2e6be003
BLAKE2b-256 checksum
How to use checksums
8a806f0119f21c6803cbd308e230014a7bbffa8c345958c2f1cc41e5e5ca3a98
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / youtube_playlist_download-0.2.0-py3-none-any.whl

Download URL youtube_playlist_download-0.2.0-py3-none-any.whl
Size 44.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ed8329c45ef2615d1b011c4d67ac0d3013c8957e27574cfc545ec3b2223c96a9
BLAKE2b-256 checksum
How to use checksums
cf52c899ffb83099688f992053b4099335de1ae2f0f3d83adc958af443809149
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Security for youtube-playlist-download 0.2.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page