ytdl-org/youtube-dl · error · ExtractorError
None of recording, slides or zip are available for %s
Error message
None of recording, slides or zip are available for %s
What it means
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.
Source
Thrown at youtube_dl/extractor/channel9.py:196
for format_id, q in API_QUALITIES.items():
q_url = content_data.get(format_id)
if not q_url or q_url in urls:
continue
urls.add(q_url)
formats.append({
'url': q_url,
'format_id': q,
'quality': quality(q, q_url),
})
self._sort_formats(formats)
slides = content_data.get('Slides')
zip_file = content_data.get('ZipFile')
if not formats and not slides and not zip_file:
raise ExtractorError(
'None of recording, slides or zip are available for %s' % content_path)
subtitles = {}
for caption in content_data.get('Captions', []):
caption_url = caption.get('Url')
if not caption_url:
continue
subtitles.setdefault(caption.get('Language', 'en'), []).append({
'url': caption_url,
'ext': 'vtt',
})
common = {
'id': content_id,
'title': title,
'description': clean_html(content_data.get('Description') or content_data.get('Body')),
'thumbnail': content_data.get('VideoPlayerPreviewImage'),
'duration': int_or_none(content_data.get('MediaLengthInSeconds')),View on GitHub (pinned to 956b8c5855)
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.
Defensive patterns
Strategy: try-catch
Try / catch
from youtube_dl.utils import ExtractorError
try:
ydl.extract_info(url)
except ExtractorError as e:
if 'None of recording, slides or zip' in str(e):
mark_no_media(url) # session has nothing published yet
else:
raise Prevention
- 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.
When it happens
Trigger: 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.
Common situations: 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.
Related errors
AI-assisted analysis of ytdl-org/youtube-dl@956b8c5855 (2026-08-14).
Data as JSON: /api/errors/ba31450f08554cf4.
Report an issue: GitHub.