{"record":{"id":"047ed569c7124a44","repo":"ytdl-org/youtube-dl","slug":"s-said-s-047ed5","errorCode":null,"errorMessage":"%s said: %s","messagePattern":"%s said: %s","errorType":"exception","errorClass":"ExtractorError","httpStatus":null,"severity":"error","filePath":"youtube_dl/extractor/vimeo.py","lineNumber":695,"sourceCode":"                r'\\b(?:playerC|c)onfig\\s*=', webpage, 'info section', video_id)\n            if config.get('view') == 4:\n                config = self._verify_player_video_password(\n                    redirect_url, video_id, headers)\n            info = self._parse_config(config, video_id)\n            self._vimeo_sort_formats(info['formats'])\n            return info\n\n        if re.search(r'<form[^>]+?id=\"pw_form\"', webpage):\n            video_password = self._get_video_password()\n            token, vuid = self._extract_xsrft_and_vuid(webpage)\n            webpage = self._verify_video_password(\n                redirect_url, video_id, video_password, token, vuid)\n\n        vimeo_config = self._extract_vimeo_config(webpage, video_id, default=None)\n        if vimeo_config:\n            seed_status = vimeo_config.get('seed_status') or {}\n            if seed_status.get('state') == 'failed':\n                raise ExtractorError(\n                    '%s said: %s' % (self.IE_NAME, seed_status['title']),\n                    expected=True)\n\n        cc_license = None\n        timestamp = None\n        video_description = None\n        info_dict = {}\n\n        channel_id = self._search_regex(\n            r'vimeo\\.com/channels/([^/]+)', url, 'channel id', default=None)\n        if channel_id:\n            config_url = self._html_search_regex(\n                r'\\bdata-config-url=\"([^\"]+)\"', webpage, 'config URL')\n            video_description = clean_html(get_element_by_class('description', webpage))\n            info_dict.update({\n                'channel_id': channel_id,\n                'channel_url': 'https://vimeo.com/channels/' + channel_id,\n            })","sourceCodeStart":677,"sourceCodeEnd":713,"githubUrl":"https://github.com/ytdl-org/youtube-dl/blob/956b8c585591b401a543e409accb163eeaaa1193/youtube_dl/extractor/vimeo.py#L677-L713","documentation":"Raised by VimeoIE._real_extract when the legacy vimeo_config blob contains seed_status.state == 'failed'; the video's transcode/processing pipeline failed on Vimeo's side and its own title for the failure is propagated. expected=True — the site reports the video is unplayable, no formats exist.","triggerScenarios":"Extracting a Vimeo URL whose embedded config JSON has seed_status = {'state': 'failed', 'title': ...} — typically a video stuck in failed processing after upload, or a retroactively broken transcode.","commonSituations":"Uploader's video stuck at 'Processing' then failed; Vimeo re-encoding breaking old assets; rare vs the API path — this only triggers on pages still serving the legacy vimeo_config markup.","solutions":["Open the video on vimeo.com in a browser — if it also will not play, the asset is broken site-wide; only the uploader can fix it (re-upload).","If you are the owner, re-upload or trigger a re-transcode from the video settings.","Read the propagated title text — Vimeo states the specific failure (e.g. processing error).","Handle as terminal in download queues; retrying yields the same state."],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":"config = extract_vimeo_config(fetch(url))\nstate = ((config or {}).get('seed_status') or {}).get('state')\nif state == 'failed':\n    skip(url, 'vimeo reports failed processing')","typeGuard":null,"tryCatchPattern":"try:\n    ydl.extract_info(url)\nexcept ExtractorError as e:\n    if e.expected and 'said:' in str(e) and 'failed' in getattr(e, 'orig_msg', ''):\n        log_skip(url, str(e))  # Vimeo-side transcode failure: permanent for viewers\n    else:\n        raise","preventionTips":["Verify the video plays in a browser before escalating extractor failures.","If you are the owner, re-upload assets whose processing failed.","Propagate the site's failure title to users so they can distinguish upstream breakage from downloader bugs."],"tags":["vimeo","transcode-failure","site-side-rejection","expected-error"],"backgroundTag":null,"analyzedSha":"956b8c585591b401a543e409accb163eeaaa1193","analyzedAt":"2026-08-14T18:59:47.863Z","schemaVersion":2},"datasetVersion":"2026-08-15T17:31:12.345Z"}