{"record":{"id":"ff7a63f1cfcb6a70","repo":"ytdl-org/youtube-dl","slug":"video-s-does-not-exist-ff7a63","errorCode":null,"errorMessage":"Video %s does not exist","messagePattern":"Video (.+?) does not exist","errorType":"exception","errorClass":"ExtractorError","httpStatus":null,"severity":"error","filePath":"youtube_dl/extractor/odatv.py","lineNumber":43,"sourceCode":"        'only_matching': True,\n    }, {\n        # no video\n        'url': 'http://odatv.com/mob_video.php?id=8E900',\n        'only_matching': True,\n    }]\n\n    def _real_extract(self, url):\n        video_id = self._match_id(url)\n        webpage = self._download_webpage(url, video_id)\n\n        no_video = 'NO VIDEO!' in webpage\n\n        video_url = self._search_regex(\n            r'mp4\\s*:\\s*([\"\\'])(?P<url>http.+?)\\1', webpage, 'video url',\n            default=None if no_video else NO_DEFAULT, group='url')\n\n        if no_video:\n            raise ExtractorError('Video %s does not exist' % video_id, expected=True)\n\n        return {\n            'id': video_id,\n            'url': video_url,\n            'title': remove_start(self._og_search_title(webpage), 'Video: '),\n            'thumbnail': self._og_search_thumbnail(webpage),\n        }\n","sourceCodeStart":25,"sourceCodeEnd":51,"githubUrl":"https://github.com/ytdl-org/youtube-dl/blob/956b8c585591b401a543e409accb163eeaaa1193/youtube_dl/extractor/odatv.py#L25-L51","documentation":"Error \"Video %s does not exist\" thrown in ytdl-org/youtube-dl.","triggerScenarios":"Thrown at youtube_dl/extractor/odatv.py:43 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Verify the video URL; the video may have been removed."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"956b8c585591b401a543e409accb163eeaaa1193","analyzedAt":"2026-08-14T18:59:47.863Z","schemaVersion":2},"datasetVersion":"2026-08-15T17:31:12.345Z"}