aboutsummaryrefslogtreecommitdiff
path: root/youtube_dl
diff options
context:
space:
mode:
Diffstat (limited to 'youtube_dl')
-rw-r--r--youtube_dl/__init__.py8
-rw-r--r--youtube_dl/compat.py18
2 files changed, 19 insertions, 7 deletions
diff --git a/youtube_dl/__init__.py b/youtube_dl/__init__.py
index e1bd67919..cc8285eba 100644
--- a/youtube_dl/__init__.py
+++ b/youtube_dl/__init__.py
@@ -5,7 +5,6 @@ from __future__ import unicode_literals
__license__ = 'Public Domain'
-import codecs
import io
import os
import random
@@ -17,6 +16,7 @@ from .options import (
)
from .compat import (
compat_getpass,
+ compat_register_utf8,
compat_shlex_split,
workaround_optparse_bug9161,
)
@@ -46,10 +46,8 @@ from .YoutubeDL import YoutubeDL
def _real_main(argv=None):
- # Compatibility fixes for Windows
- if sys.platform == 'win32':
- # https://github.com/ytdl-org/youtube-dl/issues/820
- codecs.register(lambda name: codecs.lookup('utf-8') if name == 'cp65001' else None)
+ # Compatibility fix for Windows
+ compat_register_utf8()
workaround_optparse_bug9161()
diff --git a/youtube_dl/compat.py b/youtube_dl/compat.py
index fe62caf80..0f4d3756f 100644
--- a/youtube_dl/compat.py
+++ b/youtube_dl/compat.py
@@ -31,13 +31,17 @@ try:
compat_str, compat_basestring, compat_chr = (
unicode, basestring, unichr
)
- from .casefold import casefold as compat_casefold
-
except NameError:
compat_str, compat_basestring, compat_chr = (
str, str, chr
)
+
+# casefold
+try:
+ compat_str.casefold
compat_casefold = lambda s: s.casefold()
+except AttributeError:
+ from .casefold import casefold as compat_casefold
try:
import collections.abc as compat_collections_abc
@@ -3137,6 +3141,15 @@ else:
compat_open = open
+# compat_register_utf8
+def compat_register_utf8():
+ if sys.platform == 'win32':
+ # https://github.com/ytdl-org/youtube-dl/issues/820
+ from codecs import register, lookup
+ register(
+ lambda name: lookup('utf-8') if name == 'cp65001' else None)
+
+
legacy = [
'compat_HTMLParseError',
'compat_HTMLParser',
@@ -3203,6 +3216,7 @@ __all__ = [
'compat_print',
'compat_re_Match',
'compat_re_Pattern',
+ 'compat_register_utf8',
'compat_setenv',
'compat_shlex_quote',
'compat_shlex_split',