From 22bc55bffeb45b7d2f3056ae863eb3228e6507e8 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Rog=C3=A9rio=20Brito?= Date: Fri, 14 Sep 2018 17:01:44 -0300 Subject: [PATCH] New upstream version 2018.09.10 --- AUTHORS | 7 + ChangeLog | 196 +++++++++++++++++ README.md | 12 +- README.txt | 12 +- docs/supportedsites.md | 21 +- test/test_utils.py | 19 ++ youtube-dl | Bin 1672166 -> 1699181 bytes youtube-dl.1 | 10 +- youtube-dl.fish | 4 +- youtube_dl/YoutubeDL.py | 4 +- youtube_dl/compat.py | 7 + youtube_dl/downloader/dash.py | 13 +- youtube_dl/extractor/adultswim.py | 3 +- youtube_dl/extractor/afreecatv.py | 3 +- youtube_dl/extractor/amp.py | 15 +- youtube_dl/extractor/animeondemand.py | 3 +- youtube_dl/extractor/anvato.py | 30 ++- youtube_dl/extractor/aol.py | 3 +- youtube_dl/extractor/apa.py | 6 +- youtube_dl/extractor/aparat.py | 3 +- youtube_dl/extractor/ard.py | 82 ++++++- youtube_dl/extractor/bandcamp.py | 239 ++++++++++++-------- youtube_dl/extractor/bbc.py | 61 +++++- youtube_dl/extractor/bitchute.py | 120 +++++++++++ youtube_dl/extractor/breakcom.py | 10 +- youtube_dl/extractor/brightcove.py | 11 +- youtube_dl/extractor/cammodels.py | 6 +- youtube_dl/extractor/canvas.py | 13 +- youtube_dl/extractor/ccma.py | 6 +- youtube_dl/extractor/ceskatelevize.py | 2 +- youtube_dl/extractor/clyp.py | 35 ++- youtube_dl/extractor/common.py | 172 ++++++++++++--- youtube_dl/extractor/crackle.py | 14 +- youtube_dl/extractor/crunchyroll.py | 210 ++++++++++-------- youtube_dl/extractor/cwtv.py | 82 +++---- youtube_dl/extractor/dailymotion.py | 127 +++++++---- youtube_dl/extractor/dctp.py | 83 ++++--- youtube_dl/extractor/discoverygo.py | 7 +- youtube_dl/extractor/dplay.py | 10 +- youtube_dl/extractor/dramafever.py | 10 +- youtube_dl/extractor/dtube.py | 2 +- youtube_dl/extractor/eagleplatform.py | 8 +- youtube_dl/extractor/egghead.py | 8 +- youtube_dl/extractor/eporner.py | 5 +- youtube_dl/extractor/expressen.py | 23 +- youtube_dl/extractor/extractors.py | 33 ++- youtube_dl/extractor/facebook.py | 19 +- youtube_dl/extractor/firsttv.py | 5 +- youtube_dl/extractor/foxnews.py | 83 +++---- youtube_dl/extractor/francetv.py | 8 +- youtube_dl/extractor/frontendmasters.py | 263 +++++++++++++++++++++++ youtube_dl/extractor/funk.py | 81 +++++-- youtube_dl/extractor/generic.py | 67 ++++-- youtube_dl/extractor/go.py | 30 ++- youtube_dl/extractor/go90.py | 31 ++- youtube_dl/extractor/hidive.py | 10 +- youtube_dl/extractor/imdb.py | 9 +- youtube_dl/extractor/imgur.py | 5 +- youtube_dl/extractor/instagram.py | 3 +- youtube_dl/extractor/internazionale.py | 27 ++- youtube_dl/extractor/iprima.py | 17 +- youtube_dl/extractor/itv.py | 141 ++++++------ youtube_dl/extractor/iwara.py | 6 +- youtube_dl/extractor/joj.py | 16 +- youtube_dl/extractor/keezmovies.py | 9 +- youtube_dl/extractor/kinopoisk.py | 70 ++++++ youtube_dl/extractor/konserthusetplay.py | 5 +- youtube_dl/extractor/lci.py | 4 +- youtube_dl/extractor/lynda.py | 25 +-- youtube_dl/extractor/markiza.py | 6 +- youtube_dl/extractor/mediaset.py | 145 +++++++------ youtube_dl/extractor/mediasite.py | 5 +- youtube_dl/extractor/mitele.py | 109 +--------- youtube_dl/extractor/motherless.py | 15 +- youtube_dl/extractor/nbc.py | 8 +- youtube_dl/extractor/niconico.py | 2 +- youtube_dl/extractor/nova.py | 169 +++++++++++---- youtube_dl/extractor/npo.py | 2 +- youtube_dl/extractor/nrk.py | 242 ++++++++++++++++----- youtube_dl/extractor/pbs.py | 8 + youtube_dl/extractor/peertube.py | 52 +++-- youtube_dl/extractor/pluralsight.py | 122 +++++++++-- youtube_dl/extractor/porncom.py | 5 +- youtube_dl/extractor/pornhub.py | 169 ++++++++++----- youtube_dl/extractor/puhutv.py | 247 +++++++++++++++++++++ youtube_dl/extractor/radiojavan.py | 28 ++- youtube_dl/extractor/rai.py | 7 + youtube_dl/extractor/raywenderlich.py | 189 +++++++++++----- youtube_dl/extractor/redbulltv.py | 5 +- youtube_dl/extractor/redtube.py | 6 +- youtube_dl/extractor/rentv.py | 5 +- youtube_dl/extractor/rtbf.py | 2 +- youtube_dl/extractor/rutube.py | 5 +- youtube_dl/extractor/seznamzpravy.py | 4 +- youtube_dl/extractor/sixplay.py | 10 +- youtube_dl/extractor/slideslive.py | 9 +- youtube_dl/extractor/slutload.py | 57 +++-- youtube_dl/extractor/streamcloud.py | 3 + youtube_dl/extractor/svt.py | 117 ++++++++-- youtube_dl/extractor/ted.py | 108 ++++++---- youtube_dl/extractor/tele5.py | 44 ++++ youtube_dl/extractor/telecinco.py | 122 +++++++++-- youtube_dl/extractor/theplatform.py | 11 +- youtube_dl/extractor/turner.py | 5 +- youtube_dl/extractor/tvnet.py | 7 +- youtube_dl/extractor/tvnow.py | 53 +++-- youtube_dl/extractor/tvplay.py | 118 +++++++++- youtube_dl/extractor/twitch.py | 46 ++-- youtube_dl/extractor/udemy.py | 13 +- youtube_dl/extractor/vgtv.py | 17 +- youtube_dl/extractor/vidme.py | 10 +- youtube_dl/extractor/vidzi.py | 5 +- youtube_dl/extractor/vimeo.py | 3 +- youtube_dl/extractor/viqeo.py | 99 +++++++++ youtube_dl/extractor/viu.py | 26 ++- youtube_dl/extractor/vk.py | 44 ++-- youtube_dl/extractor/vlive.py | 6 +- youtube_dl/extractor/vrv.py | 48 +++-- youtube_dl/extractor/watchbox.py | 18 +- youtube_dl/extractor/webofstories.py | 11 +- youtube_dl/extractor/xfileshare.py | 7 +- youtube_dl/extractor/xhamster.py | 7 +- youtube_dl/extractor/yapfiles.py | 8 +- youtube_dl/extractor/youjizz.py | 6 +- youtube_dl/extractor/youporn.py | 6 +- youtube_dl/extractor/yourporn.py | 41 ++++ youtube_dl/extractor/youtube.py | 33 ++- youtube_dl/extractor/zattoo.py | 5 +- youtube_dl/extractor/zdf.py | 12 +- youtube_dl/options.py | 4 +- youtube_dl/postprocessor/ffmpeg.py | 16 +- youtube_dl/utils.py | 57 ++++- youtube_dl/version.py | 2 +- 133 files changed, 4091 insertions(+), 1364 deletions(-) create mode 100644 youtube_dl/extractor/bitchute.py create mode 100644 youtube_dl/extractor/frontendmasters.py create mode 100644 youtube_dl/extractor/kinopoisk.py create mode 100644 youtube_dl/extractor/puhutv.py create mode 100644 youtube_dl/extractor/tele5.py create mode 100644 youtube_dl/extractor/viqeo.py create mode 100644 youtube_dl/extractor/yourporn.py diff --git a/AUTHORS b/AUTHORS index eaf96d7..b507cb8 100644 --- a/AUTHORS +++ b/AUTHORS @@ -239,3 +239,10 @@ Martin Weinelt Surya Oktafendri TingPing Alexandre Macabies +Bastian de Groot +Niklas Haas +András Veres-Szentkirályi +Enes Solak +Nathan Rossi +Thomas van der Berg +Luca Cherubin diff --git a/ChangeLog b/ChangeLog index fe50870..d184f69 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,199 @@ +version 2018.09.10 + +Core ++ [utils] Properly recognize AV1 codec (#17506) + +Extractors ++ [iprima] Add support for prima.iprima.cz (#17514) ++ [tele5] Add support for tele5.de (#7805, #7922, #17331, #17414) +* [nbc] Fix extraction of percent encoded URLs (#17374) + + +version 2018.09.08 + +Extractors +* [youtube] Fix extraction (#17457, #17464) ++ [pornhub:uservideos] Add support for new URLs (#17388) +* [iprima] Confirm adult check (#17437) +* [slideslive] Make check for video service name case-insensitive (#17429) +* [radiojavan] Fix extraction (#17151) +* [generic] Skip unsuccessful jwplayer extraction (#16735) + + +version 2018.09.01 + +Core +* [utils] Skip remote IP addresses non matching to source address' IP version + when creating a connection (#13422, #17362) + +Extractors ++ [ard] Add support for one.ard.de (#17397) +* [niconico] Fix extraction on python3 (#17393, #17407) +* [ard] Extract f4m formats +* [crunchyroll] Parse vilos media data (#17343) ++ [ard] Add support for Beta ARD Mediathek ++ [bandcamp] Extract more metadata (#13197) +* [internazionale] Fix extraction of non-available-abroad videos (#17386) + + +version 2018.08.28 + +Extractors ++ [youtube:playlist] Add support for music album playlists (OLAK5uy_ prefix) + (#17361) +* [bitchute] Fix extraction by pass custom User-Agent (#17360) +* [webofstories:playlist] Fix extraction (#16914) ++ [tvplayhome] Add support for new tvplay URLs (#17344) ++ [generic] Allow relative src for videojs embeds (#17324) ++ [xfileshare] Add support for vidto.se (#17317) ++ [vidzi] Add support for vidzi.nu (#17316) ++ [nova:embed] Add support for media.cms.nova.cz (#17282) + + +version 2018.08.22 + +Core +* [utils] Use pure browser header for User-Agent (#17236) + +Extractors ++ [kinopoisk] Add support for kinopoisk.ru (#17283) ++ [yourporn] Add support for yourporn.sexy (#17298) ++ [go] Add support for disneynow.go.com (#16299, #17264) ++ [6play] Add support for play.rtl.hr (#17249) +* [anvato] Fallback to generic API key for access-key-to-API-key lookup + (#16788, #17254) +* [lci] Fix extraction (#17274) +* [bbccouk] Extend id URL regular expression (#17270) +* [cwtv] Fix extraction (#17256) +* [nova] Fix extraction (#17241) ++ [generic] Add support for expressen embeds +* [raywenderlich] Adapt to site redesign (#17225) ++ [redbulltv] Add support redbull.com tv URLs (#17218) ++ [bitchute] Add support for bitchute.com (#14052) ++ [clyp] Add support for token protected media (#17184) +* [imdb] Fix extension extraction (#17167) + + +version 2018.08.04 + +Extractors +* [funk:channel] Improve byChannelAlias extraction (#17142) +* [twitch] Fix authentication (#17024, #17126) +* [twitch:vod] Improve URL regular expression (#17135) +* [watchbox] Fix extraction (#17107) +* [pbs] Fix extraction (#17109) +* [theplatform] Relax URL regular expression (#16181, #17097) ++ [viqeo] Add support for viqeo.tv (#17066) + + +version 2018.07.29 + +Extractors +* [crunchyroll:playlist] Restrict URL regular expression (#17069, #17076) ++ [pornhub] Add support for subtitles (#16924, #17088) +* [ceskatelevize] Use https for API call (#16997, #16999) +* [dailymotion:playlist] Fix extraction (#16894) +* [ted] Improve extraction +* [ted] Fix extraction for videos without nativeDownloads (#16756, #17085) +* [telecinco] Fix extraction (#17080) +* [mitele] Reduce number of requests +* [rai] Return non HTTP relinker URL intact (#17055) +* [vk] Fix extraction for inline only videos (#16923) +* [streamcloud] Fix extraction (#17054) +* [facebook] Fix tahoe player extraction with authentication (#16655) ++ [puhutv] Add support for puhutv.com (#12712, #16010, #16269) + + +version 2018.07.21 + +Core ++ [utils] Introduce url_or_none +* [utils] Allow JSONP without function name (#17028) ++ [extractor/common] Extract DASH and MSS formats from SMIL manifests + +Extractors ++ [bbc] Add support for BBC Radio Play pages (#17022) +* [iwara] Fix download URLs (#17026) +* [vrtnu] Relax title extraction and extract JSON-LD (#17018) ++ [viu] Pass Referer and Origin headers and area id (#16992) ++ [vimeo] Add another config regular expression (#17013) ++ [facebook] Extract view count (#16942) +* [dailymotion] Improve description extraction (#16984) +* [slutload] Fix and improve extraction (#17001) +* [mediaset] Fix extraction (#16977) ++ [theplatform] Add support for theplatform TLD customization (#16977) +* [imgur] Relax URL regular expression (#16987) +* [pornhub] Improve extraction and extract all formats (#12166, #15891, #16262, + #16959) + + +version 2018.07.10 + +Core +* [utils] Share JSON-LD regular expression +* [downloader/dash] Improve error handling (#16927) + +Extractors ++ [nrktv] Add support for new season and serie URL schema ++ [nrktv] Add support for new episode URL schema (#16909) ++ [frontendmasters] Add support for frontendmasters.com (#3661, #16328) +* [funk] Fix extraction (#16918) +* [watchbox] Fix extraction (#16904) +* [dplayit] Sort formats +* [dplayit] Fix extraction (#16901) +* [youtube] Improve login error handling (#13822) + + +version 2018.07.04 + +Core +* [extractor/common] Properly escape % in MPD templates (#16867) +* [extractor/common] Use source URL as Referer for HTML5 entries (16849) +* Prefer ffmpeg over avconv by default (#8622) + +Extractors +* [pluralsight] Switch to graphql (#16889, #16895, #16896, #16899) +* [lynda] Simplify login and improve error capturing (#16891) ++ [go90] Add support for embed URLs (#16873) +* [go90] Detect geo restriction error and pass geo verification headers + (#16874) +* [vlive] Fix live streams extraction (#16871) +* [npo] Fix typo (#16872) ++ [mediaset] Add support for new videos and extract all formats (#16568) +* [dctptv] Restore extraction based on REST API (#16850) +* [svt] Improve extraction and add support for pages (#16802) +* [porncom] Fix extraction (#16808) + + +version 2018.06.25 + +Extractors +* [joj] Relax URL regular expression (#16771) +* [brightcove] Workaround sonyliv DRM protected videos (#16807) +* [motherless] Fix extraction (#16786) +* [itv] Make SOAP request non fatal and extract metadata from webpage (#16780) +- [foxnews:insider] Remove extractor (#15810) ++ [foxnews] Add support for iframe embeds (#15810, #16711) + + +version 2018.06.19 + +Core ++ [extractor/common] Introduce expected_status in _download_* methods + for convenient accept of HTTP requests failed with non 2xx status codes ++ [compat] Introduce compat_integer_types + +Extractors +* [peertube] Improve generic support (#16733) ++ [6play] Use geo verification headers +* [rtbf] Fix extraction for python 3.2 +* [vgtv] Improve HLS formats extraction ++ [vgtv] Add support for www.aftonbladet.se/tv URLs +* [bbccouk] Use expected_status +* [markiza] Expect 500 HTTP status code +* [tvnow] Try all clear manifest URLs (#15361) + + version 2018.06.18 Core diff --git a/README.md b/README.md index 499a0c2..dd068a4 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ youtube-dl - download videos from youtube.com or other video platforms # INSTALLATION -To install it right away for all UNIX users (Linux, OS X, etc.), type: +To install it right away for all UNIX users (Linux, macOS, etc.), type: sudo curl -L https://yt-dl.org/downloads/latest/youtube-dl -o /usr/local/bin/youtube-dl sudo chmod a+rx /usr/local/bin/youtube-dl @@ -35,7 +35,7 @@ You can also use pip: This command will update youtube-dl if you have already installed it. See the [pypi page](https://pypi.python.org/pypi/youtube_dl) for more information. -OS X users can install youtube-dl with [Homebrew](https://brew.sh/): +macOS users can install youtube-dl with [Homebrew](https://brew.sh/): brew install youtube-dl @@ -427,9 +427,9 @@ Alternatively, refer to the [developer instructions](#developer-instructions) fo default; fix file if we can, warn otherwise) --prefer-avconv Prefer avconv over ffmpeg for running the - postprocessors (default) - --prefer-ffmpeg Prefer ffmpeg over avconv for running the postprocessors + --prefer-ffmpeg Prefer ffmpeg over avconv for running the + postprocessors (default) --ffmpeg-location PATH Location of the ffmpeg/avconv binary; either the path to the binary or its containing directory. @@ -442,7 +442,7 @@ Alternatively, refer to the [developer instructions](#developer-instructions) fo # CONFIGURATION -You can configure youtube-dl by placing any supported command line option to a configuration file. On Linux and OS X, the system wide configuration file is located at `/etc/youtube-dl.conf` and the user wide configuration file at `~/.config/youtube-dl/config`. On Windows, the user wide configuration file locations are `%APPDATA%\youtube-dl\config.txt` or `C:\Users\\youtube-dl.conf`. Note that by default configuration file may not exist so you may need to create it yourself. +You can configure youtube-dl by placing any supported command line option to a configuration file. On Linux and macOS, the system wide configuration file is located at `/etc/youtube-dl.conf` and the user wide configuration file at `~/.config/youtube-dl/config`. On Windows, the user wide configuration file locations are `%APPDATA%\youtube-dl\config.txt` or `C:\Users\\youtube-dl.conf`. Note that by default configuration file may not exist so you may need to create it yourself. For example, with the following configuration file youtube-dl will always extract the audio, not copy the mtime, use a proxy and save all videos under `Movies` directory in your home directory: ``` @@ -870,7 +870,7 @@ Either prepend `https://www.youtube.com/watch?v=` or separate the ID from the op Use the `--cookies` option, for example `--cookies /path/to/cookies/file.txt`. -In order to extract cookies from browser use any conforming browser extension for exporting cookies. For example, [cookies.txt](https://chrome.google.com/webstore/detail/cookiestxt/njabckikapfpffapmjgojcnbfjonfjfg) (for Chrome) or [Export Cookies](https://addons.mozilla.org/en-US/firefox/addon/export-cookies/) (for Firefox). +In order to extract cookies from browser use any conforming browser extension for exporting cookies. For example, [cookies.txt](https://chrome.google.com/webstore/detail/cookiestxt/njabckikapfpffapmjgojcnbfjonfjfg) (for Chrome) or [cookies.txt](https://addons.mozilla.org/en-US/firefox/addon/cookies-txt/) (for Firefox). Note that the cookies file must be in Mozilla/Netscape format and the first line of the cookies file must be either `# HTTP Cookie File` or `# Netscape HTTP Cookie File`. Make sure you have correct [newline format](https://en.wikipedia.org/wiki/Newline) in the cookies file and convert newlines if necessary to correspond with your OS, namely `CRLF` (`\r\n`) for Windows and `LF` (`\n`) for Unix and Unix-like systems (Linux, macOS, etc.). `HTTP Error 400: Bad Request` when using `--cookies` is a good sign of invalid newline format. diff --git a/README.txt b/README.txt index fec09ab..a0f20fd 100644 --- a/README.txt +++ b/README.txt @@ -20,7 +20,7 @@ youtube-dl - download videos from youtube.com or other video platforms INSTALLATION -To install it right away for all UNIX users (Linux, OS X, etc.), type: +To install it right away for all UNIX users (Linux, macOS, etc.), type: sudo curl -L https://yt-dl.org/downloads/latest/youtube-dl -o /usr/local/bin/youtube-dl sudo chmod a+rx /usr/local/bin/youtube-dl @@ -41,7 +41,7 @@ You can also use pip: This command will update youtube-dl if you have already installed it. See the pypi page for more information. -OS X users can install youtube-dl with Homebrew: +macOS users can install youtube-dl with Homebrew: brew install youtube-dl @@ -474,9 +474,9 @@ Post-processing Options: default; fix file if we can, warn otherwise) --prefer-avconv Prefer avconv over ffmpeg for running the - postprocessors (default) - --prefer-ffmpeg Prefer ffmpeg over avconv for running the postprocessors + --prefer-ffmpeg Prefer ffmpeg over avconv for running the + postprocessors (default) --ffmpeg-location PATH Location of the ffmpeg/avconv binary; either the path to the binary or its containing directory. @@ -493,7 +493,7 @@ CONFIGURATION You can configure youtube-dl by placing any supported command line -option to a configuration file. On Linux and OS X, the system wide +option to a configuration file. On Linux and macOS, the system wide configuration file is located at /etc/youtube-dl.conf and the user wide configuration file at ~/.config/youtube-dl/config. On Windows, the user wide configuration file locations are %APPDATA%\youtube-dl\config.txt or @@ -1147,7 +1147,7 @@ Use the --cookies option, for example In order to extract cookies from browser use any conforming browser extension for exporting cookies. For example, cookies.txt (for Chrome) -or Export Cookies (for Firefox). +or cookies.txt (for Firefox). Note that the cookies file must be in Mozilla/Netscape format and the first line of the cookies file must be either # HTTP Cookie File or diff --git a/docs/supportedsites.md b/docs/supportedsites.md index 432a7ba..9b86017 100644 --- a/docs/supportedsites.md +++ b/docs/supportedsites.md @@ -56,6 +56,7 @@ - **archive.org**: archive.org videos - **ARD** - **ARD:mediathek** + - **ARDBetaMediathek** - **Arkena** - **arte.tv** - **arte.tv:+7** @@ -108,6 +109,8 @@ - **BiliBili** - **BioBioChileTV** - **BIQLE** + - **BitChute** + - **BitChuteChannel** - **BleacherReport** - **BleacherReportCMS** - **blinkx** @@ -189,7 +192,7 @@ - **Crackle** - **Criterion** - **CrooksAndLiars** - - **Crunchyroll** + - **crunchyroll** - **crunchyroll:playlist** - **CSNNE** - **CSpan**: C-SPAN @@ -290,7 +293,6 @@ - **Foxgay** - **foxnews**: Fox News and Fox Business Video - **foxnews:article** - - **foxnews:insider** - **FoxSports** - **france2.fr:generation-what** - **FranceCulture** @@ -303,6 +305,9 @@ - **Freesound** - **freespeech.org** - **FreshLive** + - **FrontendMasters** + - **FrontendMastersCourse** + - **FrontendMastersLesson** - **Funimation** - **FunkChannel** - **FunkMix** @@ -403,6 +408,7 @@ - **Ketnet** - **KhanAcademy** - **KickStarter** + - **KinoPoisk** - **KonserthusetPlay** - **kontrtube**: KontrTube.ru - Труба зовёт - **KrasView**: Красвью @@ -575,6 +581,7 @@ - **Normalboots** - **NosVideo** - **Nova**: TN.cz, Prásk.tv, Nova.cz, Novaplus.cz, FANDA.tv, Krásná.cz and Doma.cz + - **NovaEmbed** - **nowness** - **nowness:playlist** - **nowness:series** @@ -590,7 +597,9 @@ - **NRKSkole**: NRK Skole - **NRKTV**: NRK TV and NRK Radio - **NRKTVDirekte**: NRK TV Direkte and NRK Radio Direkte + - **NRKTVEpisode** - **NRKTVEpisodes** + - **NRKTVSeason** - **NRKTVSeries** - **ntv.ru** - **Nuvid** @@ -668,6 +677,8 @@ - **PrimeShareTV** - **PromptFile** - **prosiebensat1**: ProSiebenSat.1 Digital + - **puhutv** + - **puhutv:serie** - **Puls4** - **Pyvideo** - **qqmusic**: QQ音乐 @@ -690,6 +701,7 @@ - **RaiPlayLive** - **RaiPlayPlaylist** - **RayWenderlich** + - **RayWenderlichCourse** - **RBMARadio** - **RDS**: RDS.ca - **RedBullTV** @@ -814,6 +826,7 @@ - **StretchInternet** - **SunPorno** - **SVT** + - **SVTPage** - **SVTPlay**: SVT Play and Öppet arkiv - **SVTSeries** - **SWRMediathek** @@ -834,6 +847,7 @@ - **techtv.mit.edu** - **ted** - **Tele13** + - **Tele5** - **TeleBruxelles** - **Telecinco**: telecinco.es, cuatro.com and mediaset.es - **Telegraaf** @@ -905,6 +919,7 @@ - **tvp:embed**: Telewizja Polska - **tvp:series** - **TVPlayer** + - **TVPlayHome** - **Tweakers** - **twitch:chapter** - **twitch:clips** @@ -994,6 +1009,7 @@ - **Vimple**: Vimple - one-click video hosting - **Vine** - **vine:user** + - **Viqeo** - **Viu** - **viu:ott** - **viu:playlist** @@ -1085,6 +1101,7 @@ - **YouNowLive** - **YouNowMoment** - **YouPorn** + - **YourPorn** - **YourUpload** - **youtube**: YouTube.com - **youtube:channel**: YouTube.com channels diff --git a/test/test_utils.py b/test/test_utils.py index e63af01..9e28e00 100644 --- a/test/test_utils.py +++ b/test/test_utils.py @@ -78,6 +78,7 @@ from youtube_dl.utils import ( uppercase_escape, lowercase_escape, url_basename, + url_or_none, base_url, urljoin, urlencode_postdata, @@ -507,6 +508,16 @@ class TestUtil(unittest.TestCase): self.assertEqual(urljoin('http://foo.de/', ['foobar']), None) self.assertEqual(urljoin('http://foo.de/a/b/c.txt', '.././../d.txt'), 'http://foo.de/d.txt') + def test_url_or_none(self): + self.assertEqual(url_or_none(None), None) + self.assertEqual(url_or_none(''), None) + self.assertEqual(url_or_none('foo'), None) + self.assertEqual(url_or_none('http://foo.de'), 'http://foo.de') + self.assertEqual(url_or_none('https://foo.de'), 'https://foo.de') + self.assertEqual(url_or_none('http$://foo.de'), None) + self.assertEqual(url_or_none('http://foo.de'), 'http://foo.de') + self.assertEqual(url_or_none('//foo.de'), '//foo.de') + def test_parse_age_limit(self): self.assertEqual(parse_age_limit(None), None) self.assertEqual(parse_age_limit(False), None) @@ -717,6 +728,10 @@ class TestUtil(unittest.TestCase): d = json.loads(stripped) self.assertEqual(d, {'status': 'success'}) + stripped = strip_jsonp('({"status": "success"});') + d = json.loads(stripped) + self.assertEqual(d, {'status': 'success'}) + def test_uppercase_escape(self): self.assertEqual(uppercase_escape('aä'), 'aä') self.assertEqual(uppercase_escape('\\U0001d550'), '𝕐') @@ -770,6 +785,10 @@ class TestUtil(unittest.TestCase): 'vcodec': 'h264', 'acodec': 'aac', }) + self.assertEqual(parse_codecs('av01.0.05M.08'), { + 'vcodec': 'av01.0.05M.08', + 'acodec': 'none', + }) def test_escape_rfc3986(self): reserved = "!*'();:@&=+$,/?#[]" diff --git a/youtube-dl b/youtube-dl index 32154d701f5e82e28c2f8d711565536ce7c4da07..8879627e81e648ba6e37e920db3fba323e2ea16d 100755 GIT binary patch delta 510143 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 z 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 z zMzw;;sq^?}R0KpA#{8FfGCYcZUcyj1)_>`}VK|uaiGPV}C>?-Up~r@_ctB-H&nrp;)8Lzw0HZq?QuM9i(5hcjobtWkw0~?; zJjznOVI8ww#ZuF8t_7^**T{L$Nc|Q80P*=yz5wtphULerkpkfu$4Sz$XY{ALeUui% z!-LRCr+I?`c4Ve^q=2Lt7R#i>VD@6f(RmD_%RDKa<#B>JEUqtNJR1_l$CB$JlQ<_q zW;VMCBsjG)&OwyX$488oPvC=2GJl8%$Ys*(JdYL^$vD6(>;=c9&wvAAp79LZD}rUQ zBT;|Cb!^pa!HK-S3a_YmyW>b7CS{IXAiulXQt$;|PI$+%#GY@Y@k2FVxN!93`L)DGGqu5fDxp3q7=Lyi5Cs?y zDqR={6m2$5XM|hcYkUg=RioZTSN3#fxgL~h?uQjVEx{9xW#LPpo)-J67Q9; zJJ4;_C6MYMIHc#asZN$~cpgXCRZNScpj{`x1u(l_p1~1pGO%`8>dH_US3m;joMKDT z9~|4m-?aLz-k({M0(J4JGeWC~a!Mw6wSc$D$?`9K=cb7M<0h$O7lv75H{M7oA-;)J?WSvaRy z4)-n?%U}huQ7g0{)dgaAxD2iyuO^>~mL-U)K=MQBGV(hy90eHq_7CGZp3&Tz`P=~` zzc&}+J7xLhkWz5QlYh^j5)+!94G_O7)6vn`oMq=pN>{BrUD&eCvyX2gS578N{_)_?o!{Vq@Z0HT{|QLtztY`MCc8u78BxeA3V^W$ zmb6iq50tO>|1>;0IDY@?F{=I_qxlKO#Woh zRUSt(X?hl9MV5voH*;Izdgh9ynqK{(SFINwrUcL=nVVqkUa_Vw0~>CM!k%DX zm*$5C-;kHc%|i6d<}DJ~UJ!;Ww&YYeD-|7rV_9^_6mGx*0=P9eer1qq(`7iBe2Cku zo(Y3*_J4xSmReOfeKPu0b}W%n{2ni7dpbI)oNI4^J1C=3kd>+Jm&HVi)Y{{pwK4+bzC3R9G~ zlZyuc02mmTaSa3;mym!M1(yjd1}1+t^t*orfntz^x^|kjn-?q#f*fnsV?msB8`?~u zCEDgHi5f{IG1~n1y+=_8CE3_21dhaapM2yK5{Z~+s{>N#<+IsnDMd=ca9QX=vM?k( z&4tvY$T;A!FyWd>ny4{}`5jkWWTTNqk!(~_Pa=_~BCAL*vZXkC(2_=4NQ-}gC^^*? zO8FJOzP`RZld{1oG*488IdZ}438jYfaDn(9U`E$Z9&V0wh;J}cDACBK%oQ5}7Z^30HdhDSkTr z3JV|qn%+L022X>)Kf3&h$3Fug@JhkgXY=bh2>tlQeB<+kteAiRDJ^-VSxmGbC&x9| z1EakI;u*z2FVJXWRWKUREQWZnm`?X!?d`vK`NA7Fv>c2NV_*v$8i{`;C`PV*8Uuvz zAvDcjb|ISUgdyxEi&Ypk&>W3dGo6#Q@ z%l+A6xm?a7wv1-9$HK-Q==WdEUUZ;$oZW|!C^FO(QmO-{cTftDQOF`&0m@z%p-MM^ zJ%8B&u2?3GmB*3EJ~Drg__K4~)i9EbLRJ~XB%v93BL(}+WEYQ04GDs1Zy48W@|vbR z(NKjaVzC&LH|&mQWG>`FjLBQBD7o5zbK#vmP;x5xYD})gfi{@z~KX2m3D%BWjqO)v5}SI|rTLxdFw6IqxQDQJI&P8{Ymi166TQ7Ckp zs$POVA?b@^Mq+WFK?{jHvOn`YtUy3|EeqD-J}PCjI1W`2mh*qEB#|YXFr_+Lm+90< ze7qgm=C>pvBt(ME58I8eSh5^r)3R*`pF18i5%L&%0D>naPgw8~Z&c%%%$A!F8+(mg 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 z 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�E^tFC~Jz%n)i|dPR^17bR-4-8nQZT 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
  • RZaco;lI1r-oHP@=C9YM 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 OclFVe*>2@qg8v6-Z@UWs delta 484148 zcmV(#K;*ye+Gpm6X0ZGf3Nt29Xm3sc0Jdne1{SPGf8FPtneIaql@ELFt7K(jE^Uao z_=0HL3j(=gm!hXKP9;0}iXz-;UIKhGzE0Go1wBd5S|yFy7^X@ODh}{lr$r<~Q3oZq zici(IZAz2s;H08>_xkBC^LOvxoL`5vAoIH6V`^1Z7d$eyn^NL$w=$euY zyjtqVf4O9q#AQv2f7*`M+N-7_P=QQkN4Cp`xvBdcyl?X?aUEj zT={e*9hwq_OqPumRjB9O5pASLcJ6MA>@gC_bf7g=cpBkW1vfGmC!>OwG)0UwSkMEde<7cTH}|+JuU)g*qhY^4kUa11@ZnB- zO@jgo~ZmMR1<*(!6S1Us+w9o;g@t?2w@WfS}? z%iOk;t+WxANpj=}EKOD_4trkQ`E4Kln3qIuy;E+fiG*7k};$kP`Tm=WiTVk<5leYs^=C}*DZKZ=N&^+9RITMcmN@V*;-jqvNM&VF&F73 zjAb3N@T=MY(_}hl^+}eoZjeDAyr|MTe-=chuEpagQ6x&glv)yk;$qwpR_3Jj=}1!U zHgTqgJ_=)z9es8>r|}K#r58mD&%ZotpUU;BKcoR?Wr_A)>*?#4AAWuH4$~%-)F`>8 z2xUK)e;psteue>-H{Bw;A}=pqowI6aN-VQtR#niyAF4n_tY7bFUv(8+xg`o(fAXNB z`S-I{*AS?`@Fnh*S}8e`0I2guUm#t%v`!`%FH|1F5giXpt9h&eeH- zAlDWC+*SqJdMXymY^&CQjXK-&a=PMGKXctw9bHuopgI@Rrk*UPJpE!5yVSFFHYU4I zs^U({7pOUl0{nd?!S-g`F=BLpe_ZiXRo$!i@*=GfZyI6sQ`cDk!i{^@j=G_xgpzDd zk}yw_D3e35Q@c>*Ojfsmvs`S?dT`QP)6O-m5_;se_au&MG(=;t0|jx3hzbX0XDh|9ee{QmBURIe-QRaAAlCG^_86!GlpDPzopdHAWogycR0X}3Ij+i! z9%VW2NKPa7!TGd1omv|wUHDvARoy!+ZI9+Na!u2GOfF%qAB2Bblq~He`eyr#v8duM z{{OF%j&~Q;gge9UG;zD+e<}WAj`6va-!PxgOKWAh;kS&iArimis=B0*O_Bd^Y>95M z`UG|xsww44R^hl)*GSdHv1>5$QCtqJ#>_!f^pYVf{(ew4tMY-BayiE{#I{babaatQ zOJ3tgwe!s70XS)$Qp@BUMxh#sYDo1sSP8qxaA;SyoqTGsQ^%Qwf7ur&SKi~+^V5E> zVd1SVXKJ1*@5>#Wl>{~qUDX7VM#kyIEx63M6n{V9LFdbz%Dy4@T49u{Oc$jN{2FeF z-jjbdMVqURk}B+n@{+}%b7OC@^o#06qXnq^iQ25)Zr%KNRZ4<&W1|EM$Ubmj0!^_XXn97T=lZ($rH*I9iXu`EkpGEt&j z{IWvuAjn6kj~|^Nc^WdXW+E`=UbS9y2{SZ5SAN*qbfLnJ(Gr5 z_2htC2VatWe(?VRv%+MI9|h?VFdr$iQ-oV2e|IU`lk^H10$kKq%8f2{aJ^`!T)JSX zT`#9SolW$Cksy)1Ud_~qm-xQPUT4;5LDiUMD-fg`Q{D4xNviu!Dd9Ga>-Of^i*rvS zPUA_utj2R*P#9uL;hE&1i=wE##i+mv9jQE9W_ZYuN7*VthC>wS(`l?cK2Og-zzIK9 zf1p)ftN;E_9p_05oagujaHsfKJ$a(GOL+caDC}&^>bjQfN>7aN)_IoeI(711ZSHDq zBdB2474)Zil_}ru?xH-uJM4CMi*0P-*x5$nb#p=oaiG)GhpmNly6N^p^K{)_z~+x= zFXq4o+RHi1WP3R)Y_=D(j%Dq|yr|2LfA&0_+m3NDQ`}yx2>Rbq)}o!amov*>FA_L% zkTq_B^i!+ZYM?S)s3&%zLM!MO0_w8*t7)BnkqRADS_y4U{03AWYnN8nB>u21loL1w z!}sJy_ffslts&c*W%Cm?R8LV5+}3;t-V8sOyOea{e*m@|=c~fJSF2fo{|k%Xe+S}V zNg-`0&eElo`c4Jk9F@x9&lV%!R_c8;PRJ}0@Cmd{6N4}j;MuPQ)?ui_FWBXJ_VH0o zTlnIUeW5wz1fA)KVi;4K+&y(IOlNG1b0h1W`XTNW2afr#O8x{HrHhp$Q$b{+`xf10iiqrU{{ ztMA~!8LoYA)#4U__dbnJy_!!8L-@2h64IT6-x0Dg0-uAXCyQvBF6c6FhMf&6J;a}2 z_(or_@z5OkeF={m>flhg8n(ZU<;+)P1d9T15ir?1eZ>+7#OqFtD7kbfz0B| z*NgxFjM|fW)i-}>cicE~-}Ngn?bVPix7f1eQ+C^{k)^R_Y{}1(GvjT^44aK^am336 zDXBg7d%5ppk0dYmo$OA|-CQrp=J>$p|COo&z^l7uXC}#q@Yx~(6bgl^LRF!FzVu!< z6G?aAgzVjiR#0_@x)?Z?6EuY1P0!6Tlty?MFBd zT?(A^Sbu*oV|ilL*Tf9yNyC`tldPMmNUm8Alkh};vN7A4^qpV=TzBA1H-rI-|- zDG%b2SJIRwj>`v*d!j4O1K;9l!nw8O^MHrx0etJmm&kD`Y0Hg**h#gR%>@RJtg{~+ zJbL)pNd(_Yk|^oSY^qnIGKe$*eX3Qv$8|6%W&3}Vo!#xHyPF5k9&go}iEbOon}Lg; z$H2*~Ir4ED_%=+_OFb^;w@~R?qdkpn*Y^OVR)2ElB;z`&NZ6qh@LFArT(Do%0mZS; z&+Qjkl-7Zzux&TtpxHL4f5_d`i^4iknl#IqivzhQv+A>OswGQ&kg(0C#HJdE=D7`6 z;30pm)C)o0h9sov+p(XCSx^aok%6u>o2IdXywl^(LR%{=@=(GrNPYyt*WJiLK ztfqboLq38PH}(W9a*~0tVQHn23+vr%uT!T>to1~JwAlXM=EwW2fKdQDA$v?#ligvf z)^+PzhXKVR2AgQMVZDwP8@?DFePRb$t8Ah?132NR9%0c zJBdGGASf?{DMjfqPtH8S7Z54fxgqGw7?uv#tQBT{dgaP(_RtHnb9R37x_$lXZI+y_U%O?kwAqK; zJ&C%jD_2(F-xap)C43Z}cd?O~o5z13W8OBTx)~d;%j0x;^BAX1!|d$uE#JI(?bh;@ z4!PCaFM2E1jn0yM*ZUzndciK5rVcR5_gn{!LiZeNE}u7R1E0{`>MV67!kZ03wnFLC z5i@$b4)PV;5pTdfbi#4wj5)&ba2eJq4+-Hl0DKKXdb+>$#NPODYxiKkWaxjsGjbB| z9hrG$1(~@41N+h5?!g0lcjM6(Qr(wSf8>OjlT1+O zxA`E^-;bQcJ;slXIPrX0Lk)i)Wnsatk20U?HnMRhQvBKn_VHlA6D;gOe4##fqtl}L zK6mB!(ZWKVB*jP`0uyHttwtRs(A+OpnDLnto_Z4XDF5O#QQrY59lo7YH30~S@by{d zg=zw_dj_)NM7Qs}pX`6yTb~|m?e6dF z?c#i-5jKLDtV%ouYr6?Vy~VO0gkJAJMyV!bXC0^`5Nf82y75@PPUXvy zuXCD4Os^=;gzgrc5L|E~X*pRN>K5me*faD_&kNw_v}hG0Y&{E3<;&3xYh#+u+IY3- z6|a?(C@18^h2ESw1>S$r)sdVSO(s~&ZW7@Eh^&pqFywp)c8`p=6GEu+64o!n2oD1e zfp$2d$jVItECAoUu(7!b3)9|wu<-&*ndu z|9t)n`7h?bl>c)6EBUYH-^{<2e>?w9{%iTK=fCmhoB40P`F4N)TlsJ2zmxy&oA2kp zm;ZkL2l*f7f0X}m{wMjL=6{y|dH&t}d-)gnU*vz8|5g6i`QPM!n}0w5LH>97-{=33 z|6~47Z@!iP^PBJF|C0Y}{=@v=-uxi{_xwNd|Ey?V^C_Zj%RP3y&@?va0iN`YjV;hL zW^8W3vjfll-93N#Q0ty-eTvVs$5bT*s^+|*nhz)+KGf6Ugv{mec<@AFBp+&xWNU`c zB%Xka0a4xGIM}kc_nti3IH;)p;*c$Vz!slrabtN&$jf~EAOWtkM?S))AF zUZwk}Nw|OXs_#mA1-eN*3ZhCpP&%vj2O=2H!Y<|3T-`?E2zqM~a*#a7q z*6TylFs;iFU7Cl(%Wd`7F#FGqBd9&JXu|81JEa7qnLld-YDo$!UrPskb29^h&ATv3<4Nz zP+&8LII;vIdX}DX=R{bVFnXuSq})d!7L?RQXv>)9U~B)tu;gCVL`d1j&oR7ZTl4~> zK84TVPBWK#wGfDr=avrZaztG}*}Ue4GTTj*ep};RpU6H+>JkssJ2z6}W}mc6^<=dA%@|FIz@cLHmw(;9Yy=Q2>MrWc!EJHm^l&Nq$ z!9@d^0;c3KgMT>5EyO6RtQvT2g8G30z$SR%NnsWBqfGqXKB1cK89SmRr=Wk+Oh*MR22Y8E~A;TLt#n|hr$k=Sg{Ei2n2;G zx}3f%LsHXNH`>H;7nw#bN;Pzi_K^yDzsMx}Gh zZhz&dqNg>Rj!y_?D|LS`8gehhV|>0SUW2xxuF6UGLvciXmC7oSz^ts#A}=&GhIWm8 zT#BHsr^s{CQ7}PH3i>L&CMvj-`Dw3AZC1>HU8=s)*7f;IXO?a+Xea3j2)q72Vt6e58%_&$ZD-CQl9J_kU~Os{{50r>foVh*8RST!|K z3@i{8d~7NWu}eW$v;|O*KpM2mfJ<6C92?6u>sE`?XaqFz;85^HHjNVU2&S%Dtv?c#QBB^)1xXov*(d75yzysdsxyPG|r_T)+xq zT6v2u7S7=RmwbN@4G3IuR$ood#F?6~=QzPHCGofU)@h;s-w6jIha$!>DkaMQU`l5vAv<`4Lb}^_sX1t%)^jlrfV@^86vrRMyDl1e%z$O zzR4ST;6Zopqrt^G3^AbsPt(BByBUt7Lp()QgMwnNrs01LA;c@lnN6_k!w4q*l@}o1 znf8&Fh;-fz2;nYbDKes(HQkas#TNyanZgg-AK^MN zx2djokYqaKoJ;6`59L>xz(ss{i@+c>Mp20`B`ZvXIh10ZuX+tult~1_4tkgv{pW{9 z>uBk4uqb~H2daRp5%wpNLzP)o(hxJmLUwP4LVpQ)R7Lz{mTGBQ-lFU@0u70&;9|;B zDNz1Zs-zasXOYQ7{?}vcK%N~^aEQllu)#A7^WM2AZQC7F?f6!fZ>?Ln?W;s+=Dqbp zak&WqwY^5&(yLyp{~W~Cdet*9S-oVuYPXl}m8gFJ59|c{Akuqa)A9AcG0dS@y1P)K zeSAmB=&rSNuQKQE;S~u6>_E>_a=VaLTd735wtOU~apMzM<0Q&r(@-NAD$vG<)~c`| z*iKS`Dq$Ke*d2jD8r3bM)owZ#LDCofE9=WwjutATl6>_>B?~3Ns6{}2kt-_g213IE zkZXSz!8Y{N zphi?Jb^1OfpXr!DX@f&E_M*^9CS>c2S;{FXtY4e@^~ zdRa{q6SWAdu8%lA6l4@?NaC^a{c0ES0;^hd8G}9#4VjL8Eh*alfR*ycAWvO?NYJ1a zS>@~OeYR$;fTkt~iU56Ddk40Dk~; z2majXAok@o>stNLN-c=q%vIH%PT7A-cx%M@u&z~22-lAUR~Rm_J%0$JsL2M-1Sn6U zGgiNtOUV-l^RXj<@iE1#d`mUOIrC0$l|YrI)W>0x99ki2f#4;*kS@@g^=M)f8;Ug` zLJ#Z{=FKQy4}15agQs3{xfEUw3?yPH_7gbW%_xMWFx{+m)Jh=D3+Ko5SxM5xC3sC zIybsLku#Fu`nq!!LCsxEg~@-!6%MSPc9I%BJ z*O*LX*@ez4eQ$i6`V)BwjK?~3ItcQ|qe7vMqhT$fEfE)>v)E3xBb^Wd;qrjU1v@a7 z8?xHTqaM8jddOoon9#ceTuJeqGKF0__sF%8vg*-2xlP4ImdfFzQKf(L4$y9hs?a>^ z;{$b>k)prU!5=;h36EOP^jib~Q*+%(i!)XV9{1xM$& ziPp2l6Q1S9>CU^J0uikGrGq$ilXR+8R$GFns0Ais73na_Qi}+PObD1FVeQ!;?Cfql zc~(#NDSfN<8qm#YvIu{Up!`GGh(3s#A$X#Ax7wuVTaF-^hi9b7_2$vK2CwRH(~cDU zuOnAh)ZE#VKZekUJ#F0g@Fc0p0m>Hr2!*a-)0ee{_x1KW%~($!26t9aD~FfPOcFwWl2~-iP2xt^0*it5P^ya!l1D{*=f?7n7tWeq*}3bYilB zJ=xx5t2b9yi@WFusbf9zY4Q>UlNcZ%D^{bffQb}YA*_@OyI1}Bl12U%&zSA>WkHN~ zjAf^pdGYE%Rh)mp3ASj2grH{Qi+)W5uNh^6F)go|>dc`hY)=(RcI~Uaq6~yZghtZU zQqORQ3yTA0Dzgiv0hiWqRK3!Q@g0XHE$@32p&qzAs8-2|=nNAP#eETpW*x(*dV=I4uL_$s$_9DPLZXzx9pH5U} zgnj}6Q17dEb!TP~s{noMbyUSlXwY8YGZ>wv59QG84g+IQtHE=!)f+R%P~o*)!Bwm+ zV-9>{Mr41BFnt=&`W!s=@@!0Oc@`#MmvMO5eYJGw?mT?P1uQoUB=5a{XqfH((dVzf zcKb)4cP@Vs@37VK1f6@D%~RiZ8ldF$-TADpU{F=qMaQQPXwzD*M`^%CHG1r?EZ?I1 z$GZG#Uxs*3-8c%?i`2tPy9{O5F)FkTu#rM9dx2Sbkc>L044l}kt1!Zr$^A$zrOH*4 zW4!rc*tVgrpx4fCYJlLU~4-{xHk^j0C`VdYME_? zW8V|UU~$0gK&0#Q)&&A9Mk`Y>%eFC{bg9zTUtK?Hpq#=n7X{3SUDk;3{F-2o=JLT; zjIfNFYesQg$Z@S@MZyQ`o3@=?znE#bk)aR?IzAQY46MB4qs?A3Y@Bt|P!S;2c$i?w z8YO==1iKw(SMICPWdLe6#f6s~=^BipFRdXg$9&5$P^$;QIT9NxFjz;Nkztk0AEEoJ zqHVX;{e=QEj|;kIQ&o&*#SyMfxv&+>hnkA=S3Pv(MjjIVPFV<9AMfEY!?KJcX)Y@p z%k_Tu&fWFa;j6>Ld;itmyKc9QBn^W9>nVTGcDq2@6eUu!EU8L%%aSasty@c!T`oz@ z0ZEWV2?S^W)Wv1bzx}aKu#d23{_h)nFSc>XOk@HHT6WjWnLTIKT_%~=$jHdZ$c)H{ z%coagE-usN)!*w_{xSTc+R4cYPt!*83ec>JD2P%;7A{WR$G=DGo-|&g$#(&e^I|6g&d&&v4I0ErXv_$qU zGklJPOl20`dJ(b*JkibYzI8D3xmJpon5sjG8vx2!`-_Wi*#^TUXjpj&6-3W(f;+Z> z?lWV{?m@f&SqEfy5SWG@OTyd7hlhX1N8QfHljHnZ2{$00k&d9}Sr4B)E+(Vp#d|mb z&3gXAAmj(7>0;~o>dLyRh=yEL73-2}MK}Jtu zFPUW1+J&E9y{gMblWa1*Y-z2ElP+o=0zla{>Y;KrPtlg)2D20nJe&Uv$j1|Zp!*4dM&r6?v(MddWi?` zQZh)Nei%A8UJ~G)12g3RUeKP&^}{Ve*;HQI=MUj)boEai68-xF5Q=N$r~%s5%+^o& z42f5qgBial^~Hl_Tp&R-ow0u>1W%f&i~Yt_DfuBzrYvWkd_!q72enGumegGMMHQ{Q zVx-$ezAx^A;2x#8<_61kg>wc(3g>GIfl z7sa>8ETaYB9zF;adi#<)i1zZg(uT_cvK4LPk#-6^ux$O3`$(ugp!$CWcXm~m5O$7t zjyDLZ=X^#=)$JcK$rw*Ojv8Ild4n@}2U2G!thFCI?$5hkf0p6+TxrkSI@o(i5d74x1;uK zs%kw_!|Z|(hB`ecB4mH-mMM)<31b(yD@uT9Ne^wbR*h8Ew!0)OODJK^b&70fN#oOJ zzW?y8;KlRST7F$nv}7(5UVwI91QoyU(QI?Y#n*dOgjSh13o<&7u4%dC>w#~7MSnq- zI>LPn9;9K_LqU4et}_Go=O^heh$XScm@yca*OHT>^jNk>D%yYL2m@zw8IaNeIk$E! zC`@T*$s2Niu3h~5=U=X#{Zcm$Uv@4vQDnm>u-xz<_vF$ozRs$?lvQthpoLo&$%U8< zXWFGJG#A&F)MHxKc}H~1hIab=P>G}^epIEN1!;9p@r@O7OOjv~7lFw8*RWG0L*OSw zX5QlZI?&Yf*5ZHi^Q9L#U21QPs$OcDpCp3g|y}26`Iz3svYW__R`W4QPzKKDq5)R_!&B(0aVIDM;&Jc zF^-4m>wDM<`X09FPP{*W$N;Jp*SW<_LNq~qSk+z!dDka(jE8Tz!m#PQ_S0bC1KMTF zaW9SW*-+ECdoU-Z{K)M`7e^6k|KzCv)Xng1eg4WGJ*!B}@r@yBX5!gsj0`JIGTsdH zCrx6W@v?u=ww#UK;t%h}vz!`Ig9oMZHDe{;fHPh&g43JtN*2T0w4&}_C3XJ*q4j>! zCrC3NhhFIAR%I3WOFo4AjsY> zq;1oAl4!CO@)GoA^CZCwcK9G8Bx67g$xt-)7P3u=QI{T2y7dy{GdLZYt{Ie~5Zf~k zJ!Lv7*F7c$Pc5FJ8Dc&!{JU~5=4@G5n?TMelagp}Q+$ylwrnwVg9BTd)(GUMGDti& zT&sUxc81EKL0U`wzAj*Qq-M5|2$yt{zr;-|NbLEpTASmrdF^GqL z|GL`;>;^+RFydBERp>F38^u&YD*&>Ru)Tj2C{$YAG(>M3?EFkvfp>)uK;VqpE(r{2 zxw(S(_3h@1W`3z53gaqB!=}9@?524#OJJS)&9mLp_vpjuyz|zO<|{{MO1GlPCKnsS z$`_hd8lbf(FxFsrPZ~-A=JxJsr+ajKwEIno{38qUI|npFZwnJ7de{`7`fY=3M+krG z=nBmut3S?nt{2U0Jo_Bh?2}mWH;=f!RhJDMWN)Xt|2p44-Q6j} zm%?5u=Sjedmqcl;{(T6YLs85wdb58~mnEOH3j$K=jePCoa-R*tZjg5Qu{7QV)wC() z)NX%*kNsTQ?410h>MWc)B&<>?+dFKtehSB5b^g82pat@!$AugeamVp(vB617=YwCI zY3O@&h0e}0SxXEjWvW+d6rJ}q^A?^#6V4$pPB>qIfCytCL2*Vm#V9eL%^`ot1cJnW zah{}2x&u}NFq?WU8bWI&6eu*LDBJOc1!%1Y9LyPp-iXBAAnJ#+fltS1+|*EhcA)BX zmNkvT4|JrAe%1W*yBGD&IX~;XM#SW%8+gB`DzW5}Hgl^-T-BoK!jl@aC+)72OcVz* zVLt(@Ul`h=9h5pjm5hWNI1GP~fO_IB6FUsZjS}ccBJytFa1o=8g5@Q224W15Dp`<` zq=ndxlVC)KTgq)JEb^EIMKodXA{5c405VGaFtB=VZn!^GuqdMiX?EZVeH!D<5i5pf zZ-P=I8i$4as@NkJkwK)*ep3hBup~zY3R6VPlMgs(S7dSa**rfz5cYpb?EkWfI%cw! zI*;J|5rnu(-y^>CX;S=04s4S|KOF>#MinnH3 znzSBJEi`4Hy_(rHsUes?DLNfJinBNIESfhC#piCv^fZ8+l{$ZeV1Tdg>3YP=mYhYy%@Fc#T z9_78_?IE=$RHY*;K&cBg?jM=g%37n`3}BTfy(i z`Z@B@jPjD~3rwZ7uSO`T>ki(q?X=Oh3;A1I;$-!FKAkkw;Js6EX)&pdrx zbEvh%K`ehmegL)PJVT=H(7Tf}n4bC`9Pe zuiP7wf~9Uvybl&G{+(O2g-+rgUx}hjfm@;>q%o)!Y(J%RN1SU-bFb2tO(rNscIdi-%lIz1J)pmuh*N z+FO#N^AIMVxEwC_-MnO)WwUzZcvO0g- zUL*&4oG)g)|3g823Nkvsl$-cI-{>y3noBr0{B)N3^1?J0Ej-xfWc5Y+#kXCT=5xg3 zzi?TkCy$Kk(qY`Ehnf<9HH9?OL!v;Tu(E|iOW*H$gF%AY<4s4KjAmC?S(qi=9B8uz z>rF@M(T%WC633;lS*hfs+VC{&FwZ*1bhyDq+~+o#m4muizLke5XnB(;JCYn4vjum$JC{D9LEBaoN0jhuSO;{Fq zVNIJt;39p~t;4u4c#!aXAQmFhI)^@~iBB=lFyIVLLbb>!;+xXXxF2O33sJm)RDh%h zI3TuMY#<-6rD<}jP=g7$VNZbg&DKaW$oxrKBcCSMO?=svzz=*|;BjmcZn@ zbng%6p5v(>`N<9$^PsTd&9WE-FX2NPctWZqOZC23A|F_~543x4Ktg~prKA-3Y|4*f zq=1AxUxSpde{TJrka1IbYpr3GrDBw>y_+~d87|;^Opo6A1^rp*C9;3>hI#gvAjxB0 zf)_{=mVDv}#y1uoGqPAIJFp;)hezo=s+#Uch|{1ymPZ;f_h|2o_7*ThJ}SSZ$_99w z0!U2HiFl_-m-%cp=i!$rdhkKK2m>0i55qBid>!F!Xyj*$ydf_z(X3FSi3-8DK;aZ}j;lq(x;TfVR~(q}|NRNM3jM zWDxwRDY*-6^B*&y5-PJmWz5%ATIG_?KZl0wCAeswUdz8W^mc#D{Q=pP2Gd0u9@DiC znSb#CNqAf+Z45^H6*4Gqb`3{|kjZsr3m_rSZKH6MWnJ!>R zK{C_f6-m_^&H^PLZvEE%@OmHPEy!BJP=T`jvZcbDM(YKtO5~#q3t>HWw)*`zAv;l6 zNBFdRd3|lQ!B2mPP|Zid$HW~eTKR9CZSU`EZ;TtLRz|j}KP}eU_rhE6J|zaqayE$I z;?kRFV*)G;Uohc?d2mDeTJ8N3dclWtW*>;0H$3ea{MZT)i{}}7kLkfF0C+|+fKTV* z@$yQmeWf44c~wK*_}V8MP@~_9mggNZmeM3pjCfrPO2REQqKjws~c%O+2sw1Vf&Ln%^8X!h?Oh$;U8$H^t@l2^C*#uOMGJK_Y46HnnORFevkkg>!n zcO@;00ny?_gQwkg`^EE(xs-?{3hkqjHVU8U8kB!YqOW>1I-(iHZeXSI5;0oB<6ASY z3PP!R&!kv+S>ne`kj?}WYKWJ*&fHa1l)kIvcCA>wr2emdBI`bOC444%RT_V-;uQ1} z;CTxJ=uZfvPU-bxK>rnE5nj9x>bW^)hzp?DB@RE>LoYzA@jHD06cAJ;@XaJ)v_v`shZxn?ug zFbcCs?x4h9wDv}y1uWL+3c}Y7n!L+N?FN6bWxHmib%+~^%lAKK(KQ}eh@0XLSbRKT z);-Jjp7P_9Pm3$-?X~BtOZ@nRSkJ)E&>K^!Da;FKJs?l4wHi)qsl8&k^Qgqu56#HM z#zJsaJuUyyY}jX|8gOe&0{O?j)JsiQ-ea))K%p@#a^xA^*jWWG&TrSxla{A1}mZ~mgZVz0CXFQnZcUh^`*>PC4{YZJ`ky%4N5 zPEaq8?;!{seg5AKjVFfSrerh{R)7HHkQLWjB-$AcDf1%mx z!7MH>Ejhmmwo5Sm>a6IN{P?F#TQ+|!lP+N{tZ0l(A#!ZIa4W^}k}s*%)~a%l-scd( z4jm<85h7SAQ;k!EPyj63u1z2EfTv=B@~eDjQTILfowhE%)tW45mwjcf z_2O7{_qWYbGj;&Wl&og<%39%JT8sybshFftUxgR^s{+;1URf3bSw>w|rILShNR5j4 zX%t{lDKEjl^*1A>I}m&(Y`X(t)TsA3>8w{SpI>Br^R}l^Rpcx$BOd|bLB)tnQ;J9~ zzSK&WHhf6ZYB$-Zh`O3aCNF}eYsw&MMo6wI2z`^H$MXS&6r%H6wnk~MKdh6LhjyaC zU-2FY|H@V_P|qUN5&PX>*o}XX?$Ft9O}|JKhPfq=51LybEy3K_XhyoSi)lDZYx4X< z6Vw%v?P?aV^DC{w@a0pTMlpjP0Dz3xT3TDmYop?^!7rgF0EM%2be6Yl8+@Tv^ukf_ zNdJ&(s8PO+lYw%bLLb5q4F{RixVC;YypvmAP1$GD*K10sR4C8t_ELZNu7prtdzxdu zwC(YuL`}QLBpgKOkTZuA0V#?|bp@>m$&o&hzepnk>(4?w7Q_onSKa0Lhe^FGeNjNjL zW^?ouycy+Nj4;&s5%qt?*^lWjiV%nm(MUocg5RX6@6n5-)rt{@vgjILgU$}Nad|YK zkf&9IEUhzS@v9;s&+Wr_E@^hP+`O}QWY*F8Gcx{v?GOKbhxUi;;7iIM^RZuHZEwf% zb>J(L-8sv9TxnBE*#BBJIHjHz8T9} zqM>}l{+RxyU;uw;lSCbh8*`SNbC6Md&VRMtda)Ja8mbj>+Sj`!&Qa>8ZfSelM79$#EJk8H4%;K4(2x$i0{ zdFg~DWL%UGaW$uf2h?_KP|ZIZ%;N?RTk7_M@OSs}okxFW8A}GG+t0x6YNT1qos>+3 zt6$$s`eWVW)W4g5t~I{C!mvfz=a;|#{fk52(_j?6ynOa$p^m@C@hnMSl9#hT+h6M& zRAdrF7|kV5Mt`9BK|%H}PrG-gdQf`^9A#MW4_iZ@Y2@e4?1E0e&s=_9ztH-Q4oku`p?;J4 zdWuH;`Cusr##=Tn6f+5?hJAf3yfX>ycX2WY2%~w)RtjE|kaG%O<Xs$&U+9CJRpne=dD}@^<6N;l`7*{C$JOqGoiM>6D?q zKwne*qEA8IPu*EifR`AY2Ww>DB}8STNo~Myw8>k))cnlxxu+SSYaOC#4BEOTX;uhF zh+Ti~Y;|_KZ;nq7w>oFtovn}EH~Xh&9iCTFi`Rxx@bLJk^OlP$Cwvsn4u?Asra@}# zmfrJ7c`8JJ@^3&CCJX_^+&o4h zH}rTwkEP4ht;5BWL+6<}t2R=vy$Ud5Q0;%!#@6ANlf$}*Yqz!V`_;4htI`6%X1d=+ z+vI@tF1N>wD(GOI&6bI*2T^z4WgWAJlnsmN$>hmEJ6b)&Tcns<9SG~P|7O?>6O9@x zp_+w_#i|&ekB8b*)!4ebwVKVb0RKtTDefhiI}=QXWLy|5@1Gym4I{Lk6>MdN?V zm7SGOCtcb&aU*UE$Ie2?;iYkMs8?dH!`>u+h|&K~U!P_#vncWV@hBpjBH5KNn%+M< zc5qX6JPrY6#&$3TKG+clf3_O!uN&eMp=e$X00JTT0f+*oznAz03OGL^hl#O>120)z z3qJ`d$SD0JPT2t(-f9TbX(#d`nQVU@$G>YVZ>}`HF7P)Tj`p>af8DTt6|%vft6%FZ zBz(t!bC;`s9dCU2hOef-D6hE}Zu6gxhuLwhG-&xifx#*`?>gZqA?3UQr7k?>1d&g$I8*CBU>M zDQh(2hg0aZU$Y#0MV4dDL`!NyQdUWLlD+Y!t*xW=nUg{u?Gm9Ojj0P$(OL=sD&;Ru<>Rhf`cr&q-S||bo}9{yZc*b z_vmc@_~^_Il3vSlcC#Q(_{x8u^(dT5numnSgZM#aH}o)y5`Ghst|4fu08a_W&7cq# zEpk}&jArqfYQ#w3whXZrkViXS;ovM^lPkeet~K$fo3ZZY@w#jhrhF+|1LFIV#lRNo z7ta>1i2Wdw_;Ty}*Iy=al#RdK1E;Ik()ueEEL6tg z0hZEBHSx@PkB{#YtYxnRY{$ZDAS2xrmfGx^*YK9EjapqT;PB}ew(=4;BK(0NQeRf# z!^)+pH~YIuKAuwv^K@>=d}uF)=VQGXrn`0X`kq>|1UVFKEa0cgpir-czA?>+JGABW zyaD@2xeF#_VDU=tk{f@4E(s5XZbc6+PE{G6r<=~Q<}y3fTSI()cVny1&9R~LtTZnx zMKB9(Jbn5n*4Uu7zLwktGF3g}7W9?S9zU?IdS3ea3N2YEm&y%-?hsD|F2%t{AY88bQdq3=0!H2cvOO} z-O(<0GK159FZXwCvP^!B$rfqYweEZe*C91k=@O1r%T#8wz}G2t?tNadu1S6%RY)q+ z;K2dShXzX&VS#_NZ$gsSE5PC1S>Vusf2ryhjAO{KHkaaRF46{@EpIrFo}`bQhJ5G= z&CsHdb0t(U(zKc!UXq_*6&n2?L~g|=U9d&<@dYCCeuE@VMHpI-`)7+pIw6S1QK@k| zc(0Rz6c0lZu(@%aI%NyFI}<#;8r^TBidSgX9C;oVgh+n?709mO1{`ZN%(*FCD{Ciw zQ?w{?KyBuJ2Bem6lVQFl5f6ybt?F-Q)Al z$$6){zk?yb{#5vHZ8!_9R<2iQ$8f%<^!21Fl%TQ-AH87i-O*#3G?$`$zA$ z4)%At+;5j$JXOx!LaW}qL8&RwzTVtH@c`@*NJTw9}(gBmU5+P0WD=IMdN~m zM*l8DTjkzl+MUL!Vc=c$>>umY0)BM|U?S`FDN-Ja#3{LVp?Jv{EP3f}2!ExE%(E<> z?q{V9LF)uBv!zKm2PD=Egvehjp6=mXRvv+Wc>ZUY+CgE1o0wYuF$iYD7cIG~rZ1$Y zXcy)|a2e=>&R9CVQ7}32^y(; zWPbMg@FX`mGrAMPm;jR(4MNp6Pd8|mbJ5bm6PHgw)|Os6OO}R=GNMs^{jj`e5%bi4 zk(EVC{oIN~G|S3s6BF6zcA5=9Ak{_CIkC9D5p%5=b4<9zX{~0Wz#f z*9w}N+oLDkBR|tRnK0+X7ls8!QM9GQ`_*5aWz)5o6H*AS9wKQXycrZwg?}LIBM#-8 zBsF-97hD$e^;k{XEHr7zHE2tVX=9>)tT!7%V>-&9Rn$yq9h&3UURe??RDd*RBvsHd zEM=fmleRRyY^N!=`lImpnPVXaq)RMksMEcZfb8}wLODa;_c56z4z zTrO6YomAg9T?l52{Fs<=FTE1b3Lp_)0=#xtfcCBoZO=6VOXLe_*3Y_AbT;pQJ{i2m zLoTxDJ7l*{@5r9`v9q1TX}X{m897-E<34&|`l)&aZp=Frk`Z`dzs_+yQc?R zCnvi*a)Uf0IA@723v`Ep9}ZFs7k*)^shSGc<=TW@5U@EJkDc)w-912s*e%KqZr_BS7RT*drB68!!{C7xq9Y0yemtbd+npE(b`anG2eoky zt7Ph&dMRqeF|hX#gC#SxS4GsK$9-{Vu}Jh(`aBA)^QEVk3jWWZv;WV3&w_!j2h79m z7-Yy{EtW+m8H zb?#dMjjaUp6(e`p%wg>2MZ41+B^0*Whh1Ie=D^8wnc(N-z$Q+IoLn2K+pCgHoUa9S zMq0Wfiz9_4VO(^#1XxeaIQ*y*eaxzfE7VPgtAzSe;yofzw7S)W}!=eE&uFoz0hG5CCu;V z{K&ZF-KPN+u6WOnln?Cg;n^OlnRUrbD$nxxITWb_QYCKPAHfYzws2fiE5PtQga1}T zLd%K`0L@VohMv`;FU{>+Cggz$Ggf~?T&>v;*Qd?tO{E1C#nNg zNt_JxH^r8?&fFiDd@9~q%KGH?=ONXp;8Q&$Bl&n!A=68L0p-6VzIq{6dNJO*RH8G# zl0nvmo!Hn9!!AEt)8MCsfppj)&bk^zm9SGmJhXZgWd!OQS1a0C*(>WO@sIAt(DfK} zA$3%!6qOz%>EVHEMn^V{YtUfElN!$Q+SG>D#2qaf$Vaj1IP~u%F3e{u@6bmne2f28ODXf~M&udQDV#Grxa zGxA*cj5}1u>^ivky{lV|7A^(d$F{zu3Q*QAFRfyKvpL$j4K;pQ$}kvxEN+r;blPK1 z#?Gg-MwROqR-9Z(4~U`z!Vtv-s!?-A1TjSz5vs+_jlKW^aSv5#%I_X6Zn?53-HLK` z3SOCMY@M6gWFH=)kl6*^Xg8Pi&4(SCs1t#CC#7Wzo4zrOcT^K`X7FOZxg>)(%!b1N z!G?rYpq-v#t>$RB(B(czC1{@CS@-}&Psd|X|~E*a5%HYuaCkv=MCQT#*@oTpC} zq~_v%(rgcf35RN_At05jIE>@#*|du`b={02;O1YUte7NB!#ATSZha9fA@Q611hzKg z`??v~H>=vhep9z+%cs^w^UP>A;n$weYOgkbE*ecXV0~JD#Sa{W{pORje%Yh&hXM!$ zOTYJ^Eta?oL2RvM1m$2mjXrYh3)ahhEul8e7>m+Ch0^BSi4|RCSKZ|0RTQnMJh$b+9 z==H5H#bJ^0n8@izrkGSiUYH)u`hiJZ2i z9mU*hTe+U4oGmQ~W7T;vs~6;1M(c+PG+ZlfJx9V<%$QWx=vCFI%Nz^}dWK(FqgPd-irI@YnPl9eh3GzOqKIszzmhMr;A! zEKml2&9KOmD!Y<=pzRv86YF~&Y5Ko+qa(e0li&N~#vjIGrpp0H2lS4~cGAoep~O^1 z7L_~Ob$R1>S5BH#u6F-f^8Hw@_Lh_%Yvq{|hqxgWchZ5E; zy_Lbons>kb*Z*}Td(-Ib!p}dryZcBb8+_4{w#+jw; z*eE-900`y9^d#87dJwFYeYWcLx&2(MtXmr4P7JB51~Nladmv>K%Qqqe<6qlJ|6VpU=ZGa*PY#H6b9*- zjjh#bn>)ocT!-v4;b`k{_l$fA@pCyX^#Wm$Mw`a1mKcrJUK0Vhqk-TPOZHnb=k=$- z8BC0Lypw-(-9{n=Rg3Q7Fx8Ncg( zdPJ{zf&^FI8j*+2K0VT`(Z5B9yXvNla!uQNajIc`3XY7`Bl5O?4~vF=COv295jg%R zM&M|ztSSDfnR4(uhZL{dYVIH2jaPo}XrYQQ==F1jVIM6I4q|U`5cCo+xv#mH-%R7? zs%vOCg!ZV^fmQ^~GD}wOTH9nRE^N*7pp4DdGQWP|@R_Mr*W)FH+D1h4*_F36^vmi=x;GnYxMVMZ z+(DNOpK55VqqSC7^`woU-j{v0n$x78g|*gm#K91ih4lXiJu?t%2(@;?+8!4Hcc!FKw{ebjJFOGGp$ z!^=7@Nw8fkwDKgYkuBPQLLp<&@>VtpyXbzH_Eii?#0>yj89Q^FY-7nL7Sh|q-_87S zdQ&_Uhpz~KqO`2@(mei=F%OzpOODuH0fV~u_p8T0Up-rN$=P#VNDK8Gc)D-HHXGD^ zj(m+vj#WI*tebZKu*lVvg#PI5`7I9!2+y!J>#==7_ zjs;U;Eco%jv2Z(D-M712J2FI--Ho5f)l|Ny zcj9MYRqyq%)jTNl$$96m?*bZib6d=AoS>z;U%LUGhSJq$%T#kTs7bVk6+eUMMik5m zSQass|4sE1*c(>Dk(KRD-h*zzP7RRPknNQ_fuh>Ok^2*wGMWNaJ6*VynH6TElFU0DqvKl3#k`x)vW}U(@>R8?Z>B<@A3kb`% zcb&X4vhWX5OKJGW;9jOr@1cYb^Y^O$3VxN!)_AJ=N_6H zKv_t6c-x)t?9U)9=wpl+n*9|>FOsN0KgbHNHsGXDfAtsjF_-3{{S@b?PZK|w*C{R! zH(wz5XD$-_`>ut8f8`firIjDl#k$Xb=c38@LK%%GkT&_4hG#Q;;3-=(V95Eh`{&Zv=AW&vf409WSGro~vgMN5aS19sU&!zH zBoXD%QXyj%sJ>Ol#>kaF4PmhGzZOF!*c9k=hx{L5L0A#XLF7oeQ}z=aIK#j5`!iOJ zz}E&D*KJ;0X#y>IUrD7u4fgSW(hDNG9m88f5N1MrsEX07Zz=Ra5IHAXowp6)yPutM z1X)Vs;>#*IvM=(7hZ-c1g1Vz9rR5?Vs#Yx}PM)^g4R)nBXm3?!jmN-J<4yb3&R=-uaqk zCj9D(0qE#<7v!+qE4x{}e9xKq;<%^#8r^h-Z>X{wgFV4$hY<3Kg04@{E3A{xK6eXP zS1wSn3Whj~qzfQ41|CuTZ9S-j3>o{NFd6I5pFgIrIN=zf zvc0taVr_l(c^>tKUY+8@z!HfW6L!IOu3LhVahB_f{*019b3s%h#bS{Mk}Kf-_`LHU z5v+MgqTz}=A|pEVosJRVMMmBid1*fg+~T`hb$rW!5R4^2o#do{ZBn)5Q}%jOv+6@u zMOg1f@bn zW*P>4pS@Fw*S67rjz0nJpF^R(%?tE3@-eIte?z0b213#8d$3jME~;s1h{#!7g)U+F ztEB`sB}(AeLJ8Fc+9t~Hx-6m+EiVRCO=$}tI6Y%Tce%G@^|!~)vo7)nB8YDUG@4D2 zzoEK_!#oM&4{|+*mtw}~ijRQMi*YazW5%YQ7AhFU(J#h-x2vEnc6A%d+uzGgy}hyo zufk6oIoKxJU(7;^%&G3Y^ybakDz{u{Lz^E`wu^C<4k$)7tAiIyO`nQQijb41x)NdvN5Jdr-R2Sin*vMIggzSTI7G z@%?r%zd~ksO0uW0A;f{JGh@12t$6uGxlqNfXXw) zVe1RM?+tC`DQekS|k?g6o z>*c4~XdsK4oTxaE+y`uaeNSAc)Hd=cjgzC@LDvs`x^iQ17IYXZ_g9pqy0l_8mHwav z0<%hLu1XLfONd(DV?zzPu=fi*eBTD8MrUV#f?{?rv~uO3=mv^x8+eY2xm;J{1!(J_ zYT0jN^F|jo^Lo~8!QOyAz75ryJ?49Xx7$Oro2z?nwUVRL*%Tu#qIrXO{G&Y)BKsju zCbJ4SbkPG&K71wgh(;@89=^&JX_uGhy4Bg*SIw#{^d`N52gi{@zbaZF+KH2p0F9Dv(X6s@sls?(>L1= z*4Na$^CMhZwSu`~nLyOtR~e=m)p65h=*X&wk&g<)HjQfXLF1d!Z;cVnfH-(a_4Cl& z@<#_eui5O%r(^kDsGo&#e^V>NDGC#R!65R`r@V0oq1ia&P3&f2TD8{5d_*seA(-cu z#{yan5^CmDpnR?TF!4rsH8iJ+EW%i-<08SC$#1K@LAQsx9K>l_ zDg_Z16wvgH)Jkk(LLCm1V%h^W99PVe<~Z&3@nQG8^JWd-FkasI!^^u~5B?i}x_bB6 zmS$)t>s0kihI@IToG0gyNo9C-C-^ECApQmaxpM1PS9{tmm`RqxsU*G*7jdnDoXJT5 zzDrkl$F(sWY!n-~Ksf2`CI+mDoQXHB(Zn4E9huvws_^1V~S(k~NjmnUVexgQn(lv-X!=WU4f zB8tiv=vrd6QP?cvuC&I={Dhb5eDr;iVX^B4R7tZh3Xl!u#kC{OmiQ{-+iw2(RbUdn zshRsEV%@UC^gJSYKc3zzuM4V>9J~0L=ZhEO^g+s?PfdCYF7w6mu*|N1EKZ&l;6OCN;M4LIOJ(P4778rJYnZ&IA$thkwjVi2{!cx(%FI++A zyHpSZ6a{^X8X;$Mfga8T9?XG4wThnU<+$16nyf>=_U}_V8PJ;xr7QOXx^6ocFGFBy zk&ce^sX3xZ<0GDlNRab>_J^7V*vs3ZS|V`648?el?*SEmQk`S${8snhL=j;I@kABE zv;D}A$iw%b$-_KFue^Xqe?w_xS*H>B*^nL$jk8I(2!gO8eu-3Ih+PG2S9P*!^e68U zbQj>beQ(&v)PBXUwG4D({E-tH$}pV%*njz}J9`(V7;ixoE#m_eDb#yt_=} zg($Q-W7k`$;nfzfIEpQ)acA0Re0s8_l`r7}iwGA$16)6Y3rM-rpV^cEqjiXNxa=IA zmVr#6_NF>T*;%)imPw?gvLQ?gp+HWA*EH#qaen51Cz@pv&OpIhyKvl-RjM$^`FIb@ z->%gDjc&8p134sbRMWS3K!6aI9L3el2VV{6oqsRBsb_c%XCGg6()ZH6W|}KK%GY`1 zLQ%tnKB4B;ZWOCq7J;xDmpg%2 z><1U@`C0dLtFwQ!mq%-I_uLKXH`P7aBj*Kw>eoVR854we7xxr@2#+1^(Kh~CYy5<7 z**ovMCtIhxN1d&M?%w(S&hEkf(XQ4>=l#M*tsngP0)D^9fA5*uCxzdw73^&#PdMDd zgcsa>{=xy3bzv|G43`vIV1+;z{3NQe%o3@b@t<}pSJ+lCt?zgwL1g3#1@lh16aYMynGURmMkyuau!T)nD2N$Y>dlaq4z zb$zkC!B5_=u@n0&*XKiSuXKTPh*C^$Ok}*{)E>n1^B43tH?849E4{8P+`;2xi}bGk zZ(}vrUTtu!i_0dz5JBY=`7C&O!In{fOAG7W=HIWL)r<8m)2BcG%x*F^Rjqo#I3Mya zYr>aC-wQ*u|D$vI%jVPiW&M{@X#j%WfnG*ePwP*~;$9oW<*3jKddA1G3!MBxK^zb# zI!d;W4-Wy+-P2vN0b9I$N(S|RyL`G>Z`Pl_g3m9qPZnj*-tC{r;%rF&r?57E{7TOQ zlo_x{-ORg?agaK@d%LH~@ro8v2~GOb`oC*S7k9s1XRX`MLo_FPq1NO#uuB zz**Jqrt^lLK`SpFQh!ZU*W8z)TZQYJ+C*EXH=2{UCF9(E!*7){kp1wAmgFw{63xQU zwcpm>XmS9yV0aZ+d`b~fim8i#B9(5L8m_fn>5@W1hVP^iIC?|vJ}N?Uqrb#Mv|U~{ zzu=qeT>E4?aKS%lX2WqWFCV#OL*GZ2m+qqtda_-vcXnUdNrBQpe$;I-nx!4R41&YOkbyO7vq7TYCfk9kdWNVHL64`0+eM|Q+Z zz5Xh%CH+Tk%DjA-?i_x_hdYf)Fh?-?>Zh3(23g>zHU4(r4F;OJ6=R)Y3@eNl7W75w zd%g~#Yaen#BVP_o<1`J>OkJGVq*9VPs(lIu^*N^&K?)ie!nw?UC*8vA8^>(X$U;k} zF1&x;*?qHhe$c_-jGe=i1H55)B7C!?3r}j$McRB)!-pBEd;m^T6cm?;cxmQ z~mJ^XX`0V|Z_z-fXzg=V$c0B}Rp6N))s3RHZ399}6zP z4}ruvEs>$n*@q|*Yt+S50N_&*obPe&4?Xedsy7>x)n-2k)M~cJcgx8qhfRE& z8<|-{lPE54K7t9k-f!azwn>&Rmx(3VUg=>bzl77A1A4PT5HC)qc)D~aE1o8(Ja$fC zq-0RCw6qKhRTT9{l60GsX{&+%wvm+JbGhlf#e4F9SxTA9fFi9qy2Hl1>q!jwp2pKz z=p~MBlji1q5Ioam0gn)v@<$ms5UatOdf_E>5nXZ+&X$am%y108s4R74tZd=f<`)<3 zkfa$ylgy{&+y0UhKzDgGog%dGsXGNrC)3Q&vS)Xb5OcFk&&)D!D02qGyQ!Hs3G-U; zspZ{&EeyjO%)k#L9j0(WTB!H~#@W=@s}QlrGDSVKp zkJ5^C7=#$*f^Y57hDFsD2OVq?|B+7gzjS#5rhpp42{iD4N=RCTO z;@e0J@kxqm=OWu@6b=5P^ zj4UCIFx|i#+3JR^{zRrSpMq==>T|&QC(fwZ%pG!XW_`_IuW(BXa;n!K~kh_qbjT>+baV#^UNGSKVe zLp=WHfjw(I)0DR%!#wFX##m-)iT@k=@SiHT++OJUrLw~zm*YBG*|4gtEYn)GmNEK- zGI^i5{<;@WNK1$NCJxis8#Kh~cg9esum@83o4hcYCsU~_EijbTIvW3SqYabu7FwNW zY^{@xu2cdh^{cD7Gtb$74IC}AxF3f#JSdXhS$gLb8FUFNviKA)b8=3p%Fa6m$wDg1 zl-}}%i&D7?Ze1|Zc9U!}EqelXI9;I3Qf)FxZM87Dx)OY;=nK;IqpQiYmHDzb5uzG_ zju@8yF*yf7mc|1_xiF?0^ZLz~6V0?g_9wo23lQOr3wv;3R^Ls3FzRL@Uf3y>({4RLlJvCCVTkL za3FZf(Tvnmop{p8p}MnipOE%aYjqOR^E`|Z20IY8I1vW+49o@TG%))~YJ@0vL8RnH zwXU9s>qZzFg9l%K$hQca=1L1%GWJKWfP5apsew&upjOoO@!`qV>HgXAQTO;{_jIds ze0pZyfcy#q65jN9S)4S(Ogj($x@lx-4tv~}dd^6%^wOv_(kmG`{wFQxZ$?(+%cu$X zuS|wL`Hlr5#5smgWcA2hUH4*!!qByUPdeSMuFDmw*?5Y7!KEk?6=1C!L?VLZOVr;M zJfanStzoSo%77N7?=jS>T)&$fj`p(7^u*u&{QLdKtKike>)sW#rKw0{b-LVpdGYAd zy{fC<1DJ1Ylr%HVFSS>HLrpVf)xTU`)|>Tbuj*P-sZ~|~Zwyx*M-Si7-N(}$1qL$y zo@3uNRQ`B>mR51T8dd^oq9IsKos&^c)n`fi6wyf1W*!h@yk%SSc?7O_D&ueApV!Z3 zUf7lXz6WA&P^AGX*NhXK=jn)c>&AQjf?1NP@{q#xo*Sh-Hm&zUVNM+&^AfkKcmSkz zia&^7BtaTSJdB|DX5N$G3^0Tji;f_SqH&nkkMx;;WcFHY3HsG;pGCJqSLJB{)>6Ot z*#5yjidwCuwRYWnH*d^S(Q|@AFR!EmdTqv9dLT`$Wy1)nd@o?okTgWA0S{^ryRn(r z6)nI^CGgKZ7L@KhNy+Dd9(!0~l((zD;kq*5FlDcNQWQ;B(JO8yCA!oTB{q!?*q3^- zRkw71h!ft~=e>Wnz*q9FVE=2A7 zMjrxerFJSUB!9416ct{(e?i|5qipy-!T89@J!@KFBgV%SN*$ZtN11nj z*EFw{YMW?l?x&)6;{IfomS2^~tD7*)*X6tu0xK}`)O?Mzj)XN7Kj$}N+?FUp&O7qr zx(66h4hs}d_;SXr__7t&24=YLDDNWVSEx%iEam$HN_HE? zk|3U>Y)~}CDQh-~9cmynG*lYuYz;eqrfc@$-L#9EIXKx*lbZTw8ic6i;-S45%gnGf zrdsiEnEDxpdBcN769cKes;6XloOh;{q%F*uaO(NZ6G%Iv}{guK; zG$=fJcb_b^2OH|2#*?LGvi6guokfDUktaN%1PtlCxG1_>+N&7uN33he;PVxGp+}k5XWK(@jmb5(Wxoy!>`}u-IB(Ut6R{$y2;# zE|`bd>nTFg3#W6-=JUmJl|VVoNSeQ*l4>wY*ZgX-W3*1^@Ze-O^ief;g1kI2-J24U z`1!e;KT_@j#=;m~Lik*Nwcu;4i^e1PGExC^ah2N-^ScO&FGg<6GH=vyJbKGkJ_|!8 zoqoG_HA3G;FF|44#gFodf&FudH_Wd7t{VUBKC8Yl7S(i)zhaiC$fNC&&rco>Z`8a- ztY;x(a_k2n%95TdjPlkNi?BSPQJy4%wOG3W!?m0s$(33H@-EDOOlgVRd&J@>wVJr$ zSxqzFCOX~HabertpTTtE($-pmdCt7?#5hC5Kq z`k{T`1;Y1tA$Ey>hjuaqPW=6yh`mI-<;2up91gzGsmX(W?Y*?qlKd;NAGEwf&vtIl z!ZRuW<(*K2Gsxfo*#ACAgCB-8co?LGjaUPBhPpJ^%)Ui61&C)q4DqZ2V$@#8MgJOe zAi%=NyqMBZxl~!R8W?KC4v)bU?7NQu+r~tyhhdac8$ktsA9?_2#$IACZ);tmz(_4u z7yh2B5Ln8no5BVK8I_`jUBr-=><<$&Y$8JyjMI2pv+tmy2tUL?`*Ytml!^`9B*Vog z=}Y8nqLyvbE5ls1^~~$BFnv5Y1KH$gjj^qr@~m*@ep_T^0ivQ_y?jUx?9+^3A_2sP<>RBgKXdQv&8qCqG$)dgJ3VJaC4jdQLNt_`Y?<3 zCbC!(e)mLFEAwMug= zr4;i-X%J{BD4FFjR%+Kc_7+5q92LMk@REFg;NMAGDB>rLQp}H*zM^|R`W3`$Ql-`` zTxVk|P5nSmRrH~t=kV`p0V?SA2eahCRiSJFi`obtHcc`RntOA{$U^ic`^|RVYyCmxCBTK!ngD@Fuh&g~ z^H5i4660AO@GT6w7;GYrYV5?gA)iW$3`bFk5bc^ee}@EU($= zY2~F$Tx*Y4syV|%g*37kR~q;n^!EW{0NEK>J?kAerE>|*r`M)(G?DsPA&V2;ch;7% z51a($Ym1Sty}F){VLQAUndmVO8U8Y{!15mkBM}O-i%)wMxB@)skWR%r^zW$LyqT9p z9ufz;OaP*GgUoHsx3`>=#{fAyUR_>4&w?;D@3`~OcH*8LouQB7n?>wm;3b29bTLR{ zsJqZ!ghm$VTbHcKo0*7@*$usDgj#~a6I~Cl@IB8^a(F#T>|Gm)^s3RjG4uuAkP?Sx z^=nGJ_Kd^{B~HdhBKbD~Bp8VaCz{ns)!>=$Exj8C$t-zKiT7s7&y;9tXnHjEo@WfR zN5ky-hNh!OFNS+FGjU9bfia?gUciZ|kvQRw43K&ecN7_kF(t;vW7QrZ1mr3sG3Am* zM|~Pm-!rsJeHu}JY*g=$Inh8}pL*{X+N9q5X77FKz3-bPXWZt@NW9@h<1uWX=BRJZ z(SU#-cm_fS1pL4^+8j`uC`#&yG{u9@v7YEtb^q1?-X|589~!gi({%WMkwJ<+A;h1W zZPM7&sewA59{2jGfq9=0;?E2$4QZG|&rGCsG&BipNVEjUJ|poDPW;1ED{`9#oI{$p zp}CHR_nc^`FGmE@$W&F12ApVAABCJ~U};3C8zlyuBO3c?X23bR;p)c3jj8vsXH4;! zCT{Haj6_1n*hI*f#y*~Z7-JvP*vE<4QN|q^b2KJ6$1}4{!qWKOK*;zrgJkf!fPfDo z153ex6OC0I(1-#P$pJBzpl1Ld&@h9*ctjr%Qw^pDvkGYJ!N9DZ^3!yKmI4}kkeP7O z*n?{W^MBBY{+JpF`GY3z56{5oHI=+J@p(-nx{i(N*EFK*zySV#nke~tW`J~k&24@* z5<^ZjMs!U~^?GdZkn4y`n!U#ik}+}D370g+ew}inu{N(~45wNBhTAlIzh(Yumb~Y& z8;K#IE;LaW(zY9B#@Iu`XE-xfTuAr~1Ecpa;zVQYVay#F6cT1!((HZ49T_W*{XvB0 zyieGFhRFmbw4qFYJYzRxe-M+zpyUZn@#NZA9l}e4ImMHR9Vr+inj~D(z~_V}Zju_b zG|3oFW0(_~j>)}IGNS2-Ok#+7{M_0=NJL8;PJTurE$zrRJZ(fHE@@ysqG3j%G4_at z8AWEvn0q&d8PV9Io`I$4hJiQcD57CT<}hP=Kpyvv>4<568ODE@iL|)l#2~OZ;Y70} zVLnccB{L;_PR(UFC1RL{M)fHnWEvYIno^rnbKjh1T+%?uCnDNUGh;du0zQciQcMWR ziOJ`am`j?8GcIZLp4{>(HcF;6%+wraN=QxnUZ*qpu)X`^iia(Dz(P;BCk>Y11dkgckf6$?v1JzIh zS%sm0SF$!b-K+J(RCqVcF9aSvdbG_ZoDLqhXBcRZOg+ip8XV0XJes%Af1mu(UhK$+ zxA-TY1czx;o!IG00-L$mXiLAHR_G9}Hi7sbKnDQn@U?X4NGXNwlb7BGbx2?7t*-%d zm9O)>$|gqytn_h_cckBtEVouytyd&(a1i2uj)atm@%1nwb42{L2vV89NVn_B{Q_Ra zP_?c|DPN3iy+Nwj8ji+Z6yQCJPBL4+Vdj7RA0cX}_fz~Zc8je8svP#9u0eo1zjMaO zPt1(1Gs+;(mtN$Yd6U@8-=TaECld2Ow{^@Jqu4yDZS9NnSr8U-{>3?&m-I8}&B)t- z6L|rU2kGBmdr5CLFbkbhp=9LaWxJVm$XOG=Fz~GpoH6T}$>)?jOS8la3pF|_tB}Ds z{Ol(^FZjcpnAe2H*WTEhm_q#Pw<06)%w6>L4rfGg(jEAz!9QQW<~-Gkg-qhKcd`k$PC9u>eklk&%j@y1K$5SC4qnG$a1(e9 z=OmmZFgNrRCUnkV3-O(JXjJ$YSBShIfu(#FM47V-*oHbYHoZ9W%*lGa#WhlxTPpC@ zPd@vj_@+PvuRn0P3^wgT&U?<8-T0YUH%2xQ*6YOk92i@{K94O4vLGE}yodmQmdJ76 zhkrYM0?Dy?pYi&L%g-V|aCUHtQZF=Rh1W#ruV>-NE0EXgH=L7zu;)2%Jab2Wy)SZS z0EM3MjtFeqoAly=+2Hn}$nlfd6a==nI4APVIo^KH=~Lf%?jfw1~5M(c}FET=q2}#KZ*OO z6zD5Nh)3Q=wRc=CzP5sQ%DJ#WoYMl=+$N&f{;&TB7TMs^-M@(g^SbnZEmuxrfWfRu z{BOI!6}LZdYU2IZ|81V!w|VyOrv+BJ$ z+Wj;`Jy-x_y*CRY-+*a)XaH9$a>?2*ZThM z)D8hOp#QXP6h7v{N$lIm<_+QZO<*3c-|Ta0R9r1@Xc%u2)EpTYc*E&_1QQISFYwh9 zJ^LgM?;}4o$JEhFoWWd={Uqm}fq9X?M|^3|>zV9o?~s#=>vNBPP`u}ZtW}V9L`DL< z%3#oY#4Pv5g<?OWmK+J(mFX3`;M`RV*>)r`v0BQPRJe!*B zor^qUx7h25R1j)CQ<~b_<19dD>YIZ+;+!I>?tRG97hVUjHyPJXdmlObzJQ#!1jAb| zFqi3Dnv}P`mq-Zbog(**5jp7}QHpVZbrK_D%# z(SM$BM&X+5p9IuD(c0E*hZxO2K@#*l zlbYTUOz+^V1Tv(yZJzk?H1sdsvBtY1P4T` z2VSg!VA;-pjVkZCN_JzC%K=IA2RGxgzzH1UUC-xLK7--%>@fLj|&I&We) zdL_=s*(inuaZ@!DhkIOi;ElYrZ*tnh51bcz<_*(-;YXQ%Us#8S??uiaxG^`9!vm3H zw$u@+rZ(#EEhi`G*b74&<2wA8C;`XLpm6DXc*=Qj?8%DQJv`6z0#k7MC}6pdv&?Ld zB-=y(F6bL*e?!apFz6@DkQ&Y#f55RXnRli|ToVI3jKe{EQ@u70x4Bg0ncW>8iF7#M z7Y4O|D{_F;{83`oI+J-R?C|FGA%*sWyd>@yy84|nKH~;o#4e8-_N0R1<%n840^VB? z3XV=W15QdtGBKDVe`;!ajt)2(#gfvrQ!F&dymhv{kg46s{#|DO?t4W}end<12v~38 zjZ9VJ(Jp6=OpWf*o=PtCbIutiW{ya(I*OBjVH{pt&Oe7IBA+F$Lp*N6xza-2N5`V% zt!FU)W5WIM#AJ*owER!J>(b@a$p_8}O}XOaOeFg$EFV1aTP_7owzyCP+m(^N$LZ6V z=OCubQq9RnE?YU;kqk1?FCHN|SUNPl`O|l&Ir$ zmZo?)A$UTuGR@5CEgEg<>91)}XC7X`yaw(z{;&TL`V#|*XK(W&Z+-M3+;FziKI}4R zCWsPWCm~932A;D$i_ClPcSm{ccR?n9p4J@sH>RD^!FFEkVAe12n>TqTvtXwt&J*OU z#lZPtUiKuw_!BIYB3lVfoV?fid>_EE2R-OQS=`N7b}tgghcm8GxFJ0geexPJm8oYP z&WoK+JYiT)piDn7h5xfHE;btk&Q{_TINBK_5xK2NVW$j`pA;+b(ER)U*bhU0a}Z}d z<%k>4Iq*%#+3wjM=YsS+jm@isv)@D(&H~`whiTZEWwu#3BNlNM!oG7|fNWpp6z^%z zNJu)vTbS5-zjSuY1t!J&+TR&@c(fGPPR6O`EYB4uMK#Tw3Ntsj4PYF$PPN)+vw{G; z%bC-{#qI%*J_(!yFEVWr&uB}3E;V#^%E@?fYAR*V=oEi;3G2{o`g;kypZkF z$)$8(*ZC(G{Ua#v8=c=dFZ%3}Jb50WxB4o9r9*Ic#$IWp9U|>cFo~0Y1rVxDv8qFq z-HFW`yUsgKz4i;6R_B;AU?CXEw4QOBSVJRCJbrdJg@hl7P(JhT-jORp|=gF+N+n*B^ zoqz86WeR&wd*pjBnt7RlnfEl%_rO{|!v+DgM|unrm8$6PJz|Wi`^Rnjs9_J+J z%Ts_3Ewc8&D7bGcc-}l~8ru!+dmrFP67a;onPoF`RqfJR_<*#3o}lh-Trgh#NW=Sx z&zlU6Ntpk=bf5M+t>@o^NzdykTZnIKr7>#8xAeZKGdMeTP>H(Gc7*bimB1h!v1k1R zU82SjMWn(u9pr{pI%-XSs?^lY*>s98SL;e|3mo67vpw|w06N=0xmj_%!5~3rs^rH% zb)W$W9+g!c1yhTEu9o=u+Vkf6O0%`P)LdF@t(O3EK#afF5oETPAQQ8fjcl6X*2;SG z`3h&hFtUlB+DnkV-dtV5d?U;dYg*e&&^Pq3vIYg(Eu#Q2#Ff?N`Z_niYUCb@+!q42 z=SD6uz}C`p7}%N(b~;|P0J2u=MYFZuF85B{uC>-`iuT(^?imB$f5z@xEvmj`6d+c+ zw!)d^{%J|Knyt2g&g}bx?0cof*(Tww7O`3r#<12onGw%Y5>mFM=xi7M8i^R{K$Slzq~GqT*WkQ8eXThCXt zSu;_?YT*{N(0=~he+E0z6xPHZTFXe5Z6hQXYmi&(h&vnEvXZp*e6_i3#Xb|>YO4t) zEZP5(*-Oo}r4rS!Cb#vx4GY3XcC4pwuQZ>xtgv->=GL3-CJdmso>{?+3!=69!Uh~| zPOTS67PbY?y7<dX1(iguP(ZQZ|@;H@v&sDrhqEy!H6^95F-0>^Ew zui4rs>cF~kf44BO!%D5^%QmjT+Ekj@72CRJHSF38e(r0)_<;J7X8fwifyhahGw**qyLD>*kXf0irX=n}I*%v$z9*6{*hYu5F| zN?XPnWEy#_N?k$NY)EI>z5U!qOsv0rfnc|hl#5)1)vn0>S8N=bRmRAn+gAS1ip$k@ zlh|lkXkr~L?0)Sf+l;WT77)^EsSVPse;|=2c%+#tcnpx+nr#DR9nzgts z5WCvXf0t}M{7Xts?d9jp$P3fTI%NYcHR|bvMf3MG*K%5r5v7%TBPUWtTd4E|(%Cm^$ ztP4iTO5(*F*r{MOFKkSd)z?6>?Y2#7Vjb{{b%`=wn%Tvn ze_9RC?W^&fSn+E}G8Qh&s_E8?=OmH8SS@#PDht@@g4NG30PD1~T^-EIx@~7=B|99F zY#R*gsF4q@S?84%&m@j6+hlpZb|+bW1*x)ClI2;kyw;}ULYdVa2u{)FgFp#-)?)*g zSzEQ$K9ffsB~BW1%W7+Y{<&?fvgR6he{FdXGRO8_%34b{s%1qwO43#q$GS>7{aVkL ztTlzc@pNv%JnLR@sav;5R-w|wym)RIIjcNg@Y$D;Q(z^Bd+Hq5UbQvwRL&cPY}+&|&+)|Yf5OHTS!v$_b}V_OfgRRoudU<)q=6i^1OU9LrEfNV zDuIU`!A4uGjz{4T_!4jPCh)(De07F5Sj(}HF_vv3V>LJp+y)zKv@u(qg^adO#O2X) z6C_g$*|Rpi)n1`l5yGu8IM$Bi;8tw1DJ%a$_*%A+CF{u7k827b1$rhVO-|4uY+y-qnh$hnkllV!dA8qCVt zs!i@=wL1zgwx!7GXllJJ*P2=VRIOETq^IwQUV=(5I zRlThjEjw+oP8qc?)=idmyRZx6)zC@_x2!F0t>Hz0#BBk7B9Qgxc>7|x?(3+V0vo&Q z9IGuFwFoN~08Rz<+V8bk)r|DBViT=d*Nf}cdQ;7+d1PkREs|C4bg5=td8`?RBfRz8 zajv9KwZ)nFMA+7ge@a&0;_bOrsAnZEo^oNyS~f7YAa4U3ePKI~uuTuZL`Rx3n}4tN z&ovt_WCbqXO{3Io>z)}Bh=pw{qi5Z4Yo%gJSq)8c?Gkew6Fk=VqSW4&`9}Q@N@uoW zV^|->E(Dpj(;i!#lJWr0bLDgF?@}tX!T!6to3~CJtB#RZe>^YB74sCxi5CsxNjI3@ ztmGQxZk%*U8*4_F;&8uuHooL-7o31%26_h6b;PW?Rcd0@K&~&=n-FdusYK-);crB( zQef!asS>DiZaCA#AHtZ>IV1riB6BTju4=JhcM?Q~tHW78>&~L7*T1g0e>*_8f*624 zYX*^@b-gT(e`;8*UcXqnDm3I_Oc&MW7pJy#Hxz%)%a;^jNdQ&$!K}Gj)ccFF*fYIT znt*Cx@?1CZ1ACHiG!$?YWln1DPyFQ6|1|T{>?Dcr?%zVK5a!AZS)Fi+rd~u3S=J4r zAnSI8)9opg3j9=ezKDP5e`)koSX@@(0*3L}c^v~FNB=>0K9ZGH?Lgua*h6e|^`k}be?;)xeT zKUpIv4}fcbUYy?dsjWre<-Ns;hZb3jFvdmhViB#77C8oVb9(>yV0rBYdk;0Bt^qe> ze>)_M{IZmXnJkprz~5TY4FI<8Y=}^kR7n|LQ4cEeD~!n_yoj<*ruY4!!+uY_FmDyt z*(kX2+01*C_#Q?`%z!GK&wdi4Yg4wP1#Cu{c-TzMX&o?;^a2WuiPch|7;JD3z|e;|_?%vnZ{3P$({3EK!qaRU8KoLdj5)`wL! zz#;d1h7+enIN(6Xt346SC=yYKBVHKn6+d!bI!pQbN=th%Z*4F4VO2%W&rZIVVqC&} zMPTC*Zm-L20X_w2fI*^2w+Sfjg%^$d8p=Fr-IRmUi{Q%n8$y4%f3&pZ z!ZvU7gO1-!x#Y1EN8vpzYV0C zQEF+vKnoc}`nV$TXJI|+i-VS>vW+|202N(b?f8#PX;$CWq zLJjC32Z154;m5DP!m7dLWS4$v?IA@5P-NvwNxU*-ZePY?jmHD;#_uMn*YzV})HU?Y zLr$ZC$f69St9URAXL3em;LClC;7g%sj^FN}3*yu{J=@CpOta`9nR}v*0eV{$+%=lc zw5SHy^#=Wm^Dh8ulw*2of0I&xa)W(F`^X0QRml+&gaI15{zlHqbVY3)&oTtW8T)sV z0OO$q061kHb><+L1Q|Uef=vZZNpX^;4lYMN*oZ3l0tk7ELK%ITdiP=M4Fpd`&Y$*! z0Hm(FFc{tw;x9HfFnChKX{|D4NS{G0C88En#0V0C{6QDLr!~#| zKMxlzBE+9;e{H|p-RW*0@9ds+Pj|&z0V*5!hO<73X50=iF2GWQt?+@r-%omRh}%vc zsTJ6f- zO$ruc$$>0(c%fIn%7MHP39#7o5D>3jOer&hdmF)ha94I?ZZj!#tZ8l%uNN8N?Z(K z4!JKcwibS0T3BDWdRE`WG${P?(Z#l4}ryDSuNdRsBikKQ%OFr(g_oG&nfy%%<#~E3!65+sqEc5{}>If`*_O2jXjva zY4^q-P{w_Ho!qC{Jv4Eg1S8m5K`w+16Xyz0e`7nICZpxW{CvL{q$wP^7uR1bts2W1 zgjV=Zk3Rm`IrWD=zO(f=RKr@V<<9Bi$=|G{kJ=(Zjq_(9}A9p6r)VdvCp7MX9%mcse-3PnS8X< zf7)=|m#=|>+W6%yd|AOS`!3Tei+Ny=v5HGzPQ6)o13La@S)c2PzBb?J^$6@c2`Q&|MUla(2?>J~U(Z^qIG z-K<{2Nq75nyU?GCPx+^@PF);>yP*xpf4nnwxnC$D&JAWR4noydvJ?Kv2;jkZfG{!) zFkcs3M@~~Pu+0Zn%4cItfp05HA<@dN1{AccC#7O!hSV>4EF}O8CPqmYjDaiM=YjBd z@C}qPMr!rhrYx;PFC-T%QMp*oBih{H)RDk6(Rv||rLMZqMPkS2aKQToP2jP_e@hbY zzV3zK>A}OK6RE^m<;axP+tmkEf0clmvW$qJB?SPdIC~FB;n>% z#=Xb@aiowVBSca^7xz~ecUL*S?{o2#r%exT1}yj_M$qm7+FA<_vD9?F=zx{L0ZT5d z5^gR;6Z&GBB^0PHiEj&$-5EehfA(5AEk-DUe3yePz$r#73**EJ4URw#>X~zAhH1x) zJ26%07%U+xzV0>vio&FeLzLrVj4Zi>wq za|Ghp263HPuhg(aT#dgxBVg;|-p(jZVVMi9?DmO&{FoGBvt&f8!_Ks2mNl z)N-vx_~kA@lxWo-+|vs6bmIBq=&ApCbXPMhN5<_Tle3JtOc7!(h$={EshC_@y>fn; zQcCrZCh(T22l;(VHV(n-rL`&Kd*zUo)1H>!v*h=+{Jy1s3I*o;x`{2}@WhXP#R!WN z=UL|o|7fnD(eG)kH>b6te;T^7k-log4?A4&4#?@{X9MZi07L+@zt}8+$1MNja!d^D{U$V56cj12K=$e<=mMR`-(8OazHe zd=Ase_hY0og38%Ajus?9a8wJzLQ8mmi#KOW&F9UfLY}-$e2@_Td}V#js4sdYy;_i9 zxH{1lUXEaIW(amXvv7fKHk*b%)wvVuhY*!h4g zi^q&4;~aI~oH<*#e@5u1YzM{QGxY8|NsCp*#lIglZv!~#_=CWsvoZc!#C9I5c1TFW zLnOA-ZMN68e|FBA?RBF;5yR2laAl-vz^JW6oHh~TP5&-Pvy`x3paO4@c83uKmn0>O zOQDR5&6Oq;|L7W=^zYmVFvr`TTgMq2+P9Zslh}T(F!kRz{ohXls*lpXHv=qnfx~x! zK!<{;`(q!DYyO?zpV9SK&6SyM!?|!57Q~8juj=-;f9@(9y31P`yH{l)wG0kmz-)J; zEOl_K(M|qr@ze?b)lD!Cs_d#kLD}n9&a*1UE9!2EO}-Yh zo+HM!e~6HLyQ=DzSt566ktwZ95C2fuO=rDn68AwuYMzuWVG3hzfbcwkoorLDwSTfp z>9AC+=|NOXE|b*vtzG>4vGpteco-6F-+ZQ zGHtRvOJd#MHmeRSm1ENDOP~uAZI{R&JI4{qf0K6&I!*Mw$jwLwmfJo?isn_>Ku*Ei zv26(HJ!}M_mjR7Vj4N=ELS}cxYjDem9wutx-=l3b=TMM(ET6-6380b;&Kqdcc~srR zK87X^L&pzDE@H_Yg*X)Em@xZ&U-TPkB z9R_|lK&^a~jpYx>d=XEUtz1D@j7F22L6%-g% z#g|*M_}8EQUr@6aWAK2ml}m zAt+JvBhXA|006tU?PUSd5`W{PmU}u^h@O$w1r?_TC8eX`ean)(poKD!a-_|l1sSuT zx)0A71Z{yORbQW?>*wfx2gxj#w(QPCa~$Y$+le&02r$zdg_p6GfNcOV7jG|a-U~Ov z*pxX|T#b6dc>68AIt?OjoNIT}lg05Q9qfZbB=8HGnCdO@HbGpy{(po3_?p=k@x!^o z_F%z$GJ0JAu<+C=aKfGO!l$RFOxx(=-G_IduiiwLSMRRh-iUMXRqN^0L!0b%Qtu{n zG1)1--PQQ5URU@>+CPT=Jn++|H1x;HO!z&LC0^i6TE?58sDnPvN*rg)0PuD?cmzek z>-#E!LkPiD91;rPVt=w>!lzW@snb|xG*O9}KqfuaPz_jbR`0^`1m1X$kuYYRswHx%2!ij)N)LzYo zJtnS{Vx{fc-35|x7Xec?D~!-N`?+`rMBV2optIJ=0p5L6DZGB+w*Z0{0Blvh_vY;@ z7Pit7nce}>8@GMUj&;|G@}&8nfBAOAaoMF%r#W(^YlHJTv<#X%7Z5`u2FU(RZ%Ci` z{r>I|d@%>JZgFXkd1=AhV(y>F{7ve3e z+raJU4453>hEL9{H{=KYYiO+{I}uZUnstY8jn6s1cSlSYq#ThUY0)UbA`M(KVK8&c zLUZR>!S`90Vf3bh1k#Yc&fJaXF^_qy_>CM_z&<@1L_h?2Nu1hZwj_`AW&8TbM7$K! z0X&cII_y;@iq*+LJ5l*0l$0Z?OyYdtvK|%DViD(yuxk-?;pO{4-}9uL3|E(YdjTdf zt<j6_Xb9d{S?7;wv3Ck z$@1e%mnnP!BM%b+hGPb6SdoC1*7Q zm!o_EFI%Fb7-BzQZD?Q8ubh0T@@m z${_x5jxkdH{dW`pVrz#k2U2!zRj{j0n$8fbFBAG@6=Z~qk2hD*-@ae|u=w^rengHK z0!MGO1uFFDZ6B{hds_5`xZ@wm2@8}jR#zOg;@hQr`#P7LeE}nXn|&@bU_5-q*5nvg zOs_uJ9}=OQKfaBMZwTXix&sq#6jv=?zlr|0y>D%A<2D-o-e0k`qi2^fMN4*?wrZ5r zwdKUEFM1@Wd0SfVc1bR!jdaERqWhfWcre7|i9# z%a@|!Rn;sPaDq#Ju8O8o4$sr-hBVzNGeRW~gy;p40R<(WBSL6Ww2EOw69xQ^JkN`4q6a4#l567c()(h|}% zl%Vc^0XM2m(h6}#`u{AGV+`k%JRaN(?A>3UMTC%9=fI|a$|iGV1AXFS@PtNqnKnYdXP*NQ8ugOBh6F6PdIg94R%=D-100yYe}#6VJTio~Y;(@9ef@KP;n(*NEa?(P2Z$?iXk-T&mf zXFu)lz5h&Lq_D&@;18ln7ems-19tl>(V1}F4^v}*FaXj)SfJ?YGPa7lg?II|zhf~c!F6+UDicnLSxO82WQg2_Mx4zLV+f-~*zF5Z)uKy$0oxtI`A0a@dM zE)UuF!Mnvy`)(l)zX32SWL9S5yJt}t5UI;3B#l*`#_7ofw7Fhf45@CC;Wx^KHZ?|b zR$JYFq?JSi2)VPEWR)c*i@Cy?GP_6xw;8v!e-vU=O~a}jRAnyML)L@6sdA6>;w@ZZ znEMJ_=>Z4`gA8c|08keR`t!Htip;vH7pVFd$T_0*hSri)AERK9h|!?sJ{ZxWCy3aB zG&n#RD%JpReQAT$lqqOVOd|@?SSkM&U{SDtpwKpAA`L#xl<28)4U8R4V5zhKE@qM0 zNh~;vx#SOg2!}zZ1QFY=g3>*UMWQ~YDqVVwZE!fV{ColRGQmNp0lJxRB1^Rqnr49` z(?IE)jZT%tHV0vaj6pn6%?8x~Kv#mP>8 zUWA>L{wv0cG0BW6F&g|RH#-!rOrt%fzs?SYXlq6`iC^3C(QkFyT!Un4C*X;Fjer&Zq5UOmIL`9PSe78b&NNS#p5ivsCN>J+YPT zd#G}o9-#JPfG)h5YD?6@+5-HkE*DMGZX*&3ESuHZ|q&@&I zFc?YJ8%#>4#faVj2qTwH{pV$7u+R&5g=l_wuqzHLgpe~s5U>&AHGoSAeR8fXm$O4( z`6lS@*bcg4Vy@^NYe4~9k~u`Ru<2BG2gi?FFjUKeHv3Y^h*0RB$0A`n=$`CZx0his0>rI#?bCLacg|+R}jOX(x`{UVlooajI_$qTsJU=a?#soDJ}Nq|j`L zqnyc>t$rs<3T_p&hi@agST!WIVfsuaXc-=m_rrjZn_$ixM^naP$&Q{7a7XUxH2;Aj&a+86*_Z7o~$? zZYm;uJ=J}E3mEz#ljThB6skRbkiI=Sd6lBlv>iw-8F$=praOJN_xSPI-k-#oYj5xO zaOG%tWXFs0$gI{X)11Kt*(}&W}Z;5{Jq_G)q_mfk&dP2<^^c%dr1cMk~ZiU_9 zqep+*0|wlMP*6-RoBvT1I6a{uTWFPW%C|@C)3x=!L||`!pP^z(*9;O^2IE%_dU}#y~S9CIa?NXEd3UqY@%IhvRrCIKu^%UCU_aF-E<0T%+}2A3*@0UZGzmq>*H zAtq1#w7OB=Pw5X&PF}xw{q2DPgf9LRT@QSiR;yc5P623BT*E_umyd-377tjlK5N7| zbOjd)g(Z3AAD6U+0aZA{Q_~hix8IV4TZh_-oR3aU-kcny{eUbnyygT+gCXugjC_9$ z3W&`9{+tFA%zZfT9t4R5Qvq|AL52Y#59e7z2}2!@QPP;M!8hJ=mvM#xDJaDf>1^CW zBqVJS0;$e!qVDCCgQ|J; z*t!oAg&&HdZq`%b2)&Jc|p_>x`@qC>0crZxarz^nwF}i2InQW?GfANt?L-USt`e85pQkuHeQ3tSFab zx_%ye;m7WSDtaeFcs;ZOP+#_5Q|b#iXM%&eoaSm&%_`3hA1fgHRp(;hc~J*mK=Ak; zY6l5iUgD|QU1N(}21^tCh9PO2k01DZfLr{%^9}tT^V1jqJj$QGd3F5cZGLhjdfKGf zH(&jBr?>Mi%f31O3J3JH0sFJt?cTdy>x$L$<>*HM1NJu%AeW|y0WN=EouybJ?Va)P z^k_VadR0;M1IZ8+v7-0xYI!ar1A)}8!sN<0Z8BH^Cew03Lf!(3i!I|h%3#iP78SzP zB}IqU#%JqMyQ)^m%gF-S11PQ2V95fn(55jM++Oyd`aMW~kP%gCumY6QmIrQSXK8Tj z!`{2 zkQ1ws>BJJ!C(6_!lc=&L#977lrus0qooAZZ{9?q&!Q#7{^#o2$3F2XKW^Vxku^)8KM z6$`)d{LRTL!vIpj0&e2l3-O2O>(CxiJ@2xg_TIni!AK;!Ae3cCI|sx2d+&B1BxetL z-{8fg#%qFjRc?R9tgE*N?yJht-9p@h$?ZSQWQP_fLQ2;R`bD`gmC;mMfbHN!_;VvX#-? zwA&!ugwiJVDEV_jHYb550j?d?c8WIHPIBf{Q56=;sGIHkfmz?hzRalQf_j5sQYf?)fZ zCYgVU3l8rf*#g^tDBMfgVR!*5D0&(O%=Q&<@Daph!F@bEW^!UhY{QU|+OF4d1S?F8 zj>ZBH#&#nc0Mx6=*62{EY&N`~s|m$F5jAbQRj~4*8tBuZ>iCuwZ{gA$Le5;EB{5xz zQ?%nBAsk@|p`Z(W56&i73;H{hExU>tlZ1bYJMx;h`T{XH7?~_qthkGD+tr!N6z(VT zk9hgw+t+VSj-Ea_J&GuSBqgNxfQG2Ef?n>)kCTezXao*N0Eh{dU|DN)P$Bi`OJ~yJ z#%{fi4&F}2#f{#K+$#AAhmPYbC$b;z*zMuDgU7r+0VP{We^Q5HRT?1vMsT823Ne2; z)JcdyX`%}H>`FBu&q5kt>?RQJNT|0?-;|W0?oZ%d4t5Zzw}WrJLDep$m>>i`-BQn5 z>ndVVh#)JPk%J$rP83Tz9S^(8)XPxGZtD5!GON|EtZY9~oI!pjJlgDlpQ@BzDs&By zixe|5ahZU!oyo(UNe_`~F~h#qhrWO5LeJwbHys04FPVYsdL0A*+RE+oK?8>^5OY@Z ziGQ{nx$1*M6&SKg>xDCqmQ2K|UZ1(*FmHK34>PEHJ3UWiOtEWyV7>fXsK-}=k)wk4Y{ zQ&Nc-be18*J_-^k)nE2$9JTu39*9{c(1BG0Qi^@gl0#E;Tdt(CJu@Jzi&JF+g@YoQ zZQaaF?zuyXm`Hwk(%8|oe)xaW`^c$Y3hT0ZB;RS^4q}h`M27>$fQeyZ5X^W3k+dnm z?=|MJu#QSEgg~c;0dB^S9K!_u(vg9!HFdSA%Y#Z>FwO#R7@O-^LmR3+vZ(TB155)xv8 z(=o4y#2W>+Z?@C6>}DSuj7Zq`lfUrYJV=(JFE5Vdl9O6@7KV+#@JdZj6JETg2N=P! zmZqXGj%qlfiH1Zm5M`t9^HI^F+La3G zuei1LBW;5eLhUPw#0s(M7$o|9H^7G{VmnfGBs9g_;*yLO<&GvpHB@B=_Zzr1<5l6L zCnIrFQbthOV>V9sW`CA2>Uzm(?nrFEk7_Hk%ms7k<-x=|O!L(_1NM?gwto!=q}U3**w9w z@?(p!!Z&h26AA!o3?Nr;YmgQXs%r#?*dziTXrd!=QFzV~6K6Qdh_oPa;pk9(@LYoZ zZX(C=E(?ArDG9ecCtBxA8E=Jvw6>OrRSh~+4gk=W_DQ5}QF`T3}vOem*^m)S{qFa`LGAJG(o z?~Dv~+!hVWP#Q|BB6)~6P`i^zMwV)e?x}3iCc*5#u-8wRt7-`gaV6wu<@Z!b*|0C~ ztjA5!UdX)$+bSU|jt2|FGvlq9C!}dz<8&F-5u?kQ^M8``CRXaxSOi}(n{|w0&4ft3 zSzzzl^V>?Mw3Xv-^p+#s@+?g;bLlNK-9bc8khj?}47587^FyaMFaHg=1B9{)@8+aVwz&VuwhrVWOMUkiq_(A2q5}p>XN#Z<4kwX1 z1+J+)mQZI+uFE^Bu8F;_WeXbun$DlWSRhoX2$v2G{L z4UYdFc|DxCyM~fuDQ`3m1Upj;(^1n(=RFjh4k2c6?$pajHi<~tl!^_ka`U#te8R@2 zd(hSbwOQJax#`Gmrn`7-aKXfDz=QPBPb3XEe-%}$yU{>wrsps~V`m7?ZwR=D)Q}12 z7>ll>_v*Qo7TrQl7a-#e$CV->BzIULOrHYaBDEYk~gJe(${&uE8a2N6G#00M)i$JgTuma9u#lm&^$?M~%$*$e2 zf3E}{&_(boyR!@)q^?SF&&(yne`U%ESPXWrbx}I!?3xwGcY^vWW?Bns2JHm!s|8`=*>ldVu=R_yZdK%Xac=DI$Dr!AMM3@I)w-n>>zIP zsmh%UpBPPh?iI;5sX`jt?9S-v7 zRFD+Os9Gg!aP>jeL;3G@)s$Soe@QgBEHI0T5M9}_d--4~5!yK9f&33X#12*}r{ z#Sgejp`;?@+oSZZE16>}q}TBPZL0*+wrP{Cv|%>Xr~wjtQDj?o#cd(t8Cr}v#E#|j zUL+P=*(RH=<;4p9MqBCIe@FUvN=52%Cc`ECGb6fLO{<%Aoi(w2)w>pD38&%dslz_* zLm3)Y{urj_1Nc;o%^lSTFgJKY9N)~1t)V_nTq1OjU)Y4@+Af1qIkthyZA#xa(e zxH99Vgmvg*fS!cPmURqH5HjnUbTL#A6U(LW&GFI6lece9P6K%>{Yp>>+>?Rx^}x6H zOussGUVDL5(y#5e=YHj{oyzBaW#?`AZ}07Io!1LC>$7?-rtyY+`GIX!;&`BfH@s^< zcfdj@7eV@8W6Xn}e<^g-&#O`Mb0Pk_g1>F^v&vVmKgh)OKTm7#fF-~K#AW^UPTPY| z3$bepVja)cZFNn01g|Oe{-sxgW}ghpz<8FiBcB^ zKNl}*9B0>!yGBz%PJ8m}ptx{z6+H%jOnn8B?-#rkT=Bi75L%d}x4Q{BgaAxu;@-PA z3Vx4&VJ;8u+%$0=gORubLGvSmy3<4hWba}JlXvxFuZ*C>;c=#XCeMN`I|#Ve+-Xbroh}+;LYh<5Xe2D2AL;9KFf5c#vGHxrGbVB)ERdN^0IN+bWeEH^wqh~_k0LeOk6P!ZO%>($S5C3HFk01MJ zR?Kqs2miuV)P7;feD-=Y=UPBLnW@nyMcbvljuY#V3AB~=A)wC-`T!%rQI?yUu-o#Yga(|I~32)D$ zp3MwTAHVxaW{;rn_N&LULU{c7iX98!`JnlK+Ma8ZwkO_Ic$}MH3*FAqeQSgcq((q3 z2?zRi_{zHR_3^a*{X&IWN$zF$HWM=L7TXgd$uA#Ehp4#eQ`_6q+Jg?m23J^&0*FF7`ljF(D3&%GEVQ8CzX1eO}gXrh&~9hPt`F3Y4i7 z%Jsc5bn=ZZv7Z~>8>tME5lqL+m!6*in}1kW!~?dDd5Y<6ADeiFpm$PxvIsr-%0`X>Om@K;%2xnwsn=NLXcfZw5 z9eHB&9La?l-`?%U@vJC?y7XEw#FbPYbQ~PDB?Xvj>~X^(K$H+~cRvaUcQV@E%tuV{ zKCHU!02!Udp>HzUI2wjf3=6!Xr}#|rZ4tcXz3n8-u;bfINmy%WP#JGeU8hLX)>b7F zQx^A{iZg70)Ja(jH#Fnfa+m+00h@n$jgfS|DDY4H82&8J&*4u|jIn5O)jc>*DlqMK z4^&zvOidQx=|M6@R}AouIJDt*Yyz8tf5e*6On>{vD9MYFkfpt#Y(UxKaGt6bwj_{k zh(Hz%RtYZ)})!wDCOE14QM?ctU@1fDUnk7A7`yJHRak98Cbx5sNQZ4Ixi9zv6jr0J~9zEHxcn_JRN`+v` z?nlesWsW*AnEquc#9p-}>`<4Oq5-9UcJ0%QL9Te!RaI^lk=kl2=>jlnqP0iSFa}r^ z0*YWBxx4|B;20RcSQp5G9gfd+y8wj4(X}@W2iVbp#mu(#s_nkFz;HKp7SpNrLv>&8 z(UG3gNJ6%huAWpb zA@#YU@fhVSNnmyMGRVb(!4fRc0^F;r<=`*3tFnFZM#%;sTMQ^UM3$~s)7?MV?n8m^ zC|zT!u`xEcaqk5&(grobCK2{Yv%y+FSU*IGA!5eXl5ESu&n2;qSv` zU1GK@ZDWfIMcOx2aGja$^)V2Wg@B$N>0mr7+BU&HyjamKVzwMX%1n=>@FXKRP_@c) z>8-(9sN)P!1PX~f`oI^$+%9Ntu*XDS$T93AH5d1dfwx@cg%X-Lw_VaMW;6p4wF#-F2{?Y-2pF1SXE=@0y+j3S`oZB z-Pnb0=puO8KiTH~ALcD{iAv(sS_sNRE_OZVHD|{z7#Fi~eo;b5q1Jbvv&Pg=a<$b& zl~r-NbqNUIA>W0WP9Z2{w0i62I<>0#j#90P_HC81*V}S=Y3F>yk;ospw2SDYjc{k}1=xkTk4 zcVwf+Xy`y;FHQ$_mz|{n8-H~Z&~e>hK0R4L%?*>M#>s-Q(eqPNYTF9ICzupJ)Vs;z z;gW(le5l!vISe`sC zWZH`E(;oZcXUpyfD8c0*(A|(edA)-ZkzI*+p-%fH2gKtH11MHwsz}_|#}n98*`=g_ zE*SUg?_V9Aym*>Fe{uBk8RLJI6QJ0E!v^En9?uFEtp1ps67?5|;oj+>K)C#l$u*p0 z-wyJfT4xklB^SIKw1@%vF^zsw5gl*+=m=nRSW)-;F<|BFC&S5 ztSv$VKVyT_hXrLILtWgQGcMNi(W0nkjLc!)xjfaX!$vgF?>j(-yS0CQ#mL8IKvth% zFi!V}KT(Pc^XvOFzTc7lwu4qsBVL&O?%Gu$GUi;d60 zrY6=!7hWK_L+9C&0BV1!5i#w_&g5nX6SPB%1n{g61tp};4k#qWqZSE3bk7JaVF*Bn zYXn+(3aDzWLqbIl+O|NQ*@&Wfbdz$sNTfKkIh?-?RbcBrwyS?RSP;!?cZK=e#1E9} zI-$g{piJFePIoc6MxsHe4CPrlI3I|k_<6Caz(aol*^(B?4`LfwUVAZu;ZC*0tV0J6 zACA`N?SQ-o2g~OCA?798|MH73fB)zYEFWEw9zrQ~bbij9MIf z%!J=ho~&2P1oODVXz`3dViQQ+jbJSGa+ma|0Wu}|5-;JCw||GU!VvjhgG6nv5*V{| zd{NY^vZ1IM1*LjS%ercpmrJPuD1W+I6*JIe_WCv*gk7;Ce!!^5<6JBmIqr5nBIKb( ziK1Bp|UAl`YkDB&I{*0X_F&wpj(DA$4s z54SyzD1PI2h^c2NtG9VKx5<$6Cx`uu=}5k$U5$;wh|1|YDz#?J zN~;|5N_EW?A$hcjYRXi4?_xPu%WNMf|z=&O(L%t zd%cvGmZ||af4pAZCc8;{S=BZCMq}wmjIh!T%CqQ2A{!3QQl>zz@?->8gWLrOtD~68 zY^3Z>Bt~bm$oV{ta)p|2N4QbnO~dbXx*-a$Y?Ig3@zDLtIh=5R*!x? zlDrR-pWb^bZG2IJYXF3ef^6k>;AUEF7iLjtgRvX~e>;K<VbRQRK4;}PCRB6 z4OnI}d^JxCMCF6iZ+uJb*h!uB7+CGZT%0^RR$K8{F-eC4DEE_7**_c0kdIUdjF<_w zX(6K5#Ezb;Zr{qATFASt@0}O#T_Z&G^(br7;k&l~@WH#`yR)o!29jBx_PIJ7YN3aR zT;V`zf2@nk)1Xb3F@&~KFjaNW*nn_cLD$dR*<4-~ml*u4L~?gXeZ8puy|$3=%J1q| zv3<=))%kk4ZnbT@Hy~chgaAC{A`5EwlCKjc$7aWZ3PE&P5c@MP#P(e!-*e|zn#%nMSJLuP=yVUvJ)h07{S4D5OI+|pHkxkb#YiR`<5otb<)a#~Rwtm_$Z*;1SZHB1Jy5m$o zf3sVO7~N!&eE0V4aU!qrg+#lgeG_J)SrjuE=sBD;Bp2b9E*vY!7u0Zp0Ay`p)S(Y^g zlUz@Y-zprYSX+UP;}j%aw*+QBd6&)8f8V}&_9l4>Nj1bIzy$*I<9sPjiXbvNa<=4O z!@V=LB%`-NcqVAe6^cMwY*)G?RGh-STy+kXXO?;sW9`Ds`|v=3y#{Iiy2RAJ>zcek zi)36imP*<5RE3`H6z|m<-e^76V zeg{IRSgL@YK(4U^o<7oOVW72f&Yr^c(JZDT+-bunn~k zG9P)Fg&+c5G|yHu0)q zTHTbbK}XnsyePW+gk!b#;r`yR=e~uE^$nF-z!8oc- zJs-!O5B$D!mV=I%)wQt~huejc2zz1MajtH{q*ZE%(;gdM@+c-$!U2PJJEv5j)e+l+ z+H16C$m8g4=onYkXxHCH?Wh&Piuy1dm(rCoCz{|2T!SthY^- z@DM#>G41#yNO3Ese{-i**q}VOzTP_4I%8>J4$K?z3(umwRuVom7?X7DqFuth9=uLk z2U!SJ&7RA{2o5q_>;ejfIygK8K}i0+E@stAZBI!CF+@NJZ>46d8ddP#qAh()aeC=s z0W1arV_97>G>WLL$mUi_dOcTa9z_jv zd8KF^+G|OVYEh`)7mAwd%X-&MwJNP^7?&d4CKL*N$gbgec%>F^SQi$s{I-F3X9Yy^ z6@Z8)A?H&7K7M_Q(WS+*lIlHoFuZokEi;7bs5X^7aCie`*w~Cvb@v@v7Tp+;VqH+z z?Pib)1qs--f9T`ne6jOvx_30UZGZ|OGLIxEbyUZF6Ps{HwTeJH)9(1qZ-T|dV@u0L zy3PEDjX_e()Q_#esmYnDxbLyZ>WPE?S-5Qq2+eKh2<3rM1xxJ(AdHcrIrI|TL0b#H z2q`TrouFzHb$^x;J7gznEs|@7GuGJcqBnFH36zg0f6O8_qu3kfS`W-Y3}bUPeC(_A zo+kF8*fZnS$66pyDJYh`Wg5h?Tn2rcWSpKzT!N{Yk!VyKKJN6KjVi*2L;)vSOBQ6h zI`0ZEGDY86KB!2%ll+p{G~n%TYhN#o!HnGZ@n)I2imn*w@E~b)4cV1;+US)n1=aBU z>v19Uf8~CoFzR8@*%6F3QTh0Zx1p$j;!fP{M{MWER8kz;NFy)W-06=CAOMt-sXm2lWe`VSMeR#0{$KRhp?$W_v;CVAiUcJH0 zKhRhDEm6b{i`FpHy;A+*0?08pyRGsw=QWv|!qqS$i0A|cM-`KsJrzTx>fLHjjsPAw zewwx>9WIVAgEuZK`NbIYl;AC_3$czBsA(IE6;n4A@bmL-P45&6(-iWOho|J^>8-c9 ze+_X~yK4jPrFIlDTzN$e#XQasMoZ~1D27KX6`|3FP{^TVbs%9-52FA1XgpP{<6ku-BSNr~yqFWxeqTP#AlD0!v zGs2p48{_#c)?UzC%h-L3E=@|YdMi90e|2`sF84v*vH@(EEUg<@@Z4Xq1ZBVf$ z2l#G0s6yK#ftJB3h8=T^95t-7ZHPyU^mpV#a7Q6Kjktjr10lZCcwS9N526W?oBJ)+#axGV)|EX155`An+HKS4Sn z^ph8F$QuFf0?LMuUGGP!TQAhbli1i{wnR5j8GDQSI+g;Zm}Ma*ev5}f@$$M#9d3wy zZQlkc$|$nQbG4i6h3v<#VMu}3C6{ol&cC^D$I}H`mkH)RM%xiGQqj!|R`0^`_yd}$ zY`!;LESHzwv;kLtmjj4N6PW{uXPQEyKk-sDbf`k`z)Hg+RhP?!DltG5Y_U;l?8H`h z2X@@${j^xX`oo4D#GqZ)Cd_QT+_05`Z2$S?1|>ExHw(_-W?vU6;AF0abs?^=O9n z1_FPx@~T*@k{3rFSV}fs+$PnEj3Qbf_toq+IfrBf$o)5LSU(DX`bf+W1YJq z9!M^y()tUCw}Vx+ZA|8Bcj(9bvb<%i*`WtH=_KKkx&zbA#;?AhxUmzHbz=cwv9P6h z(GxxO<+Q%nqu7=2r)1T3?_z&p4m+8)Rvz!PgPoQWl|U2B4(u+O)VE^ahNKkpc813S zrnQ&rFfAz<>ugfus3*GHsONt2eGB$!*ANBpFinAP3cOr_1*ZwU0+v9sjOF>U0r07G zAm7r~=h2sc=mglcl{r|9Y-oLJl(@NxO5J;#dSpSl#hK-V6Vc)EddGilMmM)%yD>zh zg}cpEq@Iqj(%r%GH&PPx0WbpGvK*)#BEK$2wP4}hK~PnF!Yk_L9ItLNdqK|!VjLK_ zvLlBpJa;0P(MQt+jD0gLxaLcmBy@;@eqzE9#1HsRPdKsYdwty3yQ_VPhF50NLU&u4 zK|dC+jH(T~XGY(TEwRR|T%CEe`qI0>1NE zS~n=D@2{tCUhBO|4rco!4dN>Y#N%S4*rhTdh7qIilGLai`_XnjvDmK1DOL%NQ?t`p z2jJmvyJ)0byq$hx7_+Y~3pJ#dRjqH$A|%f%FUx5%nPo)pOq_o>^-SSR0a9tZu2yKC zp`F$n6_w9)sweNR?VotCVCQ^cV$Y%15nO;@ESHyE*&!zwy3#40)r`hfBJD1|3eE&E zJ_|1vS4)hYV=w>*gdL0=Vx%n!VbwtjFbD<0o`5i__$RoWgU5s!2%S&$px5N=a2TqS z)q?@SF+J?_d0kqbzrwG_#}sxqHUVfhk0l4%a=@dqcE)Q2AscjJ;%j`!^L5tHc|6*uxDE)qE9jAem^d%Ar2U{J#b`+bZ@oV9ZyBzd_DR{mNwu(>>UU!>tQyhreDM9rOL?%DZ!spscvh8*)d1pL z9ARb3; zd>5;?%jM~X7@utGPPiBo2!V_x_#-z0s&a+|-i!grr2AHLg}?Q1uMyP;svs%>2ZqGr zI0}?(){4=48aTJ^GENi_v+QPFC$h`I`zgE?YiL%DSuYxV&xMGex>Y;lP%*mjb-x+!M~ zwVo*|?A~*NSdZ=?A}SrqEbSN%!JFrf!RSWnT5DF2a8K2nP7O;iA$7f%PP_p`f3a-P zduLHzl}*a44zulahicVsmKF$%3=aX#BCXHADDp|sUc^+YpJ<79i}f(U*Ybkm*^|@n z649%{rnA5s4332HSZ2j7L?)EB9mGuaKsV_2c6{FPi*O2A)8i7az9_cg532J2oxDNy z?*9y5xGULU#jQ!_gBi>Jy?n$9e^ZC+|MB_{`2sTpq<&Bn2hv6;X(t;BB(#f}a$Y)zvtS~1~izEaLb^MMWx8aFsgCz9vvYF^hf9 z1b(A1~>5_Zh%yMwCcm1=KCvs9G=K|1zLMbk%=!!V7$KBw1p7^W<5jaPUAQX?wzQg3DsYX$xg+ir-Vn$um(#H0d820Qg_>2)W>FiXrDNHH&AE-~WZ#d6YzIFuAd71T)>JaqsV zan*8ko6%vYrR%j>fBJ5b4t`u#i)?CJ`~_>JG%U?2 zWrQ)SmzY7QFXr$!-jJQk_?zv!bWB_7xkpXmh@gUw5oWr zRV4P1vnID#4S#OIS7l68q1VSItGolh3B2%fdXruDlPiiCe+r+R5CY0o!Jm&ywNG)E z(n6?Voh|H?#kTZ9YuS=v%G@)B6Z`eadZDvQcqTSWidanhJX-hK`@3_|S9*6tbQcD7 zFnE9+%R-l_>oy->h;yWC2nAMQrDfh9$jKchVH)HBF9j#6W1O_z3p=7}Nu#~mvhG8R zz8Ypmm-a$Ef2n(>Nr};21LH1si}z~v6;{R3q*+sd7Ix2LWK9$`x7l9H!MtSxPkH@U zmJ7kg1wq7VH;(UEfUPBjF4q3)3%`NwyhffuSxQEuV#-$Nx{_oV-F5d8m=1Iab>McJ zys+G9w!drzrXXy(f9dbQjht8HDZn>i-()5bw^XODf7k+vg9JNMc@B>BO1RIfNk@z& zu{*8>!zy>hT7WdV=LHz~fnObXvOu0h$ih~%c7$4>g-B>g;_r1+i5Zv9F-9^q0hfb| z7}wX!k^4<8_VP(3NAJ${)zP%z3D_o#OnkstcwsW(%^k4<3!xn?PAd zLsn@Te;{g-Hnk3NXJVeHMRG^ox6MhF5ah$&T)F?W@3z#T1LfQatV+*FOzv4 zRNC0gMtsJFE2PI6+=kPV&87?3H=`cCvdg@e3kFdGCoiCp&XRI~P#E%SR&|DoKN@hH z1#l*Ul9NbA0-dau;TjOX!EOHnuOIQl;OO<6f1}rLw-kx2=>+nMDGGi~68i|+lKLR3 z=pI)BS}5*L3-%l7;w1Yh)~%5Gd!3?WB%e(`k(xx&iN)nYAkMyH@{*^7v9Q_Ilakpo zMAc4XpsZ}p9io&n=9lS6>=e*3z+4LLfNt#yOzLiidQq*B?zA^fkU}f*wEBV1J{=2D ze=4EYXwKz9Fl%vk*Dfo-lbdgB$g;B*V82&XQIdqeTE$Cix1XB4MM}sI4kg$Nmj*m9 zFFIySznH?oV*170k6{Kd9ta?rb_y>iy(9)w#hPTY<2GD?O$FV%j#57lcUp+Bw?j<~ z4fwN2`xZ_%O^<*-wF5`V^iZ@1N5HQ}f6W$P)15CSmv*@_Z=|rC&*Hd@I zx}~%FV}5gbm08`=oW?VI2{%Wkj*i8DM=FR6L-tyN4^!4zJ?NevyRAQ`-tz8%LdIBD z_S@~q00ovm$7pFoUu{~lrtYePl%{p(vG~J@2mqTdz_(Zz3WjVxt``daP{BTnT5Wy- z>b(sRp7=I^Bi;R-JIf z^lYeY2Q|V;zxq!nAO28=Knxo#F*8M#syS=p_vcHM$%|T-U&8_3f2G}$^y;@l*mqi@ zv7YD~kp0%QCb8Vvj0e)ewY#3u7tdh+N$eLN7L}$YY-|2yBh5d(8;o)pflLSs+yO}^@@xPa`Icr<&XAFe-;EU&oMTE%y&v=T_F)} z83Ta{>Ig{!veXCz#=FJ8Q9iz1T`U*LqrsPOD|Y(w=yZQSIX&J_vaKUJJ%0S?%U-xn zHrZ%_&wr!Z7yTSH%gb`{+vIzh9cq~r;G0!8Pi`J8$glmK(2IO6#1f9ts1x0 z_O=~RQP|sLe_?d%R*8Y7#{r_xlt*qu+eGDKvl3dCcuO@&gO);LhniyO$*b4FF>-W{A{hklf6^}QIi7^a!L2nAhxTNN%5 z(F%;Pe}<($UoWaLxUdH0zyW`~8i-S+5E`?dx+4fr9s|r`A!cB2_m9Qy^z1>3OCT08 zDKc;0R;vUsMuCc;eSf0lErWI;+`=9W){Ll@k7s4!rxx!92M^rWy0OV?WNLW@w>*#{ z8LxKy@Qv^`S02B!0+SLCA~k(%T6M(%?fCZif0i;x3TXt{o*0mztopXT)oTYtKhD)d zrNPq>L0PDl-_B%!|3_O*fusQ9@Zhn#>HFZeTlsPq(9O2Uij&<4TlCQ->j@4QLw%pE zk3GzKwv}0VQz~$+Ho>-x5|$0JLsi7H$hK<_(`GfV!ITZHMAR44*+{MWqFAh!^B>7G zQuvs@{q^*^0VC>W5UEewkP+A1{b;9E5~?T*#yi1TmVQU+47b_L?v#?#0y@0XKLiIP z*{K6>G3lP7wreZm5S8=|{DGzj3Cfx}&_Ueh^P&!y2*?3I94zOt{0miGOeQ)Px01J0 zCGg#@#11@IHs=qkI+tX~0eM8MraY{W%RCkw(!+vvQP&DKU&~eGA7A8=C%-CK8+rF& zl=_RqeJucdxwnT$8VjmYq)~tzA;qmS>$SBymi4O5$IIoHA;|$U54GSqlzYQ_%PiH- zF1%X)w_?cw4*`G4@_K`5`#YFbTkxdKhXVq`&dp}a z>sD-fXjoshWEgruv1bzHVcJiwFRJl{1#c`i$WcjA{V`@&Aw-L6Dd5!Wre3y!)C9Kd z9&As@j~@NrGKz*%@dh*wtWjk>_W+3XQDXVLXwJp7eg1zr*qELNDV)*Csw+ee-SCMK zB<=X3qy$-l*~7RY*MUSHL@Be?Cm3R^9IqQNWTjM&_8o>jyn*hkG-b!n_7;j$97BRl z2U)(@{4=8QF3J%_t%hRMG4f=Wwq=YE?-;f;!i;NwO4W zn`=O~I7ffYz&O?+ETElhOfdp$~$`|}#L^Cq*R`GmYt+J&Q7c_}?xqMFX7RK{LMr)J4 zNgbxCs@A}2+}9fV`kC(+6_iB{X=&{IeV0;*Ii!EHp;})c8LNyfc?&Z}x=yWj1RJ4g zbuM%C!HugR41lg2obULH(1YJwt9PA%jz3f_ms~W6$Xu)Gtz5XqP zdSglDL2zpC-qQ+E?a&1ukv&X!>8aB0dUYyWi(Q=tFo)(FTxEMkD}1MOIQv?yf1<8) zR*iqbtxMOv@O}OY7~-25o!PvcRN}}ryX|a=xd>%OCxe=Tb9*zd78o!;Tj`t&>5uif ze~MpEAt05IcXLt}$-7%+ieQ=}pJi!Tz%(s(CCsmirp};z`cPfe-3X1R}y~+as02>RJz!w4>m&x4$BbV_069|9T zR}8XP$VRnBQsgOU3M}9?(uXY;SidZSK%k|O#V$pvyu@o1{r3(j>n^7)9}-KPIXrXb zLKRw7kfw#RPGgz^uWF?&ILR}WV=A~s&4h`f!W(W1&5jjH+uH3e&%5o#V3Vn;X5D`C zlsYX0KcuL&(ygJhT$t`WE&fnkMp1v131$pznJK?wfHu4Bsy}A^5CN^5o15@|t4>lV zmV>z%1DC*H`|;}&R7~;$jqM!5kKH!?{p06P@Cb2EhqQiivzuc98ktD*3-HRIC=w{R zK*=gh2)|Hi&NF*q;#aFmdSC{9u!P>(ZH{PH@ysM%&)m(>?YVO?@yqkW-3x#40z8>b z%`~e_fbAgsiY)~jC$OV@;Tn+sUV)1`zs&xiL;o7%w86#?ecY3ilqHQkq9G$PS#{{^ z-t_POoIpISH4=GDnaopTnYIC<*P7U@qq(XYt>);}nZ_SaZ7BTPURd*;*Qt~2m2tri z0@I<=Gpy^@gu2%bC)`plbM$}m-S)4Q2A)9QB@$4&idx9xK%$3{nggt#9^r1ZM>!vC z|MKV))~B+09lwn6LSB`$TsjreTEWQj@p1# z6PP2)5E6CTD-%42&tL9CsU%<&FmYmM1MJ`%+bc3VY#ctLTJn_-k0gI3kiAs)jns{t zGv$c;Fa>^{O5$?aBh98oGMCHh^ZaF-o8a0sb^F*9%(#muY4br0y_fO*qIrkf&WFfV zhY6|6>|D(N`a*n;X$qI|%Q9QzGN1CsJoSZuLDZ&c+wSZ#;M+7Akr+&2UD^R(Z8`Q(35j(}b*6MqNal-s)l z(v5QlRSuUD zE<_0H><=1Ts5wBYlER)wX=`*!_ax+k7GrC=rjQ=rm+7&9A?nN4w!T8*lHBm_h z<3DNOlNtDWdSyv8G=BXLEZRZkXYew|A-^z`J9<5{<#t=VgQk!{?p1u`uf8x`4UGCn z!+X=$b9=SJ`+tetuh9gVe0~&Ma#Ozf&2e$}w|(>vw+rF{fV&D%6hY<$2mk=68J7V} z1RIyIodRhEqpL^vUY8!80#q66p+>D%^8zd->icn^E*3N#4(fU1jh@kSmyezTM1OkO zg~`T|RZD!11{b3X@OSmqyz9q`MPT)i0RZkZr+J@(dN(#^z8yj!?pqNJxU!mS6O>K4 z>r+pGp|#~?%Gbul+1W|G*c2eEw{6vHONEawd!{xzh%$FzS?N6jcGybLW5r z0TT2^BSAKLTf$<*eIh;B6-7DAlz&2gOJFYJ*>1auejJ1oECi%9;{T{kn#6{5X4_!<29etb?Va6<7=Pvt1+abRCCIhE zGuyw3t3L5=h-gtJ;oVN&Y-}^Ku;)bZr%`d(K0P}*yTKRl@JV#=mh~@xo%3&@;<3R2 zWE&b>D0%OpKKh+3(60b&3(rP#f@bl(1mbu&LJD3z&b%O&Ab|MPj7WkZ(K!f&b*5xM zJ;;L?!Qzo#d=n{rqe}-OLT+@S7m%gC_Cx1N( z@IBOJ<%X1bI`5h6@m~Z9S~mi_-dX@RDg0q415XN;e{ei_{i%C)J|*f@p3hF$FN6Ep z)6cN51nK>GnIeITp^>0#|7&My!|!hTi_CA&{QhlAsJWms%AguVfRZRptm4Eib`pNp*CdxOmx(V6juMj9sWKX4g06=aevf@PTqAJN7wQnhw#7t)qi<$v~2vd zwACrBrY5NIkF0bbajJL7{FzcA9f#IEAMC3P``CdyUI@FdA?7so0`qtp75)uB z)=-=oQT5cY)u>gif2CKkc7N!^DAX*tUX3><^{Q5F6|AJ}5+^lrkVr_Y2{sy=F7hD; zO0Kz`SkZZ}QK?kgJP@olt{~3r| ziz|Sn+GuPpK@fdePfk}>1|D;n!fb8?T07VrO|o#KS!t_q!>^ZB^M6S<51j;(6k}{o zUP|~9lVQdhSJG|Eaoa{YgH{tRbDp41D&S)@lR-RNosINZz{unD(h}d9SC4+Tc&`6h z=sBwADvJjBz)l;3d2Z%b|37DDX-5)bmIj}|%aUeD6gD*h8lz>SnyL@yygh|p>6PTTtbaSGtT3j<-}P=IS5Fi}w7sj1XzRA!(pOO>k09I%I36Ctx^5JY z{!aZv3%$r-H7mh3OFfQpEQuEjveEx!^C9smcBSz0U&@#-IQ8cN^o>T{@qCtkR5YNo zCA22A+!1D$6~7^jej%b{eKQ7Fs@qn08~H8h=R6`M7tq2IxPMu}OUu}CX@vd0&nLw3 z%U3@AEQ>?S%2*`Lv(D2Mae_+gGPs$U#(#ZKHYIVabieaCrh@41aHHVCe3{tGMv*p7 z9O>&@y{hr9-ehat{(#K-<9bKEQDQpC=dWN)O5R0++?%gouKd;>=c0CGjd>X_-vD zT&0O~{IFydtkTq0TxI!3=)Br($frc7e`{RPcX~Vsh^M#AO%s2DU>!E2S}a1kVJ{li z-&IOOKO7e0vRR}H)4FqiE|HDW>RGhbEDGmVnHEDmT?YFPP)h>@m#(`Q7?&k%0~nX= zyBH3aY~KhPmr9Wn3%50 z%S)MK-Z=cHv3+_&?shu%jnQb7-znyoJ-J}e+0QTUpmgwkX-9o6zdVoQ%yGOHWz$>) zLZ++q;D$wI2vr&?iUjM!+Lzk00v-}qerLIOdU>a#Z!t%smyGu8<(CSx0zm--mrSz) zgd#kJ!6B1WrZ_P1dIU9rsmRPv5(`26A7q7k$qVWTlBeeoF5BZ73WAG3) z2ym6B@(?MLmu9sBSpm40z_kJ;79kkkvW7Il;raAisy4-XB+eg0zsX6L`?Ufb0kD@C zwgO-Q*q3>>0)+vmm;bf`QhyuFx)^Kp2w8{0G!R-OIynkttFPF1~x3Ntc zvYwyqsMnh}^U}`fH3^6C9Pl10*e^zdX)l#^$spQ@4p!Wb*yAp&I4JfkV`%0g1Np4k zxG0~-bSD=~<#+SbNfvd6mOh=g5C9`tRMsS>Gl$6lV&Kpj9C*uuoJAWa_%u8|imandXjPoc zFEyhBrZ_e9z+?^l3U)!>Fdz`=Q7lE84JcTHFZzmL7+49L+ z-+xb&+nDg>xgr{?GBZqWTm`Ai@%Dt3u>J1=yA>bC8$e}LU zRJM4QC~MSmc5>UV>M_nQJqxbxV+sH>!5BdGr7Wc4hL`Q8 z{9#<&9RQ#`dJtXE5~d}>j(xff|K~8zoqz5D49DXbvXV~6J~n?|Ze;QXP9eStjn3rk z6)u^)-O9Fr)+ECbXs2ixvuVhVp?shtSo9Z|*ad^=6(l$xpg0KlxpGXM?+mFmPUJmY zg}!Kz;{^&!p$eb}x~baIC^?8gUB>!ZaB=e>n7RdvrE&Lh9McmX_4 zVj_4T0h|!j>n2X%g?C%*(7$vr@J`s!CM033E)Tz^DovA2j+V9A2_>030W^7**>IY-Q#UDl}D%jeFm zuAUc?#?S#LyO+uU=S7-ZDYK*I0AbFe_;#G%@JQMQM{CW^Yb_OHEl)=wfGCheX!6KS z`Qf+^-EzPNpAVISh3*>@78r-r)K6U@i1C;6Mqbx|M4Br_lC%jfz?-@@_J4^W*JTcm zV>}1YGy+Ruk__KEn1p$IQ!}}(TLx+@NKO>Uuz)exmyKYCb8(+rcmuw$Lh}8rm~%ou zpP<3%OpgsvEv&^X?fJ=qi-(J@p#j)fZsVK-C>?hdh)Fla_L+&1Dh~NV>xAxSZ7Q0MW!Qyh^w@q`w zk>_-f_-&sNcf%P;l%LmE!SWz7P()Xf(RF#sG{oIjv>Z8JD&kUrPYkvlmad3rz|4i{ zdBC3U4E?ws1o*D($Xa}Hzh^w3pU#v$tb~wd(2ve17`b`L9A2HP*nguAF(UAD%FAy( z$8!D<)AZOIS|R9O7ebxvP<;?I=Z^{G+5kKrM>FW^hfs81ot8jnDY;I#d+&dp*|`t> zn(;^>_?}uc@sQt+2nM-@ISw}-F`F2g*j~-0JvvFx$$}>#{4@KRf&VomU9@JvQxced ztUv>C862cG+1`x|bbp~F^G}DJI4)V90%wJFj~9A_Hqoe_i}1{2ED)n>g45tM`fyN) zNPtN%g}V@V0m2BM0%od~(-!kd$IS`d;~t*FPkVyc1InM1{x)}Nc*D!>=toxJ^)lQ? zTTY3lp`QCO$_xL(X9M2D0JrrY9Bsn8_p@@b0FsPTpOilBJb#C@1@*1#gmCwOAAY#$ z>q%Skg5A_B`>IW{f~k>zx{&jgz>P#0REEuzd|@ht9RTQ+=MqklyuoxJ127`RcENij z$q&XDJG73W7+RalAn5?ce!S5hzBm0RZXyj=E~xGkQJ$D0t7UPpWx-B3ySqRci*z=)>dCuMGN7M2H;n3~~?0 zU~hIxotR>AZoDYUCO$FA1sFytJt|)t9OM)&gvqj%Ab&`X_atoqZjHGGdg|LwE<2#~ zzQx)Sv8JN?oH8s!BBsBfSpDL%l9^H8mE-t%OWf%ODMF^#MOd~2%h`QOuN&}xZg(4T zv$IMiFw+9T*Ap;739=Xvp=g^Lg8&DsFU4Z>9BXuaCNfU3K=-AVuC||MpD2fff_N{! zED7YbKqc9eB zAqmJa1e%Tn005|$P~rk+e?{$X8sy)1c#%x%;$-z=Yv#;_GlxU!6Us!+_+f=wRb1XL z3Mnd-rbVk-Nz)XusuohAmNUT7v}B4(QZ@?sQ`U(4->$B$sA3gWFEzcP-<6f*6k=D5f77%V^}#k$3b|aw zi^U=`RK2e?Xn@kwx5FK$|MaMN5+dRT0jPgmYTrC3<~}tw>{hlLB#}jO8kb zED3{hg{6-0MS~i`@)f#hFuFjdBFW<>{qpd%S(?CGOf?kmVrWa}>?_NuNSQ8_jfl}%HgjMY zRt)s4VZ2dAw8C&R{&p9CjOcz^GaQ6N7Lfk2KM1bH zKtCNlxC%sp_jl+C9j%C(oUytvl&cADI!#E;5%(Nwl6u1k+d#1M({tF6Z4Nl$6r7z5 zK0+~zf3|bc{GXeNj#52-Os7dIK}WP_zmHy+*(Ua3MoAclaIP136&~l{8kzt~)6kC8 z{=#-wr4A5HvhGxjUlIQOm}f%L^=)#OT>Vm)?Sb(%Ax(X0B+2#dO>%v6ho=eL-E83U z15sJN#>ZUOzkt4!>p$VrOyh8EwDeY2-M05Xf4e+w^TG8kz5H-h!y=HeHhGrs<=IS( zxh}Kw``@A6&b!cvzcgajhn;o(XN>;@XQ}CS10PO(m));_afF=)bEwky+2A`W ze>&Z6>vsRyEDD;B>;RvG=GkR#*MAD(uD)T5vFT~gs!(U1|g z@Ch4VJG4AqxWMrAGRnr4NQ1in!yH;@yG>x!)^7Z6uXbno+4~qa9`|RfcNh+{bgc!1 z`*+g6Eq(w{O9KQH0000803ZkOwHn!S z+c@%FUxD>hilnW>XAZ4pmn(4+Z#i}8%pc)rM%%@%{lEM}k~Y2K60Pkd zN$ic&gbVpTCwCdgVJzRJvCjkIJPJkPI*F6N{~UTjyJfXnt%>gl!7c)C!Eb|CeBlJ{ z)umZDfz>B4``;JWSFh|(AFkPe#l}2IB5~gD_004Ba=E4ZUl$0a=XU6=Rh z9qf63>bYn4?w(~xWY@QEu5J`Ei3?Bxo^A;V;z$LLMNfFM!1e+KfARkP^?&WRckixG zw!|_|7XFD7MgDh%;^y-1!%O?!#ml!>H@&5W0C@$aik{Cj;xe?J)`33GS( z@s9TXLBAycWTBC>4DK+fqI}x+w~?1AXpKROD-ZU z?x%&sOMH%NZ(?sTbK*9;5OX*%&|z1;p9(Jw1T%p}s|@OLF^Rn>fgOlof8n0=pFVwl zFyTj&{b!SB2hU%)hbJe_<^`tU{#34fr009N}bnO{WB#ez=z_fB0Z<>Rl$J~Sg?-v|7f98+_gI4}dVu_p? z&yl;~GVnvkwU>O13uXa<+>=N7HqpR1sG!hS2`NKZ!)ocg8E3a?%zSUc1A!Yc4MOWIcF}!1xkMqX3)b)q!5rniYy7Y3E2h&2<=e)D(|u52@Vnr?U*CANy6RY5lM4T z1PYKSI}eWMJ7b?Cf9|b#cp^z%UD`Jn?=G#fxTj&f$i`o6cjCz$#5m*M ziV}>CQ)F)V+u3LjN)6EFz#Q(}8zTz~2EcLF-8;AL4+`fie{qN8u%v-K;3H1zCxeRZ z&EhbP2IQYbLkq$r=eH{oCr$*0XOn!`u!?4(9ZZ!_W`$C=M=;%_vK))nE$l_vOhg8AKc?DsWifs8{2%uR zR@d6SA3HvellyVuUUXKHtFAOS1MStUOR7bglw7n5@E|05-LGQB zm{O|MP2*EQK?4F8X|B(n2n-E`qYV{*#4+{^FeelVe{F#dt;W(aNX#7{!iSf5j_>`> z%eh1WSbb$)C52LrT1%@onw#gsI-QfB?Lo7=h#<`k zb}*&vDBqJVH$N!*+=?|K%n(MCn&d`nE`E|H*Lx^2rQs^_23t2Vr#CspxS$D;t8@>| z-Dvd|y(#PAsU}1I+p>~Gb7MiekeG_*Op0i;f1(72xN*dG*9JxDGO7cowS~^;WYAV5vI5FeOJ; z1uiqb)z&T)w5ALLE(EY}){*JWr~>EhBlwaMMR^P5tZdsC{#~Z8LXbhXrWYZUopI%@ ze-uNxPN-v{dJLU%m3@35P`X|#7fymy_>?-!l_ zjrQOiI@X3`RHWI3@WunzTpehrA7)fNO;%~?Sn7#Q!T=&`%3GCH-+_SJU<|lcV*~iw z2Euhl^x*huq3y_?f>ogAutnL-I28Hrf0h+Y_QVFcJ?IU(Two{md-v{M&m8{N8|_)W znyMswind@ZICukbPzgtM&@w(iw6PIKy>H+HT0;poTSXC3W)=w3Xwb;y&mu&aMuccr zr30ZqKp4fo3|Fho?PiiI_c8&KwLy+JJM0);>IjPX)&eTa#Au>mJs(WLlm#Xof4jZ1 zVXJ`)Ole!`GUu#W7&@*@6gk*t@)=0cu4^0mrOCVwQK06PNEIit5 zx3~LG_I0q|-7n9L_2)-cR=#$8(GZ79S)ti1^Q2I>D08sNu^BEId<`WqNnK{u0+ zlSPDA9=t2#`lcNFTQS9e;zUp#kk#H0nUUA>hort|(0np{RJEA-?s|j9M~yiVbCwt++e*(jkB zd?vWXKQK2K*o zPw_GGXv-rxEq0Yf(t5AkSj{jIrtyU9rLxi^y%(Uw;b@H zWj1#}_-t`~BF|Cjf8!aD*6|h*6o)^Mui`KXC!s$euI&Koss|3fK)*b9ke`2xVu`T+ z9m?J49=RMEMH;z(L81u#C|QU#;clygVc?o#%+gP{!L;h{(dr%pBSMOIn|*5Hw$Ihr z?E#SX>(NO#EABv5)XQlHEsZ|pg)ghQCd$4Bkt4|JdhwGFf9+SzUPU`UohV&3)elP5 zD77*xm0w-a9JO(9ii_IVv1#U7k_L|6VCOJrcvQ6uHR=f=p=Z`#f~o3d3an^ccPC-= z-K^P`nHg@XE-QKD9eRoRU$QG9Xx<#b;~x9~#mDlNdO7D{@%Xg`mtUl0bCUe}x-1EK z&9Xrni_INUe_S)U)$e=Bz|@T|&6Mf(P}_jN<@(X;Di2fc*&QA9&pUZg>$D+6(}22e zI=QHK`z_T)TQ^4r^}*E>(UBK?=5&a!Mi2wDc7|qnR@V=gkR+`&Jx%VFIjE`;*MQ`m z&uV^>L!)SoCV~wCW{nvZyjOkrWY$~{Ul#u9GML7P1oE_4Ty>kWnum7Y(L`)ls@M8A%GVo=C=Q_pJ+-qd%4y$nm z+IiyAhXw`dS0S|s2*CC6O~$tM^H)QD%?JCm%jJfxiYM4xkoEfA>I52)d{Kq^QDcLp zVx#COwM9omz{AfMOEpF*z-*GJl;)am5VGjMJywvV%B*sSUaq~?Nn<-HR6@SGIj??n zrSSG^iIM>GOZS@ZAXKqRZkJyH#9V;+n+mh`2}eOnRWVqt{{y!(^a4!+3Kj1tV;Ud; z0QyIlF9G-9> zK?8s=bUih{eIGzdqDZFcn%U*a6b%CL;<@|o3j+Mh4fllOPCnhlk^QUr!4ACT&3J6b zQ5?we_{LfKUJ%{Ht^?!bc;Q4cpo{RshvNZ8L#eAT@1``IE*$pqb{2nn?#t_dy24w& zzLPJnB4;T-9K=3wZ@Ki`7nvp3_Hx@Opgi(|-Yg%d^}(@%v2J(rFv$8vl8=y*ICnx6Ce>DUX# zuII|b2O!Py$BE|t;e&tJl_96TEOu+vmrufFJee%yI1UycKiq%#@IgrXW+}9B1mf<( z`%j0t?HktvZ9>NlBkFQ_7k)fZ>NqMDdh_|@08Ee`2_!hteR0YI%zqa?fW^R(cekm# zZ}0CPrgAHsi43E=WFdS(!|*2Ku4&|za(C~1a1=Q1XR4*_xYvKKg4E!arei zIxo@I?Z+R9UePh4x~(84gd(`AQI%MVN|<)t6u7!nO zk87rvThZpOv!>0xU8!e&ED%gRmJHiARu!rVl}d~1M5uopTLvfCKswX8h6zR3N+g?B zxlP(pufW!oI4+l*N~2a$Ivx$GOsn;_=GwH{oHegY-q46o*I?aOGfN#I#n2Q3nTloT z2393ErAd%wORO@gF_r0xM2YMkH$*-%YGtbsK0ZHcUBhXvtF+c>MCRk;cCAh`gSoa| z|AcI?vx6+Hh;L1#@=Y#$&ar3soQa?F)a=3y;&q7;w;mlzSCzTb4dX)bbdvM&+XI2;Xv^ zCl{hQWdKU&qN$3Ap;@{@q{*bPxgcCe45{FD!_p;!ThP#iO{;zYqqylvYCb<(;B^|TO<2jX1_8E!%L;TC8vPvFVC+b zt{AFfDu#|Jq!lbdXIN({u^Gmc*+?U5vO0gRCeo?x()P&C?j~qNo<~Iy`xSeqZv&Po z;97AdN#Bk;o9RzU2h9ydM+#xgA_U~llH;u>`PQhv^-G=6X0Pxq8dZKI`{4ao^>y8{6%b=+L^o8T0lFB3AZ}q;lxBYc zm@-L(lDb`KZ)$bSpLa-EO*7L*$X7&G44RY5X605QvMwvn9X0#&O8^@XVF`do9V1Jz zRD=y%u_5Iw&Ivad1J6hz(IMM#U>2-wZbyyg)9R7S%4ia}crYJKGM(9`T8n8uhcZ;0 zE?_EY0HTjiLN2{j@*x5t+zqS?TiSnw5JS-{svv5ZCekIKI<_QNR7izXdmfJ-n}cp! zpLc}Ued-T3bFEUyn8BRXgGs?vix9!t&_5M^sG3Q{gQjP)k;yboDoTQEh}e{xLLpRw zWMu2M#yCS7vv7)Vr3R(dmbqK5`a8KqYAepHb6Uq0t)1KDMeQl5&U?5ty&`|x1+KA_ z!nu%d8KxmLohndXbY|Hqf#QO}@>mfjhfHLWX(lq$v|Gj2zP~S_jPI28te+wMdEqhF zDy~JP(~B#9Ru6GZ+gId=9GH?Hj;ViAz7>-gmZc}LWdOWeh!9gVpt?zBUU0q!&X=yy-tH&Pe#4%7#&mzzqXkdY7iHHdMuU>_JQ+OygzSUj1e|UeV0oxvCM3H= zDn^>dRUMfes;SMT&auwZh-=n@mh#y4R!`3h!`=JSnNslLQY|;d%hAwTXSzxUb>dUu zc8Dk5`0yA0(Z%ARG(uTu0FO$(hz5g4<@BACv#AILozT1^zxR86I-swhMQ z0z)jMCpFBliJr0sJ92+HG5VEu`Egmay+Xku^RA+?;!c+L&LX#;R?1Ji1^J$VT@iSW zco7OT5UGOcwy7G1jV-V>qX^gol1PvgOP`{x-(2^7PtUMX!CMY{(|IK{W^r+}sV^56 zv&u>tPfAxpinH)gy5GgKrh-CJwJ->=6{&$7ZdeRUn{nW67UqAt1r;teadV>#23qAY z8}8a}v!k?eIp_ofI|_GZ+1+b?W=4lkX81G04=RIns@aOAYd}MxjwlK+CJqL`8m9um z0f9|!rm7R8@z|RVaJ;GSD${9D-*-CoVyE34`5FI-M1fdkAN_cLX>S@u>Hk-y5o9R@ ztWZpVO-&^x12BIvZOg!bqXriodJKOKy@e(LtHJ5OgrU&@-%Dn( zM6}~`-!%G9xzV86l%{UZh!<2>d&qdNyEC$burSXI2E}W2V!D4HR}9h=L!lswkcKU6 zU}vhrnXrI@YX~!rn5_$v##JX;EVV+YKjx<8YP&ls^7<;??YD(hfJrXSFLPS%OKWY?uOa+bTm*Ft9)tFAH=KaGTwjrC>J#=SIjPb+uNQQ9_Ro;x(Q^= zRxz!PQX8pGv~;%v7!7&g3pa~3?6 z-Dl&6k`Feg1gtJ~1q^HgCnScN)M8kQGzhgc_?$A+;AxoS*&f%6>SH*l(QN3Iwbi^> zW1N5QGj^#hJuLIXxc`KnE^WS+fwTAA*XK9+iYb8+0bB!Yn+ma^2Y~hy16!dMB_@_o zI5@Z|&c5+64IqI}RwrJ)9L;jrn)bcjaKuuRU^p(1_ zp*DdZm?klnz)VaXx)Fkb7^f}JstV+zD1(0*i7i=g?rCw?t7zC`)X{3|oI1#s?bQ(4 z)5|RPwm?S5;m#E&s@nzw=?KDHQVbQt7L-y6RRlnsL6`%)NCW!)M7E{(D|x)GLczB4 zPS)Nu^Zvf3Ef)E@+I32W%)%2nrF}*9bJ+(*WMeLb4y?zJDg`7(&<0W}C}f-gxC4I` z+n|bmXhSAWbH)a_U2fEyvv|tgWxqL8!+%1$ESx4_Y%l`9R z%NkSf2Z9efII1d%TDm{mrtu*qq|JdkH+VdvL>kWNX@UFr6x$J|%4MPy1e9(VbDHws~ z2B%mOO#<_Vj-OaMwG5S8sli)@>w12@Dsi)E7pjf!@Nu>6(6+z8idCAfXfDo<9F)Hz zJa(P66FT0xzcr{E1Tss3aDt}Z0M1J+OXEP#OdS#pxIfbrlIotdaMP=H^qv!Kw%K+D zS*X}6bgjmaH)ef(*{o3wc*K7-e_x6}ggLRO#uch7iY0Xdl;5P>Qgm1bg^mC?up+_f zsdR1G?`W~wY0aXIUN3BLJgu=xuGFZPoa(Aw;d8CMX;m-xRyh0}hkoF=6WfssF?PK0 z*zFn$V7N`8yA#l@QQ%8N1DH2W4N-i+)S6+ho}M6@7S9^-%B&b7tFeD5FZ^uK-*Mci znv=SWyYz=*lRc$Z$tgoq8RC+Ir=`U$fHXZ}#*`-hfOv=6&Qnw!I#h45GMzpv9ixIu ziU{VRvz(5Y+RLvjysbVim$mi$8bdrUWL&Bm7a+p0pwow*-atgLHE0J+#&m2#L!g=f zIBAE=m8CP1TR$HOZ#91^ti{wGgw>sqAI#dB#)MgYIMp8gK<*25Akf|^NT((MipdS6 zAmF0Nz|hpHLn0KU40F_f5e0qu3W_0;Vbh0^agieYWN zwjHs1UM`0Hpvz`#XFRV;@s)k8E9v%zve4KossaTRSxJ8-*D2QofIK5yLn@KFYI2Yadu65LL^(P|y{ z9!b#bWoof83Y_P8alW(Gezi6jPN`XD9e4Y<*nUSkxczJaz~B^0z~&Yfn!y#O*|rLy zs2CapFF-rY02En@Jj*hj@D?tWh_dcAGBj=sTxoyg+8btT9m`!jl2Q{Hi`EaSJAGjm zh6SA(WIG0K15hhXB5VzaJm9PV1h5p7s+!PJn16cIqo9PAzLzc4G*45r^=>$GETx`( zY&A#fUTv=)>z(5Flvm%YZreI^24H2Tf)z9~*#v+JM+gudL7`P=hNftT-Q1b^RBS!< zo@alHVXi$>>-qMwH*D0irq-&nV&5q$R&NtmmfyGi`3k6sRAHE4ZOa10lT@eBtqDzm zn#&Ceg@8jnIIJL;_ubxLD>7C^o6e%s6$I;k#m{KU zYSCy`^V=HqRs~!0#ay(qOJn6G^P;jbnh$@q)?QoGs*XikjiOar%bbxLLabF67a9q0 z-(h3rtpUWk&TSPmuq6ik6sn37W+pL2lqEHkbp9qzqqrDX-EwxduTnLnPy1o5Y*_nj zyVLS>BHp0xepaiuV$3e&Ci@y^a#e7jLQIAQ)N86ULqN+(HJxe@JgNeXfsU->PEvnM z$t|^hmP2{kiC)m(?4R3%%*Lxf#*63P_GyJ}T2V6nOMRVidM=m)MsR4eA$TQ(jzQJL z0w$*5OiQy7Fl8gznNI|>Csci2w)Ym@&2VP1clNT3it)5-muR^VW*^;Aed4t*zj}J< z_ReIdd(8s)m!jxGg_gjCEHV)xs-=G?JCo22T8tc6;buS0R>~uPvhH;{DA!v1Ppzie z(yUc~&zsJ6l`WK|-I-s4^>KIMOtwXZrP$EosS5Bgl`sZe)K+Y%*g|7cCY2jgE!{k8 z?&@q?pXQ#c`yCpspK~p_Xvd}2&@^)~Gq$YLZ`Xv~y^tNoLP&Svxbt)ISh0UWAh05h zQ-DjAQHnU?OaZD$uqv=7Edv?m;rkbVs-i`6Fk+0@D>;aYvl-jkouJO5k&lLxl~LaL zmvv&}ZO-LF1r`>NLt9HTv_{sWVU?-fe6OSU?T`$*^Iby=85DoWS>Hwm>$4dx zguL{9q)cTCxgIMf8ZP}h5Mgu;d2H*YS=N&zzYO-TyUAt16IW3M`F4AVTVK zTWU0o_o!7zUZFW0BDa5LYC(A@o6iMa0s`MHD3i|0>-(+lb7OP;E3Yy5{S?>;blHHT z!W6)YX+nWaUDG8-l>RgSxGavI9KJ_xxCW?&5-{X3Ls8?LF;%cav?m zds}pEFE5e%)_cB6Cx#8Q-_#UtS(Gqni6H9)Wxy0vWB|5t0c(G<)25qMv%|buUfBf| zNHW`0a+8+RvvRoFEoCCNvhPfWe!h2g0~e$pHhJD~HQ7_5(0CyO0VUx8vP$wEVFWEF zq#u}F5r?n396l*{!-C_tYPC*oJ@pr(0rEGju3KTSsSKaz;ht=tzomBwY~DU2F1&n`YgkAHF@UKmN7BYrWt@So3XuwD2;PvSElc;%f?A_DT1jiM;e{1m z)+Ys$%f{hSUsNVx&*gisF(6Ae`G(v{KzFABh7?-?{zHGj*un%rPZ}|cq#LG~At;~* zu@vQhK=AR)aD5SB#CI+Tr3Zh#Iggxdg z1+itJx%PjwQAX=bW{rHNnQIQ#M#gPGB$u8B=5(EJ_4m5venV~~7jhZ9;xw`~Yyga+ z1h}ECQ<=^w5sFOqGz=439z}!lVy0Yowd?B5!JsGeQQ6K~Ffiz6ukEOu()`!m9AMWV#L^Y6D~u#xrK*Gz&H+*ki&JJn z??Z%@2KjSyJJSjQt#;?br`?RyjJCJ0u1Y&T3kHoG&ld8vQn~rg@VU`y-QHCm%hh1w zKP`W<&1~K*83SMVs?y&Y>AY%VTM$^}=zO_kDN`uMM*` z_ZM=ow5Cnpn)L=HoouyrMt}4s?PR_=)hh(gjZvn$^h@>mtlTT~Jf)FSaZRAdpSV2k zU%E1H97+yt>%Vk?Ub=uk4wn{=YfsH_w=sXtJU!()opB{MymkrUD#g|Rk;^bn)Q7_M ze%e1->Q1IS)GY6O-v3T1dq4aCn~8zXoK5^^%iqbQP{+s%J{d4u{WXjh4q!`Xc&ka*^`y;a@+)|GO{$>-XEQ_vtmy@af<0{_*MVAOH3{ zx_`L;+x_q8_Bda!TTI{wCS%{!%x5c z7R|T#*I&YiLpnUTGWso$Vf5P?|8{%x%gx z=wbRK>yld}!0SJ9DB!?v=}Eu+625r!moPQKt0PY>dJw|2Z&?Ed7)$@u$|(4lcOO$ZS<{t*1{?m>UKJGlqueFmK0 z)^hi@)GwcO^(%DF!6&oHv>)psNw{po2FK@rT zJLRwycUa8%Sr4Gm-Rp2t^qE?nbq{SLr8OCJ(^>bU37KxO5h`H=yKuu`fqH zT}0i{N)IrBbj5!WB;?_quyJzEagOj!`iZsgFXrQ(8#!()->)!Y!2#c1?xwrDVuv{c z{(m;*iRG^3cVg{NZ%(&<_IFONSi+;`!vC5g>jKo)VB z^IJ6Q)I<-l4r8AjEKc40|?%F(O(ex4r)c2D(c+uwmyt@d!AbJgnX5O0P8s9OZxWf6*M^}RurY& z{y6-7u}CAMQ)_l}zjnK~Z%A_nG^g)gwS5R>1f`kAi|FokEeq;S;-pjfnyU3?+T)1J zhUbihrO0xiIA0be(q`;{OHXAxrc_8WH#kNOl zCXMBr{Zf{E{3R3dV#9a8ZE}|m`R5nZPIyR))}IrwUM61@AKQV~-!D06^cE0TwhNLSsZ$U>|Amu;2qdNM zbQ}C6vs0{duk7`F`Zi`A27dzwPWOm@HY~1hgZy7mO9KR#@xT}umo-`l7nd%<7z>xi z83Y`+5E%nV0|}|%cg9Kv006d^VH^W`2r3vRxpUbwvzOx>15AI_I;TQ#(JR+jrhG2^ zjAzj6n4L~1OsJIPgePaG-5tl~yfipF^`D-Q$D2@uZ-RnNE(ea5O;qH@pu}0(~0N6bWCC91+!^H zr|t+K^af26hNt02EL3Q?jkgj-+F1>yVO5IZM%x%^?(ItyQweC<8+&1s7wgE$I~_Sb zk_+Q$6+1b_*e?un_G&?1>gdS=qu+NIfeZ!972}z9dO}kAo(oc@i|BNbC6!nO=ua(q zA!!y#!ef7;=uJ*U|s}3^(BxWh1sFvYMks-;E!gzq7ePD%P zDIs!-PND+WI2wQkZMP#&F)W(q2-F?UMxHZr#?GEnktdu+eneH7q=Dml&T!!F`>NDH zXr1SyK9?{2!dy~;3;eHw(;XykgsX*6_ZKm*qqO&u=^Vwm=22K3s>0j{wl zOKV9JxV13dNpfq&h#w*gc?1*!&^+?I>DYgB=qQ|dO}60MD!KJjs=_6n;12F@L@Sqk zB{k-2D}XFqT5`G4Eq5~XCLY3{Q8$Vj2yHqY0fHhuEr+zekHF^Tm^QwZZ)5 zQ*St!%=Hzy&XYJe0_pGRMUS& zS3(l^2yVBYGW4(9(Pt69-?iATeBwe^>vd{90W!y8g<5YzPXE2+S$CJciYa=*s4TXUOL^W4|~GA?Tk7S}M(4J=<( z$k)25U6LPgka}@#%y*pWUJHBkTGxNLFNvfqnv?q_jxuTXdLHZD;os~LxXB?@5FP1* zXymOzjQxh{ajmx23k~Ek7npachpg?QZVx`50sLi3!l}$y;?ea;j3|?%$2fmegK0J+ z#PG4P>vw|g;QJxfLha-H(wrYS_$nE-W@V_$$J|lI_%p7yHuF|Ax?QlWfE@uQqV2s( zNPB})8Cj)+H`*Kgi%jo?`@QKd-U1<_tdRn zwoN~`8O4M5Wxj0*RD{bee$0PdL=ViH^1spB0x?^*n&D{Pj;@T*E^_^X?;Z}b3}VG1 zwZs7M%dD$C*;j%WdDk@$K(CFKz^<06Z8f;d>T?_Uh8WoXG%@0>M#T|{Uy?O9*4G~C zt^xOI5O}8op)cF>Fn9X39?}mEgoj&eJ>+c*^L)K_xj)?%IG$FcUE^KLw!2@^wc37q zcE+nOdB}?ZTif!Hp4M7U^yut|96wLK;zcXUw*Bsm+5+E@?prnnzk`kW#R})Gmeu+& z(P(q5jd|{GP)h>@6aWAK2ml}mAt)G&lhq3a005B;mjP%39G55~10#R`Zre5x{@+i* zbps?dmLn;0Bzbk+6m5qL-B7IE2Gn*1N+cb6`UR3o`U82by}({V+oAupq3hjS#s+`!-OIP{-U8bEOY>hp zMlCX9f*N=LuWu`jya)E83wBA|z`l$;Z2LaFup>ssc96J1$S$z!c#$#Ohs()Whw~EG z^CFL7nm9Nh(S?%+L6`=3ocO^wO1e`xh!Yc@Dwwz@wlNVMY`wk>$FIoy&ZNc)(ra^G z`G*$8RYtY#(er-{*N97n@=p>{#{cD^&C zLS-s=rFdC1fMh%&zDvTCL?LsW#B+Qag^m+NAx&B6djUOSbW`U^fw>l27=lhd>=HhD zycn&k)elFgwZJW;H};QKm{X~6UV+seyOHO*t{)vZ)m491ViFUq8ZkV_4IR&OJ3#lF z;r$SuE(y7*2^(sns*{Y%8!ASU9n=VmVEy#cCXqk3eUf-~H1{Fa$mEOP(2c&nRreERF(hxa5LJu6@@zWIB9`gg+565FWNs`d^oWzCt8;2~o{D08@ z$|&sk&y;_wx>z0YU~cOBQ4rZA!Jh5Iy6wdAT$}nS^HQ8%q@nwbJeGsz_ZcKu@ieFE zrX+3KVMuoz-AG~}D9t;XRCq<(o}wQ?p+^>I-YbQ?OxB~7E_Ab5nANkgQZycj7chOq zctLbSHG57?Y~u-M0_Sx8;VCq!M2d83&L1s|rKNv66hwY%&L(YTTeAn6*?;U}qsKFA z;U4S~{cJU8Wotwd6lYtdOi42~M8K{i(=8{oj5&dJsLi8ID&U2w{RV@B;5#=`-WAQR zY7N?bxQo`AxW210tU%hliy|o&03+y%e(dWjjGPjV=lps}7V_}~K8>>5){pJaSN40y zjT8q>d9@0{ja21if zfX!c|)ZDm19^rtrCPynv%R=#@rhQ48Il4h;^_oAU6;-CeI2?=CDa6hcV0n^5+*JDh zdi1SqU>5?7-i@gf@rX_1K7~{Eq7IE?h*sGVxY2@`o9u5}qMj4C9>-PCmuA>W>gInA zfoP$`r??WOD$_EXHWcCldhqSxdA@xb52#<`CX*0=VTH5lE4YbLtG_S`uO40ut}4Bl zFDEhDlc>Y|$nAa))@}#5s_ukne>>&5yN!HPU*b9JjkYBncYAa8-NLm-)>+e>ALvT^ z>rYRlA!^Q~X?rFeo?)kMgS(`izVRzPWbRzQcH;w|RwnRhN1bcZ;9pQn0|XQR000O8 zAP6BSrXxbitpfl6lL(hFS_m7Le<%Ydf8B1|HWa?sQxGWzNsE7*3`vD$L4c(|h9C{r zY!|aKf|iafu99ewRGh5MT?_0YFS6bY*j^@SUS@}sWJ`|Mj(}~N=kWW^&qwkZiA2nc zSwKpi^!J@aikwiIl)98aDdG8CNKMLuqaVMe~Yw` zwa1{;JX4K_=MWsc&{RlThyr?cA?G>hn>jp(Yu$5v$8n;JDMgOvOfr3P>~)a+z;2>H zADy0jPk;LHlpGN0rdrR{VK5wehrwd82nYTlv)e-xrCGfizPsWvh+*{&`4r-6o-&mV zeedx6TONNmVg28a`oE0&FD|!zf7hwFE{Z1*1@?;bvoPk%kU|MchmKaY20JSKf||M$Zme-9rX@9saY z?_@L6`cR^^N#Ayfj(C{#`L6l6({ zU`^}hnqgZ*d5m>8<^j!_j#6CkjGxn@J`)-Oa*=`r!WCf!0j4;}z7~CKiUL%5k?>iG z{o$xrrdyl;qk}D_RGV8;fBC8jtpzhJHPI;$qeottDFzb@P^1u=EQEZsbY8%8jultP~U4nviSMP;}F)e74s+smSM8{Dk6s%piu3{e4-SbGUG zxb~zQs%>izLiP2QH~Do7kII(YYclIKT5I7YJTn?ndWmT}Lw{4Ef9NK>fw5yZL%Ig< z6yY#}1N{8(`qf!Du#lk_x)@XFVo;$Q`mMO0;8+-9!gBpDmLw4pC8#ig$z^+y;H{XO zrZ01xj4p!?nzf*8aj$V6%s_jV8%xyoZ9Tz1E+W-ojIRl~n;@DL1>Oz-OsJ zYCRp^|IvvV()Gf4+n>zOFHs6hCKvxSz&&#%u`<&KXNc^tN#S-?mYNgaGFn&1tAE=^ zCoS`7!Faa$_&D9*c#g{a%t30va5Z6?Wd|?u0frWx1bnQEGL0|9=F`4>2<-2=ZOIp` z68X$?P$ihKoM$&QksOtRlPY1aPGhZ}b?23lPBm*iDbByQS1bd25(=u^{660e0077< zmjP%39GCb$10jE<8rgE(Hu7Cx!Ifi^v_*0*$s<+dDch1`ZEPniE6&!AWEN%!&M@LJ z0YDvzy`Pn*y!pqr8@#|{MzWXXvW5V<(cS19e4xz}FNhZhS}J^Nyydeb(p=Y1Marn_ zYC*J0n9$NVfOXUj13?)H`PNoG!RS^7W6zT)O5y_GB=&!k;~T-qTqG=Cv7j+!!Ms@V zL-u-doKGW$6%oaB_U3X?fZM4ELS9T8TN*qb1$v?&rY^k^J94Pp^_a1QWn;gm1Sk(E z&t8LAxCwLPB&ONGiZD)HFJ(joNt}%V%YHyTB)}sgUw8u~EnQJ=macHlOF$Z zvt@4Nh6;a1sf#NBEr@+{FEw=(k1j^CfX2hyg0%6EJoXyl3nA(@3#gQE?#!JgfFY7csYLAgc;(dq}9 zj_d$4z=o~z0JJ&c%6b3r>m$Q|lFFF{eu!J0Fm%$!t!zIPngLqrKs9Z@Bl!OXg`rV;mceo(}fLgMq$N zQ5V2Dxn3|AKx4&NHsvAR9YAsxGzh1o)u=fm0ufT212!~ZLjyK6$p&aU({eU;G|7hs zd=TyJ{3T&xc{^$1@+hCPV1-I8ck^}+M#O(3gYj%ghqGPJ@AdaaPlx>;9rgVo*&Fz~ zEfl#?0DS-Hs8`K?R>T1ILn7Xi!2>NCren=ZuH!HvUL7&N3|4M21)ygvr3&_~Y!9ub zE~ytJU#S|u9-UgRQ9WMlF}@0DXuV(2V7{cxIZHf?f{JtNRVo$e)r^E87=Q#CI?sP` zJL~7fL#3D~nlKoT#^Ygc{HRcu!LSFi8Skm80p@e-Mnue)VCOadYFstAP{_}15&7UW z_R<*qr%S9qoFVMLJ90@JQ|lV+#u*GogZ;tNJ@<+-@EIwMrT#BcVFAlY98i`I%_s+~ z)`Bj@H_&>=2~@OK?gOc31c02^U;cl}4#4@4FtEr7jE@WFG7TZrWJ{#LRY8MT_xFbV z@gtF}PJwjrq=#~8Df#{JaKFDhz9%ymTY1#*H4GT&UR_DGi-v4)8u~k0HGqD7N4uu8 z6d^g0B!-S7`+PU^+^P0q*pKjhve*vc0mOE4b12!vW~1MoTM`uZcwZK{M;Hw zE$u>B%>M%BZ>k!m0@jbF+-V9yNx!Hk0;SsIQBjB}Y{Vfsow*xzllp(6!oH;*P;e`8 zXHYK9Zf&HiXM*L5@?2m^`Ma?uKL=Qm|7y(Vnga9ruf}{SD1}q5#>KV=E0nP5zB)aY zxLr}V>rin*In8XIfM>q#S}g~j<184;^up|LQ_~A|P>a(jCk~wqg;%H~L}3wfqlP&n z6xbsr5kkmy>hAC5ltO<)+Zklgs3_8J%C|y?<%@2%U~)&PfVT1CGf!d>#9&Qp5ClAc zoQ=eDYACocZ{wna)HVQ5K(N2LQ|0xdwLU9pZkuf7!ySA<+=uj_B?dX#vAhz#^a5}I zcS>Xv<2y<{XKH|3cN{%iu43*+yiwfvfF%H9wPH}&yUkoqZ6U*dKuJY^QjzEyi9Lx7 zh%$746oF#tn8S8OntM?OyGY_-2Sm3XOKvwdtcGOIXvFwYR9g934EQwb(b@^L9d7f{ zm)<;Kvica>eY@Y`gj*o1FkJ+)ydZ?HED2}t?c4pqNZ$zk+1!l1%8rozz&ix$I2?#i z1PKpck&sif`)Fm}P>5ZB9^W_09bxY$cva3yS|{r}Sp{Vbg!g5DcjRBigMl_PW>nYg zrwtaz1iuc%($JZRR+}_d@{J+??$gafuH55Z%0O;i?2#Z)C6c=VGaOmFrit5JGWd9M?RjFL28L}kK9bDNg%rGitOJ00~ zt^(9M;Ha7dRh6TvmMO)$k@W*jJ;$ktRYKNfS>LE|nebDt%@4I-VQHJM0#hnMF{T#I zc|F@M(DMnS=Cl>SIUn%Zm%ctWpJ}u@U_Np~9G~%a%O14S|x|4S#v(CDnlWUV1m!j2`7F?~Py@Oto zq@g%OKUH%$>b77KINwm2ucj-bt+stdmXx+SsT}+R?X2wQ04+R$#Q~UvtbSIEayScH zS$%?kB@`N&SW+!YW&x-T7(d5;gf>eBj1#C&DUCSxtx~Wz*gNoj?D7f?oVtPxM3~O; zE>9z&NTB9hLax}^Xv$=eED8yfb4JN#UEGaUL6%4GEI#-_?2#}81J-q8a#Oc8x&CDm zhE#Ui&TZm(Z>x&_JP#y0=lpT?YkT@}`{MC`HvX(3+ct3GiMb6sl_yg7CpG%&YVfaL zAP}CN9HW;nFA0sQ9wz9+mx28Mcm1NyKxdC5pV0iGT!#9(wsS{94#eSda7|vGy4zSK zu1Vc}8S7*n*_vOU-2#+b%K(^eKR&lXZ1x4Ff$}dVg8teRFxyxnDg(2mU82UVvrM6X z1y@gbx>G~FXjvRor(po*HF;bum-d@YymD2Rr2C!ec_Rhf)Xr7cEa^eocc>$M&Jl^qtba2+RaJ;y=EiN9hp_Fr?w8q z>%7CZ7Rl9&t;I0IriP#&vNKob0*Rp)sv|2glY0*Nc0|XSeBTxfJWeOMD?JhJ9006i!m$5?y8<&r@11EpQ8fkaiHuAfF1)j4l z$ykzgAAWJ%Wb3wW6DO~6xBH&uun-AJOn8Ndk7WJdcLv}AlF*Uvc31BumVm)vW-vFf zi~^6C<}yvvh?ypFyfBColKPGn*vxdDghkYi4-T@44{_k<-y`bVfmi%u`M1RJ*ulXP zF?X!M^8!Cdd*OdCgY)|&qE-?_83claG|55q0|Fm0X2wa>l7FX>8`3Cdtpg)pohFVO zR~HvMoJUcRAy~QrtPdj74}2zu9KSa3%jKKjFU|9RUY%dQyLfZ?PK@#m&86eA*!i46 zrap@;8nU0RUcbslLYpQG2{b>YEPBY{oTbBTV+5QdPOS6 z314acFWI5)jPm){e}O=j|OyVCxoK~qz?fc|AMt`w?HjnE@#^bi<35Jz)EYC zxIBA=xU7HCXfhr4>=7Gv`{UkZGNI$qbTl4Lsl6NyX7UmTI5us^N?>70m6);-S#R3w z&nDARZzL__^XwiMX|9E z13Qgq;sieIG3!i+(@{D9C^2WoADs|syjrt}5hs5pl(>%PBqUgpez!}O5o5#-?tIWm zJ0`~jEF@WzWe|~M%}SEQ`8~GC#)DfhKa5g8c~G63OMNGe+Y6eYT$%^g9gJtxV&lbZ zFk5zK{RtcQt?`8R=+vGq>Ex>ptUn%ghrMoZu<5|4vs`XEG3_Pu$y?3{oX#swH_=~m z!i|6WqBKOYv8cLEYn;X7%>n;wvn4SjMqQH$8`ERvE?Wd7nb{hCykPMGEsb?NnpkTN z(u4K?ulZ0ao_0He{t zvlxdZ&Jv5WBz}-c$WAH;;+b6CP(y0F6yqmE?;IJec?{0WS8b7PBcZD9fgg-KCI%&x zdkL6{zh^WSfXAf(i|abv()0p_aoxRXz;l$QgR&~akB(TbQOR$NgT|6fGzimKu|$8@ zFidDhlX(0@)QMRwIO*CYtcQIV_2>f4l-xQt3xJH%oSqh8_aUcMzggf1c!3T#wh?8G4?3A)w>(iMjw zk=LPN$b4J>q6ET^R$v9=E@|EjFT8)DFqAL~k^l_d1s{FOBe7oc+R9v}W^BPGJQXs! z8Riz%$3owOd4skElID=x5rRkoM#@F>OvoE3eN>#k5I_tWkeSIkV?9;?M+{OupQukk zc=JN@)G)c*7Rn=j-E4x*9U7v|zi)ueXfDn^-T)`X;YwPkmv&fy7z!~yRz`oA8?&a$ zZ!%U9yfHe*KxOLNnk3@F#k-FGk-MpUr0Jz{GcO!{=Hnx_V)uH5o=DTryx6#<5xIh7 ze35$J3)coN`}#}k2K=gHgO7y_(6OJ-ZE&?`f2*lx5h*mjF>%y{?+jWMq!oTk&jp+0 z!Nq~Zs+R5`8hP)98!U?bM6!R4e!9BTE)fYa;rX`_->H6mI0ui7BEjF!zjThy9*ubq zoK&5qrhaI+1R(jDor+&IH7Z#J1@U9lSFpb{ve>Cy8%S(s@ez?-Yqqm;639rn$JK5y z8a2)W-8n7-=zK&gy*oG20wS})5($kG2eL>pFHAxVY0V@?`zD60>zjXABi|5RK(z#Z z0|Q)!3e7}}D%7S7KwnDZ;(-T)OvZB!Si7lOoliZ6p$@5D3X*XMB%lApFoj7R^J8w> z_4I+duI|K+A1Bnen10`q;<&-dxkqyJVkbip>*{1)BlHc>1n?a|5?ck4ldL_g zQX+QC!1@UDSB}r1bg>E6*flhTe4d&MaDQ+jPdgvts<9>oAN8`hX|*LMorr}l6ePNK zoNsarR;V2#zH-E9ZHiqTY)FV;s$&nLga7FUc}jX+D7&6!4U2z{_@gUBgP}ST?xnLM zVLrrlaBHSeP9h(4Lkdkl+H`HQ#5Vd+Fwvjiy}3ja-I5nIe347Ng-uBeInp(#oo|ER z)V@H18h4`X*CX(7M0$$&y##OSp8i0=@Rd4cm@7myW` z-gEPv>F2IAQrdrga~7Fpk9GIKIW3M%wQkRxH-`hsVD6P^qYbeJT#`t2REx5<6|AWC zvGfc9emA{^GEdr`>`JDxSN^HYJ4L=(D80Hp!2j0gq`b0>aeP#06yesYBNfp{y;x} zZVNfIJ?B1w1gU)+xb2?YWdisA;0kG9S7fQM*{q2*m@TXxvza{@PR4B3pIDRraM17B z_OjO-TlIgIlhC=1&8!kcbRh?$L9g4JO=lYlz0KXoQbY0{*M*-%fdZ;pjXbvYWV}cF z)}YV&<5_Pw8IFeoHtY2*Yi!xW#d1mMf5iA;+MP{?!;MUR1>3){C?Icq1}Ww*jD_SP zAun9;tVDl_x&m$i)S=$w+bS0+RBh`^78Lvpsz-l*;HpPn3)Lf_dYxXqvnY7qM^ia? z?nQ*_*0}07+mIX-d@uFlCXKnmGoH8fm22~Ea&G$kt|Mk~5o$zpIqvLk7yHg?oh%^o zuUMoq(zOGJ6|SlO&<>XEWX;+Egv|CTqPJ|%Zg3&>p9);q_Qt;U8^A?=tl?5gQYKS< zMtgq}`l#?NrsqHgm-PYLibXie*EoxheQjacL^+)R=;|y@*PiKJeI5jQTE_9OPo3hcCmHK zjq4XIS^B5*dZOX%A?45g+wY8hbRRCxI|VjGgy~#)Wm=tUVB@`tI1O2(*YYcpFH)df#$;!WN|tixL5}=l6EYh_q&Oba7sNQ-U((d^T5Pn z!T1s?M{KoJD?Cj%`OVYkc%Af&;`gI<#FnRr`t|$6o1-)1kdI*p1S+lY z^bqzw6ie^|>e(@1c)sNps!C9`0#twZY_A~naQ5wh#r|ANc$El}Cm5TAnM+?q<=)4VgC~cpcoGN;fO}y{W;ppppy-JpKMq@eX6r?b^%9Y-UXc18X^9U28O+FuOOM z*o=0U_Se0`sB9qwEsC`uOdHu#`2geZM2MKY2qVWOL$J4gw>N>R?KOX0ITm>xaFeSe zko!+3oTHPGJ)HJN-C1wUrmWkyyMykyKcK_u2U*FXPwEU1`vVK(wLdp zN#-m9UEN`~fhcB~K9!}C;He>y(1`<^c3gP0^<+pzZIGQzr#k^+lR9l8o zobg_FUX_O?i2homsqF-&cQ|*89(Fg5Ct3Xof&pexWfP~75f~$>B zV?Ywc3MI?}SpHa+^p>t&&0IqpBq82(pIa`a1_KNvy_z`q9MfQ|1iB_S_+`PxAFJ&r3gn z@!PUW!%&N0&Q#OlBzjQjM4bj7&PJWS%XZ7M3(IO0Gd8}_BD@y_l&LWl}_||s4vD5aB?Q$Rzl2G%t1Swff^WX0|0Qe>)StkU3Pb8VF`sQ9whUf5(M)u-D&IufkxSQWd#OnAB$Q`Wni30a1&RWHuuG!G_triJ7Kvz7j2vT84M==P>Z7Wl|A}KP6YKY9OEl zH??&HBB#a!>-avrziN><*wGO%fZd3Q{&>~^yArOtho&h z?PBo$?BsfIK7Tm9`RNlvy@m<52{|vxRUpMJ$j5(@k1z_h#i%35jE55`Eiz;w_%iaZ zh=RMDlW+p|>6^r17N>%RWEh2HM8R`qpvu)_=GmSp9S1lXB0Pr?kP6_MO#m(r8$w}l zy$~mZ_e9G!LuL`cL2a8fS$Evcz(sk0I6(WmiFx)i`hPp@?+yKZd(`TZ6I*!1p>s)_ zB1nJ}G?ARhrBirIhc-*0H#Bh1XKvT#QX)$PYq!XEd- zX$Oe!O?__lUWrEgo1^f}0`U9tcAx!pXI4-vO`%Yo8oWUM(X=7wht42c}+6>3f zndj2LBBvgxew+MAZN@E6n4k%ygE5JGLMKLcs(+w>d71&J6>bv1x|uL?N?n*wUE+IS zg4DIZyxj3Dz_bJGXoPzz2pHak3*}>}4aNr%H0Tykd@YCsA|^P1N_o5_LFo9z@@6h% z8CIE6@xXl}9tIFMLBtB!lD{%|pRlJo?DXP5Gwk>0?s#|B1F0AnkSlT5cxO}d!MJ7t zXMe)jHgMz$G6wJ~#wB%FZ%rjYM4Q$#lmIslNJM8SNjxNqMzRf(f-y}bK_Zvy!Nvs* z9>@pquaMQi!oag46M$WEbK*g&L#{XreCmRiH7DG*A!Q;V=pFG!gc7AHFlMnS2NRw^ zT4#pJPg3H{1&nep0_CA@mt2RCMv=h`h<|?vj+4#18&&k_G!cl~Jm~lTQZ*}J!xgv% z1En?utitt(4K@Szk^}=Zm`rk~Y%;SG-%4e-rxR;)BvtljkDJW+{9~%F?_j4a;{*~R zl%+6s|5AOG^pVd$W_49kND>Ok?g~z8;5d~0f@&zFy8`8%f*pK}z&k?*$^_(Pkbhe+ zGU6i{szcP%p~OTJOt1py2+(CzXH4^1D973aG#h$jB-&3bgqaXn3+4G$4-u#?N>mU|XUCSUXTALai~e=N*Vqkn_wt-l!u? z4wWM7jJV86I$Is?PAO(U>qhQ}ZGTt{`*Ox=MzC?CX$M#NizHt8>d!It{+Sy$$S}6G+gw>rEj*&wm|%;<+&Vo`M$=D=66+njlEJ1iMX6Tq^)&x-dTkZ0rTF z6W)Wsx;%puRIiA1Sz@@gwf}c1Kc1l}yJr87Kk78)XFR@IS5tP)&HnZ?H02Yccz`W) ztaHXJL4IH&~N;aID=! zwqp%<&DY!eR-e7zrGNY8-f)-g?e17RTdy|{wkxZXY|^v4^S2CAnWN3MgHMIN{Nape zZZGiWpeod)7IWsHA&}Yx9rifkLmsZ52ut9bPgjt_rvAtS5zfgkc=jOcI4>Aem;5uL z+zl}TkSP~jm2#hu5ptp!!TJo|L#YQ_200;m2p(cF=teLLuUj3!Pnm?_jm(q+&_8IK zI1K7La2r1Je2D(Di3d5+6stT36Ui|HJOO5u4t-#%Hk^1fyrBD6R9(=eo-#+>wG=ZM z)QMTi;y*?+Uy}HkIz7mjhxp~AdypraqL)w40~LS2W>UWwJh%tNLxxrL9u_;|84-2k z9q@^{HY(QzcX{W6KZ5?EgFGZxptocjvn7|~;hqU8(GLN)puD-{<4Kr1+}&JW5N;?y znD_e#I+XEKS4s;gX+udBsRNKX6sADMg$I*mmTVPkfxm~QUV@$S@D4}~80f|vm8z3o z0WE*lUU|W5hD7;L(u^<4#-P2?P~MRRiq58|zZ@u`O++_RxO>6ofis^rA15Ymuhlb_^B2|fowd;(Rpe&=nG>g9L zo8pU^G>420IcRyBjqDusxAymXLqO8m-02`buT<82OImW*_vG{Vj}L$E zx)WPWx8$F#W7X|&*LAj|1AS*}u@NzBZ_M4MVD_k$_KHMM$hp*E5L>7aP`X%v0_SwG z*GH`}(Csx-hssCEGE5aNJ(uO1PXY#IhWjFUr=a+B%o5{0rI0FvTCcS1=t6j5!v~|GH1uA4a5mBKp2=GgYxpSZ0_>5hO<&b~864+%V0k@&J@);&qN9alN*eh}5!QnQvGF}7oHZUEI zC(ry3R`efAn98;2WvT`50xOQ|xbH+^8a$dzCLS385{X1$7!r7!aI3Hf5(!7o#H|cz zOz~k*@o2;WT!Sz@*HxI?X@O$o0K=-X;y%LmrfX3pnhnU#M~zkz)VDPi&O4% z-FNX*F4geS`ECt+)k}2Q8$$G~C`k*o;(bX?Vp_9d2~|DbDK9XjT34IA8p~?m(n#BQ zB{Xto>3FSUtV#scbO(8tebfUYf6r9rnu&6kn}zdA4e_TUH_6&-4b6zAI$tSM^QvG4 zIYtYTLpB%tG(2@?WunnvV%7kxH}T#sdQhIWT{u7`jjEpEMytA^z9f8BIW6u?Dh( zUC*1S+~&eQ!ya?NT_JBJnv8W#8ev&d{9>dfkE`PGt|^-jKreRs+ikMb->KN_GT$}d zs3d5+kSklwR@Y((zuAzV7c~k60JBAfuF8$B4v!#26RL`$hbV>RybYx~QM10%Ro1#3 zEN*Bq&C7<>oC|`@*Hg=0f2ka1b-GrcsNwT~J%Tz{QvnCxG)l#loF^@Qs&42>LmvH9 zne&hX0U@4AWImBDw}#VwTE=&Fy%@-)S78|4Lp1yk%o%+1#?E2hu56;A3YlfzYX zO_;oqs9mVWt5%M<%?tr0Uj1UVMajfUD9_BP5? zRTCiVt;t&3f0{-+&iclLi=XZis&e`G0S57yE>8SV_VVvIy5I|)VXor&G3b2{0_wc7 z&@bzi^^$ThlrN4FIj^5`zGMxge=_?!OjE}CC0`ebM}%Ynq>`* z0=r_C*aSsaqFeaNd3$CQCFHplb7*btk-&_?iJ?w5s$jzCwH#am1}qu^#;Cd^Ne7oe zLFZXrf7Hl3S9wcs;+Mb7h5$rlGoc7D17}9}qB`;V(iYeMkYr_F>Nzy}ix-oxN>iZ}VVt zYuDH*{%yeWt|;{fRT6{NV&Km$04*|Rudrree>YzCd6qL?nmH9SCMPT&8D?W;a!FLi znmv${sZpF6rPpOu7iGnBM@>(=^5P{q_AT7F$A9L}4NIrV@wDIc;0oRt1)t z+;<}gw2TZb<$cW#=Fg-P+W!0cr^{?l5kC4iI)Ls3opeOHb><|#H~3l2E1yhi02R9i ze~Jq_GUDiO^{m?lygijK8~3FZa#K)($;w;ZJ6fKbY4f}SFt1pn+V+_vkMA-o zWcxwmzFOV&X&279RcBmfz*-b?D(1p6f+w4aK}z-qUL|i9#Pfw_mDO)el-e%*NtK$Y z5jXx9&Og(&$(I2&k;zl0jgwujVwkj+PIOwD=ubguF?L`_beP}coaTz(X$7caytE@W8F z`L23bRRygGr<(kvR1G|*mWMo?rOYgJz^e$ad~>^Ev$V=Xat^g-9~O!(do!6Xe=lB4 zR^LIFE+30v3O>G|WcuDQC3N8i#M?e}rLGwDZH>i9{3)i?b>awVNs zJXJX>^|~B};^~k{_yN;li{r0;RU{OSz?hVLuKg+@V~#&alw6hPm7tuvWN~^TTn}mK zGx4XObv@ZP@Dvu!MiiG#i!R)EZ4U1m1GcG7-{Xb{*I_3tDcC1(*OZk3mv^f+--* zSgzC(byr>hJCZ-(nT_-^@u-koJXd-s8bZZ4j6%rlYo^C~;KMfM3U6$KLc#9tMLE`# z+7ZjDg1_)&Moq_jAYfhjNkcPe{C4XPGryGiUw~N7TXIyR-MySznpn$!*#Ob(L)qsk znaFN^JhtMOuiFC{e@{tTix!-PU1s5%rnA-VaRG{&wiRTokYyBs7KE5}*u`YxnVEH( zHpnh{?OfA*CZpog)b#DRKI;&ktK(X20b%)?b?wZXn-S3aTw(i7t zZTK(#a`Fx>Z=m|q-_6g8zkiTQCjQ8@AeyXf68g%=C>fg7uQkgPlw?7wB`w`S5@Y-F zbtNC7<}WUNe=BS)UZN}Qd@>s@@Hquo%XUNU$OfX>0O23Pe;dtLqP3B_^Y~YH+ZmZl zvT~Pui^N|~?Kky~$$^es?~P-&<@;tre2z}+r_tZHg^s;MP!NaTOtz$DLuIvrzs}%> z9SMFzn=yVc_NF)4dRuiCs(gc7ul&LWeiNvdg5=*!e>M{cn{TnrJ(ajh+!p0gt86uL z;1iAf_P34u?@+pt)5(C6uQw8p)bpRfi}AnRUF&k&#*%&&tXwIQYf=PwrxL|0$CoIv zVsC6G=d7fofB-1M0s$HzCDVzk_BHnBKEkQ}d;aA-$v(+;&jpwn3@((EOD!uGioo1^ zdb)eMf4_d1Y{O`k_{pBk*ShfXmpae(Y=mM+brGLq1ch5bcwHynR3}cEOtx>>az^nwy^d%9Z{<#4CCrlCL`!{@pYsTLIso~Z9M~?7 zO{rtCSO9Ilc9e0ina64<5m;xHI&43MgJ1MqH@0 z98f%c@pl0G76!PCVlUe|7=jaQ4VPXwFINL{=$EYNT|c>C?Q ze@63Bi^Lx%)u`#qE@JF>L6;y`b`e0t9QB5sB=$Rj9bVZA<8pM~+ToC%a(m%tHxe*`OHi{~w8p6db$lBXE4+(8aW;%d>$n8dk9lwyD0ht#jN2c50RroV-{_lXuVb|)Ifxp=6pV~rsL6kWKOKff54iL zhf~{}%;w{X<4herENvsz-AHBxgpH#QB@l)?EKQSaTKZzE_PWeAi64SC)agxn)9Fw` zkf>ghveNQ;JhS6)7Qy*?xiF6W7(uTN3<5l8Ed0wwfR0KzC^=>F5z!^~FwqJ{Y`Ip7 zBhN%YAx&HRbr)qSJmkPXuMxm&f9|qu} zmr2)l?WMCp1hOuAav}~&e>CdZV{_aw?fJCRw+7SBbkv`B2IHA$k9+29Ffw;q+Z`*E zm;3SC=g*&hUw6{2iFRTUHJi`mE?nuhOvxNr!+w9KNm`k`^^C&_dMPT4Om!XBPJr0}Y#CEdacv?rn3NbKY+TyjBY>mgyPK-A{)L>b?$p|*6 zIT($5Q)|{A&pp>3Phd62_M|@_<~k|Jf`f5x083z*Hu`fJ)}S};S<~L2r@XXT5y=|e zm9P)w!0z`3MFgP-R4M~gf2sgd`c%15Z$n&vIeC%4(q+kGm~=$zBk~bmM-%biBZm(+ zZoQ2Iqe;b}8(h`IBXHBq;N}V1^aH}>((66a%zUsUzoH8^HbCVS=p0mAhwed9xpKVj z!k&3?;Kf9g>YAf23RKqcV(kU?Yzr%Qg|_t&cIf41rwviB9#Wuse~;|__0@A&SuZe- zu(HNK{|@`WUfRol{@u8WFoQ(!>pzyi{^O(T?Nx7re%~HU%%MFQ4xQ=Do{ueSICo~Q zHynFov!^+`L_+Tm`qOd0Kd3?IFaf&}`fZ5$uJj91ckErl^Z*Y^SeRlR0$OfDH|mmR zK_gyAiA+M%3;Jjge}%|Il8Yr?jUs?1{Dcyh4LTu^LmY2b4qhtRH@nl<-5RM$e2uSJ z?FOse{|NHrCNZ)mj1_L0kdRhkmLdOl#O1&aLraFmVQ+ z*BkX_qrq%4H$j&4Mk8lZMVMm?PUkut7-sHwCQO3F$4vR0e~-z;di`P5;g32edEI`$KOVt9yB_B^qxbKeTTn}*@y*7)BsiC#^*s;lk6w&` z<&7n1#&NtwuOR4`v5htcs)_si`^GV-_&4?z^kwvCMx^2!Ojfoa&XXt%MELq1)Lnc& z4@cz$_Ivf~fA^p!nzw=-x0kpFp8&zsI`(!kAM8pp??;zTjxY-SaWj&69s9-$Z2o`$ z^S|IE#~v8D9_ZHe2$L+JDgna+(Ga8!f_U|fJ)eiRfmVgY*sNG~nGJ?|krqPGoEB|^ z&P9NR7sn3C6;w>qfY|VCLo7WB9NHkwBmqYIfGGL~e`Jina6q})#5tH^l_8Bs<3VrQ zufdSUz5X975*CnGv{~;;VfF^k!j!=J=FsYQ7F#$iZ9nP6k#p67DT;TbEo<`e{rk(? z9A30#W&N4RKt7*NqIk8aCIHmU6P)5M+Vi?muwBA_Mzwr09Ztu) znN?PxiC!<m<0{W)Hh7>~Kh@NGW6Vw1d~0m;J4rEZA21*5xPnpxRMXcz+l*osfpzuzAX`vY^j>ml}G>x8RYFq$_k?ln0uzKZeOu)_%G4AcrY!WqH*fp6Dt ze;X(x@le@7c>`lZ9@Vh+5lTSB?I$)&o$)dbleGu)v|zc@0^lMrTRisGxQsy6UbSH= zonS-UNaD>h+Q3OiatK0SFx48SoO~PlxMW$BNWS-FRBVZ0`hT=3quk~w6WToy*-m|FkVFwv=2mvX1Yz_@^lVH0DO{2 zVl$vTLmWVDi*sMkFc7>tVCL>(%T>*TiBv}G>h_0lDv!szF$hf|dF@`){@yHne`jIL zU>dIyLhZ)PjzPMN34-P~Uc5;_abDJ)8*4{qO86+DlN-+_nKqbdqYjm`BHg)%nPt$V z-XEFPSU$Up5w4X^I-rO`KR|gRhC#dx26_?NtG9GS$>m7~z3|$PqY!* zXHLH}a6G#+>pN!0ac!?>P0gV<+wG!pWsZi!(KeTQ`HwsdQ5+x4#_rrTM}2o_k0(>x z8d^PXIvtIAGq3Nu?rxG$y;FzXBL5rl+gN&_8Bt0=N6};h`q3=#nof|Ye=ed=|MJy~ zw@;p49HTo&=IPPq;D<+)=7e94X@b00Y$pp(vY&E+NKNAOhQ3I4xNZ7~p2GTs-Jvl9 z1RO8xj|Tn>s~~x;n#3`sZNPw9a#e+4HPkJRI5LSSbofJ??k_o@MvB@`NFpGPBuBqs zNn!@8;}o&GF<-o0c=Phff6D`wCWmCa#0>P(1q1hR0eK44pa?M)Tv3D|GDTWr0+N>F z5lpot#UjS>urPP>_!&NJNItV-IUV@E=(~`TFXa&PQ}X4!oqwSw9thjka~1SX^Cm^f zn8SX_982d4x?bC`Ow-hr7O+M{&s0`H`n08#{X`LS1Sl8kRFqBGe?AR>X$c@X1mpg^ zEuj`FE~)D3APNmSlN`J9;uL$0)&Wvg{6q!fdqsWX74a10`l8TDhN7qTTS3v&V&3f* z{g_9>yJ%a{eOLg(Qk2s z0o@xluQPR_ZQjg)Q_sBnSUXatI%L=({ensprd zPhp+#NFt8-D|9D{*W1HArdb`VHZvIf!gDXMnLX;RABAfW%MSON=;{BkwWoLQ$Fm(P zJlsQz`72%#f2{+5!Wye8QOeTr5?VqhItjr5DAOo2Dn?^b-!las`3}~p8ZvL8Evl6x zwuF)|&%l8}7pM!7sY9RU!#(~colX*;Db8g+7$L2iqxMPl3pz7KrqGH~h=DUQMyXy| z(&BY1iAAzW&aIS2?vT%a@w_b*0dm!n7+ayFDDo%Le@dfy;?^#!X+8Ms1^+d-YEqdr zH57|hvvjM3am!Mbxo{_xnHYQpPS`}_@kvkw#xB+4qfr`?PRpZmE}+?vAKQio`au1thy<+pVz?#oBcI#a5peW@avZyo zAn)YVJgcqIP0ca$UXQ%8x>e|;Fk-vJ!ELg~?#DN%&9@7Gk03fihv zhxBb$DO%c66^fO%Oog(g`xF9%mtpAXSR*={5WYyFiI7*?`P<>7q)OnY5nAzHt4y_o zk)lhof2c?56Z%dJ2Quk_v7|}R$SAn#O6TtFh%8+}XC2!*Zqr9QX za<;%mD=Di`<2@r@Yf~m^yCUlNB@$?@%J6eLQB~VDI!k25>kS4!oIr43wF*_EW#+0+ z&sx?_y|Y(S4d-#^To0kOr9W3sREnU-f3rX76HnRA6$}I!!g?{n(wL)@V>v&Q>$&gylCqDIx~T$RP=ObO$*NCAwKp<; zTxOw(|L-f3r}sG_yB}7$>Y&ry2pMUh2=fOj)tLL4iT z0%-#3Oe%!GkKtvFRG6x_yuz%+cbM#4Ye1GjY06+-lv;0NnO3`7WN=mofOcC7C-H

    !=lgP`7%eFDI6HIuD=EtHfe_7?UEjdf1 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ξ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.+?) - (?P.+)"' complete --command youtube-dl --long-option xattrs --description 'Write metadata to the video file'"'"'s xattrs (using dublin core and xdg standards)' complete --command youtube-dl --long-option fixup --description 'Automatically correct known faults of the file. One of never (do nothing), warn (only emit a warning), detect_or_warn (the default; fix file if we can, warn otherwise)' -complete --command youtube-dl --long-option prefer-avconv --description 'Prefer avconv over ffmpeg for running the postprocessors (default)' -complete --command youtube-dl --long-option prefer-ffmpeg --description 'Prefer ffmpeg over avconv for running the postprocessors' +complete --command youtube-dl --long-option prefer-avconv --description 'Prefer avconv over ffmpeg for running the postprocessors' +complete --command youtube-dl --long-option prefer-ffmpeg --description 'Prefer ffmpeg over avconv for running the postprocessors (default)' complete --command youtube-dl --long-option ffmpeg-location --description 'Location of the ffmpeg/avconv binary; either the path to the binary or its containing directory.' complete --command youtube-dl --long-option exec --description 'Execute a command on the file after downloading, similar to find'"'"'s -exec syntax. Example: --exec '"'"'adb push {} /sdcard/Music/ && rm {}'"'"'' complete --command youtube-dl --long-option convert-subs --description 'Convert the subtitles to other format (currently supported: srt|ass|vtt|lrc)' diff --git a/youtube_dl/YoutubeDL.py b/youtube_dl/YoutubeDL.py index 2a405c5..38ba43a 100755 --- a/youtube_dl/YoutubeDL.py +++ b/youtube_dl/YoutubeDL.py @@ -305,8 +305,8 @@ class YoutubeDL(object): 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, - otherwise prefer avconv. + prefer_ffmpeg: If False, use avconv instead of ffmpeg if both are available, + otherwise prefer ffmpeg. postprocessor_args: A list of additional command-line arguments for the postprocessor. diff --git a/youtube_dl/compat.py b/youtube_dl/compat.py index 4a611f1..7b77034 100644 --- a/youtube_dl/compat.py +++ b/youtube_dl/compat.py @@ -2787,6 +2787,12 @@ except NameError: # Python 3 compat_numeric_types = (int, float, complex) +try: + compat_integer_types = (int, long) +except NameError: # Python 3 + compat_integer_types = (int, ) + + if sys.version_info < (2, 7): def compat_socket_create_connection(address, timeout, source_address=None): host, port = address @@ -2974,6 +2980,7 @@ __all__ = [ 'compat_http_client', 'compat_http_server', 'compat_input', + 'compat_integer_types', 'compat_itertools_count', 'compat_kwargs', 'compat_numeric_types', diff --git a/youtube_dl/downloader/dash.py b/youtube_dl/downloader/dash.py index 576ece6..eaa7adf 100644 --- a/youtube_dl/downloader/dash.py +++ b/youtube_dl/downloader/dash.py @@ -2,7 +2,10 @@ from __future__ import unicode_literals from .fragment import FragmentFD from ..compat import compat_urllib_error -from ..utils import urljoin +from ..utils import ( + DownloadError, + urljoin, +) class DashSegmentsFD(FragmentFD): @@ -57,6 +60,14 @@ class DashSegmentsFD(FragmentFD): count += 1 if count <= fragment_retries: self.report_retry_fragment(err, frag_index, count, fragment_retries) + except DownloadError: + # Don't retry fragment if error occurred during HTTP downloading + # itself since it has own retry settings + if not fatal: + self.report_skip_fragment(frag_index) + break + raise + if count > fragment_retries: if not fatal: self.report_skip_fragment(frag_index) diff --git a/youtube_dl/extractor/adultswim.py b/youtube_dl/extractor/adultswim.py index acc4ce3..88c96a9 100644 --- a/youtube_dl/extractor/adultswim.py +++ b/youtube_dl/extractor/adultswim.py @@ -7,6 +7,7 @@ from .turner import TurnerBaseIE from ..utils import ( int_or_none, strip_or_none, + url_or_none, ) @@ -98,7 +99,7 @@ class AdultSwimIE(TurnerBaseIE): if not video_id: entries = [] for episode in video_data.get('archiveEpisodes', []): - episode_url = episode.get('url') + episode_url = url_or_none(episode.get('url')) if not episode_url: continue entries.append(self.url_result( diff --git a/youtube_dl/extractor/afreecatv.py b/youtube_dl/extractor/afreecatv.py index 4b3d971..6275e52 100644 --- a/youtube_dl/extractor/afreecatv.py +++ b/youtube_dl/extractor/afreecatv.py @@ -9,6 +9,7 @@ from ..utils import ( determine_ext, ExtractorError, int_or_none, + url_or_none, urlencode_postdata, xpath_text, ) @@ -304,7 +305,7 @@ class AfreecaTVIE(InfoExtractor): file_elements = video_element.findall(compat_xpath('./file')) one = len(file_elements) == 1 for file_num, file_element in enumerate(file_elements, start=1): - file_url = file_element.text + file_url = url_or_none(file_element.text) if not file_url: continue key = file_element.get('key', '') diff --git a/youtube_dl/extractor/amp.py b/youtube_dl/extractor/amp.py index fde1a8f..7ff098c 100644 --- a/youtube_dl/extractor/amp.py +++ b/youtube_dl/extractor/amp.py @@ -3,11 +3,12 @@ from __future__ import unicode_literals from .common import InfoExtractor from ..utils import ( - int_or_none, - parse_iso8601, - mimetype2ext, determine_ext, ExtractorError, + int_or_none, + mimetype2ext, + parse_iso8601, + url_or_none, ) @@ -35,7 +36,7 @@ class AMPIE(InfoExtractor): media_thumbnail = [media_thumbnail] for thumbnail_data in media_thumbnail: thumbnail = thumbnail_data.get('@attributes', {}) - thumbnail_url = thumbnail.get('url') + thumbnail_url = url_or_none(thumbnail.get('url')) if not thumbnail_url: continue thumbnails.append({ @@ -51,7 +52,7 @@ class AMPIE(InfoExtractor): media_subtitle = [media_subtitle] for subtitle_data in media_subtitle: subtitle = subtitle_data.get('@attributes', {}) - subtitle_href = subtitle.get('href') + subtitle_href = url_or_none(subtitle.get('href')) if not subtitle_href: continue subtitles.setdefault(subtitle.get('lang') or 'en', []).append({ @@ -65,7 +66,7 @@ class AMPIE(InfoExtractor): media_content = [media_content] for media_data in media_content: media = media_data.get('@attributes', {}) - media_url = media.get('url') + media_url = url_or_none(media.get('url')) if not media_url: continue ext = mimetype2ext(media.get('type')) or determine_ext(media_url) @@ -79,7 +80,7 @@ class AMPIE(InfoExtractor): else: formats.append({ 'format_id': media_data.get('media-category', {}).get('@attributes', {}).get('label'), - 'url': media['url'], + 'url': media_url, 'tbr': int_or_none(media.get('bitrate')), 'filesize': int_or_none(media.get('fileSize')), 'ext': ext, diff --git a/youtube_dl/extractor/animeondemand.py b/youtube_dl/extractor/animeondemand.py index 1fe5d5e..00ce684 100644 --- a/youtube_dl/extractor/animeondemand.py +++ b/youtube_dl/extractor/animeondemand.py @@ -8,6 +8,7 @@ from ..utils import ( determine_ext, extract_attributes, ExtractorError, + url_or_none, urlencode_postdata, urljoin, ) @@ -165,7 +166,7 @@ class AnimeOnDemandIE(InfoExtractor): }, fatal=False) if not playlist: continue - stream_url = playlist.get('streamurl') + stream_url = url_or_none(playlist.get('streamurl')) if stream_url: rtmp = re.search( r'^(?P<url>rtmpe?://(?P<host>[^/]+)/(?P<app>.+/))(?P<playpath>mp[34]:.+)', diff --git a/youtube_dl/extractor/anvato.py b/youtube_dl/extractor/anvato.py index f6a78eb..84e8410 100644 --- a/youtube_dl/extractor/anvato.py +++ b/youtube_dl/extractor/anvato.py @@ -134,9 +134,33 @@ class AnvatoIE(InfoExtractor): 'telemundo': 'anvato_mcp_telemundo_web_prod_c5278d51ad46fda4b6ca3d0ea44a7846a054f582' } + _API_KEY = '3hwbSuqqT690uxjNYBktSQpa5ZrpYYR0Iofx7NcJHyA' + _ANVP_RE = r'<script[^>]+\bdata-anvp\s*=\s*(["\'])(?P<anvp>(?:(?!\1).)+)\1' _AUTH_KEY = b'\x31\xc2\x42\x84\x9e\x73\xa0\xce' + _TESTS = [{ + # from https://www.boston25news.com/news/watch-humpback-whale-breaches-right-next-to-fishing-boat-near-nh/817484874 + 'url': 'anvato:8v9BEynrwx8EFLYpgfOWcG1qJqyXKlRM:4465496', + 'info_dict': { + 'id': '4465496', + 'ext': 'mp4', + 'title': 'VIDEO: Humpback whale breaches right next to NH boat', + 'description': 'VIDEO: Humpback whale breaches right next to NH boat. Footage courtesy: Zach Fahey.', + 'duration': 22, + 'timestamp': 1534855680, + 'upload_date': '20180821', + 'uploader': 'ANV', + }, + 'params': { + 'skip_download': True, + }, + }, { + # from https://sanfrancisco.cbslocal.com/2016/06/17/source-oakland-cop-on-leave-for-having-girlfriend-help-with-police-reports/ + 'url': 'anvato:DVzl9QRzox3ZZsP9bNu5Li3X7obQOnqP:3417601', + 'only_matching': True, + }] + def __init__(self, *args, **kwargs): super(AnvatoIE, self).__init__(*args, **kwargs) self.__server_time = None @@ -169,7 +193,8 @@ class AnvatoIE(InfoExtractor): 'api': { 'anvrid': anvrid, 'anvstk': md5_text('%s|%s|%d|%s' % ( - access_key, anvrid, server_time, self._ANVACK_TABLE[access_key])), + access_key, anvrid, server_time, + self._ANVACK_TABLE.get(access_key, self._API_KEY))), 'anvts': server_time, }, } @@ -284,5 +309,6 @@ class AnvatoIE(InfoExtractor): mobj = re.match(self._VALID_URL, url) access_key, video_id = mobj.group('access_key_or_mcp', 'id') if access_key not in self._ANVACK_TABLE: - access_key = self._MCP_TO_ACCESS_KEY_TABLE[access_key] + access_key = self._MCP_TO_ACCESS_KEY_TABLE.get( + access_key) or access_key return self._get_anvato_videos(access_key, video_id) diff --git a/youtube_dl/extractor/aol.py b/youtube_dl/extractor/aol.py index b50f454..cb92791 100644 --- a/youtube_dl/extractor/aol.py +++ b/youtube_dl/extractor/aol.py @@ -7,6 +7,7 @@ from .common import InfoExtractor from ..utils import ( ExtractorError, int_or_none, + url_or_none, ) @@ -77,7 +78,7 @@ class AolIE(InfoExtractor): formats.extend(self._extract_m3u8_formats( m3u8_url, video_id, 'mp4', m3u8_id='hls', fatal=False)) for rendition in video_data.get('renditions', []): - video_url = rendition.get('url') + video_url = url_or_none(rendition.get('url')) if not video_url: continue ext = rendition.get('format') diff --git a/youtube_dl/extractor/apa.py b/youtube_dl/extractor/apa.py index a30a935..98ccdaa 100644 --- a/youtube_dl/extractor/apa.py +++ b/youtube_dl/extractor/apa.py @@ -4,10 +4,10 @@ from __future__ import unicode_literals import re from .common import InfoExtractor -from ..compat import compat_str from ..utils import ( determine_ext, js_to_json, + url_or_none, ) @@ -68,8 +68,8 @@ class APAIE(InfoExtractor): for source in sources: if not isinstance(source, dict): continue - source_url = source.get('file') - if not source_url or not isinstance(source_url, compat_str): + source_url = url_or_none(source.get('file')) + if not source_url: continue ext = determine_ext(source_url) if ext == 'm3u8': diff --git a/youtube_dl/extractor/aparat.py b/youtube_dl/extractor/aparat.py index e394cb6..6eb8bbb 100644 --- a/youtube_dl/extractor/aparat.py +++ b/youtube_dl/extractor/aparat.py @@ -5,6 +5,7 @@ from .common import InfoExtractor from ..utils import ( int_or_none, mimetype2ext, + url_or_none, ) @@ -43,7 +44,7 @@ class AparatIE(InfoExtractor): formats = [] for item in file_list[0]: - file_url = item.get('file') + file_url = url_or_none(item.get('file')) if not file_url: continue ext = mimetype2ext(item.get('type')) diff --git a/youtube_dl/extractor/ard.py b/youtube_dl/extractor/ard.py index 86951d9..6bf8f61 100644 --- a/youtube_dl/extractor/ard.py +++ b/youtube_dl/extractor/ard.py @@ -5,7 +5,6 @@ import re from .common import InfoExtractor from .generic import GenericIE -from ..compat import compat_str from ..utils import ( determine_ext, ExtractorError, @@ -15,13 +14,14 @@ from ..utils import ( unified_strdate, xpath_text, update_url_query, + url_or_none, ) from ..compat import compat_etree_fromstring class ARDMediathekIE(InfoExtractor): IE_NAME = 'ARD:mediathek' - _VALID_URL = r'^https?://(?:(?:www\.)?ardmediathek\.de|mediathek\.(?:daserste|rbb-online)\.de)/(?:.*/)(?P<video_id>[0-9]+|[^0-9][^/\?]+)[^/\?]*(?:\?.*)?' + _VALID_URL = r'^https?://(?:(?:www\.)?ardmediathek\.de|mediathek\.(?:daserste|rbb-online)\.de|one\.ard\.de)/(?:.*/)(?P<video_id>[0-9]+|[^0-9][^/\?]+)[^/\?]*(?:\?.*)?' _TESTS = [{ # available till 26.07.2022 @@ -37,6 +37,9 @@ class ARDMediathekIE(InfoExtractor): # m3u8 download 'skip_download': True, } + }, { + 'url': 'https://one.ard.de/tv/Mord-mit-Aussicht/Mord-mit-Aussicht-6-39-T%C3%B6dliche-Nach/ONE/Video?bcastId=46384294&documentId=55586872', + 'only_matching': True, }, { # 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', @@ -100,7 +103,7 @@ class ARDMediathekIE(InfoExtractor): quality = stream.get('_quality') server = stream.get('_server') for stream_url in stream_urls: - if not isinstance(stream_url, compat_str) or '//' not in stream_url: + if not url_or_none(stream_url): continue ext = determine_ext(stream_url) if quality != 'auto' and ext in ('f4m', 'm3u8'): @@ -282,3 +285,76 @@ class ARDIE(InfoExtractor): 'upload_date': upload_date, 'thumbnail': thumbnail, } + + +class ARDBetaMediathekIE(InfoExtractor): + _VALID_URL = r'https://beta\.ardmediathek\.de/[a-z]+/player/(?P<video_id>[a-zA-Z0-9]+)/(?P<display_id>[^/?#]+)' + _TESTS = [{ + 'url': 'https://beta.ardmediathek.de/ard/player/Y3JpZDovL2Rhc2Vyc3RlLmRlL3RhdG9ydC9mYmM4NGM1NC0xNzU4LTRmZGYtYWFhZS0wYzcyZTIxNGEyMDE/die-robuste-roswita', + 'md5': '2d02d996156ea3c397cfc5036b5d7f8f', + 'info_dict': { + 'display_id': 'die-robuste-roswita', + 'id': 'Y3JpZDovL2Rhc2Vyc3RlLmRlL3RhdG9ydC9mYmM4NGM1NC0xNzU4LTRmZGYtYWFhZS0wYzcyZTIxNGEyMDE', + 'title': 'Tatort: Die robuste Roswita', + 'description': r're:^Der Mord.*trüber ist als die Ilm.', + 'duration': 5316, + 'thumbnail': 'https://img.ardmediathek.de/standard/00/55/43/59/34/-1774185891/16x9/960?mandant=ard', + 'upload_date': '20180826', + 'ext': 'mp4', + }, + }] + + def _real_extract(self, url): + mobj = re.match(self._VALID_URL, url) + video_id = mobj.group('video_id') + display_id = mobj.group('display_id') + + webpage = self._download_webpage(url, display_id) + data_json = self._search_regex(r'window\.__APOLLO_STATE__\s*=\s*(\{.*);\n', webpage, 'json') + data = self._parse_json(data_json, display_id) + + res = { + 'id': video_id, + 'display_id': display_id, + } + formats = [] + for widget in data.values(): + if widget.get('_geoblocked'): + raise ExtractorError('This video is not available due to geoblocking', expected=True) + + if '_duration' in widget: + res['duration'] = widget['_duration'] + if 'clipTitle' in widget: + res['title'] = widget['clipTitle'] + if '_previewImage' in widget: + res['thumbnail'] = widget['_previewImage'] + if 'broadcastedOn' in widget: + res['upload_date'] = unified_strdate(widget['broadcastedOn']) + if 'synopsis' in widget: + res['description'] = widget['synopsis'] + if '_subtitleUrl' in widget: + res['subtitles'] = {'de': [{ + 'ext': 'ttml', + 'url': widget['_subtitleUrl'], + }]} + if '_quality' in widget: + format_url = widget['_stream']['json'][0] + + if format_url.endswith('.f4m'): + formats.extend(self._extract_f4m_formats( + format_url + '?hdcore=3.11.0', + video_id, f4m_id='hds', fatal=False)) + elif format_url.endswith('m3u8'): + formats.extend(self._extract_m3u8_formats( + format_url, video_id, 'mp4', m3u8_id='hls', fatal=False)) + else: + formats.append({ + 'format_id': 'http-' + widget['_quality'], + 'url': format_url, + 'preference': 10, # Plain HTTP, that's nice + }) + + self._sort_formats(formats) + res['formats'] = formats + + return res diff --git a/youtube_dl/extractor/bandcamp.py b/youtube_dl/extractor/bandcamp.py index be41bd5..f14b407 100644 --- a/youtube_dl/extractor/bandcamp.py +++ b/youtube_dl/extractor/bandcamp.py @@ -1,6 +1,5 @@ from __future__ import unicode_literals -import json import random import re import time @@ -16,14 +15,18 @@ from ..utils import ( int_or_none, KNOWN_EXTENSIONS, parse_filesize, + str_or_none, + try_get, unescapeHTML, update_url_query, unified_strdate, + unified_timestamp, + url_or_none, ) class BandcampIE(InfoExtractor): - _VALID_URL = r'https?://.*?\.bandcamp\.com/track/(?P<title>[^/?#&]+)' + _VALID_URL = r'https?://[^/]+\.bandcamp\.com/track/(?P<title>[^/?#&]+)' _TESTS = [{ 'url': 'http://youtube-dl.bandcamp.com/track/youtube-dl-test-song', 'md5': 'c557841d5e50261777a6585648adf439', @@ -35,13 +38,44 @@ class BandcampIE(InfoExtractor): }, '_skip': 'There is a limit of 200 free downloads / month for the test song' }, { + # free download 'url': 'http://benprunty.bandcamp.com/track/lanius-battle', - 'md5': '0369ace6b939f0927e62c67a1a8d9fa7', + 'md5': '853e35bf34aa1d6fe2615ae612564b36', 'info_dict': { 'id': '2650410135', 'ext': 'aiff', 'title': 'Ben Prunty - Lanius (Battle)', + 'thumbnail': r're:^https?://.*\.jpg$', 'uploader': 'Ben Prunty', + 'timestamp': 1396508491, + 'upload_date': '20140403', + 'release_date': '20140403', + 'duration': 260.877, + 'track': 'Lanius (Battle)', + 'track_number': 1, + 'track_id': '2650410135', + 'artist': 'Ben Prunty', + 'album': 'FTL: Advanced Edition Soundtrack', + }, + }, { + # no free download, mp3 128 + 'url': 'https://relapsealumni.bandcamp.com/track/hail-to-fire', + 'md5': 'fec12ff55e804bb7f7ebeb77a800c8b7', + 'info_dict': { + 'id': '2584466013', + 'ext': 'mp3', + 'title': 'Mastodon - Hail to Fire', + 'thumbnail': r're:^https?://.*\.jpg$', + 'uploader': 'Mastodon', + 'timestamp': 1322005399, + 'upload_date': '20111122', + 'release_date': '20040207', + 'duration': 120.79, + 'track': 'Hail to Fire', + 'track_number': 5, + 'track_id': '2584466013', + 'artist': 'Mastodon', + 'album': 'Call of the Mastodon', }, }] @@ -50,19 +84,23 @@ class BandcampIE(InfoExtractor): title = mobj.group('title') webpage = self._download_webpage(url, title) thumbnail = self._html_search_meta('og:image', webpage, default=None) - m_download = re.search(r'freeDownloadPage: "(.*?)"', webpage) - if not m_download: - m_trackinfo = re.search(r'trackinfo: (.+),\s*?\n', webpage) - if m_trackinfo: - json_code = m_trackinfo.group(1) - data = json.loads(json_code)[0] - track_id = compat_str(data['id']) - - if not data.get('file'): - raise ExtractorError('Not streamable', video_id=track_id, expected=True) - - formats = [] - for format_id, format_url in data['file'].items(): + + track_id = None + track = None + track_number = None + duration = None + + formats = [] + track_info = self._parse_json( + self._search_regex( + r'trackinfo\s*:\s*\[\s*({.+?})\s*\]\s*,\s*?\n', + webpage, 'track info', default='{}'), title) + if track_info: + file_ = track_info.get('file') + if isinstance(file_, dict): + for format_id, format_url in file_.items(): + if not url_or_none(format_url): + continue ext, abr_str = format_id.split('-', 1) formats.append({ 'format_id': format_id, @@ -72,85 +110,110 @@ class BandcampIE(InfoExtractor): 'acodec': ext, 'abr': int_or_none(abr_str), }) + track = track_info.get('title') + track_id = str_or_none(track_info.get('track_id') or track_info.get('id')) + track_number = int_or_none(track_info.get('track_num')) + duration = float_or_none(track_info.get('duration')) + + def extract(key): + return self._search_regex( + r'\b%s\s*["\']?\s*:\s*(["\'])(?P<value>(?:(?!\1).)+)\1' % key, + webpage, key, default=None, group='value') + + artist = extract('artist') + album = extract('album_title') + timestamp = unified_timestamp( + extract('publish_date') or extract('album_publish_date')) + release_date = unified_strdate(extract('album_release_date')) + + download_link = self._search_regex( + r'freeDownloadPage\s*:\s*(["\'])(?P<url>(?:(?!\1).)+)\1', webpage, + 'download link', default=None, group='url') + if download_link: + track_id = self._search_regex( + r'(?ms)var TralbumData = .*?[{,]\s*id: (?P<id>\d+),?$', + webpage, 'track id') + + download_webpage = self._download_webpage( + download_link, track_id, 'Downloading free downloads page') + + blob = self._parse_json( + self._search_regex( + r'data-blob=(["\'])(?P<blob>{.+?})\1', download_webpage, + 'blob', group='blob'), + track_id, transform_source=unescapeHTML) + + info = try_get( + blob, (lambda x: x['digital_items'][0], + lambda x: x['download_items'][0]), dict) + if info: + downloads = info.get('downloads') + if isinstance(downloads, dict): + if not track: + track = info.get('title') + if not artist: + artist = info.get('artist') + if not thumbnail: + thumbnail = info.get('thumb_url') + + download_formats = {} + download_formats_list = blob.get('download_formats') + if isinstance(download_formats_list, list): + for f in blob['download_formats']: + name, ext = f.get('name'), f.get('file_extension') + if all(isinstance(x, compat_str) for x in (name, ext)): + download_formats[name] = ext.strip('.') + + for format_id, f in downloads.items(): + format_url = f.get('url') + if not format_url: + continue + # Stat URL generation algorithm is reverse engineered from + # download_*_bundle_*.js + stat_url = update_url_query( + format_url.replace('/download/', '/statdownload/'), { + '.rand': int(time.time() * 1000 * random.random()), + }) + format_id = f.get('encoding_name') or format_id + stat = self._download_json( + stat_url, track_id, 'Downloading %s JSON' % format_id, + transform_source=lambda s: s[s.index('{'):s.rindex('}') + 1], + fatal=False) + if not stat: + continue + retry_url = url_or_none(stat.get('retry_url')) + if not retry_url: + continue + formats.append({ + 'url': self._proto_relative_url(retry_url, 'http:'), + 'ext': download_formats.get(format_id), + 'format_id': format_id, + 'format_note': f.get('description'), + 'filesize': parse_filesize(f.get('size_mb')), + 'vcodec': 'none', + }) - self._sort_formats(formats) - - return { - 'id': track_id, - 'title': data['title'], - 'thumbnail': thumbnail, - 'formats': formats, - 'duration': float_or_none(data.get('duration')), - } - else: - raise ExtractorError('No free songs found') - - download_link = m_download.group(1) - video_id = self._search_regex( - r'(?ms)var TralbumData = .*?[{,]\s*id: (?P<id>\d+),?$', - webpage, 'video id') - - download_webpage = self._download_webpage( - download_link, video_id, 'Downloading free downloads page') - - blob = self._parse_json( - self._search_regex( - r'data-blob=(["\'])(?P<blob>{.+?})\1', download_webpage, - 'blob', group='blob'), - video_id, transform_source=unescapeHTML) - - info = blob['digital_items'][0] - - downloads = info['downloads'] - track = info['title'] + self._sort_formats(formats) - artist = info.get('artist') title = '%s - %s' % (artist, track) if artist else track - download_formats = {} - for f in blob['download_formats']: - name, ext = f.get('name'), f.get('file_extension') - if all(isinstance(x, compat_str) for x in (name, ext)): - download_formats[name] = ext.strip('.') - - formats = [] - for format_id, f in downloads.items(): - format_url = f.get('url') - if not format_url: - continue - # Stat URL generation algorithm is reverse engineered from - # download_*_bundle_*.js - stat_url = update_url_query( - format_url.replace('/download/', '/statdownload/'), { - '.rand': int(time.time() * 1000 * random.random()), - }) - format_id = f.get('encoding_name') or format_id - stat = self._download_json( - stat_url, video_id, 'Downloading %s JSON' % format_id, - transform_source=lambda s: s[s.index('{'):s.rindex('}') + 1], - fatal=False) - if not stat: - continue - retry_url = stat.get('retry_url') - if not isinstance(retry_url, compat_str): - continue - formats.append({ - 'url': self._proto_relative_url(retry_url, 'http:'), - 'ext': download_formats.get(format_id), - 'format_id': format_id, - 'format_note': f.get('description'), - 'filesize': parse_filesize(f.get('size_mb')), - 'vcodec': 'none', - }) - self._sort_formats(formats) + if not duration: + duration = float_or_none(self._html_search_meta( + 'duration', webpage, default=None)) return { - 'id': video_id, + 'id': track_id, 'title': title, - 'thumbnail': info.get('thumb_url') or thumbnail, - 'uploader': info.get('artist'), - 'artist': artist, + 'thumbnail': thumbnail, + 'uploader': artist, + 'timestamp': timestamp, + 'release_date': release_date, + 'duration': duration, 'track': track, + 'track_number': track_number, + 'track_id': track_id, + 'artist': artist, + 'album': album, 'formats': formats, } @@ -306,7 +369,7 @@ class BandcampWeeklyIE(InfoExtractor): formats = [] for format_id, format_url in show['audio_stream'].items(): - if not isinstance(format_url, compat_str): + if not url_or_none(format_url): continue for known_ext in KNOWN_EXTENSIONS: if known_ext in format_id: diff --git a/youtube_dl/extractor/bbc.py b/youtube_dl/extractor/bbc.py index 30a63a2..abcfa30 100644 --- a/youtube_dl/extractor/bbc.py +++ b/youtube_dl/extractor/bbc.py @@ -21,7 +21,6 @@ from ..utils import ( urljoin, ) from ..compat import ( - compat_etree_fromstring, compat_HTTPError, compat_urlparse, ) @@ -30,7 +29,7 @@ from ..compat import ( class BBCCoUkIE(InfoExtractor): IE_NAME = 'bbc.co.uk' IE_DESC = 'BBC iPlayer' - _ID_REGEX = r'[pbw][\da-z]{7}' + _ID_REGEX = r'(?:[pbm][\da-z]{7}|w[\da-z]{7,14})' _VALID_URL = r'''(?x) https?:// (?:www\.)?bbc\.co\.uk/ @@ -237,6 +236,12 @@ class BBCCoUkIE(InfoExtractor): }, { 'url': 'http://www.bbc.co.uk/programmes/w3csv1y9', 'only_matching': True, + }, { + 'url': 'https://www.bbc.co.uk/programmes/m00005xn', + 'only_matching': True, + }, { + 'url': 'https://www.bbc.co.uk/programmes/w172w4dww1jqt5s', + 'only_matching': True, }] _USP_RE = r'/([^/]+?)\.ism(?:\.hlsv2\.ism)?/[^/]+\.m3u8' @@ -334,14 +339,9 @@ class BBCCoUkIE(InfoExtractor): self._raise_extractor_error(last_exception) def _download_media_selector_url(self, url, programme_id=None): - try: - media_selection = self._download_xml( - url, programme_id, 'Downloading media selection XML') - except ExtractorError as ee: - if isinstance(ee.cause, compat_HTTPError) and ee.cause.code in (403, 404): - media_selection = compat_etree_fromstring(ee.cause.read().decode('utf-8')) - else: - raise + media_selection = self._download_xml( + url, programme_id, 'Downloading media selection XML', + expected_status=(403, 404)) return self._process_media_selector(media_selection, programme_id) def _process_media_selector(self, media_selection, programme_id): @@ -784,6 +784,17 @@ class BBCIE(BBCCoUkIE): 'params': { 'skip_download': True, } + }, { + # window.__PRELOADED_STATE__ + 'url': 'https://www.bbc.co.uk/radio/play/b0b9z4yl', + 'info_dict': { + 'id': 'b0b9z4vz', + 'ext': 'mp4', + 'title': 'Prom 6: An American in Paris and Turangalila', + 'description': 'md5:51cf7d6f5c8553f197e58203bc78dff8', + 'uploader': 'Radio 3', + 'uploader_id': 'bbc_radio_three', + }, }] @classmethod @@ -1006,6 +1017,36 @@ class BBCIE(BBCCoUkIE): 'subtitles': subtitles, } + preload_state = self._parse_json(self._search_regex( + r'window\.__PRELOADED_STATE__\s*=\s*({.+?});', webpage, + 'preload state', default='{}'), playlist_id, fatal=False) + if preload_state: + current_programme = preload_state.get('programmes', {}).get('current') or {} + programme_id = current_programme.get('id') + if current_programme and programme_id and current_programme.get('type') == 'playable_item': + title = current_programme.get('titles', {}).get('tertiary') or playlist_title + formats, subtitles = self._download_media_selector(programme_id) + self._sort_formats(formats) + synopses = current_programme.get('synopses') or {} + network = current_programme.get('network') or {} + duration = int_or_none( + current_programme.get('duration', {}).get('value')) + thumbnail = None + image_url = current_programme.get('image_url') + if image_url: + thumbnail = image_url.replace('{recipe}', '1920x1920') + return { + 'id': programme_id, + 'title': title, + 'description': dict_get(synopses, ('long', 'medium', 'short')), + 'thumbnail': thumbnail, + 'duration': duration, + 'uploader': network.get('short_title'), + 'uploader_id': network.get('id'), + 'formats': formats, + 'subtitles': subtitles, + } + bbc3_config = self._parse_json( self._search_regex( r'(?s)bbcthreeConfig\s*=\s*({.+?})\s*;\s*<', webpage, diff --git a/youtube_dl/extractor/bitchute.py b/youtube_dl/extractor/bitchute.py new file mode 100644 index 0000000..446a1ab --- /dev/null +++ b/youtube_dl/extractor/bitchute.py @@ -0,0 +1,120 @@ +# coding: utf-8 +from __future__ import unicode_literals + +import itertools +import re + +from .common import InfoExtractor +from ..utils import urlencode_postdata + + +class BitChuteIE(InfoExtractor): + _VALID_URL = r'https?://(?:www\.)?bitchute\.com/(?:video|embed|torrent/[^/]+)/(?P<id>[^/?#&]+)' + _TESTS = [{ + 'url': 'https://www.bitchute.com/video/szoMrox2JEI/', + 'md5': '66c4a70e6bfc40dcb6be3eb1d74939eb', + 'info_dict': { + 'id': 'szoMrox2JEI', + 'ext': 'mp4', + 'title': 'Fuck bitches get money', + 'description': 'md5:3f21f6fb5b1d17c3dee9cf6b5fe60b3a', + 'thumbnail': r're:^https?://.*\.jpg$', + 'uploader': 'Victoria X Rave', + }, + }, { + 'url': 'https://www.bitchute.com/embed/lbb5G1hjPhw/', + 'only_matching': True, + }, { + 'url': 'https://www.bitchute.com/torrent/Zee5BE49045h/szoMrox2JEI.webtorrent', + 'only_matching': True, + }] + + def _real_extract(self, url): + video_id = self._match_id(url) + + webpage = self._download_webpage( + 'https://www.bitchute.com/video/%s' % video_id, video_id, headers={ + 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.57 Safari/537.36', + }) + + title = self._search_regex( + (r'<[^>]+\bid=["\']video-title[^>]+>([^<]+)', r'<title>([^<]+)'), + webpage, 'title', default=None) or self._html_search_meta( + 'description', webpage, 'title', + default=None) or self._og_search_description(webpage) + + formats = [ + {'url': mobj.group('url')} + for mobj in re.finditer( + r'addWebSeed\s*\(\s*(["\'])(?P<url>(?:(?!\1).)+)\1', webpage)] + self._sort_formats(formats) + + description = self._html_search_regex( + r'(?s)<div\b[^>]+\bclass=["\']full hidden[^>]+>(.+?)</div>', + webpage, 'description', fatal=False) + thumbnail = self._og_search_thumbnail( + webpage, default=None) or self._html_search_meta( + 'twitter:image:src', webpage, 'thumbnail') + uploader = self._html_search_regex( + r'(?s)<p\b[^>]+\bclass=["\']video-author[^>]+>(.+?)</p>', webpage, + 'uploader', fatal=False) + + return { + 'id': video_id, + 'title': title, + 'description': description, + 'thumbnail': thumbnail, + 'uploader': uploader, + 'formats': formats, + } + + +class BitChuteChannelIE(InfoExtractor): + _VALID_URL = r'https?://(?:www\.)?bitchute\.com/channel/(?P<id>[^/?#&]+)' + _TEST = { + 'url': 'https://www.bitchute.com/channel/victoriaxrave/', + 'playlist_mincount': 185, + 'info_dict': { + 'id': 'victoriaxrave', + }, + } + + _TOKEN = 'zyG6tQcGPE5swyAEFLqKUwMuMMuF6IO2DZ6ZDQjGfsL0e4dcTLwqkTTul05Jdve7' + + def _entries(self, channel_id): + channel_url = 'https://www.bitchute.com/channel/%s/' % channel_id + offset = 0 + for page_num in itertools.count(1): + data = self._download_json( + '%sextend/' % channel_url, channel_id, + 'Downloading channel page %d' % page_num, + data=urlencode_postdata({ + 'csrfmiddlewaretoken': self._TOKEN, + 'name': '', + 'offset': offset, + }), headers={ + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8', + 'Referer': channel_url, + 'X-Requested-With': 'XMLHttpRequest', + 'Cookie': 'csrftoken=%s' % self._TOKEN, + }) + if data.get('success') is False: + break + html = data.get('html') + if not html: + break + video_ids = re.findall( + r'class=["\']channel-videos-image-container[^>]+>\s*<a\b[^>]+\bhref=["\']/video/([^"\'/]+)', + html) + if not video_ids: + break + offset += len(video_ids) + for video_id in video_ids: + yield self.url_result( + 'https://www.bitchute.com/video/%s' % video_id, + ie=BitChuteIE.ie_key(), video_id=video_id) + + def _real_extract(self, url): + channel_id = self._match_id(url) + return self.playlist_result( + self._entries(channel_id), playlist_id=channel_id) diff --git a/youtube_dl/extractor/breakcom.py b/youtube_dl/extractor/breakcom.py index 70d1676..68c7cf2 100644 --- a/youtube_dl/extractor/breakcom.py +++ b/youtube_dl/extractor/breakcom.py @@ -4,8 +4,10 @@ import re from .common import InfoExtractor from .youtube import YoutubeIE -from ..compat import compat_str -from ..utils import int_or_none +from ..utils import ( + int_or_none, + url_or_none, +) class BreakIE(InfoExtractor): @@ -55,8 +57,8 @@ class BreakIE(InfoExtractor): formats = [] for video in content: - video_url = video.get('url') - if not video_url or not isinstance(video_url, compat_str): + video_url = url_or_none(video.get('url')) + if not video_url: continue bitrate = int_or_none(self._search_regex( r'(\d+)_kbps', video_url, 'tbr', default=None)) diff --git a/youtube_dl/extractor/brightcove.py b/youtube_dl/extractor/brightcove.py index ab62e54..14f9a14 100644 --- a/youtube_dl/extractor/brightcove.py +++ b/youtube_dl/extractor/brightcove.py @@ -572,7 +572,8 @@ class BrightcoveNewIE(AdobePassIE): container = source.get('container') ext = mimetype2ext(source.get('type')) src = source.get('src') - if ext == 'ism' or container == 'WVM': + # https://support.brightcove.com/playback-api-video-fields-reference#key_systems_object + if ext == 'ism' or container == 'WVM' or source.get('key_systems'): continue elif ext == 'm3u8' or container == 'M2TS': if not src: @@ -629,6 +630,14 @@ class BrightcoveNewIE(AdobePassIE): 'format_id': build_format_id('rtmp'), }) formats.append(f) + if not formats: + # for sonyliv.com DRM protected videos + s3_source_url = json_data.get('custom_fields', {}).get('s3sourceurl') + if s3_source_url: + formats.append({ + 'url': s3_source_url, + 'format_id': 'source', + }) errors = json_data.get('errors') if not formats and errors: diff --git a/youtube_dl/extractor/cammodels.py b/youtube_dl/extractor/cammodels.py index ee0165d..7935081 100644 --- a/youtube_dl/extractor/cammodels.py +++ b/youtube_dl/extractor/cammodels.py @@ -2,10 +2,10 @@ from __future__ import unicode_literals from .common import InfoExtractor -from ..compat import compat_str from ..utils import ( ExtractorError, int_or_none, + url_or_none, ) @@ -56,8 +56,8 @@ class CamModelsIE(InfoExtractor): for media in encodings: if not isinstance(media, dict): continue - media_url = media.get('location') - if not media_url or not isinstance(media_url, compat_str): + media_url = url_or_none(media.get('location')) + if not media_url: continue format_id_list = [format_id] diff --git a/youtube_dl/extractor/canvas.py b/youtube_dl/extractor/canvas.py index 8ac62c1..174fd9e 100644 --- a/youtube_dl/extractor/canvas.py +++ b/youtube_dl/extractor/canvas.py @@ -11,6 +11,7 @@ from ..utils import ( strip_or_none, float_or_none, int_or_none, + merge_dicts, parse_iso8601, ) @@ -248,9 +249,13 @@ class VrtNUIE(GigyaBaseIE): webpage, urlh = self._download_webpage_handle(url, display_id) - title = self._html_search_regex( + info = self._search_json_ld(webpage, display_id, default={}) + + # title is optional here since it may be extracted by extractor + # that is delegated from here + title = strip_or_none(self._html_search_regex( r'(?ms)<h1 class="content__heading">(.+?)</h1>', - webpage, 'title').strip() + webpage, 'title', default=None)) description = self._html_search_regex( r'(?ms)<div class="content__description">(.+?)</div>', @@ -295,7 +300,7 @@ class VrtNUIE(GigyaBaseIE): # the first one video_id = list(video.values())[0].get('videoid') - return { + return merge_dicts(info, { '_type': 'url_transparent', 'url': 'https://mediazone.vrt.be/api/v1/vrtvideo/assets/%s' % video_id, 'ie_key': CanvasIE.ie_key(), @@ -307,4 +312,4 @@ class VrtNUIE(GigyaBaseIE): 'season_number': season_number, 'episode_number': episode_number, 'release_date': release_date, - } + }) diff --git a/youtube_dl/extractor/ccma.py b/youtube_dl/extractor/ccma.py index 07f5206..544647f 100644 --- a/youtube_dl/extractor/ccma.py +++ b/youtube_dl/extractor/ccma.py @@ -4,13 +4,13 @@ from __future__ import unicode_literals import re from .common import InfoExtractor -from ..compat import compat_str from ..utils import ( clean_html, int_or_none, parse_duration, parse_iso8601, parse_resolution, + url_or_none, ) @@ -53,8 +53,8 @@ class CCMAIE(InfoExtractor): media_url = media['media']['url'] if isinstance(media_url, list): for format_ in media_url: - format_url = format_.get('file') - if not format_url or not isinstance(format_url, compat_str): + format_url = url_or_none(format_.get('file')) + if not format_url: continue label = format_.get('label') f = parse_resolution(label) diff --git a/youtube_dl/extractor/ceskatelevize.py b/youtube_dl/extractor/ceskatelevize.py index 6bad908..4638043 100644 --- a/youtube_dl/extractor/ceskatelevize.py +++ b/youtube_dl/extractor/ceskatelevize.py @@ -108,7 +108,7 @@ class CeskaTelevizeIE(InfoExtractor): for user_agent in (None, USER_AGENTS['Safari']): req = sanitized_Request( - 'http://www.ceskatelevize.cz/ivysilani/ajax/get-client-playlist', + 'https://www.ceskatelevize.cz/ivysilani/ajax/get-client-playlist', data=urlencode_postdata(data)) req.add_header('Content-type', 'application/x-www-form-urlencoded') diff --git a/youtube_dl/extractor/clyp.py b/youtube_dl/extractor/clyp.py index 57e6437..06d04de 100644 --- a/youtube_dl/extractor/clyp.py +++ b/youtube_dl/extractor/clyp.py @@ -1,15 +1,19 @@ from __future__ import unicode_literals from .common import InfoExtractor +from ..compat import ( + compat_parse_qs, + compat_urllib_parse_urlparse, +) from ..utils import ( float_or_none, - parse_iso8601, + unified_timestamp, ) class ClypIE(InfoExtractor): _VALID_URL = r'https?://(?:www\.)?clyp\.it/(?P<id>[a-z0-9]+)' - _TEST = { + _TESTS = [{ 'url': 'https://clyp.it/ojz2wfah', 'md5': '1d4961036c41247ecfdcc439c0cddcbb', 'info_dict': { @@ -21,13 +25,34 @@ class ClypIE(InfoExtractor): 'timestamp': 1443515251, 'upload_date': '20150929', }, - } + }, { + 'url': 'https://clyp.it/b04p1odi?token=b0078e077e15835845c528a44417719d', + 'info_dict': { + 'id': 'b04p1odi', + 'ext': 'mp3', + 'title': 'GJ! (Reward Edit)', + 'description': 'Metal Resistance (THE ONE edition)', + 'duration': 177.789, + 'timestamp': 1528241278, + 'upload_date': '20180605', + }, + 'params': { + 'skip_download': True, + }, + }] def _real_extract(self, url): audio_id = self._match_id(url) + qs = compat_parse_qs(compat_urllib_parse_urlparse(url).query) + token = qs.get('token', [None])[0] + + query = {} + if token: + query['token'] = token + metadata = self._download_json( - 'https://api.clyp.it/%s' % audio_id, audio_id) + 'https://api.clyp.it/%s' % audio_id, audio_id, query=query) formats = [] for secure in ('', 'Secure'): @@ -45,7 +70,7 @@ class ClypIE(InfoExtractor): title = metadata['Title'] description = metadata.get('Description') duration = float_or_none(metadata.get('Duration')) - timestamp = parse_iso8601(metadata.get('DateCreated')) + timestamp = unified_timestamp(metadata.get('DateCreated')) return { 'id': audio_id, diff --git a/youtube_dl/extractor/common.py b/youtube_dl/extractor/common.py index a2548db..b8bbaf8 100644 --- a/youtube_dl/extractor/common.py +++ b/youtube_dl/extractor/common.py @@ -19,6 +19,7 @@ from ..compat import ( compat_cookies, compat_etree_fromstring, compat_getpass, + compat_integer_types, compat_http_client, compat_os_name, compat_str, @@ -51,6 +52,7 @@ from ..utils import ( GeoUtils, int_or_none, js_to_json, + JSON_LD_RE, mimetype2ext, orderedSet, parse_codecs, @@ -548,8 +550,26 @@ class InfoExtractor(object): def IE_NAME(self): return compat_str(type(self).__name__[:-2]) - def _request_webpage(self, url_or_request, video_id, note=None, errnote=None, fatal=True, data=None, headers={}, query={}): - """ Returns the response handle """ + @staticmethod + def __can_accept_status_code(err, expected_status): + assert isinstance(err, compat_urllib_error.HTTPError) + if expected_status is None: + return False + if isinstance(expected_status, compat_integer_types): + return err.code == expected_status + elif isinstance(expected_status, (list, tuple)): + return err.code in expected_status + elif callable(expected_status): + return expected_status(err.code) is True + else: + assert False + + def _request_webpage(self, url_or_request, video_id, note=None, errnote=None, fatal=True, data=None, headers={}, query={}, expected_status=None): + """ + Return the response handle. + + See _download_webpage docstring for arguments specification. + """ if note is None: self.report_download_webpage(video_id) elif note is not False: @@ -578,6 +598,10 @@ class InfoExtractor(object): try: return self._downloader.urlopen(url_or_request) except (compat_urllib_error.URLError, compat_http_client.HTTPException, socket.error) as err: + if isinstance(err, compat_urllib_error.HTTPError): + if self.__can_accept_status_code(err, expected_status): + return err.fp + if errnote is False: return False if errnote is None: @@ -590,13 +614,17 @@ class InfoExtractor(object): self._downloader.report_warning(errmsg) return False - def _download_webpage_handle(self, url_or_request, video_id, note=None, errnote=None, fatal=True, encoding=None, data=None, headers={}, query={}): - """ Returns a tuple (page content as string, URL handle) """ + def _download_webpage_handle(self, url_or_request, video_id, note=None, errnote=None, fatal=True, encoding=None, data=None, headers={}, query={}, expected_status=None): + """ + Return a tuple (page content as string, URL handle). + + See _download_webpage docstring for arguments specification. + """ # Strip hashes from the URL (#1038) if isinstance(url_or_request, (compat_str, str)): url_or_request = url_or_request.partition('#')[0] - urlh = self._request_webpage(url_or_request, video_id, note, errnote, fatal, data=data, headers=headers, query=query) + urlh = self._request_webpage(url_or_request, video_id, note, errnote, fatal, data=data, headers=headers, query=query, expected_status=expected_status) if urlh is False: assert not fatal return False @@ -685,13 +713,52 @@ class InfoExtractor(object): return content - def _download_webpage(self, url_or_request, video_id, note=None, errnote=None, fatal=True, tries=1, timeout=5, encoding=None, data=None, headers={}, query={}): - """ Returns the data of the page as a string """ + def _download_webpage( + self, url_or_request, video_id, note=None, errnote=None, + fatal=True, tries=1, timeout=5, encoding=None, data=None, + headers={}, query={}, expected_status=None): + """ + Return the data of the page as a string. + + Arguments: + url_or_request -- plain text URL as a string or + a compat_urllib_request.Requestobject + video_id -- Video/playlist/item identifier (string) + + Keyword arguments: + note -- note printed before downloading (string) + errnote -- note printed in case of an error (string) + fatal -- flag denoting whether error should be considered fatal, + i.e. whether it should cause ExtractionError to be raised, + otherwise a warning will be reported and extraction continued + tries -- number of tries + timeout -- sleep interval between tries + encoding -- encoding for a page content decoding, guessed automatically + when not explicitly specified + data -- POST data (bytes) + headers -- HTTP headers (dict) + query -- URL query (dict) + expected_status -- allows to accept failed HTTP requests (non 2xx + status code) by explicitly specifying a set of accepted status + codes. Can be any of the following entities: + - an integer type specifying an exact failed status code to + accept + - a list or a tuple of integer types specifying a list of + failed status codes to accept + - a callable accepting an actual failed status code and + returning True if it should be accepted + Note that this argument does not affect success status codes (2xx) + which are always accepted. + """ + success = False try_count = 0 while success is False: try: - res = self._download_webpage_handle(url_or_request, video_id, note, errnote, fatal, encoding=encoding, data=data, headers=headers, query=query) + res = self._download_webpage_handle( + url_or_request, video_id, note, errnote, fatal, + encoding=encoding, data=data, headers=headers, query=query, + expected_status=expected_status) success = True except compat_http_client.IncompleteRead as e: try_count += 1 @@ -707,11 +774,17 @@ class InfoExtractor(object): def _download_xml_handle( self, url_or_request, video_id, note='Downloading XML', errnote='Unable to download XML', transform_source=None, - fatal=True, encoding=None, data=None, headers={}, query={}): - """Return a tuple (xml as an xml.etree.ElementTree.Element, URL handle)""" + fatal=True, encoding=None, data=None, headers={}, query={}, + expected_status=None): + """ + Return a tuple (xml as an xml.etree.ElementTree.Element, URL handle). + + See _download_webpage docstring for arguments specification. + """ res = self._download_webpage_handle( url_or_request, video_id, note, errnote, fatal=fatal, - encoding=encoding, data=data, headers=headers, query=query) + encoding=encoding, data=data, headers=headers, query=query, + expected_status=expected_status) if res is False: return res xml_string, urlh = res @@ -719,15 +792,21 @@ class InfoExtractor(object): xml_string, video_id, transform_source=transform_source, fatal=fatal), urlh - def _download_xml(self, url_or_request, video_id, - note='Downloading XML', errnote='Unable to download XML', - transform_source=None, fatal=True, encoding=None, - data=None, headers={}, query={}): - """Return the xml as an xml.etree.ElementTree.Element""" + def _download_xml( + self, url_or_request, video_id, + note='Downloading XML', errnote='Unable to download XML', + transform_source=None, fatal=True, encoding=None, + data=None, headers={}, query={}, expected_status=None): + """ + Return the xml as an xml.etree.ElementTree.Element. + + See _download_webpage docstring for arguments specification. + """ res = self._download_xml_handle( url_or_request, video_id, note=note, errnote=errnote, transform_source=transform_source, fatal=fatal, encoding=encoding, - data=data, headers=headers, query=query) + data=data, headers=headers, query=query, + expected_status=expected_status) return res if res is False else res[0] def _parse_xml(self, xml_string, video_id, transform_source=None, fatal=True): @@ -745,11 +824,17 @@ class InfoExtractor(object): def _download_json_handle( self, url_or_request, video_id, note='Downloading JSON metadata', errnote='Unable to download JSON metadata', transform_source=None, - fatal=True, encoding=None, data=None, headers={}, query={}): - """Return a tuple (JSON object, URL handle)""" + fatal=True, encoding=None, data=None, headers={}, query={}, + expected_status=None): + """ + Return a tuple (JSON object, URL handle). + + See _download_webpage docstring for arguments specification. + """ res = self._download_webpage_handle( url_or_request, video_id, note, errnote, fatal=fatal, - encoding=encoding, data=data, headers=headers, query=query) + encoding=encoding, data=data, headers=headers, query=query, + expected_status=expected_status) if res is False: return res json_string, urlh = res @@ -760,11 +845,18 @@ class InfoExtractor(object): def _download_json( self, url_or_request, video_id, note='Downloading JSON metadata', errnote='Unable to download JSON metadata', transform_source=None, - fatal=True, encoding=None, data=None, headers={}, query={}): + fatal=True, encoding=None, data=None, headers={}, query={}, + expected_status=None): + """ + Return the JSON object as a dict. + + See _download_webpage docstring for arguments specification. + """ res = self._download_json_handle( url_or_request, video_id, note=note, errnote=errnote, transform_source=transform_source, fatal=fatal, encoding=encoding, - data=data, headers=headers, query=query) + data=data, headers=headers, query=query, + expected_status=expected_status) return res if res is False else res[0] def _parse_json(self, json_string, video_id, transform_source=None, fatal=True): @@ -1058,8 +1150,7 @@ class InfoExtractor(object): def _search_json_ld(self, html, video_id, expected_type=None, **kwargs): json_ld = self._search_regex( - r'(?s)<script[^>]+type=(["\'])application/ld\+json\1[^>]*>(?P<json_ld>.+?)</script>', - html, 'JSON-LD', group='json_ld', **kwargs) + JSON_LD_RE, html, 'JSON-LD', group='json_ld', **kwargs) default = kwargs.get('default', NO_DEFAULT) if not json_ld: return default if default is not NO_DEFAULT else {} @@ -1768,9 +1859,7 @@ class InfoExtractor(object): 'height': height, }) formats.extend(m3u8_formats) - continue - - if src_ext == 'f4m': + elif src_ext == 'f4m': f4m_url = src_url if not f4m_params: f4m_params = { @@ -1780,9 +1869,13 @@ class InfoExtractor(object): f4m_url += '&' if '?' in f4m_url else '?' f4m_url += compat_urllib_parse_urlencode(f4m_params) formats.extend(self._extract_f4m_formats(f4m_url, video_id, f4m_id='hds', fatal=False)) - continue - - if src_url.startswith('http') and self._is_valid_url(src, video_id): + elif src_ext == 'mpd': + formats.extend(self._extract_mpd_formats( + src_url, video_id, mpd_id='dash', fatal=False)) + elif re.search(r'\.ism/[Mm]anifest', src_url): + formats.extend(self._extract_ism_formats( + src_url, video_id, ism_id='mss', fatal=False)) + elif src_url.startswith('http') and self._is_valid_url(src, video_id): http_count += 1 formats.append({ 'url': src_url, @@ -1793,7 +1886,6 @@ class InfoExtractor(object): 'width': width, 'height': height, }) - continue return formats @@ -2015,7 +2107,21 @@ class InfoExtractor(object): representation_ms_info = extract_multisegment_info(representation, adaption_set_ms_info) def prepare_template(template_name, identifiers): - t = representation_ms_info[template_name] + tmpl = representation_ms_info[template_name] + # First of, % characters outside $...$ templates + # must be escaped by doubling for proper processing + # by % operator string formatting used further (see + # https://github.com/rg3/youtube-dl/issues/16867). + t = '' + in_template = False + for c in tmpl: + t += c + if c == '$': + in_template = not in_template + elif c == '%' and not in_template: + t += c + # Next, $...$ templates are translated to their + # %(...) counterparts to be used with % operator t = t.replace('$RepresentationID$', representation_id) t = re.sub(r'\$(%s)\$' % '|'.join(identifiers), r'%(\1)d', t) t = re.sub(r'\$(%s)%%([^$]+)\$' % '|'.join(identifiers), r'%(\1)\2', t) @@ -2346,6 +2452,8 @@ class InfoExtractor(object): media_info['subtitles'].setdefault(lang, []).append({ 'url': absolute_url(src), }) + for f in media_info['formats']: + f.setdefault('http_headers', {})['Referer'] = base_url if media_info['formats'] or media_info['subtitles']: entries.append(media_info) return entries diff --git a/youtube_dl/extractor/crackle.py b/youtube_dl/extractor/crackle.py index f4a6164..8dd9d66 100644 --- a/youtube_dl/extractor/crackle.py +++ b/youtube_dl/extractor/crackle.py @@ -4,16 +4,14 @@ from __future__ import unicode_literals, division import re from .common import InfoExtractor -from ..compat import ( - compat_str, - compat_HTTPError, -) +from ..compat import compat_HTTPError from ..utils import ( determine_ext, float_or_none, int_or_none, parse_age_limit, parse_duration, + url_or_none, ExtractorError ) @@ -86,8 +84,8 @@ class CrackleIE(InfoExtractor): for e in media['MediaURLs']: if e.get('UseDRM') is True: continue - format_url = e.get('Path') - if not format_url or not isinstance(format_url, compat_str): + format_url = url_or_none(e.get('Path')) + if not format_url: continue ext = determine_ext(format_url) if ext == 'm3u8': @@ -124,8 +122,8 @@ class CrackleIE(InfoExtractor): for cc_file in cc_files: if not isinstance(cc_file, dict): continue - cc_url = cc_file.get('Path') - if not cc_url or not isinstance(cc_url, compat_str): + cc_url = url_or_none(cc_file.get('Path')) + if not cc_url: continue lang = cc_file.get('Locale') or 'en' subtitles.setdefault(lang, []).append({'url': cc_url}) diff --git a/youtube_dl/extractor/crunchyroll.py b/youtube_dl/extractor/crunchyroll.py index 311da51..ba8b9fa 100644 --- a/youtube_dl/extractor/crunchyroll.py +++ b/youtube_dl/extractor/crunchyroll.py @@ -8,6 +8,7 @@ import zlib from hashlib import sha1 from math import pow, sqrt, floor from .common import InfoExtractor +from .vrv import VRVIE from ..compat import ( compat_b64decode, compat_etree_fromstring, @@ -18,6 +19,8 @@ from ..compat import ( from ..utils import ( ExtractorError, bytes_to_intlist, + extract_attributes, + float_or_none, intlist_to_bytes, int_or_none, lowercase_escape, @@ -26,7 +29,6 @@ from ..utils import ( unified_strdate, urlencode_postdata, xpath_text, - extract_attributes, ) from ..aes import ( aes_cbc_decrypt, @@ -139,7 +141,8 @@ class CrunchyrollBaseIE(InfoExtractor): parsed_url._replace(query=compat_urllib_parse_urlencode(qs, True))) -class CrunchyrollIE(CrunchyrollBaseIE): +class CrunchyrollIE(CrunchyrollBaseIE, VRVIE): + IE_NAME = 'crunchyroll' _VALID_URL = r'https?://(?:(?P<prefix>www|m)\.)?(?P<url>crunchyroll\.(?:com|fr)/(?:media(?:-|/\?id=)|[^/]*/[^/?&]*?)(?P<video_id>[0-9]+))(?:[/?&]|$)' _TESTS = [{ 'url': 'http://www.crunchyroll.com/wanna-be-the-strongest-in-the-world/episode-1-an-idol-wrestler-is-born-645513', @@ -148,7 +151,7 @@ class CrunchyrollIE(CrunchyrollBaseIE): 'ext': 'mp4', 'title': 'Wanna be the Strongest in the World Episode 1 – An Idol-Wrestler is Born!', 'description': 'md5:2d17137920c64f2f49981a7797d275ef', - 'thumbnail': 'http://img1.ak.crunchyroll.com/i/spire1-tmb/20c6b5e10f1a47b10516877d3c039cae1380951166_full.jpg', + 'thumbnail': r're:^https?://.*\.jpg$', 'uploader': 'Yomiuri Telecasting Corporation (YTV)', 'upload_date': '20131013', 'url': 're:(?!.*&)', @@ -221,7 +224,7 @@ class CrunchyrollIE(CrunchyrollBaseIE): 'info_dict': { 'id': '535080', 'ext': 'mp4', - 'title': '11eyes Episode 1 – Piros éjszaka - Red Night', + 'title': '11eyes Episode 1 – Red Night ~ Piros éjszaka', 'description': 'Kakeru and Yuka are thrown into an alternate nightmarish world they call "Red Night".', 'uploader': 'Marvelous AQL Inc.', 'upload_date': '20091021', @@ -262,6 +265,9 @@ class CrunchyrollIE(CrunchyrollBaseIE): # Just test metadata extraction 'skip_download': True, }, + }, { + 'url': 'http://www.crunchyroll.com/media-723735', + 'only_matching': True, }] _FORMAT_IDS = { @@ -434,13 +440,18 @@ Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text if 'To view this, please log in to verify you are 18 or older.' in webpage: self.raise_login_required() + media = self._parse_json(self._search_regex( + r'vilos\.config\.media\s*=\s*({.+?});', + webpage, 'vilos media', default='{}'), video_id) + media_metadata = media.get('metadata') or {} + video_title = self._html_search_regex( r'(?s)<h1[^>]*>((?:(?!<h1).)*?<span[^>]+itemprop=["\']title["\'][^>]*>(?:(?!<h1).)+?)</h1>', webpage, 'video_title') video_title = re.sub(r' {2,}', ' ', video_title) - video_description = self._parse_json(self._html_search_regex( + video_description = (self._parse_json(self._html_search_regex( r'<script[^>]*>\s*.+?\[media_id=%s\].+?({.+?"description"\s*:.+?})\);' % video_id, - webpage, 'description', default='{}'), video_id).get('description') + webpage, 'description', default='{}'), video_id) or media_metadata).get('description') if video_description: video_description = lowercase_escape(video_description.replace(r'\r\n', '\n')) video_upload_date = self._html_search_regex( @@ -453,91 +464,99 @@ Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text [r'<a[^>]+href="/publisher/[^"]+"[^>]*>([^<]+)</a>', r'<div>\s*Publisher:\s*<span>\s*(.+?)\s*</span>\s*</div>'], webpage, 'video_uploader', fatal=False) - available_fmts = [] - for a, fmt in re.findall(r'(<a[^>]+token=["\']showmedia\.([0-9]{3,4})p["\'][^>]+>)', webpage): - attrs = extract_attributes(a) - href = attrs.get('href') - if href and '/freetrial' in href: - continue - available_fmts.append(fmt) - if not available_fmts: - for p in (r'token=["\']showmedia\.([0-9]{3,4})p"', r'showmedia\.([0-9]{3,4})p'): - available_fmts = re.findall(p, webpage) - if available_fmts: - break - video_encode_ids = [] formats = [] - for fmt in available_fmts: - stream_quality, stream_format = self._FORMAT_IDS[fmt] - video_format = fmt + 'p' - stream_infos = [] - streamdata = self._call_rpc_api( - 'VideoPlayer_GetStandardConfig', video_id, - 'Downloading media info for %s' % video_format, data={ - 'media_id': video_id, - 'video_format': stream_format, - 'video_quality': stream_quality, - 'current_page': url, - }) - if streamdata is not None: - stream_info = streamdata.find('./{default}preload/stream_info') + for stream in media.get('streams', []): + formats.extend(self._extract_vrv_formats( + stream.get('url'), video_id, stream.get('format'), + stream.get('audio_lang'), stream.get('hardsub_lang'))) + if not formats: + available_fmts = [] + for a, fmt in re.findall(r'(<a[^>]+token=["\']showmedia\.([0-9]{3,4})p["\'][^>]+>)', webpage): + attrs = extract_attributes(a) + href = attrs.get('href') + if href and '/freetrial' in href: + continue + available_fmts.append(fmt) + if not available_fmts: + for p in (r'token=["\']showmedia\.([0-9]{3,4})p"', r'showmedia\.([0-9]{3,4})p'): + available_fmts = re.findall(p, webpage) + if available_fmts: + break + if not available_fmts: + available_fmts = self._FORMAT_IDS.keys() + video_encode_ids = [] + + for fmt in available_fmts: + stream_quality, stream_format = self._FORMAT_IDS[fmt] + video_format = fmt + 'p' + stream_infos = [] + streamdata = self._call_rpc_api( + 'VideoPlayer_GetStandardConfig', video_id, + 'Downloading media info for %s' % video_format, data={ + 'media_id': video_id, + 'video_format': stream_format, + 'video_quality': stream_quality, + 'current_page': url, + }) + if streamdata is not None: + stream_info = streamdata.find('./{default}preload/stream_info') + if stream_info is not None: + stream_infos.append(stream_info) + stream_info = self._call_rpc_api( + 'VideoEncode_GetStreamInfo', video_id, + 'Downloading stream info for %s' % video_format, data={ + 'media_id': video_id, + 'video_format': stream_format, + 'video_encode_quality': stream_quality, + }) if stream_info is not None: stream_infos.append(stream_info) - stream_info = self._call_rpc_api( - 'VideoEncode_GetStreamInfo', video_id, - 'Downloading stream info for %s' % video_format, data={ - 'media_id': video_id, - 'video_format': stream_format, - 'video_encode_quality': stream_quality, - }) - if stream_info is not None: - stream_infos.append(stream_info) - for stream_info in stream_infos: - video_encode_id = xpath_text(stream_info, './video_encode_id') - if video_encode_id in video_encode_ids: - continue - video_encode_ids.append(video_encode_id) - - video_file = xpath_text(stream_info, './file') - if not video_file: - continue - if video_file.startswith('http'): - formats.extend(self._extract_m3u8_formats( - video_file, video_id, 'mp4', entry_protocol='m3u8_native', - m3u8_id='hls', fatal=False)) - continue + for stream_info in stream_infos: + video_encode_id = xpath_text(stream_info, './video_encode_id') + if video_encode_id in video_encode_ids: + continue + video_encode_ids.append(video_encode_id) - video_url = xpath_text(stream_info, './host') - if not video_url: - continue - metadata = stream_info.find('./metadata') - format_info = { - 'format': video_format, - 'height': int_or_none(xpath_text(metadata, './height')), - 'width': int_or_none(xpath_text(metadata, './width')), - } - - if '.fplive.net/' in video_url: - video_url = re.sub(r'^rtmpe?://', 'http://', video_url.strip()) - parsed_video_url = compat_urlparse.urlparse(video_url) - direct_video_url = compat_urlparse.urlunparse(parsed_video_url._replace( - netloc='v.lvlt.crcdn.net', - path='%s/%s' % (remove_end(parsed_video_url.path, '/'), video_file.split(':')[-1]))) - if self._is_valid_url(direct_video_url, video_id, video_format): - format_info.update({ - 'format_id': 'http-' + video_format, - 'url': direct_video_url, - }) - formats.append(format_info) + video_file = xpath_text(stream_info, './file') + if not video_file: + continue + if video_file.startswith('http'): + formats.extend(self._extract_m3u8_formats( + video_file, video_id, 'mp4', entry_protocol='m3u8_native', + m3u8_id='hls', fatal=False)) continue - format_info.update({ - 'format_id': 'rtmp-' + video_format, - 'url': video_url, - 'play_path': video_file, - 'ext': 'flv', - }) - formats.append(format_info) + video_url = xpath_text(stream_info, './host') + if not video_url: + continue + metadata = stream_info.find('./metadata') + format_info = { + 'format': video_format, + 'height': int_or_none(xpath_text(metadata, './height')), + 'width': int_or_none(xpath_text(metadata, './width')), + } + + if '.fplive.net/' in video_url: + video_url = re.sub(r'^rtmpe?://', 'http://', video_url.strip()) + parsed_video_url = compat_urlparse.urlparse(video_url) + direct_video_url = compat_urlparse.urlunparse(parsed_video_url._replace( + netloc='v.lvlt.crcdn.net', + path='%s/%s' % (remove_end(parsed_video_url.path, '/'), video_file.split(':')[-1]))) + if self._is_valid_url(direct_video_url, video_id, video_format): + format_info.update({ + 'format_id': 'http-' + video_format, + 'url': direct_video_url, + }) + formats.append(format_info) + continue + + format_info.update({ + 'format_id': 'rtmp-' + video_format, + 'url': video_url, + 'play_path': video_file, + 'ext': 'flv', + }) + formats.append(format_info) self._sort_formats(formats, ('height', 'width', 'tbr', 'fps')) metadata = self._call_rpc_api( @@ -546,7 +565,17 @@ Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text 'media_id': video_id, }) - subtitles = self.extract_subtitles(video_id, webpage) + subtitles = {} + for subtitle in media.get('subtitles', []): + subtitle_url = subtitle.get('url') + if not subtitle_url: + continue + subtitles.setdefault(subtitle.get('language', 'enUS'), []).append({ + 'url': subtitle_url, + 'ext': subtitle.get('format', 'ass'), + }) + if not subtitles: + subtitles = self.extract_subtitles(video_id, webpage) # webpage provide more accurate data than series_title from XML series = self._html_search_regex( @@ -554,8 +583,8 @@ Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text webpage, 'series', fatal=False) season = xpath_text(metadata, 'series_title') - episode = xpath_text(metadata, 'episode_title') - episode_number = int_or_none(xpath_text(metadata, 'episode_number')) + episode = xpath_text(metadata, 'episode_title') or media_metadata.get('title') + episode_number = int_or_none(xpath_text(metadata, 'episode_number') or media_metadata.get('episode_number')) season_number = int_or_none(self._search_regex( r'(?s)<h\d[^>]+id=["\']showmedia_about_episode_num[^>]+>.+?</h\d>\s*<h4>\s*Season (\d+)', @@ -565,7 +594,8 @@ Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text 'id': video_id, 'title': video_title, 'description': video_description, - 'thumbnail': xpath_text(metadata, 'episode_image_url'), + 'duration': float_or_none(media_metadata.get('duration'), 1000), + 'thumbnail': xpath_text(metadata, 'episode_image_url') or media_metadata.get('thumbnail', {}).get('url'), 'uploader': video_uploader, 'upload_date': video_upload_date, 'series': series, @@ -580,7 +610,7 @@ Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text class CrunchyrollShowPlaylistIE(CrunchyrollBaseIE): IE_NAME = 'crunchyroll:playlist' - _VALID_URL = r'https?://(?:(?P<prefix>www|m)\.)?(?P<url>crunchyroll\.com/(?!(?:news|anime-news|library|forum|launchcalendar|lineup|store|comics|freetrial|login))(?P<id>[\w\-]+))/?(?:\?|$)' + _VALID_URL = r'https?://(?:(?P<prefix>www|m)\.)?(?P<url>crunchyroll\.com/(?!(?:news|anime-news|library|forum|launchcalendar|lineup|store|comics|freetrial|login|media-\d+))(?P<id>[\w\-]+))/?(?:\?|$)' _TESTS = [{ 'url': 'http://www.crunchyroll.com/a-bridge-to-the-starry-skies-hoshizora-e-kakaru-hashi', diff --git a/youtube_dl/extractor/cwtv.py b/youtube_dl/extractor/cwtv.py index f4cf0f1..224a1fb 100644 --- a/youtube_dl/extractor/cwtv.py +++ b/youtube_dl/extractor/cwtv.py @@ -4,7 +4,10 @@ from __future__ import unicode_literals from .common import InfoExtractor from ..utils import ( int_or_none, + parse_age_limit, parse_iso8601, + smuggle_url, + str_or_none, ) @@ -40,10 +43,15 @@ class CWTVIE(InfoExtractor): 'duration': 1263, 'series': 'Whose Line Is It Anyway?', 'season_number': 11, - 'season': '11', 'episode_number': 20, 'upload_date': '20151006', 'timestamp': 1444107300, + 'age_limit': 14, + 'uploader': 'CWTV', + }, + 'params': { + # m3u8 download + 'skip_download': True, }, }, { 'url': 'http://cwtv.com/thecw/chroniclesofcisco/?play=8adebe35-f447-465f-ab52-e863506ff6d6', @@ -58,60 +66,28 @@ class CWTVIE(InfoExtractor): def _real_extract(self, url): video_id = self._match_id(url) - video_data = None - formats = [] - for partner in (154, 213): - vdata = self._download_json( - 'http://metaframe.digitalsmiths.tv/v2/CWtv/assets/%s/partner/%d?format=json' % (video_id, partner), video_id, fatal=False) - if not vdata: - continue - video_data = vdata - for quality, quality_data in vdata.get('videos', {}).items(): - quality_url = quality_data.get('uri') - if not quality_url: - continue - if quality == 'variantplaylist': - formats.extend(self._extract_m3u8_formats( - quality_url, video_id, 'mp4', m3u8_id='hls', fatal=False)) - else: - tbr = int_or_none(quality_data.get('bitrate')) - format_id = 'http' + ('-%d' % tbr if tbr else '') - if self._is_valid_url(quality_url, video_id, format_id): - formats.append({ - 'format_id': format_id, - 'url': quality_url, - 'tbr': tbr, - }) - video_metadata = video_data['assetFields'] - ism_url = video_metadata.get('smoothStreamingUrl') - if ism_url: - formats.extend(self._extract_ism_formats( - ism_url, video_id, ism_id='mss', fatal=False)) - self._sort_formats(formats) - - thumbnails = [{ - 'url': image['uri'], - 'width': image.get('width'), - 'height': image.get('height'), - } for image_id, image in video_data['images'].items() if image.get('uri')] if video_data.get('images') else None + video_data = self._download_json( + 'http://images.cwtv.com/feed/mobileapp/video-meta/apiversion_8/guid_' + video_id, + video_id)['video'] + title = video_data['title'] + mpx_url = video_data.get('mpx_url') or 'http://link.theplatform.com/s/cwtv/media/guid/2703454149/%s?formats=M3U' % video_id - subtitles = { - 'en': [{ - 'url': video_metadata['UnicornCcUrl'], - }], - } if video_metadata.get('UnicornCcUrl') else None + season = str_or_none(video_data.get('season')) + episode = str_or_none(video_data.get('episode')) + if episode and season: + episode = episode.lstrip(season) return { + '_type': 'url_transparent', 'id': video_id, - 'title': video_metadata['title'], - 'description': video_metadata.get('description'), - 'duration': int_or_none(video_metadata.get('duration')), - 'series': video_metadata.get('seriesName'), - 'season_number': int_or_none(video_metadata.get('seasonNumber')), - 'season': video_metadata.get('seasonName'), - 'episode_number': int_or_none(video_metadata.get('episodeNumber')), - 'timestamp': parse_iso8601(video_data.get('startTime')), - 'thumbnails': thumbnails, - 'formats': formats, - 'subtitles': subtitles, + 'title': title, + 'url': smuggle_url(mpx_url, {'force_smil_url': True}), + 'description': video_data.get('description_long'), + 'duration': int_or_none(video_data.get('duration_secs')), + 'series': video_data.get('series_name'), + 'season_number': int_or_none(season), + 'episode_number': int_or_none(episode), + 'timestamp': parse_iso8601(video_data.get('start_time')), + 'age_limit': parse_age_limit(video_data.get('rating')), + 'ie_key': 'ThePlatform', } diff --git a/youtube_dl/extractor/dailymotion.py b/youtube_dl/extractor/dailymotion.py index 9a74906..040f0bd 100644 --- a/youtube_dl/extractor/dailymotion.py +++ b/youtube_dl/extractor/dailymotion.py @@ -2,6 +2,7 @@ from __future__ import unicode_literals import base64 +import functools import hashlib import itertools import json @@ -16,11 +17,13 @@ from ..utils import ( error_to_compat_str, ExtractorError, int_or_none, + mimetype2ext, + OnDemandPagedList, parse_iso8601, sanitized_Request, str_to_int, unescapeHTML, - mimetype2ext, + urlencode_postdata, ) @@ -144,7 +147,8 @@ class DailymotionIE(DailymotionBaseInfoExtractor): age_limit = self._rta_search(webpage) - description = self._og_search_description(webpage) or self._html_search_meta( + description = self._og_search_description( + webpage, default=None) or self._html_search_meta( 'description', webpage, 'description') view_count_str = self._search_regex( @@ -342,58 +346,73 @@ class DailymotionIE(DailymotionBaseInfoExtractor): class DailymotionPlaylistIE(DailymotionBaseInfoExtractor): IE_NAME = 'dailymotion:playlist' - _VALID_URL = r'(?:https?://)?(?:www\.)?dailymotion\.[a-z]{2,3}/playlist/(?P<id>[^/?#&]+)' - _MORE_PAGES_INDICATOR = r'(?s)<div class="pages[^"]*">.*?<a\s+class="[^"]*?icon-arrow_right[^"]*?"' - _PAGE_TEMPLATE = 'https://www.dailymotion.com/playlist/%s/%s' + _VALID_URL = r'(?:https?://)?(?:www\.)?dailymotion\.[a-z]{2,3}/playlist/(?P<id>x[0-9a-z]+)' _TESTS = [{ 'url': 'http://www.dailymotion.com/playlist/xv4bw_nqtv_sport/1#video=xl8v3q', 'info_dict': { 'title': 'SPORT', - 'id': 'xv4bw_nqtv_sport', + 'id': 'xv4bw', }, 'playlist_mincount': 20, }] - - def _extract_entries(self, id): - video_ids = set() - processed_urls = set() - for pagenum in itertools.count(1): - page_url = self._PAGE_TEMPLATE % (id, pagenum) - webpage, urlh = self._download_webpage_handle_no_ff( - page_url, id, 'Downloading page %s' % pagenum) - if urlh.geturl() in processed_urls: - self.report_warning('Stopped at duplicated page %s, which is the same as %s' % ( - page_url, urlh.geturl()), id) - break - - processed_urls.add(urlh.geturl()) - - for video_id in re.findall(r'data-xid="(.+?)"', webpage): - if video_id not in video_ids: - yield self.url_result( - 'http://www.dailymotion.com/video/%s' % video_id, - DailymotionIE.ie_key(), video_id) - video_ids.add(video_id) - - if re.search(self._MORE_PAGES_INDICATOR, webpage) is None: - break + _PAGE_SIZE = 100 + + def _fetch_page(self, playlist_id, authorizaion, page): + page += 1 + videos = self._download_json( + 'https://graphql.api.dailymotion.com', + playlist_id, 'Downloading page %d' % page, + data=json.dumps({ + 'query': '''{ + collection(xid: "%s") { + videos(first: %d, page: %d) { + pageInfo { + hasNextPage + nextPage + } + edges { + node { + xid + url + } + } + } + } +}''' % (playlist_id, self._PAGE_SIZE, page) + }).encode(), headers={ + 'Authorization': authorizaion, + 'Origin': 'https://www.dailymotion.com', + })['data']['collection']['videos'] + for edge in videos['edges']: + node = edge['node'] + yield self.url_result( + node['url'], DailymotionIE.ie_key(), node['xid']) def _real_extract(self, url): - mobj = re.match(self._VALID_URL, url) - playlist_id = mobj.group('id') + playlist_id = self._match_id(url) webpage = self._download_webpage(url, playlist_id) - - return { - '_type': 'playlist', - 'id': playlist_id, - 'title': self._og_search_title(webpage), - 'entries': self._extract_entries(playlist_id), - } - - -class DailymotionUserIE(DailymotionPlaylistIE): + api = self._parse_json(self._search_regex( + r'__PLAYER_CONFIG__\s*=\s*({.+?});', + webpage, 'player config'), playlist_id)['context']['api'] + auth = self._download_json( + api.get('auth_url', 'https://graphql.api.dailymotion.com/oauth/token'), + playlist_id, data=urlencode_postdata({ + 'client_id': api.get('client_id', 'f1a362d288c1b98099c7'), + 'client_secret': api.get('client_secret', 'eea605b96e01c796ff369935357eca920c5da4c5'), + 'grant_type': 'client_credentials', + })) + authorizaion = '%s %s' % (auth.get('token_type', 'Bearer'), auth['access_token']) + entries = OnDemandPagedList(functools.partial( + self._fetch_page, playlist_id, authorizaion), self._PAGE_SIZE) + return self.playlist_result( + entries, playlist_id, + self._og_search_title(webpage)) + + +class DailymotionUserIE(DailymotionBaseInfoExtractor): IE_NAME = 'dailymotion:user' _VALID_URL = r'https?://(?:www\.)?dailymotion\.[a-z]{2,3}/(?!(?:embed|swf|#|video|playlist)/)(?:(?:old/)?user/)?(?P<user>[^/]+)' + _MORE_PAGES_INDICATOR = r'(?s)<div class="pages[^"]*">.*?<a\s+class="[^"]*?icon-arrow_right[^"]*?"' _PAGE_TEMPLATE = 'http://www.dailymotion.com/user/%s/%s' _TESTS = [{ 'url': 'https://www.dailymotion.com/user/nqtv', @@ -415,6 +434,30 @@ class DailymotionUserIE(DailymotionPlaylistIE): 'skip': 'Takes too long time', }] + def _extract_entries(self, id): + video_ids = set() + processed_urls = set() + for pagenum in itertools.count(1): + page_url = self._PAGE_TEMPLATE % (id, pagenum) + webpage, urlh = self._download_webpage_handle_no_ff( + page_url, id, 'Downloading page %s' % pagenum) + if urlh.geturl() in processed_urls: + self.report_warning('Stopped at duplicated page %s, which is the same as %s' % ( + page_url, urlh.geturl()), id) + break + + processed_urls.add(urlh.geturl()) + + for video_id in re.findall(r'data-xid="(.+?)"', webpage): + if video_id not in video_ids: + yield self.url_result( + 'http://www.dailymotion.com/video/%s' % video_id, + DailymotionIE.ie_key(), video_id) + video_ids.add(video_id) + + if re.search(self._MORE_PAGES_INDICATOR, webpage) is None: + break + def _real_extract(self, url): mobj = re.match(self._VALID_URL, url) user = mobj.group('user') diff --git a/youtube_dl/extractor/dctp.py b/youtube_dl/extractor/dctp.py index 3a6d056..769a219 100644 --- a/youtube_dl/extractor/dctp.py +++ b/youtube_dl/extractor/dctp.py @@ -5,13 +5,16 @@ from .common import InfoExtractor from ..compat import compat_str from ..utils import ( float_or_none, - unified_strdate, + int_or_none, + unified_timestamp, + url_or_none, ) class DctpTvIE(InfoExtractor): _VALID_URL = r'https?://(?:www\.)?dctp\.tv/(?:#/)?filme/(?P<id>[^/?#&]+)' - _TEST = { + _TESTS = [{ + # 4x3 'url': 'http://www.dctp.tv/filme/videoinstallation-fuer-eine-kaufhausfassade/', 'info_dict': { 'id': '95eaa4f33dad413aa17b4ee613cccc6c', @@ -19,37 +22,55 @@ class DctpTvIE(InfoExtractor): 'ext': 'flv', 'title': 'Videoinstallation für eine Kaufhausfassade', 'description': 'Kurzfilm', - 'upload_date': '20110407', 'thumbnail': r're:^https?://.*\.jpg$', 'duration': 71.24, + 'timestamp': 1302172322, + 'upload_date': '20110407', }, 'params': { # rtmp download 'skip_download': True, }, - } + }, { + # 16x9 + 'url': 'http://www.dctp.tv/filme/sind-youtuber-die-besseren-lehrer/', + 'only_matching': True, + }] + + _BASE_URL = 'http://dctp-ivms2-restapi.s3.amazonaws.com' def _real_extract(self, url): display_id = self._match_id(url) - webpage = self._download_webpage(url, display_id) + version = self._download_json( + '%s/version.json' % self._BASE_URL, display_id, + 'Downloading version JSON') + + restapi_base = '%s/%s/restapi' % ( + self._BASE_URL, version['version_name']) - video_id = self._html_search_meta( - 'DC.identifier', webpage, 'video id', - default=None) or self._search_regex( - r'id=["\']uuid[^>]+>([^<]+)<', webpage, 'video id') + info = self._download_json( + '%s/slugs/%s.json' % (restapi_base, display_id), display_id, + 'Downloading video info JSON') - title = self._og_search_title(webpage) + media = self._download_json( + '%s/media/%s.json' % (restapi_base, compat_str(info['object_id'])), + display_id, 'Downloading media JSON') + + uuid = media['uuid'] + title = media['title'] + ratio = '16x9' if media.get('is_wide') else '4x3' + play_path = 'mp4:%s_dctp_0500_%s.m4v' % (uuid, ratio) servers = self._download_json( 'http://www.dctp.tv/streaming_servers/', display_id, - note='Downloading server list', fatal=False) + note='Downloading server list JSON', fatal=False) if servers: endpoint = next( server['endpoint'] for server in servers - if isinstance(server.get('endpoint'), compat_str) and + if url_or_none(server.get('endpoint')) and 'cloudfront' in server['endpoint']) else: endpoint = 'rtmpe://s2pqqn4u96e4j8.cloudfront.net/cfx/st/' @@ -60,27 +81,35 @@ class DctpTvIE(InfoExtractor): formats = [{ 'url': endpoint, 'app': app, - 'play_path': 'mp4:%s_dctp_0500_4x3.m4v' % video_id, + 'play_path': play_path, 'page_url': url, - 'player_url': 'http://svm-prod-dctptv-static.s3.amazonaws.com/dctptv-relaunch2012-109.swf', + 'player_url': 'http://svm-prod-dctptv-static.s3.amazonaws.com/dctptv-relaunch2012-110.swf', 'ext': 'flv', }] - description = self._html_search_meta('DC.description', webpage) - upload_date = unified_strdate( - self._html_search_meta('DC.date.created', webpage)) - thumbnail = self._og_search_thumbnail(webpage) - duration = float_or_none(self._search_regex( - r'id=["\']duration_in_ms[^+]>(\d+)', webpage, 'duration', - default=None), scale=1000) + thumbnails = [] + images = media.get('images') + if isinstance(images, list): + for image in images: + if not isinstance(image, dict): + continue + image_url = url_or_none(image.get('url')) + if not image_url: + continue + thumbnails.append({ + 'url': image_url, + 'width': int_or_none(image.get('width')), + 'height': int_or_none(image.get('height')), + }) return { - 'id': video_id, + 'id': uuid, + 'display_id': display_id, 'title': title, + 'alt_title': media.get('subtitle'), + 'description': media.get('description') or media.get('teaser'), + 'timestamp': unified_timestamp(media.get('created')), + 'duration': float_or_none(media.get('duration_in_ms'), scale=1000), + 'thumbnails': thumbnails, 'formats': formats, - 'display_id': display_id, - 'description': description, - 'upload_date': upload_date, - 'thumbnail': thumbnail, - 'duration': duration, } diff --git a/youtube_dl/extractor/discoverygo.py b/youtube_dl/extractor/discoverygo.py index 3368c4c..9e7b14a 100644 --- a/youtube_dl/extractor/discoverygo.py +++ b/youtube_dl/extractor/discoverygo.py @@ -3,7 +3,6 @@ from __future__ import unicode_literals import re from .common import InfoExtractor -from ..compat import compat_str from ..utils import ( determine_ext, extract_attributes, @@ -12,6 +11,7 @@ from ..utils import ( parse_age_limit, remove_end, unescapeHTML, + url_or_none, ) @@ -69,9 +69,8 @@ class DiscoveryGoBaseIE(InfoExtractor): captions = stream.get('captions') if isinstance(captions, list): for caption in captions: - subtitle_url = caption.get('fileUrl') - if (not subtitle_url or not isinstance(subtitle_url, compat_str) or - not subtitle_url.startswith('http')): + subtitle_url = url_or_none(caption.get('fileUrl')) + if not subtitle_url or not subtitle_url.startswith('http'): continue lang = caption.get('fileLang', 'en') ext = determine_ext(subtitle_url) diff --git a/youtube_dl/extractor/dplay.py b/youtube_dl/extractor/dplay.py index fe47f6d..ebf5951 100644 --- a/youtube_dl/extractor/dplay.py +++ b/youtube_dl/extractor/dplay.py @@ -21,6 +21,7 @@ from ..utils import ( unified_strdate, unified_timestamp, update_url_query, + urljoin, USER_AGENTS, ) @@ -310,9 +311,11 @@ class DPlayItIE(InfoExtractor): if not info: info_url = self._search_regex( - r'url\s*[:=]\s*["\']((?:https?:)?//[^/]+/playback/videoPlaybackInfo/\d+)', - webpage, 'info url') + (r'playback_json_url\s*:\s*(["\'])(?P<url>(?:(?!\1).)+)\1', + r'url\s*[:=]\s*["\'](?P<url>(?:https?:)?//[^/]+/playback/videoPlaybackInfo/\d+)'), + webpage, 'info url', group='url') + info_url = urljoin(url, info_url) video_id = info_url.rpartition('/')[-1] try: @@ -322,6 +325,8 @@ class DPlayItIE(InfoExtractor): 'dplayit_token').value, 'Referer': url, }) + if isinstance(info, compat_str): + info = self._parse_json(info, display_id) except ExtractorError as e: if isinstance(e.cause, compat_HTTPError) and e.cause.code in (400, 403): info = self._parse_json(e.cause.read().decode('utf-8'), display_id) @@ -337,6 +342,7 @@ class DPlayItIE(InfoExtractor): formats = self._extract_m3u8_formats( hls_url, display_id, ext='mp4', entry_protocol='m3u8_native', m3u8_id='hls') + self._sort_formats(formats) series = self._html_search_regex( r'(?s)<h1[^>]+class=["\'].*?\bshow_title\b.*?["\'][^>]*>(.+?)</h1>', diff --git a/youtube_dl/extractor/dramafever.py b/youtube_dl/extractor/dramafever.py index ab32ba4..db1de69 100644 --- a/youtube_dl/extractor/dramafever.py +++ b/youtube_dl/extractor/dramafever.py @@ -7,7 +7,6 @@ import json from .common import InfoExtractor from ..compat import ( compat_HTTPError, - compat_str, compat_urlparse, ) from ..utils import ( @@ -17,6 +16,7 @@ from ..utils import ( parse_age_limit, parse_duration, unified_timestamp, + url_or_none, ) @@ -139,8 +139,8 @@ class DramaFeverIE(DramaFeverBaseIE): for sub in subs: if not isinstance(sub, dict): continue - sub_url = sub.get('url') - if not sub_url or not isinstance(sub_url, compat_str): + sub_url = url_or_none(sub.get('url')) + if not sub_url: continue subtitles.setdefault( sub.get('code') or sub.get('language') or 'en', []).append({ @@ -163,8 +163,8 @@ class DramaFeverIE(DramaFeverBaseIE): for format_id, format_dict in download_assets.items(): if not isinstance(format_dict, dict): continue - format_url = format_dict.get('url') - if not format_url or not isinstance(format_url, compat_str): + format_url = url_or_none(format_dict.get('url')) + if not format_url: continue formats.append({ 'url': format_url, diff --git a/youtube_dl/extractor/dtube.py b/youtube_dl/extractor/dtube.py index 4ca97f8..5887887 100644 --- a/youtube_dl/extractor/dtube.py +++ b/youtube_dl/extractor/dtube.py @@ -59,7 +59,7 @@ class DTubeIE(InfoExtractor): try: self.to_screen('%s: Checking %s video format URL' % (video_id, format_id)) self._downloader._opener.open(video_url, timeout=5).close() - except timeout as e: + except timeout: self.to_screen( '%s: %s URL is invalid, skipping' % (video_id, format_id)) continue diff --git a/youtube_dl/extractor/eagleplatform.py b/youtube_dl/extractor/eagleplatform.py index 4278927..36fef07 100644 --- a/youtube_dl/extractor/eagleplatform.py +++ b/youtube_dl/extractor/eagleplatform.py @@ -4,14 +4,12 @@ from __future__ import unicode_literals import re from .common import InfoExtractor -from ..compat import ( - compat_HTTPError, - compat_str, -) +from ..compat import compat_HTTPError from ..utils import ( ExtractorError, int_or_none, unsmuggle_url, + url_or_none, ) @@ -177,7 +175,7 @@ class EaglePlatformIE(InfoExtractor): video_id, 'Downloading mp4 JSON', fatal=False) if mp4_data: for format_id, format_url in mp4_data.get('data', {}).items(): - if not isinstance(format_url, compat_str): + if not url_or_none(format_url): continue height = int_or_none(format_id) if height is not None and m3u8_formats_dict.get(height): diff --git a/youtube_dl/extractor/egghead.py b/youtube_dl/extractor/egghead.py index edabaaf..df11dc2 100644 --- a/youtube_dl/extractor/egghead.py +++ b/youtube_dl/extractor/egghead.py @@ -8,6 +8,7 @@ from ..utils import ( int_or_none, try_get, unified_timestamp, + url_or_none, ) @@ -34,8 +35,8 @@ class EggheadCourseIE(InfoExtractor): entries = [] for lesson in lessons: - lesson_url = lesson.get('http_url') - if not lesson_url or not isinstance(lesson_url, compat_str): + lesson_url = url_or_none(lesson.get('http_url')) + if not lesson_url: continue lesson_id = lesson.get('id') if lesson_id: @@ -95,7 +96,8 @@ class EggheadLessonIE(InfoExtractor): formats = [] for _, format_url in lesson['media_urls'].items(): - if not format_url or not isinstance(format_url, compat_str): + format_url = url_or_none(format_url) + if not format_url: continue ext = determine_ext(format_url) if ext == 'm3u8': diff --git a/youtube_dl/extractor/eporner.py b/youtube_dl/extractor/eporner.py index 81f2e2e..6d03d70 100644 --- a/youtube_dl/extractor/eporner.py +++ b/youtube_dl/extractor/eporner.py @@ -11,6 +11,7 @@ from ..utils import ( int_or_none, parse_duration, str_to_int, + url_or_none, ) @@ -82,8 +83,8 @@ class EpornerIE(InfoExtractor): for format_id, format_dict in formats_dict.items(): if not isinstance(format_dict, dict): continue - src = format_dict.get('src') - if not isinstance(src, compat_str) or not src.startswith('http'): + src = url_or_none(format_dict.get('src')) + if not src or not src.startswith('http'): continue if kind == 'hls': formats.extend(self._extract_m3u8_formats( diff --git a/youtube_dl/extractor/expressen.py b/youtube_dl/extractor/expressen.py index f611780..9345714 100644 --- a/youtube_dl/extractor/expressen.py +++ b/youtube_dl/extractor/expressen.py @@ -1,6 +1,8 @@ # coding: utf-8 from __future__ import unicode_literals +import re + from .common import InfoExtractor from ..utils import ( determine_ext, @@ -11,7 +13,13 @@ from ..utils import ( class ExpressenIE(InfoExtractor): - _VALID_URL = r'https?://(?:www\.)?expressen\.se/tv/(?:[^/]+/)*(?P<id>[^/?#&]+)' + _VALID_URL = r'''(?x) + https?:// + (?:www\.)?expressen\.se/ + (?:(?:tvspelare/video|videoplayer/embed)/)? + tv/(?:[^/]+/)* + (?P<id>[^/?#&]+) + ''' _TESTS = [{ 'url': 'https://www.expressen.se/tv/ledare/ledarsnack/ledarsnack-om-arbetslosheten-bland-kvinnor-i-speciellt-utsatta-omraden/', 'md5': '2fbbe3ca14392a6b1b36941858d33a45', @@ -28,8 +36,21 @@ class ExpressenIE(InfoExtractor): }, { 'url': 'https://www.expressen.se/tv/kultur/kulturdebatt-med-expressens-karin-olsson/', 'only_matching': True, + }, { + 'url': 'https://www.expressen.se/tvspelare/video/tv/ditv/ekonomistudion/experterna-har-ar-fragorna-som-avgor-valet/?embed=true&external=true&autoplay=true&startVolume=0&partnerId=di', + 'only_matching': True, + }, { + 'url': 'https://www.expressen.se/videoplayer/embed/tv/ditv/ekonomistudion/experterna-har-ar-fragorna-som-avgor-valet/?embed=true&external=true&autoplay=true&startVolume=0&partnerId=di', + 'only_matching': True, }] + @staticmethod + def _extract_urls(webpage): + return [ + mobj.group('url') for mobj in re.finditer( + r'<iframe[^>]+\bsrc=(["\'])(?P<url>(?:https?:)?//(?:www\.)?expressen\.se/(?:tvspelare/video|videoplayer/embed)/tv/.+?)\1', + webpage)] + def _real_extract(self, url): display_id = self._match_id(url) diff --git a/youtube_dl/extractor/extractors.py b/youtube_dl/extractor/extractors.py index 3b3964c..7dc5697 100644 --- a/youtube_dl/extractor/extractors.py +++ b/youtube_dl/extractor/extractors.py @@ -54,6 +54,7 @@ from .appletrailers import ( from .archiveorg import ArchiveOrgIE from .arkena import ArkenaIE from .ard import ( + ARDBetaMediathekIE, ARDIE, ARDMediathekIE, ) @@ -118,6 +119,10 @@ from .bilibili import ( BiliBiliBangumiIE, ) from .biobiochiletv import BioBioChileTVIE +from .bitchute import ( + BitChuteIE, + BitChuteChannelIE, +) from .biqle import BIQLEIE from .bleacherreport import ( BleacherReportIE, @@ -373,7 +378,6 @@ from .foxgay import FoxgayIE from .foxnews import ( FoxNewsIE, FoxNewsArticleIE, - FoxNewsInsiderIE, ) from .foxsports import FoxSportsIE from .franceculture import FranceCultureIE @@ -391,6 +395,11 @@ from .francetv import ( from .freesound import FreesoundIE from .freespeech import FreespeechIE from .freshlive import FreshLiveIE +from .frontendmasters import ( + FrontendMastersIE, + FrontendMastersLessonIE, + FrontendMastersCourseIE +) from .funimation import FunimationIE from .funk import ( FunkMixIE, @@ -512,6 +521,7 @@ from .keezmovies import KeezMoviesIE from .ketnet import KetnetIE from .khanacademy import KhanAcademyIE from .kickstarter import KickStarterIE +from .kinopoisk import KinoPoiskIE from .keek import KeekIE from .konserthusetplay import KonserthusetPlayIE from .kontrtube import KontrTubeIE @@ -732,7 +742,10 @@ from .nonktube import NonkTubeIE from .noovo import NoovoIE from .normalboots import NormalbootsIE from .nosvideo import NosVideoIE -from .nova import NovaIE +from .nova import ( + NovaEmbedIE, + NovaIE, +) from .novamov import ( AuroraVidIE, CloudTimeIE, @@ -764,7 +777,9 @@ from .nrk import ( NRKSkoleIE, NRKTVIE, NRKTVDirekteIE, + NRKTVEpisodeIE, NRKTVEpisodesIE, + NRKTVSeasonIE, NRKTVSeriesIE, ) from .ntvde import NTVDeIE @@ -854,6 +869,10 @@ from .pornhub import ( from .pornotube import PornotubeIE from .pornovoisines import PornoVoisinesIE from .pornoxo import PornoXOIE +from .puhutv import ( + PuhuTVIE, + PuhuTVSerieIE, +) from .presstv import PressTVIE from .primesharetv import PrimeShareTVIE from .promptfile import PromptFileIE @@ -885,7 +904,10 @@ from .rai import ( RaiPlayPlaylistIE, RaiIE, ) -from .raywenderlich import RayWenderlichIE +from .raywenderlich import ( + RayWenderlichIE, + RayWenderlichCourseIE, +) from .rbmaradio import RBMARadioIE from .rds import RDSIE from .redbulltv import RedBullTVIE @@ -1041,6 +1063,7 @@ from .stretchinternet import StretchInternetIE from .sunporno import SunPornoIE from .svt import ( SVTIE, + SVTPageIE, SVTPlayIE, SVTSeriesIE, ) @@ -1063,6 +1086,7 @@ from .teachingchannel import TeachingChannelIE from .teamcoco import TeamcocoIE from .techtalks import TechTalksIE from .ted import TEDIE +from .tele5 import Tele5IE from .tele13 import Tele13IE from .telebruxelles import TeleBruxellesIE from .telecinco import TelecincoIE @@ -1159,6 +1183,7 @@ from .tvp import ( from .tvplay import ( TVPlayIE, ViafreeIE, + TVPlayHomeIE, ) from .tvplayer import TVPlayerIE from .tweakers import TweakersIE @@ -1280,6 +1305,7 @@ from .viki import ( VikiIE, VikiChannelIE, ) +from .viqeo import ViqeoIE from .viu import ( ViuIE, ViuPlaylistIE, @@ -1405,6 +1431,7 @@ from .younow import ( YouNowMomentIE, ) from .youporn import YouPornIE +from .yourporn import YourPornIE from .yourupload import YourUploadIE from .youtube import ( YoutubeIE, diff --git a/youtube_dl/extractor/facebook.py b/youtube_dl/extractor/facebook.py index 8a9ed96..97cfe0f 100644 --- a/youtube_dl/extractor/facebook.py +++ b/youtube_dl/extractor/facebook.py @@ -20,6 +20,7 @@ from ..utils import ( int_or_none, js_to_json, limit_length, + parse_count, sanitized_Request, try_get, urlencode_postdata, @@ -75,7 +76,7 @@ class FacebookIE(InfoExtractor): 'info_dict': { 'id': '274175099429670', 'ext': 'mp4', - 'title': 'Asif Nawab Butt posted a video to his Timeline.', + 'title': 're:^Asif Nawab Butt posted a video', 'uploader': 'Asif Nawab Butt', 'upload_date': '20140506', 'timestamp': 1399398998, @@ -133,7 +134,7 @@ class FacebookIE(InfoExtractor): }, { # have 1080P, but only up to 720p in swf params 'url': 'https://www.facebook.com/cnn/videos/10155529876156509/', - 'md5': '0d9813160b146b3bc8744e006027fcc6', + 'md5': '9571fae53d4165bbbadb17a94651dcdc', 'info_dict': { 'id': '10155529876156509', 'ext': 'mp4', @@ -142,6 +143,7 @@ class FacebookIE(InfoExtractor): 'upload_date': '20161030', 'uploader': 'CNN', 'thumbnail': r're:^https?://.*', + 'view_count': int, }, }, { # bigPipe.onPageletArrive ... onPageletArrive pagelet_group_mall @@ -149,7 +151,7 @@ class FacebookIE(InfoExtractor): 'info_dict': { 'id': '1417995061575415', 'ext': 'mp4', - 'title': 'md5:a7b86ca673f51800cd54687b7f4012fe', + 'title': 'md5:1db063d6a8c13faa8da727817339c857', 'timestamp': 1486648217, 'upload_date': '20170209', 'uploader': 'Yaroslav Korpan', @@ -176,7 +178,7 @@ class FacebookIE(InfoExtractor): 'info_dict': { 'id': '1396382447100162', 'ext': 'mp4', - 'title': 'md5:e2d2700afdf84e121f5d0f999bad13a3', + 'title': 'md5:19a428bbde91364e3de815383b54a235', 'timestamp': 1486035494, 'upload_date': '20170202', 'uploader': 'Elisabeth Ahtn', @@ -353,7 +355,6 @@ class FacebookIE(InfoExtractor): tahoe_data = self._download_webpage( self._VIDEO_PAGE_TAHOE_TEMPLATE % video_id, video_id, data=urlencode_postdata({ - '__user': 0, '__a': 1, '__pc': self._search_regex( r'pkg_cohort["\']\s*:\s*["\'](.+?)["\']', webpage, @@ -361,6 +362,9 @@ class FacebookIE(InfoExtractor): '__rev': self._search_regex( r'client_revision["\']\s*:\s*(\d+),', webpage, 'client revision', default='3944515'), + 'fb_dtsg': self._search_regex( + r'"DTSGInitialData"\s*,\s*\[\]\s*,\s*{\s*"token"\s*:\s*"([^"]+)"', + webpage, 'dtsg token', default=''), }), headers={ 'Content-Type': 'application/x-www-form-urlencoded', @@ -426,6 +430,10 @@ class FacebookIE(InfoExtractor): 'timestamp', default=None)) thumbnail = self._og_search_thumbnail(webpage) + view_count = parse_count(self._search_regex( + r'\bviewCount\s*:\s*["\']([\d,.]+)', webpage, 'view count', + default=None)) + info_dict = { 'id': video_id, 'title': video_title, @@ -433,6 +441,7 @@ class FacebookIE(InfoExtractor): 'uploader': uploader, 'timestamp': timestamp, 'thumbnail': thumbnail, + 'view_count': view_count, } return webpage, info_dict diff --git a/youtube_dl/extractor/firsttv.py b/youtube_dl/extractor/firsttv.py index 4803a22..28617d8 100644 --- a/youtube_dl/extractor/firsttv.py +++ b/youtube_dl/extractor/firsttv.py @@ -10,6 +10,7 @@ from ..utils import ( int_or_none, qualities, unified_strdate, + url_or_none, ) @@ -88,8 +89,8 @@ class FirstTVIE(InfoExtractor): formats = [] path = None for f in item.get('mbr', []): - src = f.get('src') - if not src or not isinstance(src, compat_str): + src = url_or_none(f.get('src')) + if not src: continue tbr = int_or_none(self._search_regex( r'_(\d{3,})\.mp4', src, 'tbr', default=None)) diff --git a/youtube_dl/extractor/foxnews.py b/youtube_dl/extractor/foxnews.py index dc0662f..63613cb 100644 --- a/youtube_dl/extractor/foxnews.py +++ b/youtube_dl/extractor/foxnews.py @@ -58,6 +58,14 @@ class FoxNewsIE(AMPIE): }, ] + @staticmethod + def _extract_urls(webpage): + return [ + mobj.group('url') + for mobj in re.finditer( + r'<(?:amp-)?iframe[^>]+\bsrc=(["\'])(?P<url>(?:https?:)?//video\.foxnews\.com/v/video-embed\.html?.*?\bvideo_id=\d+.*?)\1', + webpage)] + def _real_extract(self, url): host, video_id = re.match(self._VALID_URL, url).groups() @@ -68,73 +76,52 @@ class FoxNewsIE(AMPIE): class FoxNewsArticleIE(InfoExtractor): - _VALID_URL = r'https?://(?:www\.)?foxnews\.com/(?!v)([^/]+/)+(?P<id>[a-z-]+)' + _VALID_URL = r'https?://(?:www\.)?(?:insider\.)?foxnews\.com/(?!v)([^/]+/)+(?P<id>[a-z-]+)' IE_NAME = 'foxnews:article' - _TEST = { + _TESTS = [{ + # data-video-id 'url': 'http://www.foxnews.com/politics/2016/09/08/buzz-about-bud-clinton-camp-denies-claims-wore-earpiece-at-forum.html', - 'md5': '62aa5a781b308fdee212ebb6f33ae7ef', + 'md5': '83d44e1aff1433e7a29a7b537d1700b5', 'info_dict': { 'id': '5116295019001', 'ext': 'mp4', 'title': 'Trump and Clinton asked to defend positions on Iraq War', 'description': 'Veterans react on \'The Kelly File\'', - 'timestamp': 1473299755, + 'timestamp': 1473301045, 'upload_date': '20160908', }, - } - - def _real_extract(self, url): - display_id = self._match_id(url) - webpage = self._download_webpage(url, display_id) - - video_id = self._html_search_regex( - r'data-video-id=([\'"])(?P<id>[^\'"]+)\1', - webpage, 'video ID', group='id') - return self.url_result( - 'http://video.foxnews.com/v/' + video_id, - FoxNewsIE.ie_key()) - - -class FoxNewsInsiderIE(InfoExtractor): - _VALID_URL = r'https?://insider\.foxnews\.com/([^/]+/)+(?P<id>[a-z-]+)' - IE_NAME = 'foxnews:insider' - - _TEST = { - 'url': 'http://insider.foxnews.com/2016/08/25/univ-wisconsin-student-group-pushing-silence-certain-words', - 'md5': 'a10c755e582d28120c62749b4feb4c0c', + }, { + # iframe embed + 'url': 'http://www.foxnews.com/us/2018/03/09/parkland-survivor-kyle-kashuv-on-meeting-trump-his-app-to-prevent-another-school-shooting.amp.html?__twitter_impression=true', 'info_dict': { - 'id': '5099377331001', - 'display_id': 'univ-wisconsin-student-group-pushing-silence-certain-words', - 'ext': 'mp4', - 'title': 'Student Group: Saying \'Politically Correct,\' \'Trash\' and \'Lame\' Is Offensive', - 'description': 'Is campus censorship getting out of control?', - 'timestamp': 1472168725, - 'upload_date': '20160825', + 'id': '5748266721001', + 'ext': 'flv', + 'title': 'Kyle Kashuv has a positive message for the Trump White House', + 'description': 'Marjory Stoneman Douglas student disagrees with classmates.', 'thumbnail': r're:^https?://.*\.jpg$', + 'duration': 229, + 'timestamp': 1520594670, + 'upload_date': '20180309', }, 'params': { - # m3u8 download 'skip_download': True, }, - 'add_ie': [FoxNewsIE.ie_key()], - } + }, { + 'url': 'http://insider.foxnews.com/2016/08/25/univ-wisconsin-student-group-pushing-silence-certain-words', + 'only_matching': True, + }] def _real_extract(self, url): display_id = self._match_id(url) - webpage = self._download_webpage(url, display_id) - embed_url = self._html_search_meta('embedUrl', webpage, 'embed URL') - - title = self._og_search_title(webpage) - description = self._og_search_description(webpage) + video_id = self._html_search_regex( + r'data-video-id=([\'"])(?P<id>[^\'"]+)\1', + webpage, 'video ID', group='id', default=None) + if video_id: + return self.url_result( + 'http://video.foxnews.com/v/' + video_id, FoxNewsIE.ie_key()) - return { - '_type': 'url_transparent', - 'ie_key': FoxNewsIE.ie_key(), - 'url': embed_url, - 'display_id': display_id, - 'title': title, - 'description': description, - } + return self.url_result( + FoxNewsIE._extract_urls(webpage)[0], FoxNewsIE.ie_key()) diff --git a/youtube_dl/extractor/francetv.py b/youtube_dl/extractor/francetv.py index 6fc6b0d..2ffe83a 100644 --- a/youtube_dl/extractor/francetv.py +++ b/youtube_dl/extractor/francetv.py @@ -16,6 +16,7 @@ from ..utils import ( int_or_none, parse_duration, try_get, + url_or_none, ) from .dailymotion import DailymotionIE @@ -115,14 +116,13 @@ class FranceTVIE(InfoExtractor): def sign(manifest_url, manifest_id): for host in ('hdfauthftv-a.akamaihd.net', 'hdfauth.francetv.fr'): - signed_url = self._download_webpage( + signed_url = url_or_none(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)): + })) + if signed_url: return signed_url return manifest_url diff --git a/youtube_dl/extractor/frontendmasters.py b/youtube_dl/extractor/frontendmasters.py new file mode 100644 index 0000000..cb57ba0 --- /dev/null +++ b/youtube_dl/extractor/frontendmasters.py @@ -0,0 +1,263 @@ +# coding: utf-8 +from __future__ import unicode_literals + +import re + +from .common import InfoExtractor +from ..compat import ( + compat_str, + compat_urlparse, +) +from ..utils import ( + ExtractorError, + parse_duration, + url_or_none, + urlencode_postdata, +) + + +class FrontendMastersBaseIE(InfoExtractor): + _API_BASE = 'https://api.frontendmasters.com/v1/kabuki' + _LOGIN_URL = 'https://frontendmasters.com/login/' + + _NETRC_MACHINE = 'frontendmasters' + + _QUALITIES = { + 'low': {'width': 480, 'height': 360}, + 'mid': {'width': 1280, 'height': 720}, + 'high': {'width': 1920, 'height': 1080} + } + + def _real_initialize(self): + self._login() + + def _login(self): + (username, password) = self._get_login_info() + if username is None: + return + + login_page = self._download_webpage( + self._LOGIN_URL, None, 'Downloading login page') + + login_form = self._hidden_inputs(login_page) + + login_form.update({ + 'username': username, + 'password': password + }) + + post_url = self._search_regex( + r'<form[^>]+action=(["\'])(?P<url>.+?)\1', login_page, + 'post_url', default=self._LOGIN_URL, group='url') + + if not post_url.startswith('http'): + post_url = compat_urlparse.urljoin(self._LOGIN_URL, post_url) + + response = self._download_webpage( + post_url, None, 'Logging in', data=urlencode_postdata(login_form), + headers={'Content-Type': 'application/x-www-form-urlencoded'}) + + # Successful login + if any(p in response for p in ( + 'wp-login.php?action=logout', '>Logout')): + return + + error = self._html_search_regex( + r'class=(["\'])(?:(?!\1).)*\bMessageAlert\b(?:(?!\1).)*\1[^>]*>(?P<error>[^<]+)<', + response, 'error message', default=None, group='error') + if error: + raise ExtractorError('Unable to login: %s' % error, expected=True) + raise ExtractorError('Unable to log in') + + +class FrontendMastersPageBaseIE(FrontendMastersBaseIE): + def _download_course(self, course_name, url): + return self._download_json( + '%s/courses/%s' % (self._API_BASE, course_name), course_name, + 'Downloading course JSON', headers={'Referer': url}) + + @staticmethod + def _extract_chapters(course): + chapters = [] + lesson_elements = course.get('lessonElements') + if isinstance(lesson_elements, list): + chapters = [url_or_none(e) for e in lesson_elements if url_or_none(e)] + return chapters + + @staticmethod + def _extract_lesson(chapters, lesson_id, lesson): + title = lesson.get('title') or lesson_id + display_id = lesson.get('slug') + description = lesson.get('description') + thumbnail = lesson.get('thumbnail') + + chapter_number = None + index = lesson.get('index') + element_index = lesson.get('elementIndex') + if (isinstance(index, int) and isinstance(element_index, int) and + index < element_index): + chapter_number = element_index - index + chapter = (chapters[chapter_number - 1] + if chapter_number - 1 < len(chapters) else None) + + duration = None + timestamp = lesson.get('timestamp') + if isinstance(timestamp, compat_str): + mobj = re.search( + r'(?P<start>\d{1,2}:\d{1,2}:\d{1,2})\s*-(?P<end>\s*\d{1,2}:\d{1,2}:\d{1,2})', + timestamp) + if mobj: + duration = parse_duration(mobj.group('end')) - parse_duration( + mobj.group('start')) + + return { + '_type': 'url_transparent', + 'url': 'frontendmasters:%s' % lesson_id, + 'ie_key': FrontendMastersIE.ie_key(), + 'id': lesson_id, + 'display_id': display_id, + 'title': title, + 'description': description, + 'thumbnail': thumbnail, + 'duration': duration, + 'chapter': chapter, + 'chapter_number': chapter_number, + } + + +class FrontendMastersIE(FrontendMastersBaseIE): + _VALID_URL = r'(?:frontendmasters:|https?://api\.frontendmasters\.com/v\d+/kabuki/video/)(?P<id>[^/]+)' + _TESTS = [{ + 'url': 'https://api.frontendmasters.com/v1/kabuki/video/a2qogef6ba', + 'md5': '7f161159710d6b7016a4f4af6fcb05e2', + 'info_dict': { + 'id': 'a2qogef6ba', + 'ext': 'mp4', + 'title': 'a2qogef6ba', + }, + 'skip': 'Requires FrontendMasters account credentials', + }, { + 'url': 'frontendmasters:a2qogef6ba', + 'only_matching': True, + }] + + def _real_extract(self, url): + lesson_id = self._match_id(url) + + source_url = '%s/video/%s/source' % (self._API_BASE, lesson_id) + + formats = [] + for ext in ('webm', 'mp4'): + for quality in ('low', 'mid', 'high'): + resolution = self._QUALITIES[quality].copy() + format_id = '%s-%s' % (ext, quality) + format_url = self._download_json( + source_url, lesson_id, + 'Downloading %s source JSON' % format_id, query={ + 'f': ext, + 'r': resolution['height'], + }, headers={ + 'Referer': url, + }, fatal=False)['url'] + + if not format_url: + continue + + f = resolution.copy() + f.update({ + 'url': format_url, + 'ext': ext, + 'format_id': format_id, + }) + formats.append(f) + self._sort_formats(formats) + + subtitles = { + 'en': [{ + 'url': '%s/transcripts/%s.vtt' % (self._API_BASE, lesson_id), + }] + } + + return { + 'id': lesson_id, + 'title': lesson_id, + 'formats': formats, + 'subtitles': subtitles + } + + +class FrontendMastersLessonIE(FrontendMastersPageBaseIE): + _VALID_URL = r'https?://(?:www\.)?frontendmasters\.com/courses/(?P<course_name>[^/]+)/(?P<lesson_name>[^/]+)' + _TEST = { + 'url': 'https://frontendmasters.com/courses/web-development/tools', + 'info_dict': { + 'id': 'a2qogef6ba', + 'display_id': 'tools', + 'ext': 'mp4', + 'title': 'Tools', + 'description': 'md5:82c1ea6472e88ed5acd1829fe992e4f7', + 'thumbnail': r're:^https?://.*\.jpg$', + 'chapter': 'Introduction', + 'chapter_number': 1, + }, + 'params': { + 'skip_download': True, + }, + 'skip': 'Requires FrontendMasters account credentials', + } + + def _real_extract(self, url): + mobj = re.match(self._VALID_URL, url) + course_name, lesson_name = mobj.group('course_name', 'lesson_name') + + course = self._download_course(course_name, url) + + lesson_id, lesson = next( + (video_id, data) + for video_id, data in course['lessonData'].items() + if data.get('slug') == lesson_name) + + chapters = self._extract_chapters(course) + return self._extract_lesson(chapters, lesson_id, lesson) + + +class FrontendMastersCourseIE(FrontendMastersPageBaseIE): + _VALID_URL = r'https?://(?:www\.)?frontendmasters\.com/courses/(?P<id>[^/]+)' + _TEST = { + 'url': 'https://frontendmasters.com/courses/web-development/', + 'info_dict': { + 'id': 'web-development', + 'title': 'Introduction to Web Development', + 'description': 'md5:9317e6e842098bf725d62360e52d49a6', + }, + 'playlist_count': 81, + 'skip': 'Requires FrontendMasters account credentials', + } + + @classmethod + def suitable(cls, url): + return False if FrontendMastersLessonIE.suitable(url) else super( + FrontendMastersBaseIE, cls).suitable(url) + + def _real_extract(self, url): + course_name = self._match_id(url) + + course = self._download_course(course_name, url) + + chapters = self._extract_chapters(course) + + lessons = sorted( + course['lessonData'].values(), key=lambda data: data['index']) + + entries = [] + for lesson in lessons: + lesson_name = lesson.get('slug') + if not lesson_name: + continue + lesson_id = lesson.get('hash') or lesson.get('statsId') + entries.append(self._extract_lesson(chapters, lesson_id, lesson)) + + title = course.get('title') + description = course.get('description') + + return self.playlist_result(entries, course_name, title, description) diff --git a/youtube_dl/extractor/funk.py b/youtube_dl/extractor/funk.py index 0ff0586..7e1af95 100644 --- a/youtube_dl/extractor/funk.py +++ b/youtube_dl/extractor/funk.py @@ -1,10 +1,12 @@ # coding: utf-8 from __future__ import unicode_literals +import itertools import re from .common import InfoExtractor from .nexx import NexxIE +from ..compat import compat_str from ..utils import ( int_or_none, try_get, @@ -12,6 +14,19 @@ from ..utils import ( class FunkBaseIE(InfoExtractor): + _HEADERS = { + 'Accept': '*/*', + 'Accept-Language': 'en-US,en;q=0.9,ru;q=0.8', + 'authorization': 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjbGllbnROYW1lIjoid2ViYXBwLXYzMSIsInNjb3BlIjoic3RhdGljLWNvbnRlbnQtYXBpLGN1cmF0aW9uLWFwaSxuZXh4LWNvbnRlbnQtYXBpLXYzMSx3ZWJhcHAtYXBpIn0.mbuG9wS9Yf5q6PqgR4fiaRFIagiHk9JhwoKES7ksVX4', + } + _AUTH = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjbGllbnROYW1lIjoid2ViYXBwLXYzMSIsInNjb3BlIjoic3RhdGljLWNvbnRlbnQtYXBpLGN1cmF0aW9uLWFwaSxuZXh4LWNvbnRlbnQtYXBpLXYzMSx3ZWJhcHAtYXBpIn0.mbuG9wS9Yf5q6PqgR4fiaRFIagiHk9JhwoKES7ksVX4' + + @staticmethod + def _make_headers(referer): + headers = FunkBaseIE._HEADERS.copy() + headers['Referer'] = referer + return headers + def _make_url_result(self, video): return { '_type': 'url_transparent', @@ -48,19 +63,19 @@ class FunkMixIE(FunkBaseIE): lists = self._download_json( 'https://www.funk.net/api/v3.1/curation/curatedLists/', - mix_id, headers={ - 'authorization': 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjbGllbnROYW1lIjoiY3VyYXRpb24tdG9vbC12Mi4wIiwic2NvcGUiOiJzdGF0aWMtY29udGVudC1hcGksY3VyYXRpb24tc2VydmljZSxzZWFyY2gtYXBpIn0.SGCC1IXHLtZYoo8PvRKlU2gXH1su8YSu47sB3S4iXBI', - 'Referer': url, - }, query={ + mix_id, headers=self._make_headers(url), query={ 'size': 100, - })['result']['lists'] + })['_embedded']['curatedListList'] 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) + for meta in metas + if try_get( + meta, lambda x: x['videoDataDelegate']['alias'], + compat_str) == alias) return self._make_url_result(video) @@ -104,25 +119,53 @@ class FunkChannelIE(FunkBaseIE): channel_id = mobj.group('id') alias = mobj.group('alias') - headers = { - 'authorization': 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjbGllbnROYW1lIjoiY3VyYXRpb24tdG9vbCIsInNjb3BlIjoic3RhdGljLWNvbnRlbnQtYXBpLGN1cmF0aW9uLWFwaSxzZWFyY2gtYXBpIn0.q4Y2xZG8PFHai24-4Pjx2gym9RmJejtmK6lMXP5wAgc', - 'Referer': url, - } + headers = self._make_headers(url) video = None - by_id_list = self._download_json( - 'https://www.funk.net/api/v3.0/content/videos/byIdList', channel_id, - headers=headers, query={ - 'ids': alias, - }, fatal=False) - if by_id_list: - video = try_get(by_id_list, lambda x: x['result'][0], dict) + # Id-based channels are currently broken on their side: webplayer + # tries to process them via byChannelAlias endpoint and fails + # predictably. + for page_num in itertools.count(): + by_channel_alias = self._download_json( + 'https://www.funk.net/api/v3.1/webapp/videos/byChannelAlias/%s' + % channel_id, + 'Downloading byChannelAlias JSON page %d' % (page_num + 1), + headers=headers, query={ + 'filterFsk': 'false', + 'sort': 'creationDate,desc', + 'size': 100, + 'page': page_num, + }, fatal=False) + if not by_channel_alias: + break + video_list = try_get( + by_channel_alias, lambda x: x['_embedded']['videoList'], list) + if not video_list: + break + try: + video = next(r for r in video_list if r.get('alias') == alias) + break + except StopIteration: + pass + if not try_get( + by_channel_alias, lambda x: x['_links']['next']): + break + + if not video: + by_id_list = self._download_json( + 'https://www.funk.net/api/v3.0/content/videos/byIdList', + channel_id, 'Downloading byIdList JSON', headers=headers, + query={ + 'ids': alias, + }, fatal=False) + if by_id_list: + video = try_get(by_id_list, lambda x: x['result'][0], dict) if not video: results = self._download_json( - 'https://www.funk.net/api/v3.0/content/videos/filter', channel_id, - headers=headers, query={ + 'https://www.funk.net/api/v3.0/content/videos/filter', + channel_id, 'Downloading filter JSON', headers=headers, query={ 'channelId': channel_id, 'size': 100, })['result'] diff --git a/youtube_dl/extractor/generic.py b/youtube_dl/extractor/generic.py index dad951b..76ef013 100644 --- a/youtube_dl/extractor/generic.py +++ b/youtube_dl/extractor/generic.py @@ -111,6 +111,9 @@ from .cloudflarestream import CloudflareStreamIE from .peertube import PeerTubeIE from .indavideo import IndavideoEmbedIE from .apa import APAIE +from .foxnews import FoxNewsIE +from .viqeo import ViqeoIE +from .expressen import ExpressenIE class GenericIE(InfoExtractor): @@ -1394,17 +1397,6 @@ class GenericIE(InfoExtractor): 'skip_download': True, }, }, - # SVT embed - { - 'url': 'http://www.svt.se/sport/ishockey/jagr-tacklar-giroux-under-intervjun', - 'info_dict': { - 'id': '2900353', - 'ext': 'flv', - 'title': 'Här trycker Jagr till Giroux (under SVT-intervjun)', - 'duration': 27, - 'age_limit': 0, - }, - }, # Crooks and Liars embed { 'url': 'http://crooksandliars.com/2015/04/fox-friends-says-protecting-atheists', @@ -2069,6 +2061,30 @@ class GenericIE(InfoExtractor): }, 'skip': 'TODO: fix nested playlists processing in tests', }, + { + # Viqeo embeds + 'url': 'https://viqeo.tv/', + 'info_dict': { + 'id': 'viqeo', + 'title': 'All-new video platform', + }, + 'playlist_count': 6, + }, + { + # videojs embed + 'url': 'https://video.sibnet.ru/shell.php?videoid=3422904', + 'info_dict': { + 'id': 'shell', + 'ext': 'mp4', + 'title': 'Доставщик пиццы спросил разрешения сыграть на фортепиано', + 'description': 'md5:89209cdc587dab1e4a090453dbaa2cb1', + 'thumbnail': r're:^https?://.*\.jpg$', + }, + 'params': { + 'skip_download': True, + }, + 'expected_warnings': ['Failed to download MPD manifest'], + }, # { # # TODO: find another test # # http://schema.org/VideoObject @@ -3076,7 +3092,7 @@ class GenericIE(InfoExtractor): return self.playlist_from_matches( cloudflarestream_urls, video_id, video_title, ie=CloudflareStreamIE.ie_key()) - peertube_urls = PeerTubeIE._extract_urls(webpage) + peertube_urls = PeerTubeIE._extract_urls(webpage, url) if peertube_urls: return self.playlist_from_matches( peertube_urls, video_id, video_title, ie=PeerTubeIE.ie_key()) @@ -3091,13 +3107,28 @@ class GenericIE(InfoExtractor): return self.playlist_from_matches( apa_urls, video_id, video_title, ie=APAIE.ie_key()) - sharevideos_urls = [mobj.group('url') for mobj in re.finditer( + foxnews_urls = FoxNewsIE._extract_urls(webpage) + if foxnews_urls: + return self.playlist_from_matches( + foxnews_urls, video_id, video_title, ie=FoxNewsIE.ie_key()) + + sharevideos_urls = [sharevideos_mobj.group('url') for sharevideos_mobj in re.finditer( r'<iframe[^>]+?\bsrc\s*=\s*(["\'])(?P<url>(?:https?:)?//embed\.share-videos\.se/auto/embed/\d+\?.*?\buid=\d+.*?)\1', webpage)] if sharevideos_urls: return self.playlist_from_matches( sharevideos_urls, video_id, video_title) + viqeo_urls = ViqeoIE._extract_urls(webpage) + if viqeo_urls: + return self.playlist_from_matches( + viqeo_urls, video_id, video_title, ie=ViqeoIE.ie_key()) + + expressen_urls = ExpressenIE._extract_urls(webpage) + if expressen_urls: + return self.playlist_from_matches( + expressen_urls, video_id, video_title, ie=ExpressenIE.ie_key()) + # Look for HTML5 media entries = self._parse_html5_media_entries(url, webpage, video_id, m3u8_id='hls') if entries: @@ -3119,9 +3150,13 @@ class GenericIE(InfoExtractor): jwplayer_data = self._find_jwplayer_data( webpage, video_id, transform_source=js_to_json) if jwplayer_data: - info = self._parse_jwplayer_data( - jwplayer_data, video_id, require_title=False, base_url=url) - return merge_dicts(info, info_dict) + try: + info = self._parse_jwplayer_data( + jwplayer_data, video_id, require_title=False, base_url=url) + return merge_dicts(info, info_dict) + except ExtractorError: + # See https://github.com/rg3/youtube-dl/pull/16735 + pass # Video.js embed mobj = re.search( diff --git a/youtube_dl/extractor/go.py b/youtube_dl/extractor/go.py index e781405..ec9dd6e 100644 --- a/youtube_dl/extractor/go.py +++ b/youtube_dl/extractor/go.py @@ -36,7 +36,8 @@ class GoIE(AdobePassIE): 'requestor_id': 'DisneyXD', } } - _VALID_URL = r'https?://(?:(?P<sub_domain>%s)\.)?go\.com/(?:(?:[^/]+/)*(?P<id>vdka\w+)|(?:[^/]+/)*(?P<display_id>[^/?#]+))' % '|'.join(_SITE_INFO.keys()) + _VALID_URL = r'https?://(?:(?P<sub_domain>%s)\.)?go\.com/(?:(?:[^/]+/)*(?P<id>vdka\w+)|(?:[^/]+/)*(?P<display_id>[^/?#]+))'\ + % '|'.join(list(_SITE_INFO.keys()) + ['disneynow']) _TESTS = [{ 'url': 'http://abc.go.com/shows/designated-survivor/video/most-recent/VDKA3807643', 'info_dict': { @@ -62,6 +63,14 @@ class GoIE(AdobePassIE): }, { 'url': 'http://abc.go.com/shows/world-news-tonight/episode-guide/2017-02/17-021717-intense-stand-off-between-man-with-rifle-and-police-in-oakland', 'only_matching': True, + }, { + # brand 004 + 'url': 'http://disneynow.go.com/shows/big-hero-6-the-series/season-01/episode-10-mr-sparkles-loses-his-sparkle/vdka4637915', + 'only_matching': True, + }, { + # brand 008 + 'url': 'http://disneynow.go.com/shows/minnies-bow-toons/video/happy-campers/vdka4872013', + 'only_matching': True, }] def _extract_videos(self, brand, video_id='-1', show_id='-1'): @@ -72,14 +81,23 @@ class GoIE(AdobePassIE): def _real_extract(self, url): sub_domain, video_id, display_id = re.match(self._VALID_URL, url).groups() - site_info = self._SITE_INFO[sub_domain] - brand = site_info['brand'] - if not video_id: - webpage = self._download_webpage(url, display_id) + site_info = self._SITE_INFO.get(sub_domain, {}) + brand = site_info.get('brand') + if not video_id or not site_info: + webpage = self._download_webpage(url, display_id or video_id) video_id = self._search_regex( # There may be inner quotes, e.g. data-video-id="'VDKA3609139'" # from http://freeform.go.com/shows/shadowhunters/episodes/season-2/1-this-guilty-blood - r'data-video-id=["\']*(VDKA\w+)', webpage, 'video id', default=None) + r'data-video-id=["\']*(VDKA\w+)', webpage, 'video id', + default=None) + if not site_info: + brand = self._search_regex( + (r'data-brand=\s*["\']\s*(\d+)', + r'data-page-brand=\s*["\']\s*(\d+)'), webpage, 'brand', + default='004') + site_info = next( + si for _, si in self._SITE_INFO.items() + if si.get('brand') == brand) if not video_id: # show extraction works for Disney, DisneyJunior and DisneyXD # ABC and Freeform has different layout diff --git a/youtube_dl/extractor/go90.py b/youtube_dl/extractor/go90.py index 35dde42..c3ea717 100644 --- a/youtube_dl/extractor/go90.py +++ b/youtube_dl/extractor/go90.py @@ -4,6 +4,7 @@ from __future__ import unicode_literals import re from .common import InfoExtractor +from ..compat import compat_HTTPError from ..utils import ( determine_ext, ExtractorError, @@ -14,8 +15,8 @@ from ..utils import ( class Go90IE(InfoExtractor): - _VALID_URL = r'https?://(?:www\.)?go90\.com/videos/(?P<id>[0-9a-zA-Z]+)' - _TEST = { + _VALID_URL = r'https?://(?:www\.)?go90\.com/(?:videos|embed)/(?P<id>[0-9a-zA-Z]+)' + _TESTS = [{ 'url': 'https://www.go90.com/videos/84BUqjLpf9D', 'md5': 'efa7670dbbbf21a7b07b360652b24a32', 'info_dict': { @@ -27,15 +28,31 @@ class Go90IE(InfoExtractor): 'upload_date': '20170411', 'age_limit': 14, } - } + }, { + 'url': 'https://www.go90.com/embed/261MflWkD3N', + 'only_matching': True, + }] + _GEO_BYPASS = False def _real_extract(self, url): video_id = self._match_id(url) - video_data = self._download_json( - 'https://www.go90.com/api/view/items/' + video_id, - video_id, headers={ + + try: + headers = self.geo_verification_headers() + headers.update({ 'Content-Type': 'application/json; charset=utf-8', - }, data=b'{"client":"web","device_type":"pc"}') + }) + video_data = self._download_json( + 'https://www.go90.com/api/view/items/' + video_id, video_id, + headers=headers, data=b'{"client":"web","device_type":"pc"}') + except ExtractorError as e: + if isinstance(e.cause, compat_HTTPError) and e.cause.code == 400: + message = self._parse_json(e.cause.read().decode(), None)['error']['message'] + if 'region unavailable' in message: + self.raise_geo_restricted(countries=['US']) + raise ExtractorError(message, expected=True) + raise + if video_data.get('requires_drm'): raise ExtractorError('This video is DRM protected.', expected=True) main_video_asset = video_data['main_video_asset'] diff --git a/youtube_dl/extractor/hidive.py b/youtube_dl/extractor/hidive.py index 39fabe8..f26f802 100644 --- a/youtube_dl/extractor/hidive.py +++ b/youtube_dl/extractor/hidive.py @@ -8,6 +8,7 @@ from ..compat import compat_str from ..utils import ( ExtractorError, int_or_none, + url_or_none, urlencode_postdata, ) @@ -80,8 +81,8 @@ class HiDiveIE(InfoExtractor): bitrates = rendition.get('bitrates') if not isinstance(bitrates, dict): continue - m3u8_url = bitrates.get('hls') - if not isinstance(m3u8_url, compat_str): + m3u8_url = url_or_none(bitrates.get('hls')) + if not m3u8_url: continue formats.extend(self._extract_m3u8_formats( m3u8_url, video_id, 'mp4', entry_protocol='m3u8_native', @@ -93,9 +94,8 @@ class HiDiveIE(InfoExtractor): 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): + cc_url = url_or_none(cc_file[2]) + if not isinstance(cc_lang, compat_str) or not cc_url: continue subtitles.setdefault(cc_lang, []).append({ 'url': cc_url, diff --git a/youtube_dl/extractor/imdb.py b/youtube_dl/extractor/imdb.py index 4bafa54..436759d 100644 --- a/youtube_dl/extractor/imdb.py +++ b/youtube_dl/extractor/imdb.py @@ -3,12 +3,12 @@ from __future__ import unicode_literals import re from .common import InfoExtractor -from ..compat import compat_str from ..utils import ( determine_ext, mimetype2ext, parse_duration, qualities, + url_or_none, ) @@ -61,10 +61,11 @@ class ImdbIE(InfoExtractor): for encoding in video_metadata.get('encodings', []): if not encoding or not isinstance(encoding, dict): continue - video_url = encoding.get('videoUrl') - if not video_url or not isinstance(video_url, compat_str): + video_url = url_or_none(encoding.get('videoUrl')) + if not video_url: continue - ext = determine_ext(video_url, mimetype2ext(encoding.get('mimeType'))) + ext = mimetype2ext(encoding.get( + 'mimeType')) or determine_ext(video_url) if ext == 'm3u8': formats.extend(self._extract_m3u8_formats( video_url, video_id, 'mp4', entry_protocol='m3u8_native', diff --git a/youtube_dl/extractor/imgur.py b/youtube_dl/extractor/imgur.py index 2901960..ecc958a 100644 --- a/youtube_dl/extractor/imgur.py +++ b/youtube_dl/extractor/imgur.py @@ -12,7 +12,7 @@ from ..utils import ( class ImgurIE(InfoExtractor): - _VALID_URL = r'https?://(?:i\.)?imgur\.com/(?:(?:gallery|(?:topic|r)/[^/]+)/)?(?P<id>[a-zA-Z0-9]{6,})(?:[/?#&]+|\.[a-z]+)?$' + _VALID_URL = r'https?://(?:i\.)?imgur\.com/(?:(?:gallery|(?:topic|r)/[^/]+)/)?(?P<id>[a-zA-Z0-9]{6,})(?:[/?#&]+|\.[a-z0-9]+)?$' _TESTS = [{ 'url': 'https://i.imgur.com/A61SaA1.gifv', @@ -43,6 +43,9 @@ class ImgurIE(InfoExtractor): }, { 'url': 'http://imgur.com/r/aww/VQcQPhM', 'only_matching': True, + }, { + 'url': 'https://i.imgur.com/crGpqCV.mp4', + 'only_matching': True, }] def _real_extract(self, url): diff --git a/youtube_dl/extractor/instagram.py b/youtube_dl/extractor/instagram.py index 0c13f54..7e0e838 100644 --- a/youtube_dl/extractor/instagram.py +++ b/youtube_dl/extractor/instagram.py @@ -17,6 +17,7 @@ from ..utils import ( lowercase_escape, std_headers, try_get, + url_or_none, ) @@ -170,7 +171,7 @@ class InstagramIE(InfoExtractor): node = try_get(edge, lambda x: x['node'], dict) if not node: continue - node_video_url = try_get(node, lambda x: x['video_url'], compat_str) + node_video_url = url_or_none(node.get('video_url')) if not node_video_url: continue entries.append({ diff --git a/youtube_dl/extractor/internazionale.py b/youtube_dl/extractor/internazionale.py index 10ba1f6..676e8e2 100644 --- a/youtube_dl/extractor/internazionale.py +++ b/youtube_dl/extractor/internazionale.py @@ -7,7 +7,7 @@ from ..utils import unified_timestamp class InternazionaleIE(InfoExtractor): _VALID_URL = r'https?://(?:www\.)?internazionale\.it/video/(?:[^/]+/)*(?P<id>[^/?#&]+)' - _TEST = { + _TESTS = [{ 'url': 'https://www.internazionale.it/video/2015/02/19/richard-linklater-racconta-una-scena-di-boyhood', 'md5': '3e39d32b66882c1218e305acbf8348ca', 'info_dict': { @@ -23,7 +23,23 @@ class InternazionaleIE(InfoExtractor): 'params': { 'format': 'bestvideo', }, - } + }, { + 'url': 'https://www.internazionale.it/video/2018/08/29/telefono-stare-con-noi-stessi', + 'md5': '9db8663704cab73eb972d1cee0082c79', + 'info_dict': { + 'id': '761344', + 'display_id': 'telefono-stare-con-noi-stessi', + 'ext': 'mp4', + 'title': 'Usiamo il telefono per evitare di stare con noi stessi', + 'description': 'md5:75ccfb0d6bcefc6e7428c68b4aa1fe44', + 'timestamp': 1535528954, + 'upload_date': '20180829', + 'thumbnail': r're:^https?://.*\.jpg$', + }, + 'params': { + 'format': 'bestvideo', + }, + }] def _real_extract(self, url): display_id = self._match_id(url) @@ -40,8 +56,13 @@ class InternazionaleIE(InfoExtractor): DATA_RE % 'job-id', webpage, 'video id', group='value') video_path = self._search_regex( DATA_RE % 'video-path', webpage, 'video path', group='value') + video_available_abroad = self._search_regex( + DATA_RE % 'video-available_abroad', webpage, + 'video available aboard', default='1', group='value') + video_available_abroad = video_available_abroad == '1' - video_base = 'https://video.internazionale.it/%s/%s.' % (video_path, video_id) + video_base = 'https://video%s.internazionale.it/%s/%s.' % \ + ('' if video_available_abroad else '-ita', video_path, video_id) formats = self._extract_m3u8_formats( video_base + 'm3u8', display_id, 'mp4', diff --git a/youtube_dl/extractor/iprima.py b/youtube_dl/extractor/iprima.py index a29e6a5..1d58d6e 100644 --- a/youtube_dl/extractor/iprima.py +++ b/youtube_dl/extractor/iprima.py @@ -12,7 +12,7 @@ from ..utils import ( class IPrimaIE(InfoExtractor): - _VALID_URL = r'https?://play\.iprima\.cz/(?:.+/)?(?P<id>[^?#]+)' + _VALID_URL = r'https?://(?:play|prima)\.iprima\.cz/(?:.+/)?(?P<id>[^?#]+)' _GEO_BYPASS = False _TESTS = [{ @@ -33,14 +33,27 @@ class IPrimaIE(InfoExtractor): # geo restricted 'url': 'http://play.iprima.cz/closer-nove-pripady/closer-nove-pripady-iv-1', 'only_matching': True, + }, { + # iframe api.play-backend.iprima.cz + 'url': 'https://prima.iprima.cz/my-little-pony/mapa-znameni-2-2', + 'only_matching': True, + }, { + # iframe prima.iprima.cz + 'url': 'https://prima.iprima.cz/porady/jak-se-stavi-sen/rodina-rathousova-praha', + 'only_matching': True, }] def _real_extract(self, url): video_id = self._match_id(url) + self._set_cookie('play.iprima.cz', 'ott_adult_confirmed', '1') + webpage = self._download_webpage(url, video_id) - video_id = self._search_regex(r'data-product="([^"]+)">', webpage, 'real id') + video_id = self._search_regex( + (r'<iframe[^>]+\bsrc=["\'](?:https?:)?//(?:api\.play-backend\.iprima\.cz/prehravac/embedded|prima\.iprima\.cz/[^/]+/[^/]+)\?.*?\bid=(p\d+)', + r'data-product="([^"]+)">'), + webpage, 'real id') playerpage = self._download_webpage( 'http://play.iprima.cz/prehravac/init', diff --git a/youtube_dl/extractor/itv.py b/youtube_dl/extractor/itv.py index 6a4f8a5..de65b6b 100644 --- a/youtube_dl/extractor/itv.py +++ b/youtube_dl/extractor/itv.py @@ -13,15 +13,17 @@ from ..compat import ( compat_etree_register_namespace, ) from ..utils import ( + determine_ext, + ExtractorError, extract_attributes, - xpath_with_ns, - xpath_element, - xpath_text, int_or_none, + merge_dicts, parse_duration, smuggle_url, - ExtractorError, - determine_ext, + url_or_none, + xpath_with_ns, + xpath_element, + xpath_text, ) @@ -129,64 +131,65 @@ class ITVIE(InfoExtractor): resp_env = self._download_xml( params['data-playlist-url'], video_id, - headers=headers, data=etree.tostring(req_env)) - playlist = xpath_element(resp_env, './/Playlist') - if playlist is None: - fault_code = xpath_text(resp_env, './/faultcode') - fault_string = xpath_text(resp_env, './/faultstring') - if fault_code == 'InvalidGeoRegion': - self.raise_geo_restricted( - msg=fault_string, countries=self._GEO_COUNTRIES) - elif fault_code not in ( - 'InvalidEntity', 'InvalidVodcrid', 'ContentUnavailable'): - raise ExtractorError( - '%s said: %s' % (self.IE_NAME, fault_string), expected=True) - info.update({ - 'title': self._og_search_title(webpage), - 'episode_title': params.get('data-video-episode'), - 'series': params.get('data-video-title'), - }) - else: - title = xpath_text(playlist, 'EpisodeTitle', default=None) - info.update({ - 'title': title, - 'episode_title': title, - 'episode_number': int_or_none(xpath_text(playlist, 'EpisodeNumber')), - 'series': xpath_text(playlist, 'ProgrammeTitle'), - 'duration': parse_duration(xpath_text(playlist, 'Duration')), - }) - video_element = xpath_element(playlist, 'VideoEntries/Video', fatal=True) - media_files = xpath_element(video_element, 'MediaFiles', fatal=True) - rtmp_url = media_files.attrib['base'] + headers=headers, data=etree.tostring(req_env), fatal=False) + if resp_env: + playlist = xpath_element(resp_env, './/Playlist') + if playlist is None: + fault_code = xpath_text(resp_env, './/faultcode') + fault_string = xpath_text(resp_env, './/faultstring') + if fault_code == 'InvalidGeoRegion': + self.raise_geo_restricted( + msg=fault_string, countries=self._GEO_COUNTRIES) + elif fault_code not in ( + 'InvalidEntity', 'InvalidVodcrid', 'ContentUnavailable'): + raise ExtractorError( + '%s said: %s' % (self.IE_NAME, fault_string), expected=True) + info.update({ + 'title': self._og_search_title(webpage), + 'episode_title': params.get('data-video-episode'), + 'series': params.get('data-video-title'), + }) + else: + title = xpath_text(playlist, 'EpisodeTitle', default=None) + info.update({ + 'title': title, + 'episode_title': title, + 'episode_number': int_or_none(xpath_text(playlist, 'EpisodeNumber')), + 'series': xpath_text(playlist, 'ProgrammeTitle'), + 'duration': parse_duration(xpath_text(playlist, 'Duration')), + }) + video_element = xpath_element(playlist, 'VideoEntries/Video', fatal=True) + media_files = xpath_element(video_element, 'MediaFiles', fatal=True) + rtmp_url = media_files.attrib['base'] - for media_file in media_files.findall('MediaFile'): - play_path = xpath_text(media_file, 'URL') - if not play_path: - continue - tbr = int_or_none(media_file.get('bitrate'), 1000) - f = { - 'format_id': 'rtmp' + ('-%d' % tbr if tbr else ''), - 'play_path': play_path, - # Providing this swfVfy allows to avoid truncated downloads - 'player_url': 'http://www.itv.com/mercury/Mercury_VideoPlayer.swf', - 'page_url': url, - 'tbr': tbr, - 'ext': 'flv', - } - app = self._search_regex( - 'rtmpe?://[^/]+/(.+)$', rtmp_url, 'app', default=None) - if app: - f.update({ - 'url': rtmp_url.split('?', 1)[0], - 'app': app, - }) - else: - f['url'] = rtmp_url - formats.append(f) + for media_file in media_files.findall('MediaFile'): + play_path = xpath_text(media_file, 'URL') + if not play_path: + continue + tbr = int_or_none(media_file.get('bitrate'), 1000) + f = { + 'format_id': 'rtmp' + ('-%d' % tbr if tbr else ''), + 'play_path': play_path, + # Providing this swfVfy allows to avoid truncated downloads + 'player_url': 'http://www.itv.com/mercury/Mercury_VideoPlayer.swf', + 'page_url': url, + 'tbr': tbr, + 'ext': 'flv', + } + app = self._search_regex( + 'rtmpe?://[^/]+/(.+)$', rtmp_url, 'app', default=None) + if app: + f.update({ + 'url': rtmp_url.split('?', 1)[0], + 'app': app, + }) + else: + f['url'] = rtmp_url + formats.append(f) - for caption_url in video_element.findall('ClosedCaptioningURIs/URL'): - if caption_url.text: - extract_subtitle(caption_url.text) + for caption_url in video_element.findall('ClosedCaptioningURIs/URL'): + if caption_url.text: + extract_subtitle(caption_url.text) ios_playlist_url = params.get('data-video-playlist') or params.get('data-video-id') hmac = params.get('data-video-hmac') @@ -248,8 +251,8 @@ class ITVIE(InfoExtractor): for sub in subs: if not isinstance(sub, dict): continue - href = sub.get('Href') - if isinstance(href, compat_str): + href = url_or_none(sub.get('Href')) + if href: extract_subtitle(href) if not info.get('duration'): info['duration'] = parse_duration(video_data.get('Duration')) @@ -261,7 +264,17 @@ class ITVIE(InfoExtractor): 'formats': formats, 'subtitles': subtitles, }) - return info + + webpage_info = self._search_json_ld(webpage, video_id, default={}) + if not webpage_info.get('title'): + webpage_info['title'] = self._html_search_regex( + r'(?s)<h\d+[^>]+\bclass=["\'][^>]*episode-title["\'][^>]*>([^<]+)<', + webpage, 'title', default=None) or self._og_search_title( + webpage, default=None) or self._html_search_meta( + 'twitter:title', webpage, 'title', + default=None) or webpage_info['episode'] + + return merge_dicts(info, webpage_info) class ITVBTCCIE(InfoExtractor): diff --git a/youtube_dl/extractor/iwara.py b/youtube_dl/extractor/iwara.py index a7514fc..907d5fc 100644 --- a/youtube_dl/extractor/iwara.py +++ b/youtube_dl/extractor/iwara.py @@ -7,6 +7,7 @@ from ..utils import ( int_or_none, mimetype2ext, remove_end, + url_or_none, ) @@ -73,11 +74,14 @@ class IwaraIE(InfoExtractor): formats = [] for a_format in video_data: + format_uri = url_or_none(a_format.get('uri')) + if not format_uri: + continue format_id = a_format.get('resolution') height = int_or_none(self._search_regex( r'(\d+)p', format_id, 'height', default=None)) formats.append({ - 'url': a_format['uri'], + 'url': self._proto_relative_url(format_uri, 'https:'), 'format_id': format_id, 'ext': mimetype2ext(a_format.get('mime')) or 'mp4', 'height': height, diff --git a/youtube_dl/extractor/joj.py b/youtube_dl/extractor/joj.py index a764023..d9f8dbf 100644 --- a/youtube_dl/extractor/joj.py +++ b/youtube_dl/extractor/joj.py @@ -18,7 +18,7 @@ class JojIE(InfoExtractor): joj:| https?://media\.joj\.sk/embed/ ) - (?P<id>[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}) + (?P<id>[^/?#^]+) ''' _TESTS = [{ 'url': 'https://media.joj.sk/embed/a388ec4c-6019-4a4a-9312-b1bee194e932', @@ -29,16 +29,24 @@ class JojIE(InfoExtractor): 'thumbnail': r're:^https?://.*\.jpg$', 'duration': 3118, } + }, { + 'url': 'https://media.joj.sk/embed/9i1cxv', + 'only_matching': True, }, { 'url': 'joj:a388ec4c-6019-4a4a-9312-b1bee194e932', 'only_matching': True, + }, { + 'url': 'joj:9i1cxv', + 'only_matching': True, }] @staticmethod def _extract_urls(webpage): - return re.findall( - r'<iframe\b[^>]+\bsrc=["\'](?P<url>(?:https?:)?//media\.joj\.sk/embed/[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12})', - webpage) + return [ + mobj.group('url') + for mobj in re.finditer( + r'<iframe\b[^>]+\bsrc=(["\'])(?P<url>(?:https?:)?//media\.joj\.sk/embed/(?:(?!\1).)+)\1', + webpage)] def _real_extract(self, url): video_id = self._match_id(url) diff --git a/youtube_dl/extractor/keezmovies.py b/youtube_dl/extractor/keezmovies.py index d4e6f7a..c3eb74c 100644 --- a/youtube_dl/extractor/keezmovies.py +++ b/youtube_dl/extractor/keezmovies.py @@ -4,16 +4,14 @@ import re from .common import InfoExtractor from ..aes import aes_decrypt_text -from ..compat import ( - compat_str, - compat_urllib_parse_unquote, -) +from ..compat import compat_urllib_parse_unquote from ..utils import ( determine_ext, ExtractorError, int_or_none, str_to_int, strip_or_none, + url_or_none, ) @@ -55,7 +53,8 @@ class KeezMoviesIE(InfoExtractor): encrypted = False def extract_format(format_url, height=None): - if not isinstance(format_url, compat_str) or not format_url.startswith(('http', '//')): + format_url = url_or_none(format_url) + if not format_url or not format_url.startswith(('http', '//')): return if format_url in format_urls: return diff --git a/youtube_dl/extractor/kinopoisk.py b/youtube_dl/extractor/kinopoisk.py new file mode 100644 index 0000000..9e8d01f --- /dev/null +++ b/youtube_dl/extractor/kinopoisk.py @@ -0,0 +1,70 @@ +# coding: utf-8 +from __future__ import unicode_literals + +from .common import InfoExtractor +from ..utils import ( + dict_get, + int_or_none, +) + + +class KinoPoiskIE(InfoExtractor): + _GEO_COUNTRIES = ['RU'] + _VALID_URL = r'https?://(?:www\.)?kinopoisk\.ru/film/(?P<id>\d+)' + _TESTS = [{ + 'url': 'https://www.kinopoisk.ru/film/81041/watch/', + 'md5': '4f71c80baea10dfa54a837a46111d326', + 'info_dict': { + 'id': '81041', + 'ext': 'mp4', + 'title': 'Алеша попович и тугарин змей', + 'description': 'md5:43787e673d68b805d0aa1df5a5aea701', + 'thumbnail': r're:^https?://.*', + 'duration': 4533, + 'age_limit': 12, + }, + 'params': { + 'format': 'bestvideo', + }, + }, { + 'url': 'https://www.kinopoisk.ru/film/81041', + 'only_matching': True, + }] + + def _real_extract(self, url): + video_id = self._match_id(url) + + webpage = self._download_webpage( + 'https://ott-widget.kinopoisk.ru/v1/kp/', video_id, + query={'kpId': video_id}) + + data = self._parse_json( + self._search_regex( + r'(?s)<script[^>]+\btype=["\']application/json[^>]+>(.+?)<', + webpage, 'data'), + video_id)['models'] + + film = data['filmStatus'] + title = film.get('title') or film['originalTitle'] + + formats = self._extract_m3u8_formats( + data['playlistEntity']['uri'], video_id, 'mp4', + entry_protocol='m3u8_native', m3u8_id='hls') + self._sort_formats(formats) + + description = dict_get( + film, ('descriptscription', 'description', + 'shortDescriptscription', 'shortDescription')) + thumbnail = film.get('coverUrl') or film.get('posterUrl') + duration = int_or_none(film.get('duration')) + age_limit = int_or_none(film.get('restrictionAge')) + + return { + 'id': video_id, + 'title': title, + 'description': description, + 'thumbnail': thumbnail, + 'duration': duration, + 'age_limit': age_limit, + 'formats': formats, + } diff --git a/youtube_dl/extractor/konserthusetplay.py b/youtube_dl/extractor/konserthusetplay.py index c11cbcf..dd42bb2 100644 --- a/youtube_dl/extractor/konserthusetplay.py +++ b/youtube_dl/extractor/konserthusetplay.py @@ -2,11 +2,11 @@ from __future__ import unicode_literals from .common import InfoExtractor -from ..compat import compat_str from ..utils import ( determine_ext, float_or_none, int_or_none, + url_or_none, ) @@ -109,7 +109,8 @@ class KonserthusetPlayIE(InfoExtractor): captions = source.get('captionsAvailableLanguages') if isinstance(captions, dict): for lang, subtitle_url in captions.items(): - if lang != 'none' and isinstance(subtitle_url, compat_str): + subtitle_url = url_or_none(subtitle_url) + if lang != 'none' and subtitle_url: subtitles.setdefault(lang, []).append({'url': subtitle_url}) return { diff --git a/youtube_dl/extractor/lci.py b/youtube_dl/extractor/lci.py index af34829..920872f 100644 --- a/youtube_dl/extractor/lci.py +++ b/youtube_dl/extractor/lci.py @@ -20,5 +20,7 @@ class LCIIE(InfoExtractor): def _real_extract(self, url): video_id = self._match_id(url) webpage = self._download_webpage(url, video_id) - wat_id = self._search_regex(r'data-watid=[\'"](\d+)', webpage, 'wat id') + wat_id = self._search_regex( + (r'data-watid=[\'"](\d+)', r'idwat["\']?\s*:\s*["\']?(\d+)'), + webpage, 'wat id') return self.url_result('wat:' + wat_id, 'Wat', wat_id) diff --git a/youtube_dl/extractor/lynda.py b/youtube_dl/extractor/lynda.py index f5c7abc..4ba61cd 100644 --- a/youtube_dl/extractor/lynda.py +++ b/youtube_dl/extractor/lynda.py @@ -4,7 +4,6 @@ import re from .common import InfoExtractor from ..compat import ( - compat_HTTPError, compat_str, compat_urlparse, ) @@ -44,21 +43,15 @@ class LyndaBaseIE(InfoExtractor): form_data = self._hidden_inputs(form_html) form_data.update(extra_form_data) - try: - response = self._download_json( - action_url, None, note, - data=urlencode_postdata(form_data), - headers={ - 'Referer': referrer_url, - 'X-Requested-With': 'XMLHttpRequest', - }) - except ExtractorError as e: - if isinstance(e.cause, compat_HTTPError) and e.cause.code == 500: - response = self._parse_json(e.cause.read().decode('utf-8'), None) - self._check_error(response, ('email', 'password')) - raise - - self._check_error(response, 'ErrorMessage') + response = self._download_json( + action_url, None, note, + data=urlencode_postdata(form_data), + headers={ + 'Referer': referrer_url, + 'X-Requested-With': 'XMLHttpRequest', + }, expected_status=(418, 500, )) + + self._check_error(response, ('email', 'password', 'ErrorMessage')) return response, action_url diff --git a/youtube_dl/extractor/markiza.py b/youtube_dl/extractor/markiza.py index e6bfab1..def960a 100644 --- a/youtube_dl/extractor/markiza.py +++ b/youtube_dl/extractor/markiza.py @@ -110,7 +110,11 @@ class MarkizaPageIE(InfoExtractor): def _real_extract(self, url): playlist_id = self._match_id(url) - webpage = self._download_webpage(url, playlist_id) + webpage = self._download_webpage( + # Downloading for some hosts (e.g. dajto, doma) fails with 500 + # although everything seems to be OK, so considering 500 + # status code to be expected. + url, playlist_id, expected_status=500) entries = [ self.url_result('http://videoarchiv.markiza.sk/video/%s' % video_id) diff --git a/youtube_dl/extractor/mediaset.py b/youtube_dl/extractor/mediaset.py index 9760eaf..57f9740 100644 --- a/youtube_dl/extractor/mediaset.py +++ b/youtube_dl/extractor/mediaset.py @@ -3,59 +3,75 @@ from __future__ import unicode_literals import re -from .common import InfoExtractor -from ..compat import compat_str +from .theplatform import ThePlatformBaseIE from ..utils import ( - determine_ext, - parse_duration, - try_get, - unified_strdate, + ExtractorError, + int_or_none, + update_url_query, ) -class MediasetIE(InfoExtractor): +class MediasetIE(ThePlatformBaseIE): + _TP_TLD = 'eu' _VALID_URL = r'''(?x) (?: mediaset:| https?:// - (?:www\.)?video\.mediaset\.it/ + (?:(?:www|static3)\.)?mediasetplay\.mediaset\.it/ (?: (?:video|on-demand)/(?:[^/]+/)+[^/]+_| - player/playerIFrame(?:Twitter)?\.shtml\?.*?\bid= + player/index\.html\?.*?\bprogramGuid= ) - )(?P<id>[0-9]+) + )(?P<id>[0-9A-Z]{16}) ''' _TESTS = [{ # full episode - 'url': 'http://www.video.mediaset.it/video/hello_goodbye/full/quarta-puntata_661824.html', + 'url': 'https://www.mediasetplay.mediaset.it/video/hellogoodbye/quarta-puntata_FAFU000000661824', 'md5': '9b75534d42c44ecef7bf1ffeacb7f85d', 'info_dict': { - 'id': '661824', + 'id': 'FAFU000000661824', 'ext': 'mp4', 'title': 'Quarta puntata', - 'description': 'md5:7183696d6df570e3412a5ef74b27c5e2', + 'description': 'md5:d41d8cd98f00b204e9800998ecf8427e', 'thumbnail': r're:^https?://.*\.jpg$', - 'duration': 1414, - 'creator': 'mediaset', + 'duration': 1414.26, 'upload_date': '20161107', 'series': 'Hello Goodbye', - 'categories': ['reality'], + 'timestamp': 1478532900, + 'uploader': 'Rete 4', + 'uploader_id': 'R4', }, - 'expected_warnings': ['is not a supported codec'], + }, { + 'url': 'https://www.mediasetplay.mediaset.it/video/matrix/puntata-del-25-maggio_F309013801000501', + 'md5': '288532f0ad18307705b01e581304cd7b', + 'info_dict': { + 'id': 'F309013801000501', + 'ext': 'mp4', + 'title': 'Puntata del 25 maggio', + 'description': 'md5:d41d8cd98f00b204e9800998ecf8427e', + 'thumbnail': r're:^https?://.*\.jpg$', + 'duration': 6565.007, + 'upload_date': '20180526', + 'series': 'Matrix', + 'timestamp': 1527326245, + 'uploader': 'Canale 5', + 'uploader_id': 'C5', + }, + 'expected_warnings': ['HTTP Error 403: Forbidden'], }, { # clip - 'url': 'http://www.video.mediaset.it/video/gogglebox/clip/un-grande-classico-della-commedia-sexy_661680.html', + 'url': 'https://www.mediasetplay.mediaset.it/video/gogglebox/un-grande-classico-della-commedia-sexy_FAFU000000661680', 'only_matching': True, }, { # iframe simple - 'url': 'http://www.video.mediaset.it/player/playerIFrame.shtml?id=665924&autoplay=true', + 'url': 'https://static3.mediasetplay.mediaset.it/player/index.html?appKey=5ad3966b1de1c4000d5cec48&programGuid=FAFU000000665924&id=665924', 'only_matching': True, }, { # iframe twitter (from http://www.wittytv.it/se-prima-mi-fidavo-zero/) - 'url': 'https://www.video.mediaset.it/player/playerIFrameTwitter.shtml?id=665104&playrelated=false&autoplay=false&related=true&hidesocial=true', + 'url': 'https://static3.mediasetplay.mediaset.it/player/index.html?appKey=5ad3966b1de1c4000d5cec48&programGuid=FAFU000000665104&id=665104', 'only_matching': True, }, { - 'url': 'mediaset:661824', + 'url': 'mediaset:FAFU000000665924', 'only_matching': True, }] @@ -68,51 +84,54 @@ class MediasetIE(InfoExtractor): webpage)] def _real_extract(self, url): - video_id = self._match_id(url) - - video_list = self._download_json( - 'http://cdnsel01.mediaset.net/GetCdn.aspx', - video_id, 'Downloading video CDN JSON', query={ - 'streamid': video_id, - 'format': 'json', - })['videoList'] + guid = self._match_id(url) + tp_path = 'PR1GhC/media/guid/2702976343/' + guid + info = self._extract_theplatform_metadata(tp_path, guid) formats = [] - for format_url in video_list: - if '.ism' in format_url: - formats.extend(self._extract_ism_formats( - format_url, video_id, ism_id='mss', fatal=False)) - else: - formats.append({ - 'url': format_url, - 'format_id': determine_ext(format_url), - }) + subtitles = {} + first_e = None + for asset_type in ('SD', 'HD'): + for f in ('MPEG4', 'MPEG-DASH', 'M3U', 'ISM'): + try: + tp_formats, tp_subtitles = self._extract_theplatform_smil( + update_url_query('http://link.theplatform.%s/s/%s' % (self._TP_TLD, tp_path), { + 'mbr': 'true', + 'formats': f, + 'assetTypes': asset_type, + }), guid, 'Downloading %s %s SMIL data' % (f, asset_type)) + except ExtractorError as e: + if not first_e: + first_e = e + break + for tp_f in tp_formats: + tp_f['quality'] = 1 if asset_type == 'HD' else 0 + formats.extend(tp_formats) + subtitles = self._merge_subtitles(subtitles, tp_subtitles) + if first_e and not formats: + raise first_e self._sort_formats(formats) - mediainfo = self._download_json( - 'http://plr.video.mediaset.it/html/metainfo.sjson', - video_id, 'Downloading video info JSON', query={ - 'id': video_id, - })['video'] - - title = mediainfo['title'] - - creator = try_get( - mediainfo, lambda x: x['brand-info']['publisher'], compat_str) - category = try_get( - mediainfo, lambda x: x['brand-info']['category'], compat_str) - categories = [category] if category else None + fields = [] + for templ, repls in (('tvSeason%sNumber', ('', 'Episode')), ('mediasetprogram$%s', ('brandTitle', 'numberOfViews', 'publishInfo'))): + fields.extend(templ % repl for repl in repls) + feed_data = self._download_json( + 'https://feed.entertainment.tv.theplatform.eu/f/PR1GhC/mediaset-prod-all-programs/guid/-/' + guid, + guid, fatal=False, query={'fields': ','.join(fields)}) + if feed_data: + publish_info = feed_data.get('mediasetprogram$publishInfo') or {} + info.update({ + 'episode_number': int_or_none(feed_data.get('tvSeasonEpisodeNumber')), + 'season_number': int_or_none(feed_data.get('tvSeasonNumber')), + 'series': feed_data.get('mediasetprogram$brandTitle'), + 'uploader': publish_info.get('description'), + 'uploader_id': publish_info.get('channel'), + 'view_count': int_or_none(feed_data.get('mediasetprogram$numberOfViews')), + }) - return { - 'id': video_id, - 'title': title, - 'description': mediainfo.get('short-description'), - 'thumbnail': mediainfo.get('thumbnail'), - 'duration': parse_duration(mediainfo.get('duration')), - 'creator': creator, - 'upload_date': unified_strdate(mediainfo.get('production-date')), - 'webpage_url': mediainfo.get('url'), - 'series': mediainfo.get('brand-value'), - 'categories': categories, + info.update({ + 'id': guid, 'formats': formats, - } + 'subtitles': subtitles, + }) + return info diff --git a/youtube_dl/extractor/mediasite.py b/youtube_dl/extractor/mediasite.py index 0e2645c..84876b8 100644 --- a/youtube_dl/extractor/mediasite.py +++ b/youtube_dl/extractor/mediasite.py @@ -15,6 +15,7 @@ from ..utils import ( mimetype2ext, unescapeHTML, unsmuggle_url, + url_or_none, urljoin, ) @@ -156,8 +157,8 @@ class MediasiteIE(InfoExtractor): stream_formats = [] for unum, VideoUrl in enumerate(video_urls): - video_url = VideoUrl.get('Location') - if not video_url or not isinstance(video_url, compat_str): + video_url = url_or_none(VideoUrl.get('Location')) + if not video_url: continue # XXX: if Stream.get('CanChangeScheme', False), switch scheme to HTTP/HTTPS diff --git a/youtube_dl/extractor/mitele.py b/youtube_dl/extractor/mitele.py index 42759ea..40f214a 100644 --- a/youtube_dl/extractor/mitele.py +++ b/youtube_dl/extractor/mitele.py @@ -1,84 +1,14 @@ # coding: utf-8 from __future__ import unicode_literals -import json -import uuid - from .common import InfoExtractor -from .ooyala import OoyalaIE -from ..compat import ( - compat_str, - compat_urlparse, -) from ..utils import ( int_or_none, - extract_attributes, - determine_ext, smuggle_url, parse_duration, ) -class MiTeleBaseIE(InfoExtractor): - def _get_player_info(self, url, webpage): - player_data = extract_attributes(self._search_regex( - r'(?s)(<ms-video-player.+?</ms-video-player>)', - webpage, 'ms video player')) - video_id = player_data['data-media-id'] - if player_data.get('data-cms-id') == 'ooyala': - return self.url_result( - 'ooyala:%s' % video_id, ie=OoyalaIE.ie_key(), video_id=video_id) - config_url = compat_urlparse.urljoin(url, player_data['data-config']) - config = self._download_json( - config_url, video_id, 'Downloading config JSON') - mmc_url = config['services']['mmc'] - - duration = None - formats = [] - for m_url in (mmc_url, mmc_url.replace('/flash.json', '/html5.json')): - mmc = self._download_json( - m_url, video_id, 'Downloading mmc JSON') - if not duration: - duration = int_or_none(mmc.get('duration')) - for location in mmc['locations']: - gat = self._proto_relative_url(location.get('gat'), 'http:') - gcp = location.get('gcp') - ogn = location.get('ogn') - if None in (gat, gcp, ogn): - continue - token_data = { - 'gcp': gcp, - 'ogn': ogn, - 'sta': 0, - } - media = self._download_json( - gat, video_id, data=json.dumps(token_data).encode('utf-8'), - headers={ - 'Content-Type': 'application/json;charset=utf-8', - 'Referer': url, - }) - stream = media.get('stream') or media.get('file') - if not stream: - continue - ext = determine_ext(stream) - if ext == 'f4m': - formats.extend(self._extract_f4m_formats( - stream + '&hdcore=3.2.0&plugin=aasp-3.2.0.77.18', - video_id, f4m_id='hds', fatal=False)) - elif ext == 'm3u8': - formats.extend(self._extract_m3u8_formats( - stream, video_id, 'mp4', 'm3u8_native', - m3u8_id='hls', fatal=False)) - self._sort_formats(formats) - - return { - 'id': video_id, - 'formats': formats, - 'thumbnail': player_data.get('data-poster') or config.get('poster', {}).get('imageUrl'), - 'duration': duration, - } - - class MiTeleIE(InfoExtractor): IE_DESC = 'mitele.es' _VALID_URL = r'https?://(?:www\.)?mitele\.es/(?:[^/]+/)+(?P<id>[^/]+)/player' @@ -86,7 +16,7 @@ class MiTeleIE(InfoExtractor): _TESTS = [{ 'url': 'http://www.mitele.es/programas-tv/diario-de/57b0dfb9c715da65618b4afa/player', 'info_dict': { - 'id': '57b0dfb9c715da65618b4afa', + 'id': 'FhYW1iNTE6J6H7NkQRIEzfne6t2quqPg', 'ext': 'mp4', 'title': 'Tor, la web invisible', 'description': 'md5:3b6fce7eaa41b2d97358726378d9369f', @@ -104,7 +34,7 @@ class MiTeleIE(InfoExtractor): # no explicit title 'url': 'http://www.mitele.es/programas-tv/cuarto-milenio/57b0de3dc915da14058b4876/player', 'info_dict': { - 'id': '57b0de3dc915da14058b4876', + 'id': 'oyNG1iNTE6TAPP-JmCjbwfwJqqMMX3Vq', 'ext': 'mp4', 'title': 'Cuarto Milenio Temporada 6 Programa 226', 'description': 'md5:5ff132013f0cd968ffbf1f5f3538a65f', @@ -128,40 +58,21 @@ class MiTeleIE(InfoExtractor): def _real_extract(self, url): video_id = self._match_id(url) - webpage = self._download_webpage(url, video_id) - - gigya_url = self._search_regex( - r'<gigya-api>[^>]*</gigya-api>[^>]*<script\s+src="([^"]*)">[^>]*</script>', - webpage, 'gigya', default=None) - gigya_sc = self._download_webpage( - compat_urlparse.urljoin('http://www.mitele.es/', gigya_url), - video_id, 'Downloading gigya script') - - # Get a appKey/uuid for getting the session key - appKey = self._search_regex( - r'constant\s*\(\s*["\']_appGridApplicationKey["\']\s*,\s*["\']([0-9a-f]+)', - gigya_sc, 'appKey') - - session_json = self._download_json( - 'https://appgrid-api.cloud.accedo.tv/session', - video_id, 'Downloading session keys', query={ - 'appKey': appKey, - 'uuid': compat_str(uuid.uuid4()), - }) paths = self._download_json( - 'https://appgrid-api.cloud.accedo.tv/metadata/general_configuration,%20web_configuration', - video_id, 'Downloading paths JSON', - query={'sessionKey': compat_str(session_json['sessionKey'])}) + 'https://www.mitele.es/amd/agp/web/metadata/general_configuration', + video_id, 'Downloading paths JSON') ooyala_s = paths['general_configuration']['api_configuration']['ooyala_search'] + base_url = ooyala_s.get('base_url', 'cdn-search-mediaset.carbyne.ps.ooyala.com') + full_path = ooyala_s.get('full_path', '/search/v1/full/providers/') source = self._download_json( - 'http://%s%s%s/docs/%s' % ( - ooyala_s['base_url'], ooyala_s['full_path'], - ooyala_s['provider_id'], video_id), + '%s://%s%s%s/docs/%s' % ( + ooyala_s.get('protocol', 'https'), base_url, full_path, + ooyala_s.get('provider_id', '104951'), video_id), video_id, 'Downloading data JSON', query={ 'include_titles': 'Series,Season', - 'product_name': 'test', + 'product_name': ooyala_s.get('product_name', 'test'), 'format': 'full', })['hits']['hits'][0]['_source'] diff --git a/youtube_dl/extractor/motherless.py b/youtube_dl/extractor/motherless.py index e24396e..d4bd273 100644 --- a/youtube_dl/extractor/motherless.py +++ b/youtube_dl/extractor/motherless.py @@ -77,8 +77,11 @@ class MotherlessIE(InfoExtractor): title = self._html_search_regex( r'id="view-upload-title">\s+([^<]+)<', webpage, 'title') - video_url = self._html_search_regex( - r'setup\(\{\s+"file".+: "([^"]+)",', webpage, 'video URL') + video_url = (self._html_search_regex( + (r'setup\(\{\s*["\']file["\']\s*:\s*(["\'])(?P<url>(?:(?!\1).)+)\1', + r'fileurl\s*=\s*(["\'])(?P<url>(?:(?!\1).)+)\1'), + webpage, 'video URL', default=None, group='url') or + 'http://cdn4.videos.motherlessmedia.com/videos/%s.mp4?fs=opencloud' % video_id) age_limit = self._rta_search(webpage) view_count = str_to_int(self._html_search_regex( r'<strong>Views</strong>\s+([^<]+)<', @@ -120,7 +123,7 @@ class MotherlessIE(InfoExtractor): class MotherlessGroupIE(InfoExtractor): - _VALID_URL = 'https?://(?:www\.)?motherless\.com/gv?/(?P<id>[a-z0-9_]+)' + _VALID_URL = r'https?://(?:www\.)?motherless\.com/gv?/(?P<id>[a-z0-9_]+)' _TESTS = [{ 'url': 'http://motherless.com/g/movie_scenes', 'info_dict': { @@ -164,9 +167,9 @@ class MotherlessGroupIE(InfoExtractor): if not entries: entries = [ self.url_result( - compat_urlparse.urljoin(base, '/' + video_id), - ie=MotherlessIE.ie_key(), video_id=video_id) - for video_id in orderedSet(re.findall( + compat_urlparse.urljoin(base, '/' + entry_id), + ie=MotherlessIE.ie_key(), video_id=entry_id) + for entry_id in orderedSet(re.findall( r'data-codename=["\']([A-Z0-9]+)', webpage))] return entries diff --git a/youtube_dl/extractor/nbc.py b/youtube_dl/extractor/nbc.py index c843f86..765c46f 100644 --- a/youtube_dl/extractor/nbc.py +++ b/youtube_dl/extractor/nbc.py @@ -7,6 +7,7 @@ import re from .common import InfoExtractor from .theplatform import ThePlatformIE from .adobepass import AdobePassIE +from ..compat import compat_urllib_parse_unquote from ..utils import ( find_xpath_attr, smuggle_url, @@ -75,11 +76,16 @@ class NBCIE(AdobePassIE): 'url': 'https://www.nbc.com/classic-tv/charles-in-charge/video/charles-in-charge-pilot/n3310', 'only_matching': True, }, + { + # Percent escaped url + 'url': 'https://www.nbc.com/up-all-night/video/day-after-valentine%27s-day/n2189', + 'only_matching': True, + } ] def _real_extract(self, url): permalink, video_id = re.match(self._VALID_URL, url).groups() - permalink = 'http' + permalink + permalink = 'http' + compat_urllib_parse_unquote(permalink) response = self._download_json( 'https://api.nbc.com/v3/videos', video_id, query={ 'filter[permalink]': permalink, diff --git a/youtube_dl/extractor/niconico.py b/youtube_dl/extractor/niconico.py index dbe871f..76b412f 100644 --- a/youtube_dl/extractor/niconico.py +++ b/youtube_dl/extractor/niconico.py @@ -252,7 +252,7 @@ class NiconicoIE(InfoExtractor): }, 'timing_constraint': 'unlimited' } - })) + }).encode()) resolution = video_quality.get('resolution', {}) diff --git a/youtube_dl/extractor/nova.py b/youtube_dl/extractor/nova.py index 06cb8cb..80186ec 100644 --- a/youtube_dl/extractor/nova.py +++ b/youtube_dl/extractor/nova.py @@ -6,28 +6,90 @@ import re from .common import InfoExtractor from ..utils import ( clean_html, + int_or_none, + js_to_json, + qualities, unified_strdate, + url_or_none, ) +class NovaEmbedIE(InfoExtractor): + _VALID_URL = r'https?://media\.cms\.nova\.cz/embed/(?P<id>[^/?#&]+)' + _TEST = { + 'url': 'https://media.cms.nova.cz/embed/8o0n0r?autoplay=1', + 'md5': 'b3834f6de5401baabf31ed57456463f7', + 'info_dict': { + 'id': '8o0n0r', + 'ext': 'mp4', + 'title': '2180. díl', + 'thumbnail': r're:^https?://.*\.jpg', + 'duration': 2578, + }, + } + + def _real_extract(self, url): + video_id = self._match_id(url) + + webpage = self._download_webpage(url, video_id) + + bitrates = self._parse_json( + self._search_regex( + r'(?s)bitrates\s*=\s*({.+?})\s*;', webpage, 'formats'), + video_id, transform_source=js_to_json) + + QUALITIES = ('lq', 'mq', 'hq', 'hd') + quality_key = qualities(QUALITIES) + + formats = [] + for format_id, format_list in bitrates.items(): + if not isinstance(format_list, list): + continue + for format_url in format_list: + format_url = url_or_none(format_url) + if not format_url: + continue + f = { + 'url': format_url, + } + f_id = format_id + for quality in QUALITIES: + if '%s.mp4' % quality in format_url: + f_id += '-%s' % quality + f.update({ + 'quality': quality_key(quality), + 'format_note': quality.upper(), + }) + break + f['format_id'] = f_id + formats.append(f) + self._sort_formats(formats) + + title = self._og_search_title( + webpage, default=None) or self._search_regex( + (r'<value>(?P<title>[^<]+)', + r'videoTitle\s*:\s*(["\'])(?P<value>(?:(?!\1).)+)\1'), webpage, + 'title', group='value') + thumbnail = self._og_search_thumbnail( + webpage, default=None) or self._search_regex( + r'poster\s*:\s*(["\'])(?P<value>(?:(?!\1).)+)\1', webpage, + 'thumbnail', fatal=False, group='value') + duration = int_or_none(self._search_regex( + r'videoDuration\s*:\s*(\d+)', webpage, 'duration', fatal=False)) + + return { + 'id': video_id, + 'title': title, + 'thumbnail': thumbnail, + 'duration': duration, + 'formats': formats, + } + + class NovaIE(InfoExtractor): IE_DESC = 'TN.cz, Prásk.tv, Nova.cz, Novaplus.cz, FANDA.tv, Krásná.cz and Doma.cz' _VALID_URL = r'https?://(?:[^.]+\.)?(?P<site>tv(?:noviny)?|tn|novaplus|vymena|fanda|krasna|doma|prask)\.nova\.cz/(?:[^/]+/)+(?P<id>[^/]+?)(?:\.html|/|$)' _TESTS = [{ - 'url': 'http://tvnoviny.nova.cz/clanek/novinky/co-na-sebe-sportaci-praskli-vime-jestli-pujde-hrdlicka-na-materskou.html?utm_source=tvnoviny&utm_medium=cpfooter&utm_campaign=novaplus', - 'info_dict': { - 'id': '1608920', - 'display_id': 'co-na-sebe-sportaci-praskli-vime-jestli-pujde-hrdlicka-na-materskou', - 'ext': 'flv', - 'title': 'Duel: Michal Hrdlička a Petr Suchoň', - 'description': 'md5:d0cc509858eee1b1374111c588c6f5d5', - 'thumbnail': r're:^https?://.*\.(?:jpg)', - }, - 'params': { - # rtmp download - 'skip_download': True, - } - }, { 'url': 'http://tn.nova.cz/clanek/tajemstvi-ukryte-v-podzemi-specialni-nemocnice-v-prazske-krci.html#player_13260', 'md5': '1dd7b9d5ea27bc361f110cd855a19bd3', 'info_dict': { @@ -38,33 +100,6 @@ class NovaIE(InfoExtractor): 'description': 'md5:f0a42dd239c26f61c28f19e62d20ef53', 'thumbnail': r're:^https?://.*\.(?:jpg)', } - }, { - 'url': 'http://novaplus.nova.cz/porad/policie-modrava/video/5591-policie-modrava-15-dil-blondynka-na-hrbitove', - 'info_dict': { - 'id': '1756825', - 'display_id': '5591-policie-modrava-15-dil-blondynka-na-hrbitove', - 'ext': 'flv', - 'title': 'Policie Modrava - 15. díl - Blondýnka na hřbitově', - 'description': 'md5:dc24e50be5908df83348e50d1431295e', # Make sure this description is clean of html tags - 'thumbnail': r're:^https?://.*\.(?:jpg)', - }, - 'params': { - # rtmp download - 'skip_download': True, - } - }, { - 'url': 'http://novaplus.nova.cz/porad/televizni-noviny/video/5585-televizni-noviny-30-5-2015/', - 'info_dict': { - 'id': '1756858', - 'ext': 'flv', - 'title': 'Televizní noviny - 30. 5. 2015', - 'thumbnail': r're:^https?://.*\.(?:jpg)', - 'upload_date': '20150530', - }, - 'params': { - # rtmp download - 'skip_download': True, - } }, { 'url': 'http://fanda.nova.cz/clanek/fun-and-games/krvavy-epos-zaklinac-3-divoky-hon-vychazi-vyhrajte-ho-pro-sebe.html', 'info_dict': { @@ -79,6 +114,20 @@ class NovaIE(InfoExtractor): # rtmp download 'skip_download': True, } + }, { + # media.cms.nova.cz embed + 'url': 'https://novaplus.nova.cz/porad/ulice/epizoda/18760-2180-dil', + 'info_dict': { + 'id': '8o0n0r', + 'ext': 'mp4', + 'title': '2180. díl', + 'thumbnail': r're:^https?://.*\.jpg', + 'duration': 2578, + }, + 'params': { + 'skip_download': True, + }, + 'add_ie': [NovaEmbedIE.ie_key()], }, { 'url': 'http://sport.tn.nova.cz/clanek/sport/hokej/nhl/zivot-jde-dal-hodnotil-po-vyrazeni-z-playoff-jiri-sekac.html', 'only_matching': True, @@ -103,6 +152,15 @@ class NovaIE(InfoExtractor): webpage = self._download_webpage(url, display_id) + # novaplus + embed_id = self._search_regex( + r'<iframe[^>]+\bsrc=["\'](?:https?:)?//media\.cms\.nova\.cz/embed/([^/?#&]+)', + webpage, 'embed url', default=None) + if embed_id: + return self.url_result( + 'https://media.cms.nova.cz/embed/%s' % embed_id, + ie=NovaEmbedIE.ie_key(), video_id=embed_id) + video_id = self._search_regex( [r"(?:media|video_id)\s*:\s*'(\d+)'", r'media=(\d+)', @@ -111,8 +169,21 @@ class NovaIE(InfoExtractor): webpage, 'video id') config_url = self._search_regex( - r'src="(http://tn\.nova\.cz/bin/player/videojs/config\.php\?[^"]+)"', + r'src="(https?://(?:tn|api)\.nova\.cz/bin/player/videojs/config\.php\?[^"]+)"', webpage, 'config url', default=None) + config_params = {} + + if not config_url: + player = self._parse_json( + self._search_regex( + r'(?s)Player\s*\(.+?\s*,\s*({.+?\bmedia\b["\']?\s*:\s*["\']?\d+.+?})\s*\)', webpage, + 'player', default='{}'), + video_id, transform_source=js_to_json, fatal=False) + if player: + config_url = url_or_none(player.get('configUrl')) + params = player.get('configParams') + if isinstance(params, dict): + config_params = params if not config_url: DEFAULT_SITE_ID = '23000' @@ -127,14 +198,20 @@ class NovaIE(InfoExtractor): } site_id = self._search_regex( - r'site=(\d+)', webpage, 'site id', default=None) or SITES.get(site, DEFAULT_SITE_ID) + r'site=(\d+)', webpage, 'site id', default=None) or SITES.get( + site, DEFAULT_SITE_ID) - config_url = ('http://tn.nova.cz/bin/player/videojs/config.php?site=%s&media=%s&jsVar=vjsconfig' - % (site_id, video_id)) + config_url = 'https://api.nova.cz/bin/player/videojs/config.php' + config_params = { + 'site': site_id, + 'media': video_id, + 'quality': 3, + 'version': 1, + } config = self._download_json( config_url, display_id, - 'Downloading config JSON', + 'Downloading config JSON', query=config_params, transform_source=lambda s: s[s.index('{'):s.rindex('}') + 1]) mediafile = config['mediafile'] diff --git a/youtube_dl/extractor/npo.py b/youtube_dl/extractor/npo.py index cb8319f..c2cb85a 100644 --- a/youtube_dl/extractor/npo.py +++ b/youtube_dl/extractor/npo.py @@ -282,7 +282,7 @@ class NPOIE(NPOBaseIE): video_url = stream_info.get('url') if not video_url or video_url in urls: continue - urls.add(item_url) + urls.add(video_url) if determine_ext(video_url) == 'm3u8': formats.extend(self._extract_m3u8_formats( video_url, video_id, ext='mp4', diff --git a/youtube_dl/extractor/nrk.py b/youtube_dl/extractor/nrk.py index 7157e23..a231735 100644 --- a/youtube_dl/extractor/nrk.py +++ b/youtube_dl/extractor/nrk.py @@ -4,12 +4,18 @@ from __future__ import unicode_literals import re from .common import InfoExtractor -from ..compat import compat_urllib_parse_unquote +from ..compat import ( + compat_str, + compat_urllib_parse_unquote, +) from ..utils import ( ExtractorError, int_or_none, + JSON_LD_RE, + NO_DEFAULT, parse_age_limit, parse_duration, + try_get, ) @@ -359,6 +365,182 @@ class NRKTVIE(NRKBaseIE): }] +class NRKTVEpisodeIE(InfoExtractor): + _VALID_URL = r'https?://tv\.nrk\.no/serie/(?P<id>[^/]+/sesong/\d+/episode/\d+)' + _TEST = { + 'url': 'https://tv.nrk.no/serie/backstage/sesong/1/episode/8', + 'info_dict': { + 'id': 'MSUI14000816AA', + 'ext': 'mp4', + 'title': 'Backstage 8:30', + 'description': 'md5:de6ca5d5a2d56849e4021f2bf2850df4', + 'duration': 1320, + 'series': 'Backstage', + 'season_number': 1, + 'episode_number': 8, + 'episode': '8:30', + }, + 'params': { + 'skip_download': True, + }, + } + + def _real_extract(self, url): + display_id = self._match_id(url) + + webpage = self._download_webpage(url, display_id) + + nrk_id = self._parse_json( + self._search_regex(JSON_LD_RE, webpage, 'JSON-LD', group='json_ld'), + display_id)['@id'] + + assert re.match(NRKTVIE._EPISODE_RE, nrk_id) + return self.url_result( + 'nrk:%s' % nrk_id, ie=NRKIE.ie_key(), video_id=nrk_id) + + +class NRKTVSerieBaseIE(InfoExtractor): + def _extract_series(self, webpage, display_id, fatal=True): + config = self._parse_json( + self._search_regex( + r'({.+?})\s*,\s*"[^"]+"\s*\)\s*</script>', webpage, 'config', + default='{}' if not fatal else NO_DEFAULT), + display_id, fatal=False) + if not config: + return + return try_get(config, lambda x: x['series'], dict) + + def _extract_episodes(self, season): + entries = [] + if not isinstance(season, dict): + return entries + episodes = season.get('episodes') + if not isinstance(episodes, list): + return entries + for episode in episodes: + nrk_id = episode.get('prfId') + if not nrk_id or not isinstance(nrk_id, compat_str): + continue + entries.append(self.url_result( + 'nrk:%s' % nrk_id, ie=NRKIE.ie_key(), video_id=nrk_id)) + return entries + + +class NRKTVSeasonIE(NRKTVSerieBaseIE): + _VALID_URL = r'https?://tv\.nrk\.no/serie/[^/]+/sesong/(?P<id>\d+)' + _TEST = { + 'url': 'https://tv.nrk.no/serie/backstage/sesong/1', + 'info_dict': { + 'id': '1', + 'title': 'Sesong 1', + }, + 'playlist_mincount': 30, + } + + @classmethod + def suitable(cls, url): + return (False if NRKTVIE.suitable(url) or NRKTVEpisodeIE.suitable(url) + else super(NRKTVSeasonIE, cls).suitable(url)) + + def _real_extract(self, url): + display_id = self._match_id(url) + + webpage = self._download_webpage(url, display_id) + + series = self._extract_series(webpage, display_id) + + season = next( + s for s in series['seasons'] + if int(display_id) == s.get('seasonNumber')) + + title = try_get(season, lambda x: x['titles']['title'], compat_str) + return self.playlist_result( + self._extract_episodes(season), display_id, title) + + +class NRKTVSeriesIE(NRKTVSerieBaseIE): + _VALID_URL = r'https?://(?:tv|radio)\.nrk(?:super)?\.no/serie/(?P<id>[^/]+)' + _ITEM_RE = r'(?:data-season=["\']|id=["\']season-)(?P<id>\d+)' + _TESTS = [{ + # new layout + 'url': 'https://tv.nrk.no/serie/backstage', + 'info_dict': { + 'id': 'backstage', + 'title': 'Backstage', + 'description': 'md5:c3ec3a35736fca0f9e1207b5511143d3', + }, + 'playlist_mincount': 60, + }, { + # old layout + 'url': 'https://tv.nrk.no/serie/groenn-glede', + 'info_dict': { + 'id': 'groenn-glede', + 'title': 'Grønn glede', + 'description': 'md5:7576e92ae7f65da6993cf90ee29e4608', + }, + 'playlist_mincount': 9, + }, { + 'url': 'http://tv.nrksuper.no/serie/labyrint', + 'info_dict': { + 'id': 'labyrint', + 'title': 'Labyrint', + 'description': 'md5:58afd450974c89e27d5a19212eee7115', + }, + 'playlist_mincount': 3, + }, { + 'url': 'https://tv.nrk.no/serie/broedrene-dal-og-spektralsteinene', + 'only_matching': True, + }, { + 'url': 'https://tv.nrk.no/serie/saving-the-human-race', + 'only_matching': True, + }, { + 'url': 'https://tv.nrk.no/serie/postmann-pat', + 'only_matching': True, + }] + + @classmethod + def suitable(cls, url): + return ( + False if any(ie.suitable(url) + for ie in (NRKTVIE, NRKTVEpisodeIE, NRKTVSeasonIE)) + else super(NRKTVSeriesIE, cls).suitable(url)) + + def _real_extract(self, url): + series_id = self._match_id(url) + + webpage = self._download_webpage(url, series_id) + + # New layout (e.g. https://tv.nrk.no/serie/backstage) + series = self._extract_series(webpage, series_id, fatal=False) + if series: + title = try_get(series, lambda x: x['titles']['title'], compat_str) + description = try_get( + series, lambda x: x['titles']['subtitle'], compat_str) + entries = [] + for season in series['seasons']: + entries.extend(self._extract_episodes(season)) + return self.playlist_result(entries, series_id, title, description) + + # Old layout (e.g. https://tv.nrk.no/serie/groenn-glede) + entries = [ + self.url_result( + 'https://tv.nrk.no/program/Episodes/{series}/{season}'.format( + series=series_id, season=season_id)) + for season_id in re.findall(self._ITEM_RE, webpage) + ] + + title = self._html_search_meta( + 'seriestitle', webpage, + 'title', default=None) or self._og_search_title( + webpage, fatal=False) + + description = self._html_search_meta( + 'series_description', webpage, + 'description', default=None) or self._og_search_description(webpage) + + return self.playlist_result(entries, series_id, title, description) + + class NRKTVDirekteIE(NRKTVIE): IE_DESC = 'NRK TV Direkte and NRK Radio Direkte' _VALID_URL = r'https?://(?:tv|radio)\.nrk\.no/direkte/(?P<id>[^/?#&]+)' @@ -438,64 +620,6 @@ class NRKTVEpisodesIE(NRKPlaylistBaseIE): r'<h1>([^<]+)</h1>', webpage, 'title', fatal=False) -class NRKTVSeriesIE(InfoExtractor): - _VALID_URL = r'https?://(?:tv|radio)\.nrk(?:super)?\.no/serie/(?P<id>[^/]+)' - _ITEM_RE = r'(?:data-season=["\']|id=["\']season-)(?P<id>\d+)' - _TESTS = [{ - 'url': 'https://tv.nrk.no/serie/groenn-glede', - 'info_dict': { - 'id': 'groenn-glede', - 'title': 'Grønn glede', - 'description': 'md5:7576e92ae7f65da6993cf90ee29e4608', - }, - 'playlist_mincount': 9, - }, { - 'url': 'http://tv.nrksuper.no/serie/labyrint', - 'info_dict': { - 'id': 'labyrint', - 'title': 'Labyrint', - 'description': 'md5:58afd450974c89e27d5a19212eee7115', - }, - 'playlist_mincount': 3, - }, { - 'url': 'https://tv.nrk.no/serie/broedrene-dal-og-spektralsteinene', - 'only_matching': True, - }, { - 'url': 'https://tv.nrk.no/serie/saving-the-human-race', - 'only_matching': True, - }, { - 'url': 'https://tv.nrk.no/serie/postmann-pat', - 'only_matching': True, - }] - - @classmethod - def suitable(cls, url): - return False if NRKTVIE.suitable(url) else super(NRKTVSeriesIE, cls).suitable(url) - - def _real_extract(self, url): - series_id = self._match_id(url) - - webpage = self._download_webpage(url, series_id) - - entries = [ - self.url_result( - 'https://tv.nrk.no/program/Episodes/{series}/{season}'.format( - series=series_id, season=season_id)) - for season_id in re.findall(self._ITEM_RE, webpage) - ] - - title = self._html_search_meta( - 'seriestitle', webpage, - 'title', default=None) or self._og_search_title( - webpage, fatal=False) - - description = self._html_search_meta( - 'series_description', webpage, - 'description', default=None) or self._og_search_description(webpage) - - return self.playlist_result(entries, series_id, title, description) - - class NRKSkoleIE(InfoExtractor): IE_DESC = 'NRK Skole' _VALID_URL = r'https?://(?:www\.)?nrk\.no/skole/?\?.*\bmediaId=(?P<id>\d+)' diff --git a/youtube_dl/extractor/pbs.py b/youtube_dl/extractor/pbs.py index 52ab2f1..80340f5 100644 --- a/youtube_dl/extractor/pbs.py +++ b/youtube_dl/extractor/pbs.py @@ -15,6 +15,7 @@ from ..utils import ( strip_jsonp, strip_or_none, unified_strdate, + url_or_none, US_RATINGS, ) @@ -557,6 +558,13 @@ class PBSIE(InfoExtractor): if redirect_url and redirect_url not in redirect_urls: redirects.append(redirect) redirect_urls.add(redirect_url) + encodings = info.get('encodings') + if isinstance(encodings, list): + for encoding in encodings: + encoding_url = url_or_none(encoding) + if encoding_url and encoding_url not in redirect_urls: + redirects.append({'url': encoding_url}) + redirect_urls.add(encoding_url) chapters = [] # Player pages may also serve different qualities diff --git a/youtube_dl/extractor/peertube.py b/youtube_dl/extractor/peertube.py index a481b31..e03c3d1 100644 --- a/youtube_dl/extractor/peertube.py +++ b/youtube_dl/extractor/peertube.py @@ -10,6 +10,7 @@ from ..utils import ( parse_resolution, try_get, unified_timestamp, + url_or_none, urljoin, ) @@ -116,12 +117,14 @@ class PeerTubeIE(InfoExtractor): videos\.tcit\.fr| peertube\.cpy\.re )''' + _UUID_RE = r'[\da-fA-F]{8}-[\da-fA-F]{4}-[\da-fA-F]{4}-[\da-fA-F]{4}-[\da-fA-F]{12}' _VALID_URL = r'''(?x) - https?:// - %s - /(?:videos/(?:watch|embed)|api/v\d/videos)/ - (?P<id>[^/?\#&]+) - ''' % _INSTANCES_RE + (?: + peertube:(?P<host>[^:]+):| + https?://(?P<host_2>%s)/(?:videos/(?:watch|embed)|api/v\d/videos)/ + ) + (?P<id>%s) + ''' % (_INSTANCES_RE, _UUID_RE) _TESTS = [{ 'url': 'https://peertube.moe/videos/watch/2790feb0-8120-4e63-9af3-c943c69f5e6c', 'md5': '80f24ff364cc9d333529506a263e7feb', @@ -157,21 +160,40 @@ class PeerTubeIE(InfoExtractor): }, { 'url': 'https://tube.openalgeria.org/api/v1/videos/c1875674-97d0-4c94-a058-3f7e64c962e8', 'only_matching': True, + }, { + 'url': 'peertube:video.blender.org:b37a5b9f-e6b5-415c-b700-04a5cd6ec205', + 'only_matching': True, }] @staticmethod - def _extract_urls(webpage): - return [ - mobj.group('url') - for mobj in re.finditer( - r'''(?x)<iframe[^>]+\bsrc=(["\'])(?P<url>(?:https?:)?//%s/videos/embed/[^/?\#&]+)\1''' - % PeerTubeIE._INSTANCES_RE, webpage)] + def _extract_peertube_url(webpage, source_url): + mobj = re.match( + r'https?://(?P<host>[^/]+)/videos/watch/(?P<id>%s)' + % PeerTubeIE._UUID_RE, source_url) + if mobj and any(p in webpage for p in ( + '<title>PeerTube<', + 'There will be other non JS-based clients to access PeerTube', + '>We are sorry but it seems that PeerTube is not compatible with your web browser.<')): + return 'peertube:%s:%s' % mobj.group('host', 'id') + + @staticmethod + def _extract_urls(webpage, source_url): + entries = re.findall( + r'''(?x)<iframe[^>]+\bsrc=["\'](?P<url>(?:https?:)?//%s/videos/embed/%s)''' + % (PeerTubeIE._INSTANCES_RE, PeerTubeIE._UUID_RE), webpage) + if not entries: + peertube_url = PeerTubeIE._extract_peertube_url(webpage, source_url) + if peertube_url: + entries = [peertube_url] + return entries def _real_extract(self, url): - video_id = self._match_id(url) + mobj = re.match(self._VALID_URL, url) + host = mobj.group('host') or mobj.group('host_2') + video_id = mobj.group('id') video = self._download_json( - urljoin(url, '/api/v1/videos/%s' % video_id), video_id) + 'https://%s/api/v1/videos/%s' % (host, video_id), video_id) title = video['name'] @@ -179,8 +201,8 @@ class PeerTubeIE(InfoExtractor): for file_ in video['files']: if not isinstance(file_, dict): continue - file_url = file_.get('fileUrl') - if not file_url or not isinstance(file_url, compat_str): + file_url = url_or_none(file_.get('fileUrl')) + if not file_url: continue file_size = int_or_none(file_.get('size')) format_id = try_get( diff --git a/youtube_dl/extractor/pluralsight.py b/youtube_dl/extractor/pluralsight.py index a207ca9..1257841 100644 --- a/youtube_dl/extractor/pluralsight.py +++ b/youtube_dl/extractor/pluralsight.py @@ -27,6 +27,60 @@ from ..utils import ( class PluralsightBaseIE(InfoExtractor): _API_BASE = 'https://app.pluralsight.com' + _GRAPHQL_EP = '%s/player/api/graphql' % _API_BASE + _GRAPHQL_HEADERS = { + 'Content-Type': 'application/json;charset=UTF-8', + } + _GRAPHQL_COURSE_TMPL = ''' +query BootstrapPlayer { + rpc { + bootstrapPlayer { + profile { + firstName + lastName + email + username + userHandle + authed + isAuthed + plan + } + course(courseId: "%s") { + name + title + courseHasCaptions + translationLanguages { + code + name + } + supportsWideScreenVideoFormats + timestamp + modules { + name + title + duration + formattedDuration + author + authorized + clips { + authorized + clipId + duration + formattedDuration + id + index + moduleIndex + moduleTitle + name + title + watched + } + } + } + } + } +}''' + def _download_course(self, course_id, url, display_id): try: return self._download_course_rpc(course_id, url, display_id) @@ -39,20 +93,14 @@ class PluralsightBaseIE(InfoExtractor): def _download_course_rpc(self, course_id, url, display_id): response = self._download_json( - '%s/player/functions/rpc' % self._API_BASE, display_id, - 'Downloading course JSON', - data=json.dumps({ - 'fn': 'bootstrapPlayer', - 'payload': { - 'courseId': course_id, - }, - }).encode('utf-8'), - headers={ - 'Content-Type': 'application/json;charset=utf-8', - 'Referer': url, - }) - - course = try_get(response, lambda x: x['payload']['course'], dict) + self._GRAPHQL_EP, display_id, data=json.dumps({ + 'query': self._GRAPHQL_COURSE_TMPL % course_id, + 'variables': {} + }).encode('utf-8'), headers=self._GRAPHQL_HEADERS) + + course = try_get( + response, lambda x: x['data']['rpc']['bootstrapPlayer']['course'], + dict) if course: return course @@ -90,6 +138,28 @@ class PluralsightIE(PluralsightBaseIE): 'only_matching': True, }] + GRAPHQL_VIEWCLIP_TMPL = ''' +query viewClip { + viewClip(input: { + author: "%(author)s", + clipIndex: %(clipIndex)d, + courseName: "%(courseName)s", + includeCaptions: %(includeCaptions)s, + locale: "%(locale)s", + mediaType: "%(mediaType)s", + moduleName: "%(moduleName)s", + quality: "%(quality)s" + }) { + urls { + url + cdn + rank + source + }, + status + } +}''' + def _real_initialize(self): self._login() @@ -277,7 +347,7 @@ class PluralsightIE(PluralsightBaseIE): f = QUALITIES[quality].copy() clip_post = { 'author': author, - 'includeCaptions': False, + 'includeCaptions': 'false', 'clipIndex': int(clip_idx), 'courseName': course_name, 'locale': 'en', @@ -286,11 +356,23 @@ class PluralsightIE(PluralsightBaseIE): 'quality': '%dx%d' % (f['width'], f['height']), } format_id = '%s-%s' % (ext, quality) - viewclip = self._download_json( - '%s/video/clips/viewclip' % self._API_BASE, display_id, - 'Downloading %s viewclip JSON' % format_id, fatal=False, - data=json.dumps(clip_post).encode('utf-8'), - headers={'Content-Type': 'application/json;charset=utf-8'}) + + try: + viewclip = self._download_json( + self._GRAPHQL_EP, display_id, + 'Downloading %s viewclip graphql' % format_id, + data=json.dumps({ + 'query': self.GRAPHQL_VIEWCLIP_TMPL % clip_post, + 'variables': {} + }).encode('utf-8'), + headers=self._GRAPHQL_HEADERS)['data']['viewClip'] + except ExtractorError: + # Still works but most likely will go soon + viewclip = self._download_json( + '%s/video/clips/viewclip' % self._API_BASE, display_id, + 'Downloading %s viewclip JSON' % format_id, fatal=False, + data=json.dumps(clip_post).encode('utf-8'), + headers={'Content-Type': 'application/json;charset=utf-8'}) # Pluralsight tracks multiple sequential calls to ViewClip API and start # to return 429 HTTP errors after some time (see diff --git a/youtube_dl/extractor/porncom.py b/youtube_dl/extractor/porncom.py index 60ade06..5726cab 100644 --- a/youtube_dl/extractor/porncom.py +++ b/youtube_dl/extractor/porncom.py @@ -43,7 +43,8 @@ class PornComIE(InfoExtractor): config = self._parse_json( self._search_regex( - r'=\s*({.+?})\s*,\s*[\da-zA-Z_]+\s*=', + (r'=\s*({.+?})\s*;\s*v1ar\b', + r'=\s*({.+?})\s*,\s*[\da-zA-Z_]+\s*='), webpage, 'config', default='{}'), display_id, transform_source=js_to_json, fatal=False) @@ -69,7 +70,7 @@ class PornComIE(InfoExtractor): 'height': int(height), 'filesize_approx': parse_filesize(filesize), } for format_url, height, filesize in re.findall( - r'<a[^>]+href="(/download/[^"]+)">MPEG4 (\d+)p<span[^>]*>(\d+\s+[a-zA-Z]+)<', + r'<a[^>]+href="(/download/[^"]+)">[^<]*?(\d+)p<span[^>]*>(\d+\s*[a-zA-Z]+)<', webpage)] thumbnail = None duration = None diff --git a/youtube_dl/extractor/pornhub.py b/youtube_dl/extractor/pornhub.py index 23e24d2..6782848 100644 --- a/youtube_dl/extractor/pornhub.py +++ b/youtube_dl/extractor/pornhub.py @@ -4,28 +4,22 @@ from __future__ import unicode_literals import functools import itertools import operator -# import os import re from .common import InfoExtractor from ..compat import ( compat_HTTPError, - # compat_urllib_parse_unquote, - # compat_urllib_parse_unquote_plus, - # compat_urllib_parse_urlparse, + compat_str, ) from ..utils import ( ExtractorError, int_or_none, js_to_json, orderedSet, - # sanitized_Request, remove_quotes, str_to_int, + url_or_none, ) -# from ..aes import ( -# aes_decrypt_text -# ) class PornHubIE(InfoExtractor): @@ -62,7 +56,7 @@ class PornHubIE(InfoExtractor): 'id': '1331683002', 'ext': 'mp4', 'title': '重庆婷婷女王足交', - 'uploader': 'cj397186295', + 'uploader': 'Unknown', 'duration': 1753, 'view_count': int, 'like_count': int, @@ -75,6 +69,31 @@ class PornHubIE(InfoExtractor): 'params': { 'skip_download': True, }, + }, { + # subtitles + 'url': 'https://www.pornhub.com/view_video.php?viewkey=ph5af5fef7c2aa7', + 'info_dict': { + 'id': 'ph5af5fef7c2aa7', + 'ext': 'mp4', + 'title': 'BFFS - Cute Teen Girls Share Cock On the Floor', + 'uploader': 'BFFs', + 'duration': 622, + 'view_count': int, + 'like_count': int, + 'dislike_count': int, + 'comment_count': int, + 'age_limit': 18, + 'tags': list, + 'categories': list, + 'subtitles': { + 'en': [{ + "ext": 'srt' + }] + }, + }, + 'params': { + 'skip_download': True, + }, }, { 'url': 'http://www.pornhub.com/view_video.php?viewkey=ph557bbb6676d2d', 'only_matching': True, @@ -121,7 +140,7 @@ class PornHubIE(InfoExtractor): self._set_cookie('pornhub.com', 'platform', platform) return self._download_webpage( 'http://www.pornhub.com/view_video.php?viewkey=%s' % video_id, - video_id) + video_id, 'Downloading %s webpage' % platform) webpage = dl_webpage('pc') @@ -134,60 +153,108 @@ class PornHubIE(InfoExtractor): 'PornHub said: %s' % error_msg, expected=True, video_id=video_id) - tv_webpage = dl_webpage('tv') - - assignments = self._search_regex( - r'(var.+?mediastring.+?)</script>', tv_webpage, - 'encoded url').split(';') - - js_vars = {} - - def parse_js_value(inp): - inp = re.sub(r'/\*(?:(?!\*/).)*?\*/', '', inp) - if '+' in inp: - inps = inp.split('+') - return functools.reduce( - operator.concat, map(parse_js_value, inps)) - inp = inp.strip() - if inp in js_vars: - return js_vars[inp] - return remove_quotes(inp) - - for assn in assignments: - assn = assn.strip() - if not assn: - continue - assn = re.sub(r'var\s+', '', assn) - vname, value = assn.split('=', 1) - js_vars[vname] = parse_js_value(value) - - video_url = js_vars['mediastring'] - - title = self._search_regex( - r'<h1>([^>]+)</h1>', tv_webpage, 'title', default=None) - # video_title from flashvars contains whitespace instead of non-ASCII (see # http://www.pornhub.com/view_video.php?viewkey=1331683002), not relying # on that anymore. - title = title or self._html_search_meta( + title = self._html_search_meta( 'twitter:title', webpage, default=None) or self._search_regex( (r'<h1[^>]+class=["\']title["\'][^>]*>(?P<title>[^<]+)', r'<div[^>]+data-video-title=(["\'])(?P<title>.+?)\1', r'shareTitle\s*=\s*(["\'])(?P<title>.+?)\1'), webpage, 'title', group='title') + video_urls = [] + video_urls_set = set() + subtitles = {} + flashvars = self._parse_json( self._search_regex( r'var\s+flashvars_\d+\s*=\s*({.+?});', webpage, 'flashvars', default='{}'), video_id) if flashvars: + subtitle_url = url_or_none(flashvars.get('closedCaptionsFile')) + if subtitle_url: + subtitles.setdefault('en', []).append({ + 'url': subtitle_url, + 'ext': 'srt', + }) thumbnail = flashvars.get('image_url') duration = int_or_none(flashvars.get('video_duration')) + media_definitions = flashvars.get('mediaDefinitions') + if isinstance(media_definitions, list): + for definition in media_definitions: + if not isinstance(definition, dict): + continue + video_url = definition.get('videoUrl') + if not video_url or not isinstance(video_url, compat_str): + continue + if video_url in video_urls_set: + continue + video_urls_set.add(video_url) + video_urls.append( + (video_url, int_or_none(definition.get('quality')))) else: - title, thumbnail, duration = [None] * 3 + thumbnail, duration = [None] * 2 + + if not video_urls: + tv_webpage = dl_webpage('tv') + + assignments = self._search_regex( + r'(var.+?mediastring.+?)</script>', tv_webpage, + 'encoded url').split(';') + + js_vars = {} + + def parse_js_value(inp): + inp = re.sub(r'/\*(?:(?!\*/).)*?\*/', '', inp) + if '+' in inp: + inps = inp.split('+') + return functools.reduce( + operator.concat, map(parse_js_value, inps)) + inp = inp.strip() + if inp in js_vars: + return js_vars[inp] + return remove_quotes(inp) + + for assn in assignments: + assn = assn.strip() + if not assn: + continue + assn = re.sub(r'var\s+', '', assn) + vname, value = assn.split('=', 1) + js_vars[vname] = parse_js_value(value) + + video_url = js_vars['mediastring'] + if video_url not in video_urls_set: + video_urls.append((video_url, None)) + video_urls_set.add(video_url) + + for mobj in re.finditer( + r'<a[^>]+\bclass=["\']downloadBtn\b[^>]+\bhref=(["\'])(?P<url>(?:(?!\1).)+)\1', + webpage): + video_url = mobj.group('url') + if video_url not in video_urls_set: + video_urls.append((video_url, None)) + video_urls_set.add(video_url) + + formats = [] + for video_url, height in video_urls: + tbr = None + mobj = re.search(r'(?P<height>\d+)[pP]?_(?P<tbr>\d+)[kK]', video_url) + if mobj: + if not height: + height = int(mobj.group('height')) + tbr = int(mobj.group('tbr')) + formats.append({ + 'url': video_url, + 'format_id': '%dp' % height if height else None, + 'height': height, + 'tbr': tbr, + }) + self._sort_formats(formats) video_uploader = self._html_search_regex( - r'(?s)From: .+?<(?:a\b[^>]+\bhref=["\']/(?:user|channel)s/|span\b[^>]+\bclass=["\']username)[^>]+>(.+?)<', + r'(?s)From: .+?<(?:a\b[^>]+\bhref=["\']/(?:(?:user|channel)s|model|pornstar)/|span\b[^>]+\bclass=["\']username)[^>]+>(.+?)<', webpage, 'uploader', fatal=False) view_count = self._extract_count( @@ -210,7 +277,6 @@ class PornHubIE(InfoExtractor): return { 'id': video_id, - 'url': video_url, 'uploader': video_uploader, 'title': title, 'thumbnail': thumbnail, @@ -219,10 +285,11 @@ class PornHubIE(InfoExtractor): 'like_count': like_count, 'dislike_count': dislike_count, 'comment_count': comment_count, - # 'formats': formats, + 'formats': formats, 'age_limit': 18, 'tags': tags, 'categories': categories, + 'subtitles': subtitles, } @@ -279,7 +346,7 @@ class PornHubPlaylistIE(PornHubPlaylistBaseIE): class PornHubUserVideosIE(PornHubPlaylistBaseIE): - _VALID_URL = r'https?://(?:[^/]+\.)?pornhub\.com/(?:user|channel)s/(?P<id>[^/]+)/videos' + _VALID_URL = r'https?://(?:[^/]+\.)?pornhub\.com/(?:(?:user|channel)s|model|pornstar)/(?P<id>[^/]+)/videos' _TESTS = [{ 'url': 'http://www.pornhub.com/users/zoe_ph/videos/public', 'info_dict': { @@ -311,6 +378,12 @@ class PornHubUserVideosIE(PornHubPlaylistBaseIE): }, { 'url': 'http://www.pornhub.com/users/zoe_ph/videos/public', 'only_matching': True, + }, { + 'url': 'https://www.pornhub.com/model/jayndrea/videos/upload', + 'only_matching': True, + }, { + 'url': 'https://www.pornhub.com/pornstar/jenny-blighe/videos/upload', + 'only_matching': True, }] def _real_extract(self, url): diff --git a/youtube_dl/extractor/puhutv.py b/youtube_dl/extractor/puhutv.py new file mode 100644 index 0000000..5465e8a --- /dev/null +++ b/youtube_dl/extractor/puhutv.py @@ -0,0 +1,247 @@ +# coding: utf-8 +from __future__ import unicode_literals + +from .common import InfoExtractor +from ..compat import ( + compat_HTTPError, + compat_str, +) +from ..utils import ( + ExtractorError, + int_or_none, + float_or_none, + parse_resolution, + str_or_none, + try_get, + unified_timestamp, + url_or_none, + urljoin, +) + + +class PuhuTVIE(InfoExtractor): + _VALID_URL = r'https?://(?:www\.)?puhutv\.com/(?P<id>[^/?#&]+)-izle' + IE_NAME = 'puhutv' + _TESTS = [{ + # film + 'url': 'https://puhutv.com/sut-kardesler-izle', + 'md5': 'fbd8f2d8e7681f8bcd51b592475a6ae7', + 'info_dict': { + 'id': '5085', + 'display_id': 'sut-kardesler', + 'ext': 'mp4', + 'title': 'Süt Kardeşler', + 'description': 'md5:405fd024df916ca16731114eb18e511a', + 'thumbnail': r're:^https?://.*\.jpg$', + 'duration': 4832.44, + 'creator': 'Arzu Film', + 'timestamp': 1469778212, + 'upload_date': '20160729', + 'release_year': 1976, + 'view_count': int, + 'tags': ['Aile', 'Komedi', 'Klasikler'], + }, + }, { + # episode, geo restricted, bypassable with --geo-verification-proxy + 'url': 'https://puhutv.com/jet-sosyete-1-bolum-izle', + 'only_matching': True, + }, { + # 4k, with subtitles + 'url': 'https://puhutv.com/dip-1-bolum-izle', + 'only_matching': True, + }] + _SUBTITLE_LANGS = { + 'English': 'en', + 'Deutsch': 'de', + 'عربى': 'ar' + } + + def _real_extract(self, url): + display_id = self._match_id(url) + + info = self._download_json( + urljoin(url, '/api/slug/%s-izle' % display_id), + display_id)['data'] + + video_id = compat_str(info['id']) + title = info.get('name') or info['title']['name'] + if info.get('display_name'): + title = '%s %s' % (title, info.get('display_name')) + + try: + videos = self._download_json( + 'https://puhutv.com/api/assets/%s/videos' % video_id, + display_id, 'Downloading video JSON', + headers=self.geo_verification_headers()) + except ExtractorError as e: + if isinstance(e.cause, compat_HTTPError) and e.cause.code == 403: + self.raise_geo_restricted() + raise + + formats = [] + for video in videos['data']['videos']: + media_url = url_or_none(video.get('url')) + if not media_url: + continue + playlist = video.get('is_playlist') + if video.get('stream_type') == 'hls' and playlist is True: + formats.extend(self._extract_m3u8_formats( + media_url, video_id, 'mp4', entry_protocol='m3u8_native', + m3u8_id='hls', fatal=False)) + continue + quality = int_or_none(video.get('quality')) + f = { + 'url': media_url, + 'ext': 'mp4', + 'height': quality + } + video_format = video.get('video_format') + if video_format == 'hls' and playlist is False: + format_id = 'hls' + f['protocol'] = 'm3u8_native' + elif video_format == 'mp4': + format_id = 'http' + + else: + continue + if quality: + format_id += '-%sp' % quality + f['format_id'] = format_id + formats.append(f) + self._sort_formats(formats) + + description = try_get( + info, lambda x: x['title']['description'], + compat_str) or info.get('description') + timestamp = unified_timestamp(info.get('created_at')) + creator = try_get( + info, lambda x: x['title']['producer']['name'], compat_str) + + duration = float_or_none( + try_get(info, lambda x: x['content']['duration_in_ms'], int), + scale=1000) + view_count = try_get(info, lambda x: x['content']['watch_count'], int) + + images = try_get( + info, lambda x: x['content']['images']['wide'], dict) or {} + thumbnails = [] + for image_id, image_url in images.items(): + if not isinstance(image_url, compat_str): + continue + if not image_url.startswith(('http', '//')): + image_url = 'https://%s' % image_url + t = parse_resolution(image_id) + t.update({ + 'id': image_id, + 'url': image_url + }) + thumbnails.append(t) + + release_year = try_get(info, lambda x: x['title']['released_at'], int) + + season_number = int_or_none(info.get('season_number')) + season_id = str_or_none(info.get('season_id')) + episode_number = int_or_none(info.get('episode_number')) + + tags = [] + for genre in try_get(info, lambda x: x['title']['genres'], list) or []: + if not isinstance(genre, dict): + continue + genre_name = genre.get('name') + if genre_name and isinstance(genre_name, compat_str): + tags.append(genre_name) + + subtitles = {} + for subtitle in try_get( + info, lambda x: x['content']['subtitles'], list) or []: + if not isinstance(subtitle, dict): + continue + lang = subtitle.get('language') + sub_url = url_or_none(subtitle.get('url')) + if not lang or not isinstance(lang, compat_str) or not sub_url: + continue + subtitles[self._SUBTITLE_LANGS.get(lang, lang)] = [{ + 'url': sub_url + }] + + return { + 'id': video_id, + 'display_id': display_id, + 'title': title, + 'description': description, + 'season_id': season_id, + 'season_number': season_number, + 'episode_number': episode_number, + 'release_year': release_year, + 'timestamp': timestamp, + 'creator': creator, + 'view_count': view_count, + 'duration': duration, + 'tags': tags, + 'subtitles': subtitles, + 'thumbnails': thumbnails, + 'formats': formats + } + + +class PuhuTVSerieIE(InfoExtractor): + _VALID_URL = r'https?://(?:www\.)?puhutv\.com/(?P<id>[^/?#&]+)-detay' + IE_NAME = 'puhutv:serie' + _TESTS = [{ + 'url': 'https://puhutv.com/deniz-yildizi-detay', + 'info_dict': { + 'title': 'Deniz Yıldızı', + 'id': 'deniz-yildizi', + }, + 'playlist_mincount': 205, + }, { + # a film detail page which is using same url with serie page + 'url': 'https://puhutv.com/kaybedenler-kulubu-detay', + 'only_matching': True, + }] + + def _extract_entries(self, seasons): + for season in seasons: + season_id = season.get('id') + if not season_id: + continue + page = 1 + has_more = True + while has_more is True: + season = self._download_json( + 'https://galadriel.puhutv.com/seasons/%s' % season_id, + season_id, 'Downloading page %s' % page, query={ + 'page': page, + 'per': 40, + }) + episodes = season.get('episodes') + if isinstance(episodes, list): + for ep in episodes: + slug_path = str_or_none(ep.get('slugPath')) + if not slug_path: + continue + video_id = str_or_none(int_or_none(ep.get('id'))) + yield self.url_result( + 'https://puhutv.com/%s' % slug_path, + ie=PuhuTVIE.ie_key(), video_id=video_id, + video_title=ep.get('name') or ep.get('eventLabel')) + page += 1 + has_more = season.get('hasMore') + + def _real_extract(self, url): + playlist_id = self._match_id(url) + + info = self._download_json( + urljoin(url, '/api/slug/%s-detay' % playlist_id), + playlist_id)['data'] + + seasons = info.get('seasons') + if seasons: + return self.playlist_result( + self._extract_entries(seasons), playlist_id, info.get('name')) + + # For films, these are using same url with series + video_id = info.get('slug') or info['assets'][0]['slug'] + return self.url_result( + 'https://puhutv.com/%s-izle' % video_id, + PuhuTVIE.ie_key(), video_id) diff --git a/youtube_dl/extractor/radiojavan.py b/youtube_dl/extractor/radiojavan.py index a53ad97..3f74f0c 100644 --- a/youtube_dl/extractor/radiojavan.py +++ b/youtube_dl/extractor/radiojavan.py @@ -4,8 +4,11 @@ import re from .common import InfoExtractor from ..utils import ( - unified_strdate, + parse_resolution, str_to_int, + unified_strdate, + urlencode_postdata, + urljoin, ) @@ -29,13 +32,26 @@ class RadioJavanIE(InfoExtractor): def _real_extract(self, url): video_id = self._match_id(url) + download_host = self._download_json( + 'https://www.radiojavan.com/videos/video_host', video_id, + data=urlencode_postdata({'id': video_id}), + headers={ + 'Content-Type': 'application/x-www-form-urlencoded', + 'Referer': url, + }).get('host', 'https://host1.rjmusicmedia.com') + webpage = self._download_webpage(url, video_id) - formats = [{ - 'url': 'https://media.rdjavan.com/media/music_video/%s' % video_path, - 'format_id': '%sp' % height, - 'height': int(height), - } for height, video_path in re.findall(r"RJ\.video(\d+)p\s*=\s*'/?([^']+)'", webpage)] + formats = [] + for format_id, _, video_path in re.findall( + r'RJ\.video(?P<format_id>\d+[pPkK])\s*=\s*(["\'])(?P<url>(?:(?!\2).)+)\2', + webpage): + f = parse_resolution(format_id) + f.update({ + 'url': urljoin(download_host, video_path), + 'format_id': format_id, + }) + formats.append(f) self._sort_formats(formats) title = self._og_search_title(webpage) diff --git a/youtube_dl/extractor/rai.py b/youtube_dl/extractor/rai.py index d223110..f916b26 100644 --- a/youtube_dl/extractor/rai.py +++ b/youtube_dl/extractor/rai.py @@ -32,6 +32,9 @@ class RaiBaseIE(InfoExtractor): _GEO_BYPASS = False def _extract_relinker_info(self, relinker_url, video_id): + if not re.match(r'https?://', relinker_url): + return {'formats': [{'url': relinker_url}]} + formats = [] geoprotection = None is_live = None @@ -369,6 +372,10 @@ class RaiIE(RaiBaseIE): 'params': { 'skip_download': True, }, + }, { + # Direct MMS URL + 'url': 'http://www.rai.it/dl/RaiTV/programmi/media/ContentItem-b63a4089-ac28-48cf-bca5-9f5b5bc46df5.html', + 'only_matching': True, }] def _extract_from_content_id(self, content_id, url): diff --git a/youtube_dl/extractor/raywenderlich.py b/youtube_dl/extractor/raywenderlich.py index 640c3ee..5411ece 100644 --- a/youtube_dl/extractor/raywenderlich.py +++ b/youtube_dl/extractor/raywenderlich.py @@ -4,24 +4,37 @@ import re from .common import InfoExtractor from .vimeo import VimeoIE +from ..compat import compat_str from ..utils import ( - extract_attributes, ExtractorError, - smuggle_url, - unsmuggle_url, + int_or_none, + merge_dicts, + try_get, + unescapeHTML, + unified_timestamp, urljoin, ) class RayWenderlichIE(InfoExtractor): - _VALID_URL = r'https?://videos\.raywenderlich\.com/courses/(?P<course_id>[^/]+)/lessons/(?P<id>\d+)' + _VALID_URL = r'''(?x) + https?:// + (?: + videos\.raywenderlich\.com/courses| + (?:www\.)?raywenderlich\.com + )/ + (?P<course_id>[^/]+)/lessons/(?P<id>\d+) + ''' _TESTS = [{ - 'url': 'https://videos.raywenderlich.com/courses/105-testing-in-ios/lessons/1', + 'url': 'https://www.raywenderlich.com/3530-testing-in-ios/lessons/1', 'info_dict': { 'id': '248377018', 'ext': 'mp4', - 'title': 'Testing In iOS Episode 1: Introduction', + 'title': 'Introduction', + 'description': 'md5:804d031b3efa9fcb49777d512d74f722', + 'timestamp': 1513906277, + 'upload_date': '20171222', 'duration': 133, 'uploader': 'Ray Wenderlich', 'uploader_id': 'user3304672', @@ -34,69 +47,133 @@ class RayWenderlichIE(InfoExtractor): 'expected_warnings': ['HTTP Error 403: Forbidden'], }, { 'url': 'https://videos.raywenderlich.com/courses/105-testing-in-ios/lessons/1', + 'only_matching': True, + }] + + @staticmethod + def _extract_video_id(data, lesson_id): + if not data: + return + groups = try_get(data, lambda x: x['groups'], list) or [] + if not groups: + return + for group in groups: + if not isinstance(group, dict): + continue + contents = try_get(data, lambda x: x['contents'], list) or [] + for content in contents: + if not isinstance(content, dict): + continue + ordinal = int_or_none(content.get('ordinal')) + if ordinal != lesson_id: + continue + video_id = content.get('identifier') + if video_id: + return compat_str(video_id) + + def _real_extract(self, url): + mobj = re.match(self._VALID_URL, url) + course_id, lesson_id = mobj.group('course_id', 'id') + display_id = '%s/%s' % (course_id, lesson_id) + + webpage = self._download_webpage(url, display_id) + + thumbnail = self._og_search_thumbnail( + webpage, default=None) or self._html_search_meta( + 'twitter:image', webpage, 'thumbnail') + + if '>Subscribe to unlock' in webpage: + raise ExtractorError( + 'This content is only available for subscribers', + expected=True) + + info = { + 'thumbnail': thumbnail, + } + + vimeo_id = self._search_regex( + r'data-vimeo-id=["\'](\d+)', webpage, 'vimeo id', default=None) + + if not vimeo_id: + data = self._parse_json( + self._search_regex( + r'data-collection=(["\'])(?P<data>{.+?})\1', webpage, + 'data collection', default='{}', group='data'), + display_id, transform_source=unescapeHTML, fatal=False) + video_id = self._extract_video_id( + data, lesson_id) or self._search_regex( + r'/videos/(\d+)/', thumbnail, 'video id') + headers = { + 'Referer': url, + 'X-Requested-With': 'XMLHttpRequest', + } + csrf_token = self._html_search_meta( + 'csrf-token', webpage, 'csrf token', default=None) + if csrf_token: + headers['X-CSRF-Token'] = csrf_token + video = self._download_json( + 'https://videos.raywenderlich.com/api/v1/videos/%s.json' + % video_id, display_id, headers=headers)['video'] + vimeo_id = video['clips'][0]['provider_id'] + info.update({ + '_type': 'url_transparent', + 'title': video.get('name'), + 'description': video.get('description') or video.get( + 'meta_description'), + 'duration': int_or_none(video.get('duration')), + 'timestamp': unified_timestamp(video.get('created_at')), + }) + + return merge_dicts(info, self.url_result( + VimeoIE._smuggle_referrer( + 'https://player.vimeo.com/video/%s' % vimeo_id, url), + ie=VimeoIE.ie_key(), video_id=vimeo_id)) + + +class RayWenderlichCourseIE(InfoExtractor): + _VALID_URL = r'''(?x) + https?:// + (?: + videos\.raywenderlich\.com/courses| + (?:www\.)?raywenderlich\.com + )/ + (?P<id>[^/]+) + ''' + + _TEST = { + 'url': 'https://www.raywenderlich.com/3530-testing-in-ios', 'info_dict': { 'title': 'Testing in iOS', - 'id': '105-testing-in-ios', + 'id': '3530-testing-in-ios', }, 'params': { 'noplaylist': False, }, 'playlist_count': 29, - }] + } + + @classmethod + def suitable(cls, url): + return False if RayWenderlichIE.suitable(url) else super( + RayWenderlichCourseIE, cls).suitable(url) def _real_extract(self, url): - url, smuggled_data = unsmuggle_url(url, {}) + course_id = self._match_id(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) + webpage = self._download_webpage(url, course_id) entries = [] - for lesson_id in sorted(lesson_ids): + lesson_urls = set() + for lesson_url in re.findall( + r'<a[^>]+\bhref=["\'](/%s/lessons/\d+)' % course_id, webpage): + if lesson_url in lesson_urls: + continue + lesson_urls.add(lesson_url) entries.append(self.url_result( - smuggle_url(urljoin(url, lesson_id), {'force_video': True}), - ie=RayWenderlichIE.ie_key())) + urljoin(url, lesson_url), ie=RayWenderlichIE.ie_key())) - title = self._search_regex( - r'class=["\']course-title[^>]+>([^<]+)', webpage, 'course title', - default=None) + title = self._og_search_title( + webpage, default=None) or self._html_search_meta( + 'twitter:title', webpage, '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 2436036..7e8d58f 100644 --- a/youtube_dl/extractor/redbulltv.py +++ b/youtube_dl/extractor/redbulltv.py @@ -10,7 +10,7 @@ from ..utils import ( class RedBullTVIE(InfoExtractor): - _VALID_URL = r'https?://(?:www\.)?redbull\.tv/video/(?P<id>AP-\w+)' + _VALID_URL = r'https?://(?:www\.)?redbull(?:\.tv|\.com/(?:[^/]+/)?tv)/video/(?P<id>AP-\w+)' _TESTS = [{ # film 'url': 'https://www.redbull.tv/video/AP-1Q6XCDTAN1W11', @@ -35,6 +35,9 @@ class RedBullTVIE(InfoExtractor): 'params': { 'skip_download': True, }, + }, { + 'url': 'https://www.redbull.com/int-en/tv/video/AP-1UWHCAR9S1W11/rob-meets-sam-gaze?playlist=playlists::3f81040a-2f31-4832-8e2e-545b1d39d173', + 'only_matching': True, }] def _real_extract(self, url): diff --git a/youtube_dl/extractor/redtube.py b/youtube_dl/extractor/redtube.py index 879bcf8..10311a8 100644 --- a/youtube_dl/extractor/redtube.py +++ b/youtube_dl/extractor/redtube.py @@ -3,12 +3,12 @@ from __future__ import unicode_literals import re from .common import InfoExtractor -from ..compat import compat_str from ..utils import ( ExtractorError, int_or_none, str_to_int, unified_strdate, + url_or_none, ) @@ -71,8 +71,8 @@ class RedTubeIE(InfoExtractor): video_id, fatal=False) if medias and isinstance(medias, list): for media in medias: - format_url = media.get('videoUrl') - if not format_url or not isinstance(format_url, compat_str): + format_url = url_or_none(media.get('videoUrl')) + if not format_url: continue format_id = media.get('quality') formats.append({ diff --git a/youtube_dl/extractor/rentv.py b/youtube_dl/extractor/rentv.py index 8bcf871..7c8909d 100644 --- a/youtube_dl/extractor/rentv.py +++ b/youtube_dl/extractor/rentv.py @@ -6,6 +6,7 @@ from ..compat import compat_str from ..utils import ( determine_ext, int_or_none, + url_or_none, ) @@ -37,8 +38,8 @@ class RENTVIE(InfoExtractor): title = config['title'] formats = [] for video in config['src']: - src = video.get('src') - if not src or not isinstance(src, compat_str): + src = url_or_none(video.get('src')) + if not src: continue ext = determine_ext(src) if ext == 'm3u8': diff --git a/youtube_dl/extractor/rtbf.py b/youtube_dl/extractor/rtbf.py index acff976..3b0f308 100644 --- a/youtube_dl/extractor/rtbf.py +++ b/youtube_dl/extractor/rtbf.py @@ -99,7 +99,7 @@ class RTBFIE(InfoExtractor): http_url = data.get('url') if formats and http_url and re.search(height_re, http_url): http_url = fix_url(http_url) - for m3u8_f in formats.copy(): + for m3u8_f in formats[:]: height = m3u8_f.get('height') if not height: continue diff --git a/youtube_dl/extractor/rutube.py b/youtube_dl/extractor/rutube.py index 89d89b6..261bcbb 100644 --- a/youtube_dl/extractor/rutube.py +++ b/youtube_dl/extractor/rutube.py @@ -16,6 +16,7 @@ from ..utils import ( int_or_none, try_get, unified_timestamp, + url_or_none, ) @@ -176,8 +177,8 @@ class RutubePlaylistBaseIE(RutubeBaseIE): break for result in results: - video_url = result.get('video_url') - if not video_url or not isinstance(video_url, compat_str): + video_url = url_or_none(result.get('video_url')) + if not video_url: continue entry = self._extract_video(result, require_title=False) entry.update({ diff --git a/youtube_dl/extractor/seznamzpravy.py b/youtube_dl/extractor/seznamzpravy.py index 6d4e3b7..7a1c7e3 100644 --- a/youtube_dl/extractor/seznamzpravy.py +++ b/youtube_dl/extractor/seznamzpravy.py @@ -164,6 +164,6 @@ class SeznamZpravyArticleIE(InfoExtractor): description = info.get('description') or self._og_search_description(webpage) return self.playlist_result([ - self.url_result(url, ie=SeznamZpravyIE.ie_key()) - for url in SeznamZpravyIE._extract_urls(webpage)], + self.url_result(entry_url, ie=SeznamZpravyIE.ie_key()) + for entry_url in SeznamZpravyIE._extract_urls(webpage)], article_id, title, description) diff --git a/youtube_dl/extractor/sixplay.py b/youtube_dl/extractor/sixplay.py index 1f8469a..207ab44 100644 --- a/youtube_dl/extractor/sixplay.py +++ b/youtube_dl/extractor/sixplay.py @@ -19,7 +19,7 @@ from ..utils import ( class SixPlayIE(InfoExtractor): IE_NAME = '6play' - _VALID_URL = r'(?:6play:|https?://(?:www\.)?(?P<domain>6play\.fr|rtlplay.be)/.+?-c_)(?P<id>[0-9]+)' + _VALID_URL = r'(?:6play:|https?://(?:www\.)?(?P<domain>6play\.fr|rtlplay\.be|play\.rtl\.hr)/.+?-c_)(?P<id>[0-9]+)' _TESTS = [{ 'url': 'https://www.6play.fr/minute-par-minute-p_9533/le-but-qui-a-marque-lhistoire-du-football-francais-c_12041051', 'md5': '31fcd112637baa0c2ab92c4fcd8baf27', @@ -32,6 +32,9 @@ class SixPlayIE(InfoExtractor): }, { 'url': 'https://www.rtlplay.be/rtl-info-13h-p_8551/les-titres-du-rtlinfo-13h-c_12045869', 'only_matching': True, + }, { + 'url': 'https://play.rtl.hr/pj-masks-p_9455/epizoda-34-sezona-1-catboyevo-cudo-na-dva-kotaca-c_11984989', + 'only_matching': True, }] def _real_extract(self, url): @@ -39,6 +42,7 @@ class SixPlayIE(InfoExtractor): service, consumer_name = { '6play.fr': ('6play', 'm6web'), 'rtlplay.be': ('rtlbe_rtl_play', 'rtlbe'), + 'play.rtl.hr': ('rtlhr_rtl_play', 'rtlhr'), }.get(domain, ('6play', 'm6web')) data = self._download_json( @@ -71,7 +75,9 @@ class SixPlayIE(InfoExtractor): if container == 'm3u8' or ext == 'm3u8': if protocol == 'usp': if compat_parse_qs(compat_urllib_parse_urlparse(asset_url).query).get('token', [None])[0]: - urlh = self._request_webpage(asset_url, video_id, fatal=False) + urlh = self._request_webpage( + asset_url, video_id, fatal=False, + headers=self.geo_verification_headers()) if not urlh: continue asset_url = urlh.geturl() diff --git a/youtube_dl/extractor/slideslive.py b/youtube_dl/extractor/slideslive.py index 1045760..ed84322 100644 --- a/youtube_dl/extractor/slideslive.py +++ b/youtube_dl/extractor/slideslive.py @@ -8,6 +8,7 @@ from ..utils import ExtractorError class SlidesLiveIE(InfoExtractor): _VALID_URL = r'https?://slideslive\.com/(?P<id>[0-9]+)' _TESTS = [{ + # video_service_name = YOUTUBE 'url': 'https://slideslive.com/38902413/gcc-ia16-backend', 'md5': 'b29fcd6c6952d0c79c5079b0e7a07e6f', 'info_dict': { @@ -19,14 +20,18 @@ class SlidesLiveIE(InfoExtractor): 'uploader_id': 'UC62SdArr41t_-_fX40QCLRw', 'upload_date': '20170925', } + }, { + # video_service_name = youtube + 'url': 'https://slideslive.com/38903721/magic-a-scientific-resurrection-of-an-esoteric-legend', + 'only_matching': True, }] def _real_extract(self, url): video_id = self._match_id(url) video_data = self._download_json( url, video_id, headers={'Accept': 'application/json'}) - service_name = video_data['video_service_name'] - if service_name == 'YOUTUBE': + service_name = video_data['video_service_name'].lower() + if service_name == 'youtube': yt_video_id = video_data['video_service_id'] return self.url_result(yt_video_id, 'Youtube', video_id=yt_video_id) else: diff --git a/youtube_dl/extractor/slutload.py b/youtube_dl/extractor/slutload.py index 6fc2ff6..661f9e5 100644 --- a/youtube_dl/extractor/slutload.py +++ b/youtube_dl/extractor/slutload.py @@ -1,12 +1,10 @@ from __future__ import unicode_literals -import re - from .common import InfoExtractor class SlutloadIE(InfoExtractor): - _VALID_URL = r'^https?://(?:\w+\.)?slutload\.com/video/[^/]+/(?P<id>[^/]+)/?$' + _VALID_URL = r'https?://(?:\w+\.)?slutload\.com/(?:video/[^/]+|embed_player|watch)/(?P<id>[^/]+)' _TESTS = [{ 'url': 'http://www.slutload.com/video/virginie-baisee-en-cam/TD73btpBqSxc/', 'md5': '868309628ba00fd488cf516a113fd717', @@ -16,33 +14,52 @@ class SlutloadIE(InfoExtractor): 'title': 'virginie baisee en cam', 'age_limit': 18, 'thumbnail': r're:https?://.*?\.jpg' - } + }, }, { # mobile site 'url': 'http://mobile.slutload.com/video/masturbation-solo/fviFLmc6kzJ/', 'only_matching': True, + }, { + 'url': 'http://www.slutload.com/embed_player/TD73btpBqSxc/', + 'only_matching': True, + }, { + 'url': 'http://www.slutload.com/watch/TD73btpBqSxc/Virginie-Baisee-En-Cam.html', + 'only_matching': True, }] def _real_extract(self, url): video_id = self._match_id(url) - desktop_url = re.sub(r'^(https?://)mobile\.', r'\1', url) - webpage = self._download_webpage(desktop_url, video_id) + embed_page = self._download_webpage( + 'http://www.slutload.com/embed_player/%s' % video_id, video_id, + 'Downloading embed page', fatal=False) - video_title = self._html_search_regex(r'<h1><strong>([^<]+)</strong>', - webpage, 'title').strip() + if embed_page: + def extract(what): + return self._html_search_regex( + r'data-video-%s=(["\'])(?P<url>(?:(?!\1).)+)\1' % what, + embed_page, 'video %s' % what, default=None, group='url') - video_url = self._html_search_regex( - r'(?s)<div id="vidPlayer"\s+data-url="([^"]+)"', - webpage, 'video URL') - thumbnail = self._html_search_regex( - r'(?s)<div id="vidPlayer"\s+.*?previewer-file="([^"]+)"', - webpage, 'thumbnail', fatal=False) + video_url = extract('url') + if video_url: + title = self._html_search_regex( + r'<title>([^<]+)', embed_page, 'title', default=video_id) + return { + 'id': video_id, + 'url': video_url, + 'title': title, + 'thumbnail': extract('preview'), + 'age_limit': 18 + } - return { + webpage = self._download_webpage( + 'http://www.slutload.com/video/_/%s/' % video_id, video_id) + title = self._html_search_regex( + r'<h1><strong>([^<]+)</strong>', webpage, 'title').strip() + info = self._parse_html5_media_entries(url, webpage, video_id)[0] + info.update({ 'id': video_id, - 'url': video_url, - 'title': video_title, - 'thumbnail': thumbnail, - 'age_limit': 18 - } + 'title': title, + 'age_limit': 18, + }) + return info diff --git a/youtube_dl/extractor/streamcloud.py b/youtube_dl/extractor/streamcloud.py index 6a6bb90..4a41061 100644 --- a/youtube_dl/extractor/streamcloud.py +++ b/youtube_dl/extractor/streamcloud.py @@ -72,4 +72,7 @@ class StreamcloudIE(InfoExtractor): 'title': title, 'url': video_url, 'thumbnail': thumbnail, + 'http_headers': { + 'Referer': url, + }, } diff --git a/youtube_dl/extractor/svt.py b/youtube_dl/extractor/svt.py index f71eab8..0901c31 100644 --- a/youtube_dl/extractor/svt.py +++ b/youtube_dl/extractor/svt.py @@ -12,6 +12,8 @@ from ..utils import ( determine_ext, dict_get, int_or_none, + orderedSet, + strip_or_none, try_get, urljoin, compat_str, @@ -137,7 +139,12 @@ class SVTPlayBaseIE(SVTBaseIE): class SVTPlayIE(SVTPlayBaseIE): IE_DESC = 'SVT Play and Öppet arkiv' - _VALID_URL = r'https?://(?:www\.)?(?:svtplay|oppetarkiv)\.se/(?:video|klipp|kanaler)/(?P<id>[^/?#&]+)' + _VALID_URL = r'''(?x) + (?: + svt:(?P<svt_id>[^/?#&]+)| + https?://(?:www\.)?(?:svtplay|oppetarkiv)\.se/(?:video|klipp|kanaler)/(?P<id>[^/?#&]+) + ) + ''' _TESTS = [{ 'url': 'http://www.svtplay.se/video/5996901/flygplan-till-haile-selassie/flygplan-till-haile-selassie-2', 'md5': '2b6704fe4a28801e1a098bbf3c5ac611', @@ -164,10 +171,40 @@ class SVTPlayIE(SVTPlayBaseIE): }, { 'url': 'https://www.svtplay.se/kanaler/svt1', 'only_matching': True, + }, { + 'url': 'svt:1376446-003A', + 'only_matching': True, + }, { + 'url': 'svt:14278044', + 'only_matching': True, }] + def _adjust_title(self, info): + if info['is_live']: + info['title'] = self._live_title(info['title']) + + def _extract_by_video_id(self, video_id, webpage=None): + data = self._download_json( + 'https://api.svt.se/videoplayer-api/video/%s' % video_id, + video_id, headers=self.geo_verification_headers()) + info_dict = self._extract_video(data, video_id) + if not info_dict.get('title'): + title = dict_get(info_dict, ('episode', 'series')) + if not title and webpage: + title = re.sub( + r'\s*\|\s*.+?$', '', self._og_search_title(webpage)) + if not title: + title = video_id + info_dict['title'] = title + self._adjust_title(info_dict) + return info_dict + def _real_extract(self, url): - video_id = self._match_id(url) + mobj = re.match(self._VALID_URL, url) + video_id, svt_id = mobj.group('id', 'svt_id') + + if svt_id: + return self._extract_by_video_id(svt_id) webpage = self._download_webpage(url, video_id) @@ -179,10 +216,6 @@ class SVTPlayIE(SVTPlayBaseIE): thumbnail = self._og_search_thumbnail(webpage) - def adjust_title(info): - if info['is_live']: - info['title'] = self._live_title(info['title']) - if data: video_info = try_get( data, lambda x: x['context']['dispatcher']['stores']['VideoTitlePageStore']['data']['video'], @@ -193,24 +226,14 @@ class SVTPlayIE(SVTPlayBaseIE): 'title': data['context']['dispatcher']['stores']['MetaStore']['title'], 'thumbnail': thumbnail, }) - adjust_title(info_dict) + self._adjust_title(info_dict) return info_dict - video_id = self._search_regex( + svt_id = self._search_regex( r'<video[^>]+data-video-id=["\']([\da-zA-Z-]+)', - webpage, 'video id', default=None) + webpage, 'video id') - if video_id: - data = self._download_json( - 'https://api.svt.se/videoplayer-api/video/%s' % video_id, - video_id, headers=self.geo_verification_headers()) - info_dict = self._extract_video(data, video_id) - if not info_dict.get('title'): - info_dict['title'] = re.sub( - r'\s*\|\s*.+?$', '', - info_dict.get('episode') or self._og_search_title(webpage)) - adjust_title(info_dict) - return info_dict + return self._extract_by_video_id(svt_id, webpage) class SVTSeriesIE(SVTPlayBaseIE): @@ -292,3 +315,57 @@ class SVTSeriesIE(SVTPlayBaseIE): return self.playlist_result( entries, series_id, title, metadata.get('description')) + + +class SVTPageIE(InfoExtractor): + _VALID_URL = r'https?://(?:www\.)?svt\.se/(?:[^/]+/)*(?P<id>[^/?&#]+)' + _TESTS = [{ + 'url': 'https://www.svt.se/sport/oseedat/guide-sommartraningen-du-kan-gora-var-och-nar-du-vill', + 'info_dict': { + 'id': 'guide-sommartraningen-du-kan-gora-var-och-nar-du-vill', + 'title': 'GUIDE: Sommarträning du kan göra var och när du vill', + }, + 'playlist_count': 7, + }, { + 'url': 'https://www.svt.se/nyheter/inrikes/ebba-busch-thor-kd-har-delvis-ratt-om-no-go-zoner', + 'info_dict': { + 'id': 'ebba-busch-thor-kd-har-delvis-ratt-om-no-go-zoner', + 'title': 'Ebba Busch Thor har bara delvis rätt om ”no-go-zoner”', + }, + 'playlist_count': 1, + }, { + # only programTitle + 'url': 'http://www.svt.se/sport/ishockey/jagr-tacklar-giroux-under-intervjun', + 'info_dict': { + 'id': '2900353', + 'ext': 'mp4', + 'title': 'Stjärnorna skojar till det - under SVT-intervjun', + 'duration': 27, + 'age_limit': 0, + }, + }, { + 'url': 'https://www.svt.se/nyheter/lokalt/vast/svt-testar-tar-nagon-upp-skrapet-1', + 'only_matching': True, + }, { + 'url': 'https://www.svt.se/vader/manadskronikor/maj2018', + 'only_matching': True, + }] + + @classmethod + def suitable(cls, url): + return False if SVTIE.suitable(url) else super(SVTPageIE, cls).suitable(url) + + def _real_extract(self, url): + playlist_id = self._match_id(url) + + webpage = self._download_webpage(url, playlist_id) + + entries = [ + self.url_result( + 'svt:%s' % video_id, ie=SVTPlayIE.ie_key(), video_id=video_id) + for video_id in orderedSet(re.findall( + r'data-video-id=["\'](\d+)', webpage))] + + title = strip_or_none(self._og_search_title(webpage, default=None)) + + return self.playlist_result(entries, playlist_id, title) diff --git a/youtube_dl/extractor/ted.py b/youtube_dl/extractor/ted.py index 06a27fd..212ac80 100644 --- a/youtube_dl/extractor/ted.py +++ b/youtube_dl/extractor/ted.py @@ -7,8 +7,10 @@ from .common import InfoExtractor from ..compat import compat_str from ..utils import ( + float_or_none, int_or_none, try_get, + url_or_none, ) @@ -30,7 +32,7 @@ class TEDIE(InfoExtractor): ''' _TESTS = [{ 'url': 'http://www.ted.com/talks/dan_dennett_on_our_consciousness.html', - 'md5': '0de43ac406aa3e4ea74b66c9c7789b13', + 'md5': 'b0ce2b05ca215042124fbc9e3886493a', 'info_dict': { 'id': '102', 'ext': 'mp4', @@ -42,24 +44,30 @@ class TEDIE(InfoExtractor): 'uploader': 'Dan Dennett', 'width': 853, 'duration': 1308, - } + 'view_count': int, + 'comment_count': int, + 'tags': list, + }, + 'params': { + 'skip_download': True, + }, }, { - 'url': 'http://www.ted.com/watch/ted-institute/ted-bcg/vishal-sikka-the-beauty-and-power-of-algorithms', - 'md5': 'b899ac15e345fb39534d913f7606082b', + # missing HTTP bitrates + 'url': 'https://www.ted.com/talks/vishal_sikka_the_beauty_and_power_of_algorithms', 'info_dict': { - 'id': 'tSVI8ta_P4w', + 'id': '6069', 'ext': 'mp4', - 'title': 'Vishal Sikka: The beauty and power of algorithms', + 'title': 'The beauty and power of algorithms', 'thumbnail': r're:^https?://.+\.jpg', - 'description': 'md5:6261fdfe3e02f4f579cbbfc00aff73f4', - 'upload_date': '20140122', - 'uploader_id': 'TEDInstitute', - 'uploader': 'TED Institute', + 'description': 'md5:734e352710fb00d840ab87ae31aaf688', + 'uploader': 'Vishal Sikka', + }, + 'params': { + 'skip_download': True, }, - 'add_ie': ['Youtube'], }, { 'url': 'http://www.ted.com/talks/gabby_giffords_and_mark_kelly_be_passionate_be_courageous_be_your_best', - 'md5': '71b3ab2f4233012dce09d515c9c39ce2', + 'md5': 'e6b9617c01a7970ceac8bb2c92c346c0', 'info_dict': { 'id': '1972', 'ext': 'mp4', @@ -68,6 +76,9 @@ class TEDIE(InfoExtractor): 'description': 'md5:5174aed4d0f16021b704120360f72b92', 'duration': 1128, }, + 'params': { + 'skip_download': True, + }, }, { 'url': 'http://www.ted.com/playlists/who_are_the_hackers', 'info_dict': { @@ -92,17 +103,17 @@ class TEDIE(InfoExtractor): 'skip_download': True, }, }, { - # YouTube video - 'url': 'http://www.ted.com/talks/jeffrey_kluger_the_sibling_bond', - 'add_ie': ['Youtube'], + # no nativeDownloads + 'url': 'https://www.ted.com/talks/tom_thum_the_orchestra_in_my_mouth', 'info_dict': { - 'id': 'aFBIPO-P7LM', + 'id': '1792', 'ext': 'mp4', - 'title': 'The hidden power of siblings: Jeff Kluger at TEDxAsheville', - 'description': 'md5:3d7a4f50d95ca5dd67104e2a20f43fe1', - 'uploader': 'TEDx Talks', - 'uploader_id': 'TEDxTalks', - 'upload_date': '20111216', + 'title': 'The orchestra in my mouth', + 'description': 'md5:5d1d78650e2f8dfcbb8ebee2951ac29a', + 'uploader': 'Tom Thum', + 'view_count': int, + 'comment_count': int, + 'tags': list, }, 'params': { 'skip_download': True, @@ -161,27 +172,16 @@ class TEDIE(InfoExtractor): info = self._extract_info(webpage) - talk_info = try_get( - info, lambda x: x['__INITIAL_DATA__']['talks'][0], - dict) or info['talks'][0] + data = try_get(info, lambda x: x['__INITIAL_DATA__'], dict) or info + talk_info = data['talks'][0] title = talk_info['title'].strip() - external = talk_info.get('external') - if external: - service = external['service'] - self.to_screen('Found video from %s' % service) - ext_url = None - if service.lower() == 'youtube': - ext_url = external.get('code') - return { - '_type': 'url', - 'url': ext_url or external['uri'], - } - native_downloads = try_get( - talk_info, lambda x: x['downloads']['nativeDownloads'], - dict) or talk_info['nativeDownloads'] + talk_info, + (lambda x: x['downloads']['nativeDownloads'], + lambda x: x['nativeDownloads']), + dict) or {} formats = [{ 'url': format_url, @@ -196,10 +196,24 @@ class TEDIE(InfoExtractor): player_talk = talk_info['player_talks'][0] + external = player_talk.get('external') + if isinstance(external, dict): + service = external.get('service') + if isinstance(service, compat_str): + ext_url = None + if service.lower() == 'youtube': + ext_url = external.get('code') + return { + '_type': 'url', + 'url': ext_url or external['uri'], + } + resources_ = player_talk.get('resources') or talk_info.get('resources') http_url = None for format_id, resources in resources_.items(): + if not isinstance(resources, dict): + continue if format_id == 'h264': for resource in resources: h264_url = resource.get('file') @@ -228,8 +242,12 @@ class TEDIE(InfoExtractor): 'tbr': int_or_none(resource.get('bitrate')), }) elif format_id == 'hls': + stream_url = url_or_none(resources.get('stream')) + if not stream_url: + continue formats.extend(self._extract_m3u8_formats( - resources.get('stream'), video_name, 'mp4', m3u8_id=format_id, fatal=False)) + stream_url, video_name, 'mp4', m3u8_id=format_id, + fatal=False)) m3u8_formats = list(filter( lambda f: f.get('protocol') == 'm3u8' and f.get('vcodec') != 'none', @@ -239,9 +257,13 @@ class TEDIE(InfoExtractor): bitrate = self._search_regex(r'(\d+k)', m3u8_format['url'], 'bitrate', default=None) if not bitrate: continue + bitrate_url = re.sub(r'\d+k', bitrate, http_url) + if not self._is_valid_url( + bitrate_url, video_name, '%s bitrate' % bitrate): + continue f = m3u8_format.copy() f.update({ - 'url': re.sub(r'\d+k', bitrate, http_url), + 'url': bitrate_url, 'format_id': m3u8_format['format_id'].replace('hls', 'http'), 'protocol': 'http', }) @@ -267,7 +289,11 @@ class TEDIE(InfoExtractor): 'description': self._og_search_description(webpage), 'subtitles': self._get_subtitles(video_id, talk_info), 'formats': formats, - 'duration': talk_info.get('duration'), + 'duration': float_or_none(talk_info.get('duration')), + 'view_count': int_or_none(data.get('viewed_count')), + 'comment_count': int_or_none( + try_get(data, lambda x: x['comments']['count'])), + 'tags': try_get(talk_info, lambda x: x['tags'], list), } def _get_subtitles(self, video_id, talk_info): diff --git a/youtube_dl/extractor/tele5.py b/youtube_dl/extractor/tele5.py new file mode 100644 index 0000000..25573e4 --- /dev/null +++ b/youtube_dl/extractor/tele5.py @@ -0,0 +1,44 @@ +# coding: utf-8 +from __future__ import unicode_literals + +from .common import InfoExtractor +from .nexx import NexxIE +from ..compat import compat_urlparse + + +class Tele5IE(InfoExtractor): + _VALID_URL = r'https?://(?:www\.)?tele5\.de/(?:mediathek|tv)/(?P<id>[^?#&]+)' + _TESTS = [{ + 'url': 'https://www.tele5.de/mediathek/filme-online/videos?vid=1549416', + 'info_dict': { + 'id': '1549416', + 'ext': 'mp4', + 'upload_date': '20180814', + 'timestamp': 1534290623, + 'title': 'Pandorum', + }, + 'params': { + 'skip_download': True, + }, + }, { + 'url': 'https://www.tele5.de/tv/kalkofes-mattscheibe/video-clips/politik-und-gesellschaft?ve_id=1551191', + 'only_matching': True, + }, { + 'url': 'https://www.tele5.de/tv/dark-matter/videos', + 'only_matching': True, + }] + + def _real_extract(self, url): + qs = compat_urlparse.parse_qs(compat_urlparse.urlparse(url).query) + video_id = (qs.get('vid') or qs.get('ve_id') or [None])[0] + + if not video_id: + display_id = self._match_id(url) + webpage = self._download_webpage(url, display_id) + video_id = self._html_search_regex( + r'id\s*=\s*["\']video-player["\'][^>]+data-id\s*=\s*["\'](\d+)', + webpage, 'video id') + + return self.url_result( + 'https://api.nexx.cloud/v3/759/videos/byid/%s' % video_id, + ie=NexxIE.ie_key(), video_id=video_id) diff --git a/youtube_dl/extractor/telecinco.py b/youtube_dl/extractor/telecinco.py index fdcc7d5..d37e1b0 100644 --- a/youtube_dl/extractor/telecinco.py +++ b/youtube_dl/extractor/telecinco.py @@ -1,26 +1,43 @@ # coding: utf-8 from __future__ import unicode_literals -from .mitele import MiTeleBaseIE +import json +import re +from .common import InfoExtractor +from .ooyala import OoyalaIE +from ..utils import ( + clean_html, + determine_ext, + int_or_none, + str_or_none, + urljoin, +) -class TelecincoIE(MiTeleBaseIE): + +class TelecincoIE(InfoExtractor): IE_DESC = 'telecinco.es, cuatro.com and mediaset.es' _VALID_URL = r'https?://(?:www\.)?(?:telecinco\.es|cuatro\.com|mediaset\.es)/(?:[^/]+/)+(?P<id>.+?)\.html' _TESTS = [{ 'url': 'http://www.telecinco.es/robinfood/temporada-01/t01xp14/Bacalao-cocochas-pil-pil_0_1876350223.html', - 'md5': '8d7b2d5f699ee2709d992a63d5cd1712', 'info_dict': { - 'id': 'JEA5ijCnF6p5W08A1rNKn7', - 'ext': 'mp4', + 'id': '1876350223', 'title': 'Bacalao con kokotxas al pil-pil', 'description': 'md5:1382dacd32dd4592d478cbdca458e5bb', - 'duration': 662, }, + 'playlist': [{ + 'md5': 'adb28c37238b675dad0f042292f209a7', + 'info_dict': { + 'id': 'JEA5ijCnF6p5W08A1rNKn7', + 'ext': 'mp4', + 'title': 'Con Martín Berasategui, hacer un bacalao al pil-pil es fácil y divertido', + 'duration': 662, + }, + }] }, { 'url': 'http://www.cuatro.com/deportes/futbol/barcelona/Leo_Messi-Champions-Roma_2_2052780128.html', - 'md5': '284393e5387b3b947b77c613ef04749a', + 'md5': '9468140ebc300fbb8b9d65dc6e5c4b43', 'info_dict': { 'id': 'jn24Od1zGLG4XUZcnUnZB6', 'ext': 'mp4', @@ -30,7 +47,7 @@ class TelecincoIE(MiTeleBaseIE): }, }, { 'url': 'http://www.mediaset.es/12meses/campanas/doylacara/conlatratanohaytrato/Ayudame-dar-cara-trata-trato_2_1986630220.html', - 'md5': '749afab6ea5a136a8806855166ae46a2', + 'md5': 'ae2dc6b7b50b2392076a51c0f70e01f6', 'info_dict': { 'id': 'aywerkD2Sv1vGNqq9b85Q2', 'ext': 'mp4', @@ -50,17 +67,90 @@ class TelecincoIE(MiTeleBaseIE): 'only_matching': True, }] + def _parse_content(self, content, url): + video_id = content['dataMediaId'] + if content.get('dataCmsId') == 'ooyala': + return self.url_result( + 'ooyala:%s' % video_id, OoyalaIE.ie_key(), video_id) + config_url = urljoin(url, content['dataConfig']) + config = self._download_json( + config_url, video_id, 'Downloading config JSON') + title = config['info']['title'] + + def mmc_url(mmc_type): + return re.sub( + r'/(?:flash|html5)\.json', '/%s.json' % mmc_type, + config['services']['mmc']) + + duration = None + formats = [] + for mmc_type in ('flash', 'html5'): + mmc = self._download_json( + mmc_url(mmc_type), video_id, + 'Downloading %s mmc JSON' % mmc_type, fatal=False) + if not mmc: + continue + if not duration: + duration = int_or_none(mmc.get('duration')) + for location in mmc['locations']: + gat = self._proto_relative_url(location.get('gat'), 'http:') + gcp = location.get('gcp') + ogn = location.get('ogn') + if None in (gat, gcp, ogn): + continue + token_data = { + 'gcp': gcp, + 'ogn': ogn, + 'sta': 0, + } + media = self._download_json( + gat, video_id, data=json.dumps(token_data).encode('utf-8'), + headers={ + 'Content-Type': 'application/json;charset=utf-8', + 'Referer': url, + }, fatal=False) or {} + stream = media.get('stream') or media.get('file') + if not stream: + continue + ext = determine_ext(stream) + if ext == 'f4m': + formats.extend(self._extract_f4m_formats( + stream + '&hdcore=3.2.0&plugin=aasp-3.2.0.77.18', + video_id, f4m_id='hds', fatal=False)) + elif ext == 'm3u8': + formats.extend(self._extract_m3u8_formats( + stream, video_id, 'mp4', 'm3u8_native', + m3u8_id='hls', fatal=False)) + self._sort_formats(formats) + + return { + 'id': video_id, + 'title': title, + 'formats': formats, + 'thumbnail': content.get('dataPoster') or config.get('poster', {}).get('imageUrl'), + 'duration': duration, + } + def _real_extract(self, url): display_id = self._match_id(url) webpage = self._download_webpage(url, display_id) - title = self._html_search_meta( - ['og:title', 'twitter:title'], webpage, 'title') - info = self._get_player_info(url, webpage) + article = self._parse_json(self._search_regex( + r'window\.\$REACTBASE_STATE\.article\s*=\s*({.+})', + webpage, 'article'), display_id)['article'] + title = article.get('title') + description = clean_html(article.get('leadParagraph')) + if article.get('editorialType') != 'VID': + entries = [] + for p in article.get('body', []): + content = p.get('content') + if p.get('type') != 'video' or not content: + continue + entries.append(self._parse_content(content, url)) + return self.playlist_result( + entries, str_or_none(article.get('id')), title, description) + content = article['opening']['content'] + info = self._parse_content(content, url) info.update({ - 'display_id': display_id, - 'title': title, - 'description': self._html_search_meta( - ['og:description', 'twitter:description'], - webpage, 'title', fatal=False), + 'description': description, }) return info diff --git a/youtube_dl/extractor/theplatform.py b/youtube_dl/extractor/theplatform.py index b1a985f..ffef5bf 100644 --- a/youtube_dl/extractor/theplatform.py +++ b/youtube_dl/extractor/theplatform.py @@ -32,13 +32,15 @@ _x = lambda p: xpath_with_ns(p, {'smil': default_ns}) class ThePlatformBaseIE(OnceIE): + _TP_TLD = 'com' + def _extract_theplatform_smil(self, smil_url, video_id, note='Downloading SMIL data'): meta = self._download_xml( smil_url, video_id, note=note, query={'format': 'SMIL'}, headers=self.geo_verification_headers()) error_element = find_xpath_attr(meta, _x('.//smil:ref'), 'src') if error_element is not None and error_element.attrib['src'].startswith( - 'http://link.theplatform.com/s/errorFiles/Unavailable.'): + 'http://link.theplatform.%s/s/errorFiles/Unavailable.' % self._TP_TLD): raise ExtractorError(error_element.attrib['abstract'], expected=True) smil_formats = self._parse_smil_formats( @@ -66,7 +68,7 @@ class ThePlatformBaseIE(OnceIE): return formats, subtitles def _download_theplatform_metadata(self, path, video_id): - info_url = 'http://link.theplatform.com/s/%s?format=preview' % path + info_url = 'http://link.theplatform.%s/s/%s?format=preview' % (self._TP_TLD, path) return self._download_json(info_url, video_id) def _parse_theplatform_metadata(self, info): @@ -308,7 +310,7 @@ class ThePlatformIE(ThePlatformBaseIE, AdobePassIE): class ThePlatformFeedIE(ThePlatformBaseIE): _URL_TEMPLATE = '%s//feed.theplatform.com/f/%s/%s?form=json&%s' - _VALID_URL = r'https?://feed\.theplatform\.com/f/(?P<provider_id>[^/]+)/(?P<feed_id>[^?/]+)\?(?:[^&]+&)*(?P<filter>by(?:Gui|I)d=(?P<id>[\w-]+))' + _VALID_URL = r'https?://feed\.theplatform\.com/f/(?P<provider_id>[^/]+)/(?P<feed_id>[^?/]+)\?(?:[^&]+&)*(?P<filter>by(?:Gui|I)d=(?P<id>[^&]+))' _TESTS = [{ # From http://player.theplatform.com/p/7wvmTC/MSNBCEmbeddedOffSite?guid=n_hardball_5biden_140207 'url': 'http://feed.theplatform.com/f/7wvmTC/msnbc_video-p-test?form=json&pretty=true&range=-40&byGuid=n_hardball_5biden_140207', @@ -325,6 +327,9 @@ class ThePlatformFeedIE(ThePlatformBaseIE): 'categories': ['MSNBC/Issues/Democrats', 'MSNBC/Issues/Elections/Election 2016'], 'uploader': 'NBCU-NEWS', }, + }, { + 'url': 'http://feed.theplatform.com/f/2E2eJC/nnd_NBCNews?byGuid=nn_netcast_180306.Copy.01', + 'only_matching': True, }] def _extract_feed_info(self, provider_id, feed_id, filter_query, video_id, custom_fields=None, asset_types_query={}, account_id=None): diff --git a/youtube_dl/extractor/turner.py b/youtube_dl/extractor/turner.py index 2b7b0d6..4a6cbfb 100644 --- a/youtube_dl/extractor/turner.py +++ b/youtube_dl/extractor/turner.py @@ -15,6 +15,7 @@ from ..utils import ( update_url_query, ExtractorError, strip_or_none, + url_or_none, ) @@ -154,8 +155,8 @@ class TurnerBaseIE(AdobePassIE): subtitles = {} for source in video_data.findall('closedCaptions/source'): for track in source.findall('track'): - track_url = track.get('url') - if not isinstance(track_url, compat_str) or track_url.endswith('/big'): + track_url = url_or_none(track.get('url')) + if not track_url or track_url.endswith('/big'): continue lang = track.get('lang') or track.get('label') or 'en' subtitles.setdefault(lang, []).append({ diff --git a/youtube_dl/extractor/tvnet.py b/youtube_dl/extractor/tvnet.py index 2b2630b..4222ff9 100644 --- a/youtube_dl/extractor/tvnet.py +++ b/youtube_dl/extractor/tvnet.py @@ -4,10 +4,10 @@ from __future__ import unicode_literals import re from .common import InfoExtractor -from ..compat import compat_str from ..utils import ( int_or_none, unescapeHTML, + url_or_none, ) @@ -106,9 +106,8 @@ class TVNetIE(InfoExtractor): for stream in self._download_json(data_file, video_id): if not isinstance(stream, dict): continue - stream_url = stream.get('url') - if (stream_url in stream_urls or not stream_url or - not isinstance(stream_url, compat_str)): + stream_url = url_or_none(stream.get('url')) + if stream_url in stream_urls or not stream_url: continue stream_urls.add(stream_url) formats.extend(self._extract_m3u8_formats( diff --git a/youtube_dl/extractor/tvnow.py b/youtube_dl/extractor/tvnow.py index 808571e..6093761 100644 --- a/youtube_dl/extractor/tvnow.py +++ b/youtube_dl/extractor/tvnow.py @@ -19,8 +19,8 @@ class TVNowBaseIE(InfoExtractor): _VIDEO_FIELDS = ( 'id', 'title', 'free', 'geoblocked', 'articleLong', 'articleShort', 'broadcastStartDate', 'isDrm', 'duration', 'season', 'episode', - 'manifest.dashclear', 'format.title', 'format.defaultImage169Format', - 'format.defaultImage169Logo') + 'manifest.dashclear', 'manifest.hlsclear', 'manifest.smoothclear', + 'format.title', 'format.defaultImage169Format', 'format.defaultImage169Logo') def _call_api(self, path, video_id, query): return self._download_json( @@ -31,27 +31,42 @@ class TVNowBaseIE(InfoExtractor): video_id = compat_str(info['id']) title = info['title'] - mpd_url = info['manifest']['dashclear'] - if not mpd_url: + paths = [] + for manifest_url in (info.get('manifest') or {}).values(): + if not manifest_url: + continue + manifest_url = update_url_query(manifest_url, {'filter': ''}) + path = self._search_regex(r'https?://[^/]+/(.+?)\.ism/', manifest_url, 'path') + if path in paths: + continue + paths.append(path) + + def url_repl(proto, suffix): + return re.sub( + r'(?:hls|dash|hss)([.-])', proto + r'\1', re.sub( + r'\.ism/(?:[^.]*\.(?:m3u8|mpd)|[Mm]anifest)', + '.ism/' + suffix, manifest_url)) + + formats = self._extract_mpd_formats( + url_repl('dash', '.mpd'), video_id, + mpd_id='dash', fatal=False) + formats.extend(self._extract_ism_formats( + url_repl('hss', 'Manifest'), + video_id, ism_id='mss', fatal=False)) + formats.extend(self._extract_m3u8_formats( + url_repl('hls', '.m3u8'), video_id, 'mp4', + 'm3u8_native', m3u8_id='hls', fatal=False)) + if formats: + break + else: if info.get('isDrm'): raise ExtractorError( 'Video %s is DRM protected' % video_id, expected=True) if info.get('geoblocked'): - raise ExtractorError( - 'Video %s is not available from your location due to geo restriction' % video_id, - expected=True) + raise self.raise_geo_restricted() if not info.get('free', True): raise ExtractorError( 'Video %s is not available for free' % video_id, expected=True) - - mpd_url = update_url_query(mpd_url, {'filter': ''}) - formats = self._extract_mpd_formats(mpd_url, video_id, mpd_id='dash', fatal=False) - formats.extend(self._extract_ism_formats( - mpd_url.replace('dash.', 'hss.').replace('/.mpd', '/Manifest'), - video_id, ism_id='mss', fatal=False)) - formats.extend(self._extract_m3u8_formats( - mpd_url.replace('dash.', 'hls.').replace('/.mpd', '/.m3u8'), - video_id, 'mp4', 'm3u8_native', m3u8_id='hls', fatal=False)) self._sort_formats(formats) description = info.get('articleLong') or info.get('articleShort') @@ -88,7 +103,7 @@ class TVNowBaseIE(InfoExtractor): class TVNowIE(TVNowBaseIE): _VALID_URL = r'''(?x) https?:// - (?:www\.)?tvnow\.(?:de|at|ch)/[^/]+/ + (?:www\.)?tvnow\.(?:de|at|ch)/(?P<station>[^/]+)/ (?P<show_id>[^/]+)/ (?!(?:list|jahr)(?:/|$))(?P<id>[^/?\#&]+) ''' @@ -140,11 +155,13 @@ class TVNowIE(TVNowBaseIE): }] def _real_extract(self, url): - display_id = '%s/%s' % re.match(self._VALID_URL, url).groups() + mobj = re.match(self._VALID_URL, url) + display_id = '%s/%s' % mobj.group(2, 3) info = self._call_api( 'movies/' + display_id, display_id, query={ 'fields': ','.join(self._VIDEO_FIELDS), + 'station': mobj.group(1), }) return self._extract_video(info, display_id) diff --git a/youtube_dl/extractor/tvplay.py b/youtube_dl/extractor/tvplay.py index e09b5f8..8f1ff3b 100644 --- a/youtube_dl/extractor/tvplay.py +++ b/youtube_dl/extractor/tvplay.py @@ -19,6 +19,7 @@ from ..utils import ( try_get, unsmuggle_url, update_url_query, + url_or_none, ) @@ -31,12 +32,12 @@ class TVPlayIE(InfoExtractor): https?:// (?:www\.)? (?: - tvplay(?:\.skaties)?\.lv/parraides| - (?:tv3play|play\.tv3)\.lt/programos| + tvplay(?:\.skaties)?\.lv(?:/parraides)?| + (?:tv3play|play\.tv3)\.lt(?:/programos)?| tv3play(?:\.tv3)?\.ee/sisu| (?:tv(?:3|6|8|10)play|viafree)\.se/program| (?:(?:tv3play|viasat4play|tv6play|viafree)\.no|(?:tv3play|viafree)\.dk)/programmer| - play\.novatv\.bg/programi + play\.nova(?:tv)?\.bg/programi ) /(?:[^/]+/)+ ) @@ -202,10 +203,18 @@ class TVPlayIE(InfoExtractor): 'skip_download': True, }, }, + { + 'url': 'https://play.nova.bg/programi/zdravei-bulgariya/764300?autostart=true', + 'only_matching': True, + }, { 'url': 'http://tvplay.skaties.lv/parraides/vinas-melo-labak/418113?autostart=true', 'only_matching': True, }, + { + 'url': 'https://tvplay.skaties.lv/vinas-melo-labak/418113/?autostart=true', + 'only_matching': True, + }, { # views is null 'url': 'http://tvplay.skaties.lv/parraides/tv3-zinas/760183', @@ -255,7 +264,8 @@ class TVPlayIE(InfoExtractor): quality = qualities(['hls', 'medium', 'high']) formats = [] for format_id, video_url in streams.get('streams', {}).items(): - if not video_url or not isinstance(video_url, compat_str): + video_url = url_or_none(video_url) + if not video_url: continue ext = determine_ext(video_url) if ext == 'f4m': @@ -286,6 +296,7 @@ class TVPlayIE(InfoExtractor): 'url': m.group('url'), 'app': m.group('app'), 'play_path': m.group('playpath'), + 'preference': -1, }) else: fmt.update({ @@ -445,3 +456,102 @@ class ViafreeIE(InfoExtractor): 'skip_rtmp': True, }), ie=TVPlayIE.ie_key(), video_id=video_id) + + +class TVPlayHomeIE(InfoExtractor): + _VALID_URL = r'https?://tvplay\.(?:tv3\.lt|skaties\.lv|tv3\.ee)/[^/]+/[^/?#&]+-(?P<id>\d+)' + _TESTS = [{ + 'url': 'https://tvplay.tv3.lt/aferistai-n-7/aferistai-10047125/', + 'info_dict': { + 'id': '366367', + 'ext': 'mp4', + 'title': 'Aferistai', + 'description': 'Aferistai. Kalėdinė pasaka.', + 'series': 'Aferistai [N-7]', + 'season': '1 sezonas', + 'season_number': 1, + 'duration': 464, + 'timestamp': 1394209658, + 'upload_date': '20140307', + 'age_limit': 18, + }, + 'params': { + 'skip_download': True, + }, + 'add_ie': [TVPlayIE.ie_key()], + }, { + 'url': 'https://tvplay.skaties.lv/vinas-melo-labak/vinas-melo-labak-10280317/', + 'only_matching': True, + }, { + 'url': 'https://tvplay.tv3.ee/cool-d-ga-mehhikosse/cool-d-ga-mehhikosse-10044354/', + 'only_matching': True, + }] + + def _real_extract(self, url): + video_id = self._match_id(url) + + webpage = self._download_webpage(url, video_id) + + video_id = self._search_regex( + r'data-asset-id\s*=\s*["\'](\d{5,7})\b', webpage, 'video id', + default=None) + + if video_id: + return self.url_result( + 'mtg:%s' % video_id, ie=TVPlayIE.ie_key(), video_id=video_id) + + m3u8_url = self._search_regex( + r'data-file\s*=\s*(["\'])(?P<url>(?:(?!\1).)+)\1', webpage, + 'm3u8 url', group='url') + + formats = self._extract_m3u8_formats( + m3u8_url, video_id, 'mp4', entry_protocol='m3u8_native', + m3u8_id='hls') + self._sort_formats(formats) + + title = self._search_regex( + r'data-title\s*=\s*(["\'])(?P<value>(?:(?!\1).)+)\1', webpage, + 'title', default=None, group='value') or self._html_search_meta( + 'title', webpage, default=None) or self._og_search_title( + webpage) + + description = self._html_search_meta( + 'description', webpage, + default=None) or self._og_search_description(webpage) + + thumbnail = self._search_regex( + r'data-image\s*=\s*(["\'])(?P<url>(?:(?!\1).)+)\1', webpage, + 'thumbnail', default=None, group='url') or self._html_search_meta( + 'thumbnail', webpage, default=None) or self._og_search_thumbnail( + webpage) + + duration = int_or_none(self._search_regex( + r'data-duration\s*=\s*["\'](\d+)', webpage, 'duration', + fatal=False)) + + season = self._search_regex( + (r'data-series-title\s*=\s*(["\'])[^/]+/(?P<value>(?:(?!\1).)+)\1', + r'\bseason\s*:\s*(["\'])(?P<value>(?:(?!\1).)+)\1'), webpage, + 'season', default=None, group='value') + season_number = int_or_none(self._search_regex( + r'(\d+)(?:[.\s]+sezona|\s+HOOAEG)', season or '', 'season number', + default=None)) + episode = self._search_regex( + r'(["\'])(?P<value>(?:(?!\1).)+)\1', webpage, 'episode', + default=None, group='value') + episode_number = int_or_none(self._search_regex( + r'(?:S[eē]rija|Osa)\s+(\d+)', episode or '', 'episode number', + default=None)) + + return { + 'id': video_id, + 'title': title, + 'description': description, + 'thumbnail': thumbnail, + 'duration': duration, + 'season': season, + 'season_number': season_number, + 'episode': episode, + 'episode_number': episode_number, + 'formats': formats, + } diff --git a/youtube_dl/extractor/twitch.py b/youtube_dl/extractor/twitch.py index e01f113..b39972b 100644 --- a/youtube_dl/extractor/twitch.py +++ b/youtube_dl/extractor/twitch.py @@ -4,10 +4,10 @@ from __future__ import unicode_literals import itertools import re import random +import json from .common import InfoExtractor from ..compat import ( - compat_HTTPError, compat_kwargs, compat_parse_qs, compat_str, @@ -26,7 +26,7 @@ from ..utils import ( try_get, unified_timestamp, update_url_query, - urlencode_postdata, + url_or_none, urljoin, ) @@ -36,8 +36,9 @@ class TwitchBaseIE(InfoExtractor): _API_BASE = 'https://api.twitch.tv' _USHER_BASE = 'https://usher.ttvnw.net' - _LOGIN_URL = 'https://www.twitch.tv/login' - _CLIENT_ID = 'jzkbprff40iqj646a697cyrvl0zt2m6' + _LOGIN_FORM_URL = 'https://www.twitch.tv/login' + _LOGIN_POST_URL = 'https://passport.twitch.tv/login' + _CLIENT_ID = 'kimne78kx3ncx6brgo4mv6wki5h1ko' _NETRC_MACHINE = 'twitch' def _handle_error(self, response): @@ -76,22 +77,21 @@ class TwitchBaseIE(InfoExtractor): page_url = urlh.geturl() post_url = self._search_regex( r'<form[^>]+action=(["\'])(?P<url>.+?)\1', page, - 'post url', default=page_url, group='url') + 'post url', default=self._LOGIN_POST_URL, group='url') post_url = urljoin(page_url, post_url) - headers = {'Referer': page_url} + headers = { + 'Referer': page_url, + 'Origin': page_url, + 'Content-Type': 'text/plain;charset=UTF-8', + } - try: - response = self._download_json( - post_url, None, note, - data=urlencode_postdata(form), - headers=headers) - except ExtractorError as e: - if isinstance(e.cause, compat_HTTPError) and e.cause.code == 400: - response = self._parse_json( - e.cause.read().decode('utf-8'), None) - fail(response.get('message') or response['errors'][0]) - raise + response = self._download_json( + post_url, None, note, data=json.dumps(form).encode(), + headers=headers, expected_status=400) + error = response.get('error_description') or response.get('error_code') + if error: + fail(error) if 'Authenticated successfully' in response.get('message', ''): return None, None @@ -104,7 +104,7 @@ class TwitchBaseIE(InfoExtractor): headers=headers) login_page, handle = self._download_webpage_handle( - self._LOGIN_URL, None, 'Downloading login page') + self._LOGIN_FORM_URL, None, 'Downloading login page') # Some TOR nodes and public proxies are blocked completely if 'blacklist_message' in login_page: @@ -114,6 +114,7 @@ class TwitchBaseIE(InfoExtractor): login_page, handle, 'Logging in', { 'username': username, 'password': password, + 'client_id': self._CLIENT_ID, }) # Successful login @@ -239,7 +240,7 @@ class TwitchVodIE(TwitchItemBaseIE): _VALID_URL = r'''(?x) https?:// (?: - (?:(?:www|go|m)\.)?twitch\.tv/(?:[^/]+/v|videos)/| + (?:(?:www|go|m)\.)?twitch\.tv/(?:[^/]+/v(?:ideo)?|videos)/| player\.twitch\.tv/\?.*?\bvideo=v ) (?P<id>\d+) @@ -295,6 +296,9 @@ class TwitchVodIE(TwitchItemBaseIE): }, { 'url': 'https://m.twitch.tv/beagsandjam/v/247478721', 'only_matching': True, + }, { + 'url': 'https://www.twitch.tv/northernlion/video/291940395', + 'only_matching': True, }] def _real_extract(self, url): @@ -663,8 +667,8 @@ class TwitchClipsIE(TwitchBaseIE): for option in status['quality_options']: if not isinstance(option, dict): continue - source = option.get('source') - if not source or not isinstance(source, compat_str): + source = url_or_none(option.get('source')) + if not source: continue formats.append({ 'url': source, diff --git a/youtube_dl/extractor/udemy.py b/youtube_dl/extractor/udemy.py index a719699..79c45f8 100644 --- a/youtube_dl/extractor/udemy.py +++ b/youtube_dl/extractor/udemy.py @@ -20,6 +20,7 @@ from ..utils import ( sanitized_Request, try_get, unescapeHTML, + url_or_none, urlencode_postdata, ) @@ -265,8 +266,8 @@ class UdemyIE(InfoExtractor): if not isinstance(source_list, list): return for source in source_list: - video_url = source.get('file') or source.get('src') - if not video_url or not isinstance(video_url, compat_str): + video_url = url_or_none(source.get('file') or source.get('src')) + if not video_url: continue if source.get('type') == 'application/x-mpegURL' or determine_ext(video_url) == 'm3u8': formats.extend(self._extract_m3u8_formats( @@ -293,8 +294,8 @@ class UdemyIE(InfoExtractor): continue if track.get('kind') != 'captions': continue - src = track.get('src') - if not src or not isinstance(src, compat_str): + src = url_or_none(track.get('src')) + if not src: continue lang = track.get('language') or track.get( 'srclang') or track.get('label') @@ -314,8 +315,8 @@ class UdemyIE(InfoExtractor): for cc in captions: if not isinstance(cc, dict): continue - cc_url = cc.get('url') - if not cc_url or not isinstance(cc_url, compat_str): + cc_url = url_or_none(cc.get('url')) + if not cc_url: continue lang = try_get(cc, lambda x: x['locale']['locale'], compat_str) sub_dict = (automatic_captions if cc.get('source') == 'auto' diff --git a/youtube_dl/extractor/vgtv.py b/youtube_dl/extractor/vgtv.py index c21a09c..fe7a26b 100644 --- a/youtube_dl/extractor/vgtv.py +++ b/youtube_dl/extractor/vgtv.py @@ -24,6 +24,7 @@ class VGTVIE(XstreamIE): 'aftenposten.no/webtv': 'aptv', 'ap.vgtv.no/webtv': 'aptv', 'tv.aftonbladet.se/abtv': 'abtv', + 'www.aftonbladet.se/tv': 'abtv', } _APP_NAME_TO_VENDOR = { @@ -44,7 +45,7 @@ class VGTVIE(XstreamIE): (?: (?:\#!/)?(?:video|live)/| embed?.*id=| - articles/ + a(?:rticles)?/ )| (?P<appname> %s @@ -143,6 +144,10 @@ class VGTVIE(XstreamIE): 'url': 'http://tv.aftonbladet.se/abtv/articles/36015', 'only_matching': True, }, + { + 'url': 'https://www.aftonbladet.se/tv/a/36015', + 'only_matching': True, + }, { 'url': 'abtv:140026', 'only_matching': True, @@ -178,13 +183,15 @@ class VGTVIE(XstreamIE): streams = data['streamUrls'] stream_type = data.get('streamType') - + is_live = stream_type == 'live' formats = [] hls_url = streams.get('hls') if hls_url: formats.extend(self._extract_m3u8_formats( - hls_url, video_id, 'mp4', m3u8_id='hls', fatal=False)) + hls_url, video_id, 'mp4', + entry_protocol='m3u8' if is_live else 'm3u8_native', + m3u8_id='hls', fatal=False)) hds_url = streams.get('hds') if hds_url: @@ -229,13 +236,13 @@ class VGTVIE(XstreamIE): info.update({ 'id': video_id, - 'title': self._live_title(data['title']) if stream_type == 'live' else data['title'], + 'title': self._live_title(data['title']) if is_live else data['title'], 'description': data['description'], 'thumbnail': data['images']['main'] + '?t[]=900x506q80', 'timestamp': data['published'], 'duration': float_or_none(data['duration'], 1000), 'view_count': data['displays'], - 'is_live': True if stream_type == 'live' else False, + 'is_live': is_live, }) return info diff --git a/youtube_dl/extractor/vidme.py b/youtube_dl/extractor/vidme.py index 59adb23..174e69c 100644 --- a/youtube_dl/extractor/vidme.py +++ b/youtube_dl/extractor/vidme.py @@ -3,15 +3,13 @@ from __future__ import unicode_literals import itertools from .common import InfoExtractor -from ..compat import ( - compat_HTTPError, - compat_str, -) +from ..compat import compat_HTTPError from ..utils import ( ExtractorError, int_or_none, float_or_none, parse_iso8601, + url_or_none, ) @@ -166,8 +164,8 @@ class VidmeIE(InfoExtractor): formats = [] for f in video.get('formats', []): - format_url = f.get('uri') - if not format_url or not isinstance(format_url, compat_str): + format_url = url_or_none(f.get('uri')) + if not format_url: continue format_type = f.get('type') if format_type == 'dash': diff --git a/youtube_dl/extractor/vidzi.py b/youtube_dl/extractor/vidzi.py index d702834..42ea495 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|si)/(?:embed-)?(?P<id>[0-9a-zA-Z]+)' + _VALID_URL = r'https?://(?:www\.)?vidzi\.(?:tv|cc|si|nu)/(?:embed-)?(?P<id>[0-9a-zA-Z]+)' _TESTS = [{ 'url': 'http://vidzi.tv/cghql9yq6emu.html', 'md5': '4f16c71ca0c8c8635ab6932b5f3f1660', @@ -35,6 +35,9 @@ class VidziIE(InfoExtractor): }, { 'url': 'https://vidzi.si/rph9gztxj1et.html', 'only_matching': True, + }, { + 'url': 'http://vidzi.nu/cghql9yq6emu.html', + 'only_matching': True, }] def _real_extract(self, url): diff --git a/youtube_dl/extractor/vimeo.py b/youtube_dl/extractor/vimeo.py index 3baa2d0..e49b233 100644 --- a/youtube_dl/extractor/vimeo.py +++ b/youtube_dl/extractor/vimeo.py @@ -539,9 +539,10 @@ class VimeoIE(VimeoBaseInfoExtractor): # We try to find out to which variable is assigned the config dic m_variable_name = re.search(r'(\w)\.video\.id', webpage) if m_variable_name is not None: - config_re = r'%s=({[^}].+?});' % re.escape(m_variable_name.group(1)) + config_re = [r'%s=({[^}].+?});' % re.escape(m_variable_name.group(1))] else: config_re = [r' = {config:({.+?}),assets:', r'(?:[abc])=({.+?});'] + config_re.append(r'\bvar\s+r\s*=\s*({.+?})\s*;') config = self._search_regex(config_re, webpage, 'info section', flags=re.DOTALL) config = json.loads(config) diff --git a/youtube_dl/extractor/viqeo.py b/youtube_dl/extractor/viqeo.py new file mode 100644 index 0000000..be7dfa8 --- /dev/null +++ b/youtube_dl/extractor/viqeo.py @@ -0,0 +1,99 @@ +# coding: utf-8 +from __future__ import unicode_literals + +import re + +from .common import InfoExtractor +from ..utils import ( + int_or_none, + str_or_none, + url_or_none, +) + + +class ViqeoIE(InfoExtractor): + _VALID_URL = r'''(?x) + (?: + viqeo:| + https?://cdn\.viqeo\.tv/embed/*\?.*?\bvid=| + https?://api\.viqeo\.tv/v\d+/data/startup?.*?\bvideo(?:%5B%5D|\[\])= + ) + (?P<id>[\da-f]+) + ''' + _TESTS = [{ + 'url': 'https://cdn.viqeo.tv/embed/?vid=cde96f09d25f39bee837', + 'md5': 'a169dd1a6426b350dca4296226f21e76', + 'info_dict': { + 'id': 'cde96f09d25f39bee837', + 'ext': 'mp4', + 'title': 'cde96f09d25f39bee837', + 'thumbnail': r're:^https?://.*\.jpg$', + 'duration': 76, + }, + }, { + 'url': 'viqeo:cde96f09d25f39bee837', + 'only_matching': True, + }, { + 'url': 'https://api.viqeo.tv/v1/data/startup?video%5B%5D=71bbec412ade45c3216c&profile=112', + 'only_matching': True, + }] + + @staticmethod + def _extract_urls(webpage): + return [ + mobj.group('url') + for mobj in re.finditer( + r'<iframe[^>]+\bsrc=(["\'])(?P<url>(?:https?:)?//cdn\.viqeo\.tv/embed/*\?.*?\bvid=[\da-f]+.*?)\1', + webpage)] + + def _real_extract(self, url): + video_id = self._match_id(url) + + webpage = self._download_webpage( + 'https://cdn.viqeo.tv/embed/?vid=%s' % video_id, video_id) + + data = self._parse_json( + self._search_regex( + r'SLOT_DATA\s*=\s*({.+?})\s*;', webpage, 'slot data'), + video_id) + + formats = [] + thumbnails = [] + for media_file in data['mediaFiles']: + if not isinstance(media_file, dict): + continue + media_url = url_or_none(media_file.get('url')) + if not media_url or not media_url.startswith(('http', '//')): + continue + media_type = str_or_none(media_file.get('type')) + if not media_type: + continue + media_kind = media_type.split('/')[0].lower() + f = { + 'url': media_url, + 'width': int_or_none(media_file.get('width')), + 'height': int_or_none(media_file.get('height')), + } + format_id = str_or_none(media_file.get('quality')) + if media_kind == 'image': + f['id'] = format_id + thumbnails.append(f) + elif media_kind in ('video', 'audio'): + is_audio = media_kind == 'audio' + f.update({ + 'format_id': 'audio' if is_audio else format_id, + 'fps': int_or_none(media_file.get('fps')), + 'vcodec': 'none' if is_audio else None, + }) + formats.append(f) + self._sort_formats(formats) + + duration = int_or_none(data.get('duration')) + + return { + 'id': video_id, + 'title': video_id, + 'duration': duration, + 'thumbnails': thumbnails, + 'formats': formats, + } diff --git a/youtube_dl/extractor/viu.py b/youtube_dl/extractor/viu.py index 5cf9359..3bd3752 100644 --- a/youtube_dl/extractor/viu.py +++ b/youtube_dl/extractor/viu.py @@ -195,16 +195,29 @@ class ViuOTTIE(InfoExtractor): 'skip': 'Geo-restricted to Hong Kong', }] + _AREA_ID = { + 'HK': 1, + 'SG': 2, + 'TH': 4, + 'PH': 5, + } + def _real_extract(self, url): country_code, video_id = re.match(self._VALID_URL, url).groups() + query = { + 'r': 'vod/ajax-detail', + 'platform_flag_label': 'web', + 'product_id': video_id, + } + + area_id = self._AREA_ID.get(country_code.upper()) + if area_id: + query['area_id'] = area_id + product_data = self._download_json( 'http://www.viu.com/ott/%s/index.php' % country_code, video_id, - 'Downloading video info', query={ - 'r': 'vod/ajax-detail', - 'platform_flag_label': 'web', - 'product_id': video_id, - })['data'] + 'Downloading video info', query=query)['data'] video_data = product_data.get('current_product') if not video_data: @@ -214,6 +227,9 @@ class ViuOTTIE(InfoExtractor): 'https://d1k2us671qcoau.cloudfront.net/distribute_web_%s.php' % country_code, video_id, 'Downloading stream info', query={ 'ccs_product_id': video_data['ccs_product_id'], + }, headers={ + 'Referer': url, + 'Origin': re.search(r'https?://[^/]+', url).group(0), })['data']['stream'] stream_sizes = stream_data.get('size', {}) diff --git a/youtube_dl/extractor/vk.py b/youtube_dl/extractor/vk.py index 29002b3..ef8b9bc 100644 --- a/youtube_dl/extractor/vk.py +++ b/youtube_dl/extractor/vk.py @@ -17,9 +17,11 @@ from ..utils import ( int_or_none, orderedSet, remove_start, + str_or_none, str_to_int, unescapeHTML, unified_timestamp, + url_or_none, urlencode_postdata, ) from .dailymotion import DailymotionIE @@ -105,10 +107,10 @@ class VKIE(VKBaseIE): 'ext': 'mp4', 'title': 'ProtivoGunz - Хуёвая песня', 'uploader': 're:(?:Noize MC|Alexander Ilyashenko).*', + 'uploader_id': '-77521', 'duration': 195, - 'timestamp': 1329060660, + 'timestamp': 1329049880, 'upload_date': '20120212', - 'view_count': int, }, }, { @@ -117,12 +119,12 @@ class VKIE(VKBaseIE): 'info_dict': { 'id': '165548505', 'ext': 'mp4', - 'uploader': 'Tom Cruise', 'title': 'No name', + 'uploader': 'Tom Cruise', + 'uploader_id': '205387401', 'duration': 9, - 'timestamp': 1374374880, - 'upload_date': '20130721', - 'view_count': int, + 'timestamp': 1374364108, + 'upload_date': '20130720', } }, { @@ -206,10 +208,10 @@ class VKIE(VKBaseIE): 'id': 'V3K4mi0SYkc', 'ext': 'webm', 'title': "DSWD Awards 'Children's Joy Foundation, Inc.' Certificate of Registration and License to Operate", - 'description': 'md5:d9903938abdc74c738af77f527ca0596', - 'duration': 178, + 'description': 'md5:bf9c26cfa4acdfb146362682edd3827a', + 'duration': 179, 'upload_date': '20130116', - 'uploader': "Children's Joy Foundation", + 'uploader': "Children's Joy Foundation Inc.", 'uploader_id': 'thecjf', 'view_count': int, }, @@ -221,6 +223,7 @@ class VKIE(VKBaseIE): 'id': 'k3lz2cmXyRuJQSjGHUv', 'ext': 'mp4', 'title': 'md5:d52606645c20b0ddbb21655adaa4f56f', + # TODO: fix test by fixing dailymotion description extraction 'description': 'md5:c651358f03c56f1150b555c26d90a0fd', 'uploader': 'AniLibria.Tv', 'upload_date': '20160914', @@ -240,9 +243,12 @@ class VKIE(VKBaseIE): 'ext': 'mp4', 'title': 'S-Dance, репетиции к The way show', 'uploader': 'THE WAY SHOW | 17 апреля', - 'timestamp': 1454870100, + 'uploader_id': '-110305615', + 'timestamp': 1454859345, 'upload_date': '20160207', - 'view_count': int, + }, + 'params': { + 'skip_download': True, }, }, { @@ -295,7 +301,7 @@ class VKIE(VKBaseIE): video_id = mobj.group('videoid') if video_id: - info_url = 'https://vk.com/al_video.php?act=show&al=1&module=video&video=%s' % video_id + info_url = 'https://vk.com/al_video.php?act=show_inline&al=1&video=' + video_id # Some videos (removed?) can only be downloaded with list id specified list_id = mobj.group('list_id') if list_id: @@ -345,6 +351,9 @@ class VKIE(VKBaseIE): r'<!>This video is no longer available, because its author has been blocked.': 'Video %s is no longer available, because its author has been blocked.', + + r'<!>This video is no longer available, because it has been deleted.': + 'Video %s is no longer available, because it has been deleted.', } for error_re, error_msg in ERRORS.items(): @@ -393,7 +402,8 @@ class VKIE(VKBaseIE): if not data: data = self._parse_json( self._search_regex( - r'<!json>\s*({.+?})\s*<!>', info_page, 'json', default='{}'), + [r'<!json>\s*({.+?})\s*<!>', r'<!json>\s*({.+})'], + info_page, 'json', default='{}'), video_id) if data: data = data['player']['params'][0] @@ -415,7 +425,7 @@ class VKIE(VKBaseIE): timestamp = unified_timestamp(self._html_search_regex( r'class=["\']mv_info_date[^>]+>([^<]+)(?:<|from)', info_page, - 'upload date', fatal=False)) + 'upload date', default=None)) or int_or_none(data.get('date')) view_count = str_to_int(self._search_regex( r'class=["\']mv_views_count[^>]+>\s*([\d,.]+)', @@ -423,7 +433,8 @@ class VKIE(VKBaseIE): formats = [] for format_id, format_url in data.items(): - if not isinstance(format_url, compat_str) or not format_url.startswith(('http', '//', 'rtmp')): + format_url = url_or_none(format_url) + if not format_url or not format_url.startswith(('http', '//', 'rtmp')): continue if (format_id.startswith(('url', 'cache')) or format_id in ('extra_data', 'live_mp4', 'postlive_mp4')): @@ -452,9 +463,12 @@ class VKIE(VKBaseIE): 'title': title, 'thumbnail': data.get('jpg'), 'uploader': data.get('md_author'), + 'uploader_id': str_or_none(data.get('author_id')), 'duration': data.get('duration'), 'timestamp': timestamp, 'view_count': view_count, + 'like_count': int_or_none(data.get('liked')), + 'dislike_count': int_or_none(data.get('nolikes')), 'is_live': is_live, } diff --git a/youtube_dl/extractor/vlive.py b/youtube_dl/extractor/vlive.py index 64d0224..0b5165f 100644 --- a/youtube_dl/extractor/vlive.py +++ b/youtube_dl/extractor/vlive.py @@ -57,7 +57,7 @@ class VLiveIE(InfoExtractor): video_id = self._match_id(url) webpage = self._download_webpage( - 'http://www.vlive.tv/video/%s' % video_id, video_id) + 'https://www.vlive.tv/video/%s' % video_id, video_id) VIDEO_PARAMS_RE = r'\bvlive\.video\.init\(([^)]+)' VIDEO_PARAMS_FIELD = 'video params' @@ -108,11 +108,11 @@ class VLiveIE(InfoExtractor): def _live(self, video_id, webpage): init_page = self._download_webpage( - 'http://www.vlive.tv/video/init/view', + 'https://www.vlive.tv/video/init/view', video_id, note='Downloading live webpage', data=urlencode_postdata({'videoSeq': video_id}), headers={ - 'Referer': 'http://www.vlive.tv/video/%s' % video_id, + 'Referer': 'https://www.vlive.tv/video/%s' % video_id, 'Content-Type': 'application/x-www-form-urlencoded' }) diff --git a/youtube_dl/extractor/vrv.py b/youtube_dl/extractor/vrv.py index 64b13f0..921e9e1 100644 --- a/youtube_dl/extractor/vrv.py +++ b/youtube_dl/extractor/vrv.py @@ -72,7 +72,7 @@ class VRVBaseIE(InfoExtractor): class VRVIE(VRVBaseIE): IE_NAME = 'vrv' _VALID_URL = r'https?://(?:www\.)?vrv\.co/watch/(?P<id>[A-Z0-9]+)' - _TEST = { + _TESTS = [{ 'url': 'https://vrv.co/watch/GR9PNZ396/Hidden-America-with-Jonah-Ray:BOSTON-WHERE-THE-PAST-IS-THE-PRESENT', 'info_dict': { 'id': 'GR9PNZ396', @@ -85,7 +85,28 @@ class VRVIE(VRVBaseIE): # m3u8 download 'skip_download': True, }, - } + }] + + def _extract_vrv_formats(self, url, video_id, stream_format, audio_lang, hardsub_lang): + if not url or stream_format not in ('hls', 'dash'): + return [] + stream_id = hardsub_lang or audio_lang + format_id = '%s-%s' % (stream_format, stream_id) + if stream_format == 'hls': + adaptive_formats = self._extract_m3u8_formats( + url, video_id, 'mp4', m3u8_id=format_id, + note='Downloading %s m3u8 information' % stream_id, + fatal=False) + elif stream_format == 'dash': + adaptive_formats = self._extract_mpd_formats( + url, video_id, mpd_id=format_id, + note='Downloading %s MPD information' % stream_id, + fatal=False) + if audio_lang: + for f in adaptive_formats: + if f.get('acodec') != 'none': + f['language'] = audio_lang + return adaptive_formats def _real_extract(self, url): video_id = self._match_id(url) @@ -115,26 +136,9 @@ class VRVIE(VRVBaseIE): for stream_type, streams in streams_json.get('streams', {}).items(): if stream_type in ('adaptive_hls', 'adaptive_dash'): for stream in streams.values(): - stream_url = stream.get('url') - if not stream_url: - continue - stream_id = stream.get('hardsub_locale') or audio_locale - format_id = '%s-%s' % (stream_type.split('_')[1], stream_id) - if stream_type == 'adaptive_hls': - adaptive_formats = self._extract_m3u8_formats( - stream_url, video_id, 'mp4', m3u8_id=format_id, - note='Downloading %s m3u8 information' % stream_id, - fatal=False) - else: - adaptive_formats = self._extract_mpd_formats( - stream_url, video_id, mpd_id=format_id, - note='Downloading %s MPD information' % stream_id, - fatal=False) - if audio_locale: - for f in adaptive_formats: - if f.get('acodec') != 'none': - f['language'] = audio_locale - formats.extend(adaptive_formats) + formats.extend(self._extract_vrv_formats( + stream.get('url'), video_id, stream_type.split('_')[1], + audio_locale, stream.get('hardsub_locale'))) self._sort_formats(formats) subtitles = {} diff --git a/youtube_dl/extractor/watchbox.py b/youtube_dl/extractor/watchbox.py index be0bcba..5a4e46e 100644 --- a/youtube_dl/extractor/watchbox.py +++ b/youtube_dl/extractor/watchbox.py @@ -10,6 +10,7 @@ from ..utils import ( js_to_json, strip_or_none, try_get, + unescapeHTML, unified_timestamp, ) @@ -67,11 +68,20 @@ class WatchBoxIE(InfoExtractor): webpage = self._download_webpage(url, video_id) - source = self._parse_json( + player_config = self._parse_json( self._search_regex( - r'(?s)source["\']?\s*:\s*({.+?})\s*[,}]', webpage, 'source', - default='{}'), - video_id, transform_source=js_to_json, fatal=False) or {} + r'data-player-conf=(["\'])(?P<data>{.+?})\1', webpage, + 'player config', default='{}', group='data'), + video_id, transform_source=unescapeHTML, fatal=False) + + if not player_config: + player_config = self._parse_json( + self._search_regex( + r'playerConf\s*=\s*({.+?})\s*;', webpage, 'player config', + default='{}'), + video_id, transform_source=js_to_json, fatal=False) or {} + + source = player_config.get('source') or {} video_id = compat_str(source.get('videoId') or video_id) diff --git a/youtube_dl/extractor/webofstories.py b/youtube_dl/extractor/webofstories.py index 1eb1f67..f2b8d19 100644 --- a/youtube_dl/extractor/webofstories.py +++ b/youtube_dl/extractor/webofstories.py @@ -4,7 +4,10 @@ from __future__ import unicode_literals import re from .common import InfoExtractor -from ..utils import int_or_none +from ..utils import ( + int_or_none, + orderedSet, +) class WebOfStoriesIE(InfoExtractor): @@ -133,8 +136,10 @@ class WebOfStoriesPlaylistIE(InfoExtractor): webpage = self._download_webpage(url, playlist_id) entries = [ - self.url_result('http://www.webofstories.com/play/%s' % video_number, 'WebOfStories') - for video_number in set(re.findall(r'href="/playAll/%s\?sId=(\d+)"' % playlist_id, webpage)) + self.url_result( + 'http://www.webofstories.com/play/%s' % video_id, + 'WebOfStories', video_id=video_id) + for video_id in orderedSet(re.findall(r'\bid=["\']td_(\d+)', webpage)) ] title = self._search_regex( diff --git a/youtube_dl/extractor/xfileshare.py b/youtube_dl/extractor/xfileshare.py index bc3239f..b38c7a7 100644 --- a/youtube_dl/extractor/xfileshare.py +++ b/youtube_dl/extractor/xfileshare.py @@ -23,7 +23,7 @@ class XFileShareIE(InfoExtractor): (r'powerwatch\.pw', 'PowerWatch'), (r'rapidvideo\.ws', 'Rapidvideo.ws'), (r'thevideobee\.to', 'TheVideoBee'), - (r'vidto\.me', 'Vidto'), + (r'vidto\.(?:me|se)', 'Vidto'), (r'streamin\.to', 'Streamin.To'), (r'xvidstage\.com', 'XVIDSTAGE'), (r'vidabc\.com', 'Vid ABC'), @@ -115,7 +115,10 @@ class XFileShareIE(InfoExtractor): 'only_matching': True, }, { 'url': 'http://www.fastvideo.me/k8604r8nk8sn/FAST_FURIOUS_8_-_Trailer_italiano_ufficiale.mp4.html', - 'only_matching': True + 'only_matching': True, + }, { + 'url': 'http://vidto.se/1tx1pf6t12cg.html', + 'only_matching': True, }] @staticmethod diff --git a/youtube_dl/extractor/xhamster.py b/youtube_dl/extractor/xhamster.py index d1bc992..68a4803 100644 --- a/youtube_dl/extractor/xhamster.py +++ b/youtube_dl/extractor/xhamster.py @@ -13,6 +13,7 @@ from ..utils import ( parse_duration, try_get, unified_strdate, + url_or_none, ) @@ -137,7 +138,8 @@ class XHamsterIE(InfoExtractor): else: format_url = format_item filesize = None - if not isinstance(format_url, compat_str): + format_url = url_or_none(format_url) + if not format_url: continue formats.append({ 'format_id': '%s-%s' % (format_id, quality), @@ -198,7 +200,8 @@ class XHamsterIE(InfoExtractor): default='{}'), video_id, fatal=False) for format_id, format_url in sources.items(): - if not isinstance(format_url, compat_str): + format_url = url_or_none(format_url) + if not format_url: continue if format_url in format_urls: continue diff --git a/youtube_dl/extractor/yapfiles.py b/youtube_dl/extractor/yapfiles.py index 7fafbf5..cfb368d 100644 --- a/youtube_dl/extractor/yapfiles.py +++ b/youtube_dl/extractor/yapfiles.py @@ -4,12 +4,12 @@ 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, + url_or_none, ) @@ -80,9 +80,9 @@ class YapFilesIE(InfoExtractor): 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): + format_url = url_or_none(playlist.get( + 'file%s' % ('_hd' if is_hd else ''))) + if not format_url: continue formats.append({ 'url': format_url, diff --git a/youtube_dl/extractor/youjizz.py b/youtube_dl/extractor/youjizz.py index f33fabe..dff69fc 100644 --- a/youtube_dl/extractor/youjizz.py +++ b/youtube_dl/extractor/youjizz.py @@ -3,11 +3,11 @@ from __future__ import unicode_literals import re from .common import InfoExtractor -from ..compat import compat_str from ..utils import ( determine_ext, int_or_none, parse_duration, + url_or_none, ) @@ -50,8 +50,8 @@ class YouJizzIE(InfoExtractor): for encoding in encodings: if not isinstance(encoding, dict): continue - format_url = encoding.get('filename') - if not isinstance(format_url, compat_str): + format_url = url_or_none(encoding.get('filename')) + if not format_url: continue if determine_ext(format_url) == 'm3u8': formats.extend(self._extract_m3u8_formats( diff --git a/youtube_dl/extractor/youporn.py b/youtube_dl/extractor/youporn.py index 547adef..ea0bce7 100644 --- a/youtube_dl/extractor/youporn.py +++ b/youtube_dl/extractor/youporn.py @@ -3,13 +3,13 @@ from __future__ import unicode_literals import re from .common import InfoExtractor -from ..compat import compat_str from ..utils import ( int_or_none, sanitized_Request, str_to_int, unescapeHTML, unified_strdate, + url_or_none, ) from ..aes import aes_decrypt_text @@ -88,8 +88,8 @@ class YouPornIE(InfoExtractor): for definition in definitions: if not isinstance(definition, dict): continue - video_url = definition.get('videoUrl') - if isinstance(video_url, compat_str) and video_url: + video_url = url_or_none(definition.get('videoUrl')) + if video_url: links.append(video_url) # Fallback #1, this also contains extra low quality 180p format diff --git a/youtube_dl/extractor/yourporn.py b/youtube_dl/extractor/yourporn.py new file mode 100644 index 0000000..6602f7c --- /dev/null +++ b/youtube_dl/extractor/yourporn.py @@ -0,0 +1,41 @@ +from __future__ import unicode_literals + +from .common import InfoExtractor +from ..utils import urljoin + + +class YourPornIE(InfoExtractor): + _VALID_URL = r'https?://(?:www\.)?yourporn\.sexy/post/(?P<id>[^/?#&.]+)' + _TEST = { + 'url': 'https://yourporn.sexy/post/57ffcb2e1179b.html', + 'md5': '6f8682b6464033d87acaa7a8ff0c092e', + 'info_dict': { + 'id': '57ffcb2e1179b', + 'ext': 'mp4', + 'title': 'md5:c9f43630bd968267672651ba905a7d35', + 'thumbnail': r're:^https?://.*\.jpg$', + }, + } + + def _real_extract(self, url): + video_id = self._match_id(url) + + webpage = self._download_webpage(url, video_id) + + video_url = urljoin(url, self._parse_json( + self._search_regex( + r'data-vnfo=(["\'])(?P<data>{.+?})\1', webpage, 'data info', + group='data'), + video_id)[video_id]) + + title = (self._search_regex( + r'<[^>]+\bclass=["\']PostEditTA[^>]+>([^<]+)', webpage, 'title', + default=None) or self._og_search_description(webpage)).strip() + thumbnail = self._og_search_thumbnail(webpage) + + return { + 'id': video_id, + 'url': video_url, + 'title': title, + 'thumbnail': thumbnail, + } diff --git a/youtube_dl/extractor/youtube.py b/youtube_dl/extractor/youtube.py index 89c8b7f..2704742 100644 --- a/youtube_dl/extractor/youtube.py +++ b/youtube_dl/extractor/youtube.py @@ -64,7 +64,7 @@ class YoutubeBaseInfoExtractor(InfoExtractor): # If True it will raise an error if no login info is provided _LOGIN_REQUIRED = False - _PLAYLIST_ID_RE = r'(?:PL|LL|EC|UU|FL|RD|UL|TL)[0-9A-Za-z-_]{10,}' + _PLAYLIST_ID_RE = r'(?:PL|LL|EC|UU|FL|RD|UL|TL|OLAK5uy_)[0-9A-Za-z-_]{10,}' def _set_language(self): self._set_cookie( @@ -178,13 +178,13 @@ class YoutubeBaseInfoExtractor(InfoExtractor): warn('Unable to extract result entry') return False - tfa = try_get(res, lambda x: x[0][0], list) - if tfa: - tfa_str = try_get(tfa, lambda x: x[2], compat_str) - if tfa_str == 'TWO_STEP_VERIFICATION': + login_challenge = try_get(res, lambda x: x[0][0], list) + if login_challenge: + challenge_str = try_get(login_challenge, lambda x: x[2], compat_str) + if challenge_str == 'TWO_STEP_VERIFICATION': # SEND_SUCCESS - TFA code has been successfully sent to phone # QUOTA_EXCEEDED - reached the limit of TFA codes - status = try_get(tfa, lambda x: x[5], compat_str) + status = try_get(login_challenge, lambda x: x[5], compat_str) if status == 'QUOTA_EXCEEDED': warn('Exceeded the limit of TFA codes, try later') return False @@ -228,6 +228,17 @@ class YoutubeBaseInfoExtractor(InfoExtractor): check_cookie_url = try_get( tfa_results, lambda x: x[0][-1][2], compat_str) + else: + CHALLENGES = { + 'LOGIN_CHALLENGE': "This device isn't recognized. For your security, Google wants to make sure it's really you.", + 'USERNAME_RECOVERY': 'Please provide additional information to aid in the recovery process.', + 'REAUTH': "There is something unusual about your activity. For your security, Google wants to make sure it's really you.", + } + challenge = CHALLENGES.get( + challenge_str, + '%s returned error %s.' % (self.IE_NAME, challenge_str)) + warn('%s\nGo to https://accounts.google.com/, login and solve a challenge.' % challenge) + return False else: check_cookie_url = try_get(res, lambda x: x[2], compat_str) @@ -1167,7 +1178,9 @@ class YoutubeIE(YoutubeBaseInfoExtractor): def _parse_sig_js(self, jscode): funcname = self._search_regex( (r'(["\'])signature\1\s*,\s*(?P<sig>[a-zA-Z0-9$]+)\(', - r'\.sig\|\|(?P<sig>[a-zA-Z0-9$]+)\('), + r'\.sig\|\|(?P<sig>[a-zA-Z0-9$]+)\(', + r'yt\.akamaized\.net/\)\s*\|\|\s*.*?\s*c\s*&&\s*d\.set\([^,]+\s*,\s*(?P<sig>[a-zA-Z0-9$]+)\(', + r'\bc\s*&&\s*d\.set\([^,]+\s*,\s*(?P<sig>[a-zA-Z0-9$]+)\('), jscode, 'Initial JS player signature function name', group='sig') jsi = JSInterpreter(jscode) @@ -2112,7 +2125,7 @@ class YoutubePlaylistIE(YoutubePlaylistBaseInfoExtractor): youtu\.be/[0-9A-Za-z_-]{11}\?.*?\blist= ) ( - (?:PL|LL|EC|UU|FL|RD|UL|TL)?[0-9A-Za-z-_]{10,} + (?:PL|LL|EC|UU|FL|RD|UL|TL|OLAK5uy_)?[0-9A-Za-z-_]{10,} # Top tracks, they can also include dots |(?:MC)[\w\.]* ) @@ -2250,6 +2263,10 @@ class YoutubePlaylistIE(YoutubePlaylistBaseInfoExtractor): }, { 'url': 'TLGGrESM50VT6acwMjAyMjAxNw', 'only_matching': True, + }, { + # music album playlist + 'url': 'OLAK5uy_m4xAFdmMC5rX3Ji3g93pQe3hqLZw_9LhM', + 'only_matching': True, }] def _real_initialize(self): diff --git a/youtube_dl/extractor/zattoo.py b/youtube_dl/extractor/zattoo.py index b5a3a07..fb167c1 100644 --- a/youtube_dl/extractor/zattoo.py +++ b/youtube_dl/extractor/zattoo.py @@ -13,6 +13,7 @@ from ..utils import ( ExtractorError, int_or_none, try_get, + url_or_none, urlencode_postdata, ) @@ -150,8 +151,8 @@ class ZattooBaseIE(InfoExtractor): for watch in watch_urls: if not isinstance(watch, dict): continue - watch_url = watch.get('url') - if not watch_url or not isinstance(watch_url, compat_str): + watch_url = url_or_none(watch.get('url')) + if not watch_url: continue format_id_list = [stream_type] maxrate = watch.get('maxrate') diff --git a/youtube_dl/extractor/zdf.py b/youtube_dl/extractor/zdf.py index bb9020c..afa3f6c 100644 --- a/youtube_dl/extractor/zdf.py +++ b/youtube_dl/extractor/zdf.py @@ -15,6 +15,7 @@ from ..utils import ( try_get, unified_timestamp, update_url_query, + url_or_none, urljoin, ) @@ -67,8 +68,8 @@ class ZDFIE(ZDFBaseIE): def _extract_subtitles(src): subtitles = {} for caption in try_get(src, lambda x: x['captions'], list) or []: - subtitle_url = caption.get('uri') - if subtitle_url and isinstance(subtitle_url, compat_str): + subtitle_url = url_or_none(caption.get('uri')) + if subtitle_url: lang = caption.get('language', 'deu') subtitles.setdefault(lang, []).append({ 'url': subtitle_url, @@ -76,8 +77,8 @@ class ZDFIE(ZDFBaseIE): return subtitles def _extract_format(self, video_id, formats, format_urls, meta): - format_url = meta.get('url') - if not format_url or not isinstance(format_url, compat_str): + format_url = url_or_none(meta.get('url')) + if not format_url: return if format_url in format_urls: return @@ -152,7 +153,8 @@ class ZDFIE(ZDFBaseIE): content, lambda x: x['teaserImageRef']['layouts'], dict) if layouts: for layout_key, layout_url in layouts.items(): - if not isinstance(layout_url, compat_str): + layout_url = url_or_none(layout_url) + if not layout_url: continue thumbnail = { 'url': layout_url, diff --git a/youtube_dl/options.py b/youtube_dl/options.py index e83d546..e7d8e89 100644 --- a/youtube_dl/options.py +++ b/youtube_dl/options.py @@ -841,11 +841,11 @@ def parseOpts(overrideArguments=None): postproc.add_option( '--prefer-avconv', action='store_false', dest='prefer_ffmpeg', - help='Prefer avconv over ffmpeg for running the postprocessors (default)') + help='Prefer avconv over ffmpeg for running the postprocessors') postproc.add_option( '--prefer-ffmpeg', action='store_true', dest='prefer_ffmpeg', - help='Prefer ffmpeg over avconv for running the postprocessors') + help='Prefer ffmpeg over avconv for running the postprocessors (default)') postproc.add_option( '--ffmpeg-location', '--avconv-location', metavar='PATH', dest='ffmpeg_location', diff --git a/youtube_dl/postprocessor/ffmpeg.py b/youtube_dl/postprocessor/ffmpeg.py index 3ea1afc..757b496 100644 --- a/youtube_dl/postprocessor/ffmpeg.py +++ b/youtube_dl/postprocessor/ffmpeg.py @@ -77,7 +77,7 @@ class FFmpegPostProcessor(PostProcessor): def _determine_executables(self): programs = ['avprobe', 'avconv', 'ffmpeg', 'ffprobe'] - prefer_ffmpeg = False + prefer_ffmpeg = True self.basename = None self.probe_basename = None @@ -85,7 +85,7 @@ class FFmpegPostProcessor(PostProcessor): self._paths = None self._versions = None if self._downloader: - prefer_ffmpeg = self._downloader.params.get('prefer_ffmpeg', False) + prefer_ffmpeg = self._downloader.params.get('prefer_ffmpeg', True) location = self._downloader.params.get('ffmpeg_location') if location is not None: if not os.path.exists(location): @@ -117,19 +117,19 @@ class FFmpegPostProcessor(PostProcessor): (p, get_exe_version(p, args=['-version'])) for p in programs) self._paths = dict((p, p) for p in programs) - if prefer_ffmpeg: - prefs = ('ffmpeg', 'avconv') - else: + if prefer_ffmpeg is False: prefs = ('avconv', 'ffmpeg') + else: + prefs = ('ffmpeg', 'avconv') for p in prefs: if self._versions[p]: self.basename = p break - if prefer_ffmpeg: - prefs = ('ffprobe', 'avprobe') - else: + if prefer_ffmpeg is False: prefs = ('avprobe', 'ffprobe') + else: + prefs = ('ffprobe', 'avprobe') for p in prefs: if self._versions[p]: self.probe_basename = p diff --git a/youtube_dl/utils.py b/youtube_dl/utils.py index 6a3199f..e84d35d 100644 --- a/youtube_dl/utils.py +++ b/youtube_dl/utils.py @@ -49,7 +49,6 @@ from .compat import ( compat_os_name, compat_parse_qs, compat_shlex_quote, - compat_socket_create_connection, compat_str, compat_struct_pack, compat_struct_unpack, @@ -82,7 +81,7 @@ def register_socks_protocols(): compiled_regex_type = type(re.compile('')) std_headers = { - 'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64; rv:59.0) Gecko/20100101 Firefox/59.0 (Chrome)', + 'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64; rv:59.0) Gecko/20100101 Firefox/59.0', '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', @@ -184,6 +183,7 @@ DATE_FORMATS_MONTH_FIRST.extend([ ]) PACKED_CODES_RE = r"}\('(.+)',(\d+),(\d+),'([^']+)'\.split\('\|'\)" +JSON_LD_RE = r'(?is)<script[^>]+type=(["\'])application/ld\+json\1[^>]*>(?P<json_ld>.+?)</script>' def preferredencoding(): @@ -881,13 +881,51 @@ def _create_http_connection(ydl_handler, http_class, is_https, *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: + # This is to workaround _create_connection() from socket where it will try all + # address data from getaddrinfo() including IPv6. This filters the result from + # getaddrinfo() based on the source_address value. + # This is based on the cpython socket.create_connection() function. + # https://github.com/python/cpython/blob/master/Lib/socket.py#L691 + def _create_connection(address, timeout=socket._GLOBAL_DEFAULT_TIMEOUT, source_address=None): + host, port = address + err = None + addrs = socket.getaddrinfo(host, port, 0, socket.SOCK_STREAM) + af = socket.AF_INET if '.' in source_address[0] else socket.AF_INET6 + ip_addrs = [addr for addr in addrs if addr[0] == af] + if addrs and not ip_addrs: + ip_version = 'v4' if af == socket.AF_INET else 'v6' + raise socket.error( + "No remote IP%s addresses available for connect, can't use '%s' as source address" + % (ip_version, source_address[0])) + for res in ip_addrs: + af, socktype, proto, canonname, sa = res + sock = None + try: + sock = socket.socket(af, socktype, proto) + if timeout is not socket._GLOBAL_DEFAULT_TIMEOUT: + sock.settimeout(timeout) + sock.bind(source_address) + sock.connect(sa) + err = None # Explicitly break reference cycle + return sock + except socket.error as _: + err = _ + if sock is not None: + sock.close() + if err is not None: + raise err + else: + raise socket.error('getaddrinfo returns an empty list') + if hasattr(hc, '_create_connection'): + hc._create_connection = _create_connection sa = (source_address, 0) if hasattr(hc, 'source_address'): # Python 2.7+ hc.source_address = sa else: # Python 2.6 def _hc_connect(self, *args, **kwargs): - sock = compat_socket_create_connection( + sock = _create_connection( (self.host, self.port), self.timeout, sa) if is_https: self.sock = ssl.wrap_socket( @@ -1865,6 +1903,13 @@ def strip_or_none(v): return None if v is None else v.strip() +def url_or_none(url): + if not url or not isinstance(url, compat_str): + return None + url = url.strip() + return url if re.match(r'^(?:[a-zA-Z][\da-zA-Z.+-]*:)?//', url) else None + + def parse_duration(s): if not isinstance(s, compat_basestring): return None @@ -2281,7 +2326,7 @@ def parse_age_limit(s): def strip_jsonp(code): return re.sub( r'''(?sx)^ - (?:window\.)?(?P<func_name>[a-zA-Z0-9_.$]+) + (?:window\.)?(?P<func_name>[a-zA-Z0-9_.$]*) (?:\s*&&\s*(?P=func_name))? \s*\(\s*(?P<callback_data>.*)\);? \s*?(?://[^\n]*)*$''', @@ -2432,7 +2477,7 @@ def parse_codecs(codecs_str): vcodec, acodec = None, None for full_codec in splited_codecs: codec = full_codec.split('.')[0] - if codec in ('avc1', 'avc2', 'avc3', 'avc4', 'vp9', 'vp8', 'hev1', 'hev2', 'h263', 'h264', 'mp4v', 'hvc1'): + if codec in ('avc1', 'avc2', 'avc3', 'avc4', 'vp9', 'vp8', 'hev1', 'hev2', 'h263', 'h264', 'mp4v', 'hvc1', 'av01'): if not vcodec: vcodec = full_codec elif codec in ('mp4a', 'opus', 'vorbis', 'mp3', 'aac', 'ac-3', 'ec-3', 'eac3', 'dtsc', 'dtse', 'dtsh', 'dtsl'): @@ -3561,7 +3606,7 @@ class PerRequestProxyHandler(compat_urllib_request.ProxyHandler): setattr(self, '%s_open' % type, lambda r, proxy='__noproxy__', type=type, meth=self.proxy_open: meth(r, proxy, type)) - return compat_urllib_request.ProxyHandler.__init__(self, proxies) + compat_urllib_request.ProxyHandler.__init__(self, proxies) def proxy_open(self, req, proxy, type): req_proxy = req.headers.get('Ytdl-request-proxy') diff --git a/youtube_dl/version.py b/youtube_dl/version.py index 49fef60..b078c49 100644 --- a/youtube_dl/version.py +++ b/youtube_dl/version.py @@ -1,3 +1,3 @@ from __future__ import unicode_literals -__version__ = '2018.06.18' +__version__ = '2018.09.10' -- 2.41.1