aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--yt_dlp/extractor/youtube/_base.py12
1 files changed, 7 insertions, 5 deletions
diff --git a/yt_dlp/extractor/youtube/_base.py b/yt_dlp/extractor/youtube/_base.py
index ac0604a9c..8ca7d898e 100644
--- a/yt_dlp/extractor/youtube/_base.py
+++ b/yt_dlp/extractor/youtube/_base.py
@@ -803,12 +803,14 @@ class YoutubeBaseInfoExtractor(InfoExtractor):
@classmethod
def _extract_continuation_ep_data(cls, continuation_ep: dict):
- if isinstance(continuation_ep, dict):
- continuation = try_get(
- continuation_ep, lambda x: x['continuationCommand']['token'], str)
+ continuation_commands = traverse_obj(
+ continuation_ep, ('commandExecutorCommand', 'commands', ..., {dict}))
+ continuation_commands.append(continuation_ep)
+ for command in continuation_commands:
+ continuation = traverse_obj(command, ('continuationCommand', 'token', {str}))
if not continuation:
- return
- ctp = continuation_ep.get('clickTrackingParams')
+ continue
+ ctp = command.get('clickTrackingParams')
return cls._build_api_continuation_query(continuation, ctp)
@classmethod