{"record":{"id":"2311ce2b9f984c06","repo":"ytdl-org/youtube-dl","slug":"webpage-type-is-s-only-video-extraction-is-sup","errorCode":null,"errorMessage":"Webpage type is \"%s\": only video extraction is supported for Slideshare","messagePattern":"Webpage type is \"(.+?)\": only video extraction is supported for Slideshare","errorType":"exception","errorClass":"ExtractorError","httpStatus":null,"severity":"warning","filePath":"youtube_dl/extractor/slideshare.py","lineNumber":38,"sourceCode":"        'url': 'http://www.slideshare.net/Dataversity/keynote-presentation-managing-scale-and-complexity',\n        'info_dict': {\n            'id': '25665706',\n            'ext': 'mp4',\n            'title': 'Managing Scale and Complexity',\n            'description': 'This was a keynote presentation at the NoSQL Now! 2013 Conference & Expo (http://www.nosqlnow.com). This presentation was given by Adrian Cockcroft from Netflix.',\n        },\n    }\n\n    def _real_extract(self, url):\n        mobj = re.match(self._VALID_URL, url)\n        page_title = mobj.group('title')\n        webpage = self._download_webpage(url, page_title)\n        slideshare_obj = self._search_regex(\n            r'\\$\\.extend\\(.*?slideshare_object,\\s*(\\{.*?\\})\\);',\n            webpage, 'slideshare object')\n        info = json.loads(slideshare_obj)\n        if info['slideshow']['type'] != 'video':\n            raise ExtractorError('Webpage type is \"%s\": only video extraction is supported for Slideshare' % info['slideshow']['type'], expected=True)\n\n        doc = info['doc']\n        bucket = info['jsplayer']['video_bucket']\n        ext = info['jsplayer']['video_extension']\n        video_url = compat_urlparse.urljoin(bucket, doc + '-SD.' + ext)\n        description = get_element_by_id('slideshow-description-paragraph', webpage) or self._html_search_regex(\n            r'(?s)<p[^>]+itemprop=\"description\"[^>]*>(.+?)</p>', webpage,\n            'description', fatal=False)\n\n        return {\n            '_type': 'video',\n            'id': info['slideshow']['id'],\n            'title': info['slideshow']['title'],\n            'ext': ext,\n            'url': video_url,\n            'thumbnail': info['slideshow']['pin_image_url'],\n            'description': description.strip() if description else None,\n        }","sourceCodeStart":20,"sourceCodeEnd":56,"githubUrl":"https://github.com/ytdl-org/youtube-dl/blob/956b8c585591b401a543e409accb163eeaaa1193/youtube_dl/extractor/slideshare.py#L20-L56","documentation":"SlideshareIE._real_extract parses the slideshare_object JSON out of the page and checks info['slideshow']['type']. Only type 'video' is supported because the extractor builds a direct video URL from jsplayer.video_bucket/doc; any other type (e.g. 'presentation') is refused with this expected error. Slide decks without an embedded video recording have no media stream to extract.","triggerScenarios":"Extracting a Slideshare URL whose slideshow object has type != 'video' - i.e. a plain presentation, document, or infographic upload with no recorded video track.","commonSituations":"Users pasting links to ordinary slide decks expecting a download (only the PDF could be fetched, not via this extractor); presentations where the author disabled the video recording; changes to the slideshare_object JSON structure making 'type' resolve to an unexpected value.","solutions":["Confirm on the page that a video player (not just the slide viewer) exists for the item.","If you want the slides, download the presentation file (PDF/PPT) directly or use the Slideshare API - this extractor will never handle it.","Find the speaker's recording of the same talk on YouTube/Vimeo instead.","If the item definitely has a video but the error fires, the slideshare_object regex may be stale - update yt-dlp."],"exampleFix":null,"handlingStrategy":"validation","validationCode":"info = json.loads(slideshare_obj)\nif info['slideshow']['type'] != 'video':\n    print('not a video slideshow - use another method for the deck')","typeGuard":"def is_video_slideshow(info: dict) -> bool:\n    return info.get('slideshow', {}).get('type') == 'video'","tryCatchPattern":"try:\n    extract(url)\nexcept ExtractorError as e:\n    if 'only video extraction' in str(e):\n        download_slides_via_api(url)\n    else:\n        raise","preventionTips":["Check for a video player on the Slideshare page before queueing.","Use the Slideshare API/official download for decks, not youtube-dl.","Warn users in batch tooling that non-video decks are skipped by design."],"tags":["slideshare","unsupported-type","extractor"],"backgroundTag":null,"analyzedSha":"956b8c585591b401a543e409accb163eeaaa1193","analyzedAt":"2026-08-14T18:59:47.863Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}