- Test playlist extraction safely with clean mpv and yt-dlp commands.
- Fix quoting, playlist ranges, cookies, scripts, and slow extraction.
- Use focused logs to separate extraction failures from playback problems.
- Confirm the Symptom With a Minimal Clean mpv Command
- Check yt-dlp and Options Directly Related to Online Playlists
- Inspect Configuration, Profiles, Bindings, and Scripts
- Check Authentication, Network Access, and Operating System Details
- Use Terminal Output and Focused Logging
- Run a Clean Temporary Test Before Making Permanent Changes
- Quick Fix Checklist
- Frequently Asked Questions
When an mpv YouTube playlist is not playing, the failure usually falls into one of several categories: the shell altered the playlist URL, yt-dlp could not extract the playlist, mpv received only a single video URL, authentication or network access failed, or a configuration option changed playlist behavior. Large playlists can also appear broken while extraction is still running. The safest way to troubleshoot the problem is to begin with a clean command, inspect the terminal output, and add your normal settings back only after the playlist works.
This guide focuses specifically on online YouTube playlists in mpv on Windows, Linux, and macOS. It covers playlists that fail immediately, open only one video, take too long to begin, or stop because of cookies, scripts, profiles, output settings, or an unavailable yt-dlp executable.

Start with free Canva bundles
Browse the freebies page to claim ready-to-use Canva bundles, then get 25% off your first premium bundle after you sign up.
Free to claim. Canva-ready. Instant access.
1. Confirm the Symptom With a Minimal Clean mpv Command
Start by separating a playlist extraction problem from a broader mpv player issue. Open a terminal, Command Prompt, or PowerShell window and run mpv with its configuration disabled. Put the entire URL in quotation marks:
mpv --no-config "https://www.youtube.com/playlist?list=PLAYLIST_ID"Replace PLAYLIST_ID with the actual playlist identifier. Do not shorten the URL or remove its list parameter. Running the command from a terminal matters because a graphical launch may hide the messages that identify the failure.
Success means mpv begins playing an item and recognizes additional playlist entries. Depending on playlist size and network conditions, there may be a delay before playback begins. If this clean command works, stop investigating the network, GPU, and operating system. The problem is probably inside your normal mpv.conf, input bindings, profile, or scripts.
1.1 Test a Single Video Before Testing the Playlist
Run a public single-video URL through the same clean environment:
mpv --no-config "https://www.youtube.com/watch?v=VIDEO_ID"If a single video also fails, the problem is not limited to playlist extraction. Check yt-dlp availability, network access, authentication requirements, and the terminal error. If the video works but the playlist does not, focus on URL quoting, playlist extraction, playlist restrictions, and start or end options.
1.2 Quote the Full Playlist URL
Playlist URLs can contain characters interpreted by shells. The ampersand is especially important because many shells treat it as an operator rather than part of the URL. Copying a watch URL such as https://www.youtube.com/watch?v=VIDEO_ID&list=PLAYLIST_ID without quotes can cause mpv to receive only the portion before the ampersand.
Use double quotation marks around the complete URL in Command Prompt, PowerShell, Bash, Zsh, and most common interactive shells. If quoting fixes the problem, success looks like mpv recognizing the playlist rather than opening only the video named by the v parameter. No other mpv settings need to be changed.
2. Check yt-dlp and Options Directly Related to Online Playlists
mpv does not independently implement every detail of YouTube extraction. Its built-in ytdl hook normally calls an external extractor such as yt-dlp. If yt-dlp is missing, outdated, inaccessible, or returning an error, mpv may fail before opening a playable media URL.
2.1 Verify That yt-dlp Is Available
Check yt-dlp from the same terminal and user account used to start mpv:
yt-dlp --versionIf the shell reports that the command is not found or not recognized, mpv may also be unable to locate it. Install yt-dlp through its official documented method or a trusted operating-system package source. Avoid random binary mirrors and codec packs, which do not solve URL extraction problems.
If yt-dlp is installed outside the system search path, you can test an explicit path through the ytdl hook:
mpv --no-config --script-opts=ytdl_hook-ytdl_path="/full/path/to/yt-dlp" "PLAYLIST_URL"On Windows, use the full path to the executable. Paths containing spaces must be quoted correctly. Success means the terminal shows that the ytdl hook found and invoked the specified program, followed by playlist or stream loading. Once confirmed, place the tested option in the appropriate mpv configuration only if an explicit path is actually necessary.
2.2 Test Playlist Extraction Outside mpv
Ask yt-dlp to inspect the playlist without downloading its media:
yt-dlp --flat-playlist --print "%(playlist_index)s %(id)s %(title)s" "PLAYLIST_URL"This test helps determine whether the extractor can see multiple entries. If it prints a sequence of playlist items, extraction works and the remaining issue is likely mpv integration or configuration. If it returns an authentication, availability, network, or extractor error, changing mpv video output and hardware decoding will not help.
Do not use download commands merely to diagnose playback. The objective is to verify metadata extraction, not save the playlist. Respect the service's terms and the rights associated with the content.
2.3 Review Playlist Start and End Options
Options such as --playlist-start and --playlist-end restrict which entries mpv plays. A stale value in mpv.conf, a profile, a wrapper script, or a launcher can make a playlist appear incomplete or empty. Search your configuration files for:
playlist-start=
playlist-end=Temporarily comment out those lines or override them during a controlled test. Also inspect scripts that construct mpv commands, because they may append playlist limits without displaying them.
Success means the expected first item loads and mpv can advance beyond it. If removing a playlist range restores all entries, stop there. Subtitle, HDR, shader, screenshot, and GPU settings do not need adjustment.
2.4 Allow Time for Large Playlist Extraction
A very large playlist can take noticeably longer to extract than a single video. Network latency, unavailable entries, redirects, and extractor work can all add delay before playback. During this period, do not assume that a blank player window proves a crash.
Watch the terminal for ongoing extraction messages and test a smaller public playlist for comparison. If a small playlist starts quickly while a very large one eventually begins after producing steady terminal activity, the system is working. Stop changing settings unless the delay is unacceptable and reproducible across different playlists.
3. Inspect Configuration, Profiles, Bindings, and Scripts
If --no-config works but your normal command does not, compare the environments methodically. Do not delete the entire configuration directory. Preserve your setup and disable one relevant component at a time.
3.1 Check mpv.conf for Relevant Options
Search mpv.conf and included configuration files for options involving ytdl, script, playlist, cookies, network, audio, video, vo, ao, and hwdec. An invalid format selection can prevent yt-dlp from finding a matching stream. A custom ytdl path can point to an executable that no longer exists.
Options that disable video or audio do not normally prevent playlist extraction, but they can make successful playback look broken. For example, a forced audio track that is unavailable, a disabled video output, or an incompatible output driver can produce sound-only, video-only, or immediate playback errors after extraction succeeds.
First restore playlist extraction with minimal options. Then add format selection, hardware decoding, HDR profiles, shaders, subtitle rules, and output drivers separately. Success after each change means the next option can be tested without losing the known-good baseline.
3.2 Review Profiles and Show Their Contents
A profile may activate automatically based on protocol, extension, output, or another condition. It may also be selected by a launcher. To inspect a named profile, use:
mpv --show-profile=PROFILE_NAMEReplace PROFILE_NAME with the actual profile. Review the displayed options for ytdl, playlist, network, format, output, and script changes. If a clean command works, try the playlist with only the suspected profile enabled. This identifies whether the profile itself reproduces the failure.
3.3 Disable User Scripts Temporarily
Scripts can rewrite URLs, alter playlist entries, control IPC, select formats, resume previous positions, or replace default key behavior. Test without configuration and scripts using --no-config. If necessary, create a temporary empty configuration directory and point mpv to it rather than modifying your real directory.
Reintroduce scripts individually, beginning with those that interact with online services, playlists, history, watch-later data, or yt-dlp. A shader script or screenshot helper is less likely to affect extraction, but it may still interfere after playback starts if it generates an error or changes output behavior.
3.4 Check input.conf and Launcher Commands
An input binding can run a command that replaces the playlist, loads a file in replace mode, advances beyond available entries, or quits after the current item. A desktop shortcut, shell alias, file association, or third-party front end can also append options that differ from your terminal test.
Launch mpv directly from its executable with the quoted URL. If direct launch succeeds, compare the exact command generated by the shortcut or front end. The fix belongs in that launcher, not in unrelated decoding settings.
4. Check Authentication, Network Access, and Operating System Details
Some playlist entries require login, age verification, regional availability, or account-specific access. Private and unlisted content may behave differently depending on whether the extractor has valid authentication information. A playlist can also contain deleted, private, or otherwise unavailable items.
4.1 Diagnose Cookie and Login Problems Carefully
Read the yt-dlp error before supplying cookies. If the output explicitly indicates that authentication is required, consult yt-dlp's official documentation for supported cookie options. Keep cookie files private because they can contain sensitive session data. Do not upload them to troubleshooting forums or place them in shared configuration repositories.
If you configure cookie access through mpv's ytdl integration, test the equivalent authentication method directly with yt-dlp first. Success means yt-dlp can list the permitted playlist entries and mpv can subsequently open them. If only restricted entries fail while public entries play, the player, decoder, and GPU are probably functioning correctly.
4.2 Check Firewalls, Proxies, DNS, and Certificates
If both single videos and playlists fail, test whether yt-dlp can access YouTube from the same account and network. Corporate proxies, filtering DNS services, endpoint security tools, VPN routing, and firewalls can interfere with extraction or media delivery. A browser working is not conclusive because it may use different proxy, DNS, certificate, and authentication settings.
Use the terminal error to guide the next step. A timeout suggests a different path than an authentication error, an unavailable video, or a missing executable. Avoid disabling security software broadly. If a security control blocks the connection, create only a narrowly scoped, administrator-approved rule.
4.3 Separate Extraction Failures From Output Failures
GPU drivers, display servers, audio backends, and hardware decoders become relevant only after mpv obtains a media URL. If the log reports successful extraction followed by video output, audio output, decoder, or device errors, test conservative output settings:
mpv --no-config --hwdec=no "PLAYLIST_URL"Disabling hardware decoding is a diagnostic test, not necessarily the permanent fix. If it restores playback, investigate the selected hardware decoder, GPU driver, video output, HDR chain, and platform support. If extraction fails before any stream is opened, changing hwdec, shaders, subtitles, or screenshot format cannot repair the playlist.
For an audio backend error, confirm whether video is still advancing and test the default audio output under --no-config. For a display-server problem on Linux, compare the default output with your explicitly forced vo setting. Stop changing output settings as soon as the clean default plays reliably.

