From 9815bb0a551468e4939cacfffbc2d5cb8dd12431 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Rog=C3=A9rio=20Brito?= Date: Sun, 23 Jun 2013 20:10:29 -0300 Subject: [PATCH 1/1] Imported Upstream version 2013.06.26 --- Makefile | 8 +- README.md | 4 +- README.txt | 4 +- devscripts/release.sh | 12 +- setup.py | 5 +- test/test_all_urls.py | 2 +- test/test_download.py | 17 +- test/test_write_info_json.py | 4 +- test/test_youtube_lists.py | 2 +- test/test_youtube_subtitles.py | 2 +- test/tests.json | 19 + youtube-dl | Bin 75144 -> 112794 bytes youtube-dl.1 | 4 +- youtube_dl/FileDownloader.py | 7 +- youtube_dl/InfoExtractors.py | 4617 +---------------------- youtube_dl/PostProcessor.py | 5 - youtube_dl/__init__.py | 9 +- youtube_dl/extractor/__init__.py | 133 + youtube_dl/extractor/ard.py | 45 + youtube_dl/extractor/arte.py | 136 + youtube_dl/extractor/bandcamp.py | 54 + youtube_dl/extractor/bliptv.py | 177 + youtube_dl/extractor/breakcom.py | 25 + youtube_dl/extractor/collegehumor.py | 74 + youtube_dl/extractor/comedycentral.py | 179 + youtube_dl/extractor/common.py | 264 ++ youtube_dl/extractor/dailymotion.py | 77 + youtube_dl/extractor/depositfiles.py | 60 + youtube_dl/extractor/eighttracks.py | 51 + youtube_dl/extractor/escapist.py | 68 + youtube_dl/extractor/facebook.py | 111 + youtube_dl/extractor/flickr.py | 57 + youtube_dl/extractor/funnyordie.py | 31 + youtube_dl/extractor/gametrailers.py | 59 + youtube_dl/extractor/generic.py | 151 + youtube_dl/extractor/googleplus.py | 82 + youtube_dl/extractor/googlesearch.py | 39 + youtube_dl/extractor/howcast.py | 37 + youtube_dl/extractor/hypem.py | 63 + youtube_dl/extractor/ina.py | 31 + youtube_dl/extractor/infoq.py | 50 + youtube_dl/extractor/justintv.py | 144 + youtube_dl/extractor/keek.py | 32 + youtube_dl/extractor/liveleak.py | 44 + youtube_dl/extractor/metacafe.py | 110 + youtube_dl/extractor/mixcloud.py | 115 + youtube_dl/extractor/mtv.py | 72 + youtube_dl/extractor/myspass.py | 64 + youtube_dl/extractor/myvideo.py | 164 + youtube_dl/extractor/nba.py | 40 + youtube_dl/extractor/photobucket.py | 66 + youtube_dl/extractor/pornotube.py | 41 + youtube_dl/extractor/rbmaradio.py | 44 + youtube_dl/extractor/redtube.py | 29 + youtube_dl/extractor/soundcloud.py | 129 + youtube_dl/extractor/spiegel.py | 37 + youtube_dl/extractor/stanfordoc.py | 112 + youtube_dl/extractor/statigram.py | 33 + youtube_dl/extractor/steam.py | 63 + youtube_dl/extractor/teamcoco.py | 46 + youtube_dl/extractor/ted.py | 79 + youtube_dl/extractor/tumblr.py | 41 + youtube_dl/extractor/ustream.py | 36 + youtube_dl/extractor/vbox7.py | 46 + youtube_dl/extractor/vimeo.py | 138 + youtube_dl/extractor/vine.py | 37 + youtube_dl/extractor/worldstarhiphop.py | 44 + youtube_dl/extractor/xhamster.py | 61 + youtube_dl/extractor/xnxx.py | 45 + youtube_dl/extractor/xvideos.py | 43 + youtube_dl/extractor/yahoo.py | 113 + youtube_dl/extractor/youjizz.py | 45 + youtube_dl/extractor/youku.py | 104 + youtube_dl/extractor/youporn.py | 117 + youtube_dl/extractor/youtube.py | 795 ++++ youtube_dl/extractor/zdf.py | 65 + youtube_dl/version.py | 2 +- 77 files changed, 5314 insertions(+), 4657 deletions(-) create mode 100644 youtube_dl/extractor/__init__.py create mode 100644 youtube_dl/extractor/ard.py create mode 100644 youtube_dl/extractor/arte.py create mode 100644 youtube_dl/extractor/bandcamp.py create mode 100644 youtube_dl/extractor/bliptv.py create mode 100644 youtube_dl/extractor/breakcom.py create mode 100644 youtube_dl/extractor/collegehumor.py create mode 100644 youtube_dl/extractor/comedycentral.py create mode 100644 youtube_dl/extractor/common.py create mode 100644 youtube_dl/extractor/dailymotion.py create mode 100644 youtube_dl/extractor/depositfiles.py create mode 100644 youtube_dl/extractor/eighttracks.py create mode 100644 youtube_dl/extractor/escapist.py create mode 100644 youtube_dl/extractor/facebook.py create mode 100644 youtube_dl/extractor/flickr.py create mode 100644 youtube_dl/extractor/funnyordie.py create mode 100644 youtube_dl/extractor/gametrailers.py create mode 100644 youtube_dl/extractor/generic.py create mode 100644 youtube_dl/extractor/googleplus.py create mode 100644 youtube_dl/extractor/googlesearch.py create mode 100644 youtube_dl/extractor/howcast.py create mode 100644 youtube_dl/extractor/hypem.py create mode 100644 youtube_dl/extractor/ina.py create mode 100644 youtube_dl/extractor/infoq.py create mode 100644 youtube_dl/extractor/justintv.py create mode 100644 youtube_dl/extractor/keek.py create mode 100644 youtube_dl/extractor/liveleak.py create mode 100644 youtube_dl/extractor/metacafe.py create mode 100644 youtube_dl/extractor/mixcloud.py create mode 100644 youtube_dl/extractor/mtv.py create mode 100644 youtube_dl/extractor/myspass.py create mode 100644 youtube_dl/extractor/myvideo.py create mode 100644 youtube_dl/extractor/nba.py create mode 100644 youtube_dl/extractor/photobucket.py create mode 100644 youtube_dl/extractor/pornotube.py create mode 100644 youtube_dl/extractor/rbmaradio.py create mode 100644 youtube_dl/extractor/redtube.py create mode 100644 youtube_dl/extractor/soundcloud.py create mode 100644 youtube_dl/extractor/spiegel.py create mode 100644 youtube_dl/extractor/stanfordoc.py create mode 100644 youtube_dl/extractor/statigram.py create mode 100644 youtube_dl/extractor/steam.py create mode 100644 youtube_dl/extractor/teamcoco.py create mode 100644 youtube_dl/extractor/ted.py create mode 100644 youtube_dl/extractor/tumblr.py create mode 100644 youtube_dl/extractor/ustream.py create mode 100644 youtube_dl/extractor/vbox7.py create mode 100644 youtube_dl/extractor/vimeo.py create mode 100644 youtube_dl/extractor/vine.py create mode 100644 youtube_dl/extractor/worldstarhiphop.py create mode 100644 youtube_dl/extractor/xhamster.py create mode 100644 youtube_dl/extractor/xnxx.py create mode 100644 youtube_dl/extractor/xvideos.py create mode 100644 youtube_dl/extractor/yahoo.py create mode 100644 youtube_dl/extractor/youjizz.py create mode 100644 youtube_dl/extractor/youku.py create mode 100644 youtube_dl/extractor/youporn.py create mode 100644 youtube_dl/extractor/youtube.py create mode 100644 youtube_dl/extractor/zdf.py diff --git a/Makefile b/Makefile index e00f5e6..85dacfa 100644 --- a/Makefile +++ b/Makefile @@ -40,15 +40,15 @@ tar: youtube-dl.tar.gz pypi-files: youtube-dl.bash-completion README.txt youtube-dl.1 -youtube-dl: youtube_dl/*.py - zip --quiet youtube-dl youtube_dl/*.py +youtube-dl: youtube_dl/*.py youtube_dl/*/*.py + zip --quiet youtube-dl youtube_dl/*.py youtube_dl/*/*.py zip --quiet --junk-paths youtube-dl youtube_dl/__main__.py echo '#!$(PYTHON)' > youtube-dl cat youtube-dl.zip >> youtube-dl rm youtube-dl.zip chmod a+x youtube-dl -README.md: youtube_dl/*.py +README.md: youtube_dl/*.py youtube_dl/*/*.py COLUMNS=80 python -m youtube_dl --help | python devscripts/make_readme.py README.txt: README.md @@ -57,7 +57,7 @@ README.txt: README.md youtube-dl.1: README.md pandoc -s -f markdown -t man README.md -o youtube-dl.1 -youtube-dl.bash-completion: youtube_dl/*.py devscripts/bash-completion.in +youtube-dl.bash-completion: youtube_dl/*.py youtube_dl/*/*.py devscripts/bash-completion.in python devscripts/bash-completion.py bash-completion: youtube-dl.bash-completion diff --git a/README.md b/README.md index 2f3c81a..929f2b5 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ % YOUTUBE-DL(1) # NAME -youtube-dl +youtube-dl - download videos from youtube.com or other video platforms # SYNOPSIS **youtube-dl** [OPTIONS] URL [URL...] @@ -121,7 +121,7 @@ which means you can modify it, redistribute it or use it however you like. video (currently youtube only) --list-subs lists all available subtitles for the video (currently youtube only) - --sub-format LANG subtitle format [srt/sbv] (default=srt) + --sub-format FORMAT subtitle format [srt/sbv] (default=srt) (currently youtube only) --sub-lang LANG language of the subtitles to download (optional) use IETF language tags like 'en' diff --git a/README.txt b/README.txt index c5e2ce3..b58f682 100644 --- a/README.txt +++ b/README.txt @@ -1,7 +1,7 @@ NAME ==== -youtube-dl +youtube-dl - download videos from youtube.com or other video platforms SYNOPSIS ======== @@ -136,7 +136,7 @@ Video Format Options: video (currently youtube only) --list-subs lists all available subtitles for the video (currently youtube only) - --sub-format LANG subtitle format [srt/sbv] (default=srt) + --sub-format FORMAT subtitle format [srt/sbv] (default=srt) (currently youtube only) --sub-lang LANG language of the subtitles to download (optional) use IETF language tags like 'en' diff --git a/devscripts/release.sh b/devscripts/release.sh index b8efdab..d32ae47 100755 --- a/devscripts/release.sh +++ b/devscripts/release.sh @@ -14,6 +14,12 @@ set -e +skip_tests=false +if [ "$1" = '--skip-test' ]; then + skip_tests=true + shift +fi + if [ -z "$1" ]; then echo "ERROR: specify version number like this: $0 1994.09.06"; exit 1; fi version="$1" if [ ! -z "`git tag | grep "$version"`" ]; then echo 'ERROR: version already present'; exit 1; fi @@ -22,7 +28,11 @@ if [ ! -f "updates_key.pem" ]; then echo 'ERROR: updates_key.pem missing'; exit /bin/echo -e "\n### First of all, testing..." make cleanall -nosetests --verbose --with-coverage --cover-package=youtube_dl --cover-html test --stop || exit 1 +if $skip_tests ; then + echo 'SKIPPING TESTS' +else + nosetests --verbose --with-coverage --cover-package=youtube_dl --cover-html test --stop || exit 1 +fi /bin/echo -e "\n### Changing version in version.py..." sed -i "s/__version__ = '.*'/__version__ = '$version'/" youtube_dl/version.py diff --git a/setup.py b/setup.py index eb7b1a2..61435fc 100644 --- a/setup.py +++ b/setup.py @@ -2,6 +2,7 @@ # -*- coding: utf-8 -*- from __future__ import print_function + import pkg_resources import sys @@ -23,7 +24,7 @@ py2exe_options = { "compressed": 1, "optimize": 2, "dist_dir": '.', - "dll_excludes": ['w9xpopen.exe'] + "dll_excludes": ['w9xpopen.exe'], } py2exe_console = [{ "script": "./youtube_dl/__main__.py", @@ -57,7 +58,7 @@ setup( author = 'Ricardo Garcia', maintainer = 'Philipp Hagemeister', maintainer_email = 'phihag@phihag.de', - packages = ['youtube_dl'], + packages = ['youtube_dl', 'youtube_dl.extractor'], # Provokes warning on most systems (why?!) #test_suite = 'nose.collector', diff --git a/test/test_all_urls.py b/test/test_all_urls.py index dd67286..d3ee296 100644 --- a/test/test_all_urls.py +++ b/test/test_all_urls.py @@ -7,7 +7,7 @@ import unittest import os sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) -from youtube_dl.InfoExtractors import YoutubeIE, YoutubePlaylistIE, YoutubeChannelIE, JustinTVIE +from youtube_dl.extractor import YoutubeIE, YoutubePlaylistIE, YoutubeChannelIE, JustinTVIE class TestAllURLsMatching(unittest.TestCase): def test_youtube_playlist_matching(self): diff --git a/test/test_download.py b/test/test_download.py index 577bcdb..8d86984 100644 --- a/test/test_download.py +++ b/test/test_download.py @@ -14,7 +14,7 @@ import binascii sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) import youtube_dl.FileDownloader -import youtube_dl.InfoExtractors +import youtube_dl.extractor from youtube_dl.utils import * DEF_FILE = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'tests.json') @@ -72,7 +72,7 @@ class TestDownload(unittest.TestCase): def generator(test_case): def test_template(self): - ie = youtube_dl.InfoExtractors.get_info_extractor(test_case['name']) + ie = youtube_dl.extractor.get_info_extractor(test_case['name']) if not ie._WORKING: print('Skipping: IE marked as not _WORKING') return @@ -87,7 +87,7 @@ def generator(test_case): params.update(test_case.get('params', {})) fd = FileDownloader(params) - for ie in youtube_dl.InfoExtractors.gen_extractors(): + for ie in youtube_dl.extractor.gen_extractors(): fd.add_info_extractor(ie) finished_hook_called = set() def _hook(status): @@ -125,11 +125,14 @@ def generator(test_case): self.assertEqual(md5_for_file, tc['md5']) with io.open(tc['file'] + '.info.json', encoding='utf-8') as infof: info_dict = json.load(infof) - for (info_field, value) in tc.get('info_dict', {}).items(): - if isinstance(value, compat_str) and value.startswith('md5:'): - self.assertEqual(value, 'md5:' + md5(info_dict.get(info_field))) + for (info_field, expected) in tc.get('info_dict', {}).items(): + if isinstance(expected, compat_str) and expected.startswith('md5:'): + self.assertEqual(expected, 'md5:' + md5(info_dict.get(info_field))) else: - self.assertEqual(value, info_dict.get(info_field)) + got = info_dict.get(info_field) + self.assertEqual( + expected, got, + u'invalid value for field %s, expected %r, got %r' % (info_field, expected, got)) # If checkable fields are missing from the test case, print the info_dict test_info_dict = dict((key, value if not isinstance(value, compat_str) or len(value) < 250 else 'md5:' + md5(value)) diff --git a/test/test_write_info_json.py b/test/test_write_info_json.py index 8134dda..b5eca76 100644 --- a/test/test_write_info_json.py +++ b/test/test_write_info_json.py @@ -10,7 +10,7 @@ import unittest sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) import youtube_dl.FileDownloader -import youtube_dl.InfoExtractors +import youtube_dl.extractor from youtube_dl.utils import * PARAMETERS_FILE = os.path.join(os.path.dirname(os.path.abspath(__file__)), "parameters.json") @@ -48,7 +48,7 @@ class TestInfoJSON(unittest.TestCase): self.tearDown() def test_info_json(self): - ie = youtube_dl.InfoExtractors.YoutubeIE() + ie = youtube_dl.extractor.YoutubeIE() fd = FileDownloader(params) fd.add_info_extractor(ie) fd.download([TEST_ID]) diff --git a/test/test_youtube_lists.py b/test/test_youtube_lists.py index e8b49ff..2c46edf 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.InfoExtractors import YoutubeUserIE, YoutubePlaylistIE, YoutubeIE, YoutubeChannelIE +from youtube_dl.extractor import YoutubeUserIE, YoutubePlaylistIE, YoutubeIE, YoutubeChannelIE from youtube_dl.utils import * from youtube_dl.FileDownloader import FileDownloader diff --git a/test/test_youtube_subtitles.py b/test/test_youtube_subtitles.py index c80c90c..129e239 100644 --- a/test/test_youtube_subtitles.py +++ b/test/test_youtube_subtitles.py @@ -10,7 +10,7 @@ import hashlib import os sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) -from youtube_dl.InfoExtractors import YoutubeIE +from youtube_dl.extractor import YoutubeIE from youtube_dl.utils import * from youtube_dl import FileDownloader diff --git a/test/tests.json b/test/tests.json index 3e0db29..01367b0 100644 --- a/test/tests.json +++ b/test/tests.json @@ -630,5 +630,24 @@ "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" + } } ] diff --git a/youtube-dl b/youtube-dl index ea6d889ba2d69a7a9c989380e97ccd92186b8fb2..ffe9a4a46910617eb12fc85c4df4d238a11a397f 100755 GIT binary patch delta 101234 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 KPY1SA(EkI{&%Q?h delta 64558 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[1-9][0-9]*|all):(?P[\s\S]+)' % cls._SEARCH_KEY - - @classmethod - def suitable(cls, url): - return re.match(cls._make_valid_url(), url) is not None - - def _real_extract(self, query): - mobj = re.match(self._make_valid_url(), query) - if mobj is None: - raise ExtractorError(u'Invalid search query "%s"' % query) - - prefix = mobj.group('prefix') - query = mobj.group('query') - if prefix == '': - return self._get_n_results(query, 1) - elif prefix == 'all': - return self._get_n_results(query, self._MAX_RESULTS) - else: - n = int(prefix) - if n <= 0: - raise ExtractorError(u'invalid download number %s for query "%s"' % (n, query)) - elif n > self._MAX_RESULTS: - self._downloader.report_warning(u'%s returns max %i results (you requested %i)' % (self._SEARCH_KEY, self._MAX_RESULTS, n)) - n = self._MAX_RESULTS - return self._get_n_results(query, n) - - 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") - - -class YoutubeIE(InfoExtractor): - """Information extractor for youtube.com.""" - - _VALID_URL = r"""^ - ( - (?:https?://)? # http(s):// (optional) - (?:youtu\.be/|(?:\w+\.)?youtube(?:-nocookie)?\.com/| - tube\.majestyc\.net/) # the various hostnames, with wildcard subdomains - (?:.*?\#/)? # handle anchor (#/) redirect urls - (?: # 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) - (?:\?|\#!?) # the params delimiter ? or # or #! - (?:.*?&)? # any other preceding param (like /?s=tuff&v=xxxx) - v= - ) - )? # optional -> youtube.com/xxxx is OK - )? # all until now is optional -> you can pass the naked ID - ([0-9A-Za-z_-]+) # here is it! the YouTube video ID - (?(1).+)? # if we found the ID, everything can follow - $""" - _LANG_URL = r'https://www.youtube.com/?hl=en&persist_hl=1&gl=US&persist_gl=1&opt_out_ackd=1' - _LOGIN_URL = 'https://accounts.google.com/ServiceLogin' - _AGE_URL = 'http://www.youtube.com/verify_age?next_url=/&gl=US&hl=en' - _NEXT_URL_RE = r'[\?&]next_url=([^&]+)' - _NETRC_MACHINE = 'youtube' - # Listed in order of quality - _available_formats = ['38', '37', '46', '22', '45', '35', '44', '34', '18', '43', '6', '5', '17', '13'] - _available_formats_prefer_free = ['38', '46', '37', '45', '22', '44', '35', '43', '34', '18', '6', '5', '17', '13'] - _video_extensions = { - '13': '3gp', - '17': 'mp4', - '18': 'mp4', - '22': 'mp4', - '37': 'mp4', - '38': 'video', # You actually don't know if this will be MOV, AVI or whatever - '43': 'webm', - '44': 'webm', - '45': 'webm', - '46': 'webm', - } - _video_dimensions = { - '5': '240x400', - '6': '???', - '13': '???', - '17': '144x176', - '18': '360x640', - '22': '720x1280', - '34': '360x640', - '35': '480x854', - '37': '1080x1920', - '38': '3072x4096', - '43': '360x640', - '44': '480x854', - '45': '720x1280', - '46': '1080x1920', - } - IE_NAME = u'youtube' - - @classmethod - def suitable(cls, url): - """Receives a URL and returns True if suitable for this IE.""" - if YoutubePlaylistIE.suitable(url): return False - return re.match(cls._VALID_URL, url, re.VERBOSE) is not None - - def report_lang(self): - """Report attempt to set language.""" - self.to_screen(u'Setting language') - - def report_login(self): - """Report attempt to log in.""" - self.to_screen(u'Logging in') - - def report_video_webpage_download(self, video_id): - """Report attempt to download video webpage.""" - self.to_screen(u'%s: Downloading video webpage' % video_id) - - def report_video_info_webpage_download(self, video_id): - """Report attempt to download video info webpage.""" - self.to_screen(u'%s: Downloading video info webpage' % video_id) - - def report_video_subtitles_download(self, video_id): - """Report attempt to download video info webpage.""" - self.to_screen(u'%s: Checking available subtitles' % video_id) - - def report_video_subtitles_request(self, video_id, sub_lang, format): - """Report attempt to download video info webpage.""" - self.to_screen(u'%s: Downloading video subtitles for %s.%s' % (video_id, sub_lang, format)) - - def report_video_subtitles_available(self, video_id, sub_lang_list): - """Report available subtitles.""" - sub_lang = ",".join(list(sub_lang_list.keys())) - self.to_screen(u'%s: Available subtitles for video: %s' % (video_id, sub_lang)) - - def report_information_extraction(self, video_id): - """Report attempt to extract video information.""" - self.to_screen(u'%s: Extracting video information' % video_id) - - def report_unavailable_format(self, video_id, format): - """Report extracted video URL.""" - self.to_screen(u'%s: Format %s not available' % (video_id, format)) - - def report_rtmp_download(self): - """Indicate the download will use the RTMP protocol.""" - self.to_screen(u'RTMP download detected') - - def _get_available_subtitles(self, video_id): - self.report_video_subtitles_download(video_id) - request = compat_urllib_request.Request('http://video.google.com/timedtext?hl=en&type=list&v=%s' % video_id) - try: - sub_list = compat_urllib_request.urlopen(request).read().decode('utf-8') - except (compat_urllib_error.URLError, compat_http_client.HTTPException, socket.error) as err: - return (u'unable to download video subtitles: %s' % compat_str(err), None) - sub_lang_list = re.findall(r'name="([^"]*)"[^>]+lang_code="([\w\-]+)"', sub_list) - sub_lang_list = dict((l[1], l[0]) for l in sub_lang_list) - if not sub_lang_list: - return (u'video doesn\'t have subtitles', None) - return sub_lang_list - - def _list_available_subtitles(self, video_id): - sub_lang_list = self._get_available_subtitles(video_id) - self.report_video_subtitles_available(video_id, sub_lang_list) - - def _request_subtitle(self, sub_lang, sub_name, video_id, format): - """ - Return tuple: - (error_message, sub_lang, sub) - """ - self.report_video_subtitles_request(video_id, sub_lang, format) - params = compat_urllib_parse.urlencode({ - 'lang': sub_lang, - 'name': sub_name, - 'v': video_id, - 'fmt': format, - }) - url = 'http://www.youtube.com/api/timedtext?' + params - try: - sub = compat_urllib_request.urlopen(url).read().decode('utf-8') - except (compat_urllib_error.URLError, compat_http_client.HTTPException, socket.error) as err: - return (u'unable to download video subtitles: %s' % compat_str(err), None, None) - if not sub: - return (u'Did not fetch video subtitles', None, None) - return (None, sub_lang, sub) - - def _request_automatic_caption(self, video_id, webpage): - """We need the webpage for getting the captions url, pass it as an - argument to speed up the process.""" - sub_lang = self._downloader.params.get('subtitleslang') - sub_format = self._downloader.params.get('subtitlesformat') - self.to_screen(u'%s: Looking for automatic captions' % video_id) - mobj = re.search(r';ytplayer.config = ({.*?});', webpage) - err_msg = u'Couldn\'t find automatic captions for "%s"' % sub_lang - if mobj is None: - return [(err_msg, None, None)] - player_config = json.loads(mobj.group(1)) - try: - args = player_config[u'args'] - caption_url = args[u'ttsurl'] - timestamp = args[u'timestamp'] - params = compat_urllib_parse.urlencode({ - 'lang': 'en', - 'tlang': sub_lang, - 'fmt': sub_format, - 'ts': timestamp, - 'kind': 'asr', - }) - subtitles_url = caption_url + '&' + params - sub = self._download_webpage(subtitles_url, video_id, u'Downloading automatic captions') - return [(None, sub_lang, sub)] - except KeyError: - return [(err_msg, None, None)] - - def _extract_subtitle(self, video_id): - """ - Return a list with a tuple: - [(error_message, sub_lang, sub)] - """ - sub_lang_list = self._get_available_subtitles(video_id) - sub_format = self._downloader.params.get('subtitlesformat') - if isinstance(sub_lang_list,tuple): #There was some error, it didn't get the available subtitles - return [(sub_lang_list[0], None, None)] - if self._downloader.params.get('subtitleslang', False): - sub_lang = self._downloader.params.get('subtitleslang') - elif 'en' in sub_lang_list: - sub_lang = 'en' - else: - sub_lang = list(sub_lang_list.keys())[0] - if not sub_lang in sub_lang_list: - return [(u'no closed captions found in the specified language "%s"' % sub_lang, None, None)] - - subtitle = self._request_subtitle(sub_lang, sub_lang_list[sub_lang].encode('utf-8'), video_id, sub_format) - return [subtitle] - - def _extract_all_subtitles(self, video_id): - sub_lang_list = self._get_available_subtitles(video_id) - sub_format = self._downloader.params.get('subtitlesformat') - if isinstance(sub_lang_list,tuple): #There was some error, it didn't get the available subtitles - return [(sub_lang_list[0], None, None)] - subtitles = [] - for sub_lang in sub_lang_list: - subtitle = self._request_subtitle(sub_lang, sub_lang_list[sub_lang].encode('utf-8'), video_id, sub_format) - subtitles.append(subtitle) - return subtitles - - def _print_formats(self, formats): - print('Available formats:') - for x in formats: - print('%s\t:\t%s\t[%s]' %(x, self._video_extensions.get(x, 'flv'), self._video_dimensions.get(x, '???'))) - - def _real_initialize(self): - if self._downloader is None: - return - - username = None - password = None - downloader_params = self._downloader.params - - # Attempt to use provided username and password or .netrc data - if downloader_params.get('username', None) is not None: - username = downloader_params['username'] - password = downloader_params['password'] - elif downloader_params.get('usenetrc', False): - try: - info = netrc.netrc().authenticators(self._NETRC_MACHINE) - if info is not None: - username = info[0] - password = info[2] - else: - raise netrc.NetrcParseError('No authenticators for %s' % self._NETRC_MACHINE) - except (IOError, netrc.NetrcParseError) as err: - self._downloader.report_warning(u'parsing .netrc: %s' % compat_str(err)) - return - - # Set language - request = compat_urllib_request.Request(self._LANG_URL) - try: - self.report_lang() - compat_urllib_request.urlopen(request).read() - except (compat_urllib_error.URLError, compat_http_client.HTTPException, socket.error) as err: - self._downloader.report_warning(u'unable to set language: %s' % compat_str(err)) - return - - # No authentication to be performed - if username is None: - return - - request = compat_urllib_request.Request(self._LOGIN_URL) - try: - login_page = compat_urllib_request.urlopen(request).read().decode('utf-8') - except (compat_urllib_error.URLError, compat_http_client.HTTPException, socket.error) as err: - self._downloader.report_warning(u'unable to fetch login page: %s' % compat_str(err)) - return - - galx = None - dsh = None - match = re.search(re.compile(r']* id="gaia_loginform"', login_results) is not None: - self._downloader.report_warning(u'unable to log in: bad username or password') - return - except (compat_urllib_error.URLError, compat_http_client.HTTPException, socket.error) as err: - self._downloader.report_warning(u'unable to log in: %s' % compat_str(err)) - return - - # Confirm age - age_form = { - 'next_url': '/', - 'action_confirm': 'Confirm', - } - request = compat_urllib_request.Request(self._AGE_URL, compat_urllib_parse.urlencode(age_form)) - try: - self.report_age_confirmation() - age_results = compat_urllib_request.urlopen(request).read().decode('utf-8') - except (compat_urllib_error.URLError, compat_http_client.HTTPException, socket.error) as err: - raise ExtractorError(u'Unable to confirm age: %s' % compat_str(err)) - - def _extract_id(self, url): - mobj = re.match(self._VALID_URL, url, re.VERBOSE) - if mobj is None: - raise ExtractorError(u'Invalid URL: %s' % url) - video_id = mobj.group(2) - return video_id - - def _real_extract(self, url): - # 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: - url = 'https://www.youtube.com/' + compat_urllib_parse.unquote(mobj.group(1)).lstrip('/') - video_id = self._extract_id(url) - - # Get video webpage - self.report_video_webpage_download(video_id) - url = 'https://www.youtube.com/watch?v=%s&gl=US&hl=en&has_verified=1' % video_id - request = compat_urllib_request.Request(url) - try: - video_webpage_bytes = compat_urllib_request.urlopen(request).read() - except (compat_urllib_error.URLError, compat_http_client.HTTPException, socket.error) as err: - raise ExtractorError(u'Unable to download video webpage: %s' % compat_str(err)) - - video_webpage = video_webpage_bytes.decode('utf-8', 'ignore') - - # Attempt to extract SWF player URL - mobj = re.search(r'swfConfig.*?"(http:\\/\\/.*?watch.*?-.*?\.swf)"', video_webpage) - if mobj is not None: - player_url = re.sub(r'\\(.)', r'\1', mobj.group(1)) - else: - player_url = None - - # Get video info - self.report_video_info_webpage_download(video_id) - for el_type in ['&el=embedded', '&el=detailpage', '&el=vevo', '']: - video_info_url = ('https://www.youtube.com/get_video_info?&video_id=%s%s&ps=default&eurl=&gl=US&hl=en' - % (video_id, el_type)) - video_info_webpage = self._download_webpage(video_info_url, video_id, - note=False, - errnote='unable to download video info webpage') - video_info = compat_parse_qs(video_info_webpage) - if 'token' in video_info: - break - if 'token' not in video_info: - if 'reason' in video_info: - raise ExtractorError(u'YouTube said: %s' % video_info['reason'][0]) - else: - raise ExtractorError(u'"token" parameter not in video info for unknown reason') - - # Check for "rental" videos - if 'ypc_video_rental_bar_text' in video_info and 'author' not in video_info: - raise ExtractorError(u'"rental" videos not supported') - - # Start extracting information - self.report_information_extraction(video_id) - - # uploader - if 'author' not in video_info: - raise ExtractorError(u'Unable to extract uploader name') - video_uploader = compat_urllib_parse.unquote_plus(video_info['author'][0]) - - # uploader_id - video_uploader_id = None - mobj = re.search(r'', video_webpage) - if mobj is not None: - video_uploader_id = mobj.group(1) - else: - self._downloader.report_warning(u'unable to extract uploader nickname') - - # title - if 'title' not in video_info: - raise ExtractorError(u'Unable to extract video title') - video_title = compat_urllib_parse.unquote_plus(video_info['title'][0]) - - # thumbnail image - if 'thumbnail_url' not in video_info: - self._downloader.report_warning(u'unable to extract video thumbnail') - video_thumbnail = '' - else: # don't panic if we can't find it - video_thumbnail = compat_urllib_parse.unquote_plus(video_info['thumbnail_url'][0]) - - # upload date - upload_date = None - mobj = re.search(r'id="eow-date.*?>(.*?)', video_webpage, re.DOTALL) - if mobj is not None: - upload_date = ' '.join(re.sub(r'[/,-]', r' ', mobj.group(1)).split()) - upload_date = unified_strdate(upload_date) - - # description - video_description = get_element_by_id("eow-description", video_webpage) - if video_description: - video_description = clean_html(video_description) - else: - fd_mobj = re.search(r'= 1: - url_map = {} - for url_data_str in video_info['url_encoded_fmt_stream_map'][0].split(','): - url_data = compat_parse_qs(url_data_str) - if 'itag' in url_data and 'url' in url_data: - url = url_data['url'][0] + '&signature=' + url_data['sig'][0] - if not 'ratebypass' in url: url += '&ratebypass=yes' - url_map[url_data['itag'][0]] = url - - format_limit = self._downloader.params.get('format_limit', None) - available_formats = self._available_formats_prefer_free if self._downloader.params.get('prefer_free_formats', False) else self._available_formats - if format_limit is not None and format_limit in available_formats: - format_list = available_formats[available_formats.index(format_limit):] - else: - format_list = available_formats - existing_formats = [x for x in format_list if x in url_map] - if len(existing_formats) == 0: - raise ExtractorError(u'no known formats available for video') - if self._downloader.params.get('listformats', None): - self._print_formats(existing_formats) - return - 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 - elif req_format in ('-1', 'all'): - video_url_list = [(f, url_map[f]) for f in existing_formats] # All formats - else: - # Specific formats. We pick the first in a slash-delimeted sequence. - # For example, if '1/2/3/4' is requested and '2' and '4' are available, we pick '2'. - req_formats = req_format.split('/') - video_url_list = None - for rf in req_formats: - if rf in url_map: - video_url_list = [(rf, url_map[rf])] - break - if video_url_list is None: - raise ExtractorError(u'requested format not available') - else: - raise ExtractorError(u'no conn or url_encoded_fmt_stream_map information found in video info') - - results = [] - for format_param, video_real_url in video_url_list: - # Extension - video_extension = self._video_extensions.get(format_param, 'flv') - - video_format = '{0} - {1}'.format(format_param if format_param else video_extension, - self._video_dimensions.get(format_param, '???')) - - results.append({ - 'id': video_id, - 'url': video_real_url, - 'uploader': video_uploader, - 'uploader_id': video_uploader_id, - 'upload_date': upload_date, - 'title': video_title, - 'ext': video_extension, - 'format': video_format, - 'thumbnail': video_thumbnail, - 'description': video_description, - 'player_url': player_url, - 'subtitles': video_subtitles, - 'duration': video_duration - }) - return results - - -class MetacafeIE(InfoExtractor): - """Information Extractor for metacafe.com.""" - - _VALID_URL = r'(?:http://)?(?:www\.)?metacafe\.com/watch/([^/]+)/([^/]+)/.*' - _DISCLAIMER = 'http://www.metacafe.com/family_filter/' - _FILTER_POST = 'http://www.metacafe.com/f/index.php?inputType=filter&controllerGroup=user' - IE_NAME = u'metacafe' - - def report_disclaimer(self): - """Report disclaimer retrieval.""" - self.to_screen(u'Retrieving disclaimer') - - def _real_initialize(self): - # Retrieve disclaimer - request = compat_urllib_request.Request(self._DISCLAIMER) - try: - self.report_disclaimer() - disclaimer = compat_urllib_request.urlopen(request).read() - except (compat_urllib_error.URLError, compat_http_client.HTTPException, socket.error) as err: - raise ExtractorError(u'Unable to retrieve disclaimer: %s' % compat_str(err)) - - # Confirm age - disclaimer_form = { - 'filters': '0', - 'submit': "Continue - I'm over 18", - } - request = compat_urllib_request.Request(self._FILTER_POST, compat_urllib_parse.urlencode(disclaimer_form)) - try: - self.report_age_confirmation() - disclaimer = compat_urllib_request.urlopen(request).read() - except (compat_urllib_error.URLError, compat_http_client.HTTPException, socket.error) as err: - raise ExtractorError(u'Unable to confirm age: %s' % compat_str(err)) - - def _real_extract(self, url): - # Extract id and simplified title from URL - mobj = re.match(self._VALID_URL, url) - if mobj is None: - raise ExtractorError(u'Invalid URL: %s' % url) - - video_id = mobj.group(1) - - # Check if video comes from YouTube - mobj2 = re.match(r'^yt-(.*)$', video_id) - if mobj2 is not None: - return [self.url_result('http://www.youtube.com/watch?v=%s' % mobj2.group(1), 'Youtube')] - - # Retrieve video webpage to extract further information - webpage = self._download_webpage('http://www.metacafe.com/watch/%s/' % video_id, video_id) - - # Extract URL, uploader and title from webpage - self.report_extraction(video_id) - mobj = re.search(r'(?m)&mediaURL=([^&]+)', webpage) - if mobj is not None: - mediaURL = compat_urllib_parse.unquote(mobj.group(1)) - video_extension = mediaURL[-3:] - - # Extract gdaKey if available - mobj = re.search(r'(?m)&gdaKey=(.*?)&', webpage) - if mobj is None: - video_url = mediaURL - else: - gdaKey = mobj.group(1) - video_url = '%s?__gda__=%s' % (mediaURL, gdaKey) - else: - mobj = re.search(r' name="flashvars" value="(.*?)"', webpage) - if mobj is None: - raise ExtractorError(u'Unable to extract media URL') - vardict = compat_parse_qs(mobj.group(1)) - if 'mediaData' not in vardict: - raise ExtractorError(u'Unable to extract media URL') - mobj = re.search(r'"mediaURL":"(?Phttp.*?)",(.*?)"key":"(?P.*?)"', vardict['mediaData'][0]) - if mobj is None: - raise ExtractorError(u'Unable to extract media URL') - mediaURL = mobj.group('mediaURL').replace('\\/', '/') - video_extension = mediaURL[-3:] - video_url = '%s?__gda__=%s' % (mediaURL, mobj.group('key')) - - mobj = re.search(r'(?im)(.*) - Video', webpage) - if mobj is None: - raise ExtractorError(u'Unable to extract title') - video_title = mobj.group(1).decode('utf-8') - - mobj = re.search(r'submitter=(.*?);', webpage) - if mobj is None: - raise ExtractorError(u'Unable to extract uploader nickname') - video_uploader = mobj.group(1) - - return [{ - 'id': video_id.decode('utf-8'), - 'url': video_url.decode('utf-8'), - 'uploader': video_uploader.decode('utf-8'), - 'upload_date': None, - 'title': video_title, - 'ext': video_extension.decode('utf-8'), - }] - -class DailymotionIE(InfoExtractor): - """Information Extractor for Dailymotion""" - - _VALID_URL = r'(?i)(?:https?://)?(?:www\.)?dailymotion\.[a-z]{2,3}/video/([^/]+)' - IE_NAME = u'dailymotion' - - def _real_extract(self, url): - # Extract id and simplified title from URL - mobj = re.match(self._VALID_URL, url) - if mobj is None: - raise ExtractorError(u'Invalid URL: %s' % url) - - video_id = mobj.group(1).split('_')[0].split('?')[0] - - video_extension = 'mp4' - - # Retrieve video webpage to extract further information - request = compat_urllib_request.Request(url) - request.add_header('Cookie', 'family_filter=off') - webpage = self._download_webpage(request, video_id) - - # Extract URL, uploader and title from webpage - self.report_extraction(video_id) - mobj = re.search(r'\s*var flashvars = (.*)', webpage) - if mobj is None: - raise ExtractorError(u'Unable to extract media URL') - flashvars = compat_urllib_parse.unquote(mobj.group(1)) - - for key in ['hd1080URL', 'hd720URL', 'hqURL', 'sdURL', 'ldURL', 'video_url']: - if key in flashvars: - max_quality = key - self.to_screen(u'Using %s' % key) - break - else: - raise ExtractorError(u'Unable to extract video URL') - - mobj = re.search(r'"' + max_quality + r'":"(.+?)"', flashvars) - if mobj is None: - raise ExtractorError(u'Unable to extract video URL') - - video_url = compat_urllib_parse.unquote(mobj.group(1)).replace('\\/', '/') - - # TODO: support choosing qualities - - mobj = re.search(r'', webpage) - if mobj is None: - raise ExtractorError(u'Unable to extract title') - video_title = unescapeHTML(mobj.group('title')) - - video_uploader = None - video_uploader = self._search_regex([r'(?im)[^<]+?]+?>([^<]+?)', - # Looking for official user - r'<(?:span|a) .*?rel="author".*?>([^<]+?)([0-9]{2})-([0-9]{2})-([0-9]{4})', webpage) - if mobj is not None: - video_upload_date = mobj.group(3) + mobj.group(2) + mobj.group(1) - - return [{ - 'id': video_id, - 'url': video_url, - 'uploader': video_uploader, - 'upload_date': video_upload_date, - 'title': video_title, - 'ext': video_extension, - }] - - -class PhotobucketIE(InfoExtractor): - """Information extractor for photobucket.com.""" - - # TODO: the original _VALID_URL was: - # r'(?:http://)?(?:[a-z0-9]+\.)?photobucket\.com/.*[\?\&]current=(.*\.flv)' - # Check if it's necessary to keep the old extracion process - _VALID_URL = r'(?:http://)?(?:[a-z0-9]+\.)?photobucket\.com/.*(([\?\&]current=)|_)(?P.*)\.(?P(flv)|(mp4))' - IE_NAME = u'photobucket' - - def _real_extract(self, url): - # Extract id from URL - mobj = re.match(self._VALID_URL, url) - if mobj is None: - raise ExtractorError(u'Invalid URL: %s' % url) - - video_id = mobj.group('id') - - video_extension = mobj.group('ext') - - # Retrieve video webpage to extract further information - webpage = self._download_webpage(url, video_id) - - # Extract URL, uploader, and title from webpage - self.report_extraction(video_id) - # We try first by looking the javascript code: - mobj = re.search(r'Pb\.Data\.Shared\.put\(Pb\.Data\.Shared\.MEDIA, (?P.*?)\);', webpage) - if mobj is not None: - info = json.loads(mobj.group('json')) - return [{ - 'id': video_id, - 'url': info[u'downloadUrl'], - 'uploader': info[u'username'], - 'upload_date': datetime.date.fromtimestamp(info[u'creationDate']).strftime('%Y%m%d'), - 'title': info[u'title'], - 'ext': video_extension, - 'thumbnail': info[u'thumbUrl'], - }] - - # We try looking in other parts of the webpage - video_url = self._search_regex(r'', - webpage, u'video URL') - - mobj = re.search(r'(.*) video by (.*) - Photobucket', webpage) - if mobj is None: - raise ExtractorError(u'Unable to extract title') - video_title = mobj.group(1).decode('utf-8') - video_uploader = mobj.group(2).decode('utf-8') - - return [{ - 'id': video_id.decode('utf-8'), - 'url': video_url.decode('utf-8'), - 'uploader': video_uploader, - 'upload_date': None, - 'title': video_title, - 'ext': video_extension.decode('utf-8'), - }] - - -class YahooIE(InfoExtractor): - """Information extractor for screen.yahoo.com.""" - _VALID_URL = r'http://screen\.yahoo\.com/.*?-(?P\d*?)\.html' - - def _real_extract(self, url): - mobj = re.match(self._VALID_URL, url) - if mobj is None: - raise ExtractorError(u'Invalid URL: %s' % url) - video_id = mobj.group('id') - webpage = self._download_webpage(url, video_id) - m_id = re.search(r'YUI\.namespace\("Media"\)\.CONTENT_ID = "(?P.+?)";', webpage) - - if m_id is None: - # TODO: Check which url parameters are required - info_url = 'http://cosmos.bcst.yahoo.com/rest/v2/pops;lmsoverride=1;outputformat=mrss;cb=974419660;id=%s;rd=news.yahoo.com;datacontext=mdb;lg=KCa2IihxG3qE60vQ7HtyUy' % video_id - webpage = self._download_webpage(info_url, video_id, u'Downloading info webpage') - info_re = r'''<!\[CDATA\[(?P<title>.*?)\]\]>.* - .*?)\]\]>.* - .*?)\ .*\]\]>.* - https?://)?(?:(?:www|player)\.)?vimeo(?Ppro)?\.com/(?:(?:(?:groups|album)/[^/]+)|(?:.*?)/)?(?Pplay_redirect_hls\?clip_id=)?(?:videos?/)?(?P[0-9]+)' - IE_NAME = u'vimeo' - - def _real_extract(self, url, new_video=True): - # Extract ID from URL - mobj = re.match(self._VALID_URL, url) - if mobj is None: - raise ExtractorError(u'Invalid URL: %s' % url) - - video_id = mobj.group('id') - if not mobj.group('proto'): - url = 'https://' + url - if mobj.group('direct_link') or mobj.group('pro'): - url = 'https://vimeo.com/' + video_id - - # Retrieve video webpage to extract further information - request = compat_urllib_request.Request(url, None, std_headers) - webpage = self._download_webpage(request, video_id) - - # Now we begin extracting as much information as we can from what we - # retrieved. First we extract the information common to all extractors, - # and latter we extract those that are Vimeo specific. - self.report_extraction(video_id) - - # Extract the config JSON - try: - config = webpage.split(' = {config:')[1].split(',assets:')[0] - config = json.loads(config) - except: - if re.search('The creator of this video has not given you permission to embed it on this domain.', webpage): - raise ExtractorError(u'The author has restricted the access to this video, try with the "--referer" option') - else: - raise ExtractorError(u'Unable to extract info section') - - # Extract title - video_title = config["video"]["title"] - - # Extract uploader and uploader_id - video_uploader = config["video"]["owner"]["name"] - video_uploader_id = config["video"]["owner"]["url"].split('/')[-1] if config["video"]["owner"]["url"] else None - - # Extract video thumbnail - video_thumbnail = config["video"]["thumbnail"] - - # Extract video description - video_description = get_element_by_attribute("itemprop", "description", webpage) - if video_description: video_description = clean_html(video_description) - else: video_description = u'' - - # Extract upload date - video_upload_date = None - mobj = re.search(r' 0: - video_quality = files[quality][0][2] - video_codec = files[quality][0][0] - video_extension = files[quality][0][1] - self.to_screen(u'%s: Downloading %s file at %s quality' % (video_id, video_codec.upper(), video_quality)) - break - else: - raise ExtractorError(u'No known codec found') - - video_url = "http://player.vimeo.com/play_redirect?clip_id=%s&sig=%s&time=%s&quality=%s&codecs=%s&type=moogaloop_local&embed_location=" \ - %(video_id, sig, timestamp, video_quality, video_codec.upper()) - - return [{ - 'id': video_id, - 'url': video_url, - 'uploader': video_uploader, - 'uploader_id': video_uploader_id, - 'upload_date': video_upload_date, - 'title': video_title, - 'ext': video_extension, - 'thumbnail': video_thumbnail, - 'description': video_description, - }] - - -class ArteTvIE(InfoExtractor): - """arte.tv information extractor.""" - - _VALID_URL = r'(?:http://)?videos\.arte\.tv/(?:fr|de)/videos/.*' - _LIVE_URL = r'index-[0-9]+\.html$' - - IE_NAME = u'arte.tv' - - def fetch_webpage(self, url): - request = compat_urllib_request.Request(url) - try: - self.report_download_webpage(url) - webpage = compat_urllib_request.urlopen(request).read() - except (compat_urllib_error.URLError, compat_http_client.HTTPException, socket.error) as err: - raise ExtractorError(u'Unable to retrieve video webpage: %s' % compat_str(err)) - except ValueError as err: - raise ExtractorError(u'Invalid URL: %s' % url) - return webpage - - def grep_webpage(self, url, regex, regexFlags, matchTuples): - page = self.fetch_webpage(url) - mobj = re.search(regex, page, regexFlags) - info = {} - - if mobj is None: - raise ExtractorError(u'Invalid URL: %s' % url) - - for (i, key, err) in matchTuples: - if mobj.group(i) is None: - raise ExtractorError(err) - else: - info[key] = mobj.group(i) - - return info - - def extractLiveStream(self, url): - video_lang = url.split('/')[-4] - info = self.grep_webpage( - url, - r'src="(.*?/videothek_js.*?\.js)', - 0, - [ - (1, 'url', u'Invalid URL: %s' % url) - ] - ) - http_host = url.split('/')[2] - next_url = 'http://%s%s' % (http_host, compat_urllib_parse.unquote(info.get('url'))) - info = self.grep_webpage( - next_url, - r'(s_artestras_scst_geoFRDE_' + video_lang + '.*?)\'.*?' + - '(http://.*?\.swf).*?' + - '(rtmp://.*?)\'', - re.DOTALL, - [ - (1, 'path', u'could not extract video path: %s' % url), - (2, 'player', u'could not extract video player: %s' % url), - (3, 'url', u'could not extract video url: %s' % url) - ] - ) - video_url = u'%s/%s' % (info.get('url'), info.get('path')) - - def extractPlus7Stream(self, url): - video_lang = url.split('/')[-3] - info = self.grep_webpage( - url, - r'param name="movie".*?videorefFileUrl=(http[^\'"&]*)', - 0, - [ - (1, 'url', u'Invalid URL: %s' % url) - ] - ) - next_url = compat_urllib_parse.unquote(info.get('url')) - info = self.grep_webpage( - next_url, - r'