From 9a117f94b4bfe84cfe1d904d5132aefcf41511c9 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Rog=C3=A9rio=20Brito?= <rbrito@ime.usp.br> Date: Thu, 4 Jul 2013 08:48:28 -0300 Subject: [PATCH] Imported Upstream version 2013.07.02 --- README.md | 23 +- README.txt | 27 +- devscripts/youtube_genalgo.py | 7 + setup.py | 43 +- test/helper.py | 13 +- test/test_all_urls.py | 14 +- test/test_download.py | 27 +- test/test_youtube_lists.py | 8 +- test/tests.json | 718 ------------------------ youtube-dl | Bin 118827 -> 140233 bytes youtube-dl.1 | 36 +- youtube-dl.bash-completion | 2 +- youtube_dl/YoutubeDL.py | 9 +- youtube_dl/__init__.py | 56 +- youtube_dl/extractor/__init__.py | 90 +-- youtube_dl/extractor/ard.py | 9 + youtube_dl/extractor/arte.py | 63 ++- youtube_dl/extractor/auengine.py | 38 ++ youtube_dl/extractor/bandcamp.py | 9 + youtube_dl/extractor/bliptv.py | 11 + youtube_dl/extractor/breakcom.py | 8 + youtube_dl/extractor/comedycentral.py | 14 +- youtube_dl/extractor/common.py | 5 + youtube_dl/extractor/cspan.py | 9 + youtube_dl/extractor/dailymotion.py | 9 + youtube_dl/extractor/eighttracks.py | 71 +++ youtube_dl/extractor/escapist.py | 10 + youtube_dl/extractor/facebook.py | 9 + youtube_dl/extractor/flickr.py | 10 + youtube_dl/extractor/funnyordie.py | 9 + youtube_dl/extractor/gamespot.py | 45 ++ youtube_dl/extractor/gametrailers.py | 9 + youtube_dl/extractor/generic.py | 16 +- youtube_dl/extractor/googleplus.py | 14 +- youtube_dl/extractor/googlesearch.py | 2 +- youtube_dl/extractor/hotnewhiphop.py | 48 ++ youtube_dl/extractor/howcast.py | 9 + youtube_dl/extractor/hypem.py | 8 + youtube_dl/extractor/ina.py | 8 + youtube_dl/extractor/infoq.py | 12 + youtube_dl/extractor/instagram.py | 42 ++ youtube_dl/extractor/justintv.py | 11 + youtube_dl/extractor/keek.py | 9 + youtube_dl/extractor/liveleak.py | 10 + youtube_dl/extractor/metacafe.py | 13 + youtube_dl/extractor/myspass.py | 9 + youtube_dl/extractor/myvideo.py | 8 + youtube_dl/extractor/nba.py | 9 + youtube_dl/extractor/photobucket.py | 10 + youtube_dl/extractor/pornotube.py | 9 + youtube_dl/extractor/rbmaradio.py | 12 + youtube_dl/extractor/redtube.py | 8 + youtube_dl/extractor/ringtv.py | 37 ++ youtube_dl/extractor/soundcloud.py | 79 ++- youtube_dl/extractor/spiegel.py | 8 + youtube_dl/extractor/stanfordoc.py | 13 +- youtube_dl/extractor/statigram.py | 11 +- youtube_dl/extractor/steam.py | 20 + youtube_dl/extractor/teamcoco.py | 9 + youtube_dl/extractor/ted.py | 9 + youtube_dl/extractor/tf1.py | 35 ++ youtube_dl/extractor/traileraddict.py | 49 ++ youtube_dl/extractor/tudou.py | 8 + youtube_dl/extractor/tumblr.py | 10 +- youtube_dl/extractor/tutv.py | 41 ++ youtube_dl/extractor/ustream.py | 9 + youtube_dl/extractor/vbox7.py | 8 + youtube_dl/extractor/vevo.py | 10 + youtube_dl/extractor/vimeo.py | 14 +- youtube_dl/extractor/vine.py | 9 + youtube_dl/extractor/wat.py | 84 +++ youtube_dl/extractor/wimp.py | 8 + youtube_dl/extractor/worldstarhiphop.py | 10 +- youtube_dl/extractor/xhamster.py | 10 + youtube_dl/extractor/xnxx.py | 8 + youtube_dl/extractor/xvideos.py | 8 + youtube_dl/extractor/yahoo.py | 14 +- youtube_dl/extractor/youjizz.py | 8 + youtube_dl/extractor/youku.py | 12 + youtube_dl/extractor/youporn.py | 11 + youtube_dl/extractor/youtube.py | 80 ++- youtube_dl/update.py | 2 +- youtube_dl/utils.py | 14 +- youtube_dl/version.py | 2 +- 84 files changed, 1398 insertions(+), 930 deletions(-) delete mode 100644 test/tests.json create mode 100644 youtube_dl/extractor/auengine.py create mode 100644 youtube_dl/extractor/gamespot.py create mode 100644 youtube_dl/extractor/hotnewhiphop.py create mode 100644 youtube_dl/extractor/instagram.py create mode 100644 youtube_dl/extractor/ringtv.py create mode 100644 youtube_dl/extractor/tf1.py create mode 100644 youtube_dl/extractor/traileraddict.py create mode 100644 youtube_dl/extractor/tutv.py create mode 100644 youtube_dl/extractor/wat.py diff --git a/README.md b/README.md index 81b86e2..b246d3c 100644 --- a/README.md +++ b/README.md @@ -18,19 +18,13 @@ which means you can modify it, redistribute it or use it however you like. --version print program version and exit -U, --update update this program to latest version -i, --ignore-errors continue on download errors - -r, --rate-limit LIMIT maximum download rate (e.g. 50k or 44.6m) - -R, --retries RETRIES number of retries (default is 10) - --buffer-size SIZE size of download buffer (e.g. 1024 or 16k) - (default is 1024) - --no-resize-buffer do not automatically adjust the buffer size. By - default, the buffer size is automatically resized - from an initial value of SIZE. --dump-user-agent display the current browser identification --user-agent UA specify a custom user agent --referer REF specify a custom referer, use if the video access is restricted to one domain --list-extractors List all supported extractors and the URLs they would handle + --extractor-descriptions Output descriptions of all supported extractors --proxy URL Use the specified HTTP/HTTPS proxy --no-check-certificate Suppress HTTPS certificate validation. @@ -50,6 +44,15 @@ which means you can modify it, redistribute it or use it however you like. --datebefore DATE download only videos uploaded before this date --dateafter DATE download only videos uploaded after this date +## Download Options: + -r, --rate-limit LIMIT maximum download rate (e.g. 50k or 44.6m) + -R, --retries RETRIES number of retries (default is 10) + --buffer-size SIZE size of download buffer (e.g. 1024 or 16k) + (default is 1024) + --no-resize-buffer do not automatically adjust the buffer size. By + default, the buffer size is automatically resized + from an initial value of SIZE. + ## Filesystem Options: -t, --title use title in file name (default) --id use only video ID in file name @@ -168,7 +171,7 @@ The `-o` option allows users to indicate a template for the output file names. T - `playlist`: The name or the id of the playlist that contains the video. - `playlist_index`: The index of the video in the playlist, a five-digit number. -The current default template is `%(id)s.%(ext)s`, but that will be switchted to `%(title)s-%(id)s.%(ext)s` (which can be requested with `-t` at the moment). +The current default template is `%(title)s-%(id)s.%(ext)s`. In some cases, you don't want special characters such as ä¸, spaces, or &, such as when transferring the downloaded filename to a Windows system or the filename through an 8bit-unsafe channel. In these cases, add the `--restrict-filenames` flag to get a shorter title: @@ -194,11 +197,11 @@ Examples: ### Can you please put the -b option back? -Most people asking this question are not aware that youtube-dl now defaults to downloading the highest available quality as reported by YouTube, which will be 1080p or 720p in some cases, so you no longer need the -b option. For some specific videos, maybe YouTube does not report them to be available in a specific high quality format you''re interested in. In that case, simply request it with the -f option and youtube-dl will try to download it. +Most people asking this question are not aware that youtube-dl now defaults to downloading the highest available quality as reported by YouTube, which will be 1080p or 720p in some cases, so you no longer need the `-b` option. For some specific videos, maybe YouTube does not report them to be available in a specific high quality format you're interested in. In that case, simply request it with the `-f` option and youtube-dl will try to download it. ### I get HTTP error 402 when trying to download a video. What's this? -Apparently YouTube requires you to pass a CAPTCHA test if you download too much. We''re [considering to provide a way to let you solve the CAPTCHA](https://github.com/rg3/youtube-dl/issues/154), but at the moment, your best course of action is pointing a webbrowser to the youtube URL, solving the CAPTCHA, and restart youtube-dl. +Apparently YouTube requires you to pass a CAPTCHA test if you download too much. We're [considering to provide a way to let you solve the CAPTCHA](https://github.com/rg3/youtube-dl/issues/154), but at the moment, your best course of action is pointing a webbrowser to the youtube URL, solving the CAPTCHA, and restart youtube-dl. ### I have downloaded a video but how can I play it? diff --git a/README.txt b/README.txt index 239709b..8f08dd2 100644 --- a/README.txt +++ b/README.txt @@ -25,19 +25,13 @@ OPTIONS --version print program version and exit -U, --update update this program to latest version -i, --ignore-errors continue on download errors - -r, --rate-limit LIMIT maximum download rate (e.g. 50k or 44.6m) - -R, --retries RETRIES number of retries (default is 10) - --buffer-size SIZE size of download buffer (e.g. 1024 or 16k) - (default is 1024) - --no-resize-buffer do not automatically adjust the buffer size. By - default, the buffer size is automatically resized - from an initial value of SIZE. --dump-user-agent display the current browser identification --user-agent UA specify a custom user agent --referer REF specify a custom referer, use if the video access is restricted to one domain --list-extractors List all supported extractors and the URLs they would handle + --extractor-descriptions Output descriptions of all supported extractors --proxy URL Use the specified HTTP/HTTPS proxy --no-check-certificate Suppress HTTPS certificate validation. @@ -59,6 +53,17 @@ Video Selection: --datebefore DATE download only videos uploaded before this date --dateafter DATE download only videos uploaded after this date +Download Options: +----------------- + + -r, --rate-limit LIMIT maximum download rate (e.g. 50k or 44.6m) + -R, --retries RETRIES number of retries (default is 10) + --buffer-size SIZE size of download buffer (e.g. 1024 or 16k) + (default is 1024) + --no-resize-buffer do not automatically adjust the buffer size. By + default, the buffer size is automatically resized + from an initial value of SIZE. + Filesystem Options: ------------------- @@ -205,9 +210,7 @@ lowercase S. Allowed names are: - playlist_index: The index of the video in the playlist, a five-digit number. -The current default template is %(id)s.%(ext)s, but that will be -switchted to %(title)s-%(id)s.%(ext)s (which can be requested with -t at -the moment). +The current default template is %(title)s-%(id)s.%(ext)s. In some cases, you don't want special characters such as ä¸, spaces, or &, such as when transferring the downloaded filename to a Windows system @@ -244,14 +247,14 @@ Most people asking this question are not aware that youtube-dl now defaults to downloading the highest available quality as reported by YouTube, which will be 1080p or 720p in some cases, so you no longer need the -b option. For some specific videos, maybe YouTube does not -report them to be available in a specific high quality format you''re +report them to be available in a specific high quality format you're interested in. In that case, simply request it with the -f option and youtube-dl will try to download it. I get HTTP error 402 when trying to download a video. What's this? Apparently YouTube requires you to pass a CAPTCHA test if you download -too much. We''re considering to provide a way to let you solve the +too much. We're considering to provide a way to let you solve the CAPTCHA, but at the moment, your best course of action is pointing a webbrowser to the youtube URL, solving the CAPTCHA, and restart youtube-dl. diff --git a/devscripts/youtube_genalgo.py b/devscripts/youtube_genalgo.py index b168cea..c3d69e6 100644 --- a/devscripts/youtube_genalgo.py +++ b/devscripts/youtube_genalgo.py @@ -5,18 +5,25 @@ import sys tests = [ + # 88 ("qwertyuioplkjhgfdsazxcvbnm1234567890QWERTYUIOPLKJHGFDSAZXCVBNM!@#$%^&*()_-+={[]}|:;?/>.<", "J:|}][{=+-_)(*&;%$#@>MNBVCXZASDFGH^KLPOIUYTREWQ0987654321mnbvcxzasdfghrklpoiuytej"), + # 87 ("qwertyuioplkjhgfdsazxcvbnm1234567890QWERTYUIOPLKJHGFDSAZXCVBNM!@#$^&*()_-+={[]}|:;?/>.<", "!?;:|}][{=+-_)(*&^$#@/MNBVCXZASqFGHJKLPOIUYTREWQ0987654321mnbvcxzasdfghjklpoiuytr"), + # 86 - vfl_ymO4Z 2013/06/27 ("qwertyuioplkjhgfdsazxcvbnm1234567890QWERTYUIOPLKJHGFDSAZXCVBNM!@#$%^&*()_-+={[|};?/>.<", "ertyuioplkjhgfdsazxcvbnm1234567890QWERTYUIOPLKJHGFDSAZXCVBNM!/#$%^&*()_-+={[|};?@"), + # 85 ("qwertyuioplkjhgfdsazxcvbnm1234567890QWERTYUIOPLKJHGFDSAZXCVBNM!@#$%^&*()_-+={[};?/>.<", "{>/?;}[.=+-_)(*&^%$#@!MqBVCXZASDFwHJKLPOIUYTREWQ0987654321mnbvcxzasdfghjklpoiuytr"), + # 84 ("qwertyuioplkjhgfdsazxcvbnm1234567890QWERTYUIOPLKJHGFDSAZXCVBNM!@#$%^&*()_-+={[};?>.<", "<.>?;}[{=+-_)(*&^%$#@!MNBVCXZASDFGHJKLPOIUYTREWe098765432rmnbvcxzasdfghjklpoiuyt1"), + # 83 ("qwertyuioplkjhgfdsazxcvbnm1234567890QWERTYUIOPLKJHGFDSAZXCVBNM!#$%^&*()_+={[};?/>.<", "D.>/?;}[{=+_)(*&^%$#!MNBVCXeAS<FGHJKLPOIUYTREWZ0987654321mnbvcxzasdfghjklpoiuytrQ"), + # 82 ("qwertyuioplkjhgfdsazxcvbnm1234567890QWERTYUIOPLKHGFDSAZXCVBNM!@#$%^&*(-+={[};?/>.<", "Q>/?;}[{=+-(*<^%$#@!MNBVCXZASDFGHKLPOIUY8REWT0q&7654321mnbvcxzasdfghjklpoiuytrew9"), ] diff --git a/setup.py b/setup.py index 61435fc..3b6dc2d 100644 --- a/setup.py +++ b/setup.py @@ -12,8 +12,9 @@ except ImportError: from distutils.core import setup try: + # This will create an exe that needs Microsoft Visual C++ 2008 + # Redistributable Package import py2exe - """This will create an exe that needs Microsoft Visual C++ 2008 Redistributable Package""" except ImportError: if len(sys.argv) >= 2 and sys.argv[1] == 'py2exe': print("Cannot import py2exe", file=sys.stderr) @@ -26,13 +27,15 @@ py2exe_options = { "dist_dir": '.', "dll_excludes": ['w9xpopen.exe'], } + py2exe_console = [{ "script": "./youtube_dl/__main__.py", "dest_base": "youtube-dl", }] + py2exe_params = { 'console': py2exe_console, - 'options': { "py2exe": py2exe_options }, + 'options': {"py2exe": py2exe_options}, 'zipfile': None } @@ -41,30 +44,34 @@ if len(sys.argv) >= 2 and sys.argv[1] == 'py2exe': else: params = { 'scripts': ['bin/youtube-dl'], - 'data_files': [('etc/bash_completion.d', ['youtube-dl.bash-completion']), # Installing system-wide would require sudo... - ('share/doc/youtube_dl', ['README.txt']), - ('share/man/man1/', ['youtube-dl.1'])] + 'data_files': [ # Installing system-wide would require sudo... + ('etc/bash_completion.d', ['youtube-dl.bash-completion']), + ('share/doc/youtube_dl', ['README.txt']), + ('share/man/man1/', ['youtube-dl.1']) + ] } # Get the version from youtube_dl/version.py without importing the package -exec(compile(open('youtube_dl/version.py').read(), 'youtube_dl/version.py', 'exec')) +exec(compile(open('youtube_dl/version.py').read(), + 'youtube_dl/version.py', 'exec')) setup( - name = 'youtube_dl', - version = __version__, - description = 'YouTube video downloader', - long_description = 'Small command-line program to download videos from YouTube.com and other video sites.', - url = 'https://github.com/rg3/youtube-dl', - author = 'Ricardo Garcia', - maintainer = 'Philipp Hagemeister', - maintainer_email = 'phihag@phihag.de', - packages = ['youtube_dl', 'youtube_dl.extractor'], + name='youtube_dl', + version=__version__, + description='YouTube video downloader', + long_description='Small command-line program to download videos from' + ' YouTube.com and other video sites.', + url='https://github.com/rg3/youtube-dl', + author='Ricardo Garcia', + maintainer='Philipp Hagemeister', + maintainer_email='phihag@phihag.de', + packages=['youtube_dl', 'youtube_dl.extractor'], # Provokes warning on most systems (why?!) - #test_suite = 'nose.collector', - #test_requires = ['nosetest'], + # test_suite = 'nose.collector', + # test_requires = ['nosetest'], - classifiers = [ + classifiers=[ "Topic :: Multimedia :: Video", "Development Status :: 5 - Production/Stable", "Environment :: Console", diff --git a/test/helper.py b/test/helper.py index 842ffc2..a2b468b 100644 --- a/test/helper.py +++ b/test/helper.py @@ -2,6 +2,7 @@ import io import json import os.path +import youtube_dl.extractor from youtube_dl import YoutubeDL, YoutubeDLHandler from youtube_dl.utils import ( compat_cookiejar, @@ -30,4 +31,14 @@ class FakeYDL(YoutubeDL): def trouble(self, s, tb=None): raise Exception(s) def download(self, x): - self.result.append(x) \ No newline at end of file + self.result.append(x) + +def get_testcases(): + for ie in youtube_dl.extractor.gen_extractors(): + t = getattr(ie, '_TEST', None) + if t: + t['name'] = type(ie).__name__[:-len('IE')] + yield t + for t in getattr(ie, '_TESTS', []): + t['name'] = type(ie).__name__[:-len('IE')] + yield t diff --git a/test/test_all_urls.py b/test/test_all_urls.py index d3ee296..39a5ee3 100644 --- a/test/test_all_urls.py +++ b/test/test_all_urls.py @@ -7,7 +7,8 @@ import unittest import os sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) -from youtube_dl.extractor import YoutubeIE, YoutubePlaylistIE, YoutubeChannelIE, JustinTVIE +from youtube_dl.extractor import YoutubeIE, YoutubePlaylistIE, YoutubeChannelIE, JustinTVIE, gen_extractors +from helper import get_testcases class TestAllURLsMatching(unittest.TestCase): def test_youtube_playlist_matching(self): @@ -50,5 +51,16 @@ class TestAllURLsMatching(unittest.TestCase): self.assertEqual(YoutubeIE()._extract_id('https://www.youtube.com/watch?&v=BaW_jenozKc'), 'BaW_jenozKc') self.assertEqual(YoutubeIE()._extract_id('https://www.youtube.com/watch?feature=player_embedded&v=BaW_jenozKc'), 'BaW_jenozKc') + def test_no_duplicates(self): + ies = gen_extractors() + for tc in get_testcases(): + url = tc['url'] + for ie in ies: + if type(ie).__name__ in ['GenericIE', tc['name'] + 'IE']: + self.assertTrue(ie.suitable(url), '%s should match URL %r' % (type(ie).__name__, url)) + else: + self.assertFalse(ie.suitable(url), '%s should not match URL %r' % (type(ie).__name__, url)) + + if __name__ == '__main__': unittest.main() diff --git a/test/test_download.py b/test/test_download.py index 067bde4..21cb2e6 100644 --- a/test/test_download.py +++ b/test/test_download.py @@ -14,10 +14,8 @@ import binascii sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) import youtube_dl.YoutubeDL -import youtube_dl.extractor from youtube_dl.utils import * -DEF_FILE = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'tests.json') PARAMETERS_FILE = os.path.join(os.path.dirname(os.path.abspath(__file__)), "parameters.json") RETRIES = 3 @@ -56,8 +54,9 @@ def _file_md5(fn): with open(fn, 'rb') as f: return hashlib.md5(f.read()).hexdigest() -with io.open(DEF_FILE, encoding='utf-8') as deff: - defs = json.load(deff) +from helper import get_testcases +defs = get_testcases() + with io.open(PARAMETERS_FILE, encoding='utf-8') as pf: parameters = json.load(pf) @@ -73,22 +72,23 @@ def generator(test_case): def test_template(self): ie = youtube_dl.extractor.get_info_extractor(test_case['name']) + def print_skipping(reason): + print('Skipping %s: %s' % (test_case['name'], reason)) if not ie._WORKING: - print('Skipping: IE marked as not _WORKING') + print_skipping('IE marked as not _WORKING') return if 'playlist' not in test_case and not test_case['file']: - print('Skipping: No output file specified') + print_skipping('No output file specified') return if 'skip' in test_case: - print('Skipping: {0}'.format(test_case['skip'])) + print_skipping(test_case['skip']) return params = self.parameters.copy() params.update(test_case.get('params', {})) ydl = YoutubeDL(params) - for ie in youtube_dl.extractor.gen_extractors(): - ydl.add_info_extractor(ie) + ydl.add_default_info_extractors() finished_hook_called = set() def _hook(status): if status['status'] == 'finished': @@ -155,9 +155,12 @@ def generator(test_case): ### And add them to TestDownload for n, test_case in enumerate(defs): test_method = generator(test_case) - test_method.__name__ = "test_{0}".format(test_case["name"]) - if getattr(TestDownload, test_method.__name__, False): - test_method.__name__ = "test_{0}_{1}".format(test_case["name"], n) + tname = 'test_' + str(test_case['name']) + i = 1 + while hasattr(TestDownload, tname): + tname = 'test_' + str(test_case['name']) + '_' + str(i) + i += 1 + test_method.__name__ = tname setattr(TestDownload, test_method.__name__, test_method) del test_method diff --git a/test/test_youtube_lists.py b/test/test_youtube_lists.py index 4486b7e..dd9e292 100644 --- a/test/test_youtube_lists.py +++ b/test/test_youtube_lists.py @@ -8,7 +8,7 @@ import json import os sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) -from youtube_dl.extractor import YoutubeUserIE, YoutubePlaylistIE, YoutubeIE, YoutubeChannelIE +from youtube_dl.extractor import YoutubeUserIE, YoutubePlaylistIE, YoutubeIE, YoutubeChannelIE, YoutubeShowIE from youtube_dl.utils import * from helper import FakeYDL @@ -88,5 +88,11 @@ class TestYoutubeLists(unittest.TestCase): result = ie.extract('PLtPgu7CB4gbY9oDN3drwC3cMbJggS7dKl')[0] self.assertEqual(len(result['entries']), 2) + def test_youtube_show(self): + dl = FakeYDL() + ie = YoutubeShowIE(dl) + result = ie.extract('http://www.youtube.com/show/airdisasters') + self.assertTrue(len(result) >= 4) + if __name__ == '__main__': unittest.main() diff --git a/test/tests.json b/test/tests.json deleted file mode 100644 index ebc7a12..0000000 --- a/test/tests.json +++ /dev/null @@ -1,718 +0,0 @@ -[ - { - "name": "Youtube", - "url": "http://www.youtube.com/watch?v=BaW_jenozKc", - "file": "BaW_jenozKc.mp4", - "info_dict": { - "title": "youtube-dl test video \"'/\\äâð", - "uploader": "Philipp Hagemeister", - "uploader_id": "phihag", - "upload_date": "20121002", - "description": "test chars: \"'/\\äâð\n\nThis is a test video for youtube-dl.\n\nFor more information, contact phihag@phihag.de ." - } - }, - { - "name": "Youtube", - "url": "http://www.youtube.com/watch?v=1ltcDfZMA3U", - "file": "1ltcDfZMA3U.flv", - "note": "Test VEVO video (#897)", - "info_dict": { - "upload_date": "20070518", - "title": "Maps - It Will Find You", - "description": "Music video by Maps performing It Will Find You.", - "uploader": "MuteUSA", - "uploader_id": "MuteUSA" - } - }, - { - "name": "Youtube", - "url": "http://www.youtube.com/watch?v=UxxajLWwzqY", - "file": "UxxajLWwzqY.mp4", - "note": "Test generic use_cipher_signature video (#897)", - "info_dict": { - "upload_date": "20120506", - "title": "Icona Pop - I Love It (feat. Charli XCX) [OFFICIAL VIDEO]", - "description": "md5:b085c9804f5ab69f4adea963a2dceb3c", - "uploader": "IconaPop", - "uploader_id": "IconaPop" - } - }, - { - "name": "Dailymotion", - "md5": "392c4b85a60a90dc4792da41ce3144eb", - "url": "http://www.dailymotion.com/video/x33vw9_tutoriel-de-youtubeur-dl-des-video_tech", - "file": "x33vw9.mp4", - "info_dict": { - "uploader": "Alex and Van .", - "title": "Tutoriel de Youtubeur\"DL DES VIDEO DE YOUTUBE\"" - } - }, - { - "name": "Metacafe", - "add_ie": ["Youtube"], - "url": "http://metacafe.com/watch/yt-_aUehQsCQtM/the_electric_company_short_i_pbs_kids_go/", - "file": "_aUehQsCQtM.flv", - "info_dict": { - "upload_date": "20090102", - "title": "The Electric Company | \"Short I\" | PBS KIDS GO!", - "description": "md5:2439a8ef6d5a70e380c22f5ad323e5a8", - "uploader": "PBS", - "uploader_id": "PBS" - } - }, - { - "name": "BlipTV", - "md5": "b2d849efcf7ee18917e4b4d9ff37cafe", - "url": "http://blip.tv/cbr/cbr-exclusive-gotham-city-imposters-bats-vs-jokerz-short-3-5796352", - "file": "5779306.m4v", - "info_dict": { - "upload_date": "20111205", - "description": "md5:9bc31f227219cde65e47eeec8d2dc596", - "uploader": "Comic Book Resources - CBR TV", - "title": "CBR EXCLUSIVE: \"Gotham City Imposters\" Bats VS Jokerz Short 3" - } - }, - { - "name": "XVideos", - "md5": "1d0c835822f0a71a7bf011855db929d0", - "url": "http://www.xvideos.com/video939581/funny_porns_by_s_-1", - "file": "939581.flv", - "info_dict": { - "title": "Funny Porns By >>>>S<<<<<< -1" - } - }, - { - "name": "YouPorn", - "md5": "c37ddbaaa39058c76a7e86c6813423c1", - "url": "http://www.youporn.com/watch/505835/sex-ed-is-it-safe-to-masturbate-daily/", - "file": "505835.mp4", - "info_dict": { - "upload_date": "20101221", - "description": "Love & Sex Answers: http://bit.ly/DanAndJenn -- Is It Unhealthy To Masturbate Daily?", - "uploader": "Ask Dan And Jennifer", - "title": "Sex Ed: Is It Safe To Masturbate Daily?" - } - }, - { - "name": "Pornotube", - "md5": "374dd6dcedd24234453b295209aa69b6", - "url": "http://pornotube.com/c/173/m/1689755/Marilyn-Monroe-Bathing", - "file": "1689755.flv", - "info_dict": { - "upload_date": "20090708", - "title": "Marilyn-Monroe-Bathing" - } - }, - { - "name": "YouJizz", - "md5": "07e15fa469ba384c7693fd246905547c", - "url": "http://www.youjizz.com/videos/zeichentrick-1-2189178.html", - "file": "2189178.flv", - "info_dict": { - "title": "Zeichentrick 1" - } - }, - { - "name": "Vimeo", - "md5": "8879b6cc097e987f02484baf890129e5", - "url": "http://vimeo.com/56015672", - "file": "56015672.mp4", - "info_dict": { - "title": "youtube-dl test video - â \" ' 幸 / \\ ä â ð", - "uploader": "Filippo Valsorda", - "uploader_id": "user7108434", - "upload_date": "20121220", - "description": "This is a test case for youtube-dl.\nFor more information, see github.com/rg3/youtube-dl\nTest chars: â \" ' 幸 / \\ ä â ð" - } - }, - { - "name": "Soundcloud", - "md5": "ebef0a451b909710ed1d7787dddbf0d7", - "url": "http://soundcloud.com/ethmusic/lostin-powers-she-so-heavy", - "file": "62986583.mp3", - "info_dict": { - "upload_date": "20121011", - "description": "No Downloads untill we record the finished version this weekend, i was too pumped n i had to post it , earl is prolly gonna b hella p.o'd", - "uploader": "E.T. ExTerrestrial Music", - "title": "Lostin Powers - She so Heavy (SneakPreview) Adrian Ackers Blueprint 1" - } - }, - { - "name": "StanfordOpenClassroom", - "md5": "544a9468546059d4e80d76265b0443b8", - "url": "http://openclassroom.stanford.edu/MainFolder/VideoPage.php?course=PracticalUnix&video=intro-environment&speed=100", - "file": "PracticalUnix_intro-environment.mp4", - "info_dict": { - "title": "Intro Environment" - } - }, - { - "name": "XNXX", - "md5": "0831677e2b4761795f68d417e0b7b445", - "url": "http://video.xnxx.com/video1135332/lida_naked_funny_actress_5_", - "file": "1135332.flv", - "info_dict": { - "title": "lida » Naked Funny Actress (5)" - } - }, - { - "name": "Youku", - "url": "http://v.youku.com/v_show/id_XNDgyMDQ2NTQw.html", - "file": "XNDgyMDQ2NTQw_part00.flv", - "md5": "ffe3f2e435663dc2d1eea34faeff5b5b", - "params": { "test": false }, - "info_dict": { - "title": "youtube-dl test video \"'/\\äâð" - } - }, - { - "name": "NBA", - "url": "http://www.nba.com/video/games/nets/2012/12/04/0021200253-okc-bkn-recap.nba/index.html", - "file": "0021200253-okc-bkn-recap.nba.mp4", - "md5": "c0edcfc37607344e2ff8f13c378c88a4", - "info_dict": { - "description": "Kevin Durant scores 32 points and dishes out six assists as the Thunder beat the Nets in Brooklyn.", - "title": "Thunder vs. Nets" - } - }, - { - "name": "JustinTV", - "url": "http://www.twitch.tv/thegamedevhub/b/296128360", - "file": "296128360.flv", - "md5": "ecaa8a790c22a40770901460af191c9a", - "info_dict": { - "upload_date": "20110927", - "uploader_id": 25114803, - "uploader": "thegamedevhub", - "title": "Beginner Series - Scripting With Python Pt.1" - } - }, - { - "name": "MyVideo", - "url": "http://www.myvideo.de/watch/8229274/bowling_fail_or_win", - "file": "8229274.flv", - "md5": "2d2753e8130479ba2cb7e0a37002053e", - "info_dict": { - "title": "bowling-fail-or-win" - } - }, - { - "name": "Escapist", - "url": "http://www.escapistmagazine.com/videos/view/the-escapist-presents/6618-Breaking-Down-Baldurs-Gate", - "file": "6618-Breaking-Down-Baldurs-Gate.mp4", - "md5": "c6793dbda81388f4264c1ba18684a74d", - "info_dict": { - "description": "Baldur's Gate: Original, Modded or Enhanced Edition? I'll break down what you can expect from the new Baldur's Gate: Enhanced Edition.", - "uploader": "the-escapist-presents", - "title": "Breaking Down Baldur's Gate" - } - }, - { - "name": "GooglePlus", - "url": "https://plus.google.com/u/0/108897254135232129896/posts/ZButuJc6CtH", - "file": "ZButuJc6CtH.flv", - "info_dict": { - "upload_date": "20120613", - "uploader": "äºä¸ã¨ã·ããµ", - "title": "åãã®å¤©ä½¿ éè¨" - } - }, - { - "name": "FunnyOrDie", - "url": "http://www.funnyordie.com/videos/0732f586d7/heart-shaped-box-literal-video-version", - "file": "0732f586d7.mp4", - "md5": "f647e9e90064b53b6e046e75d0241fbd", - "info_dict": { - "description": "Lyrics changed to match the video. Spoken cameo by Obscurus Lupa (from ThatGuyWithTheGlasses.com). Based on a concept by Dustin McLean (DustFilms.com). Performed, edited, and written by David A. Scott.", - "title": "Heart-Shaped Box: Literal Video Version" - } - }, - { - "name": "Steam", - "url": "http://store.steampowered.com/video/105600/", - "playlist": [ - { - "file": "81300.flv", - "md5": "f870007cee7065d7c76b88f0a45ecc07", - "info_dict": { - "title": "Terraria 1.1 Trailer" - } - }, - { - "file": "80859.flv", - "md5": "61aaf31a5c5c3041afb58fb83cbb5751", - "info_dict": { - "title": "Terraria Trailer" - } - } - ] - }, - { - "name": "Ustream", - "url": "http://www.ustream.tv/recorded/20274954", - "file": "20274954.flv", - "md5": "088f151799e8f572f84eb62f17d73e5c", - "info_dict": { - "title": "Young Americans for Liberty February 7, 2012 2:28 AM", - "uploader": "Young Americans for Liberty" - } - }, - { - "name": "InfoQ", - "url": "http://www.infoq.com/presentations/A-Few-of-My-Favorite-Python-Things", - "file": "12-jan-pythonthings.mp4", - "info_dict": { - "description": "Mike Pirnat presents some tips and tricks, standard libraries and third party packages that make programming in Python a richer experience.", - "title": "A Few of My Favorite [Python] Things" - }, - "params": { - "skip_download": true - } - }, - { - "name": "ComedyCentral", - "url": "http://www.thedailyshow.com/watch/thu-december-13-2012/kristen-stewart", - "file": "422212.mp4", - "md5": "4e2f5cb088a83cd8cdb7756132f9739d", - "info_dict": { - "upload_date": "20121214", - "description": "Kristen Stewart", - "uploader": "thedailyshow", - "title": "thedailyshow-kristen-stewart part 1" - } - }, - { - "name": "RBMARadio", - "url": "http://www.rbmaradio.com/shows/ford-lopatin-live-at-primavera-sound-2011", - "file": "ford-lopatin-live-at-primavera-sound-2011.mp3", - "md5": "6bc6f9bcb18994b4c983bc3bf4384d95", - "info_dict": { - "title": "Live at Primavera Sound 2011", - "description": "Joel Ford and Daniel \u2019Oneohtrix Point Never\u2019 Lopatin fly their midified pop extravaganza to Spain. Live at Primavera Sound 2011.", - "uploader": "Ford & Lopatin", - "uploader_id": "ford-lopatin", - "location": "Spain" - } - }, - { - "name": "Facebook", - "url": "https://www.facebook.com/photo.php?v=120708114770723", - "file": "120708114770723.mp4", - "md5": "48975a41ccc4b7a581abd68651c1a5a8", - "info_dict": { - "title": "PEOPLE ARE AWESOME 2013", - "duration": 279 - } - }, - { - "name": "EightTracks", - "url": "http://8tracks.com/ytdl/youtube-dl-test-tracks-a", - "playlist": [ - { - "file": "11885610.m4a", - "md5": "96ce57f24389fc8734ce47f4c1abcc55", - "info_dict": { - "title": "youtue-dl project<>\"' - youtube-dl test track 1 \"'/\\\u00e4\u21ad", - "uploader_id": "ytdl" - } - }, - { - "file": "11885608.m4a", - "md5": "4ab26f05c1f7291ea460a3920be8021f", - "info_dict": { - "title": "youtube-dl project - youtube-dl test track 2 \"'/\\\u00e4\u21ad", - "uploader_id": "ytdl" - - } - }, - { - "file": "11885679.m4a", - "md5": "d30b5b5f74217410f4689605c35d1fd7", - "info_dict": { - "title": "youtube-dl project as well - youtube-dl test track 3 \"'/\\\u00e4\u21ad", - "uploader_id": "ytdl" - } - }, - { - "file": "11885680.m4a", - "md5": "4eb0a669317cd725f6bbd336a29f923a", - "info_dict": { - "title": "youtube-dl project as well - youtube-dl test track 4 \"'/\\\u00e4\u21ad", - "uploader_id": "ytdl" - } - }, - { - "file": "11885682.m4a", - "md5": "1893e872e263a2705558d1d319ad19e8", - "info_dict": { - "title": "PH - youtube-dl test track 5 \"'/\\\u00e4\u21ad", - "uploader_id": "ytdl" - } - }, - { - "file": "11885683.m4a", - "md5": "b673c46f47a216ab1741ae8836af5899", - "info_dict": { - "title": "PH - youtube-dl test track 6 \"'/\\\u00e4\u21ad", - "uploader_id": "ytdl" - } - }, - { - "file": "11885684.m4a", - "md5": "1d74534e95df54986da7f5abf7d842b7", - "info_dict": { - "title": "phihag - youtube-dl test track 7 \"'/\\\u00e4\u21ad", - "uploader_id": "ytdl" - } - }, - { - "file": "11885685.m4a", - "md5": "f081f47af8f6ae782ed131d38b9cd1c0", - "info_dict": { - "title": "phihag - youtube-dl test track 8 \"'/\\\u00e4\u21ad", - "uploader_id": "ytdl" - } - } - ] - }, - { - "name": "Keek", - "url": "http://www.keek.com/ytdl/keeks/NODfbab", - "file": "NODfbab.mp4", - "md5": "9b0636f8c0f7614afa4ea5e4c6e57e83", - "info_dict": { - "uploader": "ytdl", - "title": "test chars: \"'/\\ä<>This is a test video for youtube-dl.For more information, contact phihag@phihag.de ." - } - }, - { - "name": "TED", - "url": "http://www.ted.com/talks/dan_dennett_on_our_consciousness.html", - "file": "102.mp4", - "md5": "8cd9dfa41ee000ce658fd48fb5d89a61", - "info_dict": { - "title": "Dan Dennett: The illusion of consciousness", - "description": "md5:c6fa72e6eedbd938c9caf6b2702f5922" - } - }, - { - "name": "MySpass", - "url": "http://www.myspass.de/myspass/shows/tvshows/absolute-mehrheit/Absolute-Mehrheit-vom-17022013-Die-Highlights-Teil-2--/11741/", - "file": "11741.mp4", - "md5": "0b49f4844a068f8b33f4b7c88405862b", - "info_dict": { - "description": "Wer kann in die FuÃstapfen von Wolfgang Kubicki treten und die Mehrheit der Zuschauer hinter sich versammeln? Wird vielleicht sogar die Absolute Mehrheit geknackt und der Jackpot von 200.000 Euro mit nach Hause genommen?", - "title": "Absolute Mehrheit vom 17.02.2013 - Die Highlights, Teil 2" - } - }, - { - "name": "Generic", - "url": "http://www.hodiho.fr/2013/02/regis-plante-sa-jeep.html", - "file": "13601338388002.mp4", - "md5": "85b90ccc9d73b4acd9138d3af4c27f89", - "info_dict": { - "uploader": "www.hodiho.fr", - "title": "Régis plante sa Jeep" - } - }, - { - "name": "Spiegel", - "url": "http://www.spiegel.de/video/vulkan-tungurahua-in-ecuador-ist-wieder-aktiv-video-1259285.html", - "file": "1259285.mp4", - "md5": "2c2754212136f35fb4b19767d242f66e", - "info_dict": { - "title": "Vulkanausbruch in Ecuador: Der \"Feuerschlund\" ist wieder aktiv" - } - }, - { - "name": "LiveLeak", - "md5": "0813c2430bea7a46bf13acf3406992f4", - "url": "http://www.liveleak.com/view?i=757_1364311680", - "file": "757_1364311680.mp4", - "info_dict": { - "title": "Most unlucky car accident", - "description": "extremely bad day for this guy..!", - "uploader": "ljfriel2" - } - }, - { - "name": "WorldStarHipHop", - "url": "http://www.worldstarhiphop.com/videos/video.php?v=wshh6a7q1ny0G34ZwuIO", - "file": "wshh6a7q1ny0G34ZwuIO.mp4", - "md5": "9d04de741161603bf7071bbf4e883186", - "info_dict": { - "title": "Video: KO Of The Week: MMA Fighter Gets Knocked Out By Swift Head Kick!" - } - }, - { - "name": "ARD", - "url": "http://www.ardmediathek.de/das-erste/tagesschau-in-100-sek?documentId=14077640", - "file": "14077640.mp4", - "md5": "6ca8824255460c787376353f9e20bbd8", - "info_dict": { - "title": "11.04.2013 09:23 Uhr - Tagesschau in 100 Sekunden" - }, - "skip": "Requires rtmpdump" - }, - { - "name": "Tumblr", - "url": "http://resigno.tumblr.com/post/53364321212/e-de-extrema-importancia-que-esse-video-seja", - "file": "53364321212.mp4", - "md5": "0716d3dd51baf68a28b40fdf1251494e", - "info_dict": { - "title": "Rafael Lemos | Tumblr" - } - }, - { - "name": "SoundcloudSet", - "url":"https://soundcloud.com/the-concept-band/sets/the-royal-concept-ep", - "playlist":[ - { - "file":"30510138.mp3", - "md5":"f9136bf103901728f29e419d2c70f55d", - "info_dict": { - "upload_date": "20111213", - "description": "The Royal Concept from Stockholm\r\nFilip / Povel / David / Magnus\r\nwww.royalconceptband.com", - "uploader": "The Royal Concept", - "title": "D-D-Dance" - } - }, - { - "file":"47127625.mp3", - "md5":"09b6758a018470570f8fd423c9453dd8", - "info_dict": { - "upload_date": "20120521", - "description": "The Royal Concept from Stockholm\r\nFilip / Povel / David / Magnus\r\nwww.royalconceptband.com", - "uploader": "The Royal Concept", - "title": "The Royal Concept - Gimme Twice" - } - }, - { - "file":"47127627.mp3", - "md5":"154abd4e418cea19c3b901f1e1306d9c", - "info_dict": { - "upload_date": "20120521", - "uploader": "The Royal Concept", - "title": "Goldrushed" - } - }, - { - "file":"47127629.mp3", - "md5":"2f5471edc79ad3f33a683153e96a79c1", - "info_dict": { - "upload_date": "20120521", - "description": "The Royal Concept from Stockholm\r\nFilip / Povel / David / Magnus\r\nwww.royalconceptband.com", - "uploader": "The Royal Concept", - "title": "In the End" - } - }, - { - "file":"47127631.mp3", - "md5":"f9ba87aa940af7213f98949254f1c6e2", - "info_dict": { - "upload_date": "20120521", - "description": "The Royal Concept from Stockholm\r\nFilip / David / Povel / Magnus\r\nwww.theroyalconceptband.com", - "uploader": "The Royal Concept", - "title": "Knocked Up" - } - }, - { - "file":"75206121.mp3", - "md5":"f9d1fe9406717e302980c30de4af9353", - "info_dict": { - "upload_date": "20130116", - "description": "The unreleased track World on Fire premiered on the CW's hit show Arrow (8pm/7pm central). \r\nAs a gift to our fans we would like to offer you a free download of the track! ", - "uploader": "The Royal Concept", - "title": "World On Fire" - } - } - ] - }, - { - "name":"Bandcamp", - "url":"http://youtube-dl.bandcamp.com/track/youtube-dl-test-song", - "file":"1812978515.mp3", - "md5":"cdeb30cdae1921719a3cbcab696ef53c", - "info_dict": { - "title":"youtube-dl test song \"'/\\äâ" - }, - "skip": "There is a limit of 200 free downloads / month for the test song" - }, - { - "name": "RedTube", - "url": "http://www.redtube.com/66418", - "file": "66418.mp4", - "md5": "7b8c22b5e7098a3e1c09709df1126d2d", - "info_dict":{ - "title":"Sucked on a toilet" - } - }, - { - "name": "Photobucket", - "url": "http://media.photobucket.com/user/rachaneronas/media/TiredofLinkBuildingTryBacklinkMyDomaincom_zpsc0c3b9fa.mp4.html?filters[term]=search&filters[primary]=videos&filters[secondary]=images&sort=1&o=0", - "file": "zpsc0c3b9fa.mp4", - "md5": "7dabfb92b0a31f6c16cebc0f8e60ff99", - "info_dict": { - "upload_date": "20130504", - "uploader": "rachaneronas", - "title": "Tired of Link Building? Try BacklinkMyDomain.com!" - } - }, - { - "name": "Ina", - "url": "www.ina.fr/video/I12055569/francois-hollande-je-crois-que-c-est-clair-video.html", - "file": "I12055569.mp4", - "md5": "a667021bf2b41f8dc6049479d9bb38a3", - "info_dict":{ - "title":"François Hollande \"Je crois que c'est clair\"" - } - }, - { - "name": "Yahoo", - "url": "http://screen.yahoo.com/julian-smith-travis-legg-watch-214727115.html", - "file": "214727115.flv", - "md5": "2e717f169c1be93d84d3794a00d4a325", - "info_dict": { - "title": "Julian Smith & Travis Legg Watch Julian Smith" - }, - "skip": "Requires rtmpdump" - }, - { - "name": "Howcast", - "url": "http://www.howcast.com/videos/390161-How-to-Tie-a-Square-Knot-Properly", - "file": "390161.mp4", - "md5": "1d7ba54e2c9d7dc6935ef39e00529138", - "info_dict":{ - "title":"How to Tie a Square Knot Properly", - "description":"The square knot, also known as the reef knot, is one of the oldest, most basic knots to tie, and can be used in many different ways. Here's the proper way to tie a square knot." - } - }, - { - "name": "Vine", - "url": "https://vine.co/v/b9KOOWX7HUx", - "file": "b9KOOWX7HUx.mp4", - "md5": "2f36fed6235b16da96ce9b4dc890940d", - "info_dict":{ - "title": "Chicken.", - "uploader": "Jack Dorsey" - } - }, - { - "name": "Flickr", - "url": "http://www.flickr.com/photos/forestwander-nature-pictures/5645318632/in/photostream/", - "file": "5645318632.mp4", - "md5": "6fdc01adbc89d72fc9c4f15b4a4ba87b", - "info_dict":{ - "title": "Dark Hollow Waterfalls", - "uploader_id": "forestwander-nature-pictures", - "description": "Waterfalls in the Springtime at Dark Hollow Waterfalls. These are located just off of Skyline Drive in Virginia. They are only about 6/10 of a mile hike but it is a pretty steep hill and a good climb back up." - } - }, - { - "name": "Teamcoco", - "url": "http://teamcoco.com/video/louis-ck-interview-george-w-bush", - "file": "19705.mp4", - "md5": "27b6f7527da5acf534b15f21b032656e", - "info_dict":{ - "title": "Louis C.K. Interview Pt. 1 11/3/11", - "description": "Louis C.K. got starstruck by George W. Bush, so what? Part one." - } - }, - { - "name": "XHamster", - "url": "http://xhamster.com/movies/1509445/femaleagent_shy_beauty_takes_the_bait.html", - "file": "1509445.flv", - "md5": "9f48e0e8d58e3076bb236ff412ab62fa", - "info_dict": { - "upload_date": "20121014", - "uploader_id": "Ruseful2011", - "title": "FemaleAgent Shy beauty takes the bait" - } - }, - { - "name": "Hypem", - "url": "http://hypem.com/track/1v6ga/BODYWORK+-+TAME", - "file": "1v6ga.mp3", - "md5": "b9cc91b5af8995e9f0c1cee04c575828", - "info_dict":{ - "title":"Tame" - } - }, - { - "name": "Vbox7", - "url": "http://vbox7.com/play:249bb972c2", - "file": "249bb972c2.flv", - "md5": "9c70d6d956f888bdc08c124acc120cfe", - "info_dict":{ - "title":"СмÑÑ ! ЧÑдо - ÑиÑÑ Ð·Ð° ÑекÑнди - СкÑиÑа камеÑа" - } - }, - { - "name": "Gametrailers", - "url": "http://www.gametrailers.com/videos/zbvr8i/mirror-s-edge-2-e3-2013--debut-trailer", - "file": "zbvr8i.flv", - "md5": "c3edbc995ab4081976e16779bd96a878", - "info_dict": { - "title": "E3 2013: Debut Trailer" - }, - "skip": "Requires rtmpdump" - }, - { - "name": "Statigram", - "url": "http://statigr.am/p/484091715184808010_284179915", - "file": "484091715184808010_284179915.mp4", - "md5": "deda4ff333abe2e118740321e992605b", - "info_dict": { - "uploader_id": "videoseconds", - "title": "Instagram photo by @videoseconds (Videos)" - } - }, - { - "name": "Break", - "url": "http://www.break.com/video/when-girls-act-like-guys-2468056", - "file": "2468056.mp4", - "md5": "a3513fb1547fba4fb6cfac1bffc6c46b", - "info_dict": { - "title": "When Girls Act Like D-Bags" - } - }, - { - "name": "Vevo", - "url": "http://www.vevo.com/watch/hurts/somebody-to-die-for/GB1101300280", - "file": "GB1101300280.mp4", - "md5": "06bea460acb744eab74a9d7dcb4bfd61", - "info_dict": { - "title": "Somebody To Die For", - "upload_date": "20130624", - "uploader": "Hurts" - } - }, - { - "name": "Tudou", - "url": "http://www.tudou.com/listplay/zzdE77v6Mmo/2xN2duXMxmw.html", - "file": "159447792.f4v", - "md5": "ad7c358a01541e926a1e413612c6b10a", - "info_dict": { - "title": "å¡é©¬ä¹å½è¶³å¼å¤§èé¿ä¼ å²åéé¦" - } - }, - { - "name": "CSpan", - "url": "http://www.c-spanvideo.org/program/HolderonV", - "file": "315139.flv", - "md5": "74a623266956f69e4df0068ab6c80fe4", - "info_dict": { - "title": "Attorney General Eric Holder on Voting Rights Act Decision" - }, - "skip": "Requires rtmpdump" - }, - { - "name": "Wimp", - "url": "http://www.wimp.com/deerfence/", - "file": "deerfence.flv", - "md5": "8b215e2e0168c6081a1cf84b2846a2b5", - "info_dict": { - "title": "Watch Till End: Herd of deer jump over a fence." - } - } -] diff --git a/youtube-dl b/youtube-dl index 876dea94ca6600f774ed42e2755cc662a9d1afc8..4ddbeccf5cd09981c234ab44431a355006bd930d 100755 GIT binary patch delta 116525 zcmV($K;yrwpa;pv2(Z2*4i=K!LbX`7-?1A20BdQJ%p)QP>$c5N>$c64^&=mDY1rPa z)aI0MQ;scflsI0OZ12{UR)qqIp@<a-Ab3b-Qu*)K-SZv{C~6;9$12+-Fw@i1uj%gT z8K3;_+0eDmmPPf9S9h%0^_#jnI$=-0c*<6FUQ{<{Z0Ofd|A0@9j@E6xWofz|`l01% z%8G4Mw>`_2U0n`6PsQ(}Bl*04sMWW+Q{P&yzIB_SFG~HZUfuFu|JvyeeX-SD`Zinf zWwyGNs3ZuXQ)ql4AM(%GuCH75;)eHWQLXD#znR0c%KYqP&o@QMU)T3lS!X%d-QA~0 zM@OqN>pJ#7HIQM+U%!p(<xhOo&(4k*e2$Ng^&3VllOuXzo{IJz%UaHV`VD7w#XBHO z*VI*4EK7K>X1N>?Sb%K^0^mAiCA%wfUb8h|#j+}A_ifQ*s{-g#v%KhTS+OR#LkE-C zWC;781MhmC6PTi(vus;Km#*HzV9>N>eb(J}3A?D+w(fei$~wRa-*8}5J(M|H5~8dD z5+IbOt#8_Fo3NK1P_wvy;}y#!YM(CO&Iy6s&@!)iS4BO$t?GNWfj@msU?dM%R+iMI z;ymX$Lw2>>tS{<nPPoC#tOxYg^||I60G-2Z2o6pYrr#iE5DwsgzY*h_sIir7cms0L zZwf$q%#clX2Q+0{4r-8#5dp9IzN4Pr-~b&+((;=EDBBXw&{t4@qHbZ%3HxCK-+?bh zM~F%KXNEvN3V=bCmq2;JOl-0)+RmG}n)AA-@=l=Haun4LFhWttP>7(vfCkMI_7On2 zKqTeG+!XmOx&suzj-Cp(LLd5K2;A~DCrZpw5<Mvg0a<a$4LO$2*rx7K;CCRYgf^)f zfw8m@g<AeH$V}^h)M~{WU>hsz9y#A+Afy}^B!rt7!>XFd+ht(KvR;fxiYS<{0zK^8 zfv9v}^czsrn_<hVzC&??S+6*78O8!_Tj5Nyb_Zh-n7Y9Sz(4@Ovz!Ruas3!oKD*0` zQm|;#*2B$)#wJ81Gy1+QmS9lXnuL`HL=SXZFx8MCD?6coQ%WXLj5=PfS=RaL2(r4` zz_g}@kR(9`K#X(LNf;GPM^}^npipP*csr0y5<|Ac*JH_?mwKLZ_GjWbnxzVua>n%M zlYB(jWCP$+^~FkvVKcNKCmhTunH|uhd*Gtg`MrGfaAy)77lPXvgr`$xEK$f-yl+=7 zvW%XE22^~17vu4E38Pzm+55JrdL(E;f>V-0kTCW+a8mU9=TPw8?u80LQrl4XE$CHt z!#lqp;IraGTUuS;;3LruRSZl9j0w7Hb?A$}G&p)4=%v-Tuqp31zIbhe-3;4h1tM@3 z0;^tnxa7QBwFQaG*{GBC(&~Z>p%JIxd{q<Ct1GsDLkVhcO+-?6Y-gxzr$+<B<*?;@ z(S}~2!^G{DX<2Lw)&8%=4H$wRSeunazf*nC$hSMu3)t9i8=HCTBZmi>Gz9Rz0fUSa zkr;u`0G49atNC?jY9_R7vE%<bCKsV=G8Al3dh!~msc;2us=DR8Z9(PF98z?B-N5Q; zNFo}4iE*pC2GK^xgR5@uTMi2!m|Xcn5MR>{X0a>5LUeuBN|L;nkHDz#t&rployp$q z!7D9sqaN^1w+CvjHm)eEMFi#nYYa8eBCRQi7T@W1NssizJEDECb6MZ?;4FbXZB^&D z^^LEc@K#v`T##&iB?`JC{{ud<<j;DG@G_Qv*iY7Ky(CCzN`C4H3_Ao8wokBw2glW1 z1IH+Bv4sf=C~ntoSPBZAg;3CMLtVj;*60|lpw*exRX?BX4#Mt^YgpfD&&G5X{-8if z@DT;m1@IOhQD3uK8whI6G$8alV<bMvM@rSNy0(ATE$^P)_5C%AbH2`ovR}Z{nG2$S z%rNXCEa2OKl$Izv1W*D>oo_jB2peNP{tk~kL&mZ-xCQ8T^-raH1~N?ma<DQj3};!z zm+Un>yu^pnGnyN7Kq{r;j0PX22m-wVFf;g+ph=5+TQsTaDhBufj|6)~P-6hEJ){W& z{e|w%x<<=}nrJ*b@=?%e!D0<@%FgnCiG%}0&i0O)$tK$6bA!7xY2E-fOm=8+N*I97 z*>YH;uUq^JzN61bwtddFMU|47qZixkv-JzKp`S~DEj<%J004Lo1qW{uJWa5a1JBDj zj*1}_@PwX2NG(=o6;&Qd{|DVfwqWldw4o;{K!V>_*Wy>x*uNB6Qy3E0C#Pe7HEdI3 z=Il3MDL5B1Q_qEz@HNE$MOE}^8Vkw_gk<n5QGL~Nl!eTruJW(Rr$*w-U`cp~3C>Xg zLD-2qGxOM)qV-skFWuDjZLmdv8qd8ZK27}hE@iH|U6%-pK4<bf*!$}%L6zi&_i<z` z6VaT#0XLn`Jj^s#ttddhT<7qA!lk67z14Siq&tCDMyGK{!ZYh4)JLn~RV4k4=-Tj1 zk0s*B^ge4V(6M;10HJE<yn*Nkcng6Iy1~fA(^xe?R|B6seX1Ojr`j`N>oU8E?>EJ2 zLxBnmw;G@sbQk7>w*Y~o=Q7hybTl(!2QIUh#F0cOxGQ`wb8reOFW8lTk|$$o^c$p| zLE9geyd-NHXcz;0Lt376yiaqN5gwM(vU}KeqN#(b{*E{Y;ye)3p{;~Xa}!n*GYJC6 z)vCbI-h&a(0s;^qGZMg=Ag&*&Tt74$nkK*o_8ywPS1qTx0I_IM1=s+ZuGj$Z^~<Jt zfDL^u6;&c9U9!1YiFjRqE`%C77{9k;D-&9wKH=g5^rN_pZPCxSamCaQW+!(Ik7f56 zTP(zbA&O?UYLatp)KQoS0<4XL%NAJSV3o;GioxIv(T^201gO_nYBJYOdl@Dy^h};u zAe@$HD3*~Bj2@E?@yN!_S%lMt5n&pb0YW2phYMj{k(^vTzh-}bVqcxH6ZW36$Lvdx zM2w<!_6Pxx=c{eyGh-?pgdFt6mxNbnspE!nO)YrKl}Jp-Gr&p2FBXA~=vb3T$iIvQ zz=ztd%c0xEo-7fnt}Hz)JJ984ib;Tl#CONU|G(ng;aoGbG@v{NY0|HY&pc0i83YFm z=&KE1!BQ{%P>F<pYL5#RL2$SrY$}UeH04>l+5qX}KM%9hAAgLKCx8C&M_4lF6AR`H zL83Qgi$_}z5FNO}vA{;)0WRr_i}PzP)RA0Y8I1MWEob)|%Aspd7%VIR-ZC_RS*x}Y z@bj9ZNkk_YGfrzixre#%CCCA~k?Z1SXl3$_ltlyaB6}2n5wJ~jk=&Ch@NKrEB;`G> zsQfdgRuN;%j-WXs#3dB;vDfub<#QEmn3NA!<gupGFXuP|@&xCUQ#7eDz1?GHjg#OS z2OyNL01QM52_IPBj5aG3v|)@4v&`T{o=rxYFO@KyjciyUR0aq}nikJM*C6aU!54`X z7>i2~W&($QXbVb{nJvqDbvuGANCtWa_9FNaMgYLVB)BNNxCT?8euGJ%#E{=a|3Zv| z14s;>5DLjpby3BdPl-%?X-SE{m>yv^o0=WKUe((M0D%`7gdPVvb67gVDECW@O*5d{ z2o^d`)(Fz+fpOtiXb_wJa`FOrU|BJu)-NA+0qj%(+>=i(8h;Q}s4(XoX%TDJP0P*0 zLEQ^up1pu(Y6*`lbrNg2Wv<M6PWwOiMOot3A1-dVyoh)<`r+l}yNh?<o*6(FYn}hY zU4<UgzC|gbCevKQTh%2<Kpw=YSli2Gf$ZMJf}?ep(ALTC7A&gz$fbR{?QYTy$7Nvw zF2wV%zPft;$A7QB+N#mTldTzO%sv;yc$Sj1sapCVW`w8?;?7eRTYcvvd+RBQ2WK|o zA?b$i(2ti`n{2N|q|qULa1%_JUd-n7ihZ5KX~D|#%ggUB&!YK=CE#$;PH&j8$#2Cv zvNwu(FSY``$FYt;$a$F_NKr*_Y7u4~o8X;veH<{z5`T+#U0L6gimH?aCizpDQ`_}C zU4gRzeuC>GeJC+`>3KG+Yd8|WqfG{xW9%{T-4<>PkB`Of3)&ms((3dbFjzQq7OSkT za(PF`$i@_1_UA60g->buMEAJXz#J3&%QAAj%o<EUE~w2@iyAf#s@0!hpk)70f+P#J z1_Jf5Lw`{AOaXF4kve>1&C`oE5$g`gA3NXxS&KAZu-Ko#3<oq##_H>Dc1VH1C+o^( zKfC0j-Um0JNd&w-59Ey~bwH>+I8meAfk^=j(G{*6*R-dAeM0*oXDos!OCl4-U1#5w zC=bh2<+mQd-`YC(m9V$B0tD_3I^h|p4I-5}gMXh7k{%*~jJzkpTsy6g!TkFXy){q( z_qPw<z0;GBD2>p^!PBg4!5-~Q-Y1t6p|@i;$f;<=Wq&b&^-z{O6E(R(V&Cp2Vh24n z)$<w*<`}wxi^kO8XDos6^5aicflkXg#mnUJ%#bL!rFbv`v@a5zq=kk>)1m?(SkGcI z-G71D`a-o5v2~l%R=TJO={j&%ap|ju?NZd}@NBgatKc||=O)#kI1U;t!(g1b7F|m= zQ!KA>k@}WboQ%E|@9W+Dy&P0o0RjpZ6aR_LC`Z$cuOg76)h4=zUf>zVmSK0@SKO%- z1W9qXC$#o>O}xw%*k>QcWQ;i;?Dtd1(0^>i^8TDG1%wJ-_Zg*_@@O9wOcx@>Xn@lY zw?|>K3sdd#gJ+-f&j5EadJiBp>MW-Cd(ycF+PeJivI>kVQL)Un%RFPZ^Sd+s*a+tc zr6GFvGQx@7X@3FzFgt*~o6Sev)CLL97i0g#uj+^b0E#Xx@<n{R0Drpx?Vdd>?0@m? zT+ax<-@%fNdjl|4+OxI$Bv@k6p@2JZ6-usXTNyH+@B!aN1MzL)-}#OV;I#d70s(Mm z;opkaL+5AyJhhVJ>g`Qy%<r>u;Ex;iqUwhAx>yxx8o{&2S`@6M>v&H~7&LE#iO*@I zv@uMn&LjoM?QXvzgmoJGOOY$qYkyfRTH5ux#{8QNWD*amOIR4#R}npm%ua$SrwN%c z^H!%SoK&2t#qsqYmD{9VO~W~p|G>+OZ{K})dH(9<hx6Ik21vR&3*a%*T_F2}MaS}M zUgR_!4Z=Vh!Hum%TWfaM!I(X(9w-<(nAgFH+vP<5%+0K=R*#={c&;=dV1Kg!?M~L7 zlRI0g*s#PvOwuan2t`P$%p+{3b6qkLAfGNW0l2!h#9u|#5OU8=13XL=z!?+xJ9uK; zPDsh%7T=|qa3uqczh)4b*CHv1J4<@h*^xJzV@0&$s>C5BwS?jhZE5Od79ZPz<6d=o z%Xe~jfcj96#lQbEk-$(|o`2EyuB=A3%Z|~2lj|kIf_qL?;U*Jtv1XA%0;o<~@5U9= zl{Q^sSw@AH$ZpUQf`uwsQK>vWwPAN?JVh~9o@*Zvman0-48J`cTaE-RJT*bF86Ve( zMcbK|E}YtpciT`UNWqP18|O(xBfax)45isRhsQx%hBypGj|E~eaDP0YxvIwJXrlXl z-QLmyG42{J$v}5sp1y!6rV^r{ib}=yO^3yEI#%0e?Jd{_{MpvGxX%*aJMce4MCVH| zJ&Ai!8CL4keh*-*Yctem<ZuhZra~Oh%5arlCqj+euC3<E?PVwI4TxQbwoOGgF{bK) z93a2K%PN)yPXCXjBY#4NMKQ{{g+&^gnH6zc-vJ~%))LO`FJXxBt_z~pVNps}t$3`l zoYQ~-zTxMD{Uwa%8LI)8i*u<cvOF*d1No^4QW@$@Z_J4Ii6~r)jV6aDYjfw{lQ5$c zH>e|s&!ta`la9t7scw(n3#be9Fq8_m{?F*?^d61|b;#s!dw*OTk4UWm571A)zOwpW z3&FiOPv5=#$NAI>Bo;bR=8|eSwxH;BKz(tMmfol?{m~w2PAc$HZm*(w$1_{^7=-iB z4PW(Ec29lAPOBA+<Q!KwuJ*t5)>mk=Ype_!Pqh<_PIGww^JnaD9W(*Nzh5pM-XMI8 zf=|mGZAtA}I)6eDLWSu$u_m|`U1!q&aO|Iz3GoF;6}XMXNVpSI9)z6;`G}<jlq(mi zE-S7I9^>XdnZ&$U7d#hR640tH@e~{w{h^Y-jEqrO12GLOnDM8}x7}RV=~GdDH?y|( zFXUF4<8xRp2dSy{O^gGgd>)B3Az<mhGfN9Gd`YH?RDV{rCfO4f43<3_IGTY<U5NEp zRG^|-4GkU?f>}iR1khYOZB-7M%KFH9i?Gl2{H^g9YNV0Npz{!iSfvvrVL`_xu^<^) zmuY%WueB!GLFUVGSobuxvM8f2g*lKq;iYKdMF&_z4~D$@t)*503WAb&^gCfcaB)Uc zx}27)Dt~JV1rYRmR@p%8WJ1h6K+>O8r#6E`wT-*u-&@2(B(JB}Lg%9>cwloGD|n(T zo`y0)!H;DjLJMY)@LGBT)K`Z($<wDag(~+Cl299mkxHr<n!-y)Znitmd=z`)XI~mz z)eX?$06DO*xL|VC1J7&K!mk8}s>YorRSLE+m48kRCJ13%+gFg@&h;z^SR85!#KKMk znCpufd&*t}VPK)`9tiLn`agX!8$}onfCV%O6lUmoh30hSp4)N@O(!Zn9s|%qa71;N z;_{a_M_(L{uTHybBX!X!dZDlCvLsK5o#rx3F2E^|?IZT5suX!UJ7%Y&NyTC3(5!xQ zSAR_A2LDkC6=i*{Rfku@mUcAM4CgPV0>J~sUd-;~lnyzOuMrn6E+ckPB)`x9w+(_d z-vipq6$Rn|_QX|)J=SX+6v$B7_UMUl!H5$-WT`M6YaKnuJ0CENqvgFq56mv*k&P>L zE5R6|xSQbK2DcQo;R2+LO*4~+*$y2pK7Y64#aBS=hE}>84Tu&@=M2!mj8!*qcJha> zzYg}JX^$h6kaPxBb7w-niKvBI9k{%VKBGA2=K}H<uCe6$rdu5puxIJ#g2o03&)j%` zeu2+oN621Y6tny5;`7kNZ798qnJnpH#ugLj6TBUhLn7K9GUKZUd^jx&8si5eSbzLb zy29~ktzn(k*N4*BUtvUrppHM|=%TvI$|6_M4RS(7Sr&6<_I|VFsP5fjk>^%Gr}30z zX$2!Xd6PIXh%E5;(&?k%!-NOA=gAM;?8>`EPtFf2#-a2TI=o_IgPgCH-xatKw&dU+ z!?)IiNyOUFmcM;u%xnZ<U4+~W+JC=81maJw(5S_XeZ#(d?$s@gn+2g?oxS+)udit{ zI!ThqV0a?Vv!aMir2j&b>GsaVo(ionB7Z>3i*7zS4cXX(4LWK=hE)O2SF7Z*y}f7E z9$0wD4i6Wx2Rs3>*@OK<ahE{~kEz;c90S{XR)fgf+OzvkqNy@KUg^g-RDVF>zz7*b zQu2RfpY<v3ON=*oZj0<_E84Fk3DtI-i2EUOeJY_l@-epQV6MlQ$XH2xPtZb|@Gx|W za~=a4IvfHQ1JlO=rcm|($odul4WAN6k$JvHe<lg0J0F6ARZ8X|VZZqqXxQBkK|~3g zi-i`=N%e5XH${67k0)%-<9`^d43(n?;+hY-(t_$$(2=e5)hKlGYcD#g<peIi$tl(j zRmK$YJB*zB9Ia^G0TTTt$qTwJC>F=e-YAvVlpOCUS5#yj5r2>;3KIW}F-e?P0Xqb3 z(0_-)sDW`yWbNK}A1F^hXBXc+RJrG6h=)pD(X|ps<zWntp52a&xPP7QZrfnt$kATz z__elEM@vHyl&FElnqtK;T8(XJd$$}$b-t>o*6&1{*+rey4aN5kCuJY-n(hI2RYbFh z=rY1+CbmYPN#Pe-II}QkKOffdy^P(zHLJM#DywLFl&&rrl`Px!#XhtEPvbCCb=|Kq zIe4}+*w(&LC7MYKX@3AX_K{xNo|A5N?WX}v>9K!=knReTk?=OFvKz7MEYAsa;`l_# z?=o;=FU~!%R9SkT?Q~q;p)mC2j@{rre&UoNUEe{1GgLA;PZv+Qz!ZkAYi3R9>bV<% z#8^Dd1<&y-Uco}&X6RnXe*O@tyx1k+KzY}}jLSUrc!zEJAAf(qn;PXF;0C1$hS8@g z^=QYQI0qASlW7yXfZS65r0p8;uj448EG3>fBZHu7&XHE`lRZ1yBST>o)jRd;q0ajZ zhSPhW*?@-ARzs4(G8`xafuz~NcEX=@&{lZI1NK=8{2a0Z*moj%KGH9>00!GB_4?H` z1;ah9%;=x!TYs9yDcVP?up-^GD*DX(W$K8ZJ%?1M)Kb&%H&)HjWFM=Z`1!w4QHv}O zsVaURsjfaDehrny&%utHI;Jyq44BTyj2tw5o15#NjaaG=0jaY#cI%)NV(Zk{39Fp^ z&Z!_bi7#0_t`aMFfS*x>DQ=_<<u3`hl!n52#qOX|Qh$svN#uV!|4koJ0w<l0C}}>2 z==Lc7jw9%CoxnlSG;s_Y8Uq`Ssgo892<Tn~nCG)-cJ-zAETLypdoT7N6XwfBBl@Yi z8HWk7QOJ-PTnH80lG&ice01_*xC3}fH(}a0XseqGF{>EZ;PXDQo6$4-eSRWlECs`w z>FWzX;D5_vnab<86ZlDX@u9qj`j9cD9xma~b}ogfq!;Unm5VM|PgZra!=Cl>r+A>N z@UY8xv}sDJlZS?icwCQ??7tQv=bmiLW~1!v*mbaP72I=Wg5S@+z0`G$yrjTnb|GL+ zh867<EEra1{W33HL6Voh;SC3Rnz50AK>k<{`G2Sch5CrJ>!(WJcuD6r#VrieW4NMD zrZo9<`Bn}r-){Q8NmnHvnMwZo@#A~FfissE|0n!m{PrhObSx@Q_k!tG8$sbbik`N6 zqS~L|tGem|?T>Z+VFM$}c|9J}m4E}N)>x0+0%%piiH8>OthFdw?s$7g&t`N~0WS?u z4S(l2WMWSB?4Qv%<|N5_j4YDsShu}BPW-IP-@tqvAb}ye;qd0J(nqnB-r=5~)*gK_ zBlRk`@m?k+K<W~IDj})Yctf>&Ii=kB(qPy(?1f|<YOH%{m7f?TCHnv*M7wgXue1nU zHsu~epo)b`<9<LQ@8qJNKJPJVEo(9tfq#0pQMtZkaL`m7=4wspZ4?|RuoZMjjf^;b z4xNkbuvJHut^Zqti&Q<{vq&(LDB#pl{jYv(*94Akp0PHWZJjY^)TQQdQHAH8RUayS zRk0=VbTL<DU6wjJVJ&af5yzRiSKmkX`b5|V*EQO!9G$+ztAkTvG`-4C6uYL;_kV}t zZHxzqoq?C$7u{xF@q2akPtzprApD<T(Z1Jp|6$;8pXrd!nWxt)95$8?`01nA>T?3` z*{bAO3qr6e@TNVs<9JMjW4@Cf=HYUnM<FP+B4A!8>hZmscGN{M6wUBt+ub-@Pwte- zJ<{7IBWFrqJpGt0hLNhi=6KmL-d1PV7B~9Jeq0x0`X61M-lD0%v1aN%g>W7MJh+zQ zA)f=chSX9e9i%yvF4Mt>u|8=-CdRdmi@C!Z49oulP)h>@6aWAK2moM2;zIK+5jOB2 z001p}lc8P{m+rIy3knGU1C(^qQJ(?Qlg2+R2olNCN_H|?S(ExdAAe1<lZ?(x%m%7} z4~0UZ3b!Z!v{z(eZ_ML87B5J;%;!nG^MrU`cw~|UJf0nrBA<HSV#>~r@6!S(MCSX1 z91(Yiz@Kx?CsYIpc}>NHQ}Q~AKhuzXc7`hZgvRlbyiCH7&uDB?U$FQijd)DHPv&u! z*z_N1whTWw<VU&?%YVtdxHlO;@jM9w@`8$GSf*al2ljveNv>!rlAM~<*G$Y<xFlzh zU~`jroy>mwZ^0AtLO@ZrfH@C&nvyqk#v;bEoC%Y4^V|Ol7Lyx55q@SS^#`^9)Ng0D zgiFE6@gk=oFI$n#`Deyv=JS=TBY{SRSt0_9^W|JXjhx2hIDZ@qHks$8&=w5HGaj-< zcE2>q-%}njazVwX;<x{a*=O>K3Gv&1#R0eC{+>;z<fTZ8%tF4*Xhg{mbAT9_v<p6& zQx=k+Xjp0T#fbb&vm_al_hCrq4W93dkb^*835v|3OouL9l8c1gJW$)_<3}j{Z9*ru zub_=g<m3k)L4V2swJGEi7H15!=?HqF7{fO?Ng~Q)XJ>~;X#(V+hHR3VuNlizn%U1J zg-?+&`)zXsje{hzUzQ@9hwRaQB$IoV+pl5_S~Ov0@!8V;e4rwR;b6bhkml1wL_0fE zkwj!v<UGuX&iuk8rUA{FNmXBd#=@!2Uoeq@)))fc*MAAVuL(eL*h%sbhY1asXco^N zb3rG0Vl!qe_HAOOseVq1ycn~Sb3<hlG{IGp<yWfVNu`dRfK7>%?q!;1ZUWc@57@Do z6%mW`?C5P0v%#V4TO{=bqXCct{>+^M@R&x-A1`y3X)657#j^aszeI9OK?9PM#Z5*_ z${r^y&40<+<*5*fs23qvUWl07-jOE+M@*c<*w5~HO8AsufrMuyPN35S%OJNK4CDil z+q+sKbTbJF40;W<&SKcUJW{$f%F>YMZa4(Zjg+9?iGr0anev#1VY?JYlQ7AcTN3N0 zK?OUdpi%E=?kgTY%LOQ=tG+6db{vPejt6#%IDej}vYi3({zANDNIXxKLM~3<9shWI z4b(e36*O87HVGuDiWvDB%mA|XY^4p^h^EksfxAk3yMH%mD=kdo*_MS_(q>uE<w%qb z$Y01oOF0~jjL6*skOcg1(AKJ)-m}bK(69jUAJ(dO$kPn|Zzv;{(*+fkQgkQn?v6et zTz?~}b{CHWAB=3|Pm-{RV02V^NhhKDXCs({xqvFb%DK+V%k%daZ*Ksx9B5U{nyGaZ z@HlsMeg)!+re`TsSz0_W0yz3^oh;9nD5MM~Fz0SavOEBDaa5%|yE>KWU=Nz<gSzaC zd<aBXQ98oWP{iOW<W>D{00#~|eg?M(cYn>%UvGh&2O4Fdq*S9L`shFKAfH3+-|pL_ zISW%iO)`#Msj_6=6JRAVV*$w%@*rqRkdj2uFmMbq6#4^m1S7yj2^7qr6Toi?*-pI| z+j@Ja(QP$wI#I!xM!7VEYE~Pa#Q_))7Q6v0ujFurf?dgZWXl+?Htc96WnhXQwSO58 z1-vCgp}K#7{J)ikMbA<W{64HsTEmiLYS21B0@YTs3X~`&J5ND%X5?1YnB9>=gya_f zGa8NVoC*g>dJ3*V?$2RT4^^4a7a;wG@o|1tNTt|BRfK9nx{~Sc7hl{z3`~csYRL>- zrBo>rOrK29(A2w9%4;NbRUJe0GJh4hp7R_fW0>CAM3%f&AwPmDf#YPDbRp<wL(k)A zQF^+*kmEXe9nb=6(7n4gAf;`Ml7i9`*`{g6acPtSDw(6r*iy>qop{>DfJQb7!`U6Y zw46m-751tmZwQHrF%FgGmc3@l_s9*8im)m8sy>Zq5a?kA^YL8G$2dAGI)5%ZU24FQ zqq3v{I&xANhB?XS;K4|Xl!JdqU>JZ&<hcglTF*k&W5#NGRW`R)8xBiBBVydsZK`{( zs#890M{OB+rOeO48v^2hW%-d)@rf-6?KR6b8z^9vLB_yhK&`{V6&5~=p+1kH!<cOk zNwFC&jR{Op&f`Mbe=`h-rGJ5Go)%$#^a|oTwg#9N6jACyWF|bYfpNY)C}i}J(Qji^ z7y}MdCtZTzU~(!1#I89Ri{t?<BFBk@Pql^U1Gy8e?!XErjU!9hgin_+PfiMGN<@%` z7#i(99Xaoh*Y%+%*pvwynbs?{d0jPXf+1FoGcSrn+Ch*p8WIc$V1ELEIc}1xIUgJc z=vWzg)@!tQuTNi9<W~A*?eIeg?7cD;+rFof(eGqb?L7w?0zm{ga4AM>49BP8ki!)l z{Qmkp!yilXkQ8A+)a==(?`@$TV4Dc8&D-y6i@&B2)vn7TPm7#X=}0o|Y-yjSfFXHY zT43c@*_%e0-e*jTPk$*DhZ^6!dv~>m|G6QCvDD)0^R;RmC*EYvCimV1A`mqIQ9f&g z7AL;s@ar74mKv-#AQgf7tk6|B$O2bx<Y*t^d{p;Mn!*9IAr&^usc0YPhD1}80(krW z;>GE8IfH0AJ=|bqNe%+egsYo?gYT*SJ*c$oV6YuXh{@JMlz;g>00MmzUP!YVG;aeo z@RcTWFXwq!_M=QQNfj&d`t+~PP+M#>lO%DtB$5GL9LbasSFjm-B#9ssiWNgQL%8KB z&wS8yH&@K(M@Vl#Qi<y^$#oM84A(yXR9q05c&7BMwVRCe9{nnv0(U&dwJAD<z`|lg zWQtjNgRMro6MqhmJ;{aPZUxQF*}tEbSa|GLh$NKVlSD2lSxM1&sZ<K25rM@5ggIDT zf+Z1`jb<bAeE%M$_Vw4JZ=%6&FPI>;%`ib^ePD)E%>GoA%JnPJogBX_(do=K#n*U> zR0bCTF11PLFQ{9-?Es7!=<IqJmSh_+iuexzlG?f!kAI=q29DDGZZtbB@naoSp*?kQ z%5b5z)2maNm6`75^!n}b#i<1fu2fQhk7<e9V%K`zsj3^7ZXOcRVa9D{S@+fP&CO4j z*C#7=TjI@i$Exm_<zmt!K*^ZqFwqIP2P2u(jMAY$XuC_Y4wff-c)ds@$yRbvlbRtV z?t(`wk$;*ruwFoQL7<Lhszju+*2&0<$B>qgUR_>a9KUOI?-V$_5`p_VL*rzrpal?v zZiB;@D*rv6Fi<YE?-@+UbCw;FU2jUBJ=;6@m%W2;cUu-X8nOjDtXs3*YsIy^e6>-H z0f~MnG?IsO9GZB-mM+%=ff<N4<5CUurVwXtg@3Q6l8V_!X1}by)jw3E1WD_7NfFD5 zo0=Y&$OuS=MV|_&h6S5jfwR)50{qN;*+W_UkVm{#Wi;qHpUpAS*F_tJ0Z+~J#71bZ zlp;%avA2AYtCXw46q<;u?0+LkSI635te0wM&5pMX@_P_GXCC-Y3a$QJalqF=l`K$z z@_)=)2c0A#hDL3NbwX~nUK?8g<}GP91Ji(>PgF*)23g)!)@qw9**~gv$kh)%I?vW^ zZH0atFc_2=p#^uKP@KvL*Yl9mD>-{2MLP#Tdnh?@tk)asd`q=Q^IWRF<wWe|+RC3M zcomEGYLARf*EUE}G{$h*5Daww0WHD6sDH<FYVq`%S4;I*mhu*C$X+&H>@D*A&c?Mz zkUH3=We%F4ty&h+c%}wDu;{Not<?OsjpxU2U$^%i5EgXCjJ}oqR+$xu-YBNwK(70p zoxXcTEN4z<5c2SQMm{(!{@|EJ`f^jF-aw%mCSas`dd6y7iG=Kx`Rx4c;;fv`V1Jh6 zQ4y6ek*6)zTG?f(1G?6L!1d%SDsJL?omY+R-(8=b-dHqo5sj6TrHMB$%j~bm<&BFe zIx{NlY(b^+J3?2j!H|iVtc(<omeRrgv#(K12jAQeHp1OS>fH^H;{@c0m1^+Y+Zo&& zK*m-+V>xBWZKo$Z?LlbpvB+|%ynniFSjvdJSQ_NRW+t|<UWlqXAoAP}#VvE5a~cwP zYystmLLIdmsZLqouFCoqNlnq_VcKo7oA*~&*QYl({+rYDD?POArdqwmPfC$L6`b{O zbu_t+|8l;-4Iv`aNd(bEhjDHPk!ic7Ht%}uSd|?0?zXC1*=vXcqI0#!5`QmqwUP!_ zi)Z(}5I0?f-|3TVLfs3Kw*E7gdxZ$M$27y^8ewJlE13>;Z;lJxgv6~#Twd=3h?Ri! zGG`A+W?^&_sB%$t>%K!kyho=2JrA~k!n=IMH8}D)%mFdDK>dW%!L?CXhOc*DO0bo^ zpk8ph`8EMoW4FfN7qmIV*nbOg2h%3FiP|$OxqE}%=$@`ZZDZLMsPSxjz>L{L$m1U3 zl*a~GmiZ4npZk_wW7J3t5gAiKAPxgEf^;4Gik;vR&y>{1jVO8Q7P)c+Lu2a)M;}Y; zYyLD_8&~~wfknn+a|BKq#J)(&11gZ)1F2=Goml~&k|#w5G~;46!+$xJ$4b?Dk6?L7 z1IlC~VgX10KgBbEJr8SC3-EOT4Hv3K%BnHeR||;bl>P!X45bfoYm~VFeyLl)1}2s% zPeaw4lq*s9R0)Wo>N6q+RVvVgzL!faXmPAZ-Vq&lf$B9MLe-V|5P_7tBjoI)2B;s5 z&@2_^xO@Kxq|>#svwy~0=)!cYFv)c_6|nVK*a4<io?84@(J%=@?b740k+H=-{`JFb z&Y4Tw+8PH!Rvx8cH3)ondU16wx5HMUx=v$iBTy$^yMU+(&uBb#rDO+kbikw}U09g} zKx)OQKj*2dchSV4T<<YSQgeo+r15#sO2#Mm5)6lEl~3h1MStE|Vc8iaOo-d+Q5}yb zf<^M6FHyvu<*~=S0?G;ol39$W;>rg2xI4Jg0J&#K+@Im^;^O3Fu&yF?$fi;R*d82j z5S8ndBh`@;I)z^>pLCa26QvrnJRk_xoW`hDV-9Fkh;g>*EZs1G$qm?JwIp-STW%;< zO2)wK=~GEZiGLpXBxPa(oiJ*z1~tx;2gQ_9%7ZO<G=4;0VvmMdLdLjVrH+%8aTSDt zrJ}$uFcBcuWk+ie5__be=Zv85LcD~0aQ33*o?VaKtLpKd9R;2e^GGYn2ZxND!3GOl zs%Q7=O-bW7mvGFHjTSR=qYqEX18AgNbPD*4=hAm*41bP?IfH(Zt2+9Yj=XWxVF7S8 zs0!a4<_7K=U$A)PbnwdQ7<Kl~dg?u9cf;GosswPYsVw$Poic>+eth%t?2O<II;e$- zY$)}SE)p0MyZ^i^zp|80SZ1a*T}>ZzOqDqv%Y#Ws)V?%_*($fP(tLJauFT0<6;HoX zj`!d6p?|{aqU#6817$<Sg#p3i!3Nns=xzAK!y9F41FMhUT;-~J&NgS|9MBf>nkZQ2 zoNq73S#tP6xt;+kQh>ImIHgJx-<)nM*viXco!W|L2)DsC#b&kx>t3eZh!xL!sWW`i zH5fDSuH(u{uTI#LB)RWesaAQLH4iimuN4wqmVa6KgozA%Y@JFzLj1-zj(LpJR!=vs zkI~dw$C|w4`HxhJqra9Rh$!b9RtD<*sE)(8Fs;BsQ+rOc+>4Sxom`zW>9pWvr5z+G zRh6%gt*Daw=%d=<{aq_Fl6BMCj2gr%>o96A9aU4b0`=(u1s;P#?_<^*I`Xx!t>Q+V z#(x7r8Z`2akn#6J{vFG9l5zdQox)r$((y=cmUXR9>uXl}3Qry9qcWk|b%fbD;K}-p z1x;!wH%7-`(iV7yTpwlOdIM1M%ia3YVtpz&-pZX$qm<3iU7!o(mbPO$#W0$wRQYqz zxSO=%Ct(HMd$QJ50<x9$EoUsZPg<I@i+?%0L$XWh1piqiV$3uA6{TOvf4-*pPm&gx z3UGHH=wkOff_!9bcaF9JZ_nwJ=>P5g@%h=ipX=~TI*b2#D|jW@JtJ1+wI_DWnIdUm zhD2Szg<+ufsm3gSVBqcT6BmAh2Q-kq@~^~wNCYUE^d)|LaV`6&JfAe?x!gIGdw;kG z&%XVk+zNcYq5r_=P6Fnc{f(~vQ)JCu5P3JCMF6KUQdgoB)I>1Fb3AaRHsT>hj2YfH zp<-FxdAFAt4oQ@L{mV35{F2OOzdW#Uw7w<xYKYx4mfF^=8DB`(x~bFF9wg2x&5<(& z9%}?cV2_>3psIQw@4I@K29Xp-K!4lnCeF!NUd^dnKP3Zsje29dR=mS%3yhQV-Adc6 z`$O^8uV#iYyWY0ywbM%5e0i(X)mK6WYl-aH;q_$Y{_T3Yau!)nXIDQrkX25Atf#CW za$Qer)IqOX;x+u{^AhIG1{{9n#c#Y@4;mumm1SMJ{Kv<%)ki9tPYz@wy?<ufxDCI| zM(RfUNa~1N;Bwx$nB9>}T_grUQ$9N+4*3#%(p0om206|L<A}1bTFYZF^HmA{JOO`u z^}hdKPhR^kFW<g8d+oouyf}4g&>QS^^mqXKC1m35R#k9H^SOGApuq^{LoeQVK{&#U zN<DSNn@Tnx>@fxNjg+qQcYg;LfkvuAXKiIlM_;O^KWcA>ID0Ig>~(V*P))un*peFG z9RPgiJZ72+I~%lRaeHuhM=Twts7wRv%d(~~o5gIakXY&;*TEZgWqCydOR#m-+oH(# zcqenEK-1vf#l2MG@o@i4N~2O}Lv&@?vT*%!gSlE=%2Pc+gFPJjcz-Wb%Ch?C%oD5? zRFIFkIw#B@^+CR$cnsz;GqweBoA-Li(GhVTc>L8frxgDaGSBlgJKWowad3sl_*liB zn0-}I!abg41<UrneYRgwEqt12Bp@Qjcca{pM&p3WmE=Q{8A6B(2G5bNXgLGv65vV} z!kDDrJm23xaOA+#uYY`0%;vB~xi0Z39;H-T2A3(!Ni+p(nhM-&0-<0~{5=)cw4%zD z0XG`fx>3dW86ToRVfu;?l18>5x6PofyeQI9%0=>-haoKsYrv_i7{Z0oDKF_ZDTkPK z?O*;dSbc#9Yr@&F^0bJ4G04?V1`WyOjr=jdy<X7a!<C9VhkvGOFP*S4o!pP)9-R-x zyBmkc>Gk#H^&u%@dD;{g0I|39vIVxOb&TO%d-q^p-#L6jZdhKqLtX3E^7?iAd<l4b zwFr>i;u^N_j^#b<JN3jtwE)ResZrmdu2rYgwy5h`U(vP|nc{Q}C%Aso(Wu5{_v&Lg zQn_RYxSdU_&3`dUnEQ6PyucMt<=aA6+aN{e%GJ<9gq1g-3?#cy+TQe)!LZ7Q1Kx91 z^-56$dR~%Cs5P3^Nx9A?-|eZ_1@o?Gs8zLTns<bAr#$cAcGKQIj&L12byZaMh%3@I z|85Oi3%Plz=@Fl4+Ltk(T7Vp7jEc$J70!R$KH2;34u2en$H855Ah$mKWqa6;wQ<?O z6M5|&>wsV%TWfBKg`r=Sh5Y@cnsgfZ@;RES1n`X-9$S(-qgUoJ7&WC9qSPui+WpkN zux5=U6cF;UuW#Ip@D8^!llC<>_aha9nj*>z=<P~aCqaE{s2gT*`NG-XeqH1ARmdEi z7oEdOxqqNra;~f;{@OA>l%=${7GLsHBo*~jmZx&n9&ILms@q9ZwYx*y?WgPg=Qa0B zH3)mq;6pXkO_DM#vs$Hct7*}$)sh^guoAU-sHn5?S4j0n5xKe;g;SPZ;g9G&^QAyc zqJCctiE-?&sbyU75CbnHa%%+->o|uiN;)iG34b&&^=4vwRXome922@S^^d+AD<4^e zF`nzN85f+PaQCbI{Q>m&a}x2mz@xm`Tn<<mtSnB7*_^mj8sVWHypB)sLZf-otn%8$ zQRCG^w-QsLf;QgMC_5ELGnYqMGPxF0?s<dHb<dVZ+MVP7-`v&xv~dLS_x=^zMCi_n zaep95rS=p*q{K-O4Il`uqBKH>eHbgjwtO}T5B=Y}GqbZhvwLSuMWph8?b+F{+3(rk z%-YS|r0VSt&cXWC?lQiiFm&%wD^uXMvr3+seDCb!WN`T5kB{c}lcR&dVJE|VAoRAX zcmCJW$-(~NTiOL?d}+&nXnkLe&cb}uG=C34dN!?kHCe(|Be%4Uo}Qygtt}BCxnUr3 zP8}j%uOgOojZ!jMWd=_K*Q@5`xxLAh+mIjBd}(VmRfq1=Q~;C>yWp~1E*G}t?fhu7 zdObMZv#VIhH`(Q0m34@5I(T)m_wM{)@G)!H+n!VK;1pc$uCk#WE9ML8qCo$(%71Em z`njsW`GRxcOXN%2tUw#0HhPtn)A8cg%x5!l0<+5ItHm5`=ISf_y;$MBo}F?R%h{x^ zqAdg#W$)<h@PjJ|M*0Q+@9t0*-u5+-(UZOnH~E0D4TX8MRd3bBR{h9yz_%idnIMI( zbKlw<Ud<-MDtFm-5;{vJ8Z)ZrL4WowTS9+~B>!@@@?AR_k)JVidSy2p(+XxF(q7f7 zo3d#*vgUp_P3WMoK!X~amP)qD7J;I<o$>&kN?GZW;j^<eXAgKafkNym2!Wj2)5r?m zZv+}L#KI<J)f<VZBqlcWXBqj!3uovMUP*plID{T#fk^zu!WU{Xx=Sbw!GB>eNF*I% za!4?b5QNJFo1ep?L<RRnlhT=t?kEREY0RCoP4h|nhtE^CSE}|5!F_gv+;g9{L?3SF zm5IF~VAA9uh}0}aR32}>*1V&%va<8akSw-sw%Q%B({rJt-drcA_FOuZq;3u3olMbt zk#YAu5Y2mI5)({Rg}%;7Rew~vaCw-z$`l`{x~h<^6;@np>n!}iJW!oQiVsz1S;+P} zORjZwW~0W<PU$L2pFGeCQmRXWQRcKsf5Khn8ii6@m$pgY8XBf?b-mKS8%(ZmHo<py z+Xd#vmeYA|+<ekpv9<M7InxY(O4^2|JLz#uwvGx&mFqg*%f8u({C^~uc5fq^&(`Lc zfuR)V8Z0$07(aT$8=-r4f)<I*bzW}$i)Gg?4)9jiAPh@x7X`%mxo@_2#cC|WKuBSm zA_E#k+Sy#3kOT{Jyr{}0yPMKN_%ZT@%v+?(@{#zHRF5Ly9DF4D<iH#zD@#NSUeBN7 z#|y+;0#E}!3CIE8zJHZB+2@T$5+NvDc5MZg5RIsR$RO6aN}AJRWnZ!me?8E5jCf0) zM4Qxz+08rms6~VWNva`$7VA}6lF>K8_51~h_VO!Q5CLccWj`KoC}~QLlD<pe^nOEA z5iz81UfYiod$g)7>uv7iG~JlQF#<QDE4m>^@;Me18E|M}FMr#BB(vi(f8G@>^4RQ8 z%`qPS%(Je);Y15^gNpz<=QBCt)NN%dR5TS&pI)rSc6?*Z-fS@@z1g$fXTQpeG<Pf7 zaGTz+<8N4EnX9jU_D0wQIXNj>RHJH2Z_co)$w$lcwZ{t?s1Jg+3KZ2fGb-VCGqueR z8~;@nqv`F3gMU7FV12fE4y)|msiX%HaY*7cC2)Sb%>ZDd9MT$Z5PdRIwYw|E-4$4$ z%Gxrz6MT5m1b*L+psRUWE?n1pcW#9~!z=&v&YfLg!QX<#pSM{F?tTjv?Xu1BDWYH| z-v)&f7#Ys;a!jW3@~1vTqoueC_E=6ql%QEb_J$RbMt@yZJM$k_V6R`uBE<}3=T_)q z#!Qou;Fye(G(1+dNb3_bOBiv{RMR+uw~;Oq0VJ%1;w&Pm2sZBr!tr>+XThR8FL3iJ zsuw&*|DUzH5JDmW<<3np5lyg4muf{&@;Z`WWE;VPCw~zZTOt+l1c_u3A+^*gcv}$# zh)Bx)yMN=CG?~74{=?}qK`<$c6~`xOs=VaB$Cna+3I^dxr-+YMDof>~#%C(2`gsjh zY>)h?6Q(07S#PuMlVpmV92;%#!*yXAC?hL3(;P_>8<@f2bHr*%vir@(%Nap4n9=Vo z@LFC=BN)O5d3c%@h$tofk_$;N+~B3eQv_RL5`W>CV|pCLn<7YlCdSOk#Hy(=d+?+t z**!I8R}TAR3>hFtvUEPj!&uOwnIqv<L^<I`?$dZ`*5sxL=!q<52clpW4!sLQd)FgE zGCLg=2Y1w%4lcKwVu|pM%1gSxE`k=!6V-@I9fJDtmITR7igTsF+Y|aJ7}`7;6auJ| z27ikL&~=pKhVLRMfYV*LCrCL+*V`-xL5oC|unL;27HA^i2nJ1}*6e?x+v5ZdX7`r8 z<?P&!%Bq?Q0Azq3_-9k#x>LN46gIXSKE|b3;O|p5Mn`kDQ{8Oi;nq2^f=AZi>$}0L z*V*T867hbIc%|`&-$s3g`;I2K8}{(u@_(X+&-@$(ZL1mG#la(BW`kG2EFYW?S4%z? zvYH~fI$cyW*7EGr&h~HR_T}d%w(>S+!`*3HbG@A`4M>Y%st`BQ^)|tbhUdetm4`#F zOWqyDxhHJZW}6<7%Nd92&fMHR@=n);AonGgvTV%?VKUd{oT_4FmMd&WkKrY*XMaOF zfX8=W4Adtyz$YFX^(>^m`E1skamoPh4@i>y%^NTj8c>v15aswdocR$Z+mH2aUE>*? zE=jOBO4r2JAbnnk6}8i<d)lz*_#)OGnV!uSuISZ>O4^ST?RWv6(K|-2g;gQMvqzy2 zf|#q;?&|3|0NCLfM3>q7^7f)~-hbx6#T;h`fIG%_bj(ZnJfc+jH5Lf|A|0BY=18OK zoI$|D8Foxq0w`m`V<<R~5@eabe0RlG6QSMiqDHQdt-<SDD7@4Wzc0V@T}ORVm4HEM zpQ81n6Yf57L9x1~geN7ez<Q$Op(wjMy9%)?EsigPuWZ%08fv}4H57oC>umC-`p@9y z6a^U&$B?inHtS4$6j#>{!R;G?_Nu@UAYU~Lw@C!l447uceQK8xxV38I_LTu(|A=q> z@z@Gp#jfdDhH{EskFCWc7vV0egX;ETRxU>Suvb~E<n%7G`+Mp#^lW6x1{xrn-oKar zu>l&hqh2ln4G;t3LeXISBm4&d0MwJ-Umypc0n$;Q0n)PtVBG_MB&rfZE}#u5;KZRc zW+hZbi2l+p_lR-efusg~a~r+SDG?NHg^X$ft(i4xVH=0CS!Ygd`;X{vYZ~853?Q%} z2{Qrm3VPoLz2d6){$L6`Y!hORVzwzs6>fPB4K(ERpIb;68*W(%wrY`W*_@ID5KU;^ z=C)OOHieQ4jX5iS&00IUi)mRM_fna@7aD@ip0LpDMh`n>d;>&~U|L#>&~aZ}U0q&X zpqLb&j0!RxTqlz`-f~WhF3UR*!DvKQ1WL0k1N;#L+u+dvnd@`P<L=j73}A1|vx=Rm zI%FD<#M*M1($-18y<+!;3`-S)v2tRY|EL>JdX8%!tGVQVN#C_q=9J@3ij~F3mYNB( z_vp`eF^ekcz8);!;9f{?qw7)z(j+Ro9`|yii43rAf7M*T=WR=de24Un8Ry%wqKS=O zMo?C=Vs%0py_xn@xY6`mHgjqI6iZ{8HbyJYCEHDT<T)repjQa<otVphYjv|~6AQh; z`>5rdD1s+{@i`coNsrx;Jo_>-gJaREtpl&Der;mP)H=eWZtliXrkQQGf)Azbh`qfv zmNzE^Eo)Uu4nuMX&{A<UhdeIM>UAL|Y!b&X|CsH(GLp1k!^@w)jAX&kJ<p(wl$38W zQ6mb5JQD_bb{Kw6RFn66ck$bzRphB|Mt3p<K`lss(zQ(@A<yQ+J(7&mSdK{=H_#-L z2{J6b3iOTdRz7C^HzCkTw0d%M7?fPSV#*)X!}XKJvhn7P0aihPv~NM}4?0B5ib{5w zxf0ma)CU{caSoMGdr+54WWKpvaL%CnUtX&Vm^=icocDG8&x`2^XtxE4AU7eQlD6&i zXJg}k%cvdz2<6K*pwPT?+s(v(V6f~p-L-RnFF=lD{LrOn3p-vu86&dZv?f6LRTW1` zOBk&SGoTW$A1^px6)$RRQ$ZoKMAjBi+!!I_J~EWop#7))CGsb!whCVzi|;oM>P(Yx zYQy5ci&aD_tum;WZ!Ph)N$ISfVz~_~jy8#Zqyz~!Jd!9MKW;#kFKRSiGt_m5gLJ6= zgHn>PJFy-3htXMqd~|k?u;V!B1$y`K?O?<1C_4Wg4W9|=(xJQ<4rHTM7y7233fK-k zlMygN>JKPq9V^!6dXEfXsCRT3nbM^1I0OI>UWdWa2>pdH_!0dhD?vuKYhP^YsW1nB zeZS=e?Bc&wxTCE2f8qY~3wI6scUHI$lh^-P(f*c<eK1+~zEareimH00f4Puf9mIp? zARVGU)Imx&<8eC#kJP8NU+TLirxnNH>oJ&&?nZa8KT%&xW%?&{eN%8|(HdoJ+qP}n zwv&$2vH8cgZQHhO+vy}7+tYVus_xWG&BNYx-p<RZZ!hh2a)5AuZwhsAy(1u|=%Q|i z=}xqrBj`am6>oR0Qt>=qW|;;3R(vQ>Ua$epO~3VCoo>N=C!NY26!xaiKfK%c`Pv$p zx&-%fe=~M0cvA`_*OV@f)p#Kv4_n<g{BIQL{$CUcems{=8XpK~ST~8-k^oTdx~NRk zH>2$80Sg2S_6HOQ=znhAyf*Gzt%-Y2v`XHpDy?E03R$Hx$-gtX+PFF8oqm;dx!bDC zCd3b?lc0k<lG^@!<X{7l38}<7cUkzNL=667!kWe%+Od}?p^|tY!@c{PXlr*&Gw0Ry zyPeZinSgS`X<DWOOJFz^V8Ezte=ovffTnHdM<+;$`;e_xLkQl#FlR*&Le1Id^sf}4 zQhr-4rV)x%0I>*m>6TmmbY<|8NjgY{!iwGCcmX`^R1;5zA&LFw$<&ecn)!8!-z)(n zKYu?@hJg$g{I7iv^ogA7w2Ne%p`;J#25qLR9-1e!dDmZj<WT$;05O3rWD7iGtkTv} z`P+|)FSzB_MOHmhH-AKCpVyPE!^H@uc&}SpE%0{e<n-enIAzm#Uz<>r3N1CKaPk=@ z^bgi1rFx4mc)>DWng)AzY|ENeKWoN#Fsuzs>zv$&CSBZv<)-{J<`%Hqk?<pRW|G>a z=Kk%&Ib+@44utg-0J<1@|4c3+E5rJW24*}))(=-9NL8GB56yEpglWkT@8|t==yHus zY_1M+CRK0t5sJgusy%n?pgnUb;8=5Df|KvT8TgDyQ+S%OiA5fAy6gVkJ%MTDH1Dq{ zr@TAy9>d4m#zSA+#(89ucy8$%dOBz-6h#5?WYj+pf>Un}m|PQDP@(_|jE_v_H-6zC z2#!V;hTotA!%yo*;sON<!v%sQTEwMr#xA|(XS|2aU7*`H<e+U*G-K#sGzDIV!<tLZ z$n-ER?FJ^jqNFew;G|ARsjDj&gKIFdCdiUYKU=|n)pXFt$RL=n(gn{BvxWn^O?d3_ z7V?873r|A?4821=-ZC&5#|q=Re^Jb}^VVE|)2*~-cQg;sv#JwLvu@ROx^GZ`q>64O zi~GP)LN)f$J)q1=a5nl3aCC?7Lxl!|#%+8`I57hqF3rJY!o#L!c|VDS4oh`41zD~1 z0u`l6^_ojd=!YFuMEQ&?JQM!rnj)9~?T!*N1g7;3SYx8+zH_vR54!jc7Rrf<D-GC8 zx~X|>aV>n>2*}EpB#bHBLK-sO3BL+FCX?DGj|A@mq5jk=yc__Vr#zuok*q?>CY*>e zg6%dGL4t~9p}Z>>Ion5qpluQxw2Ht(pbJ@O7B}6YNBTm|z^rG(i;yq%d+{*Is6J+x zqLx<y5DI1CWF`}F{mz5Bh+a1v6Y^&XiUFn2&V_G7kpTN^rW2W>B5W2gSqMC}8`=ds zlhzMBi!}o-aT*PB4q6%B26~853+d)?Tos@Z^Gq@^xQzXwS>KG7Qe$l$Vuj{%0RS0o z-}hn7Dl>Lt?ivO~O-eJSdG$XPpA^XFP_L;01bx!jMqLJ!1zA8dG*GD?1OEo27@1k_ zB$Jb}$cZ3TK{-TvyGvqvf7Y$5+l;H%$IE<{H0Z;a0s(HHq<~%1vrT%%)pU##kE&;9 zm^QI?npimfqaf`MWNiY>YN_Ba7xr~JXvy9<CGcTB7|YYLo2Ha6&*_ra$BOt1f=+cC z0F-yfM$qIvg3vYgiBluoS996FJTxmzE?%%N)3T2c#fN_==9V&!J|6<i333x@n&E1^ zZBlDj+%yFQ$3JJXcd68chgIioKsiGzlZ&tL0f+E~AT^)5U(7JT1D@&VYfl(E@e3d8 z{2=8rppSm6h&nN;)Rg0Zi$r*S^A|cN03|leePAKFE?!OY%ic&^*lD5o6oJ$#Rz+1D z-o~n=P(un{^6^KXc45%5Cf@I-sU)nom^I6zh1uHpS^OT?w?x__YEXos(7=Y!mcYGp z&S7yGPkl_;4OSl#POXs*u*qj)QIDRJt|VC)xSF{a%hvpH3z6>*CdCFTumw~ENCAdI zbPp+`7_g|bxHB;r_AAx~qoT9t!1F5#$}x5N&4KkqBa=bF-mtcmOYkYWg<Qf%r}Eg- zzZ~?E7_`DzE2RA5&_hN}L;v;!hY8|h*%JuaiP=KZAM9b(dT2ZyK@KPz=|M!IL(HQe zxV#&k{viL!F1F%&7vM7b1`rYe1Wf9L1r3@m!w}68d%cGvr|u4f9p)_nM+@QtJUm={ z{(!K*W-7Phe*A+9ip+H{bRv!Ld3Co~(C<}AZ9`#*eLs#KTtp3Ck5*1dpG@njd)It; zjBhP?#!7-f0<uZrhy4ret$z(Ub=Rl^-W=;WRe%UNkhoVtg5sHn!jZ=TB=F?+(cbvx zQ!IK;cw<e*)DV26{(D3Hf-B7SMqNbqd>kr&E{AqEHr{a4Tmj^D0gIY9=jrPGypn{i zFw<hqfktV?7`!7fKy_~Yr$zz?{VA?$R&zik9|&OMOGw;<RIsK<6m=dR#2`UfzP!lD zA_Lp~wnkM0CGK86P8Z;S$&hEq@(Z>5g}@76F5d`8^EnKwKNnB)=pD!b2ul{yt>YWN zPWK4$ENM1%@Us=qVRd&ZF>vD`CXE*S@#javdS#4Xyjv7HT?3T-<)p~PXdueQ7N6;- z>5`W<wM%FNFM&@gg4*@${h4qHq=9P@L%JLH4|p6Xw#T5M#hkza!%Y3?+?~=CY{u53 zJLBR==IzhF14#1b1QFIrnp(vPFiQX!*ycW``=Fvg9S$unAw8k<#hYt&M=h!}?z-t@ zH3}TFrpV?X$G@)XM6qj(wCG*RN)gL*l-=ShwBa+YnaNH%shYxBWWnP+oFY1uCE~ID zN9E99l2ta0j)h<Vz-Ysh<S=A*Dif&VG?qHbv%(<oVw%TnB&g=|2&v)*c0RZJuGbeg z+I}g@*_kOe2(kV>pufb}u$Y$h&sTwB&XHw?DI{^1*h*VE?r)gB<mfq8uxf#=CVRn} z!I8j!tTy(Z>hf~)#y)&`jPdq3+ZVxXySI~3ek*0{w}?UkmSV1<VxWTIV5#G0>$h93 z><<Vl#etk&`{C2zZWnpmDfz-x)MVMquTrptAls1O#Pxwy-rEiFx5NGh#?}hpo;X@z zK|=|G{qFWhf_y~sV4=veq7`4?YkL_c6<dpMSevzkEH6=x0@5Z+r`(t4LH>0FYt%Mo zad7+4bnqhwm<tW?;=%gn%9VflEIV>;K+OAI8cSleKhu-@u;|N)T1cYymCyad?49KM z>Mwcom(#xU?5n}~d280i{tWTwoRbOBf<Iuw`|Dd3Yi+NHQ46~b@6+q^yR40J%$Eqx zpiOzy!+-&E!j(}*xT?`Y1%t-s#{GBw?D?A07wjK+02J>p-UCL>0<hD`1-GJU5ccFn z;x1?!%^4`;22%qWyW{vo%zOb<?yR@KvM6Ex(P3<M=Y9YD3rHQ!xoafUo%yycb#X8% z5IanK(lOFvsNpLx;@};w0I(L)2A%@_0<~GFQwq!-A!@#KWeqrp<-dNH!e9tJ@2=D0 z^K8g#06i$9aS4s?j#Jcl=IGL^D^8WIWUqF3!jy#hOL#P@M;)gFUF5<-Uk~&!7BRtN zzK6iL{FTqhaEdq({x4QYnBkivYL@zTDUN+N$M`*pmMi_MpbH1@G|zAax00O%9V>!S z5mneV`^F3btxqRjjO;Oi8HcSRHq7ld4K3wHfSGx7kO6EiS{&~+{CDVzNjRtP$_7vS z?1M5Exwf8TW?c1puD&chl~@a2rivGjv!vWYPvuGZuK}6xStHIRHvqkKnK)_E5<Tv0 zy)I{Ul4rRgldM+6>ADw1HC{laM(cZod}bIp%{F%>0`O+&D!vlVX13Lk+Aq3Ikhvvh z0ABOaldh}!7;{FjkSI%4PS<vko1g6!uG$l>k>`nxtxSa)PpkzKF|j?pp=DXr>tGwF z6IV?Jvz}C~2=${l^Ptn;;M(&3sK|9Js4N+VEtlI9Oqc5&sGuSmJE5gI5z3un()3PY z8@8pKx^o=M!C6}&=D0<#d5VH;hz{yfz!Z1LyTk3E*4e4lR@;X1Qujly5-)44<6?!H z4TD+P4ZxGaTECOxN@b%)`O){(3B=*)*5P*>zVX&_4jlc;XOI=@@WFCt$x>E9gFa^y z%=m3R1k{{`JRCyV&?<?1b}w8}3T;(P_8?=w&mjaI*y%wLtPHJDOdwXAglv2Oz$rHN zs9bB8aOb#$?#u_PtVj$BDRLnQQgSPBwg~vcxc}N_xBQD+og!Zyhv=rt3$#>>uR$x~ z3KiR(AWlrp<HMjaLD6lKLu~7&$&{}}G{AOgzTqd3_Sdg+b;ZRsWr{`t%@K&Ew;8&K zFETed_Hw9{&V>>fEEJid$X2d=K%GH;>}V@|DOxh()FB^@BYu&~BQOV3Ib3lc=sPqM z`yZD>-8eg*W`HMZEd9@-fs5nZu-l_9gPSDIBpBBp@|E4#*)G2Y;$~pzgW{}Z2iXST zFST5b6JrS`-!!4QhN4O0a5~@~dS-Bct6&hkE{9wvUrOuNo~hki+GJig0QLHj=YWJ_ zvPkVt=ldWy*h;74f~X5b!7Wjy7u?SoxKA`wYoMhKBISH@CdZ5?mlfC#rx(oku240{ zj`t$7cUn%qmy*){zBr`Zjbr^wG6iR8uO_eZP?a?!tkA!zA{b6QYD@ew0o0P|7B`hJ zVv%s>#5teRMhT>uN-7+H{Oqdd^c5eXnM-|GyJLplpelceQ@&NBp7IFdsUUMtC;_UO z&mb8(4>%az<Qguu9WZ9S=Cj!3GVmddGUO<??mZ2p>8V=PQ3}Fd{aez#D<uHZh=8Hp zF|Lt|&LqWIwYe5m`SBrTd08{ULfg*B%&-I#@<Ia`VLwq-#$Mtjtj#ngNxWwZ`cx;> zU`kkg3-~t)Gr44mvZl1#&$x|udT0G_dWIsARxfpDqINNkTja`kW~^#|rg7%Atf>8~ zzh#>CxjjE+-r#17w5!#g9a;dO6V%56aBGSxR4#p2Z(lQozYI;rv<RdZz+I>t>MZXi z1nPGVd*+9wGqni);I%8cKNs{?ZNT2%B8bUsA?r)rP_Ot(S8SCQdAWf{7IS%od2sLe z3$At6g>=mwS!dS76~R^em!By1e-4J{9n&ct;qW4N%gc8z)n=_3j7s$i<MrZKnOAWs zS5&+#ipCU2dC$%O*+Y9v4-Y-mR2hp~A&Ou@UIwjop)-U$tSe00?b`Zp;a5%8pWOct zc7n7kmi{tp-=@{D{xe-wNm76Z=uh=MOANCaUI=-TvpX$-pO2@~4#%;Wnuvt7{JJDP z5UG|kC6o!?Ef5Abr7>eY<arW(Xz)GbQ;+zU)7Vq-ELdYtJiN1S06zo~u)|*k_Bvx{ zxEvqm{0qA7(6a_=Oerv~pbJU)8dQGFr^eElab<hS)Bf{Vpy8I<s;b|SD&w#=^b+L0 z`KB_}bZaT}KptPJvjrKYzbdMATO^DW=GleeXkp8wLmA-4Yv=|KLo)_790uz_w^b(d zSCeEsSOB6HV3sSrcgvxjOZr-up6#vTQYu@!ZyH=j^bY1jc2d9B!KnuvE`1)yc8@5x z_PND<Ftpgt{lJg2?C1FV032Umb3Y!BeSPq55pL_aLPV{?_6>V#hwj?>rB6v$#jQl? zuyN{I=~Fs6PPF{^YPCZ#H~-2RIKN~}E3z@(<^i4HdcZ?NEUb!{XRX#UmFg~`#rN^X zvp~qr@TI(J9dWbq`p<lZbq|}RSKZUFxpb@?WiWip*P?FO^h;vZLVC=E$>Yg4+alxE zEi|8xp-rdqYM`8D^=%A)c6z;?QA%s2HM{cH2ZT+4X{9<8)1-(pTTnm*v!~hqKwzX* zA^||yP}C=iQlwd?^D;cE5je&5SHnY-%RGe4voH0EFHE7UFy1LjM)ZGr`!xlTyeZ+3 z*bg7S^763<_E&J0&wH*Qc2DLfi~3<F?7xhDtbP(=H8a~r#~Ze&cIw-88%8iO!&6-5 zqjh?4JUN%E1`9v_1Py)*{(&jAxG})?w3ak8$d$Y8&BNE~wy1RWelA8x(+v@uhg4>2 z9)3%i&p&Sk6$S{l4*$V7SO)H-Q@C}7^KuNNOA0A7^8W!)8~y#WzweJh&6y<Rg$r0a zklYvTKjMwkFOYBSFaPiWJs7iLN)GXhI*%-~>i0V&iD>Yj6`DIEQ8d2F*B`Imwi$D8 z+KrlL8zfa%P>_V5HuRhuG%|+KyZ{kETt=g!Rit!RGk(^+C;RdtWfV=y^FLX+c|I)l zi|(A+7xQlny+vxSyud1#L5qrE>jp&lF{vNmtF!xt4e$!Bp}WOqTP0iCjAs?_2}>q3 z43j9|zyShAI)C=}^IPa|4ETE89f}2R3$srf7s5jkALqOutKw!55g_E+__^jC)pZ!} zjXqEi9u=4h<=xVw9~{az|L}D0H{~fR?&VCYk@O0&Y;;{!|KYyiEtHBJL<MMR7C*d! z=YEo7{DSr2r$J_k&<X9nTv_msf73o%Y(al`t}4GFq89gv@xssvN=jOrQxA$0-0J~& zzdyfit+876@pbOm&kmORLNr4OPt5|I{F9A_sN}WomotmTjKhPpP4&*+?mm__vfAup z+eU-TLCNq*#_zS84;M!0KmZc*7^YZ#Y?|Po<}EK{Kd-kJUw2WdFdd*)PYM+8xHjD7 z&j+tKd!nhH1q=;w^3_^dI2S;=wL$dz(6y&VBxk84p)El8Bxk5<P@wuQqdWQHbwEWB zQWP@I@Y7N5o(Xi+U1~j4@WFGg8Q@^-NUZy`B3gH$CE+E_yC(rcqX0Us5M~M_=mBpa zM@4n7fn@0T3av8{6$sdA*b!PS%D`9&Uu@*{@R#54(S@J|91$^%#_1n_JdC+tZ@*h+ z3(DO)LE%8C^B#y{8HwG*(#|yN2|Fh1*<3m{v_59B965Hb$++O?>;mU}>kH$sf(!n{ z2Rh5v71Az-Cl-OTV**$>QC_kzr;t^EZE=SEz)v8UHI0x<X6F&Zh-e=0gcuhcDr8m~ zspy66>Mx)w0yL1~U_bl&z0zv89ZUtYaMh{B`)Z$oK0nxJ&P7Vi5ge>e?ee(cZN)E# z3f9W%|5mg&zgABsX<-hTVwtayY}pan&|UjLS8P>km4YCriv!MjVR7YiQa3T*)I(oT zbVF9*jAXp3YBoYbT@5U24BC>aK&nPhIpOpbKtYnbX!y`*vd=h?hMkYuLBL_m66mHx z^kcI$HRI#dP5}P9=kN|t4sg$*JUd`^UI{^uIP`y{in303O7*4#5+kk3(U#n^Oe&y- zWI{fBwMq)3x&gzt!;oPL_-H*un?^-`{eOAAMh0gWT%2z?DA?mxnDhJ<<0KoN(j9^D zSJM>I$A8!*@sjf7@>h+hQRRFR5G#F*>p#-;G;>EGU>t!?zLDwiVtyl09uD#=b|SKR z`#|!%<alx7!A-B`95QLdb&*P{`XwvO>QFHDyF*8!kO1KKId9F7>`#Eqm@~|#C8_<` z+M<}eRT&wEPE$Lzo3)kHt&E%A3<qtTArAQw2L!{rI1sH}@eL5+3mUwf;VF<nTe#1# zSQnS`vj%e{N^G!gh`gm`{?Kk*Sc8uT|3%RhwyLVsW^-jeDBr&@kv21{5?|4Um={H| zGtNA_NCdpH%_(Y}wtUy(pF6@qu;9F{_%w;jJt{<uDI1`nVwFTiLTI4buqCxuRH>Io zh0Y(N^&4s%h{U6S28;L~tYurUAiR_C9aW;>?Uh43XMrZzm0x#JO~S{ol*}`HP(!k2 zo6=-DDUrArGzzA|3fpdJwdd;dI>_g`X_N!lQUH1_`JQZ&Z;B`4-5&bhm0Q``{DlGr zJ3?fmz@Z1h6G^uBat_9X?DRaZnyhQ@OYO+ReJ^$OPBDM|@hfw6Di(nGg{*HtdzSc@ zNf3xpKZrWX5Zpxk7k_#lvNC*Mh4Wu3hyt26b~1AC=VoVRpX2HxmnueQj!FPs<7b|p z!vG2hsT-FTx^R8UUknTJ=Gta$WAB{u*C-Rc*>yq!6w%?^2{a5u%}AuV1zdq4{Bk1- zt+R~D$~4bUfh6Q&acFT!6<NDzNztgAC*M;NUlShe^0J_OwS?{v<fKcJhbX6{t+{B< zI)oFb+6Klc94^OC<1|6JcA6aW-&BdBVE`>eww&m?XsP)sj^6=Hr%MPY?Y@nV$6TCY z@pf~(t}^v3lTtMu*<&Dg1o=}^@521#SIMzuRdvpPWFLGwNS`=SYS5DZ)HH7@m%a1R zKDgfYY7ObnZjMF1r-2|y3I-JI^wK$V4^Qen{_<FTlR`xn;~6lOlM^5%AMNori2_t1 z2@9q^4EHK_4k4R_c4L;Q{|KiDtNEL#hQ+6ZjR+6UjMe?{{5<T>j3FAhB($5}*jAKS zDDtcavo&xxBNd*!bq2GyG!yWhJYlJ8nUw12V{=?zUc0Z$<3S#n^$x$b?syHwtjgCz zlNydlpd7c!sb`sTrFsMC)AllL(f|fv^pjUqVCV&p6S~A>T_c=$WS5HsVdZGb;_x#5 z*(S%m1lD72*&?ZmUkGKI7Vy>vze-@JIwOO!GFO;f>K?kK__$H+f};~MQ!U{fvmjjx zHZu!iy{bNn%5(V}3(=jVRA-5Oo!IkoH`-8H?H#f{b9&ar=Q~<gemUFbO9IZYrt;S4 zzmtbXnW?<fF?*j}C*NjZ9SPr_oofTmkP!@VlZ{GaMbtaCTS?TS_z|*qHyz{+c2VJ) z5dlSlO08VA{>#-n(#(AR1P`aS!%9de67CEt)#vQn@Kg2Jzx!Wh@Bq4j`nzLp+M*w& zTNtSX&r9v3$pM+-zHL4EV*uXC^70?^!}RJsgm;hRc_mM7b)Ux1yzm1)ZCH0xO$jEa zKLtriEeL}dwP8LSvAhUh!Nh_~tn7kyAyJlS6)}GG8q_ZA)^P?x3V+UCU;m6#%~gRv zt~y_zTTL>`X%QE0s`In>7u;MFJ)n#|+7wb5f_;4uy+7W?KSndE_X3XPyjPnmS3p8J zYb1v|r*^NW4&r9sY>CW}e0Tk%Aj<NZnrd#?-xpB)B`a3Kmu*s_{wl$LXwM5my;EWZ zg-!DrddyKu15zJZ{bt?XoA8%r=a#Qtlz%*ye~`SsH+0JqXL<eYmE10hIYQ{do&!>w z`-654)`Lcgj}2dK1_5<~q}5q4%J@30ud6||e)K{Ce$YzzdLuvdHrRCXEDW@NE26|N z4jY7QT*V(uzUt{3AMG4EbFy>3<3F7wfNls@J-?rfB^nPd4j2@tgw^1mZNX6AInUXS zSH~rIxKfFwMU+Ie{(f;>-%Mbj`Uaab-`7hn$(F+N|1SD+uLCH-S|D0JP#QIck?Hyf z(bx8jtuC0T9UrjN&vMcDGjmU5hT#^@Y?)E~FkBBP*Whjr3Cs5-Y*>EHXes589-vgF zGF#!xuUkGGaT`EV@g*;woV&3cWpDTr=F15KWx&Aa^8mtYEPpk%;C8#5>-@!NZVJf! z@odZkRM!2@@&ahqGE$>uxBkM01++77ZocD^O7N`-(z_?sAGc2L_vy}grFq|PK0|EF zdakdxRGjdGq?3B~_-xdAPG;-y9xO7+c9NF0|7KXL52RlM|D|NhH0d}W?I=CdgfP`m z?0T>nt9Ochv96!4HB@;QSXMm{SpXHEg{{k{PMLKyW(H`;NE((QwyP;i;A3u8c*fpQ z<iDU1=s-hQ_m3&IUvn&IrDS$I!tp3>!}stQzuCCcmu@rYsY9w3o*Bj^H7TgX95%op z$RjteTi*1y55Vk2Wqehm4f>p%UhS?-;=>=}0}9YQf>OmJN53^;-v6cdg`I*~tXSmB zz_hkOeGS-gXFh$_T8egu;2dm0_(Wp()iPN{@T((!!Rj`9xO;;LDmwfUcd6anYs}#b z?Kfm)yRA1l=<VL$yf(Vbfnsy_U@|pf6e;xJ@hm5<3K-8SBtCnJCtb+BFWCPWr7-_G z8-RdDqz^@Qr^EyB{yqO^q5s=G?Ok15O_Iz*&>#nV7nT35q<|0#0!{`d7D|}^daVD+ zaNJ>Q^^t-B0ZG9oG0)*9?S~)%{&$e$|Mpq+H4L2(IgkKns_mZ88M{o*iaAzi1W*Bq z$;VFVNVOSoq;%Mq_2inVz-LSD<Xc@Np2B^C3C&$P6G6*=NN|{kNVStU*DbrdyYdjc zHers9yLl4TU|Z56kJBo~EZ3PwP&JZ!4qAr*rsHN-aa5o>H8*93oeQ$$aN03OVPFzH z8^&s=IcFw}jh*wQ?s7VI*X{jUP`hLz+CxrGJWh*=rZqC9^C+M~5v&=UA+0J!2eDL* z5h|LCr7W1}?>cs;Tx>8Mb98jMc=MdD%af|6RVW&hlZ9nNmQvazZaRcsL)An7UhM?v zhnwLeY0#)#2$ik=GtIm=lT(~|txa61azyYAfd|^lBt(UjS0SQ0m!M2#Y#Nx0ky!mC zfN5s1M3?Icahg<tGEKHoLjR11!)lwtW!5;&MljaVs(8qjcA}RSaF@&^bJrb0##z$O z%H<A3UZKUfO^Y#K@f{be_5)Qs+1LXx2A{wWNHu%{rt!FjN2G^4o|F-%f81}dDV%jc z0#O_iWRf6GlS~kWeL4iWCHYNVjwP!VX>rgnWEy`)w#L4T6NgU$dUeUXuCgHXOI>Sa zjKYm6J}wbf{(e(9c?F^A(}h<8=fe7_RsjJ-_C*eDqgi=#l{fmLgL2-)4V)DaExSE% z|LoZ90;Uayc%}u@+nFw0$sf`Sh9+isj>9m(WY5fUeL;!_`B5tat%+@*<p?X?3Wtz- zfYU{NoqkiIl!SM0)65{!mvS%=<xNr_u7nYAEL4apH(xmv034(%e@@+Su32nh7-7c< zG1?(l?@^VC=bc#1zQ(SD2UQF(NyA;lgAuD7gBhg~>Pjb?O~WYk2{!mB!dyd$CyPz@ zXOEVS2hZ7U0Syp~JK^!6QiKBqn4w)uFK)fj1i3#H%g+{spWcgjyRs!O`gAVMV$<g5 zrsvFbkC-Z1benJ}X2C=EVm4@U_F`6O;-*?fKb3)ALwyXCeY7n+F}?xr0u1y8f#6O= z@x#M-lJ(Xg3NJU55WMd!V81vv51eN+w*?cWp1eg1zZQkKCel@Ed;SRSYxk22dTcVj z-0Z;p88G5CpleMU;fgJDe5Cin6}xqJ@I8~9k4OmQyp^32R}ufvyU{X$x0hIq1o7)p zF5TrsiPWUDYC3rOdVB{^1l~~0N%r|h)&6S}BIq`x<1-<5;Uz3QFlX8)iP<mMiER4l zuHWpJ0lb&g*4FNyHnJC|iZci&D3HDk9PJXNKtYZur&Cm3EP}(z$23KMqE*4^g$@lI z;`BPem>(#8p=;->S{X?^^3qRiw<vjPi;@Z@dLpD1Q5vL1Dfj8n|JZES^t=Vb+xx&U zdm1m__{O_k=ITVcP>rmT#~j)Y*}Cs{4}7Btw#as9zTD!7&}>2r*h163te*FEk@O&b zL;iQf)E94w3>=Gi!2cUD2~bH5krbddq0>pgMreQ-HGRb+E;Qepy81>$>2wa;0w3{Y z82Xe_6e%d4hedM|PPgzCvf1@nwB{+mp3PYibf&&-u-flEXP@hyu{1MqOc-b$tl>b5 z@hFefJG=&KK+2fUTPav98m4QoCQa%j#UM7(>t=chk{%r7wGmQ@mW<1bPoEACKh7Fw z{4L;PXXrxU^ZC>NRBBx?J0y=veLO^vpbJ)OVDG?T-Rl|zHc@%7UgnSACGxwwdk8tY zigM3QEbviIw7$ii%R?0Mq^N`)r{L(8_$@fc*VQ1eBc_|{k5`MIR%VxdA~haKk%!&Y z>sBVFAvFc{RK*E{9ea)mO-UP2A2#LERwm%k(X+1;)^K%hs!MXnH27;`DOn=&&gart zgy3m63I)wVS5h@2U#SQ4(M`6uU9^}JkjiCt(X-p|n5v|WoJtY`SG_;na&bk|@ZI}1 zx7jIgJ(b4(=WVL`QF9Z?{^PdF1`a)R(rc$t<Y`oCGNIx`>p+vnEP3B)_<q5K1sfpU zX^2FSf<3bmIbGH?adI;9+XRtUbC|B=H1>3PDpH$~g!GJJpJY%|v#jZ#Ah|I@*4f?3 z*VWC%D;QOGes0=Es>zQ8`Vbr}4wF9?J)L3JX#!lrp5v92;m(thTQJcA@CxlE2Z@>Q zoB?aV6Q=kRay^wjzinM1(AhS@PYZ}1wRmqb4U{R~5}K?oxBg&e5)2-t3QjF0uJO5& z${ZC1Gpqfo=@TSUP)-Pli?_lx0n5+?bF@_}tr6{ktD<6N+r6_@iw@%8U}Vi_x=S<x z1~PVkKm1KmWOLi8e}sb-MO(aAW%wZGKbP%Q7nl~p%717{bKYmt$g^wr{1*^AZ+B5D z3v~vD-A8Oi5L8X$nBN7GxeS7uQX*uq5^yV;>m)bGGZ|1FS`%6{dl71<P1EgpBsz4? zVJ%<nJIrByYN={bJagJkbqeAI+6ugyeiAG!z;6F?u=Xfix30(D{dGSOT)@O`OPlIF zwR()R4U3#E{ccsrQ_`c5{u>}ihCH|A9t<!}J<O@Kh1;A@LHuTD^usL-cHRdaI%H9I zg?zkahL>Kq5h)RQdS&K5`@F5->fCsp*^qK(X!%=e9Zxqk@P&KHwOZXT{=l6HHe_IO z)mC=%fM&r9qH&AsQ3F)Z|HhOJ)<UiV84JTezQqjn3(bG-a;!{(XdLj~X&_iI$~0!) z|2SVX58?e@;~ZMv8epgmxq2IGY<8LOv|wxIIxuQi+JOJaYYkW6K}9NTg%HEih=YHM zE*6;>d%z=LIlh%)2brs;MdfKk<JgSzgQ`N=+(5Jp^T=8ORV|T&{z=g;b?2?spM4|J z>Ha<DeFNK~6OZn}M#<D7$NJ|dZW^IG216}{L=ra!3gQRozmwxX;6#tH-uNB@2&ng8 zJr!P3LmF0+eJtGn51-U%+1hV$AbnpO3K!E-wZv|_fretwGy>fLA!@6#ZNTnhf!Hc@ zsP?23A7a`3d|XRi?98^Bi0H~5?+hL7+;#jC*Ev=}osb;t-KpZkjWNk6Bhxyw%Cs1s znQr3B<F}qz<w;W@p=tq0sgWPVK=I9uUupEGlaw4HYhOj|IwhXqjG*M+%MCHLNogJi z>{(7|%c#`0d72U#9R!}&CrguP7!MR59wlT{z^6-ROf_KBvLeG0gvd;VTg5+07P$^4 zlVGYmY=yl|U#?#(#%xYZM7;IvI88tY^?9YCrldK|pilg|Cn5plq9zPvp9c7)Zz7|& z+YhqXT-&u(jZ$Qxn2wrH*+qfqX^rCv#i)`XkJTHMN@vRsZg|PwM?<Di+rcX_fTe>~ z0TfAEHGkDd|K-wdinbms47aRphT+kLw&<I+w>w?C8Qc@lOJF6ba2MFI)|aD1{lS~= zzTD&vIM?!vZI1)k-%8%m(KNx&2|TD#ftS(}vh_T?*o!~@x;?}L-|L&vnw&{<cPHq+ zovYCQdU-qf`+mB=sXy1U3U83zIv-S{fEwn;{^P6hD}wGYt}IHkOpwlS7rVl~d?x&j z&d2@k60TV0Vt;2^kpf!B3jHp<T*b0groBy}zbxLE0rwV=pqGX+m~+KH5tMxXgkiw( zxd4;tpJ5LN3j&5878ikS-M#-&bRni^Xux@{$aEPY?@j4n3LhI>=7G`{<6}O})(eN4 zYU{AX0<D$+b+rKfgju#nubT+6NboOzu`Xp0%=_=&W~etkwsW8<%Qd`o<?;L9;h=K4 z>A?5}!Xa+}_@4Vf&%Kr5fjYow;bU~no1X$rqo|&iXO2LNgajlvGx01k@yxu6zvbC) z(>Yz|fJ4*kPcWx#4%~L69Eizs$&s^}=7V+g9q}ae<X_bco9hDHAb3a@ww;%+ItNFy z(fPSt7-su`o^+TMopXnwhde>OSrHk7)}XIMB|cJs`zxayz60aaHiCTeGQ)EoQVNf2 zArLndC7%D(<yKTx6#!quVGrXFW<zYvGea!&USENiK|H~&{9_&B65fRT_gu+DVv&}_ zG2udQ4eGV@l+ZD)(>%l&g{E{~Rm4=4!C<sBt5LTaGHC8Ql7bfsj|~JRK^~jo4k@%o zvZ)iGW{j_8;Wd2yLa1dRr#I+*G5;Xw6F!^@OgbwqMA9+*9lxS9o)m`Ek_s95uf#8G z5?VXiby86iQp~>XOncR<H-)EqJ#z%>6SCB#&UHB;)4-*&7o{-PR2QM@t^nrF(x`Ha z_9Mqj%Cn7nouMI7Ezu4kJa^}z)1Q?IL#r}C!!*tYGvX@f5}HM0Yt6q)Pgi)Hk}L%t zb%1-BNO~0MdID-y=j8KXB$GLIwJ8u@UIOC};uF7k;?a2HgA0#Ina!Ejdq1Rfo)_H@ zt7jnoSk~P1UFUcyb=2TE(u2tKA*wwy>Dj`}9B*l*bK{rG*(UX21=3~(MEUcV;&T?j zU>L~B?|?@|e*-+0dH6si=UYkreYYB{OtqSwb#SdT1sR|pT-Ri4@c|>@jR2w$`Mz^_ z_tRC0Cm`Sy&8%f8ZH1b@!+GHBN`3x+y{9Iolp$H8hjC<Y4byj*I0gd;Hwva4DG@Ki ztP4;D=G$}rHF3A=$SUtcKzgM$9eJ4nj6b8@LFX@bFuDn5!Syw2zydT5R~7|318g&D zStt^Fndkr7lgXY@i#@fgBhf1rJKhV$h5K0X!FR(H7x&NUJKGERcg%~Y=y}Rx<s}Gm zO_&YSV{1-2pnj-{jFr4VI;3!)=Hg-{#rXhI>s`>9Q51<6H={6Jrbf)G&KK<gbx#J> zf|;%w^Fw&r1v1o-eO$ghzfpB%ErnGHpxwIuslUf?moywS&0{s{r}T0m`m6H@LrxhJ ztEAR{#^%v}sg+vY?VxSdAVdb#0(%s`!~Gy?XnlP@6|VC1hopY~;3B)#Y1m@uooUl? z9FQudUn=J-LNrRPXNs2nMyKot=)0f<Nb?=wav?vp1Mtdu=Z!W$aDie8!S-S@8jJ5N zGQo(vk?y#N-7vYu)<C;rlb&_A&WuTY-9WN^K@P%oA9sWTo}Pp9T~o(?2%BuuJMD*) z(x6K2da;M_H7ywyw6<e-rHx3p<95P2$nrkJNr_B)cNK1Hnu1pE*fzic78|l(cGo;Y zzm+S$hvA>B`S9j+FzS?)Z>U;XKIAP-JPdRS>$*(U`6h_*-MI^`N9i;VD833LPWB|W zCGRU*w`1(SOstod&P~5zhns+zZocpupK5^Xrbd?98{%d5G#dMaEq6$UB7V6ZjW4y- zG8p*f<>`^vWyKGWxSn$`_Jy75rZo5o5{2#NaWwD{-I*qQvb^K|_vj=_{0F)jvqo7! zfPf&u|HJD6#;#^|7FKp<3=W>^YX9mSeaxnnZ%wEFZ;tPqBp;W>gcN%731fq3lO&&A zyDYm<N~Pi)-W*oB_^d=U4o%U{&cR-){dCml&IBfw$PqT2>v@)es3@jw^(&#)YUKAp z#I<$%*@;A2IDw0{b%@u8#)%i;!5W@d%hn6rwmSYvTbK`wFdRg06N`F8peDWI?b9&! zd6Cv<j#o-!&GM^JS+d~OO_YNAt6zC>?(*y^?D1rYRfjl88VhYzW5DS=%t0VWf%!>v z)nP1riy*ao`ypCG96ihh<5c7xJ;Lo}A_!6QFZb_J=VY8&)5)&j;!_qt9w}A5;<lem z&(CJ*Nwev*5*Iu^?Zt7>d)Ropf;a@SEfGJ?j@q#!TJ~$Ni6p`|Lh^Z1Vy2nZ4UvBq zVmk9I4DDF?U@A)uH)|LO57)h>$!$_nH|4?Dw-}+wzu;KToez<|8VI~m*}&SwHe*c< zGCFpTO1Zr&XQEztv@|qeqiDzLE`;8%SG!wwQ`1WFdrO|B)?z_F8g)@Xr#b3w$Cu^d z?o+RyovX8fqgi<m*Oog$V6sIR1$qUXOtkx7KG*>~sWfKQEq1df>?M@#E6;y51r0;) z7_cRylYay939Wui>J-9Mvy2R>In*kydX0{Xa^G4U;XfrSrQHMQ0S?fy3*imEEVqC& z=zo@aNn8+d67N5RoJbb%yrsf&Ir`lNc8kvsQMBT)g%wh0h>C-OjWC<`K%<C>B+3|6 zs{dAjc@Jm6W$4l63O_o@_;qF+WX=_rDH!pB`QI<E?H}C>XuS4L`bYOjVS#{%{<j#F z#5;$a6rY3y>iLiSIgX<PG`3WZxR8A3G|O51Q6{<Ch=r^{*>!K@E9rRIvo?H*)MQ#u z#Ef(eq(h}=?r*l}d3%E=q6x#v-P>lleUV8NN?4Air;5q%-A8n5lqS;Kd!v74#G3$8 zgYU1il&3jW&@t@H#fsfAaxenQnmbfwXv$V>TXg(}n<@I5$ZoX(*|XO?F-AKPu6kcz zRsvo6zF#bqs)c_>(_I!XJIXj^*J%0D!Yjh;=6Ysl&i102ko(*eyV&CD+dpi8XZNmP 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%0A*DY<EZ$=W1$3%<D_$Zx8#YjWL4^WmK8 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%0Ay#0RmvH2mNy6?m{G+dH6LOvf@W3t%~sFHJuQ0 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 Okpu#Q1`1fNApQrS=W3k* delta 94650 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	#leZ^W2lwY)n5)bY#YT~ljA!_!h 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 diff --git a/youtube-dl.1 b/youtube-dl.1 index 0ac019f..001c05e 100644 --- a/youtube-dl.1 +++ b/youtube-dl.1 @@ -22,19 +22,13 @@ redistribute it or use it however you like. \-\-version\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ print\ program\ version\ and\ exit \-U,\ \-\-update\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ update\ this\ program\ to\ latest\ version \-i,\ \-\-ignore\-errors\ \ \ \ \ \ \ \ continue\ on\ download\ errors -\-r,\ \-\-rate\-limit\ LIMIT\ \ \ \ \ maximum\ download\ rate\ (e.g.\ 50k\ or\ 44.6m) -\-R,\ \-\-retries\ RETRIES\ \ \ \ \ \ number\ of\ retries\ (default\ is\ 10) -\-\-buffer\-size\ SIZE\ \ \ \ \ \ \ \ \ size\ of\ download\ buffer\ (e.g.\ 1024\ or\ 16k) -\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (default\ is\ 1024) -\-\-no\-resize\-buffer\ \ \ \ \ \ \ \ \ do\ not\ automatically\ adjust\ the\ buffer\ size.\ By -\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ default,\ the\ buffer\ size\ is\ automatically\ resized -\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ from\ an\ initial\ value\ of\ SIZE. \-\-dump\-user\-agent\ \ \ \ \ \ \ \ \ \ display\ the\ current\ browser\ identification \-\-user\-agent\ UA\ \ \ \ \ \ \ \ \ \ \ \ specify\ a\ custom\ user\ agent \-\-referer\ REF\ \ \ \ \ \ \ \ \ \ \ \ \ \ specify\ a\ custom\ referer,\ use\ if\ the\ video\ access \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ is\ restricted\ to\ one\ domain \-\-list\-extractors\ \ \ \ \ \ \ \ \ \ List\ all\ supported\ extractors\ and\ the\ URLs\ they \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ would\ handle +\-\-extractor\-descriptions\ \ \ Output\ descriptions\ of\ all\ supported\ extractors \-\-proxy\ URL\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Use\ the\ specified\ HTTP/HTTPS\ proxy \-\-no\-check\-certificate\ \ \ \ \ Suppress\ HTTPS\ certificate\ validation. \f[] @@ -59,6 +53,19 @@ redistribute it or use it however you like. \-\-dateafter\ DATE\ \ \ \ \ \ \ \ \ \ \ download\ only\ videos\ uploaded\ after\ this\ date \f[] .fi +.SS Download Options: +.IP +.nf +\f[C] +\-r,\ \-\-rate\-limit\ LIMIT\ \ \ \ \ maximum\ download\ rate\ (e.g.\ 50k\ or\ 44.6m) +\-R,\ \-\-retries\ RETRIES\ \ \ \ \ \ number\ of\ retries\ (default\ is\ 10) +\-\-buffer\-size\ SIZE\ \ \ \ \ \ \ \ \ size\ of\ download\ buffer\ (e.g.\ 1024\ or\ 16k) +\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (default\ is\ 1024) +\-\-no\-resize\-buffer\ \ \ \ \ \ \ \ \ do\ not\ automatically\ adjust\ the\ buffer\ size.\ By +\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ default,\ the\ buffer\ size\ is\ automatically\ resized +\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ from\ an\ initial\ value\ of\ SIZE. +\f[] +.fi .SS Filesystem Options: .IP .nf @@ -225,9 +232,7 @@ video. \f[C]playlist_index\f[]: The index of the video in the playlist, a five\-digit number. .PP -The current default template is \f[C]%(id)s.%(ext)s\f[], but that will -be switchted to \f[C]%(title)s\-%(id)s.%(ext)s\f[] (which can be -requested with \f[C]\-t\f[] at the moment). +The current default template is \f[C]%(title)s\-%(id)s.%(ext)s\f[]. .PP In some cases, you don\[aq]t want special characters such as ä¸, spaces, or &, such as when transferring the downloaded filename to a Windows @@ -269,18 +274,17 @@ $\ youtube\-dl\ \-\-dateafter\ 20000101\ \-\-datebefore\ 20100101\ #will\ only\ Most people asking this question are not aware that youtube\-dl now defaults to downloading the highest available quality as reported by YouTube, which will be 1080p or 720p in some cases, so you no longer -need the \-b option. +need the \f[C]\-b\f[] option. For some specific videos, maybe YouTube does not report them to be -available in a specific high quality format you\[aq]\[aq]re interested -in. -In that case, simply request it with the \-f option and youtube\-dl will -try to download it. +available in a specific high quality format you\[aq]re interested in. +In that case, simply request it with the \f[C]\-f\f[] option and +youtube\-dl will try to download it. .SS I get HTTP error 402 when trying to download a video. What\[aq]s this? .PP Apparently YouTube requires you to pass a CAPTCHA test if you download too much. -We\[aq]\[aq]re considering to provide a way to let you solve the +We\[aq]re considering to provide a way to let you solve the CAPTCHA (https://github.com/rg3/youtube-dl/issues/154), but at the moment, your best course of action is pointing a webbrowser to the youtube URL, solving the CAPTCHA, and restart youtube\-dl. diff --git a/youtube-dl.bash-completion b/youtube-dl.bash-completion index a3e9bdf..fd12ce8 100644 --- a/youtube-dl.bash-completion +++ b/youtube-dl.bash-completion @@ -3,7 +3,7 @@ __youtube-dl() local cur prev opts COMPREPLY=() cur="${COMP_WORDS[COMP_CWORD]}" - opts="--help --version --update --ignore-errors --rate-limit --retries --buffer-size --no-resize-buffer --dump-user-agent --user-agent --referer --list-extractors --proxy --no-check-certificate --test --playlist-start --playlist-end --match-title --reject-title --max-downloads --min-filesize --max-filesize --date --datebefore --dateafter --title --id --literal --auto-number --output --autonumber-size --restrict-filenames --batch-file --no-overwrites --continue --no-continue --cookies --no-part --no-mtime --write-description --write-info-json --write-thumbnail --quiet --simulate --skip-download --get-url --get-title --get-id --get-thumbnail --get-description --get-filename --get-format --newline --no-progress --console-title --verbose --dump-intermediate-pages --format --all-formats --prefer-free-formats --max-quality --list-formats --write-sub --write-auto-sub --only-sub --all-subs --list-subs --sub-format --sub-lang --username --password --netrc --video-password --extract-audio --audio-format --audio-quality --recode-video --keep-video --no-post-overwrites" + opts="--help --version --update --ignore-errors --dump-user-agent --user-agent --referer --list-extractors --extractor-descriptions --proxy --no-check-certificate --playlist-start --playlist-end --match-title --reject-title --max-downloads --min-filesize --max-filesize --date --datebefore --dateafter --rate-limit --retries --buffer-size --no-resize-buffer --test --title --id --literal --auto-number --output --autonumber-size --restrict-filenames --batch-file --no-overwrites --continue --no-continue --cookies --no-part --no-mtime --write-description --write-info-json --write-thumbnail --quiet --simulate --skip-download --get-url --get-title --get-id --get-thumbnail --get-description --get-filename --get-format --newline --no-progress --console-title --verbose --dump-intermediate-pages --format --all-formats --prefer-free-formats --max-quality --list-formats --write-sub --write-auto-sub --only-sub --all-subs --list-subs --sub-format --sub-lang --username --password --netrc --video-password --extract-audio --audio-format --audio-quality --recode-video --keep-video --no-post-overwrites" if [[ ${cur} == * ]] ; then COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) ) diff --git a/youtube_dl/YoutubeDL.py b/youtube_dl/YoutubeDL.py index 9931c98..d3281fe 100644 --- a/youtube_dl/YoutubeDL.py +++ b/youtube_dl/YoutubeDL.py @@ -13,7 +13,7 @@ import time import traceback from .utils import * -from .extractor import get_info_extractor +from .extractor import get_info_extractor, gen_extractors from .FileDownloader import FileDownloader @@ -113,6 +113,13 @@ class YoutubeDL(object): self._ies.append(ie) ie.set_downloader(self) + def add_default_info_extractors(self): + """ + Add the InfoExtractors returned by gen_extractors to the end of the list + """ + for ie in gen_extractors(): + self.add_info_extractor(ie) + def add_post_processor(self, pp): """Add a PostProcessor object to the end of the chain.""" self._pps.append(pp) diff --git a/youtube_dl/__init__.py b/youtube_dl/__init__.py index 6a8fc5e..db63d0a 100644 --- a/youtube_dl/__init__.py +++ b/youtube_dl/__init__.py @@ -26,7 +26,8 @@ __authors__ = ( 'Julien Fraichard', 'Johny Mo Swag', 'Axel Noack', - ) + 'Albert Kim', +) __license__ = 'Public Domain' @@ -34,6 +35,7 @@ import codecs import getpass import optparse import os +import random import re import shlex import socket @@ -117,6 +119,7 @@ def parseOpts(overrideArguments=None): selection = optparse.OptionGroup(parser, 'Video Selection') authentication = optparse.OptionGroup(parser, 'Authentication Options') video_format = optparse.OptionGroup(parser, 'Video Format Options') + downloader = optparse.OptionGroup(parser, 'Download Options') postproc = optparse.OptionGroup(parser, 'Post-processing Options') filesystem = optparse.OptionGroup(parser, 'Filesystem Options') verbosity = optparse.OptionGroup(parser, 'Verbosity / Simulation Options') @@ -129,15 +132,6 @@ def parseOpts(overrideArguments=None): action='store_true', dest='update_self', help='update this program to latest version') general.add_option('-i', '--ignore-errors', action='store_true', dest='ignoreerrors', help='continue on download errors', default=False) - general.add_option('-r', '--rate-limit', - dest='ratelimit', metavar='LIMIT', help='maximum download rate (e.g. 50k or 44.6m)') - general.add_option('-R', '--retries', - dest='retries', metavar='RETRIES', help='number of retries (default is %default)', default=10) - general.add_option('--buffer-size', - dest='buffersize', metavar='SIZE', help='size of download buffer (e.g. 1024 or 16k) (default is %default)', default="1024") - general.add_option('--no-resize-buffer', - action='store_true', dest='noresizebuffer', - help='do not automatically adjust the buffer size. By default, the buffer size is automatically resized from an initial value of SIZE.', default=False) general.add_option('--dump-user-agent', action='store_true', dest='dump_user_agent', help='display the current browser identification', default=False) @@ -149,9 +143,12 @@ def parseOpts(overrideArguments=None): general.add_option('--list-extractors', action='store_true', dest='list_extractors', help='List all supported extractors and the URLs they would handle', default=False) + general.add_option('--extractor-descriptions', + action='store_true', dest='list_extractor_descriptions', + help='Output descriptions of all supported extractors', default=False) general.add_option('--proxy', dest='proxy', default=None, help='Use the specified HTTP/HTTPS proxy', metavar='URL') general.add_option('--no-check-certificate', action='store_true', dest='no_check_certificate', default=False, help='Suppress HTTPS certificate validation.') - general.add_option('--test', action='store_true', dest='test', default=False, help=optparse.SUPPRESS_HELP) + selection.add_option('--playlist-start', dest='playliststart', metavar='NUMBER', help='playlist video to start at (default is %default)', default=1) @@ -210,6 +207,17 @@ def parseOpts(overrideArguments=None): action='store', dest='subtitleslang', metavar='LANG', help='language of the subtitles to download (optional) use IETF language tags like \'en\'') + downloader.add_option('-r', '--rate-limit', + dest='ratelimit', metavar='LIMIT', help='maximum download rate (e.g. 50k or 44.6m)') + downloader.add_option('-R', '--retries', + dest='retries', metavar='RETRIES', help='number of retries (default is %default)', default=10) + downloader.add_option('--buffer-size', + dest='buffersize', metavar='SIZE', help='size of download buffer (e.g. 1024 or 16k) (default is %default)', default="1024") + downloader.add_option('--no-resize-buffer', + action='store_true', dest='noresizebuffer', + help='do not automatically adjust the buffer size. By default, the buffer size is automatically resized from an initial value of SIZE.', default=False) + downloader.add_option('--test', action='store_true', dest='test', default=False, help=optparse.SUPPRESS_HELP) + verbosity.add_option('-q', '--quiet', action='store_true', dest='quiet', help='activates quiet mode', default=False) verbosity.add_option('-s', '--simulate', @@ -316,6 +324,7 @@ def parseOpts(overrideArguments=None): parser.add_option_group(general) parser.add_option_group(selection) + parser.add_option_group(downloader) parser.add_option_group(filesystem) parser.add_option_group(verbosity) parser.add_option_group(video_format) @@ -415,13 +424,25 @@ def _real_main(argv=None): extractors = gen_extractors() if opts.list_extractors: - for ie in extractors: + for ie in sorted(extractors, key=lambda ie: ie.IE_NAME.lower()): compat_print(ie.IE_NAME + (' (CURRENTLY BROKEN)' if not ie._WORKING else '')) matchedUrls = [url for url in all_urls if ie.suitable(url)] all_urls = [url for url in all_urls if url not in matchedUrls] for mu in matchedUrls: compat_print(u' ' + mu) sys.exit(0) + if opts.list_extractor_descriptions: + for ie in sorted(extractors, key=lambda ie: ie.IE_NAME.lower()): + if not ie._WORKING: + continue + desc = getattr(ie, 'IE_DESC', ie.IE_NAME) + if hasattr(ie, 'SEARCH_KEY'): + _SEARCHES = (u'cute kittens', u'slithering pythons', u'falling cat', u'angry poodle', u'purple fish', u'running tortoise') + _COUNTS = (u'', u'5', u'10', u'all') + desc += u' (Example: "%s%s:%s" )' % (ie.SEARCH_KEY, random.choice(_COUNTS), random.choice(_SEARCHES)) + compat_print(desc) + sys.exit(0) + # Conflicting, missing and erroneous options if opts.usenetrc and (opts.username is not None or opts.password is not None): @@ -561,19 +582,20 @@ def _real_main(argv=None): if opts.verbose: ydl.to_screen(u'[debug] youtube-dl version ' + __version__) try: - sp = subprocess.Popen(['git', 'rev-parse', '--short', 'HEAD'], stdout=subprocess.PIPE, stderr=subprocess.PIPE, - cwd=os.path.dirname(os.path.abspath(__file__))) + 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): ydl.to_screen(u'[debug] Git HEAD: ' + out) except: - pass + sys.exc_clear() ydl.to_screen(u'[debug] Python version %s - %s' %(platform.python_version(), platform.platform())) ydl.to_screen(u'[debug] Proxy map: ' + str(proxy_handler.proxies)) - for extractor in extractors: - ydl.add_info_extractor(extractor) + ydl.add_default_info_extractors() # PostProcessors if opts.extractaudio: diff --git a/youtube_dl/extractor/__init__.py b/youtube_dl/extractor/__init__.py index 2750fc8..41efc57 100644 --- a/youtube_dl/extractor/__init__.py +++ b/youtube_dl/extractor/__init__.py @@ -1,6 +1,7 @@ from .ard import ARDIE from .arte import ArteTvIE +from .auengine import AUEngineIE from .bandcamp import BandcampIE from .bliptv import BlipTVIE, BlipTVUserIE from .breakcom import BreakIE @@ -14,14 +15,17 @@ from .escapist import EscapistIE from .facebook import FacebookIE from .flickr import FlickrIE from .funnyordie import FunnyOrDieIE +from .gamespot import GameSpotIE from .gametrailers import GametrailersIE from .generic import GenericIE from .googleplus import GooglePlusIE from .googlesearch import GoogleSearchIE +from .hotnewhiphop import HotNewHipHopIE from .howcast import HowcastIE from .hypem import HypemIE from .ina import InaIE from .infoq import InfoQIE +from .instagram import InstagramIE from .jukebox import JukeboxIE from .justintv import JustinTVIE from .keek import KeekIE @@ -36,6 +40,7 @@ from .photobucket import PhotobucketIE from .pornotube import PornotubeIE from .rbmaradio import RBMARadioIE from .redtube import RedTubeIE +from .ringtv import RingTVIE from .soundcloud import SoundcloudIE, SoundcloudSetIE from .spiegel import SpiegelIE from .stanfordoc import StanfordOpenClassroomIE @@ -43,13 +48,17 @@ from .statigram import StatigramIE from .steam import SteamIE from .teamcoco import TeamcocoIE from .ted import TEDIE +from .tf1 import TF1IE +from .traileraddict import TrailerAddictIE from .tudou import TudouIE from .tumblr import TumblrIE +from .tutv import TutvIE from .ustream import UstreamIE from .vbox7 import Vbox7IE from .vevo import VevoIE from .vimeo import VimeoIE from .vine import VineIE +from .wat import WatIE from .wimp import WimpIE from .worldstarhiphop import WorldStarHipHopIE from .xhamster import XHamsterIE @@ -59,85 +68,22 @@ from .yahoo import YahooIE, YahooSearchIE from .youjizz import YouJizzIE from .youku import YoukuIE from .youporn import YouPornIE -from .youtube import YoutubeIE, YoutubePlaylistIE, YoutubeSearchIE, YoutubeUserIE, YoutubeChannelIE +from .youtube import YoutubeIE, YoutubePlaylistIE, YoutubeSearchIE, YoutubeUserIE, YoutubeChannelIE, YoutubeShowIE from .zdf import ZDFIE +_ALL_CLASSES = [ + klass + for name, klass in globals().items() + if name.endswith('IE') and name != 'GenericIE' +] +_ALL_CLASSES.append(GenericIE) + def gen_extractors(): """ Return a list of an instance of every supported extractor. The order does matter; the first extractor matched is the one handling the URL. """ - return [ - YoutubePlaylistIE(), - YoutubeChannelIE(), - YoutubeUserIE(), - YoutubeSearchIE(), - YoutubeIE(), - MetacafeIE(), - DailymotionIE(), - GoogleSearchIE(), - PhotobucketIE(), - YahooIE(), - YahooSearchIE(), - DepositFilesIE(), - FacebookIE(), - BlipTVIE(), - BlipTVUserIE(), - VimeoIE(), - MyVideoIE(), - ComedyCentralIE(), - EscapistIE(), - CollegeHumorIE(), - XVideosIE(), - SoundcloudSetIE(), - SoundcloudIE(), - InfoQIE(), - MixcloudIE(), - StanfordOpenClassroomIE(), - MTVIE(), - YoukuIE(), - XNXXIE(), - YouJizzIE(), - PornotubeIE(), - YouPornIE(), - GooglePlusIE(), - ArteTvIE(), - NBAIE(), - WorldStarHipHopIE(), - JustinTVIE(), - FunnyOrDieIE(), - SteamIE(), - UstreamIE(), - RBMARadioIE(), - EightTracksIE(), - KeekIE(), - TEDIE(), - MySpassIE(), - SpiegelIE(), - LiveLeakIE(), - ARDIE(), - ZDFIE(), - TumblrIE(), - BandcampIE(), - RedTubeIE(), - InaIE(), - HowcastIE(), - VineIE(), - FlickrIE(), - TeamcocoIE(), - XHamsterIE(), - HypemIE(), - Vbox7IE(), - GametrailersIE(), - StatigramIE(), - BreakIE(), - VevoIE(), - JukeboxIE(), - TudouIE(), - CSpanIE(), - WimpIE(), - GenericIE() - ] + return [klass() for klass in _ALL_CLASSES] def get_info_extractor(ie_name): """Returns the info extractor class with the given ie_name""" diff --git a/youtube_dl/extractor/ard.py b/youtube_dl/extractor/ard.py index e1ecdf4..5793a41 100644 --- a/youtube_dl/extractor/ard.py +++ b/youtube_dl/extractor/ard.py @@ -9,6 +9,15 @@ class ARDIE(InfoExtractor): _VALID_URL = r'^(?:https?://)?(?:(?:www\.)?ardmediathek\.de|mediathek\.daserste\.de)/(?:.*/)(?P<video_id>[^/\?]+)(?:\?.*)?' _TITLE = r'<h1(?: class="boxTopHeadline")?>(?P<title>.*)</h1>' _MEDIA_STREAM = r'mediaCollection\.addMediaStream\((?P<media_type>\d+), (?P<quality>\d+), "(?P<rtmp_url>[^"]*)", "(?P<video_url>[^"]*)", "[^"]*"\)' + _TEST = { + u'url': u'http://www.ardmediathek.de/das-erste/tagesschau-in-100-sek?documentId=14077640', + u'file': u'14077640.mp4', + u'md5': u'6ca8824255460c787376353f9e20bbd8', + u'info_dict': { + u"title": u"11.04.2013 09:23 Uhr - Tagesschau in 100 Sekunden" + }, + u'skip': u'Requires rtmpdump' + } def _real_extract(self, url): # determine video id from url diff --git a/youtube_dl/extractor/arte.py b/youtube_dl/extractor/arte.py index b061b95..183274e 100644 --- a/youtube_dl/extractor/arte.py +++ b/youtube_dl/extractor/arte.py @@ -11,11 +11,21 @@ from ..utils import ( ) class ArteTvIE(InfoExtractor): - _VALID_URL = r'(?:http://)?www\.arte.tv/guide/(?:fr|de)/(?:(?:sendungen|emissions)/)?(?P<id>.*?)/(?P<name>.*?)(\?.*)?' + """ + There are two sources of video in arte.tv: videos.arte.tv and + www.arte.tv/guide, the extraction process is different for each one. + The videos expire in 7 days, so we can't add tests. + """ + _EMISSION_URL = r'(?:http://)?www\.arte.tv/guide/(?:fr|de)/(?:(?:sendungen|emissions)/)?(?P<id>.*?)/(?P<name>.*?)(\?.*)?' + _VIDEOS_URL = r'(?:http://)?videos.arte.tv/(?:fr|de)/.*-(?P<id>.*?).html' _LIVE_URL = r'index-[0-9]+\.html$' IE_NAME = u'arte.tv' + @classmethod + def suitable(cls, url): + return any(re.match(regex, url) for regex in (cls._EMISSION_URL, cls._VIDEOS_URL)) + # TODO implement Live Stream # def extractLiveStream(self, url): # video_lang = url.split('/')[-4] @@ -44,17 +54,26 @@ class ArteTvIE(InfoExtractor): # video_url = u'%s/%s' % (info.get('url'), info.get('path')) def _real_extract(self, url): - mobj = re.match(self._VALID_URL, url) - name = mobj.group('name') - # This is not a real id, it can be for example AJT for the news - # http://www.arte.tv/guide/fr/emissions/AJT/arte-journal - video_id = mobj.group('id') + mobj = re.match(self._EMISSION_URL, url) + if mobj is not None: + name = mobj.group('name') + # This is not a real id, it can be for example AJT for the news + # http://www.arte.tv/guide/fr/emissions/AJT/arte-journal + video_id = mobj.group('id') + return self._extract_emission(url, video_id) + + mobj = re.match(self._VIDEOS_URL, url) + if mobj is not None: + id = mobj.group('id') + return self._extract_video(url, id) if re.search(self._LIVE_URL, video_id) is not None: raise ExtractorError(u'Arte live streams are not yet supported, sorry') # self.extractLiveStream(url) # return + def _extract_emission(self, url, video_id): + """Extract from www.arte.tv/guide""" webpage = self._download_webpage(url, video_id) json_url = self._html_search_regex(r'arte_vp_url="(.*?)"', webpage, 'json url') @@ -68,6 +87,7 @@ class ArteTvIE(InfoExtractor): 'description': player_info['VDE'], 'upload_date': unified_strdate(player_info['VDA'].split(' ')[0]), 'thumbnail': player_info['programImage'], + 'ext': 'flv', } formats = player_info['VSR'].values() @@ -78,9 +98,36 @@ class ArteTvIE(InfoExtractor): if format_info['mediaType'] == u'rtmp': info_dict['url'] = format_info['streamer'] info_dict['play_path'] = 'mp4:' + format_info['url'] - info_dict['ext'] = 'mp4' else: info_dict['url'] = format_info['url'] - info_dict['ext'] = 'mp4' return info_dict + + def _extract_video(self, url, video_id): + """Extract from videos.arte.tv""" + config_xml_url = url.replace('/videos/', '/do_delegate/videos/') + config_xml_url = config_xml_url.replace('.html', ',view,asPlayerXml.xml') + config_xml = self._download_webpage(config_xml_url, video_id) + config_xml_url = self._html_search_regex(r'<video lang=".*?" ref="(.*?)"', config_xml, 'config xml url') + config_xml = self._download_webpage(config_xml_url, video_id) + + video_urls = list(re.finditer(r'<url quality="(?P<quality>.*?)">(?P<url>.*?)</url>', config_xml)) + def _key(m): + quality = m.group('quality') + if quality == 'hd': + return 2 + else: + return 1 + # We pick the best quality + video_urls = sorted(video_urls, key=_key) + video_url = list(video_urls)[-1].group('url') + + title = self._html_search_regex(r'<name>(.*?)</name>', config_xml, 'title') + thumbnail = self._html_search_regex(r'<firstThumbnailUrl>(.*?)</firstThumbnailUrl>', + config_xml, 'thumbnail') + return {'id': video_id, + 'title': title, + 'thumbnail': thumbnail, + 'url': video_url, + 'ext': 'flv', + } diff --git a/youtube_dl/extractor/auengine.py b/youtube_dl/extractor/auengine.py new file mode 100644 index 0000000..3b4ade3 --- /dev/null +++ b/youtube_dl/extractor/auengine.py @@ -0,0 +1,38 @@ +import os.path +import re + +from .common import InfoExtractor +from ..utils import ( + compat_urllib_parse, + compat_urllib_parse_urlparse, +) + +class AUEngineIE(InfoExtractor): + _VALID_URL = r'(?:http://)?(?:www\.)?auengine\.com/embed.php\?.*?file=([^&]+).*?' + + def _real_extract(self, url): + mobj = re.match(self._VALID_URL, url) + video_id = mobj.group(1) + webpage = self._download_webpage(url, video_id) + title = self._html_search_regex(r'<title>(?P<title>.+?)</title>', + webpage, u'title') + title = title.strip() + links = re.findall(r'[^A-Za-z0-9]?(?:file|url):\s*["\'](http[^\'"&]*)', webpage) + links = [compat_urllib_parse.unquote(l) for l in links] + for link in links: + root, pathext = os.path.splitext(compat_urllib_parse_urlparse(link).path) + if pathext == '.png': + thumbnail = link + elif pathext == '.mp4': + url = link + ext = pathext + if ext == title[-len(ext):]: + title = title[:-len(ext)] + ext = ext[1:] + return [{ + 'id': video_id, + 'url': url, + 'ext': ext, + 'title': title, + 'thumbnail': thumbnail, + }] diff --git a/youtube_dl/extractor/bandcamp.py b/youtube_dl/extractor/bandcamp.py index dcf6721..129a20f 100644 --- a/youtube_dl/extractor/bandcamp.py +++ b/youtube_dl/extractor/bandcamp.py @@ -9,6 +9,15 @@ from ..utils import ( class BandcampIE(InfoExtractor): _VALID_URL = r'http://.*?\.bandcamp\.com/track/(?P<title>.*)' + _TEST = { + u'url': u'http://youtube-dl.bandcamp.com/track/youtube-dl-test-song', + u'file': u'1812978515.mp3', + u'md5': u'cdeb30cdae1921719a3cbcab696ef53c', + u'info_dict': { + u"title": u"youtube-dl test song \"'/\\\u00e4\u21ad" + }, + u'skip': u'There is a limit of 200 free downloads / month for the test song' + } def _real_extract(self, url): mobj = re.match(self._VALID_URL, url) diff --git a/youtube_dl/extractor/bliptv.py b/youtube_dl/extractor/bliptv.py index df2ad4b..37141e6 100644 --- a/youtube_dl/extractor/bliptv.py +++ b/youtube_dl/extractor/bliptv.py @@ -24,6 +24,17 @@ class BlipTVIE(InfoExtractor): _VALID_URL = r'^(?:https?://)?(?:\w+\.)?blip\.tv/((.+/)|(play/)|(api\.swf#))(.+)$' _URL_EXT = r'^.*\.([a-z0-9]+)$' IE_NAME = u'blip.tv' + _TEST = { + u'url': u'http://blip.tv/cbr/cbr-exclusive-gotham-city-imposters-bats-vs-jokerz-short-3-5796352', + u'file': u'5779306.m4v', + u'md5': u'b2d849efcf7ee18917e4b4d9ff37cafe', + u'info_dict': { + u"upload_date": u"20111205", + u"description": u"md5:9bc31f227219cde65e47eeec8d2dc596", + u"uploader": u"Comic Book Resources - CBR TV", + u"title": u"CBR EXCLUSIVE: \"Gotham City Imposters\" Bats VS Jokerz Short 3" + } + } def report_direct_download(self, title): """Report information extraction.""" diff --git a/youtube_dl/extractor/breakcom.py b/youtube_dl/extractor/breakcom.py index 1f6620d..34f555e 100644 --- a/youtube_dl/extractor/breakcom.py +++ b/youtube_dl/extractor/breakcom.py @@ -5,6 +5,14 @@ from .common import InfoExtractor class BreakIE(InfoExtractor): _VALID_URL = r'(?:http://)?(?:www\.)?break\.com/video/([^/]+)' + _TEST = { + u'url': u'http://www.break.com/video/when-girls-act-like-guys-2468056', + u'file': u'2468056.mp4', + u'md5': u'a3513fb1547fba4fb6cfac1bffc6c46b', + u'info_dict': { + u"title": u"When Girls Act Like D-Bags" + } + } def _real_extract(self, url): mobj = re.match(self._VALID_URL, url) diff --git a/youtube_dl/extractor/comedycentral.py b/youtube_dl/extractor/comedycentral.py index 6985e88..93d9e3d 100644 --- a/youtube_dl/extractor/comedycentral.py +++ b/youtube_dl/extractor/comedycentral.py @@ -12,8 +12,7 @@ from ..utils import ( class ComedyCentralIE(InfoExtractor): - """Information extractor for The Daily Show and Colbert Report """ - + IE_DESC = u'The Daily Show / Colbert Report' # urls can be abbreviations like :thedailyshow or :colbert # urls for episodes like: # or urls for clips like: http://www.thedailyshow.com/watch/mon-december-10-2012/any-given-gun-day @@ -27,6 +26,17 @@ class ComedyCentralIE(InfoExtractor): (the-colbert-report-(videos|collections)/(?P<clipID>[0-9]+)/[^/]*/(?P<cntitle>.*?)) |(watch/(?P<date>[^/]*)/(?P<tdstitle>.*))))) $""" + _TEST = { + u'url': u'http://www.thedailyshow.com/watch/thu-december-13-2012/kristen-stewart', + u'file': u'422212.mp4', + u'md5': u'4e2f5cb088a83cd8cdb7756132f9739d', + u'info_dict': { + u"upload_date": u"20121214", + u"description": u"Kristen Stewart", + u"uploader": u"thedailyshow", + u"title": u"thedailyshow-kristen-stewart part 1" + } + } _available_formats = ['3500', '2200', '1700', '1200', '750', '400'] diff --git a/youtube_dl/extractor/common.py b/youtube_dl/extractor/common.py index 64d63e1..655836f 100644 --- a/youtube_dl/extractor/common.py +++ b/youtube_dl/extractor/common.py @@ -44,6 +44,7 @@ class InfoExtractor(object): location: Physical location of the video. player_url: SWF Player URL (used for rtmpdump). subtitles: The subtitle file contents. + view_count: How many users have watched the video on the platform. urlhandle: [internal] The urlHandle to be used to download the file, like returned by urllib.request.urlopen @@ -262,3 +263,7 @@ class SearchInfoExtractor(InfoExtractor): def _get_n_results(self, query, n): """Get a specified number of results for a query""" raise NotImplementedError("This method must be implemented by sublclasses") + + @property + def SEARCH_KEY(self): + return self._SEARCH_KEY diff --git a/youtube_dl/extractor/cspan.py b/youtube_dl/extractor/cspan.py index 2246515..a485327 100644 --- a/youtube_dl/extractor/cspan.py +++ b/youtube_dl/extractor/cspan.py @@ -7,6 +7,15 @@ from ..utils import ( class CSpanIE(InfoExtractor): _VALID_URL = r'http://www.c-spanvideo.org/program/(.*)' + _TEST = { + u'url': u'http://www.c-spanvideo.org/program/HolderonV', + u'file': u'315139.flv', + u'md5': u'74a623266956f69e4df0068ab6c80fe4', + u'info_dict': { + u"title": u"Attorney General Eric Holder on Voting Rights Act Decision" + }, + u'skip': u'Requires rtmpdump' + } def _real_extract(self, url): mobj = re.match(self._VALID_URL, url) diff --git a/youtube_dl/extractor/dailymotion.py b/youtube_dl/extractor/dailymotion.py index 34306b0..3297a85 100644 --- a/youtube_dl/extractor/dailymotion.py +++ b/youtube_dl/extractor/dailymotion.py @@ -14,6 +14,15 @@ class DailymotionIE(InfoExtractor): _VALID_URL = r'(?i)(?:https?://)?(?:www\.)?dailymotion\.[a-z]{2,3}/video/([^/]+)' IE_NAME = u'dailymotion' + _TEST = { + u'url': u'http://www.dailymotion.com/video/x33vw9_tutoriel-de-youtubeur-dl-des-video_tech', + u'file': u'x33vw9.mp4', + u'md5': u'392c4b85a60a90dc4792da41ce3144eb', + u'info_dict': { + u"uploader": u"Alex and Van .", + u"title": u"Tutoriel de Youtubeur\"DL DES VIDEO DE YOUTUBE\"" + } + } def _real_extract(self, url): # Extract id and simplified title from URL diff --git a/youtube_dl/extractor/eighttracks.py b/youtube_dl/extractor/eighttracks.py index c3d4343..cced068 100644 --- a/youtube_dl/extractor/eighttracks.py +++ b/youtube_dl/extractor/eighttracks.py @@ -12,6 +12,77 @@ from ..utils import ( class EightTracksIE(InfoExtractor): IE_NAME = '8tracks' _VALID_URL = r'https?://8tracks.com/(?P<user>[^/]+)/(?P<id>[^/#]+)(?:#.*)?$' + _TEST = { + u"name": u"EightTracks", + u"url": u"http://8tracks.com/ytdl/youtube-dl-test-tracks-a", + u"playlist": [ + { + u"file": u"11885610.m4a", + u"md5": u"96ce57f24389fc8734ce47f4c1abcc55", + u"info_dict": { + u"title": u"youtue-dl project<>\"' - youtube-dl test track 1 \"'/\\\u00e4\u21ad", + u"uploader_id": u"ytdl" + } + }, + { + u"file": u"11885608.m4a", + u"md5": u"4ab26f05c1f7291ea460a3920be8021f", + u"info_dict": { + u"title": u"youtube-dl project - youtube-dl test track 2 \"'/\\\u00e4\u21ad", + u"uploader_id": u"ytdl" + } + }, + { + u"file": u"11885679.m4a", + u"md5": u"d30b5b5f74217410f4689605c35d1fd7", + u"info_dict": { + u"title": u"youtube-dl project as well - youtube-dl test track 3 \"'/\\\u00e4\u21ad", + u"uploader_id": u"ytdl" + } + }, + { + u"file": u"11885680.m4a", + u"md5": u"4eb0a669317cd725f6bbd336a29f923a", + u"info_dict": { + u"title": u"youtube-dl project as well - youtube-dl test track 4 \"'/\\\u00e4\u21ad", + u"uploader_id": u"ytdl" + } + }, + { + u"file": u"11885682.m4a", + u"md5": u"1893e872e263a2705558d1d319ad19e8", + u"info_dict": { + u"title": u"PH - youtube-dl test track 5 \"'/\\\u00e4\u21ad", + u"uploader_id": u"ytdl" + } + }, + { + u"file": u"11885683.m4a", + u"md5": u"b673c46f47a216ab1741ae8836af5899", + u"info_dict": { + u"title": u"PH - youtube-dl test track 6 \"'/\\\u00e4\u21ad", + u"uploader_id": u"ytdl" + } + }, + { + u"file": u"11885684.m4a", + u"md5": u"1d74534e95df54986da7f5abf7d842b7", + u"info_dict": { + u"title": u"phihag - youtube-dl test track 7 \"'/\\\u00e4\u21ad", + u"uploader_id": u"ytdl" + } + }, + { + u"file": u"11885685.m4a", + u"md5": u"f081f47af8f6ae782ed131d38b9cd1c0", + u"info_dict": { + u"title": u"phihag - youtube-dl test track 8 \"'/\\\u00e4\u21ad", + u"uploader_id": u"ytdl" + } + } + ] + } + def _real_extract(self, url): mobj = re.match(self._VALID_URL, url) diff --git a/youtube_dl/extractor/escapist.py b/youtube_dl/extractor/escapist.py index 86b145b..794460e 100644 --- a/youtube_dl/extractor/escapist.py +++ b/youtube_dl/extractor/escapist.py @@ -12,6 +12,16 @@ from ..utils import ( class EscapistIE(InfoExtractor): _VALID_URL = r'^(https?://)?(www\.)?escapistmagazine\.com/videos/view/(?P<showname>[^/]+)/(?P<episode>[^/?]+)[/?]?.*$' + _TEST = { + u'url': u'http://www.escapistmagazine.com/videos/view/the-escapist-presents/6618-Breaking-Down-Baldurs-Gate', + u'file': u'6618-Breaking-Down-Baldurs-Gate.mp4', + u'md5': u'c6793dbda81388f4264c1ba18684a74d', + u'info_dict': { + u"description": u"Baldur's Gate: Original, Modded or Enhanced Edition? I'll break down what you can expect from the new Baldur's Gate: Enhanced Edition.", + u"uploader": u"the-escapist-presents", + u"title": u"Breaking Down Baldur's Gate" + } + } def _real_extract(self, url): mobj = re.match(self._VALID_URL, url) diff --git a/youtube_dl/extractor/facebook.py b/youtube_dl/extractor/facebook.py index c694f9a..beaa5b4 100644 --- a/youtube_dl/extractor/facebook.py +++ b/youtube_dl/extractor/facebook.py @@ -22,6 +22,15 @@ class FacebookIE(InfoExtractor): _LOGIN_URL = 'https://login.facebook.com/login.php?m&next=http%3A%2F%2Fm.facebook.com%2Fhome.php&' _NETRC_MACHINE = 'facebook' IE_NAME = u'facebook' + _TEST = { + u'url': u'https://www.facebook.com/photo.php?v=120708114770723', + u'file': u'120708114770723.mp4', + u'md5': u'48975a41ccc4b7a581abd68651c1a5a8', + u'info_dict': { + u"duration": 279, + u"title": u"PEOPLE ARE AWESOME 2013" + } + } def report_login(self): """Report attempt to log in.""" diff --git a/youtube_dl/extractor/flickr.py b/youtube_dl/extractor/flickr.py index 791d5b6..bd97bff 100644 --- a/youtube_dl/extractor/flickr.py +++ b/youtube_dl/extractor/flickr.py @@ -10,6 +10,16 @@ from ..utils import ( class FlickrIE(InfoExtractor): """Information Extractor for Flickr videos""" _VALID_URL = r'(?:https?://)?(?:www\.)?flickr\.com/photos/(?P<uploader_id>[\w\-_@]+)/(?P<id>\d+).*' + _TEST = { + u'url': u'http://www.flickr.com/photos/forestwander-nature-pictures/5645318632/in/photostream/', + u'file': u'5645318632.mp4', + u'md5': u'6fdc01adbc89d72fc9c4f15b4a4ba87b', + u'info_dict': { + u"description": u"Waterfalls in the Springtime at Dark Hollow Waterfalls. These are located just off of Skyline Drive in Virginia. They are only about 6/10 of a mile hike but it is a pretty steep hill and a good climb back up.", + u"uploader_id": u"forestwander-nature-pictures", + u"title": u"Dark Hollow Waterfalls" + } + } def _real_extract(self, url): mobj = re.match(self._VALID_URL, url) diff --git a/youtube_dl/extractor/funnyordie.py b/youtube_dl/extractor/funnyordie.py index 3045978..388aacf 100644 --- a/youtube_dl/extractor/funnyordie.py +++ b/youtube_dl/extractor/funnyordie.py @@ -5,6 +5,15 @@ from .common import InfoExtractor class FunnyOrDieIE(InfoExtractor): _VALID_URL = r'^(?:https?://)?(?:www\.)?funnyordie\.com/videos/(?P<id>[0-9a-f]+)/.*$' + _TEST = { + u'url': u'http://www.funnyordie.com/videos/0732f586d7/heart-shaped-box-literal-video-version', + u'file': u'0732f586d7.mp4', + u'md5': u'f647e9e90064b53b6e046e75d0241fbd', + u'info_dict': { + u"description": u"Lyrics changed to match the video. Spoken cameo by Obscurus Lupa (from ThatGuyWithTheGlasses.com). Based on a concept by Dustin McLean (DustFilms.com). Performed, edited, and written by David A. Scott.", + u"title": u"Heart-Shaped Box: Literal Video Version" + } + } def _real_extract(self, url): mobj = re.match(self._VALID_URL, url) diff --git a/youtube_dl/extractor/gamespot.py b/youtube_dl/extractor/gamespot.py new file mode 100644 index 0000000..cec3b7a --- /dev/null +++ b/youtube_dl/extractor/gamespot.py @@ -0,0 +1,45 @@ +import re +import xml.etree.ElementTree + +from .common import InfoExtractor +from ..utils import ( + unified_strdate, +) + +class GameSpotIE(InfoExtractor): + _VALID_URL = r'(?:http://)?(?:www\.)?gamespot\.com/([^/]+)/videos/([^/]+)-([^/d]+)/' + _TEST = { + u"url": u"http://www.gamespot.com/arma-iii/videos/arma-iii-community-guide-sitrep-i-6410818/", + u"file": u"6410818.mp4", + u"md5": u"5569d64ca98db01f0177c934fe8c1e9b", + u"info_dict": { + u"title": u"Arma III - Community Guide: SITREP I", + u"upload_date": u"20130627", + } + } + + + def _real_extract(self, url): + mobj = re.match(self._VALID_URL, url) + video_id = mobj.group(3).split("-")[-1] + info_url = "http://www.gamespot.com/pages/video_player/xml.php?id="+str(video_id) + info_xml = self._download_webpage(info_url, video_id) + doc = xml.etree.ElementTree.fromstring(info_xml) + clip_el = doc.find('./playList/clip') + + video_url = clip_el.find('./URI').text + title = clip_el.find('./title').text + ext = video_url.rpartition('.')[2] + thumbnail_url = clip_el.find('./screenGrabURI').text + view_count = int(clip_el.find('./views').text) + upload_date = unified_strdate(clip_el.find('./postDate').text) + + return [{ + 'id' : video_id, + 'url' : video_url, + 'ext' : ext, + 'title' : title, + 'thumbnail' : thumbnail_url, + 'upload_date' : upload_date, + 'view_count' : view_count, + }] diff --git a/youtube_dl/extractor/gametrailers.py b/youtube_dl/extractor/gametrailers.py index 33e59e8..3ce93b4 100644 --- a/youtube_dl/extractor/gametrailers.py +++ b/youtube_dl/extractor/gametrailers.py @@ -9,6 +9,15 @@ from ..utils import ( class GametrailersIE(InfoExtractor): _VALID_URL = r'http://www.gametrailers.com/(?P<type>videos|reviews|full-episodes)/(?P<id>.*?)/(?P<title>.*)' + _TEST = { + u'url': u'http://www.gametrailers.com/videos/zbvr8i/mirror-s-edge-2-e3-2013--debut-trailer', + u'file': u'zbvr8i.flv', + u'md5': u'c3edbc995ab4081976e16779bd96a878', + u'info_dict': { + u"title": u"E3 2013: Debut Trailer" + }, + u'skip': u'Requires rtmpdump' + } def _real_extract(self, url): mobj = re.match(self._VALID_URL, url) diff --git a/youtube_dl/extractor/generic.py b/youtube_dl/extractor/generic.py index 7a877b3..20bc533 100644 --- a/youtube_dl/extractor/generic.py +++ b/youtube_dl/extractor/generic.py @@ -11,10 +11,18 @@ from ..utils import ( ) class GenericIE(InfoExtractor): - """Generic last-resort information extractor.""" - + IE_DESC = u'Generic downloader that works on some sites' _VALID_URL = r'.*' IE_NAME = u'generic' + _TEST = { + u'url': u'http://www.hodiho.fr/2013/02/regis-plante-sa-jeep.html', + u'file': u'13601338388002.mp4', + u'md5': u'85b90ccc9d73b4acd9138d3af4c27f89', + u'info_dict': { + u"uploader": u"www.hodiho.fr", + u"title": u"R\u00e9gis plante sa Jeep" + } + } def report_download_webpage(self, video_id): """Report webpage download.""" @@ -102,7 +110,7 @@ class GenericIE(InfoExtractor): mobj = re.search(r'[^A-Za-z0-9]?(?:file|source)=(http[^\'"&]*)', webpage) if mobj is None: # Broaden the search a little bit: JWPlayer JS loader - mobj = re.search(r'[^A-Za-z0-9]?file:\s*["\'](http[^\'"&]*)', webpage) + mobj = re.search(r'[^A-Za-z0-9]?file["\']?:\s*["\'](http[^\'"&]*)', webpage) if mobj is None: # Try to find twitter cards info mobj = re.search(r'<meta (?:property|name)="twitter:player:stream" (?:content|value)="(.+?)"', webpage) @@ -135,7 +143,7 @@ class GenericIE(InfoExtractor): # Video Title - Tagline | Site Name # and so on and so forth; it's just not practical video_title = self._html_search_regex(r'<title>(.*)</title>', - webpage, u'video title') + webpage, u'video title', default=u'video', flags=re.DOTALL) # video uploader is domain name video_uploader = self._search_regex(r'(?:https?://)?([^/]*)/.*', diff --git a/youtube_dl/extractor/googleplus.py b/youtube_dl/extractor/googleplus.py index ff2cdee..9f7fc19 100644 --- a/youtube_dl/extractor/googleplus.py +++ b/youtube_dl/extractor/googleplus.py @@ -1,3 +1,5 @@ +# coding: utf-8 + import datetime import re @@ -8,10 +10,18 @@ from ..utils import ( class GooglePlusIE(InfoExtractor): - """Information extractor for plus.google.com.""" - + IE_DESC = u'Google Plus' _VALID_URL = r'(?:https://)?plus\.google\.com/(?:[^/]+/)*?posts/(\w+)' IE_NAME = u'plus.google' + _TEST = { + u"url": u"https://plus.google.com/u/0/108897254135232129896/posts/ZButuJc6CtH", + u"file": u"ZButuJc6CtH.flv", + u"info_dict": { + u"upload_date": u"20120613", + u"uploader": u"äºä¸ã¨ã·ããµ", + u"title": u"åãã®å¤©ä½¿ éè¨" + } + } def _real_extract(self, url): # Extract id from URL diff --git a/youtube_dl/extractor/googlesearch.py b/youtube_dl/extractor/googlesearch.py index 21c240e..f9c88e9 100644 --- a/youtube_dl/extractor/googlesearch.py +++ b/youtube_dl/extractor/googlesearch.py @@ -8,7 +8,7 @@ from ..utils import ( class GoogleSearchIE(SearchInfoExtractor): - """Information Extractor for Google Video search queries.""" + IE_DESC = u'Google Video search' _MORE_PAGES_INDICATOR = r'id="pnnext" class="pn"' _MAX_RESULTS = 1000 IE_NAME = u'video.google:search' diff --git a/youtube_dl/extractor/hotnewhiphop.py b/youtube_dl/extractor/hotnewhiphop.py new file mode 100644 index 0000000..ca3abb7 --- /dev/null +++ b/youtube_dl/extractor/hotnewhiphop.py @@ -0,0 +1,48 @@ +import re +import base64 + +from .common import InfoExtractor + + +class HotNewHipHopIE(InfoExtractor): + _VALID_URL = r'http://www\.hotnewhiphop.com/.*\.(?P<id>.*)\.html' + _TEST = { + u'url': u"http://www.hotnewhiphop.com/freddie-gibbs-lay-it-down-song.1435540.html'", + u'file': u'1435540.mp3', + u'md5': u'2c2cd2f76ef11a9b3b581e8b232f3d96', + u'info_dict': { + u"title": u"Freddie Gibbs Songs - Lay It Down" + } + } + + def _real_extract(self, url): + m = re.match(self._VALID_URL, url) + video_id = m.group('id') + + webpage_src = self._download_webpage(url, video_id) + + video_url_base64 = self._search_regex(r'data-path="(.*?)"', + webpage_src, u'video URL', fatal=False) + + if video_url_base64 == None: + video_url = self._search_regex(r'"contentUrl" content="(.*?)"', webpage_src, + u'video URL') + return self.url_result(video_url, ie='Youtube') + + video_url = base64.b64decode(video_url_base64).decode('utf-8') + + video_title = self._html_search_regex(r"<title>(.*)</title>", + webpage_src, u'title') + + # Getting thumbnail and if not thumbnail sets correct title for WSHH candy video. + thumbnail = self._html_search_regex(r'"og:image" content="(.*)"', + webpage_src, u'thumbnail', fatal=False) + + results = [{ + 'id': video_id, + 'url' : video_url, + 'title' : video_title, + 'thumbnail' : thumbnail, + 'ext' : 'mp3', + }] + return results \ No newline at end of file diff --git a/youtube_dl/extractor/howcast.py b/youtube_dl/extractor/howcast.py index 7b94f85..6104c4b 100644 --- a/youtube_dl/extractor/howcast.py +++ b/youtube_dl/extractor/howcast.py @@ -5,6 +5,15 @@ from .common import InfoExtractor class HowcastIE(InfoExtractor): _VALID_URL = r'(?:https?://)?(?:www\.)?howcast\.com/videos/(?P<id>\d+)' + _TEST = { + u'url': u'http://www.howcast.com/videos/390161-How-to-Tie-a-Square-Knot-Properly', + u'file': u'390161.mp4', + u'md5': u'1d7ba54e2c9d7dc6935ef39e00529138', + u'info_dict': { + u"description": u"The square knot, also known as the reef knot, is one of the oldest, most basic knots to tie, and can be used in many different ways. Here's the proper way to tie a square knot.", + u"title": u"How to Tie a Square Knot Properly" + } + } def _real_extract(self, url): mobj = re.match(self._VALID_URL, url) diff --git a/youtube_dl/extractor/hypem.py b/youtube_dl/extractor/hypem.py index ceec4f6..ab2b591 100644 --- a/youtube_dl/extractor/hypem.py +++ b/youtube_dl/extractor/hypem.py @@ -15,6 +15,14 @@ from ..utils import ( class HypemIE(InfoExtractor): """Information Extractor for hypem""" _VALID_URL = r'(?:http://)?(?:www\.)?hypem\.com/track/([^/]+)/([^/]+)' + _TEST = { + u'url': u'http://hypem.com/track/1v6ga/BODYWORK+-+TAME', + u'file': u'1v6ga.mp3', + u'md5': u'b9cc91b5af8995e9f0c1cee04c575828', + u'info_dict': { + u"title": u"Tame" + } + } def _real_extract(self, url): mobj = re.match(self._VALID_URL, url) diff --git a/youtube_dl/extractor/ina.py b/youtube_dl/extractor/ina.py index c19b956..962c592 100644 --- a/youtube_dl/extractor/ina.py +++ b/youtube_dl/extractor/ina.py @@ -6,6 +6,14 @@ from .common import InfoExtractor class InaIE(InfoExtractor): """Information Extractor for Ina.fr""" _VALID_URL = r'(?:http://)?(?:www\.)?ina\.fr/video/(?P<id>I[0-9]+)/.*' + _TEST = { + u'url': u'www.ina.fr/video/I12055569/francois-hollande-je-crois-que-c-est-clair-video.html', + u'file': u'I12055569.mp4', + u'md5': u'a667021bf2b41f8dc6049479d9bb38a3', + u'info_dict': { + u"title": u"Fran\u00e7ois Hollande \"Je crois que c'est clair\"" + } + } def _real_extract(self,url): mobj = re.match(self._VALID_URL, url) diff --git a/youtube_dl/extractor/infoq.py b/youtube_dl/extractor/infoq.py index 9056742..c79c589 100644 --- a/youtube_dl/extractor/infoq.py +++ b/youtube_dl/extractor/infoq.py @@ -11,6 +11,18 @@ from ..utils import ( class InfoQIE(InfoExtractor): _VALID_URL = r'^(?:https?://)?(?:www\.)?infoq\.com/[^/]+/[^/]+$' + _TEST = { + u"name": u"InfoQ", + u"url": u"http://www.infoq.com/presentations/A-Few-of-My-Favorite-Python-Things", + u"file": u"12-jan-pythonthings.mp4", + u"info_dict": { + u"description": u"Mike Pirnat presents some tips and tricks, standard libraries and third party packages that make programming in Python a richer experience.", + u"title": u"A Few of My Favorite [Python] Things" + }, + u"params": { + u"skip_download": True + } + } def _real_extract(self, url): mobj = re.match(self._VALID_URL, url) diff --git a/youtube_dl/extractor/instagram.py b/youtube_dl/extractor/instagram.py new file mode 100644 index 0000000..6ae704e --- /dev/null +++ b/youtube_dl/extractor/instagram.py @@ -0,0 +1,42 @@ +import re + +from .common import InfoExtractor + +class InstagramIE(InfoExtractor): + _VALID_URL = r'(?:http://)?instagram.com/p/(.*?)/' + _TEST = { + u'url': u'http://instagram.com/p/aye83DjauH/#', + u'file': u'aye83DjauH.mp4', + u'md5': u'0d2da106a9d2631273e192b372806516', + u'info_dict': { + u"uploader_id": u"naomipq", + u"title": u"Video by naomipq" + } + } + + def _real_extract(self, url): + mobj = re.match(self._VALID_URL, url) + video_id = mobj.group(1) + webpage = self._download_webpage(url, video_id) + video_url = self._html_search_regex( + r'<meta property="og:video" content="(.+?)"', + webpage, u'video URL') + thumbnail_url = self._html_search_regex( + r'<meta property="og:image" content="(.+?)" />', + webpage, u'thumbnail URL', fatal=False) + html_title = self._html_search_regex( + r'<title>(.+?)</title>', + webpage, u'title', flags=re.DOTALL) + title = re.sub(u'(?: *\(Videos?\))? \u2022 Instagram$', '', html_title).strip() + uploader_id = self._html_search_regex(r'content="(.*?)\'s video on Instagram', + webpage, u'uploader name', fatal=False) + ext = 'mp4' + + return [{ + 'id': video_id, + 'url': video_url, + 'ext': ext, + 'title': title, + 'thumbnail': thumbnail_url, + 'uploader_id' : uploader_id + }] diff --git a/youtube_dl/extractor/justintv.py b/youtube_dl/extractor/justintv.py index b2006e3..f600179 100644 --- a/youtube_dl/extractor/justintv.py +++ b/youtube_dl/extractor/justintv.py @@ -26,6 +26,17 @@ class JustinTVIE(InfoExtractor): """ _JUSTIN_PAGE_LIMIT = 100 IE_NAME = u'justin.tv' + _TEST = { + u'url': u'http://www.twitch.tv/thegamedevhub/b/296128360', + u'file': u'296128360.flv', + u'md5': u'ecaa8a790c22a40770901460af191c9a', + u'info_dict': { + u"upload_date": u"20110927", + u"uploader_id": 25114803, + u"uploader": u"thegamedevhub", + u"title": u"Beginner Series - Scripting With Python Pt.1" + } + } def report_download_page(self, channel, offset): """Report attempt to download a single page of videos.""" diff --git a/youtube_dl/extractor/keek.py b/youtube_dl/extractor/keek.py index e2093a0..72ad6a3 100644 --- a/youtube_dl/extractor/keek.py +++ b/youtube_dl/extractor/keek.py @@ -6,6 +6,15 @@ from .common import InfoExtractor class KeekIE(InfoExtractor): _VALID_URL = r'http://(?:www\.)?keek\.com/(?:!|\w+/keeks/)(?P<videoID>\w+)' IE_NAME = u'keek' + _TEST = { + u'url': u'http://www.keek.com/ytdl/keeks/NODfbab', + u'file': u'NODfbab.mp4', + u'md5': u'9b0636f8c0f7614afa4ea5e4c6e57e83', + u'info_dict': { + u"uploader": u"ytdl", + u"title": u"test chars: \"'/\\\u00e4<>This is a test video for youtube-dl.For more information, contact phihag@phihag.de ." + } + } def _real_extract(self, url): m = re.match(self._VALID_URL, url) diff --git a/youtube_dl/extractor/liveleak.py b/youtube_dl/extractor/liveleak.py index d4b142e..cf8a2c9 100644 --- a/youtube_dl/extractor/liveleak.py +++ b/youtube_dl/extractor/liveleak.py @@ -10,6 +10,16 @@ class LiveLeakIE(InfoExtractor): _VALID_URL = r'^(?:http?://)?(?:\w+\.)?liveleak\.com/view\?(?:.*?)i=(?P<video_id>[\w_]+)(?:.*)' IE_NAME = u'liveleak' + _TEST = { + u'url': u'http://www.liveleak.com/view?i=757_1364311680', + u'file': u'757_1364311680.mp4', + u'md5': u'0813c2430bea7a46bf13acf3406992f4', + u'info_dict': { + u"description": u"extremely bad day for this guy..!", + u"uploader": u"ljfriel2", + u"title": u"Most unlucky car accident" + } + } def _real_extract(self, url): mobj = re.match(self._VALID_URL, url) diff --git a/youtube_dl/extractor/metacafe.py b/youtube_dl/extractor/metacafe.py index 66d6554..4c3f81b 100644 --- a/youtube_dl/extractor/metacafe.py +++ b/youtube_dl/extractor/metacafe.py @@ -20,6 +20,19 @@ class MetacafeIE(InfoExtractor): _DISCLAIMER = 'http://www.metacafe.com/family_filter/' _FILTER_POST = 'http://www.metacafe.com/f/index.php?inputType=filter&controllerGroup=user' IE_NAME = u'metacafe' + _TEST = { + u"add_ie": ["Youtube"], + u"url": u"http://metacafe.com/watch/yt-_aUehQsCQtM/the_electric_company_short_i_pbs_kids_go/", + u"file": u"_aUehQsCQtM.flv", + u"info_dict": { + u"upload_date": u"20090102", + u"title": u"The Electric Company | \"Short I\" | PBS KIDS GO!", + u"description": u"md5:2439a8ef6d5a70e380c22f5ad323e5a8", + u"uploader": u"PBS", + u"uploader_id": u"PBS" + } + } + def report_disclaimer(self): """Report disclaimer retrieval.""" diff --git a/youtube_dl/extractor/myspass.py b/youtube_dl/extractor/myspass.py index 7b016bb..107665d 100644 --- a/youtube_dl/extractor/myspass.py +++ b/youtube_dl/extractor/myspass.py @@ -11,6 +11,15 @@ from ..utils import ( class MySpassIE(InfoExtractor): _VALID_URL = r'http://www.myspass.de/.*' + _TEST = { + u'url': u'http://www.myspass.de/myspass/shows/tvshows/absolute-mehrheit/Absolute-Mehrheit-vom-17022013-Die-Highlights-Teil-2--/11741/', + u'file': u'11741.mp4', + u'md5': u'0b49f4844a068f8b33f4b7c88405862b', + u'info_dict': { + u"description": u"Wer kann in die Fu\u00dfstapfen von Wolfgang Kubicki treten und die Mehrheit der Zuschauer hinter sich versammeln? Wird vielleicht sogar die Absolute Mehrheit geknackt und der Jackpot von 200.000 Euro mit nach Hause genommen?", + u"title": u"Absolute Mehrheit vom 17.02.2013 - Die Highlights, Teil 2" + } + } def _real_extract(self, url): META_DATA_URL_TEMPLATE = 'http://www.myspass.de/myspass/includes/apps/video/getvideometadataxml.php?id=%s' diff --git a/youtube_dl/extractor/myvideo.py b/youtube_dl/extractor/myvideo.py index 47a44e3..b2a7b1d 100644 --- a/youtube_dl/extractor/myvideo.py +++ b/youtube_dl/extractor/myvideo.py @@ -18,6 +18,14 @@ class MyVideoIE(InfoExtractor): _VALID_URL = r'(?:http://)?(?:www\.)?myvideo\.de/watch/([0-9]+)/([^?/]+).*' IE_NAME = u'myvideo' + _TEST = { + u'url': u'http://www.myvideo.de/watch/8229274/bowling_fail_or_win', + u'file': u'8229274.flv', + u'md5': u'2d2753e8130479ba2cb7e0a37002053e', + u'info_dict': { + u"title": u"bowling-fail-or-win" + } + } # Original Code from: https://github.com/dersphere/plugin.video.myvideo_de.git # Released into the Public Domain by Tristan Fischer on 2013-05-19 diff --git a/youtube_dl/extractor/nba.py b/youtube_dl/extractor/nba.py index 296d4cd..122b7dd 100644 --- a/youtube_dl/extractor/nba.py +++ b/youtube_dl/extractor/nba.py @@ -8,6 +8,15 @@ from ..utils import ( class NBAIE(InfoExtractor): _VALID_URL = r'^(?:https?://)?(?:watch\.|www\.)?nba\.com/(?:nba/)?video(/[^?]*?)(?:/index\.html)?(?:\?.*)?$' + _TEST = { + u'url': u'http://www.nba.com/video/games/nets/2012/12/04/0021200253-okc-bkn-recap.nba/index.html', + u'file': u'0021200253-okc-bkn-recap.nba.mp4', + u'md5': u'c0edcfc37607344e2ff8f13c378c88a4', + u'info_dict': { + u"description": u"Kevin Durant scores 32 points and dishes out six assists as the Thunder beat the Nets in Brooklyn.", + u"title": u"Thunder vs. Nets" + } + } def _real_extract(self, url): mobj = re.match(self._VALID_URL, url) diff --git a/youtube_dl/extractor/photobucket.py b/youtube_dl/extractor/photobucket.py index cd7fe6f..305b797 100644 --- a/youtube_dl/extractor/photobucket.py +++ b/youtube_dl/extractor/photobucket.py @@ -16,6 +16,16 @@ class PhotobucketIE(InfoExtractor): # Check if it's necessary to keep the old extracion process _VALID_URL = r'(?:http://)?(?:[a-z0-9]+\.)?photobucket\.com/.*(([\?\&]current=)|_)(?P<id>.*)\.(?P<ext>(flv)|(mp4))' IE_NAME = u'photobucket' + _TEST = { + u'url': u'http://media.photobucket.com/user/rachaneronas/media/TiredofLinkBuildingTryBacklinkMyDomaincom_zpsc0c3b9fa.mp4.html?filters[term]=search&filters[primary]=videos&filters[secondary]=images&sort=1&o=0', + u'file': u'zpsc0c3b9fa.mp4', + u'md5': u'7dabfb92b0a31f6c16cebc0f8e60ff99', + u'info_dict': { + u"upload_date": u"20130504", + u"uploader": u"rachaneronas", + u"title": u"Tired of Link Building? Try BacklinkMyDomain.com!" + } + } def _real_extract(self, url): # Extract id from URL diff --git a/youtube_dl/extractor/pornotube.py b/youtube_dl/extractor/pornotube.py index 0adb40d..add76a1 100644 --- a/youtube_dl/extractor/pornotube.py +++ b/youtube_dl/extractor/pornotube.py @@ -10,6 +10,15 @@ from ..utils import ( class PornotubeIE(InfoExtractor): _VALID_URL = r'^(?:https?://)?(?:\w+\.)?pornotube\.com(/c/(?P<channel>[0-9]+))?(/m/(?P<videoid>[0-9]+))(/(?P<title>.+))$' + _TEST = { + u'url': u'http://pornotube.com/c/173/m/1689755/Marilyn-Monroe-Bathing', + u'file': u'1689755.flv', + u'md5': u'374dd6dcedd24234453b295209aa69b6', + u'info_dict': { + u"upload_date": u"20090708", + u"title": u"Marilyn-Monroe-Bathing" + } + } def _real_extract(self, url): mobj = re.match(self._VALID_URL, url) diff --git a/youtube_dl/extractor/rbmaradio.py b/youtube_dl/extractor/rbmaradio.py index 0c75eee..4b6147a 100644 --- a/youtube_dl/extractor/rbmaradio.py +++ b/youtube_dl/extractor/rbmaradio.py @@ -11,6 +11,18 @@ from ..utils import ( class RBMARadioIE(InfoExtractor): _VALID_URL = r'https?://(?:www\.)?rbmaradio\.com/shows/(?P<videoID>[^/]+)$' + _TEST = { + u'url': u'http://www.rbmaradio.com/shows/ford-lopatin-live-at-primavera-sound-2011', + u'file': u'ford-lopatin-live-at-primavera-sound-2011.mp3', + u'md5': u'6bc6f9bcb18994b4c983bc3bf4384d95', + u'info_dict': { + u"uploader_id": u"ford-lopatin", + u"location": u"Spain", + u"description": u"Joel Ford and Daniel \u2019Oneohtrix Point Never\u2019 Lopatin fly their midified pop extravaganza to Spain. Live at Primavera Sound 2011.", + u"uploader": u"Ford & Lopatin", + u"title": u"Live at Primavera Sound 2011" + } + } def _real_extract(self, url): m = re.match(self._VALID_URL, url) diff --git a/youtube_dl/extractor/redtube.py b/youtube_dl/extractor/redtube.py index ebc4e23..1d2cf1f 100644 --- a/youtube_dl/extractor/redtube.py +++ b/youtube_dl/extractor/redtube.py @@ -5,6 +5,14 @@ from .common import InfoExtractor class RedTubeIE(InfoExtractor): _VALID_URL = r'(?:http://)?(?:www\.)?redtube\.com/(?P<id>[0-9]+)' + _TEST = { + u'url': u'http://www.redtube.com/66418', + u'file': u'66418.mp4', + u'md5': u'7b8c22b5e7098a3e1c09709df1126d2d', + u'info_dict': { + u"title": u"Sucked on a toilet" + } + } def _real_extract(self,url): mobj = re.match(self._VALID_URL, url) diff --git a/youtube_dl/extractor/ringtv.py b/youtube_dl/extractor/ringtv.py new file mode 100644 index 0000000..1b08c31 --- /dev/null +++ b/youtube_dl/extractor/ringtv.py @@ -0,0 +1,37 @@ +import re + +from .common import InfoExtractor + + +class RingTVIE(InfoExtractor): + _VALID_URL = r'(?:http://)?(?:www\.)?ringtv\.craveonline\.com/videos/video/([^/]+)' + _TEST = { + u"url": u"http://ringtv.craveonline.com/videos/video/746619-canelo-alvarez-talks-about-mayweather-showdown", + u"file": u"746619.mp4", + u"md5": u"7c46b4057d22de32e0a539f017e64ad3", + u"info_dict": { + u"title": u"Canelo Alvarez talks about Mayweather showdown", + u"description": u"Saul \\\"Canelo\\\" Alvarez spoke to the media about his Sept. 14 showdown with Floyd Mayweather after their kick-off presser in NYC. Canelo is motivated and confident that he will have the speed and gameplan to beat the pound-for-pound king." + } + } + + def _real_extract(self, url): + mobj = re.match(self._VALID_URL, url) + video_id = mobj.group(1).split('-')[0] + webpage = self._download_webpage(url, video_id) + title = self._search_regex(r'<title>(.+?)</title>', + webpage, 'video title').replace(' | RingTV','') + description = self._search_regex(r'<div class="blurb">(.+?)</div>', + webpage, 'Description') + final_url = "http://ringtv.craveonline.springboardplatform.com/storage/ringtv.craveonline.com/conversion/%s.mp4" %(str(video_id)) + thumbnail_url = "http://ringtv.craveonline.springboardplatform.com/storage/ringtv.craveonline.com/snapshots/%s.jpg" %(str(video_id)) + ext = final_url.split('.')[-1] + return [{ + 'id' : video_id, + 'url' : final_url, + 'ext' : ext, + 'title' : title, + 'thumbnail' : thumbnail_url, + 'description' : description, + }] + diff --git a/youtube_dl/extractor/soundcloud.py b/youtube_dl/extractor/soundcloud.py index 80d7e1b..d47c49c 100644 --- a/youtube_dl/extractor/soundcloud.py +++ b/youtube_dl/extractor/soundcloud.py @@ -19,8 +19,19 @@ class SoundcloudIE(InfoExtractor): of the stream token and uid """ - _VALID_URL = r'^(?:https?://)?(?:www\.)?soundcloud\.com/([\w\d-]+)/([\w\d-]+)' + _VALID_URL = r'^(?:https?://)?(?:www\.)?soundcloud\.com/([\w\d-]+)/([\w\d-]+)(?:[?].*)?$' IE_NAME = u'soundcloud' + _TEST = { + u'url': u'http://soundcloud.com/ethmusic/lostin-powers-she-so-heavy', + u'file': u'62986583.mp3', + u'md5': u'ebef0a451b909710ed1d7787dddbf0d7', + u'info_dict': { + u"upload_date": u"20121011", + u"description": u"No Downloads untill we record the finished version this weekend, i was too pumped n i had to post it , earl is prolly gonna b hella p.o'd", + u"uploader": u"E.T. ExTerrestrial Music", + u"title": u"Lostin Powers - She so Heavy (SneakPreview) Adrian Ackers Blueprint 1" + } + } def report_resolve(self, video_id): """Report information extraction.""" @@ -75,8 +86,72 @@ class SoundcloudSetIE(InfoExtractor): of the stream token and uid """ - _VALID_URL = r'^(?:https?://)?(?:www\.)?soundcloud\.com/([\w\d-]+)/sets/([\w\d-]+)' + _VALID_URL = r'^(?:https?://)?(?:www\.)?soundcloud\.com/([\w\d-]+)/sets/([\w\d-]+)(?:[?].*)?$' IE_NAME = u'soundcloud:set' + _TEST = { + u"url":"https://soundcloud.com/the-concept-band/sets/the-royal-concept-ep", + u"playlist": [ + { + u"file":"30510138.mp3", + u"md5":"f9136bf103901728f29e419d2c70f55d", + u"info_dict": { + u"upload_date": u"20111213", + u"description": u"The Royal Concept from Stockholm\r\nFilip / Povel / David / Magnus\r\nwww.royalconceptband.com", + u"uploader": u"The Royal Concept", + u"title": u"D-D-Dance" + } + }, + { + u"file":"47127625.mp3", + u"md5":"09b6758a018470570f8fd423c9453dd8", + u"info_dict": { + u"upload_date": u"20120521", + u"description": u"The Royal Concept from Stockholm\r\nFilip / Povel / David / Magnus\r\nwww.royalconceptband.com", + u"uploader": u"The Royal Concept", + u"title": u"The Royal Concept - Gimme Twice" + } + }, + { + u"file":"47127627.mp3", + u"md5":"154abd4e418cea19c3b901f1e1306d9c", + u"info_dict": { + u"upload_date": u"20120521", + u"uploader": u"The Royal Concept", + u"title": u"Goldrushed" + } + }, + { + u"file":"47127629.mp3", + u"md5":"2f5471edc79ad3f33a683153e96a79c1", + u"info_dict": { + u"upload_date": u"20120521", + u"description": u"The Royal Concept from Stockholm\r\nFilip / Povel / David / Magnus\r\nwww.royalconceptband.com", + u"uploader": u"The Royal Concept", + u"title": u"In the End" + } + }, + { + u"file":"47127631.mp3", + u"md5":"f9ba87aa940af7213f98949254f1c6e2", + u"info_dict": { + u"upload_date": u"20120521", + u"description": u"The Royal Concept from Stockholm\r\nFilip / David / Povel / Magnus\r\nwww.theroyalconceptband.com", + u"uploader": u"The Royal Concept", + u"title": u"Knocked Up" + } + }, + { + u"file":"75206121.mp3", + u"md5":"f9d1fe9406717e302980c30de4af9353", + u"info_dict": { + u"upload_date": u"20130116", + u"description": u"The unreleased track World on Fire premiered on the CW's hit show Arrow (8pm/7pm central). \r\nAs a gift to our fans we would like to offer you a free download of the track! ", + u"uploader": u"The Royal Concept", + u"title": u"World On Fire" + } + } + ] + } def report_resolve(self, video_id): """Report information extraction.""" diff --git a/youtube_dl/extractor/spiegel.py b/youtube_dl/extractor/spiegel.py index 98a65b7..13c8640 100644 --- a/youtube_dl/extractor/spiegel.py +++ b/youtube_dl/extractor/spiegel.py @@ -6,6 +6,14 @@ from .common import InfoExtractor class SpiegelIE(InfoExtractor): _VALID_URL = r'https?://(?:www\.)?spiegel\.de/video/[^/]*-(?P<videoID>[0-9]+)(?:\.html)?(?:#.*)?$' + _TEST = { + u'url': u'http://www.spiegel.de/video/vulkan-tungurahua-in-ecuador-ist-wieder-aktiv-video-1259285.html', + u'file': u'1259285.mp4', + u'md5': u'2c2754212136f35fb4b19767d242f66e', + u'info_dict': { + u"title": u"Vulkanausbruch in Ecuador: Der \"Feuerschlund\" ist wieder aktiv" + } + } def _real_extract(self, url): m = re.match(self._VALID_URL, url) diff --git a/youtube_dl/extractor/stanfordoc.py b/youtube_dl/extractor/stanfordoc.py index 8d3e32a..b27838b 100644 --- a/youtube_dl/extractor/stanfordoc.py +++ b/youtube_dl/extractor/stanfordoc.py @@ -16,10 +16,17 @@ from ..utils import ( class StanfordOpenClassroomIE(InfoExtractor): - """Information extractor for Stanford's Open ClassRoom""" - - _VALID_URL = r'^(?:https?://)?openclassroom.stanford.edu(?P<path>/?|(/MainFolder/(?:HomePage|CoursePage|VideoPage)\.php([?]course=(?P<course>[^&]+)(&video=(?P<video>[^&]+))?(&.*)?)?))$' IE_NAME = u'stanfordoc' + IE_DESC = u'Stanford Open ClassRoom' + _VALID_URL = r'^(?:https?://)?openclassroom.stanford.edu(?P<path>/?|(/MainFolder/(?:HomePage|CoursePage|VideoPage)\.php([?]course=(?P<course>[^&]+)(&video=(?P<video>[^&]+))?(&.*)?)?))$' + _TEST = { + u'url': u'http://openclassroom.stanford.edu/MainFolder/VideoPage.php?course=PracticalUnix&video=intro-environment&speed=100', + u'file': u'PracticalUnix_intro-environment.mp4', + u'md5': u'544a9468546059d4e80d76265b0443b8', + u'info_dict': { + u"title": u"Intro Environment" + } + } def _real_extract(self, url): mobj = re.match(self._VALID_URL, url) diff --git a/youtube_dl/extractor/statigram.py b/youtube_dl/extractor/statigram.py index 95d2ee3..ae9a63e 100644 --- a/youtube_dl/extractor/statigram.py +++ b/youtube_dl/extractor/statigram.py @@ -4,6 +4,15 @@ from .common import InfoExtractor class StatigramIE(InfoExtractor): _VALID_URL = r'(?:http://)?(?:www\.)?statigr\.am/p/([^/]+)' + _TEST = { + u'url': u'http://statigr.am/p/484091715184808010_284179915', + u'file': u'484091715184808010_284179915.mp4', + u'md5': u'deda4ff333abe2e118740321e992605b', + u'info_dict': { + u"uploader_id": u"videoseconds", + u"title": u"Instagram photo by @videoseconds" + } + } def _real_extract(self, url): mobj = re.match(self._VALID_URL, url) @@ -18,7 +27,7 @@ class StatigramIE(InfoExtractor): html_title = self._html_search_regex( r'<title>(.+?)</title>', webpage, u'title') - title = html_title.rpartition(u' | Statigram')[0] + title = re.sub(r'(?: *\(Videos?\))? \| Statigram$', '', html_title) uploader_id = self._html_search_regex( r'@([^ ]+)', title, u'uploader name', fatal=False) ext = 'mp4' diff --git a/youtube_dl/extractor/steam.py b/youtube_dl/extractor/steam.py index 30cb832..ecac4ec 100644 --- a/youtube_dl/extractor/steam.py +++ b/youtube_dl/extractor/steam.py @@ -16,6 +16,26 @@ class SteamIE(InfoExtractor): """ _VIDEO_PAGE_TEMPLATE = 'http://store.steampowered.com/video/%s/' _AGECHECK_TEMPLATE = 'http://store.steampowered.com/agecheck/video/%s/?snr=1_agecheck_agecheck__age-gate&ageDay=1&ageMonth=January&ageYear=1970' + _TEST = { + u"url": u"http://store.steampowered.com/video/105600/", + u"playlist": [ + { + u"file": u"81300.flv", + u"md5": u"f870007cee7065d7c76b88f0a45ecc07", + u"info_dict": { + u"title": u"Terraria 1.1 Trailer" + } + }, + { + u"file": u"80859.flv", + u"md5": u"61aaf31a5c5c3041afb58fb83cbb5751", + u"info_dict": { + u"title": u"Terraria Trailer" + } + } + ] + } + @classmethod def suitable(cls, url): diff --git a/youtube_dl/extractor/teamcoco.py b/youtube_dl/extractor/teamcoco.py index 092ac74..1dd5e1b 100644 --- a/youtube_dl/extractor/teamcoco.py +++ b/youtube_dl/extractor/teamcoco.py @@ -8,6 +8,15 @@ from ..utils import ( class TeamcocoIE(InfoExtractor): _VALID_URL = r'http://teamcoco\.com/video/(?P<url_title>.*)' + _TEST = { + u'url': u'http://teamcoco.com/video/louis-ck-interview-george-w-bush', + u'file': u'19705.mp4', + u'md5': u'27b6f7527da5acf534b15f21b032656e', + u'info_dict': { + u"description": u"Louis C.K. got starstruck by George W. Bush, so what? Part one.", + u"title": u"Louis C.K. Interview Pt. 1 11/3/11" + } + } def _real_extract(self, url): mobj = re.match(self._VALID_URL, url) diff --git a/youtube_dl/extractor/ted.py b/youtube_dl/extractor/ted.py index ccad1c7..8b73b83 100644 --- a/youtube_dl/extractor/ted.py +++ b/youtube_dl/extractor/ted.py @@ -14,6 +14,15 @@ class TEDIE(InfoExtractor): (/lang/(.*?))? # The url may contain the language /(?P<name>\w+) # Here goes the name and then ".html" ''' + _TEST = { + u'url': u'http://www.ted.com/talks/dan_dennett_on_our_consciousness.html', + u'file': u'102.mp4', + u'md5': u'2d76ee1576672e0bd8f187513267adf6', + u'info_dict': { + u"description": u"md5:c6fa72e6eedbd938c9caf6b2702f5922", + u"title": u"Dan Dennett: The illusion of consciousness" + } + } @classmethod def suitable(cls, url): diff --git a/youtube_dl/extractor/tf1.py b/youtube_dl/extractor/tf1.py new file mode 100644 index 0000000..e0ffece --- /dev/null +++ b/youtube_dl/extractor/tf1.py @@ -0,0 +1,35 @@ +# coding: utf-8 + +import json +import re + +from .common import InfoExtractor + +class TF1IE(InfoExtractor): + """ + TF1 uses the wat.tv player, currently it can only download videos with the + html5 player enabled, it cannot download HD videos. + """ + _VALID_URL = r'http://videos.tf1.fr/.*-(.*?).html' + _TEST = { + u'url': u'http://videos.tf1.fr/auto-moto/citroen-grand-c4-picasso-2013-presentation-officielle-8062060.html', + u'file': u'10635995.mp4', + u'md5': u'66789d3e91278d332f75e1feb7aea327', + u'info_dict': { + u'title': u'Citroën Grand C4 Picasso 2013 : présentation officielle', + u'description': u'Vidéo officielle du nouveau Citroën Grand C4 Picasso, lancé à l\'automne 2013.', + } + } + + def _real_extract(self, url): + mobj = re.match(self._VALID_URL, url) + id = mobj.group(1) + webpage = self._download_webpage(url, id) + embed_url = self._html_search_regex(r'"(https://www.wat.tv/embedframe/.*?)"', + webpage, 'embed url') + embed_page = self._download_webpage(embed_url, id, u'Downloading embed player page') + wat_id = self._search_regex(r'UVID=(.*?)&', embed_page, 'wat id') + wat_info = self._download_webpage('http://www.wat.tv/interface/contentv3/%s' % wat_id, id, u'Downloading Wat info') + wat_info = json.loads(wat_info)['media'] + wat_url = wat_info['url'] + return self.url_result(wat_url, 'Wat') diff --git a/youtube_dl/extractor/traileraddict.py b/youtube_dl/extractor/traileraddict.py new file mode 100644 index 0000000..9dd26c1 --- /dev/null +++ b/youtube_dl/extractor/traileraddict.py @@ -0,0 +1,49 @@ +import re + +from .common import InfoExtractor + + +class TrailerAddictIE(InfoExtractor): + _VALID_URL = r'(?:http://)?(?:www\.)?traileraddict\.com/trailer/([^/]+)/(?:trailer|feature-trailer)' + _TEST = { + u'url': u'http://www.traileraddict.com/trailer/prince-avalanche/trailer', + u'file': u'76184.mp4', + u'md5': u'41365557f3c8c397d091da510e73ceb4', + u'info_dict': { + u"title": u"Prince Avalanche Trailer", + u"description": u"Trailer for Prince Avalanche.Two highway road workers spend the summer of 1988 away from their city lives. The isolated landscape becomes a place of misadventure as the men find themselves at odds with each other and the women they left behind." + } + } + + def _real_extract(self, url): + mobj = re.match(self._VALID_URL, url) + video_id = mobj.group(1) + webpage = self._download_webpage(url, video_id) + + title = self._search_regex(r'<title>(.+?)</title>', + webpage, 'video title').replace(' - Trailer Addict','') + view_count = self._search_regex(r'Views: (.+?)<br />', + webpage, 'Views Count') + description = self._search_regex(r'<meta property="og:description" content="(.+?)" />', + webpage, 'video description') + video_id = self._search_regex(r'<meta property="og:video" content="(.+?)" />', + webpage, 'Video id').split('=')[1] + + info_url = "http://www.traileraddict.com/fvar.php?tid=%s" %(str(video_id)) + info_webpage = self._download_webpage(info_url, video_id , "Downloading the info webpage") + + final_url = self._search_regex(r'&fileurl=(.+)', + info_webpage, 'Download url').replace('%3F','?') + thumbnail_url = self._search_regex(r'&image=(.+?)&', + info_webpage, 'thumbnail url') + ext = final_url.split('.')[-1].split('?')[0] + + return [{ + 'id' : video_id, + 'url' : final_url, + 'ext' : ext, + 'title' : title, + 'thumbnail' : thumbnail_url, + 'description' : description, + 'view_count' : view_count, + }] diff --git a/youtube_dl/extractor/tudou.py b/youtube_dl/extractor/tudou.py index 9ca860a..4681a6f 100644 --- a/youtube_dl/extractor/tudou.py +++ b/youtube_dl/extractor/tudou.py @@ -5,6 +5,14 @@ from .common import InfoExtractor class TudouIE(InfoExtractor): _VALID_URL = r'(?:http://)?(?:www\.)?tudou\.com/(?:listplay|programs)/(?:view|(.+?))/(?:([^/]+)|([^/]+)\.html)' + _TEST = { + u'url': u'http://www.tudou.com/listplay/zzdE77v6Mmo/2xN2duXMxmw.html', + u'file': u'159447792.f4v', + u'md5': u'ad7c358a01541e926a1e413612c6b10a', + u'info_dict': { + u"title": u"\u5361\u9a6c\u4e54\u56fd\u8db3\u5f00\u5927\u811a\u957f\u4f20\u51b2\u540a\u96c6\u9526" + } + } def _real_extract(self, url): mobj = re.match(self._VALID_URL, url) diff --git a/youtube_dl/extractor/tumblr.py b/youtube_dl/extractor/tumblr.py index b0851b4..ad5840c 100644 --- a/youtube_dl/extractor/tumblr.py +++ b/youtube_dl/extractor/tumblr.py @@ -8,6 +8,14 @@ from ..utils import ( class TumblrIE(InfoExtractor): _VALID_URL = r'http://(?P<blog_name>.*?)\.tumblr\.com/((post)|(video))/(?P<id>\d*)/(.*?)' + _TEST = { + u'url': u'http://tatianamaslanydaily.tumblr.com/post/54196191430/orphan-black-dvd-extra-behind-the-scenes', + u'file': u'54196191430.mp4', + u'md5': u'479bb068e5b16462f5176a6828829767', + u'info_dict': { + u"title": u"tatiana maslany news" + } + } def _real_extract(self, url): m_url = re.match(self._VALID_URL, url) @@ -30,7 +38,7 @@ class TumblrIE(InfoExtractor): # The only place where you can get a title, it's not complete, # but searching in other places doesn't work for all videos - video_title = self._html_search_regex(r'<title>(?P<title>.*?)</title>', + video_title = self._html_search_regex(r'<title>(?P<title>.*?)(?: \| Tumblr)?</title>', webpage, u'title', flags=re.DOTALL) return [{'id': video_id, diff --git a/youtube_dl/extractor/tutv.py b/youtube_dl/extractor/tutv.py new file mode 100644 index 0000000..fcaa6ac --- /dev/null +++ b/youtube_dl/extractor/tutv.py @@ -0,0 +1,41 @@ +import base64 +import re + +from .common import InfoExtractor +from ..utils import ( + compat_parse_qs, +) + +class TutvIE(InfoExtractor): + _VALID_URL=r'https?://(?:www\.)?tu\.tv/videos/(?P<id>[^/?]+)' + _TEST = { + u'url': u'http://tu.tv/videos/noah-en-pabellon-cuahutemoc', + u'file': u'2742556.flv', + u'md5': u'5eb766671f69b82e528dc1e7769c5cb2', + u'info_dict': { + u"title": u"Noah en pabellon cuahutemoc" + } + } + + def _real_extract(self, url): + mobj = re.match(self._VALID_URL, url) + video_id = mobj.group('id') + + webpage = self._download_webpage(url, video_id) + title = self._html_search_regex( + r'<meta property="og:title" content="(.*?)">', webpage, u'title') + internal_id = self._search_regex(r'codVideo=([0-9]+)', webpage, u'internal video ID') + + data_url = u'http://tu.tv/flvurl.php?codVideo=' + str(internal_id) + data_content = self._download_webpage(data_url, video_id, note=u'Downloading video info') + data = compat_parse_qs(data_content) + video_url = base64.b64decode(data['kpt'][0]).decode('utf-8') + ext = video_url.partition(u'?')[0].rpartition(u'.')[2] + + info = { + 'id': internal_id, + 'url': video_url, + 'ext': ext, + 'title': title, + } + return [info] diff --git a/youtube_dl/extractor/ustream.py b/youtube_dl/extractor/ustream.py index cfe3a68..5f42387 100644 --- a/youtube_dl/extractor/ustream.py +++ b/youtube_dl/extractor/ustream.py @@ -6,6 +6,15 @@ from .common import InfoExtractor class UstreamIE(InfoExtractor): _VALID_URL = r'https?://www\.ustream\.tv/recorded/(?P<videoID>\d+)' IE_NAME = u'ustream' + _TEST = { + u'url': u'http://www.ustream.tv/recorded/20274954', + u'file': u'20274954.flv', + u'md5': u'088f151799e8f572f84eb62f17d73e5c', + u'info_dict': { + u"uploader": u"Young Americans for Liberty", + u"title": u"Young Americans for Liberty February 7, 2012 2:28 AM" + } + } def _real_extract(self, url): m = re.match(self._VALID_URL, url) diff --git a/youtube_dl/extractor/vbox7.py b/youtube_dl/extractor/vbox7.py index 2f3ce46..4f803bc 100644 --- a/youtube_dl/extractor/vbox7.py +++ b/youtube_dl/extractor/vbox7.py @@ -12,6 +12,14 @@ from ..utils import ( class Vbox7IE(InfoExtractor): """Information Extractor for Vbox7""" _VALID_URL = r'(?:http://)?(?:www\.)?vbox7\.com/play:([^/]+)' + _TEST = { + u'url': u'http://vbox7.com/play:249bb972c2', + u'file': u'249bb972c2.flv', + u'md5': u'9c70d6d956f888bdc08c124acc120cfe', + u'info_dict': { + u"title": u"\u0421\u043c\u044f\u0445! \u0427\u0443\u0434\u043e - \u0447\u0438\u0441\u0442 \u0437\u0430 \u0441\u0435\u043a\u0443\u043d\u0434\u0438 - \u0421\u043a\u0440\u0438\u0442\u0430 \u043a\u0430\u043c\u0435\u0440\u0430" + } + } def _real_extract(self,url): mobj = re.match(self._VALID_URL, url) diff --git a/youtube_dl/extractor/vevo.py b/youtube_dl/extractor/vevo.py index 49a249a..3b16dcf 100644 --- a/youtube_dl/extractor/vevo.py +++ b/youtube_dl/extractor/vevo.py @@ -12,6 +12,16 @@ class VevoIE(InfoExtractor): (currently used by MTVIE) """ _VALID_URL = r'((http://www.vevo.com/watch/.*?/.*?/)|(vevo:))(?P<id>.*)$' + _TEST = { + u'url': u'http://www.vevo.com/watch/hurts/somebody-to-die-for/GB1101300280', + u'file': u'GB1101300280.mp4', + u'md5': u'06bea460acb744eab74a9d7dcb4bfd61', + u'info_dict': { + u"upload_date": u"20130624", + u"uploader": u"Hurts", + u"title": u"Somebody To Die For" + } + } def _real_extract(self, url): mobj = re.match(self._VALID_URL, url) diff --git a/youtube_dl/extractor/vimeo.py b/youtube_dl/extractor/vimeo.py index 20dc255..7c45627 100644 --- a/youtube_dl/extractor/vimeo.py +++ b/youtube_dl/extractor/vimeo.py @@ -16,8 +16,20 @@ class VimeoIE(InfoExtractor): """Information extractor for vimeo.com.""" # _VALID_URL matches Vimeo URLs - _VALID_URL = r'(?P<proto>https?://)?(?:(?:www|player)\.)?vimeo(?P<pro>pro)?\.com/(?:(?:(?:groups|album)/[^/]+)|(?:.*?)/)?(?P<direct_link>play_redirect_hls\?clip_id=)?(?:videos?/)?(?P<id>[0-9]+)' + _VALID_URL = r'(?P<proto>https?://)?(?:(?:www|player)\.)?vimeo(?P<pro>pro)?\.com/(?:(?:(?:groups|album)/[^/]+)|(?:.*?)/)?(?P<direct_link>play_redirect_hls\?clip_id=)?(?:videos?/)?(?P<id>[0-9]+)(?:[?].*)?$' IE_NAME = u'vimeo' + _TEST = { + u'url': u'http://vimeo.com/56015672', + u'file': u'56015672.mp4', + u'md5': u'8879b6cc097e987f02484baf890129e5', + u'info_dict': { + u"upload_date": u"20121220", + u"description": u"This is a test case for youtube-dl.\nFor more information, see github.com/rg3/youtube-dl\nTest chars: \u2605 \" ' \u5e78 / \\ \u00e4 \u21ad \U0001d550", + u"uploader_id": u"user7108434", + u"uploader": u"Filippo Valsorda", + u"title": u"youtube-dl test video - \u2605 \" ' \u5e78 / \\ \u00e4 \u21ad \U0001d550" + } + } def _verify_video_password(self, url, video_id, webpage): password = self._downloader.params.get('videopassword', None) diff --git a/youtube_dl/extractor/vine.py b/youtube_dl/extractor/vine.py index b44b1cb..bdd3522 100644 --- a/youtube_dl/extractor/vine.py +++ b/youtube_dl/extractor/vine.py @@ -5,6 +5,15 @@ from .common import InfoExtractor class VineIE(InfoExtractor): _VALID_URL = r'(?:https?://)?(?:www\.)?vine\.co/v/(?P<id>\w+)' + _TEST = { + u'url': u'https://vine.co/v/b9KOOWX7HUx', + u'file': u'b9KOOWX7HUx.mp4', + u'md5': u'2f36fed6235b16da96ce9b4dc890940d', + u'info_dict': { + u"uploader": u"Jack Dorsey", + u"title": u"Chicken." + } + } def _real_extract(self, url): mobj = re.match(self._VALID_URL, url) diff --git a/youtube_dl/extractor/wat.py b/youtube_dl/extractor/wat.py new file mode 100644 index 0000000..0d1302c --- /dev/null +++ b/youtube_dl/extractor/wat.py @@ -0,0 +1,84 @@ +# coding: utf-8 + +import json +import re + +from .common import InfoExtractor + +from ..utils import ( + compat_urllib_parse, + unified_strdate, +) + + +class WatIE(InfoExtractor): + _VALID_URL=r'http://www.wat.tv/.*-(?P<shortID>.*?)_.*?.html' + IE_NAME = 'wat.tv' + _TEST = { + u'url': u'http://www.wat.tv/video/world-war-philadelphia-vost-6bv55_2fjr7_.html', + u'file': u'10631273.mp4', + u'md5': u'0a4fe7870f31eaeabb5e25fd8da8414a', + u'info_dict': { + u'title': u'World War Z - Philadelphia VOST', + u'description': u'La menace est partout. Que se passe-t-il à Philadelphia ?\r\nWORLD WAR Z, avec Brad Pitt, au cinéma le 3 juillet.\r\nhttp://www.worldwarz.fr', + } + } + + def download_video_info(self, real_id): + # 'contentv4' is used in the website, but it also returns the related + # videos, we don't need them + info = self._download_webpage('http://www.wat.tv/interface/contentv3/' + real_id, real_id, 'Downloading video info') + info = json.loads(info) + return info['media'] + + + def _real_extract(self, url): + def real_id_for_chapter(chapter): + return chapter['tc_start'].split('-')[0] + mobj = re.match(self._VALID_URL, url) + short_id = mobj.group('shortID') + webpage = self._download_webpage(url, short_id) + real_id = self._search_regex(r'xtpage = ".*-(.*?)";', webpage, 'real id') + + video_info = self.download_video_info(real_id) + chapters = video_info['chapters'] + first_chapter = chapters[0] + + if real_id_for_chapter(first_chapter) != real_id: + self.to_screen('Multipart video detected') + chapter_urls = [] + for chapter in chapters: + chapter_id = real_id_for_chapter(chapter) + # Yes, when we this chapter is processed by WatIE, + # it will download the info again + chapter_info = self.download_video_info(chapter_id) + chapter_urls.append(chapter_info['url']) + entries = [self.url_result(chapter_url) for chapter_url in chapter_urls] + return self.playlist_result(entries, real_id, video_info['title']) + + # Otherwise we can continue and extract just one part, we have to use + # the short id for getting the video url + player_data = compat_urllib_parse.urlencode({'shortVideoId': short_id, + 'html5': '1'}) + player_info = self._download_webpage('http://www.wat.tv/player?' + player_data, + real_id, u'Downloading player info') + player = json.loads(player_info)['player'] + html5_player = self._html_search_regex(r'iframe src="(.*?)"', player, + 'html5 player') + player_webpage = self._download_webpage(html5_player, real_id, + u'Downloading player webpage') + + video_url = self._search_regex(r'urlhtml5 : "(.*?)"', player_webpage, + 'video url') + info = {'id': real_id, + 'url': video_url, + 'ext': 'mp4', + 'title': first_chapter['title'], + 'thumbnail': first_chapter['preview'], + 'description': first_chapter['description'], + 'view_count': video_info['views'], + } + if 'date_diffusion' in first_chapter: + info['upload_date'] = unified_strdate(first_chapter['date_diffusion']) + + return info diff --git a/youtube_dl/extractor/wimp.py b/youtube_dl/extractor/wimp.py index 84f065a..b9c3b13 100644 --- a/youtube_dl/extractor/wimp.py +++ b/youtube_dl/extractor/wimp.py @@ -6,6 +6,14 @@ from .common import InfoExtractor class WimpIE(InfoExtractor): _VALID_URL = r'(?:http://)?(?:www\.)?wimp\.com/([^/]+)/' + _TEST = { + u'url': u'http://www.wimp.com/deerfence/', + u'file': u'deerfence.flv', + u'md5': u'8b215e2e0168c6081a1cf84b2846a2b5', + u'info_dict': { + u"title": u"Watch Till End: Herd of deer jump over a fence." + } + } def _real_extract(self, url): mobj = re.match(self._VALID_URL, url) diff --git a/youtube_dl/extractor/worldstarhiphop.py b/youtube_dl/extractor/worldstarhiphop.py index 531d088..5b9779c 100644 --- a/youtube_dl/extractor/worldstarhiphop.py +++ b/youtube_dl/extractor/worldstarhiphop.py @@ -5,7 +5,15 @@ from .common import InfoExtractor class WorldStarHipHopIE(InfoExtractor): _VALID_URL = r'https?://(?:www|m)\.worldstar(?:candy|hiphop)\.com/videos/video\.php\?v=(?P<id>.*)' - IE_NAME = u'WorldStarHipHop' + _TEST = { + "url": "http://www.worldstarhiphop.com/videos/video.php?v=wshh6a7q1ny0G34ZwuIO", + "file": "wshh6a7q1ny0G34ZwuIO.mp4", + "md5": "9d04de741161603bf7071bbf4e883186", + "info_dict": { + "title": "Video: KO Of The Week: MMA Fighter Gets Knocked Out By Swift Head Kick!" + } + } + def _real_extract(self, url): m = re.match(self._VALID_URL, url) diff --git a/youtube_dl/extractor/xhamster.py b/youtube_dl/extractor/xhamster.py index 0013509..0f1feef 100644 --- a/youtube_dl/extractor/xhamster.py +++ b/youtube_dl/extractor/xhamster.py @@ -11,6 +11,16 @@ from ..utils import ( class XHamsterIE(InfoExtractor): """Information Extractor for xHamster""" _VALID_URL = r'(?:http://)?(?:www.)?xhamster\.com/movies/(?P<id>[0-9]+)/.*\.html' + _TEST = { + u'url': u'http://xhamster.com/movies/1509445/femaleagent_shy_beauty_takes_the_bait.html', + u'file': u'1509445.flv', + u'md5': u'9f48e0e8d58e3076bb236ff412ab62fa', + u'info_dict': { + u"upload_date": u"20121014", + u"uploader_id": u"Ruseful2011", + u"title": u"FemaleAgent Shy beauty takes the bait" + } + } def _real_extract(self,url): mobj = re.match(self._VALID_URL, url) diff --git a/youtube_dl/extractor/xnxx.py b/youtube_dl/extractor/xnxx.py index 68acb84..40d8489 100644 --- a/youtube_dl/extractor/xnxx.py +++ b/youtube_dl/extractor/xnxx.py @@ -13,6 +13,14 @@ class XNXXIE(InfoExtractor): VIDEO_URL_RE = r'flv_url=(.*?)&' VIDEO_TITLE_RE = r'<title>(.*?)\s+-\s+XNXX.COM' VIDEO_THUMB_RE = r'url_bigthumb=(.*?)&' + _TEST = { + u'url': u'http://video.xnxx.com/video1135332/lida_naked_funny_actress_5_', + u'file': u'1135332.flv', + u'md5': u'0831677e2b4761795f68d417e0b7b445', + u'info_dict': { + u"title": u"lida \u00bb Naked Funny Actress (5)" + } + } def _real_extract(self, url): mobj = re.match(self._VALID_URL, url) diff --git a/youtube_dl/extractor/xvideos.py b/youtube_dl/extractor/xvideos.py index 8b3cb39..c3b9736 100644 --- a/youtube_dl/extractor/xvideos.py +++ b/youtube_dl/extractor/xvideos.py @@ -8,6 +8,14 @@ from ..utils import ( class XVideosIE(InfoExtractor): _VALID_URL = r'^(?:https?://)?(?:www\.)?xvideos\.com/video([0-9]+)(?:.*)' + _TEST = { + u'url': u'http://www.xvideos.com/video939581/funny_porns_by_s_-1', + u'file': u'939581.flv', + u'md5': u'1d0c835822f0a71a7bf011855db929d0', + u'info_dict': { + u"title": u"Funny Porns By >>>>S<<<<<< -1" + } + } def _real_extract(self, url): mobj = re.match(self._VALID_URL, url) diff --git a/youtube_dl/extractor/yahoo.py b/youtube_dl/extractor/yahoo.py index 4b3aec9..32d5b94 100644 --- a/youtube_dl/extractor/yahoo.py +++ b/youtube_dl/extractor/yahoo.py @@ -11,8 +11,17 @@ from ..utils import ( ) class YahooIE(InfoExtractor): - """Information extractor for screen.yahoo.com.""" + IE_DESC = u'Yahoo screen' _VALID_URL = r'http://screen\.yahoo\.com/.*?-(?P<id>\d*?)\.html' + _TEST = { + u'url': u'http://screen.yahoo.com/julian-smith-travis-legg-watch-214727115.html', + u'file': u'214727115.flv', + u'md5': u'2e717f169c1be93d84d3794a00d4a325', + u'info_dict': { + u"title": u"Julian Smith & Travis Legg Watch Julian Smith" + }, + u'skip': u'Requires rtmpdump' + } def _real_extract(self, url): mobj = re.match(self._VALID_URL, url) @@ -79,8 +88,7 @@ class YahooIE(InfoExtractor): return info_dict class YahooSearchIE(SearchInfoExtractor): - """Information Extractor for Yahoo! Video search queries.""" - + IE_DESC = u'Yahoo screen search' _MAX_RESULTS = 1000 IE_NAME = u'screen.yahoo:search' _SEARCH_KEY = 'yvsearch' diff --git a/youtube_dl/extractor/youjizz.py b/youtube_dl/extractor/youjizz.py index d9efac7..6f02267 100644 --- a/youtube_dl/extractor/youjizz.py +++ b/youtube_dl/extractor/youjizz.py @@ -8,6 +8,14 @@ from ..utils import ( class YouJizzIE(InfoExtractor): _VALID_URL = r'^(?:https?://)?(?:\w+\.)?youjizz\.com/videos/(?P<videoid>[^.]+).html$' + _TEST = { + u'url': u'http://www.youjizz.com/videos/zeichentrick-1-2189178.html', + u'file': u'2189178.flv', + u'md5': u'07e15fa469ba384c7693fd246905547c', + u'info_dict': { + u"title": u"Zeichentrick 1" + } + } def _real_extract(self, url): mobj = re.match(self._VALID_URL, url) diff --git a/youtube_dl/extractor/youku.py b/youtube_dl/extractor/youku.py index ed43f42..eb98298 100644 --- a/youtube_dl/extractor/youku.py +++ b/youtube_dl/extractor/youku.py @@ -1,3 +1,5 @@ +# coding: utf-8 + import json import math import random @@ -12,6 +14,16 @@ from ..utils import ( class YoukuIE(InfoExtractor): _VALID_URL = r'(?:http://)?v\.youku\.com/v_show/id_(?P<ID>[A-Za-z0-9]+)\.html' + _TEST = { + u"url": u"http://v.youku.com/v_show/id_XNDgyMDQ2NTQw.html", + u"file": u"XNDgyMDQ2NTQw_part00.flv", + u"md5": u"ffe3f2e435663dc2d1eea34faeff5b5b", + u"params": { u"test": False }, + u"info_dict": { + u"title": u"youtube-dl test video \"'/\\äâð" + } + } + def _gen_sid(self): nowTime = int(time.time() * 1000) diff --git a/youtube_dl/extractor/youporn.py b/youtube_dl/extractor/youporn.py index 5d8b7db..d1156bf 100644 --- a/youtube_dl/extractor/youporn.py +++ b/youtube_dl/extractor/youporn.py @@ -16,6 +16,17 @@ from ..utils import ( class YouPornIE(InfoExtractor): _VALID_URL = r'^(?:https?://)?(?:\w+\.)?youporn\.com/watch/(?P<videoid>[0-9]+)/(?P<title>[^/]+)' + _TEST = { + u'url': u'http://www.youporn.com/watch/505835/sex-ed-is-it-safe-to-masturbate-daily/', + u'file': u'505835.mp4', + u'md5': u'c37ddbaaa39058c76a7e86c6813423c1', + u'info_dict': { + u"upload_date": u"20101221", + u"description": u"Love & Sex Answers: http://bit.ly/DanAndJenn -- Is It Unhealthy To Masturbate Daily?", + u"uploader": u"Ask Dan And Jennifer", + u"title": u"Sex Ed: Is It Safe To Masturbate Daily?" + } + } def _print_formats(self, formats): """Print all available formats""" diff --git a/youtube_dl/extractor/youtube.py b/youtube_dl/extractor/youtube.py index c7922c5..14a8bd6 100644 --- a/youtube_dl/extractor/youtube.py +++ b/youtube_dl/extractor/youtube.py @@ -23,8 +23,7 @@ from ..utils import ( class YoutubeIE(InfoExtractor): - """Information extractor for youtube.com.""" - + IE_DESC = u'YouTube.com' _VALID_URL = r"""^ ( (?:https?://)? # http(s):// (optional) @@ -34,7 +33,7 @@ class YoutubeIE(InfoExtractor): (?: # the various things that can precede the ID: (?:(?:v|embed|e)/) # v/ or embed/ or e/ |(?: # or the v= param in all its forms - (?:watch(?:_popup)?(?:\.php)?)? # preceding watch(_popup|.php) or nothing (like /?v=xxxx) + (?:watch|movie(?:_popup)?(?:\.php)?)? # preceding watch(_popup|.php) or nothing (like /?v=xxxx) (?:\?|\#!?) # the params delimiter ? or # or #! (?:.*?&)? # any other preceding param (like /?s=tuff&v=xxxx) v= @@ -81,6 +80,44 @@ class YoutubeIE(InfoExtractor): '46': '1080x1920', } IE_NAME = u'youtube' + _TESTS = [ + { + u"url": u"http://www.youtube.com/watch?v=BaW_jenozKc", + u"file": u"BaW_jenozKc.mp4", + u"info_dict": { + u"title": u"youtube-dl test video \"'/\\äâð", + u"uploader": u"Philipp Hagemeister", + u"uploader_id": u"phihag", + u"upload_date": u"20121002", + u"description": u"test chars: \"'/\\äâð\n\nThis is a test video for youtube-dl.\n\nFor more information, contact phihag@phihag.de ." + } + }, + { + u"url": u"http://www.youtube.com/watch?v=1ltcDfZMA3U", + u"file": u"1ltcDfZMA3U.flv", + u"note": u"Test VEVO video (#897)", + u"info_dict": { + u"upload_date": u"20070518", + u"title": u"Maps - It Will Find You", + u"description": u"Music video by Maps performing It Will Find You.", + u"uploader": u"MuteUSA", + u"uploader_id": u"MuteUSA" + } + }, + { + u"url": u"http://www.youtube.com/watch?v=UxxajLWwzqY", + u"file": u"UxxajLWwzqY.mp4", + u"note": u"Test generic use_cipher_signature video (#897)", + u"info_dict": { + u"upload_date": u"20120506", + u"title": u"Icona Pop - I Love It (feat. Charli XCX) [OFFICIAL VIDEO]", + u"description": u"md5:b085c9804f5ab69f4adea963a2dceb3c", + u"uploader": u"IconaPop", + u"uploader_id": u"IconaPop" + } + } + ] + @classmethod def suitable(cls, url): @@ -130,7 +167,7 @@ class YoutubeIE(InfoExtractor): self.to_screen(u'RTMP download detected') def _decrypt_signature(self, s): - """Decrypt the key the two subkeys must have a length of 43""" + """Turn the encrypted s field into a working signature""" if len(s) == 88: return s[48] + s[81:67:-1] + s[82] + s[66:62:-1] + s[85] + s[61:48:-1] + s[67] + s[47:12:-1] + s[3] + s[11:3:-1] + s[2] + s[12] @@ -148,7 +185,7 @@ class YoutubeIE(InfoExtractor): return s[36] + s[79:67:-1] + s[81] + s[66:40:-1] + s[33] + s[39:36:-1] + s[40] + s[35] + s[0] + s[67] + s[32:0:-1] + s[34] else: - raise ExtractorError(u'Unable to decrypt signature, subkeys length %d not supported; retrying might work' % (len(s))) + raise ExtractorError(u'Unable to decrypt signature, key length %d not supported; retrying might work' % (len(s))) def _get_available_subtitles(self, video_id): self.report_video_subtitles_download(video_id) @@ -364,6 +401,9 @@ class YoutubeIE(InfoExtractor): return video_id def _real_extract(self, url): + if re.match(r'(?:https?://)?[^/]+/watch\?feature=[a-z_]+$', url): + self._downloader.report_warning(u'Did you forget to quote the URL? Remember that & is a meta-character in most shells, so you want to put the URL in quotes, like youtube-dl \'http://www.youtube.com/watch?feature=foo&v=BaW_jenozKc\' (or simply youtube-dl BaW_jenozKc ).') + # Extract original video URL from URL with redirection, like age verification, using next_url parameter mobj = re.search(self._NEXT_URL_RE, url) if mobj: @@ -401,7 +441,7 @@ class YoutubeIE(InfoExtractor): break if 'token' not in video_info: if 'reason' in video_info: - raise ExtractorError(u'YouTube said: %s' % video_info['reason'][0]) + raise ExtractorError(u'YouTube said: %s' % video_info['reason'][0], expected=True) else: raise ExtractorError(u'"token" parameter not in video info for unknown reason') @@ -545,7 +585,7 @@ class YoutubeIE(InfoExtractor): if req_format is None or req_format == 'best': video_url_list = [(existing_formats[0], url_map[existing_formats[0]])] # Best quality elif req_format == 'worst': - video_url_list = [(existing_formats[len(existing_formats)-1], url_map[existing_formats[len(existing_formats)-1]])] # worst quality + video_url_list = [(existing_formats[-1], url_map[existing_formats[-1]])] # worst quality elif req_format in ('-1', 'all'): video_url_list = [(f, url_map[f]) for f in existing_formats] # All formats else: @@ -588,8 +628,7 @@ class YoutubeIE(InfoExtractor): return results class YoutubePlaylistIE(InfoExtractor): - """Information Extractor for YouTube playlists.""" - + IE_DESC = u'YouTube.com playlists' _VALID_URL = r"""(?: (?:https?://)? (?:\w+\.)? @@ -656,8 +695,7 @@ class YoutubePlaylistIE(InfoExtractor): class YoutubeChannelIE(InfoExtractor): - """Information Extractor for YouTube channels.""" - + IE_DESC = u'YouTube.com channels' _VALID_URL = r"^(?:https?://)?(?:youtu\.be|(?:\w+\.)?youtube(?:-nocookie)?\.com)/channel/([0-9A-Za-z_-]+)" _TEMPLATE_URL = 'http://www.youtube.com/channel/%s/videos?sort=da&flow=list&view=0&page=%s&gl=US&hl=en' _MORE_PAGES_INDICATOR = 'yt-uix-load-more' @@ -715,8 +753,7 @@ class YoutubeChannelIE(InfoExtractor): class YoutubeUserIE(InfoExtractor): - """Information Extractor for YouTube users.""" - + IE_DESC = u'YouTube.com user videos (URL or "ytuser" keyword)' _VALID_URL = r'(?:(?:(?:https?://)?(?:\w+\.)?youtube\.com/user/)|ytuser:)([A-Za-z0-9_-]+)' _TEMPLATE_URL = 'http://gdata.youtube.com/feeds/api/users/%s' _GDATA_PAGE_SIZE = 50 @@ -772,7 +809,7 @@ class YoutubeUserIE(InfoExtractor): return [self.playlist_result(url_results, playlist_title = username)] class YoutubeSearchIE(SearchInfoExtractor): - """Information Extractor for YouTube search queries.""" + IE_DESC = u'YouTube.com searches' _API_URL = 'https://gdata.youtube.com/feeds/api/videos?q=%s&start-index=%i&max-results=50&v=2&alt=jsonc' _MAX_RESULTS = 1000 IE_NAME = u'youtube:search' @@ -812,3 +849,18 @@ class YoutubeSearchIE(SearchInfoExtractor): video_ids = video_ids[:n] videos = [self.url_result('http://www.youtube.com/watch?v=%s' % id, 'Youtube') for id in video_ids] return self.playlist_result(videos, query) + + +class YoutubeShowIE(InfoExtractor): + IE_DESC = u'YouTube.com (multi-season) shows' + _VALID_URL = r'https?://www\.youtube\.com/show/(.*)' + IE_NAME = u'youtube:show' + + def _real_extract(self, url): + mobj = re.match(self._VALID_URL, url) + show_name = mobj.group(1) + webpage = self._download_webpage(url, show_name, u'Downloading show webpage') + # There's one playlist for each season of the show + m_seasons = list(re.finditer(r'href="(/playlist\?list=.*?)"', webpage)) + self.to_screen(u'%s: Found %s seasons' % (show_name, len(m_seasons))) + return [self.url_result('https://www.youtube.com' + season.group(1), 'YoutubePlaylist') for season in m_seasons] diff --git a/youtube_dl/update.py b/youtube_dl/update.py index eab8417..ccab6f2 100644 --- a/youtube_dl/update.py +++ b/youtube_dl/update.py @@ -44,7 +44,7 @@ def update_self(to_screen, verbose, filename): if not isinstance(globals().get('__loader__'), zipimporter) and not hasattr(sys, "frozen"): - to_screen(u'It looks like you installed youtube-dl with pip, setup.py or a tarball. Please use that to update.') + to_screen(u'It looks like you installed youtube-dl with a package manager, pip, setup.py or a tarball. Please use that to update.') return # Check if there is a new version diff --git a/youtube_dl/utils.py b/youtube_dl/utils.py index 4d415bd..9137a4f 100644 --- a/youtube_dl/utils.py +++ b/youtube_dl/utils.py @@ -470,11 +470,15 @@ def make_HTTPS_handler(opts): class ExtractorError(Exception): """Error during info extraction.""" - def __init__(self, msg, tb=None): - """ tb, if given, is the original traceback (so that it can be printed out). """ - - if not sys.exc_info()[0] in (compat_urllib_error.URLError, socket.timeout, UnavailableVideoError): - msg = msg + u'; please report this issue on http://yt-dl.org/bug' + def __init__(self, msg, tb=None, expected=False): + """ tb, if given, is the original traceback (so that it can be printed out). + If expected is set, this is a normal error message and most likely not a bug in youtube-dl. + """ + + if sys.exc_info()[0] in (compat_urllib_error.URLError, socket.timeout, UnavailableVideoError): + expected = True + if not expected: + msg = msg + u'; please report this issue on https://yt-dl.org/bug . Be sure to call youtube-dl with the --verbose flag and include its complete output.' super(ExtractorError, self).__init__(msg) self.traceback = tb diff --git a/youtube_dl/version.py b/youtube_dl/version.py index d1e8482..bc4ad90 100644 --- a/youtube_dl/version.py +++ b/youtube_dl/version.py @@ -1,2 +1,2 @@ -__version__ = '2013.06.34' +__version__ = '2013.07.02' -- 2.41.3