{"record":{"id":"ba31450f08554cf4","repo":"ytdl-org/youtube-dl","slug":"none-of-recording-slides-or-zip-are-available-for","errorCode":null,"errorMessage":"None of recording, slides or zip are available for %s","messagePattern":"None of recording, slides or zip are available for (.+?)","errorType":"exception","errorClass":"ExtractorError","httpStatus":null,"severity":"error","filePath":"youtube_dl/extractor/channel9.py","lineNumber":196,"sourceCode":"\n            for format_id, q in API_QUALITIES.items():\n                q_url = content_data.get(format_id)\n                if not q_url or q_url in urls:\n                    continue\n                urls.add(q_url)\n                formats.append({\n                    'url': q_url,\n                    'format_id': q,\n                    'quality': quality(q, q_url),\n                })\n\n            self._sort_formats(formats)\n\n            slides = content_data.get('Slides')\n            zip_file = content_data.get('ZipFile')\n\n            if not formats and not slides and not zip_file:\n                raise ExtractorError(\n                    'None of recording, slides or zip are available for %s' % content_path)\n\n            subtitles = {}\n            for caption in content_data.get('Captions', []):\n                caption_url = caption.get('Url')\n                if not caption_url:\n                    continue\n                subtitles.setdefault(caption.get('Language', 'en'), []).append({\n                    'url': caption_url,\n                    'ext': 'vtt',\n                })\n\n            common = {\n                'id': content_id,\n                'title': title,\n                'description': clean_html(content_data.get('Description') or content_data.get('Body')),\n                'thumbnail': content_data.get('VideoPlayerPreviewImage'),\n                'duration': int_or_none(content_data.get('MediaLengthInSeconds')),","sourceCodeStart":178,"sourceCodeEnd":214,"githubUrl":"https://github.com/ytdl-org/youtube-dl/blob/956b8c585591b401a543e409accb163eeaaa1193/youtube_dl/extractor/channel9.py#L178-L214","documentation":"Raised by Channel9IE when a content page yields no downloadable formats AND no Slides AND no ZipFile in its data. Channel 9 pages can legitimately provide only slides or a zip archive instead of a video; when none of the three exist, the extractor reports the content path in the error. It is not marked expected, so it surfaces as a generic extraction failure.","triggerScenarios":"A channel9.msdn.com content path whose session entry has empty 'Sources' (no video qualities), no 'Slides' key, and no 'ZipFile' — typically placeholder sessions, cancelled talks, or pages whose data moved after a site redesign.","commonSituations":"Session pages created before the event with no media yet; Microsoft's Channel 9 migration (much content moved to learn.microsoft.com) breaking old URLs; pages requiring registration before media is listed.","solutions":["Check the page in a browser — if there is truly no media, nothing to download.","For old Channel 9 links, look for the migrated content on learn.microsoft.com and use that URL.","Retry later if the session has not been published yet (event still running).","Update to yt-dlp in case the Channel 9 data source changed."],"exampleFix":null,"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 'None of recording, slides or zip' in str(e):\n        mark_no_media(url)  # session has nothing published yet\n    else:\n        raise","preventionTips":["Filter Channel 9 sessions to ones with a playable recording (check page UI) before queueing.","For migrated content, prefer learn.microsoft.com URLs.","Retry unpublished sessions after the event."],"tags":["channel9","microsoft","no-formats","slides"],"backgroundTag":null,"analyzedSha":"956b8c585591b401a543e409accb163eeaaa1193","analyzedAt":"2026-08-14T18:59:47.863Z","schemaVersion":2},"datasetVersion":"2026-08-15T17:31:12.345Z"}