ytdl-org/youtube-dl · error · ExtractorError
No suitable stream found
Error message
No suitable stream found
What it means
Raised by PlaytvakIE when the downloaded JSON info's 'items' array contains no entry with type 'video' or 'stream'. It means the URL is valid and the API responded, but the content has no playable media (e.g. it is an article, photo gallery, or quiz). Not marked expected, since it usually indicates a URL category the extractor was not meant to handle.
Source
Thrown at youtube_dl/extractor/playtvak.py:131
qs.update({
'reklama': ['0'],
'type': ['js'],
})
info_url = compat_urlparse.urlunparse(
parsed_url._replace(query=compat_urllib_parse_urlencode(qs, True)))
json_info = self._download_json(
info_url, video_id,
transform_source=lambda s: s[s.index('{'):s.rindex('}') + 1])
item = None
for i in json_info['items']:
if i.get('type') == 'video' or i.get('type') == 'stream':
item = i
break
if not item:
raise ExtractorError('No suitable stream found')
quality = qualities(('low', 'middle', 'high'))
formats = []
for fmt in item['video']:
video_url = fmt.get('file')
if not video_url:
continue
format_ = fmt['format']
format_id = '%s_%s' % (format_, fmt['quality'])
preference = None
if format_ in ('mp4', 'webm'):
ext = format_
elif format_ == 'rtmp':
ext = 'flv'
elif format_ == 'apple':View on GitHub (pinned to 956b8c5855)
Solutions
- Open the URL in a browser and confirm it actually contains a video player
- Use the direct video page URL (usually containing the video id) rather than article wrappers
- Skip non-video links when batch downloading playtvak.cz content
Defensive patterns
Strategy: validation
Validate before calling
import requests, re
html = requests.get(url).text
if not re.search(r'jwplayer|<video\b|data-video', html):
print('Page has no video player; skip this URL') Try / catch
try:
info = ydl.extract_info(url)
except ExtractorError as e:
if 'No suitable stream found' in str(e):
continue # non-video playtvak item; skip in batch mode Prevention
- Filter URLs to actual video pages before batch downloads
- Skip-and-log this error in crawlers rather than aborting the batch
- Report persistent occurrences — item 'type' labels may have changed
When it happens
Trigger: Pointing the extractor at playtvak.cz content whose items are only 'photo'/'article'/other types; or media pulled so items becomes empty. The loop over json_info['items'] never sets item, triggering the raise.
Common situations: Grabbing a whole playtvak section page where some links are non-video content; Playtvak restructuring item types so 'video'/'stream' labels change.
Related errors
- The given url does not contain a video
- Item not found in collection
- Content is no longer available
- message
- Invalid URL
AI-assisted analysis of ytdl-org/youtube-dl@956b8c5855 (2026-08-14).
Data as JSON: /api/errors/cafe69793ee5eddb.
Report an issue: GitHub.