{"record":{"id":"9038add6893cb3fc","repo":"ytdl-org/youtube-dl","slug":"no-video-found-9038ad","errorCode":null,"errorMessage":"No video found","messagePattern":"No video found","errorType":"exception","errorClass":"ExtractorError","httpStatus":null,"severity":"warning","filePath":"youtube_dl/extractor/vesti.py","lineNumber":121,"sourceCode":"    def _real_extract(self, url):\n        mobj = re.match(self._VALID_URL, url)\n        video_id = mobj.group('id')\n\n        page = self._download_webpage(url, video_id, 'Downloading page')\n\n        mobj = re.search(\n            r'<meta[^>]+?property=\"og:video\"[^>]+?content=\"http://www\\.vesti\\.ru/i/flvplayer_videoHost\\.swf\\?vid=(?P<id>\\d+)',\n            page)\n        if mobj:\n            video_id = mobj.group('id')\n            page = self._download_webpage('http://www.vesti.ru/only_video.html?vid=%s' % video_id, video_id,\n                                          'Downloading video page')\n\n        rutv_url = RUTVIE._extract_url(page)\n        if rutv_url:\n            return self.url_result(rutv_url, 'RUTV')\n\n        raise ExtractorError('No video found', expected=True)\n","sourceCodeStart":103,"sourceCodeEnd":122,"githubUrl":"https://github.com/ytdl-org/youtube-dl/blob/956b8c585591b401a543e409accb163eeaaa1193/youtube_dl/extractor/vesti.py#L103-L122","documentation":"Raised by the Vesti extractor when, after checking the og:video meta redirect and the RUTV embed lookup, neither produced a rutv_url — i.e. the page exposes no video the extractor knows how to reach. expected=True: it is a 'this URL has no extractable video' outcome, raised as the last line of _real_extract.","triggerScenarios":"Extracting a vesti.ru article page with no og:video flvplayer_videoHost.swf meta tag and no RUTVIE._extract_url match in the HTML — plain news articles, photo pages, or redesigned templates.","commonSituations":"Vesti.ru restructured and moved to a different player/embed markup; users pass section or article index URLs; videos embedded via a player the RUTV pattern does not cover.","solutions":["Confirm the URL is an actual video page in a browser.","If a video plays, view source and locate the current embed/iframe markup, then extend RUTVIE._extract_url or add a pattern for the new player.","Try the direct RUTV URL if you can find it in the page and pass it to youtube-dl yourself.","Skip these URLs in bulk jobs — the extractor explicitly declares no video found."],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":"html = fetch(url)\nhas_rutv = RUTVIE._extract_url(html) or re.search(\n    r'<meta[^>]+?property=\"og:video\"[^>]+?content=\"http://www\\.vesti\\.ru/i/flvplayer_videoHost\\.swf\\?vid=\\d+', html)\nif not has_rutv:\n    skip(url, 'vesti page has no extractable video')","typeGuard":null,"tryCatchPattern":"try:\n    ydl.extract_info(url)\nexcept ExtractorError as e:\n    if e.expected and 'No video found' in str(e):\n        continue  # content condition\n    raise","preventionTips":["Only pass vesti.ru video article URLs to the extractor.","Treat 'No video found' (expected=True) as a skip, not an alert.","If it fires on real video pages, the embed markup changed — update RUTVIE._extract_url."],"tags":["content-missing","site-layout-change","expected-error","extractor"],"backgroundTag":null,"analyzedSha":"956b8c585591b401a543e409accb163eeaaa1193","analyzedAt":"2026-08-14T18:59:47.863Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}