{"record":{"id":"1562ac7ff777c892","repo":"yt-dlp/yt-dlp","slug":"no-video-found-1562ac","errorCode":null,"errorMessage":"No video found","messagePattern":"No video found","errorType":"exception","errorClass":"ExtractorError","httpStatus":null,"severity":"error","filePath":"yt_dlp/extractor/steam.py","lineNumber":166,"sourceCode":"            'view_count': int,\n        },\n        'add_ie': ['Youtube'],\n        'params': {'skip_download': 'm3u8'},\n    }]\n\n    def _real_extract(self, url):\n        file_id = self._match_id(url)\n        webpage = self._download_webpage(url, file_id)\n\n        flashvars = self._search_json(\n            r'var\\s+rgMovieFlashvars\\s*=', webpage, 'flashvars',\n            file_id, default={}, transform_source=js_to_json)\n        youtube_id = (\n            traverse_obj(flashvars, (..., 'YOUTUBE_VIDEO_ID', {str}, any))\n            or traverse_obj(webpage, (\n                {find_element(cls='movieFrame modal', html=True)}, {extract_attributes}, 'id', {str})))\n        if not youtube_id:\n            raise ExtractorError('No video found', expected=True)\n\n        return self.url_result(youtube_id, YoutubeIE)\n\n\nclass SteamCommunityBroadcastIE(InfoExtractor):\n    _VALID_URL = r'https?://(?:www\\.)?steamcommunity\\.com/broadcast/watch/(?P<id>\\d+)'\n    _TESTS = [{\n        'url': 'https://steamcommunity.com/broadcast/watch/76561199073851486',\n        'info_dict': {\n            'id': '76561199073851486',\n            'ext': 'mp4',\n            'title': str,\n            'uploader_id': '1113585758',\n            'uploader': 'pepperm!nt',\n            'live_status': 'is_live',\n        },\n        'params': {'skip_download': 'Livestream'},\n    }]","sourceCodeStart":148,"sourceCodeEnd":184,"githubUrl":"https://github.com/yt-dlp/yt-dlp/blob/81ecd58b1394793e6da9998cc19fdb45657f1685/yt_dlp/extractor/steam.py#L148-L184","documentation":"Thrown by SteamIE (_VALID_URL store.steampowered.com/video/*) when neither the rgMovieFlashvars JSON nor a div.movieFrame.modal element yields a YouTube video id. Steam store videos are YouTube embeds, so without a YOUTUBE_VIDEO_ID the extractor has nothing to return and raises this expected error.","triggerScenarios":"A store.steampowered.com/video/<id> page whose flashvars block was removed or renamed (Valve changed the player), a video entry that is not actually a YouTube embed, or an empty/age-gated page where neither the flashvars JSON nor the movieFrame modal markup is present.","commonSituations":"Valve ships a new store video player; the video requires login/age verification so the anonymous page lacks the embed data; the trailer was delisted leaving a stub page.","solutions":["Update yt-dlp (yt-dlp -U / pip install -U yt-dlp) in case the extractor was already patched for new markup.","Open the page in a browser and confirm the video is a YouTube embed; grab the YouTube URL directly from the page and download with yt-dlp <youtube_url>.","If the page shows a login/age gate, provide cookies (--cookies-from-browser) and retry.","Report the URL to yt-dlp issues if the video plays in a browser but extraction still fails."],"exampleFix":null,"handlingStrategy":"validation","validationCode":"# before full extraction, confirm the page exposes a YouTube embed\nimport re, html\npage = requests.get(url).text\nhas_yt = re.search(r'YOUTUBE_VIDEO_ID', page) or 'movieFrame modal' in page\nif not has_yt:\n    skip(url)","typeGuard":"def is_no_video_error(e: Exception) -> bool:\n    return isinstance(e, ExtractorError) and e.expected and str(e) == 'No video found'","tryCatchPattern":"try:\n    ydl.extract_info(url)\nexcept ExtractorError as e:\n    if str(e) == 'No video found':\n        log.info('steam page has no embeddable video: %s', url)\n    else:\n        raise","preventionTips":["Check the store page in a browser before batch-downloading trailers.","Provide cookies when pages sit behind age gates.","Prefer extracting the underlying YouTube URL when you can see it in the page."],"tags":["yt-dlp","extractor","steam","youtube-embed","no-video-found","expected-error"],"backgroundTag":"video-not-found","analyzedSha":"81ecd58b1394793e6da9998cc19fdb45657f1685","analyzedAt":"2026-08-22T12:21:25.439Z","schemaVersion":2},"datasetVersion":"2026-08-22T14:17:55.899Z"}