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

  1. Accept that tinypic.com is permanently offline; no tool can download from it
  2. Locate the media elsewhere (web.archive.org snapshot of the tinypic page may preserve the thumbnail/filename)
  3. Filter tinypic.com URLs out of bulk download lists before running the extractor
  4. 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

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.