ytdl-org/youtube-dl · error · ExtractorError

That clip does not exist.

Error message

That clip does not exist.

What it means

Raised by the Medal.tv extractor when no playable formats were collected AND the clip data carries error == 404 — i.e. the site itself reports the clip as gone. Expected=True makes it a clean user-facing 'not found' signal. It only fires when both conditions hold; a 404 error field with surviving formats would not raise.

Source

Thrown at youtube_dl/extractor/medaltv.py:106

        for k, v in clip.items():
            if not (v and isinstance(v, compat_str)):
                continue
            mobj = re.match(r'(contentUrl|thumbnail)(?:(\d+)p)?$', k)
            if not mobj:
                continue
            prefix = mobj.group(1)
            height = int_or_none(mobj.group(2))
            if prefix == 'contentUrl':
                add_item(
                    formats, v, height or source_height,
                    item_id=None if height else 'source')
            elif prefix == 'thumbnail':
                add_item(thumbnails, v, height, 'id')

        error = clip.get('error')
        if not formats and error:
            if error == 404:
                raise ExtractorError(
                    'That clip does not exist.',
                    expected=True, video_id=video_id)
            else:
                raise ExtractorError(
                    'An unknown error occurred ({0}).'.format(error),
                    video_id=video_id)

        self._sort_formats(formats)

        # Necessary because the id of the author is not known in advance.
        # Won't raise an issue if no profile can be found as this is optional.
        author = try_get(
            hydration_data, lambda x: list(x['profiles'].values())[0], dict) or {}
        author_id = str_or_none(author.get('id'))
        author_url = 'https://medal.tv/users/{0}'.format(author_id) if author_id else None

        return {
            'id': video_id,

View on GitHub (pinned to 956b8c5855)

Solutions

  1. Verify the clip URL in a browser; a deleted clip shows Medal's own not-found page.
  2. Obtain the canonical URL from the author's profile page, since share links can rot.
  3. No client-side workaround exists for removed content; pick another source for the media.
Defensive patterns

Strategy: try-catch

Type guard

def medal_clip_is_404(clip):
    return isinstance(clip, dict) and clip.get('error') == 404

Try / catch

try:
    info = ydl.extract_info(url, download=False)
except ExtractorError as e:
    if 'That clip does not exist' in str(e):
        mark_permanently_dead(url)  # never retry; content is removed
    else:
        raise

Prevention

When it happens

Trigger: hydration_data clips entry for the video id exists but contains error: 404 and no contentUrl/thumbnail entries that would have produced formats via add_item.

Common situations: Clip deleted by its author or removed by moderation; clip URL shared with a mangled id; clip made private (sometimes surfaced as 404 rather than a permission error).

Related errors


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