diff options
| author | Sergey M․ <dstftw@gmail.com> | 2019-06-21 22:58:42 +0700 | 
|---|---|---|
| committer | Sergey M․ <dstftw@gmail.com> | 2019-06-21 22:58:42 +0700 | 
| commit | abefc03f517e9208b9d0c35e7e683941a40bb152 (patch) | |
| tree | 0f2e4d135471b26805bb3dba21dde917f3ebddc0 | |
| parent | c40714cdee0ce3de1a5f6e17a61d3ee4c610ae63 (diff) | |
[youtube] Update signature function patterns (closes #21469, closes #21476)
| -rw-r--r-- | youtube_dl/extractor/youtube.py | 14 | 
1 files changed, 10 insertions, 4 deletions
diff --git a/youtube_dl/extractor/youtube.py b/youtube_dl/extractor/youtube.py index 1010c8616..83b6ac134 100644 --- a/youtube_dl/extractor/youtube.py +++ b/youtube_dl/extractor/youtube.py @@ -1312,11 +1312,17 @@ class YoutubeIE(YoutubeBaseInfoExtractor):      def _parse_sig_js(self, jscode):          funcname = self._search_regex( -            (r'(["\'])signature\1\s*,\s*(?P<sig>[a-zA-Z0-9$]+)\(', +            (r'\b[cs]\s*&&\s*[adf]\.set\([^,]+\s*,\s*encodeURIComponent\s*\(\s*(?P<sig>[a-zA-Z0-9$]+)\(', +             r'\b[a-zA-Z0-9]+\s*&&\s*[a-zA-Z0-9]+\.set\([^,]+\s*,\s*encodeURIComponent\s*\(\s*(?P<sig>[a-zA-Z0-9$]+)\(', +             # Obsolete patterns +             r'(["\'])signature\1\s*,\s*(?P<sig>[a-zA-Z0-9$]+)\(',               r'\.sig\|\|(?P<sig>[a-zA-Z0-9$]+)\(', -             r'yt\.akamaized\.net/\)\s*\|\|\s*.*?\s*c\s*&&\s*d\.set\([^,]+\s*,\s*(?:encodeURIComponent\s*\()?(?P<sig>[a-zA-Z0-9$]+)\(', -             r'\bc\s*&&\s*d\.set\([^,]+\s*,\s*(?:encodeURIComponent\s*\()?\s*(?P<sig>[a-zA-Z0-9$]+)\(', -             r'\bc\s*&&\s*d\.set\([^,]+\s*,\s*\([^)]*\)\s*\(\s*(?P<sig>[a-zA-Z0-9$]+)\('), +             r'yt\.akamaized\.net/\)\s*\|\|\s*.*?\s*[cs]\s*&&\s*[adf]\.set\([^,]+\s*,\s*(?:encodeURIComponent\s*\()?\s*(?P<sig>[a-zA-Z0-9$]+)\(', +             r'\b[cs]\s*&&\s*[adf]\.set\([^,]+\s*,\s*(?P<sig>[a-zA-Z0-9$]+)\(', +             r'\b[a-zA-Z0-9]+\s*&&\s*[a-zA-Z0-9]+\.set\([^,]+\s*,\s*(?P<sig>[a-zA-Z0-9$]+)\(', +             r'\bc\s*&&\s*a\.set\([^,]+\s*,\s*\([^)]*\)\s*\(\s*(?P<sig>[a-zA-Z0-9$]+)\(', +             r'\bc\s*&&\s*[a-zA-Z0-9]+\.set\([^,]+\s*,\s*\([^)]*\)\s*\(\s*(?P<sig>[a-zA-Z0-9$]+)\(', +             r'\bc\s*&&\s*[a-zA-Z0-9]+\.set\([^,]+\s*,\s*\([^)]*\)\s*\(\s*(?P<sig>[a-zA-Z0-9$]+)\('),              jscode, 'Initial JS player signature function name', group='sig')          jsi = JSInterpreter(jscode)  | 
