From e029da9addef9e41ec9db4a85165ef8e1e352636 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sergey=20M=E2=80=A4?= Date: Wed, 9 Dec 2020 04:02:50 +0700 Subject: [PATCH] [youtube:tab] Make click tracking params on continuation optional --- youtube_dl/extractor/youtube.py | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/youtube_dl/extractor/youtube.py b/youtube_dl/extractor/youtube.py index a3f75b626..052926ee5 100644 --- a/youtube_dl/extractor/youtube.py +++ b/youtube_dl/extractor/youtube.py @@ -2870,6 +2870,16 @@ class YoutubeTabIE(YoutubeBaseInfoExtractor): for entry in self._post_thread_entries(renderer): yield entry + @staticmethod + def _build_continuation_query(continuation, ctp=None): + query = { + 'ctoken': continuation, + 'continuation': continuation, + } + if ctp: + query['itct'] = ctp + return query + @staticmethod def _extract_next_continuation_data(renderer): next_continuation = try_get( @@ -2880,11 +2890,7 @@ class YoutubeTabIE(YoutubeBaseInfoExtractor): if not continuation: return ctp = next_continuation.get('clickTrackingParams') - return { - 'ctoken': continuation, - 'continuation': continuation, - 'itct': ctp, - } + return YoutubeTabIE._build_continuation_query(continuation, ctp) @classmethod def _extract_continuation(cls, renderer): @@ -2907,13 +2913,7 @@ class YoutubeTabIE(YoutubeBaseInfoExtractor): if not continuation: continue ctp = continuation_ep.get('clickTrackingParams') - if not ctp: - continue - return { - 'ctoken': continuation, - 'continuation': continuation, - 'itct': ctp, - } + return YoutubeTabIE._build_continuation_query(continuation, ctp) def _entries(self, tab, identity_token): tab_content = try_get(tab, lambda x: x['content'], dict)