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

  1. Check the page in a browser — if there is truly no media, nothing to download.
  2. For old Channel 9 links, look for the migrated content on learn.microsoft.com and use that URL.
  3. Retry later if the session has not been published yet (event still running).
  4. 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

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.