{"record":{"id":"3e1f57f692070c59","repo":"ytdl-org/youtube-dl","slug":"unable-to-find-provider-video-id","errorCode":null,"errorMessage":"Unable to find provider video id","messagePattern":"Unable to find provider video id","errorType":"exception","errorClass":"ExtractorError","httpStatus":null,"severity":"error","filePath":"youtube_dl/extractor/voxmedia.py","lineNumber":72,"sourceCode":"            info['formats'] = formats\n            info['duration'] = int_or_none(asset.get('duration'))\n            return info\n\n        for provider_video_type in ('ooyala', 'youtube', 'brightcove'):\n            provider_video_id = video_data.get('%s_id' % provider_video_type)\n            if not provider_video_id:\n                continue\n            if provider_video_type == 'brightcove':\n                info['formats'] = self._extract_once_formats(provider_video_id)\n                self._sort_formats(info['formats'])\n            else:\n                info.update({\n                    '_type': 'url_transparent',\n                    'url': provider_video_id if provider_video_type == 'youtube' else '%s:%s' % (provider_video_type, provider_video_id),\n                    'ie_key': provider_video_type.capitalize(),\n                })\n            return info\n        raise ExtractorError('Unable to find provider video id')\n\n\nclass VoxMediaIE(InfoExtractor):\n    _VALID_URL = r'https?://(?:www\\.)?(?:(?:theverge|vox|sbnation|eater|polygon|curbed|racked|funnyordie)\\.com|recode\\.net)/(?:[^/]+/)*(?P<id>[^/?]+)'\n    _TESTS = [{\n        # Volume embed, Youtube\n        'url': 'http://www.theverge.com/2014/6/27/5849272/material-world-how-google-discovered-what-software-is-made-of',\n        'info_dict': {\n            'id': 'j4mLW6x17VM',\n            'ext': 'mp4',\n            'title': 'Material world: how Google discovered what software is made of',\n            'description': 'md5:dfc17e7715e3b542d66e33a109861382',\n            'upload_date': '20190710',\n            'uploader_id': 'TheVerge',\n            'uploader': 'The Verge',\n        },\n        'add_ie': ['Youtube'],\n    }, {","sourceCodeStart":54,"sourceCodeEnd":90,"githubUrl":"https://github.com/ytdl-org/youtube-dl/blob/956b8c585591b401a543e409accb163eeaaa1193/youtube_dl/extractor/voxmedia.py#L54-L90","documentation":"VoxMedia provider-resolution error: after iterating the page's video entries (checking provider_video_type/provider_video_id for brightcove/youtube/etc.), no entry yielded a usable provider id, so the extractor gives up with 'Unable to find provider video id' (not expected — potentially a parsing gap).","triggerScenarios":"A Vox Media article (theverge/vox/sbnation/eater/polygon/curbed/racked/recode) whose embedded video uses a provider or markup shape the entry loop does not recognize, so every entry is skipped via 'continue' and the final raise fires.","commonSituations":"Site redesigns changing the video-init JSON schema; new embed providers (e.g. streamed/Ooyala successors); articles with only newsletter-only or externally-hosted video.","solutions":["Update to yt-dlp, which has newer VoxMedia handling for modern embeds","Open the article, copy the underlying embed URL (youtube/brightcove) directly and download that","Report the URL as a broken extractor to the tracker so the schema is updated"],"exampleFix":null,"handlingStrategy":"fallback","validationCode":null,"typeGuard":null,"tryCatchPattern":"from youtube_dl.utils import ExtractorError\ntry:\n    ydl.extract_info(article_url)\nexcept ExtractorError as e:\n    if 'provider video id' in str(e):\n        # fallback: find the embed manually\n        embed = find_embed_url(fetch_html(article_url))\n        if embed:\n            ydl.extract_info(embed)","preventionTips":["Keep yt-dlp updated — its VoxMedia parser tracks schema changes","Fall back to extracting the underlying YouTube/Brightcove embed directly","Capture failing article URLs and report them upstream"],"tags":["voxmedia","provider-embed","parsing","site-change"],"backgroundTag":null,"analyzedSha":"956b8c585591b401a543e409accb163eeaaa1193","analyzedAt":"2026-08-14T18:59:47.863Z","schemaVersion":2},"datasetVersion":"2026-08-15T17:31:12.345Z"}