{"record":{"id":"80d69eb7a48ddce3","repo":"yt-dlp/yt-dlp","slug":"this-is-an-embed-only-presentation-try-passing","errorCode":null,"errorMessage":"This is an embed-only presentation. Try passing --referer","messagePattern":"This is an embed-only presentation\\. Try passing --referer","errorType":"exception","errorClass":"ExtractorError","httpStatus":null,"severity":"error","filePath":"yt_dlp/extractor/slideslive.py","lineNumber":401,"sourceCode":"            if not duration and not skip_duration:\n                duration = self._extract_mpd_vod_duration(\n                    f'https://{cdn_hostname}/{path}/master.mpd', video_id,\n                    note='Extracting duration from DASH manifest')\n            formats.extend(dash_formats)\n\n        return formats, duration\n\n    def _real_extract(self, url):\n        video_id = self._match_id(url)\n        webpage, urlh = self._download_embed_webpage_handle(\n            video_id, headers=traverse_obj(parse_qs(url), {\n                'Referer': ('embed_parent_url', -1),\n                'Origin': ('embed_container_origin', -1)}))\n        redirect_url = urlh.url\n        if 'domain_not_allowed' in redirect_url:\n            domain = traverse_obj(parse_qs(redirect_url), ('allowed_domains[]', ...), get_all=False)\n            if not domain:\n                raise ExtractorError(\n                    'This is an embed-only presentation. Try passing --referer', expected=True)\n            webpage, _ = self._download_embed_webpage_handle(video_id, headers={\n                'Referer': f'https://{domain}/',\n                'Origin': f'https://{domain}',\n            })\n\n        player_token = self._search_regex(r'data-player-token=\"([^\"]+)\"', webpage, 'player token')\n        player_data = self._download_webpage(\n            f'https://slideslive.com/player/{video_id}', video_id,\n            note='Downloading player info', query={'player_token': player_token})\n        player_info = self._extract_custom_m3u8_info(player_data)\n\n        service_name = player_info['service_name'].lower()\n        assert service_name in ('url', 'yoda', 'vimeo', 'youtube')\n        service_id = player_info['service_id']\n\n        slide_url_template = 'https://slides.slideslive.com/%s/slides/original/%s%s'\n        slides, slides_info = {}, []","sourceCodeStart":383,"sourceCodeEnd":419,"githubUrl":"https://github.com/yt-dlp/yt-dlp/blob/81ecd58b1394793e6da9998cc19fdb45657f1685/yt_dlp/extractor/slideslive.py#L383-L419","documentation":"Error \"This is an embed-only presentation. Try passing --referer\" thrown in yt-dlp/yt-dlp.","triggerScenarios":"Thrown at yt_dlp/extractor/slideslive.py:401 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Pass --referer with the URL of the page embedding the presentation"],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"81ecd58b1394793e6da9998cc19fdb45657f1685","analyzedAt":"2026-08-22T12:21:25.439Z","schemaVersion":2},"datasetVersion":"2026-08-22T14:17:55.899Z"}