From b94c89d146e9e2ad8050a7bf0d8942b36c9e2a3c Mon Sep 17 00:00:00 2001 From: sepro Date: Tue, 25 Mar 2025 20:03:37 +0100 Subject: [PATCH] [ie/youtube] Fix nsig extraction for player `4fcd6e4a` --- test/test_youtube_signature.py | 8 ++++++++ yt_dlp/extractor/youtube/_video.py | 3 ++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/test/test_youtube_signature.py b/test/test_youtube_signature.py index 453caacd65..9d0e1cf186 100644 --- a/test/test_youtube_signature.py +++ b/test/test_youtube_signature.py @@ -243,6 +243,14 @@ _NSIG_TESTS = [ 'https://www.youtube.com/s/player/363db69b/player_ias.vflset/en_US/base.js', 'eWYu5d5YeY_4LyEDc', 'XJQqf-N7Xra3gg', ), + ( + 'https://www.youtube.com/s/player/4fcd6e4a/player_ias.vflset/en_US/base.js', + 'o_L251jm8yhZkWtBW', 'lXoxI3XvToqn6A', + ), + ( + 'https://www.youtube.com/s/player/4fcd6e4a/tv-player-ias.vflset/tv-player-ias.js', + 'o_L251jm8yhZkWtBW', 'lXoxI3XvToqn6A', + ), ] diff --git a/yt_dlp/extractor/youtube/_video.py b/yt_dlp/extractor/youtube/_video.py index b7203fd895..86483115c5 100644 --- a/yt_dlp/extractor/youtube/_video.py +++ b/yt_dlp/extractor/youtube/_video.py @@ -2182,6 +2182,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor): (?P (?P["\'])(?:(?!(?P=q2)).|\\.)+(?P=q2) \.split\((?P["\'])(?:(?!(?P=q3)).)+(?P=q3)\) + |\[((?P["\'])(?:(?!(?P=q4)).|\\.)*(?P=q4),?\s*)*\] ) )[;,] ''', jscode, 'global variable', group=('code', 'name', 'value'), default=(None, None, None)) @@ -2199,7 +2200,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor): def _extract_n_function_code(self, video_id, player_url): player_id = self._extract_player_info(player_url) - func_code = self.cache.load('youtube-nsig', player_id, min_ver='2025.03.25') + func_code = self.cache.load('youtube-nsig', player_id, min_ver='2025.03.26') jscode = func_code or self._load_player(video_id, player_url) jsi = JSInterpreter(jscode)