yt-dlp/yt-dlp · error · ExtractorError
expecting Google SSAI stream
Error message
expecting Google SSAI stream
What it means
Raised when the GoPlay stream is not the expected Google SSAI stream. The stream setup changed; update yt-dlp.
Source
Thrown at yt_dlp/extractor/goplay.py:118
'series': self._search_regex(
fr'^(.+)? - S{season_number} - ', info_dict.get('title'), 'series', default=None),
})
break
api = self._download_json(
f'https://api.play.tv/web/v1/videos/long-form/{video_id}',
video_id, headers={
'Authorization': f'Bearer {self._id_token}',
**self.geo_verification_headers(),
})
if 'manifestUrls' in api:
formats, subtitles = self._extract_m3u8_formats_and_subtitles(
api['manifestUrls']['hls'], video_id, ext='mp4', m3u8_id='HLS')
else:
if 'ssai' not in api:
raise ExtractorError('expecting Google SSAI stream')
ssai_content_source_id = api['ssai']['contentSourceID']
ssai_video_id = api['ssai']['videoID']
dai = self._download_json(
f'https://dai.google.com/ondemand/dash/content/{ssai_content_source_id}/vid/{ssai_video_id}/streams',
video_id, data=b'{"api-key":"null"}',
headers={'content-type': 'application/json'})
periods = self._extract_mpd_periods(dai['stream_manifest'], video_id)
# skip pre-roll and mid-roll ads
periods = [p for p in periods if '-ad-' not in p['id']]
formats, subtitles = self._merge_mpd_periods(periods)
info_dict.update({
'id': video_id,View on GitHub (pinned to 81ecd58b13)
Solutions
- Update yt-dlp; GoPlay may have changed its streaming setup (non-Google-SSAI stream).
- Check whether the content is DRM-protected; DRM streams are not supported.
- Report the issue with verbose output if it persists.
Example fix
yt-dlp -vU "URL"
When it happens
Trigger: Thrown at yt_dlp/extractor/goplay.py:118 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of yt-dlp/yt-dlp@81ecd58b13 (2026-08-22).
Data as JSON: /api/errors/5b68ce228897b7d5.
Report an issue: GitHub.