{"record":{"id":"266543309e4b4aae","repo":"yt-dlp/yt-dlp","slug":"premium-videos-cannot-be-downloaded-yet","errorCode":null,"errorMessage":"Premium videos cannot be downloaded yet.","messagePattern":"Premium videos cannot be downloaded yet\\.","errorType":"exception","errorClass":"ExtractorError","httpStatus":null,"severity":"error","filePath":"yt_dlp/extractor/shemaroome.py","lineNumber":68,"sourceCode":"        'params': {\n            'skip_download': True,\n        },\n    }]\n\n    def _real_extract(self, url):\n        video_id = self._match_id(url).replace('/', '_')\n        webpage = self._download_webpage(url, video_id)\n        title = self._search_regex(r'id=\\\"ma_title\\\" value=\\\"([^\\\"]+)', webpage, 'title')\n        thumbnail = self._og_search_thumbnail(webpage)\n        content_def = self._search_regex(r'id=\\\"content_definition\\\" value=\\\"([^\\\"]+)', webpage, 'content_def')\n        catalog_id = self._search_regex(r'id=\\\"catalog_id\\\" value=\\\"([^\\\"]+)', webpage, 'catalog_id')\n        item_category = self._search_regex(r'id=\\\"item_category\\\" value=\\\"([^\\\"]+)', webpage, 'item_category')\n        content_id = self._search_regex(r'id=\\\"content_id\\\" value=\\\"([^\\\"]+)', webpage, 'content_id')\n\n        data = f'catalog_id={catalog_id}&content_id={content_id}&category={item_category}&content_def={content_def}'\n        data_json = self._download_json('https://www.shemaroome.com/users/user_all_lists', video_id, data=data.encode())\n        if not data_json.get('status'):\n            raise ExtractorError('Premium videos cannot be downloaded yet.', expected=True)\n        url_data = base64.b64decode(data_json['new_play_url'])\n        key = base64.b64decode(data_json['key'])\n        iv = bytes(16)\n        m3u8_url = unpad_pkcs7(aes_cbc_decrypt_bytes(url_data, key, iv)).decode('ascii')\n        headers = {'stream_key': data_json['stream_key']}\n        formats, m3u8_subs = self._extract_m3u8_formats_and_subtitles(m3u8_url, video_id, fatal=False, headers=headers)\n        for fmt in formats:\n            fmt['http_headers'] = headers\n\n        release_date = self._html_search_regex(\n            (r'itemprop=\"uploadDate\">\\s*([\\d-]+)', r'id=\"release_date\" value=\"([\\d-]+)'),\n            webpage, 'release date', fatal=False)\n\n        subtitles = {}\n        sub_url = data_json.get('subtitle')\n        if sub_url:\n            subtitles.setdefault('EN', []).append({\n                'url': self._proto_relative_url(sub_url),","sourceCodeStart":50,"sourceCodeEnd":86,"githubUrl":"https://github.com/yt-dlp/yt-dlp/blob/81ecd58b1394793e6da9998cc19fdb45657f1685/yt_dlp/extractor/shemaroome.py#L50-L86","documentation":"ShemarooMeIE scrapes catalog/content ids from the page, POSTs them to users/user_all_lists, and requires status true plus new_play_url/key/stream_key to decrypt the HLS URL. A falsy status means the play URL was withheld — in practice premium (subscription/DRM) titles — so this expected error is raised: such videos are not downloadable by this extractor.","triggerScenarios":"Downloading a ShemarooMe premium title: users/user_all_lists responds with status false, so no new_play_url is issued for the free-tier request.","commonSituations":"Queueing subscription-only Bollywood titles; free content misclassified after an API change; regional restrictions returning status false.","solutions":["Verify the title on shemaroome.com: if it is premium, it is simply not supported","If the title is definitely free but still fails, update yt-dlp and report the URL upstream","Do not expect DRM/premium streams from this extractor"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":"from yt_dlp.utils import ExtractorError\n\ntry:\n    info = ydl.extract_info(url, download=False)\nexcept ExtractorError as e:\n    if 'Premium videos cannot be downloaded' in str(e):\n        log.info('skipping premium title %s', url)\n    else:\n        raise","preventionTips":["Check on shemaroome.com whether a title is premium before queueing it","Mark premium titles in your source data to avoid reprocessing","Expect DRM/premium streams to be unsupported by design"],"tags":["premium-content","drm","subscription","shemaroome"],"backgroundTag":"drm-protected-content","analyzedSha":"81ecd58b1394793e6da9998cc19fdb45657f1685","analyzedAt":"2026-08-22T12:21:25.439Z","schemaVersion":2},"datasetVersion":"2026-08-22T14:17:55.899Z"}