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
- Verify the clip URL in a browser; a deleted clip shows Medal's own not-found page.
- Obtain the canonical URL from the author's profile page, since share links can rot.
- 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
- Collect clip URLs from the author's profile page rather than third-party shares.
- Classify 404s as permanent failures in batch tooling to avoid wasted retries.
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
- Course %s does not exist
- %s
- Video %s does not exist
- The video is not found.
- This video is no longer available.
AI-assisted analysis of ytdl-org/youtube-dl@956b8c5855 (2026-08-14).
Data as JSON: /api/errors/b794b70a5ef54288.
Report an issue: GitHub.