ytdl-org/youtube-dl · error · ExtractorError
Could not find any videos
Error message
Could not find any videos
What it means
Raised by the Steam extractor when a highlighted-reel/playlist page yielded zero playable entries: either no game/highlight blocks were found, or every highlight block was skipped because it had no data-<ext><quality>-source attributes for webm/mp4. It means the page structure was fetched but contained nothing extractable.
Source
Thrown at youtube_dl/extractor/steam.py:147
webpage, 'highlight element', fatal=False)
if highlight_element:
highlight_attribs = extract_attributes(highlight_element)
if highlight_attribs:
entry['thumbnail'] = highlight_attribs.get('data-poster')
for quality in ('', '-hd'):
for ext in ('webm', 'mp4'):
video_url = highlight_attribs.get('data-%s%s-source' % (ext, quality))
if video_url:
formats.append({
'format_id': ext + quality,
'url': video_url,
})
if not formats:
continue
entry['formats'] = formats
entries.append(entry)
if not entries:
raise ExtractorError('Could not find any videos')
return self.playlist_result(entries, playlist_id, playlist_title)
View on GitHub (pinned to 956b8c5855)
Solutions
- Open the URL in a browser and confirm highlights actually exist on that page; if the page is empty, pick a URL that has highlights.
- Check whether a newer youtube-dl/yt-dlp release updated the Steam extractor (markup changes are fixed upstream over time); upgrade.
- If the content moved to the Steam store video player, grab the mp4/webm URLs from the page/network tab directly and pass them to youtube-dl.
- If maintaining the extractor, re-inspect data-*-source attributes in the current HTML and update the attribute patterns.
Example fix
# before
if not entries:
raise ExtractorError('Could not find any videos')
# after (diagnostic variant)
if not entries:
raise ExtractorError('Could not find any videos (no data-webm/mp4-source attributes found; page markup may have changed)') Defensive patterns
Strategy: try-catch
Validate before calling
# Sanity-check that the page mentions any highlight sources
html = ydl.urlopen(url).read().decode('utf-8', 'replace')
if 'data-mp4' not in html and 'data-webm' not in html:
print('no highlight sources present; extraction will fail') Try / catch
try:
info = ydl.extract_info(url)
except ExtractorError as e:
if 'Could not find any videos' in str(e):
log.info('no highlights on this Steam page: %s', url)
return []
raise Prevention
- Confirm the Steam page actually shows highlight reels before queueing it.
- Keep youtube-dl/yt-dlp current; Steam markup fixes land upstream.
- Age-gated or region-shell pages lack sources — pass cookies if needed.
When it happens
Trigger: Calling the extractor on a Steam community app/highlight URL where no highlight elements carry data-webm*-source / data-mp4*-source attributes (all 'continue' branches hit), leaving 'entries' empty.
Common situations: Valve changed the highlight page markup or moved reels to a JS-driven player; regional/age-gated pages return a shell without video sources; the specific game has no highlights.
Related errors
- Invalid url for track %d of album url %s
- The page doesn't contain any tracks
- No video found
- Simplestream ID not found
- %s: No songs found, try using proxy
AI-assisted analysis of ytdl-org/youtube-dl@956b8c5855 (2026-08-14).
Data as JSON: /api/errors/0e53f81a16b54bea.
Report an issue: GitHub.