ytdl-org/youtube-dl · error · ExtractorError
Video %s does not exist
Error message
Video %s does not exist
What it means
Raised by TinypicIE when the downloaded page does not contain the fo.addVariable("file", ...) / fo.addVariable("s", ...) JavaScript pair that identifies the media file and server. Marked expected=True; effectively 'media not found'. Note tinypic.com shut down (around 2015-2016), so this error now fires for essentially every URL.
Source
Thrown at youtube_dl/extractor/tinypic.py:39
'title': 'shadow phenomenon weird',
},
},
{
'url': 'http://de.tinypic.com/player.php?v=dy90yh&s=8',
'only_matching': True,
}
]
def _real_extract(self, url):
mobj = re.match(self._VALID_URL, url)
video_id = mobj.group('id')
webpage = self._download_webpage(url, video_id, 'Downloading page')
mobj = re.search(r'(?m)fo\.addVariable\("file",\s"(?P<fileid>[\da-z]+)"\);\n'
r'\s+fo\.addVariable\("s",\s"(?P<serverid>\d+)"\);', webpage)
if mobj is None:
raise ExtractorError('Video %s does not exist' % video_id, expected=True)
file_id = mobj.group('fileid')
server_id = mobj.group('serverid')
KEYWORDS_SUFFIX = ', Video, images, photos, videos, myspace, ebay, video hosting, photo hosting'
keywords = self._html_search_meta('keywords', webpage, 'title')
title = keywords[:-len(KEYWORDS_SUFFIX)] if keywords.endswith(KEYWORDS_SUFFIX) else ''
video_url = 'http://v%s.tinypic.com/%s.flv' % (server_id, file_id)
thumbnail = 'http://v%s.tinypic.com/%s_th.jpg' % (server_id, file_id)
return {
'id': file_id,
'url': video_url,
'thumbnail': thumbnail,
'title': title
}
View on GitHub (pinned to 956b8c5855)
Solutions
- Accept that tinypic.com is permanently offline; no tool can download from it
- Locate the media elsewhere (web.archive.org snapshot of the tinypic page may preserve the thumbnail/filename)
- Filter tinypic.com URLs out of bulk download lists before running the extractor
- Update yt-dlp, where dead sites are delisted so URLs fall through to a clearer 'unsupported URL' error
Defensive patterns
Strategy: validation
Validate before calling
from urllib.parse import urlparse
if urlparse(url).netloc.endswith('tinypic.com'):
skip_permanently(url) # service shut down; nothing to extract Try / catch
try:
ydl.extract_info(url)
except ExtractorError as e:
if e.expected and 'does not exist' in str(e):
skip_permanently(url) Prevention
- Filter dead domains like tinypic.com from URL lists before extraction
- Check service status before bulk-archiving legacy embed links
When it happens
Trigger: Any tinypic.com player URL: the service is defunct, pages no longer embed the flash player variables, so the regex never matches and the extractor reports the video as non-existent.
Common situations: Archival crawls containing tinypic links; old forum/myspace embeds. The cause is permanent service shutdown, not a transient issue or a fixable extractor bug.
Related errors
AI-assisted analysis of ytdl-org/youtube-dl@956b8c5855 (2026-08-14).
Data as JSON: /api/errors/b71b51b5d3f2b237.
Report an issue: GitHub.