From a4409a39ae30315a4f0c7cc8eb7c8f9a937225bc Mon Sep 17 00:00:00 2001 From: =?utf8?q?Rog=C3=A9rio=20Brito?= Date: Fri, 16 Mar 2018 12:37:39 -0300 Subject: [PATCH 1/1] New upstream version 2018.03.14 --- AUTHORS | 3 + ChangeLog | 166 ++++++++++++ README.md | 5 + README.txt | 5 + docs/supportedsites.md | 23 +- setup.cfg | 2 +- test/test_downloader_http.py | 125 +++++++++ test/test_http.py | 26 +- test/test_utils.py | 19 ++ youtube-dl | Bin 1622946 -> 1642009 bytes youtube-dl.1 | 8 + youtube-dl.bash-completion | 2 +- youtube-dl.fish | 1 + youtube-dl.zsh | 2 +- youtube_dl/YoutubeDL.py | 5 +- youtube_dl/__init__.py | 6 + youtube_dl/compat.py | 16 ++ youtube_dl/downloader/common.py | 3 + youtube_dl/downloader/hls.py | 9 +- youtube_dl/downloader/http.py | 106 ++++++-- youtube_dl/downloader/ism.py | 28 +- youtube_dl/extractor/abcnews.py | 4 +- youtube_dl/extractor/adn.py | 11 +- youtube_dl/extractor/aenetworks.py | 3 +- youtube_dl/extractor/afreecatv.py | 25 +- youtube_dl/extractor/amcnetworks.py | 5 +- youtube_dl/extractor/archiveorg.py | 2 +- youtube_dl/extractor/ard.py | 68 ++--- youtube_dl/extractor/brightcove.py | 21 +- youtube_dl/extractor/canvas.py | 4 +- youtube_dl/extractor/cbc.py | 62 +++++ youtube_dl/extractor/cbsinteractive.py | 4 +- youtube_dl/extractor/common.py | 14 +- youtube_dl/extractor/discovery.py | 22 +- youtube_dl/extractor/dplay.py | 7 +- youtube_dl/extractor/dvtv.py | 27 +- youtube_dl/extractor/extractors.py | 33 ++- youtube_dl/extractor/francetv.py | 296 +++++++++++++++------ youtube_dl/extractor/funk.py | 101 +++++-- youtube_dl/extractor/fusion.py | 6 +- youtube_dl/extractor/gameinformer.py | 11 +- youtube_dl/extractor/generic.py | 45 +++- youtube_dl/extractor/heise.py | 20 ++ youtube_dl/extractor/hidive.py | 96 +++++++ youtube_dl/extractor/la7.py | 4 +- youtube_dl/extractor/line.py | 90 +++++++ youtube_dl/extractor/mailru.py | 155 +++++++++++ youtube_dl/extractor/myvi.py | 71 ++++- youtube_dl/extractor/nationalgeographic.py | 6 +- youtube_dl/extractor/nbc.py | 53 ++++ youtube_dl/extractor/newgrounds.py | 16 +- youtube_dl/extractor/nexx.py | 148 +++++++---- youtube_dl/extractor/nick.py | 5 +- youtube_dl/extractor/ninegag.py | 2 +- youtube_dl/extractor/njpwworld.py | 3 +- youtube_dl/extractor/npo.py | 46 +++- youtube_dl/extractor/periscope.py | 19 +- youtube_dl/extractor/pladform.py | 60 +++-- youtube_dl/extractor/pokemon.py | 37 ++- youtube_dl/extractor/pornhub.py | 28 +- youtube_dl/extractor/prosiebensat1.py | 1 + youtube_dl/extractor/raywenderlich.py | 102 +++++++ youtube_dl/extractor/redbulltv.py | 96 ++----- youtube_dl/extractor/reddit.py | 2 +- youtube_dl/extractor/redtube.py | 21 +- youtube_dl/extractor/rtlnl.py | 47 ---- youtube_dl/extractor/ruutu.py | 8 +- youtube_dl/extractor/seznamzpravy.py | 1 - youtube_dl/extractor/sixplay.py | 13 +- youtube_dl/extractor/sonyliv.py | 5 +- youtube_dl/extractor/soundcloud.py | 3 +- youtube_dl/extractor/spankbang.py | 50 ++-- youtube_dl/extractor/streamango.py | 53 +++- youtube_dl/extractor/telebruxelles.py | 27 +- youtube_dl/extractor/telequebec.py | 136 ++++++++-- youtube_dl/extractor/tennistv.py | 112 ++++++++ youtube_dl/extractor/toggle.py | 14 +- youtube_dl/extractor/tvnow.py | 31 ++- youtube_dl/extractor/udemy.py | 6 + youtube_dl/extractor/veoh.py | 5 +- youtube_dl/extractor/vice.py | 272 ++++++++++++------- youtube_dl/extractor/viceland.py | 38 --- youtube_dl/extractor/vidio.py | 4 +- youtube_dl/extractor/vidlii.py | 125 +++++++++ youtube_dl/extractor/vidzi.py | 5 +- youtube_dl/extractor/vimeo.py | 27 +- youtube_dl/extractor/vk.py | 4 +- youtube_dl/extractor/xhamster.py | 2 +- youtube_dl/extractor/xnxx.py | 64 ++++- youtube_dl/extractor/yapfiles.py | 101 +++++++ youtube_dl/extractor/youtube.py | 19 +- youtube_dl/extractor/zdf.py | 19 +- youtube_dl/options.py | 5 + youtube_dl/postprocessor/embedthumbnail.py | 3 +- youtube_dl/utils.py | 51 +++- youtube_dl/version.py | 2 +- 96 files changed, 2887 insertions(+), 777 deletions(-) create mode 100644 test/test_downloader_http.py create mode 100644 youtube_dl/extractor/hidive.py create mode 100644 youtube_dl/extractor/line.py create mode 100644 youtube_dl/extractor/raywenderlich.py create mode 100644 youtube_dl/extractor/tennistv.py delete mode 100644 youtube_dl/extractor/viceland.py create mode 100644 youtube_dl/extractor/vidlii.py create mode 100644 youtube_dl/extractor/yapfiles.py diff --git a/AUTHORS b/AUTHORS index 40215a5..6223212 100644 --- a/AUTHORS +++ b/AUTHORS @@ -233,3 +233,6 @@ Daniel Weber Kay Bouché Yang Hongbo Lei Wang +Petr Novák +Leonardo Taccari +Martin Weinelt diff --git a/ChangeLog b/ChangeLog index 00c5c9c..47736e0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,169 @@ +version 2018.03.14 + +Extractors +* [soundcloud] Update client id (#15866) ++ [tennistv] Add support for tennistv.com ++ [line] Add support for tv.line.me (#9427) +* [xnxx] Fix extraction (#15817) +* [njpwworld] Fix authentication (#15815) + + +version 2018.03.10 + +Core +* [downloader/hls] Skip uplynk ad fragments (#15748) + +Extractors +* [pornhub] Don't override session cookies (#15697) ++ [raywenderlich] Add support for videos.raywenderlich.com (#15251) +* [funk] Fix extraction and rework extractors (#15792) +* [nexx] Restore reverse engineered approach ++ [heise] Add support for kaltura embeds (#14961, #15728) ++ [tvnow] Extract series metadata (#15774) +* [ruutu] Continue formats extraction on NOT-USED URLs (#15775) +* [vrtnu] Use redirect URL for building video JSON URL (#15767, #15769) +* [vimeo] Modernize login code and improve error messaging +* [archiveorg] Fix extraction (#15770, #15772) ++ [hidive] Add support for hidive.com (#15494) +* [afreecatv] Detect deleted videos +* [afreecatv] Fix extraction (#15755) +* [vice] Fix extraction and rework extractors (#11101, #13019, #13622, #13778) ++ [vidzi] Add support for vidzi.si (#15751) +* [npo] Fix typo + + +version 2018.03.03 + +Core ++ [utils] Add parse_resolution +Revert respect --prefer-insecure while updating + +Extractors ++ [yapfiles] Add support for yapfiles.ru (#15726, #11085) +* [spankbang] Fix formats extraction (#15727) +* [adn] Fix extraction (#15716) ++ [toggle] Extract DASH and ISM formats (#15721) ++ [nickelodeon] Add support for nickelodeon.com.tr (#15706) +* [npo] Validate and filter format URLs (#15709) + + +version 2018.02.26 + +Extractors +* [udemy] Use custom User-Agent (#15571) + + +version 2018.02.25 + +Core +* [postprocessor/embedthumbnail] Skip embedding when there aren't any + thumbnails (#12573) +* [extractor/common] Improve jwplayer subtitles extraction (#15695) + +Extractors ++ [vidlii] Add support for vidlii.com (#14472, #14512, #14779) ++ [streamango] Capture and output error messages +* [streamango] Fix extraction (#14160, #14256) ++ [telequebec] Add support for emissions (#14649, #14655) ++ [telequebec:live] Add support for live streams (#15688) ++ [mailru:music] Add support for mail.ru/music (#15618) +* [aenetworks] Switch to akamai HLS formats (#15612) +* [ytsearch] Fix flat title extraction (#11260, #15681) + + +version 2018.02.22 + +Core ++ [utils] Fixup some common URL typos in sanitize_url (#15649) +* Respect --prefer-insecure while updating (#15497) + +Extractors +* [vidio] Fix HLS URL extraction (#15675) ++ [nexx] Add support for arc.nexx.cloud URLs +* [nexx] Switch to arc API (#15652) +* [redtube] Fix duration extraction (#15659) ++ [sonyliv] Respect referrer (#15648) ++ [brightcove:new] Use referrer for formats' HTTP headers ++ [cbc] Add support for olympics.cbc.ca (#15535) ++ [fusion] Add support for fusion.tv (#15628) +* [npo] Improve quality metadata extraction +* [npo] Relax URL regular expression (#14987, #14994) ++ [npo] Capture and output error message ++ [pornhub] Add support for channels (#15613) +* [youtube] Handle shared URLs with generic extractor (#14303) + + +version 2018.02.11 + +Core ++ [YoutubeDL] Add support for filesize_approx in format selector (#15550) + +Extractors ++ [francetv] Add support for live streams (#13689) ++ [francetv] Add support for zouzous.fr and ludo.fr (#10454, #13087, #13103, + #15012) +* [francetv] Separate main extractor and rework others to delegate to it +* [francetv] Improve manifest URL signing (#15536) ++ [francetv] Sign m3u8 manifest URLs (#15565) ++ [veoh] Add support for embed URLs (#15561) +* [afreecatv] Fix extraction (#15556) +* [periscope] Use accessVideoPublic endpoint (#15554) +* [discovery] Fix auth request (#15542) ++ [6play] Extract subtitles (#15541) +* [newgrounds] Fix metadata extraction (#15531) ++ [nbc] Add support for stream.nbcolympics.com (#10295) +* [dvtv] Fix live streams extraction (#15442) + + +version 2018.02.08 + +Extractors ++ [myvi] Extend URL regular expression ++ [myvi:embed] Add support for myvi.tv embeds (#15521) ++ [prosiebensat1] Extend URL regular expression (#15520) +* [pokemon] Relax URL regular expression and extend title extraction (#15518) ++ [gameinformer] Use geo verification headers +* [la7] Fix extraction (#15501, #15502) +* [gameinformer] Fix brightcove id extraction (#15416) ++ [afreecatv] Pass referrer to video info request (#15507) ++ [telebruxelles] Add support for live streams +* [telebruxelles] Relax URL regular expression +* [telebruxelles] Fix extraction (#15504) +* [extractor/common] Respect secure schemes in _extract_wowza_formats + + +version 2018.02.04 + +Core +* [downloader/http] Randomize HTTP chunk size ++ [downloader/http] Add ability to pass downloader options via info dict +* [downloader/http] Fix 302 infinite loops by not reusing requests ++ Document http_chunk_size + +Extractors ++ [brightcove] Pass embed page URL as referrer (#15486) ++ [youtube] Enforce using chunked HTTP downloading for DASH formats + + +version 2018.02.03 + +Core ++ Introduce --http-chunk-size for chunk-based HTTP downloading ++ Add support for IronPython +* [downloader/ism] Fix Python 3.2 support + +Extractors +* [redbulltv] Fix extraction (#15481) +* [redtube] Fix metadata extraction (#15472) +* [pladform] Respect platform id and extract HLS formats (#15468) +- [rtlnl] Remove progressive formats (#15459) +* [6play] Do no modify asset URLs with a token (#15248) +* [nationalgeographic] Relax URL regular expression +* [dplay] Relax URL regular expression (#15458) +* [cbsinteractive] Fix data extraction (#15451) ++ [amcnetworks] Add support for sundancetv.com (#9260) + + version 2018.01.27 Core diff --git a/README.md b/README.md index eb05f84..7dba577 100644 --- a/README.md +++ b/README.md @@ -198,6 +198,11 @@ Alternatively, refer to the [developer instructions](#developer-instructions) fo size. By default, the buffer size is automatically resized from an initial value of SIZE. + --http-chunk-size SIZE Size of a chunk for chunk-based HTTP + downloading (e.g. 10485760 or 10M) (default + is disabled). May be useful for bypassing + bandwidth throttling imposed by a webserver + (experimental) --playlist-reverse Download playlist videos in reverse order --playlist-random Download playlist videos in random order --xattr-set-filesize Set file xattribute ytdl.filesize with diff --git a/README.txt b/README.txt index 54b6137..24959f0 100644 --- a/README.txt +++ b/README.txt @@ -227,6 +227,11 @@ Download Options: size. By default, the buffer size is automatically resized from an initial value of SIZE. + --http-chunk-size SIZE Size of a chunk for chunk-based HTTP + downloading (e.g. 10485760 or 10M) (default + is disabled). May be useful for bypassing + bandwidth throttling imposed by a webserver + (experimental) --playlist-reverse Download playlist videos in reverse order --playlist-random Download playlist videos in random order --xattr-set-filesize Set file xattribute ytdl.filesize with diff --git a/docs/supportedsites.md b/docs/supportedsites.md index c15b5ee..80358bb 100644 --- a/docs/supportedsites.md +++ b/docs/supportedsites.md @@ -135,6 +135,7 @@ - **CarambaTVPage** - **CartoonNetwork** - **cbc.ca** + - **cbc.ca:olympics** - **cbc.ca:player** - **cbc.ca:watch** - **cbc.ca:watch:video** @@ -189,7 +190,7 @@ - **CSpan**: C-SPAN - **CtsNews**: 華視新聞 - **CTVNews** - - **culturebox.francetvinfo.fr** + - **Culturebox** - **CultureUnplugged** - **curiositystream** - **curiositystream:collection** @@ -291,11 +292,14 @@ - **FranceTV** - **FranceTVEmbed** - **francetvinfo.fr** + - **FranceTVJeunesse** + - **FranceTVSite** - **Freesound** - **freespeech.org** - **FreshLive** - **Funimation** - - **Funk** + - **FunkChannel** + - **FunkMix** - **FunnyOrDie** - **Fusion** - **Fux** @@ -333,6 +337,7 @@ - **HentaiStigma** - **hetklokhuis** - **hgtv.com:show** + - **HiDive** - **HistoricFilms** - **history:topic**: History.com Topic - **hitbox** @@ -422,6 +427,7 @@ - **limelight** - **limelight:channel** - **limelight:channel_list** + - **LineTV** - **LiTV** - **LiveLeak** - **LiveLeakEmbed** @@ -437,6 +443,8 @@ - **m6** - **macgamestore**: MacGameStore trailers - **mailru**: Видео@Mail.Ru + - **mailru:music**: Музыка@Mail.Ru + - **mailru:music:search**: Музыка@Mail.Ru - **MakersChannel** - **MakerTV** - **mangomolo:live** @@ -502,6 +510,7 @@ - **MySpass** - **Myvi** - **MyVidster** + - **MyviEmbed** - **n-tv.de** - **natgeo** - **natgeo:episodeguide** @@ -510,7 +519,8 @@ - **NBA** - **NBC** - **NBCNews** - - **NBCOlympics** + - **nbcolympics** + - **nbcolympics:stream** - **NBCSports** - **NBCSportsVPlayer** - **ndr**: NDR.de - Norddeutscher Rundfunk @@ -667,6 +677,7 @@ - **RaiPlay** - **RaiPlayLive** - **RaiPlayPlaylist** + - **RayWenderlich** - **RBMARadio** - **RDS**: RDS.ca - **RedBullTV** @@ -815,8 +826,11 @@ - **Telegraaf** - **TeleMB** - **TeleQuebec** + - **TeleQuebecEmission** + - **TeleQuebecLive** - **TeleTask** - **Telewebion** + - **TennisTV** - **TF1** - **TFO** - **TheIntercept** @@ -925,7 +939,6 @@ - **vice** - **vice:article** - **vice:show** - - **Viceland** - **Vidbit** - **Viddler** - **Videa** @@ -941,6 +954,7 @@ - **VideoPress** - **videoweed**: VideoWeed - **Vidio** + - **VidLii** - **vidme** - **vidme:user** - **vidme:user:likes** @@ -1045,6 +1059,7 @@ - **yandexmusic:album**: Яндекс.Музыка - Альбом - **yandexmusic:playlist**: Яндекс.Музыка - Плейлист - **yandexmusic:track**: Яндекс.Музыка - Трек + - **YapFiles** - **YesJapan** - **yinyuetai:video**: 音悦Tai - **Ynet** diff --git a/setup.cfg b/setup.cfg index 2dc06ff..5208f7a 100644 --- a/setup.cfg +++ b/setup.cfg @@ -3,4 +3,4 @@ universal = True [flake8] exclude = youtube_dl/extractor/__init__.py,devscripts/buildserver.py,devscripts/lazy_load_template.py,devscripts/make_issue_template.py,setup.py,build,.git -ignore = E402,E501,E731 +ignore = E402,E501,E731,E741 diff --git a/test/test_downloader_http.py b/test/test_downloader_http.py new file mode 100644 index 0000000..5cf2bf1 --- /dev/null +++ b/test/test_downloader_http.py @@ -0,0 +1,125 @@ +#!/usr/bin/env python +# coding: utf-8 +from __future__ import unicode_literals + +# Allow direct execution +import os +import re +import sys +import unittest +sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) + +from test.helper import try_rm +from youtube_dl import YoutubeDL +from youtube_dl.compat import compat_http_server +from youtube_dl.downloader.http import HttpFD +from youtube_dl.utils import encodeFilename +import ssl +import threading + +TEST_DIR = os.path.dirname(os.path.abspath(__file__)) + + +def http_server_port(httpd): + if os.name == 'java' and isinstance(httpd.socket, ssl.SSLSocket): + # In Jython SSLSocket is not a subclass of socket.socket + sock = httpd.socket.sock + else: + sock = httpd.socket + return sock.getsockname()[1] + + +TEST_SIZE = 10 * 1024 + + +class HTTPTestRequestHandler(compat_http_server.BaseHTTPRequestHandler): + def log_message(self, format, *args): + pass + + def send_content_range(self, total=None): + range_header = self.headers.get('Range') + start = end = None + if range_header: + mobj = re.search(r'^bytes=(\d+)-(\d+)', range_header) + if mobj: + start = int(mobj.group(1)) + end = int(mobj.group(2)) + valid_range = start is not None and end is not None + if valid_range: + content_range = 'bytes %d-%d' % (start, end) + if total: + content_range += '/%d' % total + self.send_header('Content-Range', content_range) + return (end - start + 1) if valid_range else total + + def serve(self, range=True, content_length=True): + self.send_response(200) + self.send_header('Content-Type', 'video/mp4') + size = TEST_SIZE + if range: + size = self.send_content_range(TEST_SIZE) + if content_length: + self.send_header('Content-Length', size) + self.end_headers() + self.wfile.write(b'#' * size) + + def do_GET(self): + if self.path == '/regular': + self.serve() + elif self.path == '/no-content-length': + self.serve(content_length=False) + elif self.path == '/no-range': + self.serve(range=False) + elif self.path == '/no-range-no-content-length': + self.serve(range=False, content_length=False) + else: + assert False + + +class FakeLogger(object): + def debug(self, msg): + pass + + def warning(self, msg): + pass + + def error(self, msg): + pass + + +class TestHttpFD(unittest.TestCase): + def setUp(self): + self.httpd = compat_http_server.HTTPServer( + ('127.0.0.1', 0), HTTPTestRequestHandler) + self.port = http_server_port(self.httpd) + self.server_thread = threading.Thread(target=self.httpd.serve_forever) + self.server_thread.daemon = True + self.server_thread.start() + + def download(self, params, ep): + params['logger'] = FakeLogger() + ydl = YoutubeDL(params) + downloader = HttpFD(ydl, params) + filename = 'testfile.mp4' + try_rm(encodeFilename(filename)) + self.assertTrue(downloader.real_download(filename, { + 'url': 'http://127.0.0.1:%d/%s' % (self.port, ep), + })) + self.assertEqual(os.path.getsize(encodeFilename(filename)), TEST_SIZE) + try_rm(encodeFilename(filename)) + + def download_all(self, params): + for ep in ('regular', 'no-content-length', 'no-range', 'no-range-no-content-length'): + self.download(params, ep) + + def test_regular(self): + self.download_all({}) + + def test_chunked(self): + self.download_all({ + 'http_chunk_size': 1000, + }) + + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_http.py b/test/test_http.py index 7a7a351..409fec9 100644 --- a/test/test_http.py +++ b/test/test_http.py @@ -47,7 +47,7 @@ class HTTPTestRequestHandler(compat_http_server.BaseHTTPRequestHandler): self.end_headers() return - new_url = 'http://localhost:%d/中文.html' % http_server_port(self.server) + new_url = 'http://127.0.0.1:%d/中文.html' % http_server_port(self.server) self.send_response(302) self.send_header(b'Location', new_url.encode('utf-8')) self.end_headers() @@ -74,7 +74,7 @@ class FakeLogger(object): class TestHTTP(unittest.TestCase): def setUp(self): self.httpd = compat_http_server.HTTPServer( - ('localhost', 0), HTTPTestRequestHandler) + ('127.0.0.1', 0), HTTPTestRequestHandler) self.port = http_server_port(self.httpd) self.server_thread = threading.Thread(target=self.httpd.serve_forever) self.server_thread.daemon = True @@ -86,15 +86,15 @@ class TestHTTP(unittest.TestCase): return ydl = YoutubeDL({'logger': FakeLogger()}) - r = ydl.extract_info('http://localhost:%d/302' % self.port) - self.assertEqual(r['entries'][0]['url'], 'http://localhost:%d/vid.mp4' % self.port) + r = ydl.extract_info('http://127.0.0.1:%d/302' % self.port) + self.assertEqual(r['entries'][0]['url'], 'http://127.0.0.1:%d/vid.mp4' % self.port) class TestHTTPS(unittest.TestCase): def setUp(self): certfn = os.path.join(TEST_DIR, 'testcert.pem') self.httpd = compat_http_server.HTTPServer( - ('localhost', 0), HTTPTestRequestHandler) + ('127.0.0.1', 0), HTTPTestRequestHandler) self.httpd.socket = ssl.wrap_socket( self.httpd.socket, certfile=certfn, server_side=True) self.port = http_server_port(self.httpd) @@ -107,11 +107,11 @@ class TestHTTPS(unittest.TestCase): ydl = YoutubeDL({'logger': FakeLogger()}) self.assertRaises( Exception, - ydl.extract_info, 'https://localhost:%d/video.html' % self.port) + ydl.extract_info, 'https://127.0.0.1:%d/video.html' % self.port) ydl = YoutubeDL({'logger': FakeLogger(), 'nocheckcertificate': True}) - r = ydl.extract_info('https://localhost:%d/video.html' % self.port) - self.assertEqual(r['entries'][0]['url'], 'https://localhost:%d/vid.mp4' % self.port) + r = ydl.extract_info('https://127.0.0.1:%d/video.html' % self.port) + self.assertEqual(r['entries'][0]['url'], 'https://127.0.0.1:%d/vid.mp4' % self.port) def _build_proxy_handler(name): @@ -132,23 +132,23 @@ def _build_proxy_handler(name): class TestProxy(unittest.TestCase): def setUp(self): self.proxy = compat_http_server.HTTPServer( - ('localhost', 0), _build_proxy_handler('normal')) + ('127.0.0.1', 0), _build_proxy_handler('normal')) self.port = http_server_port(self.proxy) self.proxy_thread = threading.Thread(target=self.proxy.serve_forever) self.proxy_thread.daemon = True self.proxy_thread.start() self.geo_proxy = compat_http_server.HTTPServer( - ('localhost', 0), _build_proxy_handler('geo')) + ('127.0.0.1', 0), _build_proxy_handler('geo')) self.geo_port = http_server_port(self.geo_proxy) self.geo_proxy_thread = threading.Thread(target=self.geo_proxy.serve_forever) self.geo_proxy_thread.daemon = True self.geo_proxy_thread.start() def test_proxy(self): - geo_proxy = 'localhost:{0}'.format(self.geo_port) + geo_proxy = '127.0.0.1:{0}'.format(self.geo_port) ydl = YoutubeDL({ - 'proxy': 'localhost:{0}'.format(self.port), + 'proxy': '127.0.0.1:{0}'.format(self.port), 'geo_verification_proxy': geo_proxy, }) url = 'http://foo.com/bar' @@ -162,7 +162,7 @@ class TestProxy(unittest.TestCase): def test_proxy_with_idn(self): ydl = YoutubeDL({ - 'proxy': 'localhost:{0}'.format(self.port), + 'proxy': '127.0.0.1:{0}'.format(self.port), }) url = 'http://中文.tw/' response = ydl.urlopen(url).read().decode('utf-8') diff --git a/test/test_utils.py b/test/test_utils.py index fdf6031..a1fe6fd 100644 --- a/test/test_utils.py +++ b/test/test_utils.py @@ -53,10 +53,12 @@ from youtube_dl.utils import ( parse_filesize, parse_count, parse_iso8601, + parse_resolution, pkcs1pad, read_batch_urls, sanitize_filename, sanitize_path, + sanitize_url, expand_path, prepend_extension, replace_extension, @@ -219,6 +221,12 @@ class TestUtil(unittest.TestCase): self.assertEqual(sanitize_path('./abc'), 'abc') self.assertEqual(sanitize_path('./../abc'), '..\\abc') + def test_sanitize_url(self): + self.assertEqual(sanitize_url('//foo.bar'), 'http://foo.bar') + self.assertEqual(sanitize_url('httpss://foo.bar'), 'https://foo.bar') + self.assertEqual(sanitize_url('rmtps://foo.bar'), 'rtmps://foo.bar') + self.assertEqual(sanitize_url('https://foo.bar'), 'https://foo.bar') + def test_expand_path(self): def env(var): return '%{0}%'.format(var) if sys.platform == 'win32' else '${0}'.format(var) @@ -344,6 +352,7 @@ class TestUtil(unittest.TestCase): self.assertEqual(unified_timestamp('2017-03-30T17:52:41Q'), 1490896361) self.assertEqual(unified_timestamp('Sep 11, 2013 | 5:49 AM'), 1378878540) self.assertEqual(unified_timestamp('December 15, 2017 at 7:49 am'), 1513324140) + self.assertEqual(unified_timestamp('2018-03-14T08:32:43.1493874+00:00'), 1521016363) def test_determine_ext(self): self.assertEqual(determine_ext('http://example.com/foo/bar.mp4/?download'), 'mp4') @@ -975,6 +984,16 @@ class TestUtil(unittest.TestCase): self.assertEqual(parse_count('1.1kk '), 1100000) self.assertEqual(parse_count('1.1kk views'), 1100000) + def test_parse_resolution(self): + self.assertEqual(parse_resolution(None), {}) + self.assertEqual(parse_resolution(''), {}) + self.assertEqual(parse_resolution('1920x1080'), {'width': 1920, 'height': 1080}) + self.assertEqual(parse_resolution('1920×1080'), {'width': 1920, 'height': 1080}) + self.assertEqual(parse_resolution('1920 x 1080'), {'width': 1920, 'height': 1080}) + self.assertEqual(parse_resolution('720p'), {'height': 720}) + self.assertEqual(parse_resolution('4k'), {'height': 2160}) + self.assertEqual(parse_resolution('8K'), {'height': 4320}) + def test_version_tuple(self): self.assertEqual(version_tuple('1'), (1,)) self.assertEqual(version_tuple('10.23.344'), (10, 23, 344)) diff --git a/youtube-dl b/youtube-dl index fb4e30dda41667da0ab86275791106f0e5717519..56daa4b63bc52c7df059c5f00e2303143c887c85 100755 GIT binary patch delta 367774 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%0AFWp0<|%MR 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≷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≺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%0Dnlc+p=}3 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%0Dg6og@L?V#N94ri2 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⋙XKeR^ibQEB<~J5Ij|XgZGF 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%0DJ)_&}^#+yUNFqgm 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%0Dqd6I79a6ykq;Jp& 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

@x%#z!J;Q~kFq*T@pK?qtsuxJ;1_ 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 diff --git a/youtube-dl.1 b/youtube-dl.1 index 3800a96..b859b1d 100644 --- a/youtube-dl.1 +++ b/youtube-dl.1 @@ -331,6 +331,14 @@ value of SIZE. .RS .RE .TP +.B \-\-http\-chunk\-size \f[I]SIZE\f[] +Size of a chunk for chunk\-based HTTP downloading (e.g. +10485760 or 10M) (default is disabled). +May be useful for bypassing bandwidth throttling imposed by a webserver +(experimental) +.RS +.RE +.TP .B \-\-playlist\-reverse Download playlist videos in reverse order .RS diff --git a/youtube-dl.bash-completion b/youtube-dl.bash-completion index 2cf75de..c1b86f2 100644 --- a/youtube-dl.bash-completion +++ b/youtube-dl.bash-completion @@ -4,7 +4,7 @@ __youtube_dl() COMPREPLY=() cur="${COMP_WORDS[COMP_CWORD]}" prev="${COMP_WORDS[COMP_CWORD-1]}" - opts="--help --version --update --ignore-errors --abort-on-error --dump-user-agent --list-extractors --extractor-descriptions --force-generic-extractor --default-search --ignore-config --config-location --flat-playlist --mark-watched --no-mark-watched --no-color --proxy --socket-timeout --source-address --force-ipv4 --force-ipv6 --geo-verification-proxy --cn-verification-proxy --geo-bypass --no-geo-bypass --geo-bypass-country --playlist-start --playlist-end --playlist-items --match-title --reject-title --max-downloads --min-filesize --max-filesize --date --datebefore --dateafter --min-views --max-views --match-filter --no-playlist --yes-playlist --age-limit --download-archive --include-ads --limit-rate --retries --fragment-retries --skip-unavailable-fragments --abort-on-unavailable-fragment --keep-fragments --buffer-size --no-resize-buffer --test --playlist-reverse --playlist-random --xattr-set-filesize --hls-prefer-native --hls-prefer-ffmpeg --hls-use-mpegts --external-downloader --external-downloader-args --batch-file --id --output --autonumber-size --autonumber-start --restrict-filenames --auto-number --title --literal --no-overwrites --continue --no-continue --no-part --no-mtime --write-description --write-info-json --write-annotations --load-info-json --cookies --cache-dir --no-cache-dir --rm-cache-dir --write-thumbnail --write-all-thumbnails --list-thumbnails --quiet --no-warnings --simulate --skip-download --get-url --get-title --get-id --get-thumbnail --get-description --get-duration --get-filename --get-format --dump-json --dump-single-json --print-json --newline --no-progress --console-title --verbose --dump-pages --write-pages --youtube-print-sig-code --print-traffic --call-home --no-call-home --encoding --no-check-certificate --prefer-insecure --user-agent --referer --add-header --bidi-workaround --sleep-interval --max-sleep-interval --format --all-formats --prefer-free-formats --list-formats --youtube-include-dash-manifest --youtube-skip-dash-manifest --merge-output-format --write-sub --write-auto-sub --all-subs --list-subs --sub-format --sub-lang --username --password --twofactor --netrc --video-password --ap-mso --ap-username --ap-password --ap-list-mso --extract-audio --audio-format --audio-quality --recode-video --postprocessor-args --keep-video --no-post-overwrites --embed-subs --embed-thumbnail --add-metadata --metadata-from-title --xattrs --fixup --prefer-avconv --prefer-ffmpeg --ffmpeg-location --exec --convert-subs" + opts="--help --version --update --ignore-errors --abort-on-error --dump-user-agent --list-extractors --extractor-descriptions --force-generic-extractor --default-search --ignore-config --config-location --flat-playlist --mark-watched --no-mark-watched --no-color --proxy --socket-timeout --source-address --force-ipv4 --force-ipv6 --geo-verification-proxy --cn-verification-proxy --geo-bypass --no-geo-bypass --geo-bypass-country --playlist-start --playlist-end --playlist-items --match-title --reject-title --max-downloads --min-filesize --max-filesize --date --datebefore --dateafter --min-views --max-views --match-filter --no-playlist --yes-playlist --age-limit --download-archive --include-ads --limit-rate --retries --fragment-retries --skip-unavailable-fragments --abort-on-unavailable-fragment --keep-fragments --buffer-size --no-resize-buffer --http-chunk-size --test --playlist-reverse --playlist-random --xattr-set-filesize --hls-prefer-native --hls-prefer-ffmpeg --hls-use-mpegts --external-downloader --external-downloader-args --batch-file --id --output --autonumber-size --autonumber-start --restrict-filenames --auto-number --title --literal --no-overwrites --continue --no-continue --no-part --no-mtime --write-description --write-info-json --write-annotations --load-info-json --cookies --cache-dir --no-cache-dir --rm-cache-dir --write-thumbnail --write-all-thumbnails --list-thumbnails --quiet --no-warnings --simulate --skip-download --get-url --get-title --get-id --get-thumbnail --get-description --get-duration --get-filename --get-format --dump-json --dump-single-json --print-json --newline --no-progress --console-title --verbose --dump-pages --write-pages --youtube-print-sig-code --print-traffic --call-home --no-call-home --encoding --no-check-certificate --prefer-insecure --user-agent --referer --add-header --bidi-workaround --sleep-interval --max-sleep-interval --format --all-formats --prefer-free-formats --list-formats --youtube-include-dash-manifest --youtube-skip-dash-manifest --merge-output-format --write-sub --write-auto-sub --all-subs --list-subs --sub-format --sub-lang --username --password --twofactor --netrc --video-password --ap-mso --ap-username --ap-password --ap-list-mso --extract-audio --audio-format --audio-quality --recode-video --postprocessor-args --keep-video --no-post-overwrites --embed-subs --embed-thumbnail --add-metadata --metadata-from-title --xattrs --fixup --prefer-avconv --prefer-ffmpeg --ffmpeg-location --exec --convert-subs" keywords=":ytfavorites :ytrecommended :ytsubscriptions :ytwatchlater :ythistory" fileopts="-a|--batch-file|--download-archive|--cookies|--load-info" diropts="--cache-dir" diff --git a/youtube-dl.fish b/youtube-dl.fish index 00d1845..aa7c59b 100644 --- a/youtube-dl.fish +++ b/youtube-dl.fish @@ -52,6 +52,7 @@ complete --command youtube-dl --long-option abort-on-unavailable-fragment --desc complete --command youtube-dl --long-option keep-fragments --description 'Keep downloaded fragments on disk after downloading is finished; fragments are erased by default' complete --command youtube-dl --long-option buffer-size --description 'Size of download buffer (e.g. 1024 or 16K) (default is %default)' complete --command youtube-dl --long-option no-resize-buffer --description 'Do not automatically adjust the buffer size. By default, the buffer size is automatically resized from an initial value of SIZE.' +complete --command youtube-dl --long-option http-chunk-size --description 'Size of a chunk for chunk-based HTTP downloading (e.g. 10485760 or 10M) (default is disabled). May be useful for bypassing bandwidth throttling imposed by a webserver (experimental)' complete --command youtube-dl --long-option test complete --command youtube-dl --long-option playlist-reverse --description 'Download playlist videos in reverse order' complete --command youtube-dl --long-option playlist-random --description 'Download playlist videos in random order' diff --git a/youtube-dl.zsh b/youtube-dl.zsh index 2d670ee..1f573a5 100644 --- a/youtube-dl.zsh +++ b/youtube-dl.zsh @@ -19,7 +19,7 @@ __youtube_dl() { elif [[ ${prev} == "--recode-video" ]]; then _arguments '*: :(mp4 flv ogg webm mkv)' else - _arguments '*: :(--help --version --update --ignore-errors --abort-on-error --dump-user-agent --list-extractors --extractor-descriptions --force-generic-extractor --default-search --ignore-config --config-location --flat-playlist --mark-watched --no-mark-watched --no-color --proxy --socket-timeout --source-address --force-ipv4 --force-ipv6 --geo-verification-proxy --cn-verification-proxy --geo-bypass --no-geo-bypass --geo-bypass-country --playlist-start --playlist-end --playlist-items --match-title --reject-title --max-downloads --min-filesize --max-filesize --date --datebefore --dateafter --min-views --max-views --match-filter --no-playlist --yes-playlist --age-limit --download-archive --include-ads --limit-rate --retries --fragment-retries --skip-unavailable-fragments --abort-on-unavailable-fragment --keep-fragments --buffer-size --no-resize-buffer --test --playlist-reverse --playlist-random --xattr-set-filesize --hls-prefer-native --hls-prefer-ffmpeg --hls-use-mpegts --external-downloader --external-downloader-args --batch-file --id --output --autonumber-size --autonumber-start --restrict-filenames --auto-number --title --literal --no-overwrites --continue --no-continue --no-part --no-mtime --write-description --write-info-json --write-annotations --load-info-json --cookies --cache-dir --no-cache-dir --rm-cache-dir --write-thumbnail --write-all-thumbnails --list-thumbnails --quiet --no-warnings --simulate --skip-download --get-url --get-title --get-id --get-thumbnail --get-description --get-duration --get-filename --get-format --dump-json --dump-single-json --print-json --newline --no-progress --console-title --verbose --dump-pages --write-pages --youtube-print-sig-code --print-traffic --call-home --no-call-home --encoding --no-check-certificate --prefer-insecure --user-agent --referer --add-header --bidi-workaround --sleep-interval --max-sleep-interval --format --all-formats --prefer-free-formats --list-formats --youtube-include-dash-manifest --youtube-skip-dash-manifest --merge-output-format --write-sub --write-auto-sub --all-subs --list-subs --sub-format --sub-lang --username --password --twofactor --netrc --video-password --ap-mso --ap-username --ap-password --ap-list-mso --extract-audio --audio-format --audio-quality --recode-video --postprocessor-args --keep-video --no-post-overwrites --embed-subs --embed-thumbnail --add-metadata --metadata-from-title --xattrs --fixup --prefer-avconv --prefer-ffmpeg --ffmpeg-location --exec --convert-subs)' + _arguments '*: :(--help --version --update --ignore-errors --abort-on-error --dump-user-agent --list-extractors --extractor-descriptions --force-generic-extractor --default-search --ignore-config --config-location --flat-playlist --mark-watched --no-mark-watched --no-color --proxy --socket-timeout --source-address --force-ipv4 --force-ipv6 --geo-verification-proxy --cn-verification-proxy --geo-bypass --no-geo-bypass --geo-bypass-country --playlist-start --playlist-end --playlist-items --match-title --reject-title --max-downloads --min-filesize --max-filesize --date --datebefore --dateafter --min-views --max-views --match-filter --no-playlist --yes-playlist --age-limit --download-archive --include-ads --limit-rate --retries --fragment-retries --skip-unavailable-fragments --abort-on-unavailable-fragment --keep-fragments --buffer-size --no-resize-buffer --http-chunk-size --test --playlist-reverse --playlist-random --xattr-set-filesize --hls-prefer-native --hls-prefer-ffmpeg --hls-use-mpegts --external-downloader --external-downloader-args --batch-file --id --output --autonumber-size --autonumber-start --restrict-filenames --auto-number --title --literal --no-overwrites --continue --no-continue --no-part --no-mtime --write-description --write-info-json --write-annotations --load-info-json --cookies --cache-dir --no-cache-dir --rm-cache-dir --write-thumbnail --write-all-thumbnails --list-thumbnails --quiet --no-warnings --simulate --skip-download --get-url --get-title --get-id --get-thumbnail --get-description --get-duration --get-filename --get-format --dump-json --dump-single-json --print-json --newline --no-progress --console-title --verbose --dump-pages --write-pages --youtube-print-sig-code --print-traffic --call-home --no-call-home --encoding --no-check-certificate --prefer-insecure --user-agent --referer --add-header --bidi-workaround --sleep-interval --max-sleep-interval --format --all-formats --prefer-free-formats --list-formats --youtube-include-dash-manifest --youtube-skip-dash-manifest --merge-output-format --write-sub --write-auto-sub --all-subs --list-subs --sub-format --sub-lang --username --password --twofactor --netrc --video-password --ap-mso --ap-username --ap-password --ap-list-mso --extract-audio --audio-format --audio-quality --recode-video --postprocessor-args --keep-video --no-post-overwrites --embed-subs --embed-thumbnail --add-metadata --metadata-from-title --xattrs --fixup --prefer-avconv --prefer-ffmpeg --ffmpeg-location --exec --convert-subs)' fi ;; esac diff --git a/youtube_dl/YoutubeDL.py b/youtube_dl/YoutubeDL.py index 97bd9c5..523dd1f 100755 --- a/youtube_dl/YoutubeDL.py +++ b/youtube_dl/YoutubeDL.py @@ -298,7 +298,8 @@ class YoutubeDL(object): the downloader (see youtube_dl/downloader/common.py): nopart, updatetime, buffersize, ratelimit, min_filesize, max_filesize, test, noresizebuffer, retries, continuedl, noprogress, consoletitle, - xattr_set_filesize, external_downloader_args, hls_use_mpegts. + xattr_set_filesize, external_downloader_args, hls_use_mpegts, + http_chunk_size. The following options are used by the post processors: prefer_ffmpeg: If True, use ffmpeg instead of avconv if both are available, @@ -1032,7 +1033,7 @@ class YoutubeDL(object): '!=': operator.ne, } operator_rex = re.compile(r'''(?x)\s* - (?Pwidth|height|tbr|abr|vbr|asr|filesize|fps) + (?Pwidth|height|tbr|abr|vbr|asr|filesize|filesize_approx|fps) \s*(?P%s)(?P\s*\?)?\s* (?P[0-9.]+(?:[kKmMgGtTpPeEzZyY]i?[Bb]?)?) $ diff --git a/youtube_dl/__init__.py b/youtube_dl/__init__.py index ba684a0..9bb9524 100644 --- a/youtube_dl/__init__.py +++ b/youtube_dl/__init__.py @@ -191,6 +191,11 @@ def _real_main(argv=None): if numeric_buffersize is None: parser.error('invalid buffer size specified') opts.buffersize = numeric_buffersize + if opts.http_chunk_size is not None: + numeric_chunksize = FileDownloader.parse_bytes(opts.http_chunk_size) + if not numeric_chunksize: + parser.error('invalid http chunk size specified') + opts.http_chunk_size = numeric_chunksize if opts.playliststart <= 0: raise ValueError('Playlist start must be positive') if opts.playlistend not in (-1, None) and opts.playlistend < opts.playliststart: @@ -346,6 +351,7 @@ def _real_main(argv=None): 'keep_fragments': opts.keep_fragments, 'buffersize': opts.buffersize, 'noresizebuffer': opts.noresizebuffer, + 'http_chunk_size': opts.http_chunk_size, 'continuedl': opts.continue_dl, 'noprogress': opts.noprogress, 'progress_with_newline': opts.progress_with_newline, diff --git a/youtube_dl/compat.py b/youtube_dl/compat.py index 646c9d7..4a611f1 100644 --- a/youtube_dl/compat.py +++ b/youtube_dl/compat.py @@ -2897,9 +2897,24 @@ except TypeError: if isinstance(spec, compat_str): spec = spec.encode('ascii') return struct.unpack(spec, *args) + + class compat_Struct(struct.Struct): + def __init__(self, fmt): + if isinstance(fmt, compat_str): + fmt = fmt.encode('ascii') + super(compat_Struct, self).__init__(fmt) else: compat_struct_pack = struct.pack compat_struct_unpack = struct.unpack + if platform.python_implementation() == 'IronPython' and sys.version_info < (2, 7, 8): + class compat_Struct(struct.Struct): + def unpack(self, string): + if not isinstance(string, buffer): # noqa: F821 + string = buffer(string) # noqa: F821 + return super(compat_Struct, self).unpack(string) + else: + compat_Struct = struct.Struct + try: from future_builtins import zip as compat_zip @@ -2941,6 +2956,7 @@ __all__ = [ 'compat_HTMLParseError', 'compat_HTMLParser', 'compat_HTTPError', + 'compat_Struct', 'compat_b64decode', 'compat_basestring', 'compat_chr', diff --git a/youtube_dl/downloader/common.py b/youtube_dl/downloader/common.py index 75b8166..cc16bbb 100644 --- a/youtube_dl/downloader/common.py +++ b/youtube_dl/downloader/common.py @@ -49,6 +49,9 @@ class FileDownloader(object): external_downloader_args: A list of additional command-line arguments for the external downloader. hls_use_mpegts: Use the mpegts container for HLS videos. + http_chunk_size: Size of a chunk for chunk-based HTTP downloading. May be + useful for bypassing bandwidth throttling imposed by + a webserver (experimental) Subclasses of this one must re-define the real_download method. """ diff --git a/youtube_dl/downloader/hls.py b/youtube_dl/downloader/hls.py index 4dc3ab4..fd30452 100644 --- a/youtube_dl/downloader/hls.py +++ b/youtube_dl/downloader/hls.py @@ -75,8 +75,9 @@ class HlsFD(FragmentFD): fd.add_progress_hook(ph) return fd.real_download(filename, info_dict) - def anvato_ad(s): - return s.startswith('#ANVATO-SEGMENT-INFO') and 'type=ad' in s + def is_ad_fragment(s): + return (s.startswith('#ANVATO-SEGMENT-INFO') and 'type=ad' in s or + s.startswith('#UPLYNK-SEGMENT') and s.endswith(',ad')) media_frags = 0 ad_frags = 0 @@ -86,7 +87,7 @@ class HlsFD(FragmentFD): if not line: continue if line.startswith('#'): - if anvato_ad(line): + if is_ad_fragment(line): ad_frags += 1 ad_frag_next = True continue @@ -195,7 +196,7 @@ class HlsFD(FragmentFD): 'start': sub_range_start, 'end': sub_range_start + int(splitted_byte_range[0]), } - elif anvato_ad(line): + elif is_ad_fragment(line): ad_frag_next = True self._finish_frag_download(ctx) diff --git a/youtube_dl/downloader/http.py b/youtube_dl/downloader/http.py index 3ff26ff..a22875f 100644 --- a/youtube_dl/downloader/http.py +++ b/youtube_dl/downloader/http.py @@ -4,13 +4,18 @@ import errno import os import socket import time +import random import re from .common import FileDownloader -from ..compat import compat_urllib_error +from ..compat import ( + compat_str, + compat_urllib_error, +) from ..utils import ( ContentTooShortError, encodeFilename, + int_or_none, sanitize_open, sanitized_Request, write_xattr, @@ -38,21 +43,26 @@ class HttpFD(FileDownloader): add_headers = info_dict.get('http_headers') if add_headers: headers.update(add_headers) - basic_request = sanitized_Request(url, None, headers) - request = sanitized_Request(url, None, headers) is_test = self.params.get('test', False) - - if is_test: - request.add_header('Range', 'bytes=0-%s' % str(self._TEST_FILE_SIZE - 1)) + chunk_size = self._TEST_FILE_SIZE if is_test else ( + info_dict.get('downloader_options', {}).get('http_chunk_size') or + self.params.get('http_chunk_size') or 0) ctx.open_mode = 'wb' ctx.resume_len = 0 + ctx.data_len = None + ctx.block_size = self.params.get('buffersize', 1024) + ctx.start_time = time.time() + ctx.chunk_size = None if self.params.get('continuedl', True): # Establish possible resume length if os.path.isfile(encodeFilename(ctx.tmpfilename)): - ctx.resume_len = os.path.getsize(encodeFilename(ctx.tmpfilename)) + ctx.resume_len = os.path.getsize( + encodeFilename(ctx.tmpfilename)) + + ctx.is_resume = ctx.resume_len > 0 count = 0 retries = self.params.get('retries', 0) @@ -64,11 +74,36 @@ class HttpFD(FileDownloader): def __init__(self, source_error): self.source_error = source_error + class NextFragment(Exception): + pass + + def set_range(req, start, end): + range_header = 'bytes=%d-' % start + if end: + range_header += compat_str(end) + req.add_header('Range', range_header) + def establish_connection(): - if ctx.resume_len != 0: - self.report_resuming_byte(ctx.resume_len) - request.add_header('Range', 'bytes=%d-' % ctx.resume_len) + ctx.chunk_size = (random.randint(int(chunk_size * 0.95), chunk_size) + if not is_test and chunk_size else chunk_size) + if ctx.resume_len > 0: + range_start = ctx.resume_len + if ctx.is_resume: + self.report_resuming_byte(ctx.resume_len) ctx.open_mode = 'ab' + elif ctx.chunk_size > 0: + range_start = 0 + else: + range_start = None + ctx.is_resume = False + range_end = range_start + ctx.chunk_size - 1 if ctx.chunk_size else None + if range_end and ctx.data_len is not None and range_end >= ctx.data_len: + range_end = ctx.data_len - 1 + has_range = range_start is not None + ctx.has_range = has_range + request = sanitized_Request(url, None, headers) + if has_range: + set_range(request, range_start, range_end) # Establish connection try: ctx.data = self.ydl.urlopen(request) @@ -77,29 +112,40 @@ class HttpFD(FileDownloader): # that don't support resuming and serve a whole file with no Content-Range # set in response despite of requested Range (see # https://github.com/rg3/youtube-dl/issues/6057#issuecomment-126129799) - if ctx.resume_len > 0: + if has_range: content_range = ctx.data.headers.get('Content-Range') if content_range: - content_range_m = re.search(r'bytes (\d+)-', content_range) + content_range_m = re.search(r'bytes (\d+)-(\d+)?(?:/(\d+))?', content_range) # Content-Range is present and matches requested Range, resume is possible - if content_range_m and ctx.resume_len == int(content_range_m.group(1)): - return + if content_range_m: + if range_start == int(content_range_m.group(1)): + content_range_end = int_or_none(content_range_m.group(2)) + content_len = int_or_none(content_range_m.group(3)) + accept_content_len = ( + # Non-chunked download + not ctx.chunk_size or + # Chunked download and requested piece or + # its part is promised to be served + content_range_end == range_end or + content_len < range_end) + if accept_content_len: + ctx.data_len = content_len + return # Content-Range is either not present or invalid. Assuming remote webserver is # trying to send the whole file, resume is not possible, so wiping the local file # and performing entire redownload self.report_unable_to_resume() ctx.resume_len = 0 ctx.open_mode = 'wb' + ctx.data_len = int_or_none(ctx.data.info().get('Content-length', None)) return except (compat_urllib_error.HTTPError, ) as err: - if (err.code < 500 or err.code >= 600) and err.code != 416: - # Unexpected HTTP error - raise - elif err.code == 416: + if err.code == 416: # Unable to resume (requested range not satisfiable) try: # Open the connection again without the range header - ctx.data = self.ydl.urlopen(basic_request) + ctx.data = self.ydl.urlopen( + sanitized_Request(url, None, headers)) content_length = ctx.data.info()['Content-Length'] except (compat_urllib_error.HTTPError, ) as err: if err.code < 500 or err.code >= 600: @@ -130,6 +176,9 @@ class HttpFD(FileDownloader): ctx.resume_len = 0 ctx.open_mode = 'wb' return + elif err.code < 500 or err.code >= 600: + # Unexpected HTTP error + raise raise RetryDownload(err) except socket.error as err: if err.errno != errno.ECONNRESET: @@ -160,7 +209,7 @@ class HttpFD(FileDownloader): return False byte_counter = 0 + ctx.resume_len - block_size = self.params.get('buffersize', 1024) + block_size = ctx.block_size start = time.time() # measure time over whole while-loop, so slow_down() and best_block_size() work together properly @@ -233,25 +282,30 @@ class HttpFD(FileDownloader): # Progress message speed = self.calc_speed(start, now, byte_counter - ctx.resume_len) - if data_len is None: + if ctx.data_len is None: eta = None else: - eta = self.calc_eta(start, time.time(), data_len - ctx.resume_len, byte_counter - ctx.resume_len) + eta = self.calc_eta(start, time.time(), ctx.data_len - ctx.resume_len, byte_counter - ctx.resume_len) self._hook_progress({ 'status': 'downloading', 'downloaded_bytes': byte_counter, - 'total_bytes': data_len, + 'total_bytes': ctx.data_len, 'tmpfilename': ctx.tmpfilename, 'filename': ctx.filename, 'eta': eta, 'speed': speed, - 'elapsed': now - start, + 'elapsed': now - ctx.start_time, }) if is_test and byte_counter == data_len: break + if not is_test and ctx.chunk_size and ctx.data_len is not None and byte_counter < ctx.data_len: + ctx.resume_len = byte_counter + # ctx.block_size = block_size + raise NextFragment() + if ctx.stream is None: self.to_stderr('\n') self.report_error('Did not get any data blocks') @@ -276,7 +330,7 @@ class HttpFD(FileDownloader): 'total_bytes': byte_counter, 'filename': ctx.filename, 'status': 'finished', - 'elapsed': time.time() - start, + 'elapsed': time.time() - ctx.start_time, }) return True @@ -290,6 +344,8 @@ class HttpFD(FileDownloader): if count <= retries: self.report_retry(e.source_error, count, retries) continue + except NextFragment: + continue except SucceedDownload: return True diff --git a/youtube_dl/downloader/ism.py b/youtube_dl/downloader/ism.py index 9b001ec..063fcf4 100644 --- a/youtube_dl/downloader/ism.py +++ b/youtube_dl/downloader/ism.py @@ -1,25 +1,27 @@ from __future__ import unicode_literals import time -import struct import binascii import io from .fragment import FragmentFD -from ..compat import compat_urllib_error +from ..compat import ( + compat_Struct, + compat_urllib_error, +) -u8 = struct.Struct(b'>B') -u88 = struct.Struct(b'>Bx') -u16 = struct.Struct(b'>H') -u1616 = struct.Struct(b'>Hxx') -u32 = struct.Struct(b'>I') -u64 = struct.Struct(b'>Q') +u8 = compat_Struct('>B') +u88 = compat_Struct('>Bx') +u16 = compat_Struct('>H') +u1616 = compat_Struct('>Hxx') +u32 = compat_Struct('>I') +u64 = compat_Struct('>Q') -s88 = struct.Struct(b'>bx') -s16 = struct.Struct(b'>h') -s1616 = struct.Struct(b'>hxx') -s32 = struct.Struct(b'>i') +s88 = compat_Struct('>bx') +s16 = compat_Struct('>h') +s1616 = compat_Struct('>hxx') +s32 = compat_Struct('>i') unity_matrix = (s32.pack(0x10000) + s32.pack(0) * 3) * 2 + s32.pack(0x40000000) @@ -139,7 +141,7 @@ def write_piff_header(stream, params): sample_entry_payload += u16.pack(0x18) # depth sample_entry_payload += s16.pack(-1) # pre defined - codec_private_data = binascii.unhexlify(params['codec_private_data']) + codec_private_data = binascii.unhexlify(params['codec_private_data'].encode('utf-8')) if fourcc in ('H264', 'AVC1'): sps, pps = codec_private_data.split(u32.pack(1))[1:] avcc_payload = u8.pack(1) # configuration version diff --git a/youtube_dl/extractor/abcnews.py b/youtube_dl/extractor/abcnews.py index f770fe9..cd29aca 100644 --- a/youtube_dl/extractor/abcnews.py +++ b/youtube_dl/extractor/abcnews.py @@ -66,7 +66,7 @@ class AbcNewsIE(InfoExtractor): _TESTS = [{ 'url': 'http://abcnews.go.com/Blotter/News/dramatic-video-rare-death-job-america/story?id=10498713#.UIhwosWHLjY', 'info_dict': { - 'id': '10498713', + 'id': '10505354', 'ext': 'flv', 'display_id': 'dramatic-video-rare-death-job-america', 'title': 'Occupational Hazards', @@ -79,7 +79,7 @@ class AbcNewsIE(InfoExtractor): }, { 'url': 'http://abcnews.go.com/Entertainment/justin-timberlake-performs-stop-feeling-eurovision-2016/story?id=39125818', 'info_dict': { - 'id': '39125818', + 'id': '38897857', 'ext': 'mp4', 'display_id': 'justin-timberlake-performs-stop-feeling-eurovision-2016', 'title': 'Justin Timberlake Drops Hints For Secret Single', diff --git a/youtube_dl/extractor/adn.py b/youtube_dl/extractor/adn.py index 64fb755..041c61a 100644 --- a/youtube_dl/extractor/adn.py +++ b/youtube_dl/extractor/adn.py @@ -51,7 +51,7 @@ class ADNIE(InfoExtractor): # http://animedigitalnetwork.fr/components/com_vodvideo/videojs/adn-vjs.min.js dec_subtitles = intlist_to_bytes(aes_cbc_decrypt( bytes_to_intlist(compat_b64decode(enc_subtitles[24:])), - bytes_to_intlist(b'\x1b\xe0\x29\x61\x38\x94\x24\x00\x12\xbd\xc5\x80\xac\xce\xbe\xb0'), + bytes_to_intlist(b'\xc8\x6e\x06\xbc\xbe\xc6\x49\xf5\x88\x0d\xc8\x47\xc4\x27\x0c\x60'), bytes_to_intlist(compat_b64decode(enc_subtitles[:24])) )) subtitles_json = self._parse_json( @@ -107,15 +107,18 @@ class ADNIE(InfoExtractor): options = player_config.get('options') or {} metas = options.get('metas') or {} - title = metas.get('title') or video_info['title'] links = player_config.get('links') or {} + sub_path = player_config.get('subtitles') error = None if not links: - links_url = player_config['linksurl'] + links_url = player_config.get('linksurl') or options['videoUrl'] links_data = self._download_json(urljoin( self._BASE_URL, links_url), video_id) links = links_data.get('links') or {} + metas = metas or links_data.get('meta') or {} + sub_path = sub_path or links_data.get('subtitles') error = links_data.get('error') + title = metas.get('title') or video_info['title'] formats = [] for format_id, qualities in links.items(): @@ -146,7 +149,7 @@ class ADNIE(InfoExtractor): 'description': strip_or_none(metas.get('summary') or video_info.get('resume')), 'thumbnail': video_info.get('image'), 'formats': formats, - 'subtitles': self.extract_subtitles(player_config.get('subtitles'), video_id), + 'subtitles': self.extract_subtitles(sub_path, video_id), 'episode': metas.get('subtitle') or video_info.get('videoTitle'), 'series': video_info.get('playlistTitle'), } diff --git a/youtube_dl/extractor/aenetworks.py b/youtube_dl/extractor/aenetworks.py index da1b566..398e56e 100644 --- a/youtube_dl/extractor/aenetworks.py +++ b/youtube_dl/extractor/aenetworks.py @@ -122,7 +122,8 @@ class AENetworksIE(AENetworksBaseIE): query = { 'mbr': 'true', - 'assetTypes': 'high_video_s3' + 'assetTypes': 'high_video_ak', + 'switch': 'hls_high_ak', } video_id = self._html_search_meta('aetn:VideoID', webpage) media_url = self._search_regex( diff --git a/youtube_dl/extractor/afreecatv.py b/youtube_dl/extractor/afreecatv.py index 513dd81..df2a3fc 100644 --- a/youtube_dl/extractor/afreecatv.py +++ b/youtube_dl/extractor/afreecatv.py @@ -175,10 +175,27 @@ class AfreecaTVIE(InfoExtractor): def _real_extract(self, url): video_id = self._match_id(url) + webpage = self._download_webpage(url, video_id) + + if re.search(r'alert\(["\']This video has been deleted', webpage): + raise ExtractorError( + 'Video %s has been deleted' % video_id, expected=True) + + station_id = self._search_regex( + r'nStationNo\s*=\s*(\d+)', webpage, 'station') + bbs_id = self._search_regex( + r'nBbsNo\s*=\s*(\d+)', webpage, 'bbs') + video_id = self._search_regex( + r'nTitleNo\s*=\s*(\d+)', webpage, 'title', default=video_id) + video_xml = self._download_xml( 'http://afbbs.afreecatv.com:8080/api/video/get_video_info.php', - video_id, query={ + video_id, headers={ + 'Referer': 'http://vod.afreecatv.com/embed.php', + }, query={ 'nTitleNo': video_id, + 'nStationNo': station_id, + 'nBbsNo': bbs_id, 'partialView': 'SKIP_ADULT', }) @@ -187,10 +204,10 @@ class AfreecaTVIE(InfoExtractor): raise ExtractorError( '%s said: %s' % (self.IE_NAME, flag), expected=True) - video_element = video_xml.findall(compat_xpath('./track/video'))[1] + video_element = video_xml.findall(compat_xpath('./track/video'))[-1] if video_element is None or video_element.text is None: - raise ExtractorError('Specified AfreecaTV video does not exist', - expected=True) + raise ExtractorError( + 'Video %s video does not exist' % video_id, expected=True) video_url = video_element.text.strip() diff --git a/youtube_dl/extractor/amcnetworks.py b/youtube_dl/extractor/amcnetworks.py index dd3b18d..6fb3d6c 100644 --- a/youtube_dl/extractor/amcnetworks.py +++ b/youtube_dl/extractor/amcnetworks.py @@ -11,7 +11,7 @@ from ..utils import ( class AMCNetworksIE(ThePlatformIE): - _VALID_URL = r'https?://(?:www\.)?(?:amc|bbcamerica|ifc|wetv)\.com/(?:movies|shows(?:/[^/]+)+)/(?P[^/?#]+)' + _VALID_URL = r'https?://(?:www\.)?(?:amc|bbcamerica|ifc|(?:we|sundance)tv)\.com/(?:movies|shows(?:/[^/]+)+)/(?P[^/?#]+)' _TESTS = [{ 'url': 'http://www.ifc.com/shows/maron/season-04/episode-01/step-1', 'md5': '', @@ -51,6 +51,9 @@ class AMCNetworksIE(ThePlatformIE): }, { 'url': 'http://www.wetv.com/shows/la-hair/videos/season-05/episode-09-episode-9-2/episode-9-sneak-peek-3', 'only_matching': True, + }, { + 'url': 'https://www.sundancetv.com/shows/riviera/full-episodes/season-1/episode-01-episode-1', + 'only_matching': True, }] def _real_extract(self, url): diff --git a/youtube_dl/extractor/archiveorg.py b/youtube_dl/extractor/archiveorg.py index 3c7d725..c79c58e 100644 --- a/youtube_dl/extractor/archiveorg.py +++ b/youtube_dl/extractor/archiveorg.py @@ -41,7 +41,7 @@ class ArchiveOrgIE(InfoExtractor): webpage = self._download_webpage( 'http://archive.org/embed/' + video_id, video_id) jwplayer_playlist = self._parse_json(self._search_regex( - r"(?s)Play\('[^']+'\s*,\s*(\[.+\])\s*,\s*{.*?}\);", + r"(?s)Play\('[^']+'\s*,\s*(\[.+\])\s*,\s*{.*?}\)", webpage, 'jwplayer playlist'), video_id) info = self._parse_jwplayer_data( {'playlist': jwplayer_playlist}, video_id, base_url=url) diff --git a/youtube_dl/extractor/ard.py b/youtube_dl/extractor/ard.py index ef73d5a..86951d9 100644 --- a/youtube_dl/extractor/ard.py +++ b/youtube_dl/extractor/ard.py @@ -24,57 +24,30 @@ class ARDMediathekIE(InfoExtractor): _VALID_URL = r'^https?://(?:(?:www\.)?ardmediathek\.de|mediathek\.(?:daserste|rbb-online)\.de)/(?:.*/)(?P[0-9]+|[^0-9][^/\?]+)[^/\?]*(?:\?.*)?' _TESTS = [{ - 'url': 'http://www.ardmediathek.de/tv/Dokumentation-und-Reportage/Ich-liebe-das-Leben-trotzdem/rbb-Fernsehen/Video?documentId=29582122&bcastId=3822114', + # available till 26.07.2022 + 'url': 'http://www.ardmediathek.de/tv/S%C3%9CDLICHT/Was-ist-die-Kunst-der-Zukunft-liebe-Ann/BR-Fernsehen/Video?bcastId=34633636&documentId=44726822', 'info_dict': { - 'id': '29582122', + 'id': '44726822', 'ext': 'mp4', - 'title': 'Ich liebe das Leben trotzdem', - 'description': 'md5:45e4c225c72b27993314b31a84a5261c', - 'duration': 4557, + 'title': 'Was ist die Kunst der Zukunft, liebe Anna McCarthy?', + 'description': 'md5:4ada28b3e3b5df01647310e41f3a62f5', + 'duration': 1740, }, 'params': { # m3u8 download 'skip_download': True, - }, - 'skip': 'HTTP Error 404: Not Found', - }, { - 'url': 'http://www.ardmediathek.de/tv/Tatort/Tatort-Scheinwelten-H%C3%B6rfassung-Video/Das-Erste/Video?documentId=29522730&bcastId=602916', - 'md5': 'f4d98b10759ac06c0072bbcd1f0b9e3e', - 'info_dict': { - 'id': '29522730', - 'ext': 'mp4', - 'title': 'Tatort: Scheinwelten - Hörfassung (Video tgl. ab 20 Uhr)', - 'description': 'md5:196392e79876d0ac94c94e8cdb2875f1', - 'duration': 5252, - }, - 'skip': 'HTTP Error 404: Not Found', + } }, { # audio 'url': 'http://www.ardmediathek.de/tv/WDR-H%C3%B6rspiel-Speicher/Tod-eines-Fu%C3%9Fballers/WDR-3/Audio-Podcast?documentId=28488308&bcastId=23074086', - 'md5': '219d94d8980b4f538c7fcb0865eb7f2c', - 'info_dict': { - 'id': '28488308', - 'ext': 'mp3', - 'title': 'Tod eines Fußballers', - 'description': 'md5:f6e39f3461f0e1f54bfa48c8875c86ef', - 'duration': 3240, - }, - 'skip': 'HTTP Error 404: Not Found', + 'only_matching': True, }, { 'url': 'http://mediathek.daserste.de/sendungen_a-z/328454_anne-will/22429276_vertrauen-ist-gut-spionieren-ist-besser-geht', 'only_matching': True, }, { # audio 'url': 'http://mediathek.rbb-online.de/radio/Hörspiel/Vor-dem-Fest/kulturradio/Audio?documentId=30796318&topRessort=radio&bcastId=9839158', - 'md5': '4e8f00631aac0395fee17368ac0e9867', - 'info_dict': { - 'id': '30796318', - 'ext': 'mp3', - 'title': 'Vor dem Fest', - 'description': 'md5:c0c1c8048514deaed2a73b3a60eecacb', - 'duration': 3287, - }, - 'skip': 'Video is no longer available', + 'only_matching': True, }] def _extract_media_info(self, media_info_url, webpage, video_id): @@ -252,20 +225,23 @@ class ARDMediathekIE(InfoExtractor): class ARDIE(InfoExtractor): _VALID_URL = r'(?Phttps?://(www\.)?daserste\.de/[^?#]+/videos/(?P[^/?#]+)-(?P[0-9]+))\.html' - _TEST = { - 'url': 'http://www.daserste.de/information/reportage-dokumentation/dokus/videos/die-story-im-ersten-mission-unter-falscher-flagge-100.html', - 'md5': 'd216c3a86493f9322545e045ddc3eb35', + _TESTS = [{ + # available till 14.02.2019 + 'url': 'http://www.daserste.de/information/talk/maischberger/videos/das-groko-drama-zerlegen-sich-die-volksparteien-video-102.html', + 'md5': '8e4ec85f31be7c7fc08a26cdbc5a1f49', 'info_dict': { - 'display_id': 'die-story-im-ersten-mission-unter-falscher-flagge', - 'id': '100', + 'display_id': 'das-groko-drama-zerlegen-sich-die-volksparteien-video', + 'id': '102', 'ext': 'mp4', - 'duration': 2600, - 'title': 'Die Story im Ersten: Mission unter falscher Flagge', - 'upload_date': '20140804', + 'duration': 4435.0, + 'title': 'Das GroKo-Drama: Zerlegen sich die Volksparteien?', + 'upload_date': '20180214', 'thumbnail': r're:^https?://.*\.jpg$', }, - 'skip': 'HTTP Error 404: Not Found', - } + }, { + 'url': 'http://www.daserste.de/information/reportage-dokumentation/dokus/videos/die-story-im-ersten-mission-unter-falscher-flagge-100.html', + 'only_matching': True, + }] def _real_extract(self, url): mobj = re.match(self._VALID_URL, url) diff --git a/youtube_dl/extractor/brightcove.py b/youtube_dl/extractor/brightcove.py index f045050..0e4eaef 100644 --- a/youtube_dl/extractor/brightcove.py +++ b/youtube_dl/extractor/brightcove.py @@ -564,7 +564,7 @@ class BrightcoveNewIE(AdobePassIE): return entries - def _parse_brightcove_metadata(self, json_data, video_id): + def _parse_brightcove_metadata(self, json_data, video_id, headers={}): title = json_data['name'].strip() formats = [] @@ -638,6 +638,9 @@ class BrightcoveNewIE(AdobePassIE): self._sort_formats(formats) + for f in formats: + f.setdefault('http_headers', {}).update(headers) + subtitles = {} for text_track in json_data.get('text_tracks', []): if text_track.get('src'): @@ -690,10 +693,17 @@ class BrightcoveNewIE(AdobePassIE): webpage, 'policy key', group='pk') api_url = 'https://edge.api.brightcove.com/playback/v1/accounts/%s/videos/%s' % (account_id, video_id) - try: - json_data = self._download_json(api_url, video_id, headers={ - 'Accept': 'application/json;pk=%s' % policy_key + headers = { + 'Accept': 'application/json;pk=%s' % policy_key, + } + referrer = smuggled_data.get('referrer') + if referrer: + headers.update({ + 'Referer': referrer, + 'Origin': re.search(r'https?://[^/]+', referrer).group(0), }) + try: + json_data = self._download_json(api_url, video_id, headers=headers) except ExtractorError as e: if isinstance(e.cause, compat_HTTPError) and e.cause.code == 403: json_data = self._parse_json(e.cause.read().decode(), video_id)[0] @@ -717,4 +727,5 @@ class BrightcoveNewIE(AdobePassIE): 'tveToken': tve_token, }) - return self._parse_brightcove_metadata(json_data, video_id) + return self._parse_brightcove_metadata( + json_data, video_id, headers=headers) diff --git a/youtube_dl/extractor/canvas.py b/youtube_dl/extractor/canvas.py index 3faa760..8ac62c1 100644 --- a/youtube_dl/extractor/canvas.py +++ b/youtube_dl/extractor/canvas.py @@ -246,7 +246,7 @@ class VrtNUIE(GigyaBaseIE): def _real_extract(self, url): display_id = self._match_id(url) - webpage = self._download_webpage(url, display_id) + webpage, urlh = self._download_webpage_handle(url, display_id) title = self._html_search_regex( r'(?ms)

(.+?)

', @@ -276,7 +276,7 @@ class VrtNUIE(GigyaBaseIE): webpage, 'release_date', default=None)) # If there's a ? or a # in the URL, remove them and everything after - clean_url = url.split('?')[0].split('#')[0].strip('/') + clean_url = urlh.geturl().split('?')[0].split('#')[0].strip('/') securevideo_url = clean_url + '.mssecurevideo.json' try: diff --git a/youtube_dl/extractor/cbc.py b/youtube_dl/extractor/cbc.py index 9faf402..3be0c64 100644 --- a/youtube_dl/extractor/cbc.py +++ b/youtube_dl/extractor/cbc.py @@ -1,6 +1,7 @@ # coding: utf-8 from __future__ import unicode_literals +import json import re from .common import InfoExtractor @@ -13,6 +14,7 @@ from ..utils import ( xpath_element, xpath_with_ns, find_xpath_attr, + parse_duration, parse_iso8601, parse_age_limit, int_or_none, @@ -359,3 +361,63 @@ class CBCWatchIE(CBCWatchBaseIE): video_id = self._match_id(url) rss = self._call_api('web/browse/' + video_id, video_id) return self._parse_rss_feed(rss) + + +class CBCOlympicsIE(InfoExtractor): + IE_NAME = 'cbc.ca:olympics' + _VALID_URL = r'https?://olympics\.cbc\.ca/video/[^/]+/(?P[^/?#]+)' + _TESTS = [{ + 'url': 'https://olympics.cbc.ca/video/whats-on-tv/olympic-morning-featuring-the-opening-ceremony/', + 'only_matching': True, + }] + + def _real_extract(self, url): + display_id = self._match_id(url) + webpage = self._download_webpage(url, display_id) + video_id = self._hidden_inputs(webpage)['videoId'] + video_doc = self._download_xml( + 'https://olympics.cbc.ca/videodata/%s.xml' % video_id, video_id) + title = xpath_text(video_doc, 'title', fatal=True) + is_live = xpath_text(video_doc, 'kind') == 'Live' + if is_live: + title = self._live_title(title) + + formats = [] + for video_source in video_doc.findall('videoSources/videoSource'): + uri = xpath_text(video_source, 'uri') + if not uri: + continue + tokenize = self._download_json( + 'https://olympics.cbc.ca/api/api-akamai/tokenize', + video_id, data=json.dumps({ + 'VideoSource': uri, + }).encode(), headers={ + 'Content-Type': 'application/json', + 'Referer': url, + # d3.VideoPlayer._init in https://olympics.cbc.ca/components/script/base.js + 'Cookie': '_dvp=TK:C0ObxjerU', # AKAMAI CDN cookie + }, fatal=False) + if not tokenize: + continue + content_url = tokenize['ContentUrl'] + video_source_format = video_source.get('format') + if video_source_format == 'IIS': + formats.extend(self._extract_ism_formats( + content_url, video_id, ism_id=video_source_format, fatal=False)) + else: + formats.extend(self._extract_m3u8_formats( + content_url, video_id, 'mp4', + 'm3u8' if is_live else 'm3u8_native', + m3u8_id=video_source_format, fatal=False)) + self._sort_formats(formats) + + return { + 'id': video_id, + 'display_id': display_id, + 'title': title, + 'description': xpath_text(video_doc, 'description'), + 'thumbnail': xpath_text(video_doc, 'thumbnailUrl'), + 'duration': parse_duration(xpath_text(video_doc, 'duration')), + 'formats': formats, + 'is_live': is_live, + } diff --git a/youtube_dl/extractor/cbsinteractive.py b/youtube_dl/extractor/cbsinteractive.py index 681d63e..6596e98 100644 --- a/youtube_dl/extractor/cbsinteractive.py +++ b/youtube_dl/extractor/cbsinteractive.py @@ -75,10 +75,10 @@ class CBSInteractiveIE(CBSIE): webpage = self._download_webpage(url, display_id) data_json = self._html_search_regex( - r"data-(?:cnet|zdnet)-video(?:-uvp(?:js)?)?-options='([^']+)'", + r"data(?:-(?:cnet|zdnet))?-video(?:-(?:uvp(?:js)?|player))?-options='([^']+)'", webpage, 'data json') data = self._parse_json(data_json, display_id) - vdata = data.get('video') or data['videos'][0] + vdata = data.get('video') or (data.get('videos') or data.get('playlist'))[0] video_id = vdata['mpxRefId'] diff --git a/youtube_dl/extractor/common.py b/youtube_dl/extractor/common.py index deafb48..fcdd0fd 100644 --- a/youtube_dl/extractor/common.py +++ b/youtube_dl/extractor/common.py @@ -174,6 +174,8 @@ class InfoExtractor(object): width : height ratio as float. * no_resume The server does not support resuming the (HTTP or RTMP) download. Boolean. + * downloader_options A dictionary of downloader options as + described in FileDownloader url: Final video URL. ext: Video filename extension. @@ -2248,9 +2250,10 @@ class InfoExtractor(object): def _extract_wowza_formats(self, url, video_id, m3u8_entry_protocol='m3u8_native', skip_protocols=[]): query = compat_urlparse.urlparse(url).query url = re.sub(r'/(?:manifest|playlist|jwplayer)\.(?:m3u8|f4m|mpd|smil)', '', url) - url_base = self._search_regex( - r'(?:(?:https?|rtmp|rtsp):)?(//[^?]+)', url, 'format url') - http_base_url = '%s:%s' % ('http', url_base) + mobj = re.search( + r'(?:(?:http|rtmp|rtsp)(?Ps)?:)?(?P//[^?]+)', url) + url_base = mobj.group('url') + http_base_url = '%s%s:%s' % ('http', mobj.group('s') or '', url_base) formats = [] def manifest_url(manifest): @@ -2350,7 +2353,10 @@ class InfoExtractor(object): for track in tracks: if not isinstance(track, dict): continue - if track.get('kind') != 'captions': + track_kind = track.get('kind') + if not track_kind or not isinstance(track_kind, compat_str): + continue + if track_kind.lower() not in ('captions', 'subtitles'): continue track_url = urljoin(base_url, track.get('file')) if not track_url: diff --git a/youtube_dl/extractor/discovery.py b/youtube_dl/extractor/discovery.py index f9cec1d..91449dc 100644 --- a/youtube_dl/extractor/discovery.py +++ b/youtube_dl/extractor/discovery.py @@ -5,15 +5,16 @@ import re import string from .discoverygo import DiscoveryGoBaseIE +from ..compat import compat_str from ..utils import ( ExtractorError, - update_url_query, + try_get, ) from ..compat import compat_HTTPError class DiscoveryIE(DiscoveryGoBaseIE): - _VALID_URL = r'''(?x)https?://(?:www\.)?(?: + _VALID_URL = r'''(?x)https?://(?:www\.)?(?P discovery| investigationdiscovery| discoverylife| @@ -44,7 +45,7 @@ class DiscoveryIE(DiscoveryGoBaseIE): _GEO_BYPASS = False def _real_extract(self, url): - path, display_id = re.match(self._VALID_URL, url).groups() + site, path, display_id = re.match(self._VALID_URL, url).groups() webpage = self._download_webpage(url, display_id) react_data = self._parse_json(self._search_regex( @@ -55,14 +56,13 @@ class DiscoveryIE(DiscoveryGoBaseIE): video_id = video['id'] access_token = self._download_json( - 'https://www.discovery.com/anonymous', display_id, query={ - 'authLink': update_url_query( - 'https://login.discovery.com/v1/oauth2/authorize', { - 'client_id': react_data['application']['apiClientId'], - 'redirect_uri': 'https://fusion.ddmcdn.com/app/mercury-sdk/180/redirectHandler.html', - 'response_type': 'anonymous', - 'state': 'nonce,' + ''.join([random.choice(string.ascii_letters) for _ in range(32)]), - }) + 'https://www.%s.com/anonymous' % site, display_id, query={ + 'authRel': 'authorization', + 'client_id': try_get( + react_data, lambda x: x['application']['apiClientId'], + compat_str) or '3020a40c2356a645b4b4', + 'nonce': ''.join([random.choice(string.ascii_letters) for _ in range(32)]), + 'redirectUri': 'https://fusion.ddmcdn.com/app/mercury-sdk/180/redirectHandler.html?https://www.%s.com' % site, })['access_token'] try: diff --git a/youtube_dl/extractor/dplay.py b/youtube_dl/extractor/dplay.py index a08dace..b734467 100644 --- a/youtube_dl/extractor/dplay.py +++ b/youtube_dl/extractor/dplay.py @@ -26,7 +26,7 @@ from ..utils import ( class DPlayIE(InfoExtractor): - _VALID_URL = r'https?://(?Pwww\.(?Pdplay\.(?Pdk|se|no)))/(?:videoer/)?(?P[^/]+/[^/?#]+)' + _VALID_URL = r'https?://(?Pwww\.(?Pdplay\.(?Pdk|se|no)))/(?:video(?:er|s)/)?(?P[^/]+/[^/?#]+)' _TESTS = [{ # non geo restricted, via secure api, unsigned download hls URL @@ -89,9 +89,12 @@ class DPlayIE(InfoExtractor): 'skip_download': True, }, }, { - # geo restricted, bypassable via X-Forwarded-For + 'url': 'https://www.dplay.dk/videoer/singleliv/season-5-episode-3', 'only_matching': True, + }, { + 'url': 'https://www.dplay.se/videos/sofias-anglar/sofias-anglar-1001', + 'only_matching': True, }] def _real_extract(self, url): diff --git a/youtube_dl/extractor/dvtv.py b/youtube_dl/extractor/dvtv.py index e85c58b..3f76088 100644 --- a/youtube_dl/extractor/dvtv.py +++ b/youtube_dl/extractor/dvtv.py @@ -32,7 +32,7 @@ class DVTVIE(InfoExtractor): }, { 'url': 'http://video.aktualne.cz/dvtv/dvtv-16-12-2014-utok-talibanu-boj-o-kliniku-uprchlici/r~973eb3bc854e11e498be002590604f2e/', 'info_dict': { - 'title': 'DVTV 16. 12. 2014: útok Talibanu, boj o kliniku, uprchlíci', + 'title': r're:^DVTV 16\. 12\. 2014: útok Talibanu, boj o kliniku, uprchlíci', 'id': '973eb3bc854e11e498be002590604f2e', }, 'playlist': [{ @@ -91,10 +91,24 @@ class DVTVIE(InfoExtractor): }, { 'url': 'http://video.aktualne.cz/v-cechach-poprve-zazni-zelenkova-zrestaurovana-mse/r~45b4b00483ec11e4883b002590604f2e/', 'only_matching': True, + }, { + 'url': 'https://video.aktualne.cz/dvtv/babis-a-zeman-nesou-vinu-za-to-ze-nemame-jasno-v-tom-kdo-bud/r~026afb54fad711e79704ac1f6b220ee8/', + 'md5': '87defe16681b1429c91f7a74809823c6', + 'info_dict': { + 'id': 'f5ae72f6fad611e794dbac1f6b220ee8', + 'ext': 'mp4', + 'title': 'Babiš a Zeman nesou vinu za to, že nemáme jasno v tom, kdo bude vládnout, říká Pekarová Adamová', + }, + 'params': { + 'skip_download': True, + }, }] - def _parse_video_metadata(self, js, video_id): + def _parse_video_metadata(self, js, video_id, live_js=None): data = self._parse_json(js, video_id, transform_source=js_to_json) + if live_js: + data.update(self._parse_json( + live_js, video_id, transform_source=js_to_json)) title = unescapeHTML(data['title']) @@ -142,13 +156,18 @@ class DVTVIE(InfoExtractor): webpage = self._download_webpage(url, video_id) + # live content + live_item = self._search_regex( + r'(?s)embedData[0-9a-f]{32}\.asset\.liveStarter\s*=\s*(\{.+?\});', + webpage, 'video', default=None) + # single video item = self._search_regex( r'(?s)embedData[0-9a-f]{32}\[["\']asset["\']\]\s*=\s*(\{.+?\});', - webpage, 'video', default=None, fatal=False) + webpage, 'video', default=None) if item: - return self._parse_video_metadata(item, video_id) + return self._parse_video_metadata(item, video_id, live_item) # playlist items = re.findall( diff --git a/youtube_dl/extractor/extractors.py b/youtube_dl/extractor/extractors.py index b442256..3bde40e 100644 --- a/youtube_dl/extractor/extractors.py +++ b/youtube_dl/extractor/extractors.py @@ -162,6 +162,7 @@ from .cbc import ( CBCPlayerIE, CBCWatchVideoIE, CBCWatchIE, + CBCOlympicsIE, ) from .cbs import CBSIE from .cbslocal import CBSLocalIE @@ -373,8 +374,10 @@ from .franceculture import FranceCultureIE from .franceinter import FranceInterIE from .francetv import ( FranceTVIE, + FranceTVSiteIE, FranceTVEmbedIE, FranceTVInfoIE, + FranceTVJeunesseIE, GenerationWhatIE, CultureboxIE, ) @@ -382,7 +385,10 @@ from .freesound import FreesoundIE from .freespeech import FreespeechIE from .freshlive import FreshLiveIE from .funimation import FunimationIE -from .funk import FunkIE +from .funk import ( + FunkMixIE, + FunkChannelIE, +) from .funnyordie import FunnyOrDieIE from .fusion import FusionIE from .fxnetworks import FXNetworksIE @@ -426,6 +432,7 @@ from .hellporno import HellPornoIE from .helsinki import HelsinkiIE from .hentaistigma import HentaiStigmaIE from .hgtv import HGTVComShowIE +from .hidive import HiDiveIE from .historicfilms import HistoricFilmsIE from .hitbox import HitboxIE, HitboxLiveIE from .hitrecord import HitRecordIE @@ -543,6 +550,7 @@ from .limelight import ( LimelightChannelIE, LimelightChannelListIE, ) +from .line import LineTVIE from .litv import LiTVIE from .liveleak import ( LiveLeakIE, @@ -563,7 +571,11 @@ from .lynda import ( ) from .m6 import M6IE from .macgamestore import MacGameStoreIE -from .mailru import MailRuIE +from .mailru import ( + MailRuIE, + MailRuMusicIE, + MailRuMusicSearchIE, +) from .makerschannel import MakersChannelIE from .makertv import MakerTVIE from .mangomolo import ( @@ -630,7 +642,10 @@ from .musicplayon import MusicPlayOnIE from .mwave import MwaveIE, MwaveMeetGreetIE from .myspace import MySpaceIE, MySpaceAlbumIE from .myspass import MySpassIE -from .myvi import MyviIE +from .myvi import ( + MyviIE, + MyviEmbedIE, +) from .myvidster import MyVidsterIE from .nationalgeographic import ( NationalGeographicVideoIE, @@ -644,6 +659,7 @@ from .nbc import ( NBCIE, NBCNewsIE, NBCOlympicsIE, + NBCOlympicsStreamIE, NBCSportsIE, NBCSportsVPlayerIE, ) @@ -860,6 +876,7 @@ from .rai import ( RaiPlayPlaylistIE, RaiIE, ) +from .raywenderlich import RayWenderlichIE from .rbmaradio import RBMARadioIE from .rds import RDSIE from .redbulltv import RedBullTVIE @@ -1038,9 +1055,14 @@ from .telebruxelles import TeleBruxellesIE from .telecinco import TelecincoIE from .telegraaf import TelegraafIE from .telemb import TeleMBIE -from .telequebec import TeleQuebecIE +from .telequebec import ( + TeleQuebecIE, + TeleQuebecEmissionIE, + TeleQuebecLiveIE, +) from .teletask import TeleTaskIE from .telewebion import TelewebionIE +from .tennistv import TennisTVIE from .testurl import TestURLIE from .tf1 import TF1IE from .tfo import TFOIE @@ -1195,7 +1217,6 @@ from .vice import ( ViceArticleIE, ViceShowIE, ) -from .viceland import VicelandIE from .vidbit import VidbitIE from .viddler import ViddlerIE from .videa import VideaIE @@ -1210,6 +1231,7 @@ from .videomore import ( from .videopremium import VideoPremiumIE from .videopress import VideoPressIE from .vidio import VidioIE +from .vidlii import VidLiiIE from .vidme import ( VidmeIE, VidmeUserIE, @@ -1353,6 +1375,7 @@ from .yandexmusic import ( YandexMusicPlaylistIE, ) from .yandexdisk import YandexDiskIE +from .yapfiles import YapFilesIE from .yesjapan import YesJapanIE from .yinyuetai import YinYueTaiIE from .ynet import YnetIE diff --git a/youtube_dl/extractor/francetv.py b/youtube_dl/extractor/francetv.py index 095bb39..c02cd03 100644 --- a/youtube_dl/extractor/francetv.py +++ b/youtube_dl/extractor/francetv.py @@ -5,19 +5,89 @@ from __future__ import unicode_literals import re from .common import InfoExtractor -from ..compat import compat_urlparse +from ..compat import ( + compat_str, + compat_urlparse, +) from ..utils import ( clean_html, + determine_ext, ExtractorError, int_or_none, parse_duration, - determine_ext, + try_get, ) from .dailymotion import DailymotionIE class FranceTVBaseInfoExtractor(InfoExtractor): + def _make_url_result(self, video_or_full_id, catalog=None): + full_id = 'francetv:%s' % video_or_full_id + if '@' not in video_or_full_id and catalog: + full_id += '@%s' % catalog + return self.url_result( + full_id, ie=FranceTVIE.ie_key(), + video_id=video_or_full_id.split('@')[0]) + + +class FranceTVIE(InfoExtractor): + _VALID_URL = r'''(?x) + (?: + https?:// + sivideo\.webservices\.francetelevisions\.fr/tools/getInfosOeuvre/v2/\? + .*?\bidDiffusion=[^&]+| + (?: + https?://videos\.francetv\.fr/video/| + francetv: + ) + (?P[^@]+)(?:@(?P.+))? + ) + ''' + + _TESTS = [{ + # without catalog + 'url': 'https://sivideo.webservices.francetelevisions.fr/tools/getInfosOeuvre/v2/?idDiffusion=162311093&callback=_jsonp_loader_callback_request_0', + 'md5': 'c2248a8de38c4e65ea8fae7b5df2d84f', + 'info_dict': { + 'id': '162311093', + 'ext': 'mp4', + 'title': '13h15, le dimanche... - Les mystères de Jésus', + 'description': 'md5:75efe8d4c0a8205e5904498ffe1e1a42', + 'timestamp': 1502623500, + 'upload_date': '20170813', + }, + }, { + # with catalog + 'url': 'https://sivideo.webservices.francetelevisions.fr/tools/getInfosOeuvre/v2/?idDiffusion=NI_1004933&catalogue=Zouzous&callback=_jsonp_loader_callback_request_4', + 'only_matching': True, + }, { + 'url': 'http://videos.francetv.fr/video/NI_657393@Regions', + 'only_matching': True, + }, { + 'url': 'francetv:162311093', + 'only_matching': True, + }, { + 'url': 'francetv:NI_1004933@Zouzous', + 'only_matching': True, + }, { + 'url': 'francetv:NI_983319@Info-web', + 'only_matching': True, + }, { + 'url': 'francetv:NI_983319', + 'only_matching': True, + }, { + 'url': 'francetv:NI_657393@Regions', + 'only_matching': True, + }, { + # france-3 live + 'url': 'francetv:SIM_France3', + 'only_matching': True, + }] + def _extract_video(self, video_id, catalogue=None): + # Videos are identified by idDiffusion so catalogue part is optional. + # However when provided, some extra formats may be returned so we pass + # it if available. info = self._download_json( 'https://sivideo.webservices.francetelevisions.fr/tools/getInfosOeuvre/v2/', video_id, 'Downloading video JSON', query={ @@ -27,7 +97,8 @@ class FranceTVBaseInfoExtractor(InfoExtractor): if info.get('status') == 'NOK': raise ExtractorError( - '%s returned error: %s' % (self.IE_NAME, info['message']), expected=True) + '%s returned error: %s' % (self.IE_NAME, info['message']), + expected=True) allowed_countries = info['videos'][0].get('geoblocage') if allowed_countries: georestricted = True @@ -42,6 +113,21 @@ class FranceTVBaseInfoExtractor(InfoExtractor): else: georestricted = False + def sign(manifest_url, manifest_id): + for host in ('hdfauthftv-a.akamaihd.net', 'hdfauth.francetv.fr'): + signed_url = self._download_webpage( + 'https://%s/esi/TA' % host, video_id, + 'Downloading signed %s manifest URL' % manifest_id, + fatal=False, query={ + 'url': manifest_url, + }) + if (signed_url and isinstance(signed_url, compat_str) and + re.search(r'^(?:https?:)?//', signed_url)): + return signed_url + return manifest_url + + is_live = None + formats = [] for video in info['videos']: if video['statut'] != 'ONLINE': @@ -49,6 +135,10 @@ class FranceTVBaseInfoExtractor(InfoExtractor): video_url = video['url'] if not video_url: continue + if is_live is None: + is_live = (try_get( + video, lambda x: x['plages_ouverture'][0]['direct'], + bool) is True) or '/live.francetv.fr/' in video_url format_id = video['format'] ext = determine_ext(video_url) if ext == 'f4m': @@ -56,17 +146,14 @@ class FranceTVBaseInfoExtractor(InfoExtractor): # See https://github.com/rg3/youtube-dl/issues/3963 # m3u8 urls work fine continue - f4m_url = self._download_webpage( - 'http://hdfauth.francetv.fr/esi/TA?url=%s' % video_url, - video_id, 'Downloading f4m manifest token', fatal=False) - if f4m_url: - formats.extend(self._extract_f4m_formats( - f4m_url + '&hdcore=3.7.0&plugin=aasp-3.7.0.39.44', - video_id, f4m_id=format_id, fatal=False)) + formats.extend(self._extract_f4m_formats( + sign(video_url, format_id) + '&hdcore=3.7.0&plugin=aasp-3.7.0.39.44', + video_id, f4m_id=format_id, fatal=False)) elif ext == 'm3u8': formats.extend(self._extract_m3u8_formats( - video_url, video_id, 'mp4', entry_protocol='m3u8_native', - m3u8_id=format_id, fatal=False)) + sign(video_url, format_id), video_id, 'mp4', + entry_protocol='m3u8_native', m3u8_id=format_id, + fatal=False)) elif video_url.startswith('rtmp'): formats.append({ 'url': video_url, @@ -97,33 +184,48 @@ class FranceTVBaseInfoExtractor(InfoExtractor): return { 'id': video_id, - 'title': title, + 'title': self._live_title(title) if is_live else title, 'description': clean_html(info['synopsis']), 'thumbnail': compat_urlparse.urljoin('http://pluzz.francetv.fr', info['image']), 'duration': int_or_none(info.get('real_duration')) or parse_duration(info['duree']), 'timestamp': int_or_none(info['diffusion']['timestamp']), + 'is_live': is_live, 'formats': formats, 'subtitles': subtitles, } + def _real_extract(self, url): + mobj = re.match(self._VALID_URL, url) + video_id = mobj.group('id') + catalog = mobj.group('catalog') -class FranceTVIE(FranceTVBaseInfoExtractor): + if not video_id: + qs = compat_urlparse.parse_qs(compat_urlparse.urlparse(url).query) + video_id = qs.get('idDiffusion', [None])[0] + catalog = qs.get('catalogue', [None])[0] + if not video_id: + raise ExtractorError('Invalid URL', expected=True) + + return self._extract_video(video_id, catalog) + + +class FranceTVSiteIE(FranceTVBaseInfoExtractor): _VALID_URL = r'https?://(?:(?:www\.)?france\.tv|mobile\.france\.tv)/(?:[^/]+/)*(?P[^/]+)\.html' _TESTS = [{ 'url': 'https://www.france.tv/france-2/13h15-le-dimanche/140921-les-mysteres-de-jesus.html', 'info_dict': { - 'id': '157550144', + 'id': '162311093', 'ext': 'mp4', 'title': '13h15, le dimanche... - Les mystères de Jésus', 'description': 'md5:75efe8d4c0a8205e5904498ffe1e1a42', - 'timestamp': 1494156300, - 'upload_date': '20170507', + 'timestamp': 1502623500, + 'upload_date': '20170813', }, 'params': { - # m3u8 downloads 'skip_download': True, }, + 'add_ie': [FranceTVIE.ie_key()], }, { # france3 'url': 'https://www.france.tv/france-3/des-chiffres-et-des-lettres/139063-emission-du-mardi-9-mai-2017.html', @@ -156,6 +258,10 @@ class FranceTVIE(FranceTVBaseInfoExtractor): }, { 'url': 'https://www.france.tv/142749-rouge-sang.html', 'only_matching': True, + }, { + # france-3 live + 'url': 'https://www.france.tv/france-3/direct.html', + 'only_matching': True, }] def _real_extract(self, url): @@ -172,13 +278,14 @@ class FranceTVIE(FranceTVBaseInfoExtractor): video_id, catalogue = self._html_search_regex( r'(?:href=|player\.setVideo\(\s*)"http://videos?\.francetv\.fr/video/([^@]+@[^"]+)"', webpage, 'video ID').split('@') - return self._extract_video(video_id, catalogue) + + return self._make_url_result(video_id, catalogue) class FranceTVEmbedIE(FranceTVBaseInfoExtractor): _VALID_URL = r'https?://embed\.francetv\.fr/*\?.*?\bue=(?P[^&]+)' - _TEST = { + _TESTS = [{ 'url': 'http://embed.francetv.fr/?ue=7fd581a2ccf59d2fc5719c5c13cf6961', 'info_dict': { 'id': 'NI_983319', @@ -188,7 +295,11 @@ class FranceTVEmbedIE(FranceTVBaseInfoExtractor): 'timestamp': 1493981780, 'duration': 16, }, - } + 'params': { + 'skip_download': True, + }, + 'add_ie': [FranceTVIE.ie_key()], + }] def _real_extract(self, url): video_id = self._match_id(url) @@ -197,12 +308,12 @@ class FranceTVEmbedIE(FranceTVBaseInfoExtractor): 'http://api-embed.webservices.francetelevisions.fr/key/%s' % video_id, video_id) - return self._extract_video(video['video_id'], video.get('catalog')) + return self._make_url_result(video['video_id'], video.get('catalog')) class FranceTVInfoIE(FranceTVBaseInfoExtractor): IE_NAME = 'francetvinfo.fr' - _VALID_URL = r'https?://(?:www|mobile|france3-regions)\.francetvinfo\.fr/(?:[^/]+/)*(?P[^/?#&.]+)' + _VALID_URL = r'https?://(?:www|mobile|france3-regions)\.francetvinfo\.fr/(?:[^/]+/)*(?P<id>[^/?#&.]+)' _TESTS = [{ 'url': 'http://www.francetvinfo.fr/replay-jt/france-3/soir-3/jt-grand-soir-3-lundi-26-aout-2013_393427.html', @@ -217,51 +328,18 @@ class FranceTVInfoIE(FranceTVBaseInfoExtractor): }, }, 'params': { - # m3u8 downloads 'skip_download': True, }, + 'add_ie': [FranceTVIE.ie_key()], }, { 'url': 'http://www.francetvinfo.fr/elections/europeennes/direct-europeennes-regardez-le-debat-entre-les-candidats-a-la-presidence-de-la-commission_600639.html', - 'info_dict': { - 'id': 'EV_20019', - 'ext': 'mp4', - 'title': 'Débat des candidats à la Commission européenne', - 'description': 'Débat des candidats à la Commission européenne', - }, - 'params': { - 'skip_download': 'HLS (reqires ffmpeg)' - }, - 'skip': 'Ce direct est terminé et sera disponible en rattrapage dans quelques minutes.', + 'only_matching': True, }, { 'url': 'http://www.francetvinfo.fr/economie/entreprises/les-entreprises-familiales-le-secret-de-la-reussite_933271.html', - 'md5': 'f485bda6e185e7d15dbc69b72bae993e', - 'info_dict': { - 'id': 'NI_173343', - 'ext': 'mp4', - 'title': 'Les entreprises familiales : le secret de la réussite', - 'thumbnail': r're:^https?://.*\.jpe?g$', - 'timestamp': 1433273139, - 'upload_date': '20150602', - }, - 'params': { - # m3u8 downloads - 'skip_download': True, - }, + 'only_matching': True, }, { 'url': 'http://france3-regions.francetvinfo.fr/bretagne/cotes-d-armor/thalassa-echappee-breizh-ce-venredi-dans-les-cotes-d-armor-954961.html', - 'md5': 'f485bda6e185e7d15dbc69b72bae993e', - 'info_dict': { - 'id': 'NI_657393', - 'ext': 'mp4', - 'title': 'Olivier Monthus, réalisateur de "Bretagne, le choix de l’Armor"', - 'description': 'md5:a3264114c9d29aeca11ced113c37b16c', - 'thumbnail': r're:^https?://.*\.jpe?g$', - 'timestamp': 1458300695, - 'upload_date': '20160318', - }, - 'params': { - 'skip_download': True, - }, + 'only_matching': True, }, { # Dailymotion embed 'url': 'http://www.francetvinfo.fr/politique/notre-dame-des-landes/video-sur-france-inter-cecile-duflot-denonce-le-regard-meprisant-de-patrick-cohen_1520091.html', @@ -283,9 +361,9 @@ class FranceTVInfoIE(FranceTVBaseInfoExtractor): }] def _real_extract(self, url): - mobj = re.match(self._VALID_URL, url) - page_title = mobj.group('title') - webpage = self._download_webpage(url, page_title) + display_id = self._match_id(url) + + webpage = self._download_webpage(url, display_id) dailymotion_urls = DailymotionIE._extract_urls(webpage) if dailymotion_urls: @@ -297,12 +375,13 @@ class FranceTVInfoIE(FranceTVBaseInfoExtractor): (r'id-video=([^@]+@[^"]+)', r'<a[^>]+href="(?:https?:)?//videos\.francetv\.fr/video/([^@]+@[^"]+)"'), webpage, 'video id').split('@') - return self._extract_video(video_id, catalogue) + + return self._make_url_result(video_id, catalogue) class GenerationWhatIE(InfoExtractor): IE_NAME = 'france2.fr:generation-what' - _VALID_URL = r'https?://generation-what\.francetv\.fr/[^/]+/video/(?P<id>[^/?#]+)' + _VALID_URL = r'https?://generation-what\.francetv\.fr/[^/]+/video/(?P<id>[^/?#&]+)' _TESTS = [{ 'url': 'http://generation-what.francetv.fr/portrait/video/present-arms', @@ -314,6 +393,10 @@ class GenerationWhatIE(InfoExtractor): 'uploader_id': 'UCHH9p1eetWCgt4kXBYCb3_w', 'upload_date': '20160411', }, + 'params': { + 'skip_download': True, + }, + 'add_ie': ['Youtube'], }, { 'url': 'http://generation-what.francetv.fr/europe/video/present-arms', 'only_matching': True, @@ -321,42 +404,87 @@ class GenerationWhatIE(InfoExtractor): def _real_extract(self, url): display_id = self._match_id(url) + webpage = self._download_webpage(url, display_id) + youtube_id = self._search_regex( r"window\.videoURL\s*=\s*'([0-9A-Za-z_-]{11})';", webpage, 'youtube id') - return self.url_result(youtube_id, 'Youtube', youtube_id) + + return self.url_result(youtube_id, ie='Youtube', video_id=youtube_id) class CultureboxIE(FranceTVBaseInfoExtractor): - IE_NAME = 'culturebox.francetvinfo.fr' - _VALID_URL = r'https?://(?:m\.)?culturebox\.francetvinfo\.fr/(?P<name>.*?)(\?|$)' + _VALID_URL = r'https?://(?:m\.)?culturebox\.francetvinfo\.fr/(?:[^/]+/)*(?P<id>[^/?#&]+)' - _TEST = { - 'url': 'http://culturebox.francetvinfo.fr/live/musique/musique-classique/le-livre-vermeil-de-montserrat-a-la-cathedrale-delne-214511', - 'md5': '9b88dc156781c4dbebd4c3e066e0b1d6', + _TESTS = [{ + 'url': 'https://culturebox.francetvinfo.fr/opera-classique/musique-classique/c-est-baroque/concerts/cantates-bwv-4-106-et-131-de-bach-par-raphael-pichon-57-268689', 'info_dict': { - 'id': 'EV_50111', - 'ext': 'flv', - 'title': "Le Livre Vermeil de Montserrat à la Cathédrale d'Elne", - 'description': 'md5:f8a4ad202e8fe533e2c493cc12e739d9', - 'upload_date': '20150320', - 'timestamp': 1426892400, - 'duration': 2760.9, + 'id': 'EV_134885', + 'ext': 'mp4', + 'title': 'Cantates BWV 4, 106 et 131 de Bach par Raphaël Pichon 5/7', + 'description': 'md5:19c44af004b88219f4daa50fa9a351d4', + 'upload_date': '20180206', + 'timestamp': 1517945220, + 'duration': 5981, }, - } + 'params': { + 'skip_download': True, + }, + 'add_ie': [FranceTVIE.ie_key()], + }] def _real_extract(self, url): - mobj = re.match(self._VALID_URL, url) - name = mobj.group('name') + display_id = self._match_id(url) - webpage = self._download_webpage(url, name) + webpage = self._download_webpage(url, display_id) if ">Ce live n'est plus disponible en replay<" in webpage: - raise ExtractorError('Video %s is not available' % name, expected=True) + raise ExtractorError( + 'Video %s is not available' % display_id, expected=True) video_id, catalogue = self._search_regex( r'["\'>]https?://videos\.francetv\.fr/video/([^@]+@.+?)["\'<]', webpage, 'video id').split('@') - return self._extract_video(video_id, catalogue) + return self._make_url_result(video_id, catalogue) + + +class FranceTVJeunesseIE(FranceTVBaseInfoExtractor): + _VALID_URL = r'(?P<url>https?://(?:www\.)?(?:zouzous|ludo)\.fr/heros/(?P<id>[^/?#&]+))' + + _TESTS = [{ + 'url': 'https://www.zouzous.fr/heros/simon', + 'info_dict': { + 'id': 'simon', + }, + 'playlist_count': 9, + }, { + 'url': 'https://www.ludo.fr/heros/ninjago', + 'info_dict': { + 'id': 'ninjago', + }, + 'playlist_count': 10, + }, { + 'url': 'https://www.zouzous.fr/heros/simon?abc', + 'only_matching': True, + }] + + def _real_extract(self, url): + mobj = re.match(self._VALID_URL, url) + playlist_id = mobj.group('id') + + playlist = self._download_json( + '%s/%s' % (mobj.group('url'), 'playlist'), playlist_id) + + if not playlist.get('count'): + raise ExtractorError( + '%s is not available' % playlist_id, expected=True) + + entries = [] + for item in playlist['items']: + identity = item.get('identity') + if identity and isinstance(identity, compat_str): + entries.append(self._make_url_result(identity)) + + return self.playlist_result(entries, playlist_id) diff --git a/youtube_dl/extractor/funk.py b/youtube_dl/extractor/funk.py index ce5c67f..faea657 100644 --- a/youtube_dl/extractor/funk.py +++ b/youtube_dl/extractor/funk.py @@ -1,43 +1,102 @@ # coding: utf-8 from __future__ import unicode_literals +import re + from .common import InfoExtractor from .nexx import NexxIE -from ..utils import extract_attributes +from ..utils import int_or_none + + +class FunkBaseIE(InfoExtractor): + def _make_url_result(self, video): + return { + '_type': 'url_transparent', + 'url': 'nexx:741:%s' % video['sourceId'], + 'ie_key': NexxIE.ie_key(), + 'id': video['sourceId'], + 'title': video.get('title'), + 'description': video.get('description'), + 'duration': int_or_none(video.get('duration')), + 'season_number': int_or_none(video.get('seasonNr')), + 'episode_number': int_or_none(video.get('episodeNr')), + } + + +class FunkMixIE(FunkBaseIE): + _VALID_URL = r'https?://(?:www\.)?funk\.net/mix/(?P<id>[^/]+)/(?P<alias>[^/?#&]+)' + _TESTS = [{ + 'url': 'https://www.funk.net/mix/59d65d935f8b160001828b5b/die-realste-kifferdoku-aller-zeiten', + 'md5': '8edf617c2f2b7c9847dfda313f199009', + 'info_dict': { + 'id': '123748', + 'ext': 'mp4', + 'title': '"Die realste Kifferdoku aller Zeiten"', + 'description': 'md5:c97160f5bafa8d47ec8e2e461012aa9d', + 'timestamp': 1490274721, + 'upload_date': '20170323', + }, + }] + + def _real_extract(self, url): + mobj = re.match(self._VALID_URL, url) + mix_id = mobj.group('id') + alias = mobj.group('alias') + + lists = self._download_json( + 'https://www.funk.net/api/v3.1/curation/curatedLists/', + mix_id, headers={ + 'authorization': 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjbGllbnROYW1lIjoiY3VyYXRpb24tdG9vbC12Mi4wIiwic2NvcGUiOiJzdGF0aWMtY29udGVudC1hcGksY3VyYXRpb24tc2VydmljZSxzZWFyY2gtYXBpIn0.SGCC1IXHLtZYoo8PvRKlU2gXH1su8YSu47sB3S4iXBI', + 'Referer': url, + }, query={ + 'size': 100, + })['result']['lists'] + + metas = next( + l for l in lists + if mix_id in (l.get('entityId'), l.get('alias')))['videoMetas'] + video = next( + meta['videoDataDelegate'] + for meta in metas if meta.get('alias') == alias) + + return self._make_url_result(video) -class FunkIE(InfoExtractor): - _VALID_URL = r'https?://(?:www\.)?funk\.net/(?:mix|channel)/(?:[^/]+/)*(?P<id>[^?/#]+)' +class FunkChannelIE(FunkBaseIE): + _VALID_URL = r'https?://(?:www\.)?funk\.net/channel/(?P<id>[^/]+)/(?P<alias>[^/?#&]+)' _TESTS = [{ - 'url': 'https://www.funk.net/mix/59d65d935f8b160001828b5b/0/59d517e741dca10001252574/', - 'md5': '4d40974481fa3475f8bccfd20c5361f8', + 'url': 'https://www.funk.net/channel/ba/die-lustigsten-instrumente-aus-dem-internet-teil-2', 'info_dict': { - 'id': '716599', + 'id': '1155821', 'ext': 'mp4', - 'title': 'Neue Rechte Welle', - 'description': 'md5:a30a53f740ffb6bfd535314c2cc5fb69', - 'timestamp': 1501337639, - 'upload_date': '20170729', + 'title': 'Die LUSTIGSTEN INSTRUMENTE aus dem Internet - Teil 2', + 'description': 'md5:a691d0413ef4835588c5b03ded670c1f', + 'timestamp': 1514507395, + 'upload_date': '20171229', }, 'params': { - 'format': 'bestvideo', 'skip_download': True, }, }, { - 'url': 'https://www.funk.net/channel/59d5149841dca100012511e3/0/59d52049999264000182e79d/', + 'url': 'https://www.funk.net/channel/59d5149841dca100012511e3/mein-erster-job-lovemilla-folge-1/lovemilla/', 'only_matching': True, }] def _real_extract(self, url): - video_id = self._match_id(url) + mobj = re.match(self._VALID_URL, url) + channel_id = mobj.group('id') + alias = mobj.group('alias') - webpage = self._download_webpage(url, video_id) + results = self._download_json( + 'https://www.funk.net/api/v3.0/content/videos/filter', channel_id, + headers={ + 'authorization': 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjbGllbnROYW1lIjoiY3VyYXRpb24tdG9vbCIsInNjb3BlIjoic3RhdGljLWNvbnRlbnQtYXBpLGN1cmF0aW9uLWFwaSxzZWFyY2gtYXBpIn0.q4Y2xZG8PFHai24-4Pjx2gym9RmJejtmK6lMXP5wAgc', + 'Referer': url, + }, query={ + 'channelId': channel_id, + 'size': 100, + })['result'] - domain_id = NexxIE._extract_domain_id(webpage) or '741' - nexx_id = extract_attributes(self._search_regex( - r'(<div[^>]id=["\']mediaplayer-funk[^>]+>)', - webpage, 'media player'))['data-id'] + video = next(r for r in results if r.get('alias') == alias) - return self.url_result( - 'nexx:%s:%s' % (domain_id, nexx_id), ie=NexxIE.ie_key(), - video_id=nexx_id) + return self._make_url_result(video) diff --git a/youtube_dl/extractor/fusion.py b/youtube_dl/extractor/fusion.py index ede729b..25e284d 100644 --- a/youtube_dl/extractor/fusion.py +++ b/youtube_dl/extractor/fusion.py @@ -5,9 +5,9 @@ from .ooyala import OoyalaIE class FusionIE(InfoExtractor): - _VALID_URL = r'https?://(?:www\.)?fusion\.net/video/(?P<id>\d+)' + _VALID_URL = r'https?://(?:www\.)?fusion\.(?:net|tv)/video/(?P<id>\d+)' _TESTS = [{ - 'url': 'http://fusion.net/video/201781/u-s-and-panamanian-forces-work-together-to-stop-a-vessel-smuggling-drugs/', + 'url': 'http://fusion.tv/video/201781/u-s-and-panamanian-forces-work-together-to-stop-a-vessel-smuggling-drugs/', 'info_dict': { 'id': 'ZpcWNoMTE6x6uVIIWYpHh0qQDjxBuq5P', 'ext': 'mp4', @@ -20,7 +20,7 @@ class FusionIE(InfoExtractor): }, 'add_ie': ['Ooyala'], }, { - 'url': 'http://fusion.net/video/201781', + 'url': 'http://fusion.tv/video/201781', 'only_matching': True, }] diff --git a/youtube_dl/extractor/gameinformer.py b/youtube_dl/extractor/gameinformer.py index a66e309..a2920a7 100644 --- a/youtube_dl/extractor/gameinformer.py +++ b/youtube_dl/extractor/gameinformer.py @@ -23,6 +23,11 @@ class GameInformerIE(InfoExtractor): def _real_extract(self, url): display_id = self._match_id(url) - webpage = self._download_webpage(url, display_id) - brightcove_id = self._search_regex(r"getVideo\('[^']+video_id=(\d+)", webpage, 'brightcove id') - return self.url_result(self.BRIGHTCOVE_URL_TEMPLATE % brightcove_id, 'BrightcoveNew', brightcove_id) + webpage = self._download_webpage( + url, display_id, headers=self.geo_verification_headers()) + brightcove_id = self._search_regex( + [r'<[^>]+\bid=["\']bc_(\d+)', r"getVideo\('[^']+video_id=(\d+)"], + webpage, 'brightcove id') + return self.url_result( + self.BRIGHTCOVE_URL_TEMPLATE % brightcove_id, 'BrightcoveNew', + brightcove_id) diff --git a/youtube_dl/extractor/generic.py b/youtube_dl/extractor/generic.py index 1d9da81..a98f363 100644 --- a/youtube_dl/extractor/generic.py +++ b/youtube_dl/extractor/generic.py @@ -102,6 +102,8 @@ from .channel9 import Channel9IE from .vshare import VShareIE from .mediasite import MediasiteIE from .springboardplatform import SpringboardPlatformIE +from .yapfiles import YapFilesIE +from .vice import ViceIE class GenericIE(InfoExtractor): @@ -1954,6 +1956,34 @@ class GenericIE(InfoExtractor): 'skip_download': True, }, 'add_ie': [SpringboardPlatformIE.ie_key()], + }, + { + 'url': 'https://www.youtube.com/shared?ci=1nEzmT-M4fU', + 'info_dict': { + 'id': 'uPDB5I9wfp8', + 'ext': 'webm', + 'title': 'Pocoyo: 90 minutos de episódios completos Português para crianças - PARTE 3', + 'description': 'md5:d9e4d9346a2dfff4c7dc4c8cec0f546d', + 'upload_date': '20160219', + 'uploader': 'Pocoyo - Português (BR)', + 'uploader_id': 'PocoyoBrazil', + }, + 'add_ie': [YoutubeIE.ie_key()], + 'params': { + 'skip_download': True, + }, + }, + { + 'url': 'https://www.yapfiles.ru/show/1872528/690b05d3054d2dbe1e69523aa21bb3b1.mp4.html', + 'info_dict': { + 'id': 'vMDE4NzI1Mjgt690b', + 'ext': 'mp4', + 'title': 'Котята', + }, + 'add_ie': [YapFilesIE.ie_key()], + 'params': { + 'skip_download': True, + }, } # { # # TODO: find another test @@ -2280,7 +2310,10 @@ class GenericIE(InfoExtractor): # Look for Brightcove New Studio embeds bc_urls = BrightcoveNewIE._extract_urls(self, webpage) if bc_urls: - return self.playlist_from_matches(bc_urls, video_id, video_title, ie='BrightcoveNew') + return self.playlist_from_matches( + bc_urls, video_id, video_title, + getter=lambda x: smuggle_url(x, {'referrer': url}), + ie='BrightcoveNew') # Look for Nexx embeds nexx_urls = NexxIE._extract_urls(webpage) @@ -2928,6 +2961,16 @@ class GenericIE(InfoExtractor): springboardplatform_urls, video_id, video_title, ie=SpringboardPlatformIE.ie_key()) + yapfiles_urls = YapFilesIE._extract_urls(webpage) + if yapfiles_urls: + return self.playlist_from_matches( + yapfiles_urls, video_id, video_title, ie=YapFilesIE.ie_key()) + + vice_urls = ViceIE._extract_urls(webpage) + if vice_urls: + return self.playlist_from_matches( + vice_urls, video_id, video_title, ie=ViceIE.ie_key()) + def merge_dicts(dict1, dict2): merged = {} for k, v in dict1.items(): diff --git a/youtube_dl/extractor/heise.py b/youtube_dl/extractor/heise.py index 82e11a7..8f49f52 100644 --- a/youtube_dl/extractor/heise.py +++ b/youtube_dl/extractor/heise.py @@ -2,11 +2,13 @@ from __future__ import unicode_literals from .common import InfoExtractor +from .kaltura import KalturaIE from .youtube import YoutubeIE from ..utils import ( determine_ext, int_or_none, parse_iso8601, + smuggle_url, xpath_text, ) @@ -42,6 +44,19 @@ class HeiseIE(InfoExtractor): 'params': { 'skip_download': True, }, + }, { + 'url': 'https://www.heise.de/video/artikel/nachgehakt-Wie-sichert-das-c-t-Tool-Restric-tor-Windows-10-ab-3700244.html', + 'md5': '4b58058b46625bdbd841fc2804df95fc', + 'info_dict': { + 'id': '1_ntrmio2s', + 'timestamp': 1512470717, + 'upload_date': '20171205', + 'ext': 'mp4', + 'title': 'ct10 nachgehakt hos restrictor', + }, + 'params': { + 'skip_download': True, + }, }, { 'url': 'http://www.heise.de/ct/artikel/c-t-uplink-3-3-Owncloud-Tastaturen-Peilsender-Smartphone-2403911.html', 'only_matching': True, @@ -67,9 +82,14 @@ class HeiseIE(InfoExtractor): if yt_urls: return self.playlist_from_matches(yt_urls, video_id, title, ie=YoutubeIE.ie_key()) + kaltura_url = KalturaIE._extract_url(webpage) + if kaltura_url: + return self.url_result(smuggle_url(kaltura_url, {'source_url': url}), KalturaIE.ie_key()) + container_id = self._search_regex( r'<div class="videoplayerjw"[^>]+data-container="([0-9]+)"', webpage, 'container ID') + sequenz_id = self._search_regex( r'<div class="videoplayerjw"[^>]+data-sequenz="([0-9]+)"', webpage, 'sequenz ID') diff --git a/youtube_dl/extractor/hidive.py b/youtube_dl/extractor/hidive.py new file mode 100644 index 0000000..eee5170 --- /dev/null +++ b/youtube_dl/extractor/hidive.py @@ -0,0 +1,96 @@ +# coding: utf-8 +from __future__ import unicode_literals + +import re + +from .common import InfoExtractor +from ..compat import compat_str +from ..utils import ( + ExtractorError, + int_or_none, + urlencode_postdata, +) + + +class HiDiveIE(InfoExtractor): + _VALID_URL = r'https?://(?:www\.)?hidive\.com/stream/(?P<title>[^/]+)/(?P<key>[^/?#&]+)' + # Using X-Forwarded-For results in 403 HTTP error for HLS fragments, + # so disabling geo bypass completely + _GEO_BYPASS = False + + _TESTS = [{ + 'url': 'https://www.hidive.com/stream/the-comic-artist-and-his-assistants/s01e001', + 'info_dict': { + 'id': 'the-comic-artist-and-his-assistants/s01e001', + 'ext': 'mp4', + 'title': 'the-comic-artist-and-his-assistants/s01e001', + 'series': 'the-comic-artist-and-his-assistants', + 'season_number': 1, + 'episode_number': 1, + }, + 'params': { + 'skip_download': True, + }, + }] + + def _real_extract(self, url): + mobj = re.match(self._VALID_URL, url) + title, key = mobj.group('title', 'key') + video_id = '%s/%s' % (title, key) + + settings = self._download_json( + 'https://www.hidive.com/play/settings', video_id, + data=urlencode_postdata({ + 'Title': title, + 'Key': key, + })) + + restriction = settings.get('restrictionReason') + if restriction == 'RegionRestricted': + self.raise_geo_restricted() + + if restriction and restriction != 'None': + raise ExtractorError( + '%s said: %s' % (self.IE_NAME, restriction), expected=True) + + formats = [] + subtitles = {} + for rendition_id, rendition in settings['renditions'].items(): + bitrates = rendition.get('bitrates') + if not isinstance(bitrates, dict): + continue + m3u8_url = bitrates.get('hls') + if not isinstance(m3u8_url, compat_str): + continue + formats.extend(self._extract_m3u8_formats( + m3u8_url, video_id, 'mp4', entry_protocol='m3u8_native', + m3u8_id='%s-hls' % rendition_id, fatal=False)) + cc_files = rendition.get('ccFiles') + if not isinstance(cc_files, list): + continue + for cc_file in cc_files: + if not isinstance(cc_file, list) or len(cc_file) < 3: + continue + cc_lang = cc_file[0] + cc_url = cc_file[2] + if not isinstance(cc_lang, compat_str) or not isinstance( + cc_url, compat_str): + continue + subtitles.setdefault(cc_lang, []).append({ + 'url': cc_url, + }) + + season_number = int_or_none(self._search_regex( + r's(\d+)', key, 'season number', default=None)) + episode_number = int_or_none(self._search_regex( + r'e(\d+)', key, 'episode number', default=None)) + + return { + 'id': video_id, + 'title': video_id, + 'subtitles': subtitles, + 'formats': formats, + 'series': title, + 'season_number': season_number, + 'episode_number': episode_number, + } diff --git a/youtube_dl/extractor/la7.py b/youtube_dl/extractor/la7.py index da5a5de..6373268 100644 --- a/youtube_dl/extractor/la7.py +++ b/youtube_dl/extractor/la7.py @@ -49,7 +49,9 @@ class LA7IE(InfoExtractor): webpage = self._download_webpage(url, video_id) player_data = self._parse_json( - self._search_regex(r'videoLa7\(({[^;]+})\);', webpage, 'player data'), + self._search_regex( + [r'(?s)videoParams\s*=\s*({.+?});', r'videoLa7\(({[^;]+})\);'], + webpage, 'player data'), video_id, transform_source=js_to_json) return { diff --git a/youtube_dl/extractor/line.py b/youtube_dl/extractor/line.py new file mode 100644 index 0000000..7f5fa44 --- /dev/null +++ b/youtube_dl/extractor/line.py @@ -0,0 +1,90 @@ +# coding: utf-8 +from __future__ import unicode_literals + +import re + +from .common import InfoExtractor +from ..utils import js_to_json + + +class LineTVIE(InfoExtractor): + _VALID_URL = r'https?://tv\.line\.me/v/(?P<id>\d+)_[^/]+-(?P<segment>ep\d+-\d+)' + + _TESTS = [{ + 'url': 'https://tv.line.me/v/793123_goodbye-mrblack-ep1-1/list/69246', + 'info_dict': { + 'id': '793123_ep1-1', + 'ext': 'mp4', + 'title': 'Goodbye Mr.Black | EP.1-1', + 'thumbnail': r're:^https?://.*\.jpg$', + 'duration': 998.509, + 'view_count': int, + }, + }, { + 'url': 'https://tv.line.me/v/2587507_%E6%B4%BE%E9%81%A3%E5%A5%B3%E9%86%ABx-ep1-02/list/185245', + 'only_matching': True, + }] + + def _real_extract(self, url): + series_id, segment = re.match(self._VALID_URL, url).groups() + video_id = '%s_%s' % (series_id, segment) + + webpage = self._download_webpage(url, video_id) + + player_params = self._parse_json(self._search_regex( + r'naver\.WebPlayer\(({[^}]+})\)', webpage, 'player parameters'), + video_id, transform_source=js_to_json) + + video_info = self._download_json( + 'https://global-nvapis.line.me/linetv/rmcnmv/vod_play_videoInfo.json', + video_id, query={ + 'videoId': player_params['videoId'], + 'key': player_params['key'], + }) + + stream = video_info['streams'][0] + extra_query = '?__gda__=' + stream['key']['value'] + formats = self._extract_m3u8_formats( + stream['source'] + extra_query, video_id, ext='mp4', + entry_protocol='m3u8_native', m3u8_id='hls') + + for a_format in formats: + a_format['url'] += extra_query + + duration = None + for video in video_info.get('videos', {}).get('list', []): + encoding_option = video.get('encodingOption', {}) + abr = video['bitrate']['audio'] + vbr = video['bitrate']['video'] + tbr = abr + vbr + formats.append({ + 'url': video['source'], + 'format_id': 'http-%d' % int(tbr), + 'height': encoding_option.get('height'), + 'width': encoding_option.get('width'), + 'abr': abr, + 'vbr': vbr, + 'filesize': video.get('size'), + }) + if video.get('duration') and duration is None: + duration = video['duration'] + + self._sort_formats(formats) + + if not formats[0].get('width'): + formats[0]['vcodec'] = 'none' + + title = self._og_search_title(webpage) + + # like_count requires an additional API request https://tv.line.me/api/likeit/getCount + + return { + 'id': video_id, + 'title': title, + 'formats': formats, + 'extra_param_to_segment_url': extra_query[1:], + 'duration': duration, + 'thumbnails': [{'url': thumbnail['source']} + for thumbnail in video_info.get('thumbnails', {}).get('list', [])], + 'view_count': video_info.get('meta', {}).get('count'), + } diff --git a/youtube_dl/extractor/mailru.py b/youtube_dl/extractor/mailru.py index 6b7c5e3..6b0e64b 100644 --- a/youtube_dl/extractor/mailru.py +++ b/youtube_dl/extractor/mailru.py @@ -1,12 +1,17 @@ # coding: utf-8 from __future__ import unicode_literals +import itertools +import json import re from .common import InfoExtractor +from ..compat import compat_urllib_parse_unquote from ..utils import ( int_or_none, + parse_duration, remove_end, + try_get, ) @@ -157,3 +162,153 @@ class MailRuIE(InfoExtractor): 'view_count': view_count, 'formats': formats, } + + +class MailRuMusicSearchBaseIE(InfoExtractor): + def _search(self, query, url, audio_id, limit=100, offset=0): + search = self._download_json( + 'https://my.mail.ru/cgi-bin/my/ajax', audio_id, + 'Downloading songs JSON page %d' % (offset // limit + 1), + headers={ + 'Referer': url, + 'X-Requested-With': 'XMLHttpRequest', + }, query={ + 'xemail': '', + 'ajax_call': '1', + 'func_name': 'music.search', + 'mna': '', + 'mnb': '', + 'arg_query': query, + 'arg_extended': '1', + 'arg_search_params': json.dumps({ + 'music': { + 'limit': limit, + 'offset': offset, + }, + }), + 'arg_limit': limit, + 'arg_offset': offset, + }) + return next(e for e in search if isinstance(e, dict)) + + @staticmethod + def _extract_track(t, fatal=True): + audio_url = t['URL'] if fatal else t.get('URL') + if not audio_url: + return + + audio_id = t['File'] if fatal else t.get('File') + if not audio_id: + return + + thumbnail = t.get('AlbumCoverURL') or t.get('FiledAlbumCover') + uploader = t.get('OwnerName') or t.get('OwnerName_Text_HTML') + uploader_id = t.get('UploaderID') + duration = int_or_none(t.get('DurationInSeconds')) or parse_duration( + t.get('Duration') or t.get('DurationStr')) + view_count = int_or_none(t.get('PlayCount') or t.get('PlayCount_hr')) + + track = t.get('Name') or t.get('Name_Text_HTML') + artist = t.get('Author') or t.get('Author_Text_HTML') + + if track: + title = '%s - %s' % (artist, track) if artist else track + else: + title = audio_id + + return { + 'extractor_key': MailRuMusicIE.ie_key(), + 'id': audio_id, + 'title': title, + 'thumbnail': thumbnail, + 'uploader': uploader, + 'uploader_id': uploader_id, + 'duration': duration, + 'view_count': view_count, + 'vcodec': 'none', + 'abr': int_or_none(t.get('BitRate')), + 'track': track, + 'artist': artist, + 'album': t.get('Album'), + 'url': audio_url, + } + + +class MailRuMusicIE(MailRuMusicSearchBaseIE): + IE_NAME = 'mailru:music' + IE_DESC = 'Музыка@Mail.Ru' + _VALID_URL = r'https?://my\.mail\.ru/music/songs/[^/?#&]+-(?P<id>[\da-f]+)' + _TESTS = [{ + 'url': 'https://my.mail.ru/music/songs/%D0%BC8%D0%BB8%D1%82%D1%85-l-a-h-luciferian-aesthetics-of-herrschaft-single-2017-4e31f7125d0dfaef505d947642366893', + 'md5': '0f8c22ef8c5d665b13ac709e63025610', + 'info_dict': { + 'id': '4e31f7125d0dfaef505d947642366893', + 'ext': 'mp3', + 'title': 'L.A.H. (Luciferian Aesthetics of Herrschaft) single, 2017 - М8Л8ТХ', + 'uploader': 'Игорь Мудрый', + 'uploader_id': '1459196328', + 'duration': 280, + 'view_count': int, + 'vcodec': 'none', + 'abr': 320, + 'track': 'L.A.H. (Luciferian Aesthetics of Herrschaft) single, 2017', + 'artist': 'М8Л8ТХ', + }, + }] + + def _real_extract(self, url): + audio_id = self._match_id(url) + + webpage = self._download_webpage(url, audio_id) + + title = self._og_search_title(webpage) + music_data = self._search(title, url, audio_id)['MusicData'] + t = next(t for t in music_data if t.get('File') == audio_id) + + info = self._extract_track(t) + info['title'] = title + return info + + +class MailRuMusicSearchIE(MailRuMusicSearchBaseIE): + IE_NAME = 'mailru:music:search' + IE_DESC = 'Музыка@Mail.Ru' + _VALID_URL = r'https?://my\.mail\.ru/music/search/(?P<id>[^/?#&]+)' + _TESTS = [{ + 'url': 'https://my.mail.ru/music/search/black%20shadow', + 'info_dict': { + 'id': 'black shadow', + }, + 'playlist_mincount': 532, + }] + + def _real_extract(self, url): + query = compat_urllib_parse_unquote(self._match_id(url)) + + entries = [] + + LIMIT = 100 + offset = 0 + + for _ in itertools.count(1): + search = self._search(query, url, query, LIMIT, offset) + + music_data = search.get('MusicData') + if not music_data or not isinstance(music_data, list): + break + + for t in music_data: + track = self._extract_track(t, fatal=False) + if track: + entries.append(track) + + total = try_get( + search, lambda x: x['Results']['music']['Total'], int) + + if total is not None: + if offset > total: + break + + offset += LIMIT + + return self.playlist_result(entries, query) diff --git a/youtube_dl/extractor/myvi.py b/youtube_dl/extractor/myvi.py index 621ae74..75d2863 100644 --- a/youtube_dl/extractor/myvi.py +++ b/youtube_dl/extractor/myvi.py @@ -3,22 +3,31 @@ from __future__ import unicode_literals import re +from .common import InfoExtractor from .vimple import SprutoBaseIE class MyviIE(SprutoBaseIE): _VALID_URL = r'''(?x) - https?:// - myvi\.(?:ru/player|tv)/ - (?: + (?: + https?:// + (?:www\.)? + myvi\. (?: - embed/html| - flash| - api/Video/Get - )/| - content/preloader\.swf\?.*\bid= - ) - (?P<id>[\da-zA-Z_-]+) + (?:ru/player|tv)/ + (?: + (?: + embed/html| + flash| + api/Video/Get + )/| + content/preloader\.swf\?.*\bid= + )| + ru/watch/ + )| + myvi: + ) + (?P<id>[\da-zA-Z_-]+) ''' _TESTS = [{ 'url': 'http://myvi.ru/player/embed/html/oOy4euHA6LVwNNAjhD9_Jq5Ha2Qf0rtVMVFMAZav8wObeRTZaCATzucDQIDph8hQU0', @@ -42,6 +51,12 @@ class MyviIE(SprutoBaseIE): }, { 'url': 'http://myvi.ru/player/flash/ocp2qZrHI-eZnHKQBK4cZV60hslH8LALnk0uBfKsB-Q4WnY26SeGoYPi8HWHxu0O30', 'only_matching': True, + }, { + 'url': 'https://www.myvi.ru/watch/YwbqszQynUaHPn_s82sx0Q2', + 'only_matching': True, + }, { + 'url': 'myvi:YwbqszQynUaHPn_s82sx0Q2', + 'only_matching': True, }] @classmethod @@ -58,3 +73,39 @@ class MyviIE(SprutoBaseIE): 'http://myvi.ru/player/api/Video/Get/%s?sig' % video_id, video_id)['sprutoData'] return self._extract_spruto(spruto, video_id) + + +class MyviEmbedIE(InfoExtractor): + _VALID_URL = r'https?://(?:www\.)?myvi\.tv/(?:[^?]+\?.*?\bv=|embed/)(?P<id>[\da-z]+)' + _TESTS = [{ + 'url': 'https://www.myvi.tv/embed/ccdqic3wgkqwpb36x9sxg43t4r', + 'info_dict': { + 'id': 'b3ea0663-3234-469d-873e-7fecf36b31d1', + 'ext': 'mp4', + 'title': 'Твоя (original song).mp4', + 'thumbnail': r're:^https?://.*\.jpg$', + 'duration': 277, + }, + 'params': { + 'skip_download': True, + }, + }, { + 'url': 'https://www.myvi.tv/idmi6o?v=ccdqic3wgkqwpb36x9sxg43t4r#watch', + 'only_matching': True, + }] + + @classmethod + def suitable(cls, url): + return False if MyviIE.suitable(url) else super(MyviEmbedIE, cls).suitable(url) + + def _real_extract(self, url): + video_id = self._match_id(url) + + webpage = self._download_webpage( + 'https://www.myvi.tv/embed/%s' % video_id, video_id) + + myvi_id = self._search_regex( + r'CreatePlayer\s*\(\s*["\'].*?\bv=([\da-zA-Z_]+)', + webpage, 'video id') + + return self.url_result('myvi:%s' % myvi_id, ie=MyviIE.ie_key()) diff --git a/youtube_dl/extractor/nationalgeographic.py b/youtube_dl/extractor/nationalgeographic.py index 9e8d28f..246f679 100644 --- a/youtube_dl/extractor/nationalgeographic.py +++ b/youtube_dl/extractor/nationalgeographic.py @@ -68,7 +68,7 @@ class NationalGeographicVideoIE(InfoExtractor): class NationalGeographicIE(ThePlatformIE, AdobePassIE): IE_NAME = 'natgeo' - _VALID_URL = r'https?://channel\.nationalgeographic\.com/(?:wild/)?[^/]+/(?:videos|episodes)/(?P<id>[^/?]+)' + _VALID_URL = r'https?://channel\.nationalgeographic\.com/(?:(?:wild/)?[^/]+/)?(?:videos|episodes)/(?P<id>[^/?]+)' _TESTS = [ { @@ -102,6 +102,10 @@ class NationalGeographicIE(ThePlatformIE, AdobePassIE): { 'url': 'http://channel.nationalgeographic.com/the-story-of-god-with-morgan-freeman/episodes/the-power-of-miracles/', 'only_matching': True, + }, + { + 'url': 'http://channel.nationalgeographic.com/videos/treasures-rediscovered/', + 'only_matching': True, } ] diff --git a/youtube_dl/extractor/nbc.py b/youtube_dl/extractor/nbc.py index 554dec3..9dc8f9e 100644 --- a/youtube_dl/extractor/nbc.py +++ b/youtube_dl/extractor/nbc.py @@ -1,6 +1,7 @@ from __future__ import unicode_literals import re +import base64 from .common import InfoExtractor from .theplatform import ThePlatformIE @@ -358,6 +359,7 @@ class NBCNewsIE(ThePlatformIE): class NBCOlympicsIE(InfoExtractor): + IE_NAME = 'nbcolympics' _VALID_URL = r'https?://www\.nbcolympics\.com/video/(?P<id>[a-z-]+)' _TEST = { @@ -395,3 +397,54 @@ class NBCOlympicsIE(InfoExtractor): 'ie_key': ThePlatformIE.ie_key(), 'display_id': display_id, } + + +class NBCOlympicsStreamIE(AdobePassIE): + IE_NAME = 'nbcolympics:stream' + _VALID_URL = r'https?://stream\.nbcolympics\.com/(?P<id>[0-9a-z-]+)' + _TEST = { + 'url': 'http://stream.nbcolympics.com/2018-winter-olympics-nbcsn-evening-feb-8', + 'info_dict': { + 'id': '203493', + 'ext': 'mp4', + 'title': 're:Curling, Alpine, Luge [0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}$', + }, + 'params': { + # m3u8 download + 'skip_download': True, + }, + } + _DATA_URL_TEMPLATE = 'http://stream.nbcolympics.com/data/%s_%s.json' + + def _real_extract(self, url): + display_id = self._match_id(url) + webpage = self._download_webpage(url, display_id) + pid = self._search_regex(r'pid\s*=\s*(\d+);', webpage, 'pid') + resource = self._search_regex( + r"resource\s*=\s*'(.+)';", webpage, + 'resource').replace("' + pid + '", pid) + event_config = self._download_json( + self._DATA_URL_TEMPLATE % ('event_config', pid), + pid)['eventConfig'] + title = self._live_title(event_config['eventTitle']) + source_url = self._download_json( + self._DATA_URL_TEMPLATE % ('live_sources', pid), + pid)['videoSources'][0]['sourceUrl'] + media_token = self._extract_mvpd_auth( + url, pid, event_config.get('requestorId', 'NBCOlympics'), resource) + formats = self._extract_m3u8_formats(self._download_webpage( + 'http://sp.auth.adobe.com/tvs/v1/sign', pid, query={ + 'cdn': 'akamai', + 'mediaToken': base64.b64encode(media_token.encode()), + 'resource': base64.b64encode(resource.encode()), + 'url': source_url, + }), pid, 'mp4') + self._sort_formats(formats) + + return { + 'id': pid, + 'display_id': display_id, + 'title': title, + 'formats': formats, + 'is_live': True, + } diff --git a/youtube_dl/extractor/newgrounds.py b/youtube_dl/extractor/newgrounds.py index 0e26f83..82e7cf5 100644 --- a/youtube_dl/extractor/newgrounds.py +++ b/youtube_dl/extractor/newgrounds.py @@ -87,19 +87,21 @@ class NewgroundsIE(InfoExtractor): self._check_formats(formats, media_id) self._sort_formats(formats) - uploader = self._search_regex( - r'(?:Author|Writer)\s*<a[^>]+>([^<]+)', webpage, 'uploader', + uploader = self._html_search_regex( + (r'(?s)<h4[^>]*>(.+?)</h4>.*?<em>\s*Author\s*</em>', + r'(?:Author|Writer)\s*<a[^>]+>([^<]+)'), webpage, 'uploader', fatal=False) - timestamp = unified_timestamp(self._search_regex( - r'<dt>Uploaded</dt>\s*<dd>([^<]+)', webpage, 'timestamp', + timestamp = unified_timestamp(self._html_search_regex( + (r'<dt>\s*Uploaded\s*</dt>\s*<dd>([^<]+</dd>\s*<dd>[^<]+)', + r'<dt>\s*Uploaded\s*</dt>\s*<dd>([^<]+)'), webpage, 'timestamp', default=None)) duration = parse_duration(self._search_regex( - r'<dd>Song\s*</dd><dd>.+?</dd><dd>([^<]+)', webpage, 'duration', - default=None)) + r'(?s)<dd>\s*Song\s*</dd>\s*<dd>.+?</dd>\s*<dd>([^<]+)', webpage, + 'duration', default=None)) filesize_approx = parse_filesize(self._html_search_regex( - r'<dd>Song\s*</dd><dd>(.+?)</dd>', webpage, 'filesize', + r'(?s)<dd>\s*Song\s*</dd>\s*<dd>(.+?)</dd>', webpage, 'filesize', default=None)) if len(formats) == 1: formats[0]['filesize_approx'] = filesize_approx diff --git a/youtube_dl/extractor/nexx.py b/youtube_dl/extractor/nexx.py index 9203c04..c7029d2 100644 --- a/youtube_dl/extractor/nexx.py +++ b/youtube_dl/extractor/nexx.py @@ -21,7 +21,8 @@ class NexxIE(InfoExtractor): _VALID_URL = r'''(?x) (?: https?://api\.nexx(?:\.cloud|cdn\.com)/v3/(?P<domain_id>\d+)/videos/byid/| - nexx:(?P<domain_id_s>\d+): + nexx:(?:(?P<domain_id_s>\d+):)?| + https?://arc\.nexx\.cloud/api/video/ ) (?P<id>\d+) ''' @@ -61,12 +62,33 @@ class NexxIE(InfoExtractor): 'params': { 'skip_download': True, }, + }, { + # does not work via arc + 'url': 'nexx:741:1269984', + 'md5': 'c714b5b238b2958dc8d5642addba6886', + 'info_dict': { + 'id': '1269984', + 'ext': 'mp4', + 'title': '1 TAG ohne KLO... wortwörtlich! 😑', + 'alt_title': '1 TAG ohne KLO... wortwörtlich! 😑', + 'description': 'md5:4604539793c49eda9443ab5c5b1d612f', + 'thumbnail': r're:^https?://.*\.jpg$', + 'duration': 607, + 'timestamp': 1518614955, + 'upload_date': '20180214', + }, }, { 'url': 'https://api.nexxcdn.com/v3/748/videos/byid/128907', 'only_matching': True, }, { 'url': 'nexx:748:128907', 'only_matching': True, + }, { + 'url': 'nexx:128907', + 'only_matching': True, + }, { + 'url': 'https://arc.nexx.cloud/api/video/128907.json', + 'only_matching': True, }] @staticmethod @@ -124,65 +146,77 @@ class NexxIE(InfoExtractor): domain_id = mobj.group('domain_id') or mobj.group('domain_id_s') video_id = mobj.group('id') - # Reverse engineered from JS code (see getDeviceID function) - device_id = '%d:%d:%d%d' % ( - random.randint(1, 4), int(time.time()), - random.randint(1e4, 99999), random.randint(1, 9)) - - result = self._call_api(domain_id, 'session/init', video_id, data={ - 'nxp_devh': device_id, - 'nxp_userh': '', - 'precid': '0', - 'playlicense': '0', - 'screenx': '1920', - 'screeny': '1080', - 'playerversion': '6.0.00', - 'gateway': 'html5', - 'adGateway': '', - 'explicitlanguage': 'en-US', - 'addTextTemplates': '1', - 'addDomainData': '1', - 'addAdModel': '1', - }, headers={ - 'X-Request-Enable-Auth-Fallback': '1', - }) - - cid = result['general']['cid'] - - # As described in [1] X-Request-Token generation algorithm is - # as follows: - # md5( operation + domain_id + domain_secret ) - # where domain_secret is a static value that will be given by nexx.tv - # as per [1]. Here is how this "secret" is generated (reversed - # from _play.api.init function, search for clienttoken). So it's - # actually not static and not that much of a secret. - # 1. https://nexxtvstorage.blob.core.windows.net/files/201610/27.pdf - secret = result['device']['clienttoken'][int(device_id[0]):] - secret = secret[0:len(secret) - int(device_id[-1])] - - op = 'byid' - - # Reversed from JS code for _play.api.call function (search for - # X-Request-Token) - request_token = hashlib.md5( - ''.join((op, domain_id, secret)).encode('utf-8')).hexdigest() - - video = self._call_api( - domain_id, 'videos/%s/%s' % (op, video_id), video_id, data={ - 'additionalfields': 'language,channel,actors,studio,licenseby,slug,subtitle,teaser,description', - 'addInteractionOptions': '1', - 'addStatusDetails': '1', - 'addStreamDetails': '1', - 'addCaptions': '1', - 'addScenes': '1', - 'addHotSpots': '1', - 'addBumpers': '1', - 'captionFormat': 'data', + video = None + + response = self._download_json( + 'https://arc.nexx.cloud/api/video/%s.json' % video_id, + video_id, fatal=False) + if response and isinstance(response, dict): + result = response.get('result') + if result and isinstance(result, dict): + video = result + + # not all videos work via arc, e.g. nexx:741:1269984 + if not video: + # Reverse engineered from JS code (see getDeviceID function) + device_id = '%d:%d:%d%d' % ( + random.randint(1, 4), int(time.time()), + random.randint(1e4, 99999), random.randint(1, 9)) + + result = self._call_api(domain_id, 'session/init', video_id, data={ + 'nxp_devh': device_id, + 'nxp_userh': '', + 'precid': '0', + 'playlicense': '0', + 'screenx': '1920', + 'screeny': '1080', + 'playerversion': '6.0.00', + 'gateway': 'html5', + 'adGateway': '', + 'explicitlanguage': 'en-US', + 'addTextTemplates': '1', + 'addDomainData': '1', + 'addAdModel': '1', }, headers={ - 'X-Request-CID': cid, - 'X-Request-Token': request_token, + 'X-Request-Enable-Auth-Fallback': '1', }) + cid = result['general']['cid'] + + # As described in [1] X-Request-Token generation algorithm is + # as follows: + # md5( operation + domain_id + domain_secret ) + # where domain_secret is a static value that will be given by nexx.tv + # as per [1]. Here is how this "secret" is generated (reversed + # from _play.api.init function, search for clienttoken). So it's + # actually not static and not that much of a secret. + # 1. https://nexxtvstorage.blob.core.windows.net/files/201610/27.pdf + secret = result['device']['clienttoken'][int(device_id[0]):] + secret = secret[0:len(secret) - int(device_id[-1])] + + op = 'byid' + + # Reversed from JS code for _play.api.call function (search for + # X-Request-Token) + request_token = hashlib.md5( + ''.join((op, domain_id, secret)).encode('utf-8')).hexdigest() + + video = self._call_api( + domain_id, 'videos/%s/%s' % (op, video_id), video_id, data={ + 'additionalfields': 'language,channel,actors,studio,licenseby,slug,subtitle,teaser,description', + 'addInteractionOptions': '1', + 'addStatusDetails': '1', + 'addStreamDetails': '1', + 'addCaptions': '1', + 'addScenes': '1', + 'addHotSpots': '1', + 'addBumpers': '1', + 'captionFormat': 'data', + }, headers={ + 'X-Request-CID': cid, + 'X-Request-Token': request_token, + }) + general = video['general'] title = general['title'] diff --git a/youtube_dl/extractor/nick.py b/youtube_dl/extractor/nick.py index 7edd684..090f1ac 100644 --- a/youtube_dl/extractor/nick.py +++ b/youtube_dl/extractor/nick.py @@ -198,7 +198,7 @@ class NickNightIE(NickDeIE): class NickRuIE(MTVServicesInfoExtractor): IE_NAME = 'nickelodeonru' - _VALID_URL = r'https?://(?:www\.)nickelodeon\.(?:ru|fr|es|pt|ro|hu)/[^/]+/(?:[^/]+/)*(?P<id>[^/?#&]+)' + _VALID_URL = r'https?://(?:www\.)nickelodeon\.(?:ru|fr|es|pt|ro|hu|com\.tr)/[^/]+/(?:[^/]+/)*(?P<id>[^/?#&]+)' _TESTS = [{ 'url': 'http://www.nickelodeon.ru/shows/henrydanger/videos/episodes/3-sezon-15-seriya-licenziya-na-polyot/pmomfb#playlist/7airc6', 'only_matching': True, @@ -220,6 +220,9 @@ class NickRuIE(MTVServicesInfoExtractor): }, { 'url': 'http://www.nickelodeon.hu/musorok/spongyabob-kockanadrag/videok/episodes/buborekfujas-az-elszakadt-nadrag/q57iob#playlist/k6te4y', 'only_matching': True, + }, { + 'url': 'http://www.nickelodeon.com.tr/programlar/sunger-bob/videolar/kayip-yatak/mgqbjy', + 'only_matching': True, }] def _real_extract(self, url): diff --git a/youtube_dl/extractor/ninegag.py b/youtube_dl/extractor/ninegag.py index a06d38a..dc6a27d 100644 --- a/youtube_dl/extractor/ninegag.py +++ b/youtube_dl/extractor/ninegag.py @@ -13,7 +13,7 @@ class NineGagIE(InfoExtractor): _TESTS = [{ 'url': 'http://9gag.com/tv/p/Kk2X5/people-are-awesome-2013-is-absolutely-awesome', 'info_dict': { - 'id': 'Kk2X5', + 'id': 'kXzwOKyGlSA', 'ext': 'mp4', 'description': 'This 3-minute video will make you smile and then make you feel untalented and insignificant. Anyway, you should share this awesomeness. (Thanks, Dino!)', 'title': '\"People Are Awesome 2013\" Is Absolutely Awesome', diff --git a/youtube_dl/extractor/njpwworld.py b/youtube_dl/extractor/njpwworld.py index 9b5ad5a..febef09 100644 --- a/youtube_dl/extractor/njpwworld.py +++ b/youtube_dl/extractor/njpwworld.py @@ -43,7 +43,8 @@ class NJPWWorldIE(InfoExtractor): webpage, urlh = self._download_webpage_handle( 'https://njpwworld.com/auth/login', None, note='Logging in', errnote='Unable to login', - data=urlencode_postdata({'login_id': username, 'pw': password})) + data=urlencode_postdata({'login_id': username, 'pw': password}), + headers={'Referer': 'https://njpwworld.com/auth'}) # /auth/login will return 302 for successful logins if urlh.geturl() == 'https://njpwworld.com/auth/login': self.report_warning('unable to login') diff --git a/youtube_dl/extractor/npo.py b/youtube_dl/extractor/npo.py index b8fe244..ff21533 100644 --- a/youtube_dl/extractor/npo.py +++ b/youtube_dl/extractor/npo.py @@ -11,6 +11,7 @@ from ..utils import ( determine_ext, ExtractorError, fix_xml_ampersands, + int_or_none, orderedSet, parse_duration, qualities, @@ -38,7 +39,7 @@ class NPOIE(NPOBaseIE): npo\.nl/(?!(?:live|radio)/)(?:[^/]+/){2}| ntr\.nl/(?:[^/]+/){2,}| omroepwnl\.nl/video/fragment/[^/]+__| - (?:zapp|npo3)\.nl/(?:[^/]+/){2} + (?:zapp|npo3)\.nl/(?:[^/]+/){2,} ) ) (?P<id>[^/?#]+) @@ -156,6 +157,9 @@ class NPOIE(NPOBaseIE): }, { 'url': 'http://www.npo.nl/radio-gaga/13-06-2017/BNN_101383373', 'only_matching': True, + }, { + 'url': 'https://www.zapp.nl/1803-skelterlab/instructie-video-s/740-instructievideo-s/POMS_AT_11736927', + 'only_matching': True, }] def _real_extract(self, url): @@ -170,6 +174,10 @@ class NPOIE(NPOBaseIE): transform_source=strip_jsonp, ) + error = metadata.get('error') + if error: + raise ExtractorError(error, expected=True) + # For some videos actual video id (prid) is different (e.g. for # http://www.omroepwnl.nl/video/fragment/vandaag-de-dag-verkiezingen__POMS_WNL_853698 # video id is POMS_WNL_853698 but prid is POW_00996502) @@ -187,7 +195,15 @@ class NPOIE(NPOBaseIE): formats = [] urls = set() - quality = qualities(['adaptive', 'wmv_sb', 'h264_sb', 'wmv_bb', 'h264_bb', 'wvc1_std', 'h264_std']) + def is_legal_url(format_url): + return format_url and format_url not in urls and re.match( + r'^(?:https?:)?//', format_url) + + QUALITY_LABELS = ('Laag', 'Normaal', 'Hoog') + QUALITY_FORMATS = ('adaptive', 'wmv_sb', 'h264_sb', 'wmv_bb', 'h264_bb', 'wvc1_std', 'h264_std') + + quality_from_label = qualities(QUALITY_LABELS) + quality_from_format_id = qualities(QUALITY_FORMATS) items = self._download_json( 'http://ida.omroep.nl/app.php/%s' % video_id, video_id, 'Downloading formats JSON', query={ @@ -196,18 +212,34 @@ class NPOIE(NPOBaseIE): })['items'][0] for num, item in enumerate(items): item_url = item.get('url') - if not item_url or item_url in urls: + if not is_legal_url(item_url): continue urls.add(item_url) format_id = self._search_regex( r'video/ida/([^/]+)', item_url, 'format id', default=None) + item_label = item.get('label') + def add_format_url(format_url): + width = int_or_none(self._search_regex( + r'(\d+)[xX]\d+', format_url, 'width', default=None)) + height = int_or_none(self._search_regex( + r'\d+[xX](\d+)', format_url, 'height', default=None)) + if item_label in QUALITY_LABELS: + quality = quality_from_label(item_label) + f_id = item_label + elif item_label in QUALITY_FORMATS: + quality = quality_from_format_id(format_id) + f_id = format_id + else: + quality, f_id = [None] * 2 formats.append({ 'url': format_url, - 'format_id': format_id, - 'quality': quality(format_id), + 'format_id': f_id, + 'width': width, + 'height': height, + 'quality': quality, }) # Example: http://www.npo.nl/de-nieuwe-mens-deel-1/21-07-2010/WO_VPRO_043706 @@ -219,7 +251,7 @@ class NPOIE(NPOBaseIE): stream_info = self._download_json( item_url + '&type=json', video_id, 'Downloading %s stream JSON' - % item.get('label') or item.get('format') or format_id or num) + % item_label or item.get('format') or format_id or num) except ExtractorError as ee: if isinstance(ee.cause, compat_HTTPError) and ee.cause.code == 404: error = (self._parse_json( @@ -251,7 +283,7 @@ class NPOIE(NPOBaseIE): if not is_live: for num, stream in enumerate(metadata.get('streams', [])): stream_url = stream.get('url') - if not stream_url or stream_url in urls: + if not is_legal_url(stream_url): continue urls.add(stream_url) # smooth streaming is not supported diff --git a/youtube_dl/extractor/periscope.py b/youtube_dl/extractor/periscope.py index e5e0853..8afe541 100644 --- a/youtube_dl/extractor/periscope.py +++ b/youtube_dl/extractor/periscope.py @@ -56,18 +56,16 @@ class PeriscopeIE(PeriscopeBaseIE): def _real_extract(self, url): token = self._match_id(url) - broadcast_data = self._call_api( - 'getBroadcastPublic', {'broadcast_id': token}, token) - broadcast = broadcast_data['broadcast'] - status = broadcast['status'] + stream = self._call_api( + 'accessVideoPublic', {'broadcast_id': token}, token) - user = broadcast_data.get('user', {}) + broadcast = stream['broadcast'] + title = broadcast['status'] - uploader = broadcast.get('user_display_name') or user.get('display_name') - uploader_id = (broadcast.get('username') or user.get('username') or - broadcast.get('user_id') or user.get('id')) + uploader = broadcast.get('user_display_name') or broadcast.get('username') + uploader_id = (broadcast.get('user_id') or broadcast.get('username')) - title = '%s - %s' % (uploader, status) if uploader else status + title = '%s - %s' % (uploader, title) if uploader else title state = broadcast.get('state').lower() if state == 'running': title = self._live_title(title) @@ -77,9 +75,6 @@ class PeriscopeIE(PeriscopeBaseIE): 'url': broadcast[image], } for image in ('image_url', 'image_url_small') if broadcast.get(image)] - stream = self._call_api( - 'getAccessPublic', {'broadcast_id': token}, token) - video_urls = set() formats = [] for format_id in ('replay', 'rtmp', 'hls', 'https_hls', 'lhls', 'lhlsweb'): diff --git a/youtube_dl/extractor/pladform.py b/youtube_dl/extractor/pladform.py index e38c761..e86c653 100644 --- a/youtube_dl/extractor/pladform.py +++ b/youtube_dl/extractor/pladform.py @@ -4,7 +4,9 @@ from __future__ import unicode_literals import re from .common import InfoExtractor +from ..compat import compat_urlparse from ..utils import ( + determine_ext, ExtractorError, int_or_none, xpath_text, @@ -26,17 +28,15 @@ class PladformIE(InfoExtractor): (?P<id>\d+) ''' _TESTS = [{ - # http://muz-tv.ru/kinozal/view/7400/ - 'url': 'http://out.pladform.ru/player?pl=24822&videoid=100183293', - 'md5': '61f37b575dd27f1bb2e1854777fe31f4', + 'url': 'https://out.pladform.ru/player?pl=64471&videoid=3777899&vk_puid15=0&vk_puid34=0', + 'md5': '53362fac3a27352da20fa2803cc5cd6f', 'info_dict': { - 'id': '100183293', + 'id': '3777899', 'ext': 'mp4', - 'title': 'Тайны перевала Дятлова • 1 серия 2 часть', - 'description': 'Документальный сериал-расследование одной из самых жутких тайн ХХ века', + 'title': 'СТУДИЯ СОЮЗ • Шоу Студия Союз, 24 выпуск (01.02.2018) Нурлан Сабуров и Слава Комиссаренко', + 'description': 'md5:05140e8bf1b7e2d46e7ba140be57fd95', 'thumbnail': r're:^https?://.*\.jpg$', - 'duration': 694, - 'age_limit': 0, + 'duration': 3190, }, }, { 'url': 'http://static.pladform.ru/player.swf?pl=21469&videoid=100183293&vkcid=0', @@ -56,22 +56,48 @@ class PladformIE(InfoExtractor): def _real_extract(self, url): video_id = self._match_id(url) + qs = compat_urlparse.parse_qs(compat_urlparse.urlparse(url).query) + pl = qs.get('pl', ['1'])[0] + video = self._download_xml( - 'http://out.pladform.ru/getVideo?pl=1&videoid=%s' % video_id, - video_id) + 'http://out.pladform.ru/getVideo', video_id, query={ + 'pl': pl, + 'videoid': video_id, + }) - if video.tag == 'error': + def fail(text): raise ExtractorError( - '%s returned error: %s' % (self.IE_NAME, video.text), + '%s returned error: %s' % (self.IE_NAME, text), expected=True) + if video.tag == 'error': + fail(video.text) + quality = qualities(('ld', 'sd', 'hd')) - formats = [{ - 'url': src.text, - 'format_id': src.get('quality'), - 'quality': quality(src.get('quality')), - } for src in video.findall('./src')] + formats = [] + for src in video.findall('./src'): + if src is None: + continue + format_url = src.text + if not format_url: + continue + if src.get('type') == 'hls' or determine_ext(format_url) == 'm3u8': + formats.extend(self._extract_m3u8_formats( + format_url, video_id, 'mp4', entry_protocol='m3u8_native', + m3u8_id='hls', fatal=False)) + else: + formats.append({ + 'url': src.text, + 'format_id': src.get('quality'), + 'quality': quality(src.get('quality')), + }) + + if not formats: + error = xpath_text(video, './cap', 'error', default=None) + if error: + fail(error) + self._sort_formats(formats) webpage = self._download_webpage( diff --git a/youtube_dl/extractor/pokemon.py b/youtube_dl/extractor/pokemon.py index 2d87e7e..dd5f17f 100644 --- a/youtube_dl/extractor/pokemon.py +++ b/youtube_dl/extractor/pokemon.py @@ -11,19 +11,34 @@ from ..utils import ( class PokemonIE(InfoExtractor): - _VALID_URL = r'https?://(?:www\.)?pokemon\.com/[a-z]{2}(?:.*?play=(?P<id>[a-z0-9]{32})|/[^/]+/\d+_\d+-(?P<display_id>[^/?#]+))' + _VALID_URL = r'https?://(?:www\.)?pokemon\.com/[a-z]{2}(?:.*?play=(?P<id>[a-z0-9]{32})|/(?:[^/]+/)+(?P<display_id>[^/?#&]+))' _TESTS = [{ - 'url': 'http://www.pokemon.com/us/pokemon-episodes/19_01-from-a-to-z/?play=true', - 'md5': '9fb209ae3a569aac25de0f5afc4ee08f', + 'url': 'https://www.pokemon.com/us/pokemon-episodes/20_30-the-ol-raise-and-switch/', + 'md5': '2fe8eaec69768b25ef898cda9c43062e', 'info_dict': { - 'id': 'd0436c00c3ce4071ac6cee8130ac54a1', + 'id': 'afe22e30f01c41f49d4f1d9eab5cd9a4', 'ext': 'mp4', - 'title': 'From A to Z!', - 'description': 'Bonnie makes a new friend, Ash runs into an old friend, and a terrifying premonition begins to unfold!', - 'timestamp': 1460478136, - 'upload_date': '20160412', + 'title': 'The Ol’ Raise and Switch!', + 'description': 'md5:7db77f7107f98ba88401d3adc80ff7af', + 'timestamp': 1511824728, + 'upload_date': '20171127', + }, + 'add_id': ['LimelightMedia'], + }, { + # no data-video-title + 'url': 'https://www.pokemon.com/us/pokemon-episodes/pokemon-movies/pokemon-the-rise-of-darkrai-2008', + 'info_dict': { + 'id': '99f3bae270bf4e5097274817239ce9c8', + 'ext': 'mp4', + 'title': 'Pokémon: The Rise of Darkrai', + 'description': 'md5:ea8fbbf942e1e497d54b19025dd57d9d', + 'timestamp': 1417778347, + 'upload_date': '20141205', + }, + 'add_id': ['LimelightMedia'], + 'params': { + 'skip_download': True, }, - 'add_id': ['LimelightMedia'] }, { 'url': 'http://www.pokemon.com/uk/pokemon-episodes/?play=2e8b5c761f1d4a9286165d7748c1ece2', 'only_matching': True, @@ -42,7 +57,9 @@ class PokemonIE(InfoExtractor): r'(<[^>]+data-video-id="%s"[^>]*>)' % (video_id if video_id else '[a-z0-9]{32}'), webpage, 'video data element')) video_id = video_data['data-video-id'] - title = video_data['data-video-title'] + title = video_data.get('data-video-title') or self._html_search_meta( + 'pkm-title', webpage, ' title', default=None) or self._search_regex( + r'<h1[^>]+\bclass=["\']us-title[^>]+>([^<]+)', webpage, 'title') return { '_type': 'url_transparent', 'id': video_id, diff --git a/youtube_dl/extractor/pornhub.py b/youtube_dl/extractor/pornhub.py index 3428458..9ce513a 100644 --- a/youtube_dl/extractor/pornhub.py +++ b/youtube_dl/extractor/pornhub.py @@ -115,12 +115,13 @@ class PornHubIE(InfoExtractor): def _real_extract(self, url): video_id = self._match_id(url) + self._set_cookie('pornhub.com', 'age_verified', '1') + def dl_webpage(platform): + self._set_cookie('pornhub.com', 'platform', platform) return self._download_webpage( 'http://www.pornhub.com/view_video.php?viewkey=%s' % video_id, - video_id, headers={ - 'Cookie': 'age_verified=1; platform=%s' % platform, - }) + video_id) webpage = dl_webpage('pc') @@ -275,7 +276,7 @@ class PornHubPlaylistIE(PornHubPlaylistBaseIE): class PornHubUserVideosIE(PornHubPlaylistBaseIE): - _VALID_URL = r'https?://(?:www\.)?pornhub\.com/users/(?P<id>[^/]+)/videos' + _VALID_URL = r'https?://(?:www\.)?pornhub\.com/(?:user|channel)s/(?P<id>[^/]+)/videos' _TESTS = [{ 'url': 'http://www.pornhub.com/users/zoe_ph/videos/public', 'info_dict': { @@ -285,6 +286,25 @@ class PornHubUserVideosIE(PornHubPlaylistBaseIE): }, { 'url': 'http://www.pornhub.com/users/rushandlia/videos', 'only_matching': True, + }, { + # default sorting as Top Rated Videos + 'url': 'https://www.pornhub.com/channels/povd/videos', + 'info_dict': { + 'id': 'povd', + }, + 'playlist_mincount': 293, + }, { + # Top Rated Videos + 'url': 'https://www.pornhub.com/channels/povd/videos?o=ra', + 'only_matching': True, + }, { + # Most Recent Videos + 'url': 'https://www.pornhub.com/channels/povd/videos?o=da', + 'only_matching': True, + }, { + # Most Viewed Videos + 'url': 'https://www.pornhub.com/channels/povd/videos?o=vi', + 'only_matching': True, }] def _real_extract(self, url): diff --git a/youtube_dl/extractor/prosiebensat1.py b/youtube_dl/extractor/prosiebensat1.py index 48757fd..7efff45 100644 --- a/youtube_dl/extractor/prosiebensat1.py +++ b/youtube_dl/extractor/prosiebensat1.py @@ -129,6 +129,7 @@ class ProSiebenSat1IE(ProSiebenSat1BaseIE): https?:// (?:www\.)? (?: + (?:beta\.)? (?: prosieben(?:maxx)?|sixx|sat1(?:gold)?|kabeleins(?:doku)?|the-voice-of-germany|7tv|advopedia )\.(?:de|at|ch)| diff --git a/youtube_dl/extractor/raywenderlich.py b/youtube_dl/extractor/raywenderlich.py new file mode 100644 index 0000000..640c3ee --- /dev/null +++ b/youtube_dl/extractor/raywenderlich.py @@ -0,0 +1,102 @@ +from __future__ import unicode_literals + +import re + +from .common import InfoExtractor +from .vimeo import VimeoIE +from ..utils import ( + extract_attributes, + ExtractorError, + smuggle_url, + unsmuggle_url, + urljoin, +) + + +class RayWenderlichIE(InfoExtractor): + _VALID_URL = r'https?://videos\.raywenderlich\.com/courses/(?P<course_id>[^/]+)/lessons/(?P<id>\d+)' + + _TESTS = [{ + 'url': 'https://videos.raywenderlich.com/courses/105-testing-in-ios/lessons/1', + 'info_dict': { + 'id': '248377018', + 'ext': 'mp4', + 'title': 'Testing In iOS Episode 1: Introduction', + 'duration': 133, + 'uploader': 'Ray Wenderlich', + 'uploader_id': 'user3304672', + }, + 'params': { + 'noplaylist': True, + 'skip_download': True, + }, + 'add_ie': [VimeoIE.ie_key()], + 'expected_warnings': ['HTTP Error 403: Forbidden'], + }, { + 'url': 'https://videos.raywenderlich.com/courses/105-testing-in-ios/lessons/1', + 'info_dict': { + 'title': 'Testing in iOS', + 'id': '105-testing-in-ios', + }, + 'params': { + 'noplaylist': False, + }, + 'playlist_count': 29, + }] + + def _real_extract(self, url): + url, smuggled_data = unsmuggle_url(url, {}) + + mobj = re.match(self._VALID_URL, url) + course_id, lesson_id = mobj.group('course_id', 'id') + video_id = '%s/%s' % (course_id, lesson_id) + + webpage = self._download_webpage(url, video_id) + + no_playlist = self._downloader.params.get('noplaylist') + if no_playlist or smuggled_data.get('force_video', False): + if no_playlist: + self.to_screen( + 'Downloading just video %s because of --no-playlist' + % video_id) + if '>Subscribe to unlock' in webpage: + raise ExtractorError( + 'This content is only available for subscribers', + expected=True) + vimeo_id = self._search_regex( + r'data-vimeo-id=["\'](\d+)', webpage, 'video id') + return self.url_result( + VimeoIE._smuggle_referrer( + 'https://player.vimeo.com/video/%s' % vimeo_id, url), + ie=VimeoIE.ie_key(), video_id=vimeo_id) + + self.to_screen( + 'Downloading playlist %s - add --no-playlist to just download video' + % course_id) + + lesson_ids = set((lesson_id, )) + for lesson in re.findall( + r'(<a[^>]+\bclass=["\']lesson-link[^>]+>)', webpage): + attrs = extract_attributes(lesson) + if not attrs: + continue + lesson_url = attrs.get('href') + if not lesson_url: + continue + lesson_id = self._search_regex( + r'/lessons/(\d+)', lesson_url, 'lesson id', default=None) + if not lesson_id: + continue + lesson_ids.add(lesson_id) + + entries = [] + for lesson_id in sorted(lesson_ids): + entries.append(self.url_result( + smuggle_url(urljoin(url, lesson_id), {'force_video': True}), + ie=RayWenderlichIE.ie_key())) + + title = self._search_regex( + r'class=["\']course-title[^>]+>([^<]+)', webpage, 'course title', + default=None) + + return self.playlist_result(entries, course_id, title) diff --git a/youtube_dl/extractor/redbulltv.py b/youtube_dl/extractor/redbulltv.py index 5d6cc36..2436036 100644 --- a/youtube_dl/extractor/redbulltv.py +++ b/youtube_dl/extractor/redbulltv.py @@ -5,135 +5,93 @@ from .common import InfoExtractor from ..compat import compat_HTTPError from ..utils import ( float_or_none, - int_or_none, - try_get, - # unified_timestamp, ExtractorError, ) class RedBullTVIE(InfoExtractor): - _VALID_URL = r'https?://(?:www\.)?redbull\.tv/(?:video|film|live)/(?:AP-\w+/segment/)?(?P<id>AP-\w+)' + _VALID_URL = r'https?://(?:www\.)?redbull\.tv/video/(?P<id>AP-\w+)' _TESTS = [{ # film - 'url': 'https://www.redbull.tv/video/AP-1Q756YYX51W11/abc-of-wrc', + 'url': 'https://www.redbull.tv/video/AP-1Q6XCDTAN1W11', 'md5': 'fb0445b98aa4394e504b413d98031d1f', 'info_dict': { - 'id': 'AP-1Q756YYX51W11', + 'id': 'AP-1Q6XCDTAN1W11', 'ext': 'mp4', - 'title': 'ABC of...WRC', + 'title': 'ABC of... WRC - ABC of... S1E6', 'description': 'md5:5c7ed8f4015c8492ecf64b6ab31e7d31', 'duration': 1582.04, - # 'timestamp': 1488405786, - # 'upload_date': '20170301', }, }, { # episode - 'url': 'https://www.redbull.tv/video/AP-1PMT5JCWH1W11/grime?playlist=shows:shows-playall:web', + 'url': 'https://www.redbull.tv/video/AP-1PMHKJFCW1W11', 'info_dict': { - 'id': 'AP-1PMT5JCWH1W11', + 'id': 'AP-1PMHKJFCW1W11', 'ext': 'mp4', - 'title': 'Grime - Hashtags S2 E4', - 'description': 'md5:334b741c8c1ce65be057eab6773c1cf5', + 'title': 'Grime - Hashtags S2E4', + 'description': 'md5:b5f522b89b72e1e23216e5018810bb25', 'duration': 904.6, - # 'timestamp': 1487290093, - # 'upload_date': '20170217', - 'series': 'Hashtags', - 'season_number': 2, - 'episode_number': 4, }, 'params': { 'skip_download': True, }, - }, { - # segment - 'url': 'https://www.redbull.tv/live/AP-1R5DX49XS1W11/segment/AP-1QSAQJ6V52111/semi-finals', - 'info_dict': { - 'id': 'AP-1QSAQJ6V52111', - 'ext': 'mp4', - 'title': 'Semi Finals - Vans Park Series Pro Tour', - 'description': 'md5:306a2783cdafa9e65e39aa62f514fd97', - 'duration': 11791.991, - }, - 'params': { - 'skip_download': True, - }, - }, { - 'url': 'https://www.redbull.tv/film/AP-1MSKKF5T92111/in-motion', - 'only_matching': True, }] def _real_extract(self, url): video_id = self._match_id(url) session = self._download_json( - 'https://api-v2.redbull.tv/session', video_id, + 'https://api.redbull.tv/v3/session', video_id, note='Downloading access token', query={ - 'build': '4.370.0', 'category': 'personal_computer', - 'os_version': '1.0', 'os_family': 'http', }) if session.get('code') == 'error': raise ExtractorError('%s said: %s' % ( self.IE_NAME, session['message'])) - auth = '%s %s' % (session.get('token_type', 'Bearer'), session['access_token']) + token = session['token'] try: - info = self._download_json( - 'https://api-v2.redbull.tv/content/%s' % video_id, + video = self._download_json( + 'https://api.redbull.tv/v3/products/' + video_id, video_id, note='Downloading video information', - headers={'Authorization': auth} + headers={'Authorization': token} ) except ExtractorError as e: if isinstance(e.cause, compat_HTTPError) and e.cause.code == 404: error_message = self._parse_json( - e.cause.read().decode(), video_id)['message'] + e.cause.read().decode(), video_id)['error'] raise ExtractorError('%s said: %s' % ( self.IE_NAME, error_message), expected=True) raise - video = info['video_product'] - - title = info['title'].strip() + title = video['title'].strip() formats = self._extract_m3u8_formats( - video['url'], video_id, 'mp4', entry_protocol='m3u8_native', - m3u8_id='hls') + 'https://dms.redbull.tv/v3/%s/%s/playlist.m3u8' % (video_id, token), + video_id, 'mp4', entry_protocol='m3u8_native', m3u8_id='hls') self._sort_formats(formats) subtitles = {} - for _, captions in (try_get( - video, lambda x: x['attachments']['captions'], - dict) or {}).items(): - if not captions or not isinstance(captions, list): - continue - for caption in captions: - caption_url = caption.get('url') - if not caption_url: - continue - ext = caption.get('format') - if ext == 'xml': - ext = 'ttml' - subtitles.setdefault(caption.get('lang') or 'en', []).append({ - 'url': caption_url, - 'ext': ext, - }) + for resource in video.get('resources', []): + if resource.startswith('closed_caption_'): + splitted_resource = resource.split('_') + if splitted_resource[2]: + subtitles.setdefault('en', []).append({ + 'url': 'https://resources.redbull.tv/%s/%s' % (video_id, resource), + 'ext': splitted_resource[2], + }) - subheading = info.get('subheading') + subheading = video.get('subheading') if subheading: title += ' - %s' % subheading return { 'id': video_id, 'title': title, - 'description': info.get('long_description') or info.get( + 'description': video.get('long_description') or video.get( 'short_description'), 'duration': float_or_none(video.get('duration'), scale=1000), - # 'timestamp': unified_timestamp(info.get('published')), - 'series': info.get('show_title'), - 'season_number': int_or_none(info.get('season_number')), - 'episode_number': int_or_none(info.get('episode_number')), 'formats': formats, 'subtitles': subtitles, } diff --git a/youtube_dl/extractor/reddit.py b/youtube_dl/extractor/reddit.py index f36bc64..53b1c96 100644 --- a/youtube_dl/extractor/reddit.py +++ b/youtube_dl/extractor/reddit.py @@ -15,7 +15,7 @@ class RedditIE(InfoExtractor): _TEST = { # from https://www.reddit.com/r/videos/comments/6rrwyj/that_small_heart_attack/ 'url': 'https://v.redd.it/zv89llsvexdz', - 'md5': '655d06ace653ea3b87bccfb1b27ec99d', + 'md5': '0a070c53eba7ec4534d95a5a1259e253', 'info_dict': { 'id': 'zv89llsvexdz', 'ext': 'mp4', diff --git a/youtube_dl/extractor/redtube.py b/youtube_dl/extractor/redtube.py index f70a752..879bcf8 100644 --- a/youtube_dl/extractor/redtube.py +++ b/youtube_dl/extractor/redtube.py @@ -16,12 +16,12 @@ class RedTubeIE(InfoExtractor): _VALID_URL = r'https?://(?:(?:www\.)?redtube\.com/|embed\.redtube\.com/\?.*?\bid=)(?P<id>[0-9]+)' _TESTS = [{ 'url': 'http://www.redtube.com/66418', - 'md5': '7b8c22b5e7098a3e1c09709df1126d2d', + 'md5': 'fc08071233725f26b8f014dba9590005', 'info_dict': { 'id': '66418', 'ext': 'mp4', 'title': 'Sucked on a toilet', - 'upload_date': '20120831', + 'upload_date': '20110811', 'duration': 596, 'view_count': int, 'age_limit': 18, @@ -46,9 +46,10 @@ class RedTubeIE(InfoExtractor): raise ExtractorError('Video %s has been removed' % video_id, expected=True) title = self._html_search_regex( - (r'<h1 class="videoTitle[^"]*">(?P<title>.+?)</h1>', - r'videoTitle\s*:\s*(["\'])(?P<title>)\1'), - webpage, 'title', group='title') + (r'<h(\d)[^>]+class="(?:video_title_text|videoTitle)[^"]*">(?P<title>(?:(?!\1).)+)</h\1>', + r'(?:videoTitle|title)\s*:\s*(["\'])(?P<title>(?:(?!\1).)+)\1',), + webpage, 'title', group='title', + default=None) or self._og_search_title(webpage) formats = [] sources = self._parse_json( @@ -87,12 +88,14 @@ class RedTubeIE(InfoExtractor): thumbnail = self._og_search_thumbnail(webpage) upload_date = unified_strdate(self._search_regex( - r'<span[^>]+class="added-time"[^>]*>ADDED ([^<]+)<', + r'<span[^>]+>ADDED ([^<]+)<', webpage, 'upload date', fatal=False)) - duration = int_or_none(self._search_regex( - r'videoDuration\s*:\s*(\d+)', webpage, 'duration', default=None)) + duration = int_or_none(self._og_search_property( + 'video:duration', webpage, default=None) or self._search_regex( + r'videoDuration\s*:\s*(\d+)', webpage, 'duration', default=None)) view_count = str_to_int(self._search_regex( - r'<span[^>]*>VIEWS</span></td>\s*<td>([\d,.]+)', + (r'<div[^>]*>Views</div>\s*<div[^>]*>\s*([\d,.]+)', + r'<span[^>]*>VIEWS</span>\s*</td>\s*<td>\s*([\d,.]+)'), webpage, 'view count', fatal=False)) # No self-labeling, but they describe themselves as diff --git a/youtube_dl/extractor/rtlnl.py b/youtube_dl/extractor/rtlnl.py index bba25a2..be36acc 100644 --- a/youtube_dl/extractor/rtlnl.py +++ b/youtube_dl/extractor/rtlnl.py @@ -93,58 +93,11 @@ class RtlNlIE(InfoExtractor): meta = info.get('meta', {}) - # m3u8 streams are encrypted and may not be handled properly by older ffmpeg/avconv. - # To workaround this previously adaptive -> flash trick was used to obtain - # unencrypted m3u8 streams (see https://github.com/rg3/youtube-dl/issues/4118) - # and bypass georestrictions as well. - # Currently, unencrypted m3u8 playlists are (intentionally?) invalid and therefore - # unusable albeit can be fixed by simple string replacement (see - # https://github.com/rg3/youtube-dl/pull/6337) - # Since recent ffmpeg and avconv handle encrypted streams just fine encrypted - # streams are used now. videopath = material['videopath'] m3u8_url = meta.get('videohost', 'http://manifest.us.rtl.nl') + videopath formats = self._extract_m3u8_formats( m3u8_url, uuid, 'mp4', m3u8_id='hls', fatal=False) - - video_urlpart = videopath.split('/adaptive/')[1][:-5] - PG_URL_TEMPLATE = 'http://pg.us.rtl.nl/rtlxl/network/%s/progressive/%s.mp4' - - PG_FORMATS = ( - ('a2t', 512, 288), - ('a3t', 704, 400), - ('nettv', 1280, 720), - ) - - def pg_format(format_id, width, height): - return { - 'url': PG_URL_TEMPLATE % (format_id, video_urlpart), - 'format_id': 'pg-%s' % format_id, - 'protocol': 'http', - 'width': width, - 'height': height, - } - - if not formats: - formats = [pg_format(*pg_tuple) for pg_tuple in PG_FORMATS] - else: - pg_formats = [] - for format_id, width, height in PG_FORMATS: - try: - # Find hls format with the same width and height corresponding - # to progressive format and copy metadata from it. - f = next(f for f in formats if f.get('height') == height) - # hls formats may have invalid width - f['width'] = width - f_copy = f.copy() - f_copy.update(pg_format(format_id, width, height)) - pg_formats.append(f_copy) - except StopIteration: - # Missing hls format does mean that no progressive format with - # such width and height exists either. - pass - formats.extend(pg_formats) self._sort_formats(formats) thumbnails = [] diff --git a/youtube_dl/extractor/ruutu.py b/youtube_dl/extractor/ruutu.py index 6c09df2..9fa8688 100644 --- a/youtube_dl/extractor/ruutu.py +++ b/youtube_dl/extractor/ruutu.py @@ -53,6 +53,12 @@ class RuutuIE(InfoExtractor): 'age_limit': 0, }, }, + # Episode where <SourceFile> is "NOT-USED", but has other + # downloadable sources available. + { + 'url': 'http://www.ruutu.fi/video/3193728', + 'only_matching': True, + }, ] def _real_extract(self, url): @@ -72,7 +78,7 @@ class RuutuIE(InfoExtractor): video_url = child.text if (not video_url or video_url in processed_urls or any(p in video_url for p in ('NOT_USED', 'NOT-USED'))): - return + continue processed_urls.append(video_url) ext = determine_ext(video_url) if ext == 'm3u8': diff --git a/youtube_dl/extractor/seznamzpravy.py b/youtube_dl/extractor/seznamzpravy.py index cf32d1e..6d4e3b7 100644 --- a/youtube_dl/extractor/seznamzpravy.py +++ b/youtube_dl/extractor/seznamzpravy.py @@ -159,7 +159,6 @@ class SeznamZpravyArticleIE(InfoExtractor): webpage = self._download_webpage(url, article_id) info = self._search_json_ld(webpage, article_id, default={}) - print(info) title = info.get('title') or self._og_search_title(webpage, fatal=False) description = info.get('description') or self._og_search_description(webpage) diff --git a/youtube_dl/extractor/sixplay.py b/youtube_dl/extractor/sixplay.py index 547be8f..69951e3 100644 --- a/youtube_dl/extractor/sixplay.py +++ b/youtube_dl/extractor/sixplay.py @@ -4,7 +4,11 @@ from __future__ import unicode_literals import re from .common import InfoExtractor -from ..compat import compat_str +from ..compat import ( + compat_parse_qs, + compat_str, + compat_urllib_parse_urlparse, +) from ..utils import ( determine_ext, int_or_none, @@ -48,6 +52,7 @@ class SixPlayIE(InfoExtractor): urls = [] quality_key = qualities(['lq', 'sd', 'hq', 'hd']) formats = [] + subtitles = {} for asset in clip_data['assets']: asset_url = asset.get('full_physical_path') protocol = asset.get('protocol') @@ -56,8 +61,11 @@ class SixPlayIE(InfoExtractor): urls.append(asset_url) container = asset.get('video_container') ext = determine_ext(asset_url) + if protocol == 'http_subtitle' or ext == 'vtt': + subtitles.setdefault('fr', []).append({'url': asset_url}) + continue if container == 'm3u8' or ext == 'm3u8': - if protocol == 'usp': + if protocol == 'usp' and not compat_parse_qs(compat_urllib_parse_urlparse(asset_url).query).get('token', [None])[0]: asset_url = re.sub(r'/([^/]+)\.ism/[^/]*\.m3u8', r'/\1.ism/\1.m3u8', asset_url) formats.extend(self._extract_m3u8_formats( asset_url, video_id, 'mp4', 'm3u8_native', @@ -98,4 +106,5 @@ class SixPlayIE(InfoExtractor): 'duration': int_or_none(clip_data.get('duration')), 'series': get(lambda x: x['program']['title']), 'formats': formats, + 'subtitles': subtitles, } diff --git a/youtube_dl/extractor/sonyliv.py b/youtube_dl/extractor/sonyliv.py index c3078e2..58a8c0d 100644 --- a/youtube_dl/extractor/sonyliv.py +++ b/youtube_dl/extractor/sonyliv.py @@ -33,5 +33,8 @@ class SonyLIVIE(InfoExtractor): def _real_extract(self, url): brightcove_id = self._match_id(url) return self.url_result( - smuggle_url(self.BRIGHTCOVE_URL_TEMPLATE % brightcove_id, {'geo_countries': ['IN']}), + smuggle_url(self.BRIGHTCOVE_URL_TEMPLATE % brightcove_id, { + 'geo_countries': ['IN'], + 'referrer': url, + }), 'BrightcoveNew', brightcove_id) diff --git a/youtube_dl/extractor/soundcloud.py b/youtube_dl/extractor/soundcloud.py index 97ff422..46332e5 100644 --- a/youtube_dl/extractor/soundcloud.py +++ b/youtube_dl/extractor/soundcloud.py @@ -157,8 +157,7 @@ class SoundcloudIE(InfoExtractor): }, ] - _CLIENT_ID = 'DQskPX1pntALRzMp4HSxya3Mc0AO66Ro' - _IPHONE_CLIENT_ID = '376f225bf427445fc4bfb6b99b72e0bf' + _CLIENT_ID = 'LvWovRaJZlWCHql0bISuum8Bd2KX79mb' @staticmethod def _extract_urls(webpage): diff --git a/youtube_dl/extractor/spankbang.py b/youtube_dl/extractor/spankbang.py index e6c2dcf..67500b6 100644 --- a/youtube_dl/extractor/spankbang.py +++ b/youtube_dl/extractor/spankbang.py @@ -3,7 +3,12 @@ from __future__ import unicode_literals import re from .common import InfoExtractor -from ..utils import ExtractorError +from ..utils import ( + ExtractorError, + parse_duration, + parse_resolution, + str_to_int, +) class SpankBangIE(InfoExtractor): @@ -15,7 +20,7 @@ class SpankBangIE(InfoExtractor): 'id': '3vvn', 'ext': 'mp4', 'title': 'fantasy solo', - 'description': 'Watch fantasy solo free HD porn video - 05 minutes - Babe,Masturbation,Solo,Toy - dillion harper masturbates on a bed free adult movies sexy clips.', + 'description': 'dillion harper masturbates on a bed', 'thumbnail': r're:^https?://.*\.jpg$', 'uploader': 'silly2587', 'age_limit': 18, @@ -32,36 +37,49 @@ class SpankBangIE(InfoExtractor): # mobile page 'url': 'http://m.spankbang.com/1o2de/video/can+t+remember+her+name', 'only_matching': True, + }, { + # 4k + 'url': 'https://spankbang.com/1vwqx/video/jade+kush+solo+4k', + 'only_matching': True, }] def _real_extract(self, url): video_id = self._match_id(url) - webpage = self._download_webpage(url, video_id) + webpage = self._download_webpage(url, video_id, headers={ + 'Cookie': 'country=US' + }) if re.search(r'<[^>]+\bid=["\']video_removed', webpage): raise ExtractorError( 'Video %s is not available' % video_id, expected=True) - stream_key = self._html_search_regex( - r'''var\s+stream_key\s*=\s*['"](.+?)['"]''', - webpage, 'stream key') - - formats = [{ - 'url': 'http://spankbang.com/_%s/%s/title/%sp__mp4' % (video_id, stream_key, height), - 'ext': 'mp4', - 'format_id': '%sp' % height, - 'height': int(height), - } for height in re.findall(r'<(?:span|li|p)[^>]+[qb]_(\d+)p', webpage)] - self._check_formats(formats, video_id) + formats = [] + for mobj in re.finditer( + r'stream_url_(?P<id>[^\s=]+)\s*=\s*(["\'])(?P<url>(?:(?!\2).)+)\2', + webpage): + format_id, format_url = mobj.group('id', 'url') + f = parse_resolution(format_id) + f.update({ + 'url': format_url, + 'format_id': format_id, + }) + formats.append(f) self._sort_formats(formats) title = self._html_search_regex( r'(?s)<h1[^>]*>(.+?)</h1>', webpage, 'title') - description = self._og_search_description(webpage) + description = self._search_regex( + r'<div[^>]+\bclass=["\']bottom[^>]+>\s*<p>[^<]*</p>\s*<p>([^<]+)', + webpage, 'description', fatal=False) thumbnail = self._og_search_thumbnail(webpage) uploader = self._search_regex( r'class="user"[^>]*><img[^>]+>([^<]+)', webpage, 'uploader', default=None) + duration = parse_duration(self._search_regex( + r'<div[^>]+\bclass=["\']right_side[^>]+>\s*<span>([^<]+)', + webpage, 'duration', fatal=False)) + view_count = str_to_int(self._search_regex( + r'([\d,.]+)\s+plays', webpage, 'view count', fatal=False)) age_limit = self._rta_search(webpage) @@ -71,6 +89,8 @@ class SpankBangIE(InfoExtractor): 'description': description, 'thumbnail': thumbnail, 'uploader': uploader, + 'duration': duration, + 'view_count': view_count, 'formats': formats, 'age_limit': age_limit, } diff --git a/youtube_dl/extractor/streamango.py b/youtube_dl/extractor/streamango.py index a9e34c0..fcaa5ac 100644 --- a/youtube_dl/extractor/streamango.py +++ b/youtube_dl/extractor/streamango.py @@ -4,8 +4,10 @@ from __future__ import unicode_literals import re from .common import InfoExtractor +from ..compat import compat_chr from ..utils import ( determine_ext, + ExtractorError, int_or_none, js_to_json, ) @@ -32,12 +34,34 @@ class StreamangoIE(InfoExtractor): 'params': { 'skip_download': True, }, + 'skip': 'gone', }, { 'url': 'https://streamango.com/embed/clapasobsptpkdfe/20170315_150006_mp4', 'only_matching': True, }] def _real_extract(self, url): + def decrypt_src(encoded, val): + ALPHABET = '=/+9876543210zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA' + encoded = re.sub(r'[^A-Za-z0-9+/=]', '', encoded) + decoded = '' + sm = [None] * 4 + i = 0 + str_len = len(encoded) + while i < str_len: + for j in range(4): + sm[j % 4] = ALPHABET.index(encoded[i]) + i += 1 + char_code = ((sm[0] << 0x2) | (sm[1] >> 0x4)) ^ val + decoded += compat_chr(char_code) + if sm[2] != 0x40: + char_code = ((sm[1] & 0xf) << 0x4) | (sm[2] >> 0x2) + decoded += compat_chr(char_code) + if sm[3] != 0x40: + char_code = ((sm[2] & 0x3) << 0x6) | sm[3] + decoded += compat_chr(char_code) + return decoded + video_id = self._match_id(url) webpage = self._download_webpage(url, video_id) @@ -46,13 +70,26 @@ class StreamangoIE(InfoExtractor): formats = [] for format_ in re.findall(r'({[^}]*\bsrc\s*:\s*[^}]*})', webpage): + mobj = re.search(r'(src\s*:\s*[^(]+\(([^)]*)\)[\s,]*)', format_) + if mobj is None: + continue + + format_ = format_.replace(mobj.group(0), '') + video = self._parse_json( - format_, video_id, transform_source=js_to_json, fatal=False) - if not video: + format_, video_id, transform_source=js_to_json, + fatal=False) or {} + + mobj = re.search( + r'([\'"])(?P<src>(?:(?!\1).)+)\1\s*,\s*(?P<val>\d+)', + mobj.group(1)) + if mobj is None: continue - src = video.get('src') + + src = decrypt_src(mobj.group('src'), int_or_none(mobj.group('val'))) if not src: continue + ext = determine_ext(src, default_ext=None) if video.get('type') == 'application/dash+xml' or ext == 'mpd': formats.extend(self._extract_mpd_formats( @@ -65,6 +102,16 @@ class StreamangoIE(InfoExtractor): 'height': int_or_none(video.get('height')), 'tbr': int_or_none(video.get('bitrate')), }) + + if not formats: + error = self._search_regex( + r'<p[^>]+\bclass=["\']lead[^>]+>(.+?)</p>', webpage, + 'error', default=None) + if not error and '>Sorry' in webpage: + error = 'Video %s is not available' % video_id + if error: + raise ExtractorError(error, expected=True) + self._sort_formats(formats) return { diff --git a/youtube_dl/extractor/telebruxelles.py b/youtube_dl/extractor/telebruxelles.py index 5886e9c..a0353fe 100644 --- a/youtube_dl/extractor/telebruxelles.py +++ b/youtube_dl/extractor/telebruxelles.py @@ -7,7 +7,7 @@ from .common import InfoExtractor class TeleBruxellesIE(InfoExtractor): - _VALID_URL = r'https?://(?:www\.)?(?:telebruxelles|bx1)\.be/(news|sport|dernier-jt|emission)/?(?P<id>[^/#?]+)' + _VALID_URL = r'https?://(?:www\.)?(?:telebruxelles|bx1)\.be/(?:[^/]+/)*(?P<id>[^/#?]+)' _TESTS = [{ 'url': 'http://bx1.be/news/que-risque-lauteur-dune-fausse-alerte-a-la-bombe/', 'md5': 'a2a67a5b1c3e8c9d33109b902f474fd9', @@ -31,6 +31,16 @@ class TeleBruxellesIE(InfoExtractor): }, { 'url': 'http://bx1.be/emission/bxenf1-gastronomie/', 'only_matching': True, + }, { + 'url': 'https://bx1.be/berchem-sainte-agathe/personnel-carrefour-de-berchem-sainte-agathe-inquiet/', + 'only_matching': True, + }, { + 'url': 'https://bx1.be/dernier-jt/', + 'only_matching': True, + }, { + # live stream + 'url': 'https://bx1.be/lives/direct-tv/', + 'only_matching': True, }] def _real_extract(self, url): @@ -38,22 +48,29 @@ class TeleBruxellesIE(InfoExtractor): webpage = self._download_webpage(url, display_id) article_id = self._html_search_regex( - r"<article id=\"post-(\d+)\"", webpage, 'article ID', default=None) + r'<article[^>]+\bid=["\']post-(\d+)', webpage, 'article ID', default=None) title = self._html_search_regex( - r'<h1 class=\"entry-title\">(.*?)</h1>', webpage, 'title') + r'<h1[^>]*>(.+?)</h1>', webpage, 'title', + default=None) or self._og_search_title(webpage) description = self._og_search_description(webpage, default=None) rtmp_url = self._html_search_regex( - r'file\s*:\s*"(rtmp://[^/]+/vod/mp4:"\s*\+\s*"[^"]+"\s*\+\s*".mp4)"', + r'file["\']?\s*:\s*"(r(?:tm|mt)ps?://[^/]+/(?:vod/mp4:"\s*\+\s*"[^"]+"\s*\+\s*"\.mp4|stream/live))"', webpage, 'RTMP url') + # Yes, they have a typo in scheme name for live stream URLs (e.g. + # https://bx1.be/lives/direct-tv/) + rtmp_url = re.sub(r'^rmtp', 'rtmp', rtmp_url) rtmp_url = re.sub(r'"\s*\+\s*"', '', rtmp_url) formats = self._extract_wowza_formats(rtmp_url, article_id or display_id) self._sort_formats(formats) + is_live = 'stream/live' in rtmp_url + return { 'id': article_id or display_id, 'display_id': display_id, - 'title': title, + 'title': self._live_title(title) if is_live else title, 'description': description, 'formats': formats, + 'is_live': is_live, } diff --git a/youtube_dl/extractor/telequebec.py b/youtube_dl/extractor/telequebec.py index fafaa82..6965c12 100644 --- a/youtube_dl/extractor/telequebec.py +++ b/youtube_dl/extractor/telequebec.py @@ -10,19 +10,33 @@ from ..utils import ( ) -class TeleQuebecIE(InfoExtractor): +class TeleQuebecBaseIE(InfoExtractor): + @staticmethod + def _limelight_result(media_id): + return { + '_type': 'url_transparent', + 'url': smuggle_url( + 'limelight:media:' + media_id, {'geo_countries': ['CA']}), + 'ie_key': 'LimelightMedia', + } + + +class TeleQuebecIE(TeleQuebecBaseIE): _VALID_URL = r'https?://zonevideo\.telequebec\.tv/media/(?P<id>\d+)' _TESTS = [{ - 'url': 'http://zonevideo.telequebec.tv/media/20984/le-couronnement-de-new-york/couronnement-de-new-york', - 'md5': 'fe95a0957e5707b1b01f5013e725c90f', + # available till 01.01.2023 + 'url': 'http://zonevideo.telequebec.tv/media/37578/un-petit-choc-et-puis-repart/un-chef-a-la-cabane', 'info_dict': { - 'id': '20984', + 'id': '577116881b4b439084e6b1cf4ef8b1b3', 'ext': 'mp4', - 'title': 'Le couronnement de New York', - 'description': 'md5:f5b3d27a689ec6c1486132b2d687d432', - 'upload_date': '20170201', - 'timestamp': 1485972222, - } + 'title': 'Un petit choc et puis repart!', + 'description': 'md5:b04a7e6b3f74e32d7b294cffe8658374', + 'upload_date': '20180222', + 'timestamp': 1519326631, + }, + 'params': { + 'skip_download': True, + }, }, { # no description 'url': 'http://zonevideo.telequebec.tv/media/30261', @@ -31,19 +45,107 @@ class TeleQuebecIE(InfoExtractor): def _real_extract(self, url): media_id = self._match_id(url) + media_data = self._download_json( 'https://mnmedias.api.telequebec.tv/api/v2/media/' + media_id, media_id)['media'] - return { - '_type': 'url_transparent', - 'id': media_id, - 'url': smuggle_url( - 'limelight:media:' + media_data['streamInfo']['sourceId'], - {'geo_countries': ['CA']}), - 'title': media_data['title'], + + info = self._limelight_result(media_data['streamInfo']['sourceId']) + info.update({ + 'title': media_data.get('title'), 'description': try_get( media_data, lambda x: x['descriptions'][0]['text'], compat_str), 'duration': int_or_none( media_data.get('durationInMilliseconds'), 1000), - 'ie_key': 'LimelightMedia', + }) + return info + + +class TeleQuebecEmissionIE(TeleQuebecBaseIE): + _VALID_URL = r'''(?x) + https?:// + (?: + [^/]+\.telequebec\.tv/emissions/| + (?:www\.)?telequebec\.tv/ + ) + (?P<id>[^?#&]+) + ''' + _TESTS = [{ + 'url': 'http://lindicemcsween.telequebec.tv/emissions/100430013/des-soins-esthetiques-a-377-d-interets-annuels-ca-vous-tente', + 'info_dict': { + 'id': '66648a6aef914fe3badda25e81a4d50a', + 'ext': 'mp4', + 'title': "Des soins esthétiques à 377 % d'intérêts annuels, ça vous tente?", + 'description': 'md5:369e0d55d0083f1fc9b71ffb640ea014', + 'upload_date': '20171024', + 'timestamp': 1508862118, + }, + 'params': { + 'skip_download': True, + }, + }, { + 'url': 'http://bancpublic.telequebec.tv/emissions/emission-49/31986/jeunes-meres-sous-pression', + 'only_matching': True, + }, { + 'url': 'http://www.telequebec.tv/masha-et-michka/epi059masha-et-michka-3-053-078', + 'only_matching': True, + }, { + 'url': 'http://www.telequebec.tv/documentaire/bebes-sur-mesure/', + 'only_matching': True, + }] + + def _real_extract(self, url): + display_id = self._match_id(url) + + webpage = self._download_webpage(url, display_id) + + media_id = self._search_regex( + r'mediaUID\s*:\s*["\'][Ll]imelight_(?P<id>[a-z0-9]{32})', webpage, + 'limelight id') + + info = self._limelight_result(media_id) + info.update({ + 'title': self._og_search_title(webpage, default=None), + 'description': self._og_search_description(webpage, default=None), + }) + return info + + +class TeleQuebecLiveIE(InfoExtractor): + _VALID_URL = r'https?://zonevideo\.telequebec\.tv/(?P<id>endirect)' + _TEST = { + 'url': 'http://zonevideo.telequebec.tv/endirect/', + 'info_dict': { + 'id': 'endirect', + 'ext': 'mp4', + 'title': 're:^Télé-Québec - En direct [0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}$', + 'is_live': True, + }, + 'params': { + 'skip_download': True, + }, + } + + def _real_extract(self, url): + video_id = self._match_id(url) + + m3u8_url = None + webpage = self._download_webpage( + 'https://player.telequebec.tv/Tq_VideoPlayer.js', video_id, + fatal=False) + if webpage: + m3u8_url = self._search_regex( + r'm3U8Url\s*:\s*(["\'])(?P<url>(?:(?!\1).)+)\1', webpage, + 'm3u8 url', default=None, group='url') + if not m3u8_url: + m3u8_url = 'https://teleqmmd.mmdlive.lldns.net/teleqmmd/f386e3b206814e1f8c8c1c71c0f8e748/manifest.m3u8' + formats = self._extract_m3u8_formats( + m3u8_url, video_id, 'mp4', m3u8_id='hls') + self._sort_formats(formats) + + return { + 'id': video_id, + 'title': self._live_title('Télé-Québec - En direct'), + 'is_live': True, + 'formats': formats, } diff --git a/youtube_dl/extractor/tennistv.py b/youtube_dl/extractor/tennistv.py new file mode 100644 index 0000000..0c6f707 --- /dev/null +++ b/youtube_dl/extractor/tennistv.py @@ -0,0 +1,112 @@ +# coding: utf-8 +from __future__ import unicode_literals + +import json + +from .common import InfoExtractor + +from ..utils import ( + ExtractorError, + unified_timestamp, +) + + +class TennisTVIE(InfoExtractor): + _VALID_URL = r'https?://(?:www\.)?tennistv\.com/videos/(?P<id>[-a-z0-9]+)' + _TEST = { + 'url': 'https://www.tennistv.com/videos/indian-wells-2018-verdasco-fritz', + 'info_dict': { + 'id': 'indian-wells-2018-verdasco-fritz', + 'ext': 'mp4', + 'title': 'Fernando Verdasco v Taylor Fritz', + 'description': 're:^After his stunning victory.{174}$', + 'thumbnail': 'https://atp-prod.akamaized.net/api/images/v1/images/112831/landscape/1242/0', + 'timestamp': 1521017381, + 'upload_date': '20180314', + }, + 'params': { + 'skip_download': True, + }, + 'skip': 'Requires email and password of a subscribed account', + } + _NETRC_MACHINE = 'tennistv' + + def _login(self): + (username, password) = self._get_login_info() + if not username or not password: + raise ExtractorError('No login info available, needed for using %s.' % self.IE_NAME, expected=True) + + login_form = { + 'Email': username, + 'Password': password, + } + login_json = json.dumps(login_form).encode('utf-8') + headers = { + 'content-type': 'application/json', + 'Referer': 'https://www.tennistv.com/login', + 'Origin': 'https://www.tennistv.com', + } + + login_result = self._download_json( + 'https://www.tennistv.com/api/users/v1/login', None, + note='Logging in', + errnote='Login failed (wrong password?)', + headers=headers, + data=login_json) + + if login_result['error']['errorCode']: + raise ExtractorError('Login failed, %s said: %r' % (self.IE_NAME, login_result['error']['errorMessage'])) + + if login_result['entitlement'] != 'SUBSCRIBED': + self.report_warning('%s may not be subscribed to %s.' % (username, self.IE_NAME)) + + self._session_token = login_result['sessionToken'] + + def _real_initialize(self): + self._login() + + def _real_extract(self, url): + video_id = self._match_id(url) + webpage = self._download_webpage(url, video_id) + + internal_id = self._search_regex(r'video=([0-9]+)', webpage, 'internal video id') + + headers = { + 'Origin': 'https://www.tennistv.com', + 'authorization': 'ATP %s' % self._session_token, + 'content-type': 'application/json', + 'Referer': url, + } + check_data = { + 'videoID': internal_id, + 'VideoUrlType': 'HLSV3', + } + check_json = json.dumps(check_data).encode('utf-8') + check_result = self._download_json( + 'https://www.tennistv.com/api/users/v1/entitlementchecknondiva', + video_id, note='Checking video authorization', headers=headers, data=check_json) + formats = self._extract_m3u8_formats(check_result['contentUrl'], video_id, ext='mp4') + + vdata_url = 'https://www.tennistv.com/api/channels/v1/de/none/video/%s' % video_id + vdata = self._download_json(vdata_url, video_id) + + timestamp = unified_timestamp(vdata['timestamp']) + thumbnail = vdata['video']['thumbnailUrl'] + description = vdata['displayText']['description'] + title = vdata['video']['title'] + + series = vdata['tour'] + venue = vdata['displayText']['venue'] + round_str = vdata['seo']['round'] + + return { + 'id': video_id, + 'title': title, + 'description': description, + 'formats': formats, + 'thumbnail': thumbnail, + 'timestamp': timestamp, + 'series': series, + 'season': venue, + 'episode': round_str, + } diff --git a/youtube_dl/extractor/toggle.py b/youtube_dl/extractor/toggle.py index 348d6ec..5e5efda 100644 --- a/youtube_dl/extractor/toggle.py +++ b/youtube_dl/extractor/toggle.py @@ -132,7 +132,7 @@ class ToggleIE(InfoExtractor): formats = [] for video_file in info.get('Files', []): video_url, vid_format = video_file.get('URL'), video_file.get('Format') - if not video_url or not vid_format: + if not video_url or video_url == 'NA' or not vid_format: continue ext = determine_ext(video_url) vid_format = vid_format.replace(' ', '') @@ -143,6 +143,18 @@ class ToggleIE(InfoExtractor): note='Downloading %s m3u8 information' % vid_format, errnote='Failed to download %s m3u8 information' % vid_format, fatal=False)) + elif ext == 'mpd': + formats.extend(self._extract_mpd_formats( + video_url, video_id, mpd_id=vid_format, + note='Downloading %s MPD manifest' % vid_format, + errnote='Failed to download %s MPD manifest' % vid_format, + fatal=False)) + elif ext == 'ism': + formats.extend(self._extract_ism_formats( + video_url, video_id, ism_id=vid_format, + note='Downloading %s ISM manifest' % vid_format, + errnote='Failed to download %s ISM manifest' % vid_format, + fatal=False)) elif ext in ('mp4', 'wvm'): # wvm are drm-protected files formats.append({ diff --git a/youtube_dl/extractor/tvnow.py b/youtube_dl/extractor/tvnow.py index e2169f2..1bf4724 100644 --- a/youtube_dl/extractor/tvnow.py +++ b/youtube_dl/extractor/tvnow.py @@ -7,6 +7,7 @@ from .common import InfoExtractor from ..compat import compat_str from ..utils import ( ExtractorError, + int_or_none, parse_iso8601, parse_duration, update_url_query, @@ -16,8 +17,9 @@ from ..utils import ( class TVNowBaseIE(InfoExtractor): _VIDEO_FIELDS = ( 'id', 'title', 'free', 'geoblocked', 'articleLong', 'articleShort', - 'broadcastStartDate', 'isDrm', 'duration', 'manifest.dashclear', - 'format.defaultImage169Format', 'format.defaultImage169Logo') + 'broadcastStartDate', 'isDrm', 'duration', 'season', 'episode', + 'manifest.dashclear', 'format.title', 'format.defaultImage169Format', + 'format.defaultImage169Logo') def _call_api(self, path, video_id, query): return self._download_json( @@ -66,6 +68,10 @@ class TVNowBaseIE(InfoExtractor): 'thumbnail': thumbnail, 'timestamp': timestamp, 'duration': duration, + 'series': f.get('title'), + 'season_number': int_or_none(info.get('season')), + 'episode_number': int_or_none(info.get('episode')), + 'episode': title, 'formats': formats, } @@ -74,18 +80,21 @@ class TVNowIE(TVNowBaseIE): _VALID_URL = r'https?://(?:www\.)?tvnow\.(?:de|at|ch)/(?:rtl(?:2|plus)?|nitro|superrtl|ntv|vox)/(?P<show_id>[^/]+)/(?:(?:list/[^/]+|jahr/\d{4}/\d{1,2})/)?(?P<id>[^/]+)/(?:player|preview)' _TESTS = [{ - # rtl - 'url': 'https://www.tvnow.de/rtl/alarm-fuer-cobra-11/freier-fall/player?return=/rtl', + 'url': 'https://www.tvnow.de/rtl2/grip-das-motormagazin/der-neue-porsche-911-gt-3/player', 'info_dict': { - 'id': '385314', - 'display_id': 'alarm-fuer-cobra-11/freier-fall', + 'id': '331082', + 'display_id': 'grip-das-motormagazin/der-neue-porsche-911-gt-3', 'ext': 'mp4', - 'title': 'Freier Fall', - 'description': 'md5:8c2d8f727261adf7e0dc18366124ca02', + 'title': 'Der neue Porsche 911 GT 3', + 'description': 'md5:6143220c661f9b0aae73b245e5d898bb', 'thumbnail': r're:^https?://.*\.jpg$', - 'timestamp': 1512677700, - 'upload_date': '20171207', - 'duration': 2862.0, + 'timestamp': 1495994400, + 'upload_date': '20170528', + 'duration': 5283, + 'series': 'GRIP - Das Motormagazin', + 'season_number': 14, + 'episode_number': 405, + 'episode': 'Der neue Porsche 911 GT 3', }, }, { # rtl2 diff --git a/youtube_dl/extractor/udemy.py b/youtube_dl/extractor/udemy.py index 195f5ce..6d6c0a9 100644 --- a/youtube_dl/extractor/udemy.py +++ b/youtube_dl/extractor/udemy.py @@ -5,6 +5,7 @@ import re from .common import InfoExtractor from ..compat import ( compat_HTTPError, + compat_kwargs, compat_str, compat_urllib_request, compat_urlparse, @@ -114,6 +115,11 @@ class UdemyIE(InfoExtractor): error_str += ' - %s' % error_data.get('formErrors') raise ExtractorError(error_str, expected=True) + def _download_webpage(self, *args, **kwargs): + kwargs.setdefault('headers', {})['User-Agent'] = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/603.2.4 (KHTML, like Gecko) Version/10.1.1 Safari/603.2.4' + return super(UdemyIE, self)._download_webpage( + *args, **compat_kwargs(kwargs)) + def _download_json(self, url_or_request, *args, **kwargs): headers = { 'X-Udemy-Snail-Case': 'true', diff --git a/youtube_dl/extractor/veoh.py b/youtube_dl/extractor/veoh.py index b20dddc..071774a 100644 --- a/youtube_dl/extractor/veoh.py +++ b/youtube_dl/extractor/veoh.py @@ -12,7 +12,7 @@ from ..utils import ( class VeohIE(InfoExtractor): - _VALID_URL = r'https?://(?:www\.)?veoh\.com/(?:watch|iphone/#_Watch)/(?P<id>(?:v|e|yapi-)[\da-zA-Z]+)' + _VALID_URL = r'https?://(?:www\.)?veoh\.com/(?:watch|embed|iphone/#_Watch)/(?P<id>(?:v|e|yapi-)[\da-zA-Z]+)' _TESTS = [{ 'url': 'http://www.veoh.com/watch/v56314296nk7Zdmz3', @@ -24,6 +24,9 @@ class VeohIE(InfoExtractor): 'uploader': 'LUMOback', 'description': 'At LUMOback, we believe straight backs are stronger. The LUMOback Posture & Movement Sensor: It gently vibrates when you slouch, inspiring improved posture and mobility. Use the app to track your data and improve your posture over time. ', }, + }, { + 'url': 'http://www.veoh.com/embed/v56314296nk7Zdmz3', + 'only_matching': True, }, { 'url': 'http://www.veoh.com/watch/v27701988pbTc4wzN?h1=Chile+workers+cover+up+to+avoid+skin+damage', 'md5': '4a6ff84b87d536a6a71e6aa6c0ad07fa', diff --git a/youtube_dl/extractor/vice.py b/youtube_dl/extractor/vice.py index bcc2869..5382586 100644 --- a/youtube_dl/extractor/vice.py +++ b/youtube_dl/extractor/vice.py @@ -5,56 +5,169 @@ import re import time import hashlib import json +import random from .adobepass import AdobePassIE from .youtube import YoutubeIE from .common import InfoExtractor -from ..compat import compat_HTTPError +from ..compat import ( + compat_HTTPError, + compat_str, +) from ..utils import ( + ExtractorError, int_or_none, parse_age_limit, str_or_none, - parse_duration, - ExtractorError, - extract_attributes, + try_get, ) -class ViceBaseIE(AdobePassIE): - def _extract_preplay_video(self, url, locale, webpage): - watch_hub_data = extract_attributes(self._search_regex( - r'(?s)(<watch-hub\s*.+?</watch-hub>)', webpage, 'watch hub')) - video_id = watch_hub_data['vms-id'] - title = watch_hub_data['video-title'] +class ViceIE(AdobePassIE): + IE_NAME = 'vice' + _VALID_URL = r'https?://(?:(?:video|vms)\.vice|(?:www\.)?viceland)\.com/(?P<locale>[^/]+)/(?:video/[^/]+|embed)/(?P<id>[\da-f]+)' + _TESTS = [{ + 'url': 'https://video.vice.com/en_us/video/pet-cremator/58c69e38a55424f1227dc3f7', + 'info_dict': { + 'id': '5e647f0125e145c9aef2069412c0cbde', + 'ext': 'mp4', + 'title': '10 Questions You Always Wanted To Ask: Pet Cremator', + 'description': 'md5:fe856caacf61fe0e74fab15ce2b07ca5', + 'uploader': 'vice', + 'uploader_id': '57a204088cb727dec794c67b', + 'timestamp': 1489664942, + 'upload_date': '20170316', + 'age_limit': 14, + }, + 'params': { + # m3u8 download + 'skip_download': True, + }, + 'add_ie': ['UplynkPreplay'], + }, { + # geo restricted to US + 'url': 'https://video.vice.com/en_us/video/the-signal-from-tolva/5816510690b70e6c5fd39a56', + 'info_dict': { + 'id': '930c0ad1f47141cc955087eecaddb0e2', + 'ext': 'mp4', + 'uploader': 'waypoint', + 'title': 'The Signal From Tölva', + 'description': 'md5:3927e3c79f9e8094606a2b3c5b5e55d5', + 'uploader_id': '57f7d621e05ca860fa9ccaf9', + 'timestamp': 1477941983, + 'upload_date': '20161031', + }, + 'params': { + # m3u8 download + 'skip_download': True, + }, + 'add_ie': ['UplynkPreplay'], + }, { + 'url': 'https://video.vice.com/alps/video/ulfs-wien-beruchtigste-grafitti-crew-part-1/581b12b60a0e1f4c0fb6ea2f', + 'info_dict': { + 'id': '581b12b60a0e1f4c0fb6ea2f', + 'ext': 'mp4', + 'title': 'ULFs - Wien berüchtigste Grafitti Crew - Part 1', + 'description': '<p>Zwischen Hinterzimmer-Tattoos und U-Bahnschächten erzählen uns die Ulfs, wie es ist, "süchtig nach Sachbeschädigung" zu sein.</p>', + 'uploader': 'VICE', + 'uploader_id': '57a204088cb727dec794c67b', + 'timestamp': 1485368119, + 'upload_date': '20170125', + 'age_limit': 14, + }, + 'params': { + # AES-encrypted m3u8 + 'skip_download': True, + 'proxy': '127.0.0.1:8118', + }, + 'add_ie': ['UplynkPreplay'], + }, { + 'url': 'https://video.vice.com/en_us/video/pizza-show-trailer/56d8c9a54d286ed92f7f30e4', + 'only_matching': True, + }, { + 'url': 'https://video.vice.com/en_us/embed/57f41d3556a0a80f54726060', + 'only_matching': True, + }, { + 'url': 'https://vms.vice.com/en_us/video/preplay/58c69e38a55424f1227dc3f7', + 'only_matching': True, + }, { + 'url': 'https://www.viceland.com/en_us/video/thursday-march-1-2018/5a8f2d7ff1cdb332dd446ec1', + 'only_matching': True, + }] + _PREPLAY_HOST = 'vms.vice' + + @staticmethod + def _extract_urls(webpage): + return re.findall( + r'<iframe\b[^>]+\bsrc=["\']((?:https?:)?//video\.vice\.com/[^/]+/embed/[\da-f]+)', + webpage) + + @staticmethod + def _extract_url(webpage): + urls = ViceIE._extract_urls(webpage) + return urls[0] if urls else None + + def _real_extract(self, url): + locale, video_id = re.match(self._VALID_URL, url).groups() + + webpage = self._download_webpage( + 'https://video.vice.com/%s/embed/%s' % (locale, video_id), + video_id) + + video = self._parse_json( + self._search_regex( + r'PREFETCH_DATA\s*=\s*({.+?})\s*;\s*\n', webpage, + 'app state'), video_id)['video'] + video_id = video.get('vms_id') or video.get('id') or video_id + title = video['title'] + is_locked = video.get('locked') + rating = video.get('rating') + thumbnail = video.get('thumbnail_url') + duration = int_or_none(video.get('duration')) + series = try_get( + video, lambda x: x['episode']['season']['show']['title'], + compat_str) + episode_number = try_get( + video, lambda x: x['episode']['episode_number']) + season_number = try_get( + video, lambda x: x['episode']['season']['season_number']) + uploader = None query = {} - is_locked = watch_hub_data.get('video-locked') == '1' if is_locked: resource = self._get_mvpd_resource( - 'VICELAND', title, video_id, - watch_hub_data.get('video-rating')) + 'VICELAND', title, video_id, rating) query['tvetoken'] = self._extract_mvpd_auth( url, video_id, 'VICELAND', resource) # signature generation algorithm is reverse engineered from signatureGenerator in # webpack:///../shared/~/vice-player/dist/js/vice-player.js in # https://www.viceland.com/assets/common/js/web.vendor.bundle.js - exp = int(time.time()) + 14400 + # new JS is located here https://vice-web-statics-cdn.vice.com/vice-player/player-embed.js + exp = int(time.time()) + 1440 + query.update({ 'exp': exp, 'sign': hashlib.sha512(('%s:GET:%d' % (video_id, exp)).encode()).hexdigest(), + '_ad_blocked': None, + '_ad_unit': '', + '_debug': '', + 'platform': 'desktop', + 'rn': random.randint(10000, 100000), + 'fbprebidtoken': '', }) try: host = 'www.viceland' if is_locked else self._PREPLAY_HOST preplay = self._download_json( - 'https://%s.com/%s/preplay/%s' % (host, locale, video_id), + 'https://%s.com/%s/video/preplay/%s' % (host, locale, video_id), video_id, query=query) except ExtractorError as e: - if isinstance(e.cause, compat_HTTPError) and e.cause.code == 400: + if isinstance(e.cause, compat_HTTPError) and e.cause.code in (400, 401): error = json.loads(e.cause.read().decode()) + error_message = error.get('error_description') or error['details'] raise ExtractorError('%s said: %s' % ( - self.IE_NAME, error['details']), expected=True) + self.IE_NAME, error_message), expected=True) raise video_data = preplay['video'] @@ -76,92 +189,22 @@ class ViceBaseIE(AdobePassIE): 'id': video_id, 'title': title, 'description': base.get('body') or base.get('display_body'), - 'thumbnail': watch_hub_data.get('cover-image') or watch_hub_data.get('thumbnail'), - 'duration': int_or_none(video_data.get('video_duration')) or parse_duration(watch_hub_data.get('video-duration')), + 'thumbnail': thumbnail, + 'duration': int_or_none(video_data.get('video_duration')) or duration, 'timestamp': int_or_none(video_data.get('created_at'), 1000), 'age_limit': parse_age_limit(video_data.get('video_rating')), - 'series': video_data.get('show_title') or watch_hub_data.get('show-title'), - 'episode_number': int_or_none(episode.get('episode_number') or watch_hub_data.get('episode')), + 'series': video_data.get('show_title') or series, + 'episode_number': int_or_none(episode.get('episode_number') or episode_number), 'episode_id': str_or_none(episode.get('id') or video_data.get('episode_id')), - 'season_number': int_or_none(watch_hub_data.get('season')), + 'season_number': int_or_none(season_number), 'season_id': str_or_none(episode.get('season_id')), - 'uploader': channel.get('base', {}).get('title') or watch_hub_data.get('channel-title'), + 'uploader': channel.get('base', {}).get('title') or channel.get('name') or uploader, 'uploader_id': str_or_none(channel.get('id')), 'subtitles': subtitles, 'ie_key': 'UplynkPreplay', } -class ViceIE(ViceBaseIE): - IE_NAME = 'vice' - _VALID_URL = r'https?://(?:.+?\.)?vice\.com/(?:(?P<locale>[^/]+)/)?videos?/(?P<id>[^/?#&]+)' - - _TESTS = [{ - 'url': 'https://news.vice.com/video/experimenting-on-animals-inside-the-monkey-lab', - 'md5': '7d3ae2f9ba5f196cdd9f9efd43657ac2', - 'info_dict': { - 'id': 'N2bzkydjraWDGwnt8jAttCF6Y0PDv4Zj', - 'ext': 'flv', - 'title': 'Monkey Labs of Holland', - 'description': 'md5:92b3c7dcbfe477f772dd4afa496c9149', - }, - 'add_ie': ['Ooyala'], - }, { - 'url': 'https://video.vice.com/en_us/video/the-signal-from-tolva/5816510690b70e6c5fd39a56', - 'info_dict': { - 'id': '5816510690b70e6c5fd39a56', - 'ext': 'mp4', - 'uploader': 'Waypoint', - 'title': 'The Signal From Tölva', - 'description': 'md5:3927e3c79f9e8094606a2b3c5b5e55d5', - 'uploader_id': '57f7d621e05ca860fa9ccaf9', - 'timestamp': 1477941983, - 'upload_date': '20161031', - }, - 'params': { - # m3u8 download - 'skip_download': True, - }, - 'add_ie': ['UplynkPreplay'], - }, { - 'url': 'https://video.vice.com/alps/video/ulfs-wien-beruchtigste-grafitti-crew-part-1/581b12b60a0e1f4c0fb6ea2f', - 'info_dict': { - 'id': '581b12b60a0e1f4c0fb6ea2f', - 'ext': 'mp4', - 'title': 'ULFs - Wien berüchtigste Grafitti Crew - Part 1', - 'description': '<p>Zwischen Hinterzimmer-Tattoos und U-Bahnschächten erzählen uns die Ulfs, wie es ist, "süchtig nach Sachbeschädigung" zu sein.</p>', - 'uploader': 'VICE', - 'uploader_id': '57a204088cb727dec794c67b', - 'timestamp': 1485368119, - 'upload_date': '20170125', - 'age_limit': 14, - }, - 'params': { - # AES-encrypted m3u8 - 'skip_download': True, - }, - 'add_ie': ['UplynkPreplay'], - }, { - 'url': 'https://video.vice.com/en_us/video/pizza-show-trailer/56d8c9a54d286ed92f7f30e4', - 'only_matching': True, - }] - _PREPLAY_HOST = 'video.vice' - - def _real_extract(self, url): - locale, video_id = re.match(self._VALID_URL, url).groups() - webpage, urlh = self._download_webpage_handle(url, video_id) - embed_code = self._search_regex( - r'embedCode=([^&\'"]+)', webpage, - 'ooyala embed code', default=None) - if embed_code: - return self.url_result('ooyala:%s' % embed_code, 'Ooyala') - youtube_id = self._search_regex( - r'data-youtube-id="([^"]+)"', webpage, 'youtube id', default=None) - if youtube_id: - return self.url_result(youtube_id, 'Youtube') - return self._extract_preplay_video(urlh.geturl(), locale, webpage) - - class ViceShowIE(InfoExtractor): IE_NAME = 'vice:show' _VALID_URL = r'https?://(?:.+?\.)?vice\.com/(?:[^/]+/)?show/(?P<id>[^/?#&]+)' @@ -203,14 +246,15 @@ class ViceArticleIE(InfoExtractor): _TESTS = [{ 'url': 'https://www.vice.com/en_us/article/on-set-with-the-woman-making-mormon-porn-in-utah', 'info_dict': { - 'id': '58dc0a3dee202d2a0ccfcbd8', + 'id': '41eae2a47b174a1398357cec55f1f6fc', 'ext': 'mp4', 'title': 'Mormon War on Porn ', - 'description': 'md5:ad396a2481e7f8afb5ed486878421090', - 'uploader': 'VICE', - 'uploader_id': '57a204088cb727dec794c693', - 'timestamp': 1489160690, - 'upload_date': '20170310', + 'description': 'md5:6394a8398506581d0346b9ab89093fef', + 'uploader': 'vice', + 'uploader_id': '57a204088cb727dec794c67b', + 'timestamp': 1491883129, + 'upload_date': '20170411', + 'age_limit': 17, }, 'params': { # AES-encrypted m3u8 @@ -219,17 +263,35 @@ class ViceArticleIE(InfoExtractor): 'add_ie': ['UplynkPreplay'], }, { 'url': 'https://www.vice.com/en_us/article/how-to-hack-a-car', - 'md5': 'a7ecf64ee4fa19b916c16f4b56184ae2', + 'md5': '7fe8ebc4fa3323efafc127b82bd821d9', 'info_dict': { 'id': '3jstaBeXgAs', 'ext': 'mp4', 'title': 'How to Hack a Car: Phreaked Out (Episode 2)', 'description': 'md5:ee95453f7ff495db8efe14ae8bf56f30', - 'uploader_id': 'MotherboardTV', 'uploader': 'Motherboard', + 'uploader_id': 'MotherboardTV', 'upload_date': '20140529', }, 'add_ie': ['Youtube'], + }, { + 'url': 'https://www.vice.com/en_us/article/znm9dx/karley-sciortino-slutever-reloaded', + 'md5': 'a7ecf64ee4fa19b916c16f4b56184ae2', + 'info_dict': { + 'id': 'e2ed435eb67e43efb66e6ef9a6930a88', + 'ext': 'mp4', + 'title': "Making The World's First Male Sex Doll", + 'description': 'md5:916078ef0e032d76343116208b6cc2c4', + 'uploader': 'vice', + 'uploader_id': '57a204088cb727dec794c67b', + 'timestamp': 1476919911, + 'upload_date': '20161019', + 'age_limit': 17, + }, + 'params': { + 'skip_download': True, + }, + 'add_ie': [ViceIE.ie_key()], }, { 'url': 'https://www.vice.com/en_us/article/cowboy-capitalists-part-1', 'only_matching': True, @@ -244,8 +306,8 @@ class ViceArticleIE(InfoExtractor): webpage = self._download_webpage(url, display_id) prefetch_data = self._parse_json(self._search_regex( - r'window\.__PREFETCH_DATA\s*=\s*({.*});', - webpage, 'prefetch data'), display_id) + r'__APP_STATE\s*=\s*({.+?})(?:\s*\|\|\s*{}\s*)?;\s*\n', + webpage, 'app state'), display_id)['pageData'] body = prefetch_data['body'] def _url_res(video_url, ie_key): @@ -256,6 +318,10 @@ class ViceArticleIE(InfoExtractor): 'ie_key': ie_key, } + vice_url = ViceIE._extract_url(webpage) + if vice_url: + return _url_res(vice_url, ViceIE.ie_key()) + embed_code = self._search_regex( r'embedCode=([^&\'"]+)', body, 'ooyala embed code', default=None) diff --git a/youtube_dl/extractor/viceland.py b/youtube_dl/extractor/viceland.py deleted file mode 100644 index bd60235..0000000 --- a/youtube_dl/extractor/viceland.py +++ /dev/null @@ -1,38 +0,0 @@ -# coding: utf-8 -from __future__ import unicode_literals - -import re - -from .vice import ViceBaseIE - - -class VicelandIE(ViceBaseIE): - _VALID_URL = r'https?://(?:www\.)?viceland\.com/(?P<locale>[^/]+)/video/[^/]+/(?P<id>[a-f0-9]+)' - _TEST = { - 'url': 'https://www.viceland.com/en_us/video/trapped/588a70d0dba8a16007de7316', - 'info_dict': { - 'id': '588a70d0dba8a16007de7316', - 'ext': 'mp4', - 'title': 'TRAPPED (Series Trailer)', - 'description': 'md5:7a8e95c2b6cd86461502a2845e581ccf', - 'age_limit': 14, - 'timestamp': 1485474122, - 'upload_date': '20170126', - 'uploader_id': '57a204098cb727dec794c6a3', - 'uploader': 'Viceland', - }, - 'params': { - # m3u8 download - 'skip_download': True, - }, - 'add_ie': ['UplynkPreplay'], - 'skip': '404', - } - _PREPLAY_HOST = 'www.viceland' - - def _real_extract(self, url): - mobj = re.match(self._VALID_URL, url) - video_id = mobj.group('id') - locale = mobj.group('locale') - webpage = self._download_webpage(url, video_id) - return self._extract_preplay_video(url, locale, webpage) diff --git a/youtube_dl/extractor/vidio.py b/youtube_dl/extractor/vidio.py index 01da32f..b48baf0 100644 --- a/youtube_dl/extractor/vidio.py +++ b/youtube_dl/extractor/vidio.py @@ -49,8 +49,8 @@ class VidioIE(InfoExtractor): thumbnail = clip.get('image') m3u8_url = m3u8_url or self._search_regex( - r'data(?:-vjs)?-clip-hls-url=(["\'])(?P<url>(?!\1).+)\1', - webpage, 'hls url') + r'data(?:-vjs)?-clip-hls-url=(["\'])(?P<url>(?:(?!\1).)+)\1', + webpage, 'hls url', group='url') formats = self._extract_m3u8_formats( m3u8_url, display_id, 'mp4', entry_protocol='m3u8_native') self._sort_formats(formats) diff --git a/youtube_dl/extractor/vidlii.py b/youtube_dl/extractor/vidlii.py new file mode 100644 index 0000000..f477425 --- /dev/null +++ b/youtube_dl/extractor/vidlii.py @@ -0,0 +1,125 @@ +# coding: utf-8 +from __future__ import unicode_literals + +import re + +from .common import InfoExtractor +from ..utils import ( + float_or_none, + get_element_by_id, + int_or_none, + strip_or_none, + unified_strdate, + urljoin, +) + + +class VidLiiIE(InfoExtractor): + _VALID_URL = r'https?://(?:www\.)?vidlii\.com/(?:watch|embed)\?.*?\bv=(?P<id>[0-9A-Za-z_-]{11})' + _TESTS = [{ + 'url': 'https://www.vidlii.com/watch?v=tJluaH4BJ3v', + 'md5': '9bf7d1e005dfa909b6efb0a1ff5175e2', + 'info_dict': { + 'id': 'tJluaH4BJ3v', + 'ext': 'mp4', + 'title': 'Vidlii is against me', + 'description': 'md5:fa3f119287a2bfb922623b52b1856145', + 'thumbnail': 're:https://.*.jpg', + 'uploader': 'APPle5auc31995', + 'uploader_url': 'https://www.vidlii.com/user/APPle5auc31995', + 'upload_date': '20171107', + 'duration': 212, + 'view_count': int, + 'comment_count': int, + 'average_rating': float, + 'categories': ['News & Politics'], + 'tags': ['Vidlii', 'Jan', 'Videogames'], + } + }, { + 'url': 'https://www.vidlii.com/embed?v=tJluaH4BJ3v&a=0', + 'only_matching': True, + }] + + def _real_extract(self, url): + video_id = self._match_id(url) + + webpage = self._download_webpage( + 'https://www.vidlii.com/watch?v=%s' % video_id, video_id) + + video_url = self._search_regex( + r'src\s*:\s*(["\'])(?P<url>(?:https?://)?(?:(?!\1).)+)\1', webpage, + 'video url', group='url') + + title = self._search_regex( + (r'<h1>([^<]+)</h1>', r'<title>([^<]+) - VidLii<'), webpage, + 'title') + + description = self._html_search_meta( + ('description', 'twitter:description'), webpage, + default=None) or strip_or_none( + get_element_by_id('des_text', webpage)) + + thumbnail = self._html_search_meta( + 'twitter:image', webpage, default=None) + if not thumbnail: + thumbnail_path = self._search_regex( + r'img\s*:\s*(["\'])(?P<url>(?:(?!\1).)+)\1', webpage, + 'thumbnail', fatal=False, group='url') + if thumbnail_path: + thumbnail = urljoin(url, thumbnail_path) + + uploader = self._search_regex( + r'<div[^>]+class=["\']wt_person[^>]+>\s*<a[^>]+\bhref=["\']/user/[^>]+>([^<]+)', + webpage, 'uploader', fatal=False) + uploader_url = 'https://www.vidlii.com/user/%s' % uploader if uploader else None + + upload_date = unified_strdate(self._html_search_meta( + 'datePublished', webpage, default=None) or self._search_regex( + r'<date>([^<]+)', webpage, 'upload date', fatal=False)) + + duration = int_or_none(self._html_search_meta( + 'video:duration', webpage, 'duration', + default=None) or self._search_regex( + r'duration\s*:\s*(\d+)', webpage, 'duration', fatal=False)) + + view_count = int_or_none(self._search_regex( + (r'<strong>(\d+)</strong> views', + r'Views\s*:\s*<strong>(\d+)</strong>'), + webpage, 'view count', fatal=False)) + + comment_count = int_or_none(self._search_regex( + (r'<span[^>]+id=["\']cmt_num[^>]+>(\d+)', + r'Comments\s*:\s*<strong>(\d+)'), + webpage, 'comment count', fatal=False)) + + average_rating = float_or_none(self._search_regex( + r'rating\s*:\s*([\d.]+)', webpage, 'average rating', fatal=False)) + + category = self._html_search_regex( + r'<div>Category\s*:\s*</div>\s*<div>\s*<a[^>]+>([^<]+)', webpage, + 'category', fatal=False) + categories = [category] if category else None + + tags = [ + strip_or_none(tag) + for tag in re.findall( + r'<a[^>]+\bhref=["\']/results\?.*?q=[^>]*>([^<]+)', + webpage) if strip_or_none(tag) + ] or None + + return { + 'id': video_id, + 'url': video_url, + 'title': title, + 'description': description, + 'thumbnail': thumbnail, + 'uploader': uploader, + 'uploader_url': uploader_url, + 'upload_date': upload_date, + 'duration': duration, + 'view_count': view_count, + 'comment_count': comment_count, + 'average_rating': average_rating, + 'categories': categories, + 'tags': tags, + } diff --git a/youtube_dl/extractor/vidzi.py b/youtube_dl/extractor/vidzi.py index ac35d55..9026e77 100644 --- a/youtube_dl/extractor/vidzi.py +++ b/youtube_dl/extractor/vidzi.py @@ -13,7 +13,7 @@ from ..utils import ( class VidziIE(InfoExtractor): - _VALID_URL = r'https?://(?:www\.)?vidzi\.(?:tv|cc)/(?:embed-)?(?P<id>[0-9a-zA-Z]+)' + _VALID_URL = r'https?://(?:www\.)?vidzi\.(?:tv|cc|si)/(?:embed-)?(?P<id>[0-9a-zA-Z]+)' _TESTS = [{ 'url': 'http://vidzi.tv/cghql9yq6emu.html', 'md5': '4f16c71ca0c8c8635ab6932b5f3f1660', @@ -32,6 +32,9 @@ class VidziIE(InfoExtractor): }, { 'url': 'http://vidzi.cc/cghql9yq6emu.html', 'only_matching': True, + }, { + 'url': 'https://vidzi.si/rph9gztxj1et.html', + 'only_matching': True, }] def _real_extract(self, url): diff --git a/youtube_dl/extractor/vimeo.py b/youtube_dl/extractor/vimeo.py index 6af7056..0825714 100644 --- a/youtube_dl/extractor/vimeo.py +++ b/youtube_dl/extractor/vimeo.py @@ -41,21 +41,30 @@ class VimeoBaseInfoExtractor(InfoExtractor): if self._LOGIN_REQUIRED: raise ExtractorError('No login info available, needed for using %s.' % self.IE_NAME, expected=True) return - self.report_login() - webpage = self._download_webpage(self._LOGIN_URL, None, False) + webpage = self._download_webpage( + self._LOGIN_URL, None, 'Downloading login page') token, vuid = self._extract_xsrft_and_vuid(webpage) - data = urlencode_postdata({ + data = { 'action': 'login', 'email': username, 'password': password, 'service': 'vimeo', 'token': token, - }) - login_request = sanitized_Request(self._LOGIN_URL, data) - login_request.add_header('Content-Type', 'application/x-www-form-urlencoded') - login_request.add_header('Referer', self._LOGIN_URL) + } self._set_vimeo_cookie('vuid', vuid) - self._download_webpage(login_request, None, False, 'Wrong login info') + try: + self._download_webpage( + self._LOGIN_URL, None, 'Logging in', + data=urlencode_postdata(data), headers={ + 'Content-Type': 'application/x-www-form-urlencoded', + 'Referer': self._LOGIN_URL, + }) + except ExtractorError as e: + if isinstance(e.cause, compat_HTTPError) and e.cause.code == 418: + raise ExtractorError( + 'Unable to log in: bad username or password', + expected=True) + raise ExtractorError('Unable to log in') def _verify_video_password(self, url, video_id, webpage): password = self._downloader.params.get('videopassword') @@ -218,7 +227,7 @@ class VimeoIE(VimeoBaseInfoExtractor): 'id': '56015672', 'ext': 'mp4', 'title': "youtube-dl test video - \u2605 \" ' \u5e78 / \\ \u00e4 \u21ad \U0001d550", - 'description': 'md5:2d3305bad981a06ff79f027f19865021', + 'description': 'md5:509a9ad5c9bf97c60faee9203aca4479', 'timestamp': 1355990239, 'upload_date': '20121220', 'uploader_url': r're:https?://(?:www\.)?vimeo\.com/user7108434', diff --git a/youtube_dl/extractor/vk.py b/youtube_dl/extractor/vk.py index b8ea503..b50d4f1 100644 --- a/youtube_dl/extractor/vk.py +++ b/youtube_dl/extractor/vk.py @@ -99,10 +99,10 @@ class VKIE(VKBaseIE): _TESTS = [ { 'url': 'http://vk.com/videos-77521?z=video-77521_162222515%2Fclub77521', - 'md5': '0deae91935c54e00003c2a00646315f0', + 'md5': '7babad3b85ea2e91948005b1b8b0cb84', 'info_dict': { 'id': '162222515', - 'ext': 'flv', + 'ext': 'mp4', 'title': 'ProtivoGunz - Хуёвая песня', 'uploader': 're:(?:Noize MC|Alexander Ilyashenko).*', 'duration': 195, diff --git a/youtube_dl/extractor/xhamster.py b/youtube_dl/extractor/xhamster.py index 68652a2..d1bc992 100644 --- a/youtube_dl/extractor/xhamster.py +++ b/youtube_dl/extractor/xhamster.py @@ -39,7 +39,7 @@ class XHamsterIE(InfoExtractor): 'uploader': 'Ruseful2011', 'duration': 893, 'age_limit': 18, - 'categories': ['Fake Hub', 'Amateur', 'MILFs', 'POV', 'Boss', 'Office', 'Oral', 'Reality', 'Sexy'], + 'categories': ['Fake Hub', 'Amateur', 'MILFs', 'POV', 'Beauti', 'Beauties', 'Beautiful', 'Boss', 'Office', 'Oral', 'Reality', 'Sexy', 'Taking'], }, }, { 'url': 'http://xhamster.com/movies/2221348/britney_spears_sexy_booty.html?hd', diff --git a/youtube_dl/extractor/xnxx.py b/youtube_dl/extractor/xnxx.py index e0a6255..ac1ccc4 100644 --- a/youtube_dl/extractor/xnxx.py +++ b/youtube_dl/extractor/xnxx.py @@ -1,19 +1,29 @@ # coding: utf-8 from __future__ import unicode_literals +import re + from .common import InfoExtractor -from ..compat import compat_urllib_parse_unquote +from ..utils import ( + determine_ext, + int_or_none, + NO_DEFAULT, + str_to_int, +) class XNXXIE(InfoExtractor): _VALID_URL = r'https?://(?:video|www)\.xnxx\.com/video-?(?P<id>[0-9a-z]+)/' _TESTS = [{ 'url': 'http://www.xnxx.com/video-55awb78/skyrim_test_video', - 'md5': 'ef7ecee5af78f8b03dca2cf31341d3a0', + 'md5': '7583e96c15c0f21e9da3453d9920fbba', 'info_dict': { 'id': '55awb78', - 'ext': 'flv', + 'ext': 'mp4', 'title': 'Skyrim Test Video', + 'thumbnail': r're:^https?://.*\.jpg', + 'duration': 469, + 'view_count': int, 'age_limit': 18, }, }, { @@ -26,23 +36,49 @@ class XNXXIE(InfoExtractor): def _real_extract(self, url): video_id = self._match_id(url) + webpage = self._download_webpage(url, video_id) - video_url = self._search_regex(r'flv_url=(.*?)&', - webpage, 'video URL') - video_url = compat_urllib_parse_unquote(video_url) + def get(meta, default=NO_DEFAULT, fatal=True): + return self._search_regex( + r'set%s\s*\(\s*(["\'])(?P<value>(?:(?!\1).)+)\1' % meta, + webpage, meta, default=default, fatal=fatal, group='value') + + title = self._og_search_title( + webpage, default=None) or get('VideoTitle') - video_title = self._html_search_regex(r'<title>(.*?)\s+-\s+XNXX.COM', - webpage, 'title') + formats = [] + for mobj in re.finditer( + r'setVideo(?:Url(?P<id>Low|High)|HLS)\s*\(\s*(?P<q>["\'])(?P<url>(?:https?:)?//.+?)(?P=q)', webpage): + format_url = mobj.group('url') + if determine_ext(format_url) == 'm3u8': + formats.extend(self._extract_m3u8_formats( + format_url, video_id, 'mp4', entry_protocol='m3u8_native', + preference=1, m3u8_id='hls', fatal=False)) + else: + format_id = mobj.group('id') + if format_id: + format_id = format_id.lower() + formats.append({ + 'url': format_url, + 'format_id': format_id, + 'quality': -1 if format_id == 'low' else 0, + }) + self._sort_formats(formats) - video_thumbnail = self._search_regex(r'url_bigthumb=(.*?)&', - webpage, 'thumbnail', fatal=False) + thumbnail = self._og_search_thumbnail(webpage, default=None) or get( + 'ThumbUrl', fatal=False) or get('ThumbUrl169', fatal=False) + duration = int_or_none(self._og_search_property('duration', webpage)) + view_count = str_to_int(self._search_regex( + r'id=["\']nb-views-number[^>]+>([\d,.]+)', webpage, 'view count', + default=None)) return { 'id': video_id, - 'url': video_url, - 'title': video_title, - 'ext': 'flv', - 'thumbnail': video_thumbnail, + 'title': title, + 'thumbnail': thumbnail, + 'duration': duration, + 'view_count': view_count, 'age_limit': 18, + 'formats': formats, } diff --git a/youtube_dl/extractor/yapfiles.py b/youtube_dl/extractor/yapfiles.py new file mode 100644 index 0000000..7fafbf5 --- /dev/null +++ b/youtube_dl/extractor/yapfiles.py @@ -0,0 +1,101 @@ +# coding: utf-8 +from __future__ import unicode_literals + +import re + +from .common import InfoExtractor +from ..compat import compat_str +from ..utils import ( + ExtractorError, + int_or_none, + qualities, + unescapeHTML, +) + + +class YapFilesIE(InfoExtractor): + _YAPFILES_URL = r'//(?:(?:www|api)\.)?yapfiles\.ru/get_player/*\?.*?\bv=(?P<id>\w+)' + _VALID_URL = r'https?:%s' % _YAPFILES_URL + _TESTS = [{ + # with hd + 'url': 'http://www.yapfiles.ru/get_player/?v=vMDE1NjcyNDUt0413', + 'md5': '2db19e2bfa2450568868548a1aa1956c', + 'info_dict': { + 'id': 'vMDE1NjcyNDUt0413', + 'ext': 'mp4', + 'title': 'Самый худший пароль WIFI', + 'thumbnail': r're:^https?://.*\.jpg$', + 'duration': 72, + }, + }, { + # without hd + 'url': 'https://api.yapfiles.ru/get_player/?uid=video_player_1872528&plroll=1&adv=1&v=vMDE4NzI1Mjgt690b', + 'only_matching': True, + }] + + @staticmethod + def _extract_urls(webpage): + return [unescapeHTML(mobj.group('url')) for mobj in re.finditer( + r'<iframe\b[^>]+\bsrc=(["\'])(?P<url>(?:https?:)?%s.*?)\1' + % YapFilesIE._YAPFILES_URL, webpage)] + + def _real_extract(self, url): + video_id = self._match_id(url) + + webpage = self._download_webpage(url, video_id, fatal=False) + + player_url = None + query = {} + if webpage: + player_url = self._search_regex( + r'player\.init\s*\(\s*(["\'])(?P<url>(?:(?!\1).)+)\1', webpage, + 'player url', default=None, group='url') + + if not player_url: + player_url = 'http://api.yapfiles.ru/load/%s/' % video_id + query = { + 'md5': 'ded5f369be61b8ae5f88e2eeb2f3caff', + 'type': 'json', + 'ref': url, + } + + player = self._download_json( + player_url, video_id, query=query)['player'] + + playlist_url = player['playlist'] + title = player['title'] + thumbnail = player.get('poster') + + if title == 'Ролик удален' or 'deleted.jpg' in (thumbnail or ''): + raise ExtractorError( + 'Video %s has been removed' % video_id, expected=True) + + playlist = self._download_json( + playlist_url, video_id)['player']['main'] + + hd_height = int_or_none(player.get('hd')) + + QUALITIES = ('sd', 'hd') + quality_key = qualities(QUALITIES) + formats = [] + for format_id in QUALITIES: + is_hd = format_id == 'hd' + format_url = playlist.get( + 'file%s' % ('_hd' if is_hd else '')) + if not format_url or not isinstance(format_url, compat_str): + continue + formats.append({ + 'url': format_url, + 'format_id': format_id, + 'quality': quality_key(format_id), + 'height': hd_height if is_hd else None, + }) + self._sort_formats(formats) + + return { + 'id': video_id, + 'title': title, + 'thumbnail': thumbnail, + 'duration': int_or_none(player.get('length')), + 'formats': formats, + } diff --git a/youtube_dl/extractor/youtube.py b/youtube_dl/extractor/youtube.py index 4305151..617be8e 100644 --- a/youtube_dl/extractor/youtube.py +++ b/youtube_dl/extractor/youtube.py @@ -1944,6 +1944,11 @@ class YoutubeIE(YoutubeBaseInfoExtractor): break if codecs: dct.update(parse_codecs(codecs)) + if dct.get('acodec') == 'none' or dct.get('vcodec') == 'none': + dct['downloader_options'] = { + # Youtube throttles chunks >~10M + 'http_chunk_size': 10485760, + } formats.append(dct) elif video_info.get('hlsvp'): manifest_url = video_info['hlsvp'][0] @@ -2446,7 +2451,7 @@ class YoutubeChannelIE(YoutubePlaylistBaseInfoExtractor): class YoutubeUserIE(YoutubeChannelIE): IE_DESC = 'YouTube.com user videos (URL or "ytuser" keyword)' - _VALID_URL = r'(?:(?:https?://(?:\w+\.)?youtube\.com/(?:(?P<user>user|c)/)?(?!(?:attribution_link|watch|results)(?:$|[^a-z_A-Z0-9-])))|ytuser:)(?!feed/)(?P<id>[A-Za-z0-9_-]+)' + _VALID_URL = r'(?:(?:https?://(?:\w+\.)?youtube\.com/(?:(?P<user>user|c)/)?(?!(?:attribution_link|watch|results|shared)(?:$|[^a-z_A-Z0-9-])))|ytuser:)(?!feed/)(?P<id>[A-Za-z0-9_-]+)' _TEMPLATE_URL = 'https://www.youtube.com/%s/%s/videos' IE_NAME = 'youtube:user' @@ -2578,7 +2583,11 @@ class YoutubePlaylistsIE(YoutubePlaylistsBaseInfoExtractor): }] -class YoutubeSearchIE(SearchInfoExtractor, YoutubePlaylistIE): +class YoutubeSearchBaseInfoExtractor(YoutubePlaylistBaseInfoExtractor): + _VIDEO_RE = r'href="\s*/watch\?v=(?P<id>[0-9A-Za-z_-]{11})(?:[^"]*"[^>]+\btitle="(?P<title>[^"]+))?' + + +class YoutubeSearchIE(SearchInfoExtractor, YoutubeSearchBaseInfoExtractor): IE_DESC = 'YouTube.com searches' # there doesn't appear to be a real limit, for example if you search for # 'python' you get more than 8.000.000 results @@ -2612,8 +2621,7 @@ class YoutubeSearchIE(SearchInfoExtractor, YoutubePlaylistIE): raise ExtractorError( '[youtube] No video results', expected=True) - new_videos = self._ids_to_results(orderedSet(re.findall( - r'href="/watch\?v=(.{11})', html_content))) + new_videos = list(self._process_page(html_content)) videos += new_videos if not new_videos or len(videos) > limit: break @@ -2636,11 +2644,10 @@ class YoutubeSearchDateIE(YoutubeSearchIE): _EXTRA_QUERY_ARGS = {'search_sort': 'video_date_uploaded'} -class YoutubeSearchURLIE(YoutubePlaylistBaseInfoExtractor): +class YoutubeSearchURLIE(YoutubeSearchBaseInfoExtractor): IE_DESC = 'YouTube.com search URLs' IE_NAME = 'youtube:search_url' _VALID_URL = r'https?://(?:www\.)?youtube\.com/results\?(.*?&)?(?:search_query|q)=(?P<query>[^&]+)(?:[&]|$)' - _VIDEO_RE = r'href="\s*/watch\?v=(?P<id>[0-9A-Za-z_-]{11})(?:[^"]*"[^>]+\btitle="(?P<title>[^"]+))?' _TESTS = [{ 'url': 'https://www.youtube.com/results?baz=bar&search_query=youtube-dl+test+video&filters=video&lclk=video', 'playlist_mincount': 5, diff --git a/youtube_dl/extractor/zdf.py b/youtube_dl/extractor/zdf.py index 523bb5c..bb9020c 100644 --- a/youtube_dl/extractor/zdf.py +++ b/youtube_dl/extractor/zdf.py @@ -42,16 +42,19 @@ class ZDFIE(ZDFBaseIE): _QUALITIES = ('auto', 'low', 'med', 'high', 'veryhigh') _TESTS = [{ - 'url': 'https://www.zdf.de/service-und-hilfe/die-neue-zdf-mediathek/zdfmediathek-trailer-100.html', + 'url': 'https://www.zdf.de/dokumentation/terra-x/die-magie-der-farben-von-koenigspurpur-und-jeansblau-100.html', 'info_dict': { - 'id': 'zdfmediathek-trailer-100', + 'id': 'die-magie-der-farben-von-koenigspurpur-und-jeansblau-100', 'ext': 'mp4', - 'title': 'Die neue ZDFmediathek', - 'description': 'md5:3003d36487fb9a5ea2d1ff60beb55e8d', - 'duration': 30, - 'timestamp': 1477627200, - 'upload_date': '20161028', - } + 'title': 'Die Magie der Farben (2/2)', + 'description': 'md5:a89da10c928c6235401066b60a6d5c1a', + 'duration': 2615, + 'timestamp': 1465021200, + 'upload_date': '20160604', + }, + }, { + 'url': 'https://www.zdf.de/service-und-hilfe/die-neue-zdf-mediathek/zdfmediathek-trailer-100.html', + 'only_matching': True, }, { 'url': 'https://www.zdf.de/filme/taunuskrimi/die-lebenden-und-die-toten-1---ein-taunuskrimi-100.html', 'only_matching': True, diff --git a/youtube_dl/options.py b/youtube_dl/options.py index 4c04550..7d1bbc0 100644 --- a/youtube_dl/options.py +++ b/youtube_dl/options.py @@ -478,6 +478,11 @@ def parseOpts(overrideArguments=None): '--no-resize-buffer', action='store_true', dest='noresizebuffer', default=False, help='Do not automatically adjust the buffer size. By default, the buffer size is automatically resized from an initial value of SIZE.') + downloader.add_option( + '--http-chunk-size', + dest='http_chunk_size', metavar='SIZE', default=None, + help='Size of a chunk for chunk-based HTTP downloading (e.g. 10485760 or 10M) (default is disabled). ' + 'May be useful for bypassing bandwidth throttling imposed by a webserver (experimental)') downloader.add_option( '--test', action='store_true', dest='test', default=False, diff --git a/youtube_dl/postprocessor/embedthumbnail.py b/youtube_dl/postprocessor/embedthumbnail.py index e606a58..56be914 100644 --- a/youtube_dl/postprocessor/embedthumbnail.py +++ b/youtube_dl/postprocessor/embedthumbnail.py @@ -31,7 +31,8 @@ class EmbedThumbnailPP(FFmpegPostProcessor): temp_filename = prepend_extension(filename, 'temp') if not info.get('thumbnails'): - raise EmbedThumbnailPPError('Thumbnail was not found. Nothing to do.') + self._downloader.to_screen('[embedthumbnail] There aren\'t any thumbnails to embed') + return [], info thumbnail_filename = info['thumbnails'][-1]['filename'] diff --git a/youtube_dl/utils.py b/youtube_dl/utils.py index 2fe9cf5..027d127 100644 --- a/youtube_dl/utils.py +++ b/youtube_dl/utils.py @@ -82,7 +82,7 @@ def register_socks_protocols(): compiled_regex_type = type(re.compile('')) std_headers = { - 'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64; rv:10.0) Gecko/20150101 Firefox/47.0 (Chrome)', + 'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64; rv:59.0) Gecko/20100101 Firefox/59.0 (Chrome)', 'Accept-Charset': 'ISO-8859-1,utf-8;q=0.7,*;q=0.7', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'Accept-Encoding': 'gzip, deflate', @@ -538,10 +538,22 @@ def sanitize_path(s): return os.path.join(*sanitized_path) -# Prepend protocol-less URLs with `http:` scheme in order to mitigate the number of -# unwanted failures due to missing protocol def sanitize_url(url): - return 'http:%s' % url if url.startswith('//') else url + # Prepend protocol-less URLs with `http:` scheme in order to mitigate + # the number of unwanted failures due to missing protocol + if url.startswith('//'): + return 'http:%s' % url + # Fix some common typos seen so far + COMMON_TYPOS = ( + # https://github.com/rg3/youtube-dl/issues/15649 + (r'^httpss://', r'https://'), + # https://bx1.be/lives/direct-tv/ + (r'^rmtp([es]?)://', r'rtmp\1://'), + ) + for mistake, fixup in COMMON_TYPOS: + if re.match(mistake, url): + return re.sub(mistake, fixup, url) + return url def sanitized_Request(url, *args, **kwargs): @@ -866,8 +878,8 @@ def _create_http_connection(ydl_handler, http_class, is_https, *args, **kwargs): # expected HTTP responses to meet HTTP/1.0 or later (see also # https://github.com/rg3/youtube-dl/issues/6727) if sys.version_info < (3, 0): - kwargs[b'strict'] = True - hc = http_class(*args, **kwargs) + kwargs['strict'] = True + hc = http_class(*args, **compat_kwargs(kwargs)) source_address = ydl_handler._params.get('source_address') if source_address is not None: sa = (source_address, 0) @@ -1199,6 +1211,11 @@ def unified_timestamp(date_str, day_first=True): if m: date_str = date_str[:-len(m.group('tz'))] + # Python only supports microseconds, so remove nanoseconds + m = re.search(r'^([0-9]{4,}-[0-9]{1,2}-[0-9]{1,2}T[0-9]{1,2}:[0-9]{1,2}:[0-9]{1,2}\.[0-9]{6})[0-9]+$', date_str) + if m: + date_str = m.group(1) + for expression in date_formats(day_first): try: dt = datetime.datetime.strptime(date_str, expression) - timezone + datetime.timedelta(hours=pm_delta) @@ -1677,6 +1694,28 @@ def parse_count(s): return lookup_unit_table(_UNIT_TABLE, s) +def parse_resolution(s): + if s is None: + return {} + + mobj = re.search(r'\b(?P<w>\d+)\s*[xX×]\s*(?P<h>\d+)\b', s) + if mobj: + return { + 'width': int(mobj.group('w')), + 'height': int(mobj.group('h')), + } + + mobj = re.search(r'\b(\d+)[pPiI]\b', s) + if mobj: + return {'height': int(mobj.group(1))} + + mobj = re.search(r'\b([48])[kK]\b', s) + if mobj: + return {'height': int(mobj.group(1)) * 540} + + return {} + + def month_by_name(name, lang='en'): """ Return the number of a month by (locale-independently) English name """ diff --git a/youtube_dl/version.py b/youtube_dl/version.py index 8a2b57f..6ce11c3 100644 --- a/youtube_dl/version.py +++ b/youtube_dl/version.py @@ -1,3 +1,3 @@ from __future__ import unicode_literals -__version__ = '2018.01.27' +__version__ = '2018.03.14' -- 2.41.1