ytdl-org/youtube-dl · error · ExtractorError
Unable to get playlist info
Error message
Unable to get playlist info
What it means
QQPlaylistIE raises ExtractorError('Unable to get playlist info') when the cdlist array in the playlist API response is empty and there is no 'code' field to report. It is the companion fallback to the 'QQ Music said: error %d' branch (qqmusic.py:357): the server returned a syntactically valid JSONP payload but with no playlist data and no error code. Not marked expected=True.
Source
Thrown at youtube_dl/extractor/qqmusic.py:360
'description': '民谣的歌曲易于传唱、、歌词朗朗伤口、旋律简单温馨。属于那种才入耳孔。却上心头的感觉。没有太多的复杂情绪。简单而直接地表达乐者的情绪,就是这样的简单才易入人心。',
},
'playlist_count': 20,
}]
def _real_extract(self, url):
list_id = self._match_id(url)
list_json = self._download_json(
'http://i.y.qq.com/qzone-music/fcg-bin/fcg_ucc_getcdinfo_byids_cp.fcg',
list_id, 'Download list page',
query={'type': 1, 'json': 1, 'utf8': 1, 'onlysong': 0, 'disstid': list_id},
transform_source=strip_jsonp)
if not len(list_json.get('cdlist', [])):
if list_json.get('code'):
raise ExtractorError(
'QQ Music said: error %d in fetching playlist info' % list_json['code'],
expected=True)
raise ExtractorError('Unable to get playlist info')
cdlist = list_json['cdlist'][0]
entries = [self.url_result(
'https://y.qq.com/n/yqq/song/' + song['songmid'] + '.html', 'QQMusic', song['songmid'])
for song in cdlist['songlist']]
list_name = cdlist.get('dissname')
list_description = clean_html(unescapeHTML(cdlist.get('desc')))
return self.playlist_result(entries, list_id, list_name, list_description)
View on GitHub (pinned to 956b8c5855)
Solutions
- Update youtube-dl / yt-dlp first — QQ Music endpoint changes are common and quickly patched.
- Verify the playlist ID exists by opening the page in a browser.
- Confirm the disstid was extracted intact from the URL (no truncation or extra characters).
- If the playlist is private/deleted, obtain the owner's shared link or drop it from the queue.
Defensive patterns
Strategy: retry
Try / catch
try:
info = ydl.extract_info(url)
except ExtractorError as e:
if 'Unable to get playlist info' in str(e):
update_ytdl_and_retry_once(url) Prevention
- Keep youtube-dl current — empty-cdlist-without-code usually means API drift.
- Confirm playlist existence in a browser before reporting a bug.
- Distinguish this branch from the coded-error branch when triaging.
When it happens
Trigger: The fcg_ucc_getcdinfo_byids_cp.fcg endpoint returns e.g. {'cdlist': []} with no code — typically for malformed disstids, API behavior changes, or responses shaped differently than the extractor anticipates (e.g. code present but falsy, like 0).
Common situations: API schema drift after a QQ Music update breaking older youtube-dl releases; deleted/private playlists that no longer return a code; hand-mangled playlist IDs that fall through the code check.
Related errors
- QQ Music said: error %d in fetching playlist info
- Invalid url for track %d of album url %s
- The page doesn't contain any tracks
- Course %s does not exist
- %s: No songs found, try using proxy
AI-assisted analysis of ytdl-org/youtube-dl@956b8c5855 (2026-08-14).
Data as JSON: /api/errors/5dcf7e7aad8da642.
Report an issue: GitHub.