#908: get YouTube playlists past the ~100-track cap (yt-dlp #16943 workaround)

YouTube Music 'Liked Music' (and any large playlist) only returned ~104 tracks. Diagnosed it
to a YouTube/yt-dlp regression (upstream #16943): the webpage-based playlist path stops at the
first ~100-item continuation page. Not a SoulSync cap (no limit in the parse path) and not the
user's cookies/IP — reproduced on a fully-served public playlist.

Fix: pass extractor_args youtubetab:skip=webpage so yt-dlp pages via the InnerTube API instead.
Verified live on the reporter's setup: 100 -> 200 entries on a large playlist (the workaround is
itself partial upstream, but a major improvement until yt-dlp PR #16948 lands). Single touch point
— parse_youtube_playlist is the only place that lists a YouTube playlist.
This commit is contained in:
BoulderBadgeDad 2026-06-23 13:35:04 -07:00
parent 9f5bc0de89
commit fc2c38ad97

View file

@ -14993,7 +14993,12 @@ def parse_youtube_playlist(url):
'no_warnings': True,
'extract_flat': 'in_playlist', # Only extract basic info, no individual video metadata
'skip_download': True, # Don't download, just extract IDs and basic info
'lazy_playlist': False, # Force full playlist resolution (prevents ~100 entry cap)
'lazy_playlist': False, # Force full playlist resolution
# #908 / yt-dlp #16943: a YouTube-side regression caps the webpage-based playlist
# path at the first ~100-item page (Liked Music came back as only 104). Skipping the
# webpage and paging via the InnerTube API directly gets far more — verified live
# 100 -> 200+ on a large playlist. Remove once the upstream fix (PR #16948) ships.
'extractor_args': {'youtubetab': {'skip': ['webpage']}},
}
ydl_opts.update(_youtube_cookie_opts())