{"record":{"id":"ad8432e9cadc01c4","repo":"ytdl-org/youtube-dl","slug":"no-video-with-idec-available","errorCode":null,"errorMessage":"no video with IDEC available","messagePattern":"no video with IDEC available","errorType":"exception","errorClass":"ExtractorError","httpStatus":null,"severity":"error","filePath":"youtube_dl/extractor/ceskatelevize.py","lineNumber":144,"sourceCode":"                if not idec:\n                    idec = traverse_obj(next_data, ('props', 'pageProps', 'data', 'videobonusDetail', 'bonusId'), get_all=False)\n                    if idec:\n                        type_ = 'bonus'\n            if not idec:\n                raise ExtractorError('Failed to find IDEC id')\n            iframe_hash = self._download_webpage(\n                'https://www.ceskatelevize.cz/v-api/iframe-hash/',\n                playlist_id, note='Getting IFRAME hash')\n            query = {'hash': iframe_hash, 'origin': 'iVysilani', 'autoStart': 'true', type_: idec, }\n            webpage = self._download_webpage(\n                'https://www.ceskatelevize.cz/ivysilani/embed/iFramePlayer.php',\n                playlist_id, note='Downloading player', query=query)\n\n        NOT_AVAILABLE_STRING = 'This content is not available at your territory due to limited copyright.'\n        if '%s</p>' % NOT_AVAILABLE_STRING in webpage:\n            self.raise_geo_restricted(NOT_AVAILABLE_STRING)\n        if any(not_found in webpage for not_found in ('Neplatný parametr pro videopřehrávač', 'IDEC nebyl nalezen', )):\n            raise ExtractorError('no video with IDEC available', video_id=idec, expected=True)\n\n        type_ = None\n        episode_id = None\n\n        playlist = self._parse_json(\n            self._search_regex(\n                r'getPlaylistUrl\\(\\[({.+?})\\]', webpage, 'playlist',\n                default='{}'), playlist_id)\n        if playlist:\n            type_ = playlist.get('type')\n            episode_id = playlist.get('id')\n\n        if not type_:\n            type_ = self._html_search_regex(\n                r'getPlaylistUrl\\(\\[\\{\"type\":\"(.+?)\",\"id\":\".+?\"\\}\\],',\n                webpage, 'type')\n        if not episode_id:\n            episode_id = self._html_search_regex(","sourceCodeStart":126,"sourceCodeEnd":162,"githubUrl":"https://github.com/ytdl-org/youtube-dl/blob/956b8c585591b401a543e409accb163eeaaa1193/youtube_dl/extractor/ceskatelevize.py#L126-L162","documentation":"Raised by CeskaTelevizeIE after downloading the iFramePlayer.php page: if the response contains 'Neplatný parametr pro videopřehrávač' (invalid player parameter) or 'IDEC nebyl nalezen' (IDEC not found), the IDEC is not playable, so extraction fails with this expected error, tagging video_id=idec.","triggerScenarios":"Requesting the embed player with an IDEC that the backend rejects — typo or wrong-type id (a 'bonus' id passed as type IDEC), a bonus/episode whose availability ended, or an id valid only in a different context. The check is literal substring matching on the Czech error strings.","commonSituations":"Expired episodes/bonus clips whose playback window closed; site text changes that alter the error strings (making real failures look like unsupported pages); wrong id extracted from a redesigned page.","solutions":["Confirm the exact episode plays at ceskatelevize.cz in a browser; expired content cannot be extracted.","Make sure you are on the correct episode URL (the IDEC is derived from the page you passed).","Update to yt-dlp for current Ceska televize support.","If the page plays fine, the Czech error strings likely changed — patch the tuple in ceskatelevize.py to include the new text."],"exampleFix":"# before: bonus id fetched with wrong type_\nquery = {'hash': iframe_hash, 'origin': 'iVysilani', 'autoStart': 'true', 'IDEC': bonus_id}\n\n# after: use correct type for bonus content\nquery = {'hash': iframe_hash, 'origin': 'iVysilani', 'autoStart': 'true', 'bonus': bonus_id}","handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":"from youtube_dl.utils import ExtractorError\ntry:\n    ydl.extract_info(url)\nexcept ExtractorError as e:\n    if 'no video with IDEC available' in str(e):\n        mark_expired(url)  # backend rejected the IDEC; permanent\n    else:\n        raise","preventionTips":["Double-check episode URLs still play in a browser before queueing.","Treat this as permanent for the given IDEC (no point retrying).","After CT site updates, verify the Czech error strings still match."],"tags":["ceskatelevize","idec","i18n","expected"],"backgroundTag":null,"analyzedSha":"956b8c585591b401a543e409accb163eeaaa1193","analyzedAt":"2026-08-14T18:59:47.863Z","schemaVersion":2},"datasetVersion":"2026-08-15T17:31:12.345Z"}