Merge pull request #1464 from patrickslin/patch-7
authorJaime Marquínez Ferrándiz <jaime.marquinez.ferrandiz@gmail.com>
Fri, 20 Sep 2013 06:23:50 +0000 (08:23 +0200)
committerJaime Marquínez Ferrándiz <jaime.marquinez.ferrandiz@gmail.com>
Fri, 20 Sep 2013 06:25:10 +0000 (08:25 +0200)
Unable to decrypt signature length 93 (fixes #1461)

devscripts/youtube_genalgo.py
youtube_dl/extractor/youtube.py

index 66019ee55aa3ecd22b33cd7cf8760dcc3e4fe2aa..d4546758d855597e917cf35e53862795ed687893 100644 (file)
@@ -1,10 +1,14 @@
 #!/usr/bin/env python
+# encoding: utf-8
 
 # Generate youtube signature algorithm from test cases
 
 import sys
 
 tests = [
+    # 93 - vfl79wBKW 2013/07/20
+    (u"qwertyuioplkjhgfdsazxcvbnm1234567890QWERTYUIOPLKJHGFDSAZXCVBNM!@#$%^&*()_-+={[]}|:;?/>.<'`~\"€",
+     u".>/?;:|}][{=+-_)(*&^%$#@!MNBVCXZASDFGHJKLPOIUYTREWQ098765'321mnbvcxzasdfghjklpoiu"),
     # 92 - vflQw-fB4 2013/07/17
     ("qwertyuioplkjhgfdsazxcvbnm1234567890QWERTYUIOPLKJHGFDSAZXCVBNM!@#$%^&*()_-+={[]}|:;?/>.<'`~\"",
      "mrtyuioplkjhgfdsazxcvbnq1234567890QWERTY}IOPLKJHGFDSAZXCVBNM!@#$%^&*()_-+={[]\"|:;"),
index 23a8097c5a91f3409688d26006cf4b26b785139e..e5f536e6f4f64bd45688b3515899fd6802886f21 100644 (file)
@@ -416,7 +416,9 @@ class YoutubeIE(YoutubeBaseInfoExtractor, SubtitlesInfoExtractor):
     def _decrypt_signature(self, s):
         """Turn the encrypted s field into a working signature"""
 
-        if len(s) == 92:
+        if len(s) == 93:
+            return s[86:29:-1] + s[88] + s[28:5:-1]
+        elif len(s) == 92:
             return s[25] + s[3:25] + s[0] + s[26:42] + s[79] + s[43:79] + s[91] + s[80:83]
         elif len(s) == 90:
             return s[25] + s[3:25] + s[2] + s[26:40] + s[77] + s[41:77] + s[89] + s[78:81]