ytdl-org/youtube-dl · warning · ExtractorError

Unsupported page type %s

Error message

Unsupported page type %s

What it means

ProSiebenSat1IE._real_extract determines the page type by matching _PAGE_TYPE_REGEXES against the HTML (defaulting to 'clip'), lowercases it, dispatches 'clip' to _extract_clip and 'playlist' to _extract_playlist, and raises ExtractorError('Unsupported page type %s' % page_type, expected=True) for anything else. The message names the offending type, so you can see what the page was classified as.

Source

Thrown at youtube_dl/extractor/prosiebensat1.py:499

                'duration': float_or_none(item.get('duration')),
                'series': item.get('tvShowTitle'),
                'uploader': item.get('broadcastPublisher'),
            })
            entries.append(info)
        return self.playlist_result(entries, playlist_id)

    def _real_extract(self, url):
        video_id = self._match_id(url)
        webpage = self._download_webpage(url, video_id)
        page_type = self._search_regex(
            self._PAGE_TYPE_REGEXES, webpage,
            'page type', default='clip').lower()
        if page_type == 'clip':
            return self._extract_clip(url, webpage)
        elif page_type == 'playlist':
            return self._extract_playlist(url, webpage)
        else:
            raise ExtractorError(
                'Unsupported page type %s' % page_type, expected=True)

View on GitHub (pinned to 956b8c5855)

Solutions

  1. Use the URL of a specific clip (video page) or a concrete playlist page, not a show/series overview.
  2. Update youtube-dl — new page types and regex fixes are added regularly.
  3. Inspect the page's page-type meta tag to see what was matched, and pick a URL whose page declares type clip or playlist.
  4. If the content legitimately lives on an unsupported page type, request support upstream or use the site directly.
Defensive patterns

Strategy: validation

Validate before calling

# Before extraction, confirm the URL is a clip page, not a show hub
import re
is_clip_like = re.search(r'/(video|clip)/', url) is not None

Try / catch

try:
    info = ydl.extract_info(url)
except ExtractorError as e:
    if 'Unsupported page type' in str(e):
        find_specific_clip_url(url)

Prevention

When it happens

Trigger: A URL that matches _VALID_URL but renders a page whose og:type / page-type meta indicates neither clip nor playlist — e.g. show/series hub pages, live pages, or articles; or the regexes match a meta tag value like 'show' or 'video.show'.

Common situations: Users pasting series landing pages instead of a specific clip; new page categories added by the broadcaster; markup changes making the regex capture an unexpected token; default fallback pages for removed content.

Related errors


AI-assisted analysis of ytdl-org/youtube-dl@956b8c5855 (2026-08-14). Data as JSON: /api/errors/ec2609e91931d68d. Report an issue: GitHub.