aboutsummaryrefslogtreecommitdiff
path: root/youtube_dl
diff options
context:
space:
mode:
Diffstat (limited to 'youtube_dl')
-rw-r--r--youtube_dl/__init__.py21
-rw-r--r--youtube_dl/utils.py6
-rw-r--r--youtube_dl/version.py1
3 files changed, 17 insertions, 11 deletions
diff --git a/youtube_dl/__init__.py b/youtube_dl/__init__.py
index 092ff268c..4eb4101d2 100644
--- a/youtube_dl/__init__.py
+++ b/youtube_dl/__init__.py
@@ -37,7 +37,7 @@ import warnings
import platform
from .utils import *
-from .version import __version__, __version_codename__
+from .version import __version__
from .FileDownloader import *
from .InfoExtractors import *
from .PostProcessor import *
@@ -62,7 +62,7 @@ def update_self(to_screen, verbose, filename):
try:
newversion = compat_urllib_request.urlopen(VERSION_URL).read().decode('utf-8').strip()
except:
- if verbose: to_screen(traceback.format_exc().decode())
+ if verbose: to_screen(enforce_unicode(traceback.format_exc()))
to_screen(u'ERROR: can\'t find the current version. Please try again later.')
return
if newversion == __version__:
@@ -74,7 +74,7 @@ def update_self(to_screen, verbose, filename):
versions_info = compat_urllib_request.urlopen(JSON_URL).read().decode('utf-8')
versions_info = json.loads(versions_info)
except:
- if verbose: to_screen(traceback.format_exc().decode())
+ if verbose: to_screen(enforce_unicode(traceback.format_exc()))
to_screen(u'ERROR: can\'t obtain versions info. Please try again later.')
return
if not 'signature' in versions_info:
@@ -110,7 +110,7 @@ def update_self(to_screen, verbose, filename):
newcontent = urlh.read()
urlh.close()
except (IOError, OSError) as err:
- if verbose: to_screen(traceback.format_exc().decode())
+ if verbose: to_screen(enforce_unicode(traceback.format_exc()))
to_screen(u'ERROR: unable to download latest version')
return
@@ -123,7 +123,7 @@ def update_self(to_screen, verbose, filename):
with open(exe + '.new', 'wb') as outf:
outf.write(newcontent)
except (IOError, OSError) as err:
- if verbose: to_screen(traceback.format_exc().decode())
+ if verbose: to_screen(enforce_unicode(traceback.format_exc()))
to_screen(u'ERROR: unable to write the new version')
return
@@ -140,7 +140,7 @@ del "%s"
os.startfile(bat)
except (IOError, OSError) as err:
- if verbose: to_screen(traceback.format_exc().decode())
+ if verbose: to_screen(enforce_unicode(traceback.format_exc()))
to_screen(u'ERROR: unable to overwrite current version')
return
@@ -151,7 +151,7 @@ del "%s"
newcontent = urlh.read()
urlh.close()
except (IOError, OSError) as err:
- if verbose: to_screen(traceback.format_exc().decode())
+ if verbose: to_screen(enforce_unicode(traceback.format_exc()))
to_screen(u'ERROR: unable to download latest version')
return
@@ -164,7 +164,7 @@ del "%s"
with open(filename, 'wb') as outf:
outf.write(newcontent)
except (IOError, OSError) as err:
- if verbose: to_screen(traceback.format_exc().decode())
+ if verbose: to_screen(enforce_unicode(traceback.format_exc()))
to_screen(u'ERROR: unable to overwrite current version')
return
@@ -603,9 +603,10 @@ def _real_main():
})
if opts.verbose:
- fd.to_screen(u'[debug] youtube-dl version %s - %s' %(__version__, __version_codename__))
+ fd.to_screen(u'[debug] youtube-dl version ' + __version__)
try:
- sp = subprocess.Popen(['git', 'rev-parse', '--short', 'HEAD'], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+ sp = subprocess.Popen(['git', 'rev-parse', '--short', 'HEAD'], stdout=subprocess.PIPE, stderr=subprocess.PIPE,
+ cwd=os.path.dirname(os.path.abspath(__file__)))
out, err = sp.communicate()
out = out.decode().strip()
if re.match('[0-9a-f]+', out):
diff --git a/youtube_dl/utils.py b/youtube_dl/utils.py
index 7d6041929..9784abb24 100644
--- a/youtube_dl/utils.py
+++ b/youtube_dl/utils.py
@@ -154,6 +154,7 @@ std_headers = {
'Accept-Encoding': 'gzip, deflate',
'Accept-Language': 'en-us,en;q=0.5',
}
+
def preferredencoding():
"""Get preferred encoding.
@@ -187,6 +188,11 @@ else:
with open(fn, 'w', encoding='utf-8') as f:
json.dump(obj, f)
+# Some library functions return bytestring on 2.X and unicode on 3.X
+def enforce_unicode(s, encoding='utf-8'):
+ if type(s) != type(u''):
+ return s.decode(encoding)
+ return s
def htmlentity_transform(matchobj):
"""Transforms an HTML entity to a character.
diff --git a/youtube_dl/version.py b/youtube_dl/version.py
index 461a6785d..d5986f5e6 100644
--- a/youtube_dl/version.py
+++ b/youtube_dl/version.py
@@ -1,3 +1,2 @@
__version__ = '2012.12.11'
-__version_codename__ = ''