5. Use Terminal Output and Focused Logging
Terminal output is the most useful tool for an mpv YouTube playlist not playing fix. It reveals whether mpv recognized the URL, invoked the ytdl hook, found yt-dlp, extracted entries, selected streams, and initialized audio and video outputs.
5.1 Increase Relevant Message Detail
Run a focused verbose test:
mpv --no-config --msg-level=ytdl_hook=trace "PLAYLIST_URL"If broader detail is needed, use mpv's verbose mode or raise appropriate message modules without leaving excessive logging enabled permanently. Look for the first meaningful error rather than the final generic failure message.
Common distinctions include:
- Executable not found, which points to the yt-dlp installation or path
- Unsupported or failed extraction, which points to yt-dlp or the URL
- Login required, which points to access and cookies
- No matching format, which points to a custom format rule
- Video or audio output failure after extraction, which points to playback configuration
5.2 Save a Reproducible Log
Write the test output to a file:
mpv --no-config --log-file=mpv-playlist-test.log --msg-level=ytdl_hook=trace "PLAYLIST_URL"Open the log in a text editor and search for ytdl, error, failed, playlist, and the yt-dlp executable name. Before sharing a log, remove private URLs, filesystem paths, usernames, tokens, cookies, and other sensitive information.
5.3 Use the Stats Overlay and Track Information at the Right Stage
Once media starts, mpv's stats overlay, commonly opened with the i key under default bindings, can confirm that decoding and playback are active. Track information helps identify selected video, audio, and subtitle streams. These tools are valuable when the playlist loads but the screen is blank, audio is absent, or the selected track is unexpected.
They do not diagnose a playlist that never reaches stream opening. In that case, prioritize terminal and ytdl-hook output instead of track selection.
6. Run a Clean Temporary Test Before Making Permanent Changes
Use a short test sequence so that each result narrows the cause:
- Run one public single-video URL with
--no-config. - Run a small public playlist with
--no-config. - Run the failing playlist with
--no-configand correct quoting. - Check playlist extraction directly with yt-dlp.
- Capture a focused mpv log if extraction and playback results disagree.
- Add your normal profile, scripts, format selection, hardware decoding, shaders, subtitles, and output options back one category at a time.
Keep a copy of the last working command. When one added option causes the failure to return, remove or correct that option and retest. This is more reliable than changing several settings simultaneously because it gives every result a clear interpretation.
Stop troubleshooting when the expected entries load, playback advances to the next item, and your required audio, video, subtitles, HDR processing, or other features work. Continuing to change settings after success can create a second, unrelated problem.
7. Quick Fix Checklist
- Put the complete YouTube playlist URL in quotation marks.
- Test the playlist with
mpv --no-config. - Confirm that a public single video works under the same conditions.
- Run
yt-dlp --versionfrom the same terminal. - Use yt-dlp's flat playlist output to confirm multiple entries are visible.
- Inspect
playlist-startandplaylist-endin configs and launchers. - Wait while a large playlist is actively being extracted.
- Read terminal output before changing GPU or audio settings.
- Investigate cookies only when the error indicates restricted access.
- Disable custom profiles and scripts temporarily, then restore them individually.
- Test
--hwdec=noonly if extraction succeeds but video output fails. - Stop changing settings when the playlist loads and advances correctly.
8. Frequently Asked Questions
8.1 Why Does mpv Play Only One Video From a YouTube Playlist?
The shell may have removed the URL's list parameter because the full watch URL was not quoted. It is also possible that mpv was given a single-video URL without a valid playlist identifier, or that playlist range options restricted playback. Quote the entire URL and test the canonical playlist URL with --no-config.
8.2 Why Does a Large Playlist Take So Long to Start?
mpv may be waiting for yt-dlp to extract playlist metadata. Large playlists, unavailable entries, network latency, and service responses can increase startup time. Watch the terminal. If it shows continuing extraction activity and a smaller playlist starts normally, waiting is more appropriate than changing decoder settings.
8.3 Does Updating yt-dlp Fix Every Playlist Failure?
No. A current, working extractor is important, but it cannot fix incorrect shell quoting, private content without authorization, blocked network access, invalid custom format rules, or a broken mpv output configuration. Update through an official or trusted source when appropriate, then use the exact error to identify the remaining cause.
8.4 Should I Delete My mpv Configuration Folder?
No. Begin with --no-config, which provides a reversible clean test without destroying settings. If that works, preserve your configuration and isolate the relevant option, profile, script, or binding. Deleting everything removes useful evidence and makes restoration harder.
8.5 Can Hardware Decoding or HDR Settings Break Playlist Extraction?
They generally affect playback after extraction, not yt-dlp's ability to discover playlist entries. Test --hwdec=no only when the terminal shows successful extraction followed by decoder, GPU, or video-output errors. If yt-dlp fails first, focus on the URL, executable path, network, cookies, or extraction message.
8.6 What Does a Successful Fix Look Like?
A successful result is not merely an open mpv window. The terminal should show that the online URL was processed, playback should start, and mpv should advance to another expected playlist entry. If those conditions are met under your normal configuration, stop changing options and keep the known-good command or configuration as your baseline.