{"record":{"id":"5b68ce228897b7d5","repo":"yt-dlp/yt-dlp","slug":"expecting-google-ssai-stream","errorCode":null,"errorMessage":"expecting Google SSAI stream","messagePattern":"expecting Google SSAI stream","errorType":"exception","errorClass":"ExtractorError","httpStatus":null,"severity":"error","filePath":"yt_dlp/extractor/goplay.py","lineNumber":118,"sourceCode":"                    'series': self._search_regex(\n                        fr'^(.+)? - S{season_number} - ', info_dict.get('title'), 'series', default=None),\n                })\n                break\n\n        api = self._download_json(\n            f'https://api.play.tv/web/v1/videos/long-form/{video_id}',\n            video_id, headers={\n                'Authorization': f'Bearer {self._id_token}',\n                **self.geo_verification_headers(),\n            })\n\n        if 'manifestUrls' in api:\n            formats, subtitles = self._extract_m3u8_formats_and_subtitles(\n                api['manifestUrls']['hls'], video_id, ext='mp4', m3u8_id='HLS')\n\n        else:\n            if 'ssai' not in api:\n                raise ExtractorError('expecting Google SSAI stream')\n\n            ssai_content_source_id = api['ssai']['contentSourceID']\n            ssai_video_id = api['ssai']['videoID']\n\n            dai = self._download_json(\n                f'https://dai.google.com/ondemand/dash/content/{ssai_content_source_id}/vid/{ssai_video_id}/streams',\n                video_id, data=b'{\"api-key\":\"null\"}',\n                headers={'content-type': 'application/json'})\n\n            periods = self._extract_mpd_periods(dai['stream_manifest'], video_id)\n\n            # skip pre-roll and mid-roll ads\n            periods = [p for p in periods if '-ad-' not in p['id']]\n\n            formats, subtitles = self._merge_mpd_periods(periods)\n\n        info_dict.update({\n            'id': video_id,","sourceCodeStart":100,"sourceCodeEnd":136,"githubUrl":"https://github.com/yt-dlp/yt-dlp/blob/81ecd58b1394793e6da9998cc19fdb45657f1685/yt_dlp/extractor/goplay.py#L100-L136","documentation":"Raised when the GoPlay stream is not the expected Google SSAI stream. The stream setup changed; update yt-dlp.","triggerScenarios":"Thrown at yt_dlp/extractor/goplay.py:118 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","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."],"exampleFix":"yt-dlp -vU \"URL\"","handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"81ecd58b1394793e6da9998cc19fdb45657f1685","analyzedAt":"2026-08-22T12:21:25.439Z","schemaVersion":2},"datasetVersion":"2026-08-22T14:17:55.899Z"}