{"record":{"id":"c2b624b595ca4e90","repo":"ytdl-org/youtube-dl","slug":"unsupported-video-type","errorCode":null,"errorMessage":"Unsupported video type","messagePattern":"Unsupported video type","errorType":"exception","errorClass":"ExtractorError","httpStatus":null,"severity":"error","filePath":"youtube_dl/extractor/metacafe.py","lineNumber":251,"sourceCode":"            if flashvars:\n                video_url = []\n                for source in flashvars.get('sources'):\n                    source_url = source.get('src')\n                    if not source_url:\n                        continue\n                    ext = mimetype2ext(source.get('type')) or determine_ext(source_url)\n                    if ext == 'm3u8':\n                        video_url.extend(self._extract_m3u8_formats(\n                            source_url, video_id, 'mp4',\n                            'm3u8_native', m3u8_id='hls', fatal=False))\n                    else:\n                        video_url.append({\n                            'url': source_url,\n                            'ext': ext,\n                        })\n\n        if video_url is None:\n            raise ExtractorError('Unsupported video type')\n\n        description = self._html_search_meta(\n            ['og:description', 'twitter:description', 'description'],\n            webpage, 'title', fatal=False)\n        thumbnail = self._html_search_meta(\n            ['og:image', 'twitter:image'], webpage, 'title', fatal=False)\n        video_uploader = self._html_search_regex(\n            r'submitter=(.*?);|googletag\\.pubads\\(\\)\\.setTargeting\\(\"(?:channel|submiter)\",\"([^\"]+)\"\\);',\n            webpage, 'uploader nickname', fatal=False)\n        duration = int_or_none(\n            self._html_search_meta('video:duration', webpage, default=None))\n        age_limit = (\n            18\n            if re.search(r'(?:\"contentRating\":|\"rating\",)\"restricted\"', webpage)\n            else 0)\n\n        if isinstance(video_url, list):\n            formats = video_url","sourceCodeStart":233,"sourceCodeEnd":269,"githubUrl":"https://github.com/ytdl-org/youtube-dl/blob/956b8c585591b401a543e409accb163eeaaa1193/youtube_dl/extractor/metacafe.py#L233-L269","documentation":"Final fallback in the Metacafe extractor: after the flashvars branch, it tries the swfobject config XML and collects <source> entries into video_url; if video_url is still None at the end of _real_extract, 'Unsupported video type' is raised. It means every known embedding strategy for this page produced nothing usable. Not expected=True.","triggerScenarios":"None of the probes matched: no mediaURL/videoURL param, no <video src>, no usable flashvars mediaData, and either no swfobject embedSWF config URL or a config XML with no playable <source> elements (all branches left video_url None).","commonSituations":"Metacafe page fully redesigned so all legacy markers are gone; video served only via a DRM/preview mechanism the extractor never supported; geo-blocked page serving an empty shell; the site (now largely defunct) serving error pages with 200 status.","solutions":["Update to the latest youtube-dl or yt-dlp; Metacafe handling has seen multiple rewrites.","Run with -v to identify which embedding branch failed last and inspect the downloaded page.","Check the URL in a browser to confirm the video still plays there at all.","If the site is dead or fully redesigned, use an archived page (web.archive.org) to locate the original media URL and download it directly."],"exampleFix":null,"handlingStrategy":"fallback","validationCode":null,"typeGuard":null,"tryCatchPattern":"try:\n    info = ydl.extract_info(url, download=False)\nexcept ExtractorError as e:\n    if 'Unsupported video type' in str(e):\n        try_webarchive_or_browser_devtools(url)  # last resort: recover media URL manually\n    else:\n        raise","preventionTips":["Treat Metacafe URLs as best-effort; the legacy site frequently serves unextractable pages.","For archival needs, fetch the page via web.archive.org and pull the media URL from the snapshot."],"tags":["fallback-exhausted","scrape-failure","legacy-site"],"backgroundTag":null,"analyzedSha":"956b8c585591b401a543e409accb163eeaaa1193","analyzedAt":"2026-08-14T18:59:47.863Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}