aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--test/test_youtube_signature.py9
-rw-r--r--yt_dlp/extractor/youtube/_video.py7
2 files changed, 14 insertions, 2 deletions
diff --git a/test/test_youtube_signature.py b/test/test_youtube_signature.py
index 45dc9113b..453caacd6 100644
--- a/test/test_youtube_signature.py
+++ b/test/test_youtube_signature.py
@@ -83,6 +83,11 @@ _SIG_TESTS = [
'2aq0aqSyOoJXtK73m-uME_jv7-pT15gOFC02RFkGMqWpzEICs69VdbwQ0LDp1v7j8xx92efCJlYFYb1sUkkBSPOlPmXgIARw8JQ0qOAOAA',
'AAOAOq0QJ8wRAIgXmPlOPSBkkUs1bYFYlJCfe29xx8j7vgpDL0QwbdV06sCIEzpWqMGkFR20CFOS21Tp-7vj_EMu-m37KtXJoOy1',
),
+ (
+ 'https://www.youtube.com/s/player/363db69b/player_ias.vflset/en_US/base.js',
+ '2aq0aqSyOoJXtK73m-uME_jv7-pT15gOFC02RFkGMqWpzEICs69VdbwQ0LDp1v7j8xx92efCJlYFYb1sUkkBSPOlPmXgIARw8JQ0qOAOAA',
+ '0aqSyOoJXtK73m-uME_jv7-pT15gOFC02RFkGMqWpz2ICs6EVdbwQ0LDp1v7j8xx92efCJlYFYb1sUkkBSPOlPmXgIARw8JQ0qOAOAA',
+ ),
]
_NSIG_TESTS = [
@@ -234,6 +239,10 @@ _NSIG_TESTS = [
'https://www.youtube.com/s/player/643afba4/tv-player-ias.vflset/tv-player-ias.js',
'ir9-V6cdbCiyKxhr', '2PL7ZDYAALMfmA',
),
+ (
+ 'https://www.youtube.com/s/player/363db69b/player_ias.vflset/en_US/base.js',
+ 'eWYu5d5YeY_4LyEDc', 'XJQqf-N7Xra3gg',
+ ),
]
diff --git a/yt_dlp/extractor/youtube/_video.py b/yt_dlp/extractor/youtube/_video.py
index c773ba2f1..ee93a599a 100644
--- a/yt_dlp/extractor/youtube/_video.py
+++ b/yt_dlp/extractor/youtube/_video.py
@@ -2176,10 +2176,13 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
"""Returns tuple of strings: variable assignment code, variable name, variable value code"""
return self._search_regex(
r'''(?x)
- \'use\s+strict\';\s*
+ (?P<q1>["\'])use\s+strict(?P=q1);\s*
(?P<code>
var\s+(?P<name>[a-zA-Z0-9_$]+)\s*=\s*
- (?P<value>"(?:[^"\\]|\\.)+"\.split\("[^"]+"\))
+ (?P<value>
+ (?P<q2>["\'])(?:(?!(?P=q2)).|\\.)+(?P=q2)
+ \.split\((?P<q3>["\'])(?:(?!(?P=q3)).)+(?P=q3)\)
+ )
)[;,]
''', jscode, 'global variable', group=('code', 'name', 'value'), default=(None, None, None))