[theplatform] Fix for Python 3.2
authorYen Chi Hsuan <yan12125@gmail.com>
Wed, 27 Apr 2016 10:08:23 +0000 (18:08 +0800)
committerYen Chi Hsuan <yan12125@gmail.com>
Wed, 27 Apr 2016 10:35:33 +0000 (18:35 +0800)
test_AENetworks{,_1} fails as in Python < 3.3, binascii.a2b_* functions
accepts only bytes-like objects

youtube_dl/extractor/theplatform.py

index 8272dd96936f501069edc0eb85d468c07ab5681b..a25417f94f846a70080c51661b57147e01e76b47 100644 (file)
@@ -159,11 +159,11 @@ class ThePlatformIE(ThePlatformBaseIE):
         def str_to_hex(str):
             return binascii.b2a_hex(str.encode('ascii')).decode('ascii')
 
-        def hex_to_str(hex):
-            return binascii.a2b_hex(hex)
+        def hex_to_bytes(hex):
+            return binascii.a2b_hex(hex.encode('ascii'))
 
         relative_path = re.match(r'https?://link.theplatform.com/s/([^?]+)', url).group(1)
-        clear_text = hex_to_str(flags + expiration_date + str_to_hex(relative_path))
+        clear_text = hex_to_bytes(flags + expiration_date + str_to_hex(relative_path))
         checksum = hmac.new(sig_key.encode('ascii'), clear_text, hashlib.sha1).hexdigest()
         sig = flags + expiration_date + checksum + str_to_hex(sig_secret)
         return '%s&sig=%s' % (url, sig)