aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rwxr-xr-xdevscripts/bash-completion.py1
-rwxr-xr-xdevscripts/fish-completion.py1
-rw-r--r--devscripts/generate_aes_testdata.py1
-rwxr-xr-xdevscripts/gh-pages/update-sites.py1
-rwxr-xr-xdevscripts/make_contributing.py1
-rw-r--r--devscripts/make_lazy_extractors.py1
-rw-r--r--devscripts/make_supportedsites.py1
-rw-r--r--devscripts/prepare_manpage.py1
-rwxr-xr-xdevscripts/zsh-completion.py1
-rw-r--r--test/test_InfoExtractor.py1
-rw-r--r--test/test_aes.py1
-rw-r--r--test/test_download.py2
-rw-r--r--test/test_execution.py1
-rw-r--r--test/test_http.py1
-rw-r--r--test/test_iqiyi_sdk_interpreter.py1
-rw-r--r--test/test_jsinterp.py1
-rw-r--r--test/test_utils.py1
-rw-r--r--test/test_verbose_output.py1
-rw-r--r--test/test_write_annotations.py2
-rw-r--r--test/test_youtube_lists.py1
-rw-r--r--test/test_youtube_signature.py1
-rw-r--r--youtube_dl/__init__.py1
-rw-r--r--youtube_dl/aes.py2
-rw-r--r--youtube_dl/compat.py2
-rw-r--r--youtube_dl/downloader/external.py1
-rw-r--r--youtube_dl/socks.py1
-rw-r--r--youtube_dl/swfinterp.py3
27 files changed, 33 insertions, 0 deletions
diff --git a/devscripts/bash-completion.py b/devscripts/bash-completion.py
index ce68f26f9..3d1391334 100755
--- a/devscripts/bash-completion.py
+++ b/devscripts/bash-completion.py
@@ -25,5 +25,6 @@ def build_completion(opt_parser):
filled_template = template.replace("{{flags}}", " ".join(opts_flag))
f.write(filled_template)
+
parser = youtube_dl.parseOpts()[0]
build_completion(parser)
diff --git a/devscripts/fish-completion.py b/devscripts/fish-completion.py
index 41629d87d..51d19dd33 100755
--- a/devscripts/fish-completion.py
+++ b/devscripts/fish-completion.py
@@ -44,5 +44,6 @@ def build_completion(opt_parser):
with open(FISH_COMPLETION_FILE, 'w') as f:
f.write(filled_template)
+
parser = youtube_dl.parseOpts()[0]
build_completion(parser)
diff --git a/devscripts/generate_aes_testdata.py b/devscripts/generate_aes_testdata.py
index 2e389fc8e..e3df42cc2 100644
--- a/devscripts/generate_aes_testdata.py
+++ b/devscripts/generate_aes_testdata.py
@@ -23,6 +23,7 @@ def openssl_encode(algo, key, iv):
out, _ = prog.communicate(secret_msg)
return out
+
iv = key = [0x20, 0x15] + 14 * [0]
r = openssl_encode('aes-128-cbc', key, iv)
diff --git a/devscripts/gh-pages/update-sites.py b/devscripts/gh-pages/update-sites.py
index 503c1372f..531c93c70 100755
--- a/devscripts/gh-pages/update-sites.py
+++ b/devscripts/gh-pages/update-sites.py
@@ -32,5 +32,6 @@ def main():
with open('supportedsites.html', 'w', encoding='utf-8') as sitesf:
sitesf.write(template)
+
if __name__ == '__main__':
main()
diff --git a/devscripts/make_contributing.py b/devscripts/make_contributing.py
index 5e454a429..226d1a5d6 100755
--- a/devscripts/make_contributing.py
+++ b/devscripts/make_contributing.py
@@ -28,5 +28,6 @@ def main():
with io.open(outfile, 'w', encoding='utf-8') as outf:
outf.write(out)
+
if __name__ == '__main__':
main()
diff --git a/devscripts/make_lazy_extractors.py b/devscripts/make_lazy_extractors.py
index 9a79c2bc5..19114d30d 100644
--- a/devscripts/make_lazy_extractors.py
+++ b/devscripts/make_lazy_extractors.py
@@ -59,6 +59,7 @@ def build_lazy_ie(ie, name):
s += make_valid_template.format(valid_url=ie._make_valid_url())
return s
+
# find the correct sorting and add the required base classes so that sublcasses
# can be correctly created
classes = _ALL_CLASSES[:-1]
diff --git a/devscripts/make_supportedsites.py b/devscripts/make_supportedsites.py
index 8cb4a4638..764795bc5 100644
--- a/devscripts/make_supportedsites.py
+++ b/devscripts/make_supportedsites.py
@@ -41,5 +41,6 @@ def main():
with io.open(outfile, 'w', encoding='utf-8') as outf:
outf.write(out)
+
if __name__ == '__main__':
main()
diff --git a/devscripts/prepare_manpage.py b/devscripts/prepare_manpage.py
index ce548739f..f9fe63f1f 100644
--- a/devscripts/prepare_manpage.py
+++ b/devscripts/prepare_manpage.py
@@ -74,5 +74,6 @@ def filter_options(readme):
return ret
+
if __name__ == '__main__':
main()
diff --git a/devscripts/zsh-completion.py b/devscripts/zsh-completion.py
index 04728e8e2..60aaf76cc 100755
--- a/devscripts/zsh-completion.py
+++ b/devscripts/zsh-completion.py
@@ -44,5 +44,6 @@ def build_completion(opt_parser):
with open(ZSH_COMPLETION_FILE, "w") as f:
f.write(template)
+
parser = youtube_dl.parseOpts()[0]
build_completion(parser)
diff --git a/test/test_InfoExtractor.py b/test/test_InfoExtractor.py
index a98305c74..437c7270e 100644
--- a/test/test_InfoExtractor.py
+++ b/test/test_InfoExtractor.py
@@ -84,5 +84,6 @@ class TestInfoExtractor(unittest.TestCase):
self.assertRaises(ExtractorError, self.ie._download_json, uri, None)
self.assertEqual(self.ie._download_json(uri, None, fatal=False), None)
+
if __name__ == '__main__':
unittest.main()
diff --git a/test/test_aes.py b/test/test_aes.py
index 315a3f5ae..54078a66d 100644
--- a/test/test_aes.py
+++ b/test/test_aes.py
@@ -51,5 +51,6 @@ class TestAES(unittest.TestCase):
decrypted = (aes_decrypt_text(encrypted, password, 32))
self.assertEqual(decrypted, self.secret_msg)
+
if __name__ == '__main__':
unittest.main()
diff --git a/test/test_download.py b/test/test_download.py
index a3f1c0644..463952989 100644
--- a/test/test_download.py
+++ b/test/test_download.py
@@ -60,6 +60,7 @@ def _file_md5(fn):
with open(fn, 'rb') as f:
return hashlib.md5(f.read()).hexdigest()
+
defs = gettestcases()
@@ -217,6 +218,7 @@ def generator(test_case):
return test_template
+
# And add them to TestDownload
for n, test_case in enumerate(defs):
test_method = generator(test_case)
diff --git a/test/test_execution.py b/test/test_execution.py
index 620db080e..11661bb68 100644
--- a/test/test_execution.py
+++ b/test/test_execution.py
@@ -39,5 +39,6 @@ class TestExecution(unittest.TestCase):
_, stderr = p.communicate()
self.assertFalse(stderr)
+
if __name__ == '__main__':
unittest.main()
diff --git a/test/test_http.py b/test/test_http.py
index bb0a098e4..7a7a3510f 100644
--- a/test/test_http.py
+++ b/test/test_http.py
@@ -169,5 +169,6 @@ class TestProxy(unittest.TestCase):
# b'xn--fiq228c' is '中文'.encode('idna')
self.assertEqual(response, 'normal: http://xn--fiq228c.tw/')
+
if __name__ == '__main__':
unittest.main()
diff --git a/test/test_iqiyi_sdk_interpreter.py b/test/test_iqiyi_sdk_interpreter.py
index 9d95cb606..789059dbe 100644
--- a/test/test_iqiyi_sdk_interpreter.py
+++ b/test/test_iqiyi_sdk_interpreter.py
@@ -43,5 +43,6 @@ class TestIqiyiSDKInterpreter(unittest.TestCase):
ie._login()
self.assertTrue('unable to log in:' in logger.messages[0])
+
if __name__ == '__main__':
unittest.main()
diff --git a/test/test_jsinterp.py b/test/test_jsinterp.py
index a9abae5f5..c24b8ca74 100644
--- a/test/test_jsinterp.py
+++ b/test/test_jsinterp.py
@@ -112,5 +112,6 @@ class TestJSInterpreter(unittest.TestCase):
''')
self.assertEqual(jsi.call_function('z'), 5)
+
if __name__ == '__main__':
unittest.main()
diff --git a/test/test_utils.py b/test/test_utils.py
index cb75ca53e..2e3cd0179 100644
--- a/test/test_utils.py
+++ b/test/test_utils.py
@@ -1075,5 +1075,6 @@ The first line
self.assertEqual(get_element_by_class('foo', html), 'nice')
self.assertEqual(get_element_by_class('no-such-class', html), None)
+
if __name__ == '__main__':
unittest.main()
diff --git a/test/test_verbose_output.py b/test/test_verbose_output.py
index 96a66f7a0..c1465fe8c 100644
--- a/test/test_verbose_output.py
+++ b/test/test_verbose_output.py
@@ -66,5 +66,6 @@ class TestVerboseOutput(unittest.TestCase):
self.assertTrue(b'-p' in serr)
self.assertTrue(b'secret' not in serr)
+
if __name__ == '__main__':
unittest.main()
diff --git a/test/test_write_annotations.py b/test/test_write_annotations.py
index 8de08f2d6..41abdfe3b 100644
--- a/test/test_write_annotations.py
+++ b/test/test_write_annotations.py
@@ -24,6 +24,7 @@ class YoutubeDL(youtube_dl.YoutubeDL):
super(YoutubeDL, self).__init__(*args, **kwargs)
self.to_stderr = self.to_screen
+
params = get_params({
'writeannotations': True,
'skip_download': True,
@@ -74,5 +75,6 @@ class TestAnnotations(unittest.TestCase):
def tearDown(self):
try_rm(ANNOTATIONS_FILE)
+
if __name__ == '__main__':
unittest.main()
diff --git a/test/test_youtube_lists.py b/test/test_youtube_lists.py
index af1c45421..7a33dbf88 100644
--- a/test/test_youtube_lists.py
+++ b/test/test_youtube_lists.py
@@ -66,5 +66,6 @@ class TestYoutubeLists(unittest.TestCase):
for entry in result['entries']:
self.assertTrue(entry.get('title'))
+
if __name__ == '__main__':
unittest.main()
diff --git a/test/test_youtube_signature.py b/test/test_youtube_signature.py
index 060864434..f0c370eee 100644
--- a/test/test_youtube_signature.py
+++ b/test/test_youtube_signature.py
@@ -114,6 +114,7 @@ def make_tfunc(url, stype, sig_input, expected_sig):
test_func.__name__ = str('test_signature_' + stype + '_' + test_id)
setattr(TestSignature, test_func.__name__, test_func)
+
for test_spec in _TESTS:
make_tfunc(*test_spec)
diff --git a/youtube_dl/__init__.py b/youtube_dl/__init__.py
index af99cf1c0..6850d95e1 100644
--- a/youtube_dl/__init__.py
+++ b/youtube_dl/__init__.py
@@ -449,4 +449,5 @@ def main(argv=None):
except KeyboardInterrupt:
sys.exit('\nERROR: Interrupted by user')
+
__all__ = ['main', 'YoutubeDL', 'gen_extractors', 'list_extractors']
diff --git a/youtube_dl/aes.py b/youtube_dl/aes.py
index a01c367de..b8ff45481 100644
--- a/youtube_dl/aes.py
+++ b/youtube_dl/aes.py
@@ -174,6 +174,7 @@ def aes_decrypt_text(data, password, key_size_bytes):
return plaintext
+
RCON = (0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36)
SBOX = (0x63, 0x7C, 0x77, 0x7B, 0xF2, 0x6B, 0x6F, 0xC5, 0x30, 0x01, 0x67, 0x2B, 0xFE, 0xD7, 0xAB, 0x76,
0xCA, 0x82, 0xC9, 0x7D, 0xFA, 0x59, 0x47, 0xF0, 0xAD, 0xD4, 0xA2, 0xAF, 0x9C, 0xA4, 0x72, 0xC0,
@@ -328,4 +329,5 @@ def inc(data):
break
return data
+
__all__ = ['aes_encrypt', 'key_expansion', 'aes_ctr_decrypt', 'aes_cbc_decrypt', 'aes_decrypt_text']
diff --git a/youtube_dl/compat.py b/youtube_dl/compat.py
index b8aaf5a46..83ee7e257 100644
--- a/youtube_dl/compat.py
+++ b/youtube_dl/compat.py
@@ -2491,6 +2491,7 @@ class _TreeBuilder(etree.TreeBuilder):
def doctype(self, name, pubid, system):
pass
+
if sys.version_info[0] >= 3:
def compat_etree_fromstring(text):
return etree.XML(text, parser=etree.XMLParser(target=_TreeBuilder()))
@@ -2787,6 +2788,7 @@ def workaround_optparse_bug9161():
return real_add_option(self, *bargs, **bkwargs)
optparse.OptionGroup.add_option = _compat_add_option
+
if hasattr(shutil, 'get_terminal_size'): # Python >= 3.3
compat_get_terminal_size = shutil.get_terminal_size
else:
diff --git a/youtube_dl/downloader/external.py b/youtube_dl/downloader/external.py
index 0aeae3b8f..5d3e5d8d3 100644
--- a/youtube_dl/downloader/external.py
+++ b/youtube_dl/downloader/external.py
@@ -293,6 +293,7 @@ class FFmpegFD(ExternalFD):
class AVconvFD(FFmpegFD):
pass
+
_BY_NAME = dict(
(klass.get_basename(), klass)
for name, klass in globals().items()
diff --git a/youtube_dl/socks.py b/youtube_dl/socks.py
index 104807242..63d19b3a5 100644
--- a/youtube_dl/socks.py
+++ b/youtube_dl/socks.py
@@ -103,6 +103,7 @@ class ProxyType(object):
SOCKS4A = 1
SOCKS5 = 2
+
Proxy = collections.namedtuple('Proxy', (
'type', 'host', 'port', 'username', 'password', 'remote_dns'))
diff --git a/youtube_dl/swfinterp.py b/youtube_dl/swfinterp.py
index 7cf490aa4..0c7158575 100644
--- a/youtube_dl/swfinterp.py
+++ b/youtube_dl/swfinterp.py
@@ -115,6 +115,8 @@ def _u30(reader):
res = _read_int(reader)
assert res & 0xf0000000 == 0
return res
+
+
_u32 = _read_int
@@ -176,6 +178,7 @@ class _Undefined(object):
return 'undefined'
__repr__ = __str__
+
undefined = _Undefined()