aboutsummaryrefslogtreecommitdiff
path: root/youtube_dl/utils.py
diff options
context:
space:
mode:
authorPhilipp Hagemeister <phihag@phihag.de>2014-02-15 16:24:43 +0100
committerPhilipp Hagemeister <phihag@phihag.de>2014-02-15 16:24:43 +0100
commitb53466e1680db3d710415329674c887d38af46c5 (patch)
tree46bed830eda044afc7189de92aeb41aa88b227ea /youtube_dl/utils.py
parent6a7a38967976ea0d0b911c2965aaa74bed2976d7 (diff)
downloadyoutube-dl-b53466e1680db3d710415329674c887d38af46c5.tar.xz
Fix f4m downloading on Python 2.6
Diffstat (limited to 'youtube_dl/utils.py')
-rw-r--r--youtube_dl/utils.py18
1 files changed, 18 insertions, 0 deletions
diff --git a/youtube_dl/utils.py b/youtube_dl/utils.py
index 67c6af507..dd03f058f 100644
--- a/youtube_dl/utils.py
+++ b/youtube_dl/utils.py
@@ -17,6 +17,7 @@ import platform
import re
import ssl
import socket
+import struct
import subprocess
import sys
import traceback
@@ -1220,3 +1221,20 @@ def uppercase_escape(s):
return re.sub(
r'\\U([0-9a-fA-F]{8})',
lambda m: compat_chr(int(m.group(1), base=16)), s)
+
+try:
+ struct.pack(u'!I', 0)
+except TypeError:
+ # In Python 2.6 (and some 2.7 versions), struct requires a bytes argument
+ def struct_pack(spec, *args):
+ if isinstance(spec, compat_str):
+ spec = spec.encode('ascii')
+ return struct.pack(spec, *args)
+
+ def struct_unpack(spec, *args):
+ if isinstance(spec, compat_str):
+ spec = spec.encode('ascii')
+ return struct.unpack(spec, *args)
+else:
+ struct_pack = struct.pack
+ struct_unpack = struct.unpack