From: coletdjnz Date: Mon, 13 Mar 2023 01:43:37 +0000 (+0000) Subject: [extractor/youtube] Handle incomplete initial data from watch page (#6510) X-Git-Tag: 2023.06.21~218 X-Git-Url: https://jfr.im/git/yt-dlp.git/commitdiff_plain/607510b9f2f67bfe7d33d74031a5c1fe22a24862 [extractor/youtube] Handle incomplete initial data from watch page (#6510) Authored by: coletdjnz --- diff --git a/yt_dlp/extractor/youtube.py b/yt_dlp/extractor/youtube.py index d7cd0dc62..b024d18b7 100644 --- a/yt_dlp/extractor/youtube.py +++ b/yt_dlp/extractor/youtube.py @@ -4254,12 +4254,15 @@ def process_language(container, base_url, lang_code, sub_name, query): initial_data = None if webpage: initial_data = self.extract_yt_initial_data(video_id, webpage, fatal=False) + if not traverse_obj(initial_data, 'contents'): + self.report_warning('Incomplete data received in embedded initial data; re-fetching using API.') + initial_data = None if not initial_data: query = {'videoId': video_id} query.update(self._get_checkok_params()) initial_data = self._extract_response( item_id=video_id, ep='next', fatal=False, - ytcfg=master_ytcfg, query=query, + ytcfg=master_ytcfg, query=query, check_get_keys='contents', headers=self.generate_api_headers(ytcfg=master_ytcfg), note='Downloading initial data API JSON')