ytdl-org/youtube-dl · error · ExtractorError
%s
Error message
%s
What it means
Raised by the Metacafe extractor when the downloaded webpage contains an element with class 'notfound-page-title' — the rendered 404/not-found heading. The element's text is used verbatim as the error message, so the user sees Metacafe's own not-found title (e.g. 'WE COULDN'T FIND THAT PAGE'). Expected=True.
Source
Thrown at youtube_dl/extractor/metacafe.py:162
return self.url_result('theplatform:%s' % ext_id, 'ThePlatform')
headers = {
# Disable family filter
'Cookie': 'user=%s; ' % compat_urllib_parse.quote(json.dumps({'ffilter': False}))
}
# AnyClip videos require the flashversion cookie so that we get the link
# to the mp4 file
if video_id.startswith('an-'):
headers['Cookie'] += 'flashVersion=0; '
# Retrieve video webpage to extract further information
webpage = self._download_webpage(url, video_id, headers=headers)
error = get_element_by_attribute(
'class', 'notfound-page-title', webpage)
if error:
raise ExtractorError(error, expected=True)
video_title = self._html_search_meta(
['og:title', 'twitter:title'], webpage, 'title', default=None) or self._search_regex(r'<h1>(.*?)</h1>', webpage, 'title')
# Extract URL, uploader and title from webpage
self.report_extraction(video_id)
video_url = None
mobj = re.search(r'(?m)&(?:media|video)URL=([^&]+)', webpage)
if mobj is not None:
mediaURL = compat_urllib_parse_unquote(mobj.group(1))
video_ext = determine_ext(mediaURL)
# Extract gdaKey if available
mobj = re.search(r'(?m)&gdaKey=(.*?)&', webpage)
if mobj is None:
video_url = mediaURL
else:
gdaKey = mobj.group(1)View on GitHub (pinned to 956b8c5855)
Solutions
- Confirm the URL in a browser — Metacafe will show its not-found page.
- Re-find the video through Metacafe search or the submitter's profile to get the current URL.
- No workaround exists client-side for removed videos; source the clip elsewhere.
Defensive patterns
Strategy: try-catch
Try / catch
try:
info = ydl.extract_info(url, download=False)
except ExtractorError as e:
if 'couldn' in str(e).lower() or 'not found' in str(e).lower():
mark_permanently_dead(url) # Metacafe rendered its 404 page
else:
raise Prevention
- Double-check Metacafe ids for typos before download.
- Re-resolve video URLs from Metacafe search; old share links rot quickly.
When it happens
Trigger: self._download_webpage(url, ...) succeeds but the returned HTML contains any tag with class='notfound-page-title'; get_element_by_attribute returns its text, which is truthy.
Common situations: Video removed for copyright or terms violations; typo in the video id segment of the URL; Metacafe rewriting old URLs; rare false positive if an unrelated page element reuses the class name.
Related errors
- Video %s does not exist
- Course %s does not exist
- That clip does not exist.
- The video is not found.
- This video is no longer available.
AI-assisted analysis of ytdl-org/youtube-dl@956b8c5855 (2026-08-14).
Data as JSON: /api/errors/8bafb509a07d75f3.
Report an issue: GitHub.