ytdlp.org

Practical yt-dlp docs: install, commands, fixes, cookies, and workflows.

Current section

Command guide

How to download playlists with yt-dlp

Playlist downloads are easy to start and easy to let turn into a mess. The real goal is not just downloading every item. It is getting the whole playlist cleanly, without duplicate files, broken naming, or chaos when you rerun it.

Quick answer

yt-dlp "PLAYLIST_URL"

That downloads the playlist using yt-dlp defaults. It is the right starting point before you add extra workflow flags.

Download only part of a playlist

yt-dlp --playlist-start 5 --playlist-end 12 "PLAYLIST_URL"

Use this when you want a range instead of the full list. This is useful for testing before you commit to a very large playlist.

Keep playlist downloads organized

yt-dlp -o "%(playlist_title)s/%(playlist_index)s - %(title)s.%(ext)s" "PLAYLIST_URL"

This is where playlist downloads stop feeling random. Good output templates save a lot of cleanup later.

The real playlist pain point: reruns

The first run is easy. The second and third runs are where people get duplicate files and messy folders. If you are downloading evolving playlists repeatedly, you should start thinking about archive files and predictable naming.

Most common playlist mistakes

  • • downloading into a flat folder with no structure
  • • rerunning the command with no duplicate-management strategy
  • • testing on a huge playlist before checking naming/output first
  • • assuming private playlist items will work without cookies or auth

Practical recommendation

If the playlist is large, do one test pass first with a short range and your final output template. That saves a lot of cleanup if your naming or folder structure is wrong.

Workflow

Turn this into a repeatable workflow

If you are doing this more than once, the real win is not memorizing more flags. It is making the workflow reusable, organized, and less manual. That is where Importly starts making sense.