From b8d8e13c1f9e4d3cdd7d41c5c9d711a36dd5f9c3 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Rog=C3=A9rio=20Brito?= Date: Thu, 9 Feb 2017 05:09:12 -0200 Subject: [PATCH] New upstream version 2017.02.07 --- .github/ISSUE_TEMPLATE.md | 58 - .github/ISSUE_TEMPLATE_tmpl.md | 58 - .github/PULL_REQUEST_TEMPLATE.md | 27 - .gitignore | 48 - .travis.yml | 18 - AUTHORS | 192 -- CONTRIBUTING.md | 298 -- ChangeLog | 379 +++ README.md | 87 +- README.txt | 1760 ++++++++++++ devscripts/buildserver.py | 2 - docs/supportedsites.md | 55 +- setup.cfg | 6 - test/test_utils.py | 49 + tox.ini | 14 - youtube-dl | Bin 0 -> 1455038 bytes youtube-dl.1 | 2490 +++++++++++++++++ youtube-dl.bash-completion | 29 + youtube-dl.fish | 161 ++ youtube-dl.plugin.zsh | 24 - youtube-dl.zsh | 28 + youtube_dl/YoutubeDL.py | 11 +- youtube_dl/__init__.py | 10 +- youtube_dl/compat.py | 21 +- youtube_dl/downloader/external.py | 14 +- youtube_dl/downloader/fragment.py | 1 + youtube_dl/downloader/hls.py | 3 + youtube_dl/extractor/abcnews.py | 4 +- youtube_dl/extractor/abcotvs.py | 2 +- youtube_dl/extractor/acast.py | 26 +- youtube_dl/extractor/adobetv.py | 2 +- youtube_dl/extractor/aenetworks.py | 14 +- youtube_dl/extractor/afreecatv.py | 105 + youtube_dl/extractor/airmozilla.py | 2 +- youtube_dl/extractor/allocine.py | 8 +- youtube_dl/extractor/alphaporno.py | 2 +- youtube_dl/extractor/aol.py | 31 +- youtube_dl/extractor/ard.py | 2 +- youtube_dl/extractor/arkena.py | 21 +- youtube_dl/extractor/atresplayer.py | 4 +- youtube_dl/extractor/atttechchannel.py | 2 +- youtube_dl/extractor/audioboom.py | 2 +- youtube_dl/extractor/azmedien.py | 172 ++ youtube_dl/extractor/azubu.py | 4 +- youtube_dl/extractor/bandcamp.py | 19 +- youtube_dl/extractor/beampro.py | 73 + youtube_dl/extractor/bet.py | 4 +- youtube_dl/extractor/bild.py | 2 +- youtube_dl/extractor/bilibili.py | 141 +- youtube_dl/extractor/biobiochiletv.py | 4 +- youtube_dl/extractor/bloomberg.py | 3 +- youtube_dl/extractor/breakcom.py | 125 +- youtube_dl/extractor/brightcove.py | 19 +- youtube_dl/extractor/byutv.py | 2 +- youtube_dl/extractor/camdemy.py | 4 +- youtube_dl/extractor/canalplus.py | 20 +- youtube_dl/extractor/canvas.py | 9 +- youtube_dl/extractor/carambatv.py | 4 +- youtube_dl/extractor/cbc.py | 64 +- youtube_dl/extractor/cbsnews.py | 2 +- youtube_dl/extractor/ccc.py | 4 +- youtube_dl/extractor/ccma.py | 99 + youtube_dl/extractor/cctv.py | 196 +- youtube_dl/extractor/cda.py | 4 +- youtube_dl/extractor/ceskatelevize.py | 8 +- youtube_dl/extractor/channel9.py | 6 +- youtube_dl/extractor/charlierose.py | 2 +- youtube_dl/extractor/chaturbate.py | 21 +- youtube_dl/extractor/chirbit.py | 5 + youtube_dl/extractor/cliphunter.py | 4 +- youtube_dl/extractor/clipsyndicate.py | 2 +- youtube_dl/extractor/clubic.py | 2 +- youtube_dl/extractor/cmt.py | 31 +- youtube_dl/extractor/collegerama.py | 2 +- youtube_dl/extractor/comedycentral.py | 18 +- youtube_dl/extractor/common.py | 145 +- youtube_dl/extractor/coub.py | 2 +- youtube_dl/extractor/crackle.py | 55 +- youtube_dl/extractor/criterion.py | 2 +- youtube_dl/extractor/crooksandliars.py | 2 +- youtube_dl/extractor/crunchyroll.py | 45 +- youtube_dl/extractor/cspan.py | 29 +- youtube_dl/extractor/ctsnews.py | 4 +- youtube_dl/extractor/ctvnews.py | 5 +- youtube_dl/extractor/cultureunplugged.py | 2 +- youtube_dl/extractor/dailymotion.py | 2 +- youtube_dl/extractor/daum.py | 8 +- youtube_dl/extractor/dbtv.py | 2 +- youtube_dl/extractor/dctp.py | 2 +- youtube_dl/extractor/deezer.py | 2 +- youtube_dl/extractor/dhm.py | 4 +- youtube_dl/extractor/digiteka.py | 4 +- youtube_dl/extractor/discoverygo.py | 3 +- youtube_dl/extractor/disney.py | 115 + youtube_dl/extractor/douyutv.py | 18 +- youtube_dl/extractor/dplay.py | 11 +- youtube_dl/extractor/dramafever.py | 11 +- youtube_dl/extractor/drbonanza.py | 4 +- youtube_dl/extractor/dreisat.py | 170 +- youtube_dl/extractor/drtuber.py | 2 +- youtube_dl/extractor/drtv.py | 74 +- youtube_dl/extractor/dumpert.py | 2 +- youtube_dl/extractor/eagleplatform.py | 4 +- youtube_dl/extractor/egghead.py | 39 + youtube_dl/extractor/einthusan.py | 4 +- youtube_dl/extractor/elpais.py | 23 +- youtube_dl/extractor/eroprofile.py | 4 +- youtube_dl/extractor/escapist.py | 4 +- youtube_dl/extractor/esri.py | 2 +- youtube_dl/extractor/europa.py | 2 +- youtube_dl/extractor/expotv.py | 2 +- youtube_dl/extractor/extractors.py | 79 +- youtube_dl/extractor/facebook.py | 53 +- youtube_dl/extractor/fc2.py | 2 +- youtube_dl/extractor/filmon.py | 178 ++ youtube_dl/extractor/firsttv.py | 134 +- youtube_dl/extractor/fivetv.py | 6 +- youtube_dl/extractor/fktv.py | 2 +- youtube_dl/extractor/flipagram.py | 2 +- youtube_dl/extractor/foxgay.py | 2 +- youtube_dl/extractor/foxnews.py | 6 +- youtube_dl/extractor/franceculture.py | 2 +- youtube_dl/extractor/francetv.py | 4 +- youtube_dl/extractor/freesound.py | 66 +- youtube_dl/extractor/freevideo.py | 38 - youtube_dl/extractor/funimation.py | 6 +- youtube_dl/extractor/funnyordie.py | 4 +- youtube_dl/extractor/fusion.py | 2 +- youtube_dl/extractor/gamersyde.py | 2 +- youtube_dl/extractor/gamespot.py | 2 +- youtube_dl/extractor/gamestar.py | 2 +- youtube_dl/extractor/gaskrank.py | 123 + youtube_dl/extractor/gazeta.py | 2 +- youtube_dl/extractor/generic.py | 225 +- youtube_dl/extractor/giantbomb.py | 2 +- youtube_dl/extractor/giga.py | 2 +- youtube_dl/extractor/glide.py | 2 +- youtube_dl/extractor/go.py | 5 +- youtube_dl/extractor/godtube.py | 2 +- youtube_dl/extractor/googledrive.py | 9 +- youtube_dl/extractor/goshgay.py | 2 +- youtube_dl/extractor/hbo.py | 4 +- youtube_dl/extractor/hearthisat.py | 4 +- youtube_dl/extractor/heise.py | 2 +- youtube_dl/extractor/hellporno.py | 2 +- youtube_dl/extractor/historicfilms.py | 2 +- youtube_dl/extractor/hitbox.py | 4 +- youtube_dl/extractor/hitrecord.py | 68 + youtube_dl/extractor/hornbunny.py | 2 +- youtube_dl/extractor/howstuffworks.py | 6 +- youtube_dl/extractor/huajiao.py | 2 +- youtube_dl/extractor/huffpost.py | 2 +- youtube_dl/extractor/imdb.py | 5 +- youtube_dl/extractor/inc.py | 41 + youtube_dl/extractor/indavideo.py | 4 +- youtube_dl/extractor/infoq.py | 63 +- youtube_dl/extractor/instagram.py | 6 +- youtube_dl/extractor/iprima.py | 2 +- youtube_dl/extractor/ir90tv.py | 2 +- youtube_dl/extractor/itv.py | 196 ++ youtube_dl/extractor/ivi.py | 6 +- youtube_dl/extractor/iwara.py | 42 +- youtube_dl/extractor/izlesene.py | 4 +- youtube_dl/extractor/jamendo.py | 77 +- youtube_dl/extractor/jove.py | 4 +- youtube_dl/extractor/jwplatform.py | 15 +- youtube_dl/extractor/kaltura.py | 10 +- youtube_dl/extractor/karrierevideos.py | 4 +- youtube_dl/extractor/keezmovies.py | 2 +- youtube_dl/extractor/ketnet.py | 2 +- youtube_dl/extractor/konserthusetplay.py | 36 +- youtube_dl/extractor/krasview.py | 2 +- youtube_dl/extractor/kusi.py | 2 +- youtube_dl/extractor/laola1tv.py | 183 +- youtube_dl/extractor/leeco.py | 4 +- youtube_dl/extractor/lemonde.py | 2 +- youtube_dl/extractor/libraryofcongress.py | 2 +- youtube_dl/extractor/libsyn.py | 2 +- youtube_dl/extractor/lifenews.py | 2 +- youtube_dl/extractor/limelight.py | 32 +- youtube_dl/extractor/litv.py | 4 +- youtube_dl/extractor/liveleak.py | 6 +- youtube_dl/extractor/livestream.py | 2 +- youtube_dl/extractor/lnkgo.py | 4 +- youtube_dl/extractor/lynda.py | 2 +- youtube_dl/extractor/matchtv.py | 2 +- youtube_dl/extractor/mdr.py | 2 +- youtube_dl/extractor/meipai.py | 104 + youtube_dl/extractor/melonvod.py | 72 + youtube_dl/extractor/metacafe.py | 2 +- youtube_dl/extractor/mgoon.py | 2 +- youtube_dl/extractor/mgtv.py | 2 +- youtube_dl/extractor/minhateca.py | 2 +- youtube_dl/extractor/ministrygrid.py | 2 +- youtube_dl/extractor/mitele.py | 6 +- youtube_dl/extractor/mixcloud.py | 29 +- youtube_dl/extractor/mlb.py | 8 +- youtube_dl/extractor/mnet.py | 2 +- youtube_dl/extractor/moevideo.py | 4 +- youtube_dl/extractor/mofosex.py | 2 +- youtube_dl/extractor/mojvideo.py | 2 +- youtube_dl/extractor/motherless.py | 6 +- youtube_dl/extractor/movieclips.py | 2 +- youtube_dl/extractor/moviezine.py | 2 +- youtube_dl/extractor/movingimage.py | 2 +- youtube_dl/extractor/msn.py | 5 - youtube_dl/extractor/mtv.py | 136 +- youtube_dl/extractor/muenchentv.py | 2 +- youtube_dl/extractor/mwave.py | 4 +- youtube_dl/extractor/myspace.py | 108 +- youtube_dl/extractor/myvi.py | 2 +- youtube_dl/extractor/myvideo.py | 2 +- youtube_dl/extractor/naver.py | 9 +- youtube_dl/extractor/nbc.py | 45 +- youtube_dl/extractor/ndr.py | 4 +- youtube_dl/extractor/ndtv.py | 2 +- youtube_dl/extractor/netzkino.py | 2 +- youtube_dl/extractor/nextmedia.py | 79 +- youtube_dl/extractor/nfl.py | 4 +- youtube_dl/extractor/nick.py | 5 +- youtube_dl/extractor/niconico.py | 43 +- youtube_dl/extractor/nosvideo.py | 4 +- youtube_dl/extractor/nova.py | 10 +- youtube_dl/extractor/novamov.py | 12 +- youtube_dl/extractor/nowness.py | 6 +- youtube_dl/extractor/nowtv.py | 12 +- youtube_dl/extractor/noz.py | 2 +- youtube_dl/extractor/npo.py | 2 +- youtube_dl/extractor/nrk.py | 252 +- youtube_dl/extractor/ntvde.py | 2 +- youtube_dl/extractor/ntvru.py | 10 +- youtube_dl/extractor/oktoberfesttv.py | 2 +- youtube_dl/extractor/ondemandkorea.py | 60 + youtube_dl/extractor/onionstudios.py | 2 +- youtube_dl/extractor/ooyala.py | 14 +- youtube_dl/extractor/openload.py | 104 +- youtube_dl/extractor/orf.py | 2 +- youtube_dl/extractor/pandoratv.py | 19 +- youtube_dl/extractor/pbs.py | 28 +- youtube_dl/extractor/people.py | 2 +- youtube_dl/extractor/phoenix.py | 4 +- youtube_dl/extractor/piksel.py | 123 + youtube_dl/extractor/pinkbike.py | 2 +- youtube_dl/extractor/pladform.py | 2 +- youtube_dl/extractor/playtvak.py | 10 +- youtube_dl/extractor/playvid.py | 2 +- youtube_dl/extractor/playwire.py | 2 +- youtube_dl/extractor/pluralsight.py | 9 +- youtube_dl/extractor/polskieradio.py | 2 +- youtube_dl/extractor/porncom.py | 2 +- youtube_dl/extractor/pornflip.py | 92 + youtube_dl/extractor/pornhd.py | 4 +- youtube_dl/extractor/pornhub.py | 24 +- youtube_dl/extractor/pornotube.py | 2 +- youtube_dl/extractor/pornovoisines.py | 2 +- youtube_dl/extractor/pornoxo.py | 2 +- youtube_dl/extractor/presstv.py | 2 +- youtube_dl/extractor/promptfile.py | 2 +- youtube_dl/extractor/prosiebensat1.py | 22 +- youtube_dl/extractor/qqmusic.py | 6 +- youtube_dl/extractor/r7.py | 2 +- youtube_dl/extractor/radiobremen.py | 2 +- youtube_dl/extractor/radiocanada.py | 14 +- youtube_dl/extractor/radiode.py | 2 +- youtube_dl/extractor/radiojavan.py | 2 +- youtube_dl/extractor/rai.py | 6 +- youtube_dl/extractor/rbmaradio.py | 2 +- youtube_dl/extractor/reuters.py | 2 +- youtube_dl/extractor/reverbnation.py | 2 +- youtube_dl/extractor/ro220.py | 2 +- youtube_dl/extractor/rockstargames.py | 2 +- youtube_dl/extractor/roosterteeth.py | 2 +- youtube_dl/extractor/rottentomatoes.py | 2 +- youtube_dl/extractor/rte.py | 181 +- youtube_dl/extractor/rtl2.py | 57 +- youtube_dl/extractor/rtlnl.py | 4 +- youtube_dl/extractor/rtp.py | 2 +- youtube_dl/extractor/rts.py | 159 +- youtube_dl/extractor/rtve.py | 5 +- youtube_dl/extractor/rtvnh.py | 2 +- youtube_dl/extractor/rudo.py | 2 +- youtube_dl/extractor/ruhd.py | 2 +- youtube_dl/extractor/ruutu.py | 9 +- youtube_dl/extractor/savefrom.py | 2 +- youtube_dl/extractor/sbs.py | 2 +- youtube_dl/extractor/screencast.py | 8 +- youtube_dl/extractor/screencastomatic.py | 2 +- youtube_dl/extractor/screenjunkies.py | 138 - youtube_dl/extractor/senateisvp.py | 2 +- youtube_dl/extractor/sendtonews.py | 38 +- youtube_dl/extractor/sexu.py | 2 +- youtube_dl/extractor/sharesix.py | 91 - youtube_dl/extractor/showroomlive.py | 84 + youtube_dl/extractor/skysports.py | 11 +- youtube_dl/extractor/slutload.py | 2 +- youtube_dl/extractor/smotri.py | 4 +- youtube_dl/extractor/snotr.py | 4 +- youtube_dl/extractor/soundcloud.py | 60 +- youtube_dl/extractor/soundgasm.py | 2 +- youtube_dl/extractor/southpark.py | 4 +- youtube_dl/extractor/spankbang.py | 2 +- youtube_dl/extractor/spankwire.py | 2 +- youtube_dl/extractor/spiegeltv.py | 2 +- youtube_dl/extractor/spike.py | 2 +- youtube_dl/extractor/sport5.py | 2 +- youtube_dl/extractor/sportbox.py | 62 +- youtube_dl/extractor/sportdeutschland.py | 6 +- youtube_dl/extractor/srgssr.py | 38 +- youtube_dl/extractor/srmediathek.py | 2 +- youtube_dl/extractor/stanfordoc.py | 4 +- youtube_dl/extractor/stitcher.py | 4 +- youtube_dl/extractor/streamable.py | 4 +- youtube_dl/extractor/streetvoice.py | 2 +- youtube_dl/extractor/sunporno.py | 2 +- youtube_dl/extractor/svt.py | 2 +- youtube_dl/extractor/swrmediathek.py | 89 +- youtube_dl/extractor/tagesschau.py | 12 +- youtube_dl/extractor/tass.py | 2 +- youtube_dl/extractor/tdslifeway.py | 2 +- youtube_dl/extractor/teachertube.py | 4 +- youtube_dl/extractor/ted.py | 4 +- youtube_dl/extractor/telebruxelles.py | 45 +- youtube_dl/extractor/telegraaf.py | 2 +- youtube_dl/extractor/telemb.py | 4 +- youtube_dl/extractor/telewebion.py | 2 +- youtube_dl/extractor/theplatform.py | 8 +- youtube_dl/extractor/thisamericanlife.py | 2 +- youtube_dl/extractor/thisoldhouse.py | 7 +- youtube_dl/extractor/tinypic.py | 2 +- youtube_dl/extractor/tnaflix.py | 14 +- youtube_dl/extractor/tudou.py | 4 +- youtube_dl/extractor/tumblr.py | 8 +- youtube_dl/extractor/tunein.py | 107 +- youtube_dl/extractor/turbo.py | 2 +- youtube_dl/extractor/turner.py | 8 +- youtube_dl/extractor/tv2.py | 2 +- youtube_dl/extractor/tv4.py | 53 +- youtube_dl/extractor/tva.py | 54 + youtube_dl/extractor/tvc.py | 8 +- youtube_dl/extractor/tweakers.py | 2 +- youtube_dl/extractor/twentyfourvideo.py | 10 +- youtube_dl/extractor/twentymin.py | 109 +- youtube_dl/extractor/twitch.py | 127 +- youtube_dl/extractor/twitter.py | 12 +- youtube_dl/extractor/udn.py | 2 +- youtube_dl/extractor/uktvplay.py | 33 + youtube_dl/extractor/uol.py | 27 +- youtube_dl/extractor/uplynk.py | 4 +- youtube_dl/extractor/urort.py | 2 +- youtube_dl/extractor/ustream.py | 7 + youtube_dl/extractor/ustudio.py | 2 +- youtube_dl/extractor/varzesh3.py | 4 +- youtube_dl/extractor/vbox7.py | 78 +- youtube_dl/extractor/vessel.py | 2 +- youtube_dl/extractor/vevo.py | 269 +- youtube_dl/extractor/vgtv.py | 10 +- youtube_dl/extractor/vidbit.py | 2 +- youtube_dl/extractor/viddler.py | 2 +- youtube_dl/extractor/videa.py | 97 + youtube_dl/extractor/videomega.py | 2 +- youtube_dl/extractor/videomore.py | 10 +- youtube_dl/extractor/videopress.py | 99 + youtube_dl/extractor/videott.py | 65 - youtube_dl/extractor/vidio.py | 2 +- youtube_dl/extractor/vidme.py | 10 +- youtube_dl/extractor/viewlift.py | 8 +- youtube_dl/extractor/viewster.py | 2 +- youtube_dl/extractor/viidea.py | 12 +- youtube_dl/extractor/vimeo.py | 146 +- youtube_dl/extractor/vimple.py | 2 +- youtube_dl/extractor/vine.py | 107 +- youtube_dl/extractor/viu.py | 249 ++ youtube_dl/extractor/vk.py | 42 +- youtube_dl/extractor/vlive.py | 159 +- youtube_dl/extractor/vodlocker.py | 2 +- youtube_dl/extractor/voicerepublic.py | 2 +- youtube_dl/extractor/vporn.py | 12 +- youtube_dl/extractor/vube.py | 8 +- youtube_dl/extractor/vvvvid.py | 140 + youtube_dl/extractor/walla.py | 2 +- youtube_dl/extractor/watchindianporn.py | 2 +- youtube_dl/extractor/webcaster.py | 2 +- youtube_dl/extractor/webofstories.py | 8 +- youtube_dl/extractor/weiqitv.py | 4 +- youtube_dl/extractor/xbef.py | 2 +- youtube_dl/extractor/xfileshare.py | 6 +- youtube_dl/extractor/xhamster.py | 14 +- youtube_dl/extractor/xiami.py | 53 +- youtube_dl/extractor/xuite.py | 6 +- youtube_dl/extractor/yesjapan.py | 2 +- youtube_dl/extractor/yinyuetai.py | 2 +- youtube_dl/extractor/ynet.py | 4 +- youtube_dl/extractor/youporn.py | 4 +- youtube_dl/extractor/yourupload.py | 49 +- youtube_dl/extractor/youtube.py | 184 +- youtube_dl/extractor/zapiks.py | 2 +- youtube_dl/extractor/zdf.py | 466 +-- youtube_dl/extractor/zingmp3.py | 2 +- youtube_dl/jsinterp.py | 2 +- youtube_dl/options.py | 66 +- youtube_dl/postprocessor/metadatafromtitle.py | 2 +- youtube_dl/socks.py | 6 +- youtube_dl/utils.py | 54 +- youtube_dl/version.py | 2 +- 404 files changed, 12025 insertions(+), 3659 deletions(-) delete mode 100644 .github/ISSUE_TEMPLATE.md delete mode 100644 .github/ISSUE_TEMPLATE_tmpl.md delete mode 100644 .github/PULL_REQUEST_TEMPLATE.md delete mode 100644 .gitignore delete mode 100644 .travis.yml delete mode 100644 AUTHORS delete mode 100644 CONTRIBUTING.md create mode 100644 README.txt delete mode 100644 setup.cfg delete mode 100644 tox.ini create mode 100755 youtube-dl create mode 100644 youtube-dl.1 create mode 100644 youtube-dl.bash-completion create mode 100644 youtube-dl.fish delete mode 100644 youtube-dl.plugin.zsh create mode 100644 youtube-dl.zsh create mode 100644 youtube_dl/extractor/azmedien.py create mode 100644 youtube_dl/extractor/beampro.py create mode 100644 youtube_dl/extractor/ccma.py create mode 100644 youtube_dl/extractor/disney.py create mode 100644 youtube_dl/extractor/egghead.py create mode 100644 youtube_dl/extractor/filmon.py delete mode 100644 youtube_dl/extractor/freevideo.py create mode 100644 youtube_dl/extractor/gaskrank.py create mode 100644 youtube_dl/extractor/hitrecord.py create mode 100644 youtube_dl/extractor/inc.py create mode 100644 youtube_dl/extractor/itv.py create mode 100644 youtube_dl/extractor/meipai.py create mode 100644 youtube_dl/extractor/melonvod.py create mode 100644 youtube_dl/extractor/ondemandkorea.py create mode 100644 youtube_dl/extractor/piksel.py create mode 100644 youtube_dl/extractor/pornflip.py delete mode 100644 youtube_dl/extractor/screenjunkies.py delete mode 100644 youtube_dl/extractor/sharesix.py create mode 100644 youtube_dl/extractor/showroomlive.py create mode 100644 youtube_dl/extractor/tva.py create mode 100644 youtube_dl/extractor/uktvplay.py create mode 100644 youtube_dl/extractor/videa.py create mode 100644 youtube_dl/extractor/videopress.py delete mode 100644 youtube_dl/extractor/videott.py create mode 100644 youtube_dl/extractor/viu.py create mode 100644 youtube_dl/extractor/vvvvid.py diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md deleted file mode 100644 index 36559dd..0000000 --- a/.github/ISSUE_TEMPLATE.md +++ /dev/null @@ -1,58 +0,0 @@ -## Please follow the guide below - -- You will be asked some questions and requested to provide some information, please read them **carefully** and answer honestly -- Put an `x` into all the boxes [ ] relevant to your *issue* (like that [x]) -- Use *Preview* tab to see how your issue will actually look like - ---- - -### Make sure you are using the *latest* version: run `youtube-dl --version` and ensure your version is *2016.12.01*. If it's not read [this FAQ entry](https://github.com/rg3/youtube-dl/blob/master/README.md#how-do-i-update-youtube-dl) and update. Issues with outdated version will be rejected. -- [ ] I've **verified** and **I assure** that I'm running youtube-dl **2016.12.01** - -### Before submitting an *issue* make sure you have: -- [ ] At least skimmed through [README](https://github.com/rg3/youtube-dl/blob/master/README.md) and **most notably** [FAQ](https://github.com/rg3/youtube-dl#faq) and [BUGS](https://github.com/rg3/youtube-dl#bugs) sections -- [ ] [Searched](https://github.com/rg3/youtube-dl/search?type=Issues) the bugtracker for similar issues including closed ones - -### What is the purpose of your *issue*? -- [ ] Bug report (encountered problems with youtube-dl) -- [ ] Site support request (request for adding support for a new site) -- [ ] Feature request (request for a new functionality) -- [ ] Question -- [ ] Other - ---- - -### The following sections concretize particular purposed issues, you can erase any section (the contents between triple ---) not applicable to your *issue* - ---- - -### If the purpose of this *issue* is a *bug report*, *site support request* or you are not completely sure provide the full verbose output as follows: - -Add `-v` flag to **your command line** you run youtube-dl with, copy the **whole** output and insert it here. It should look similar to one below (replace it with **your** log inserted between triple ```): -``` -$ youtube-dl -v -[debug] System config: [] -[debug] User config: [] -[debug] Command-line args: [u'-v', u'http://www.youtube.com/watch?v=BaW_jenozKcj'] -[debug] Encodings: locale cp1251, fs mbcs, out cp866, pref cp1251 -[debug] youtube-dl version 2016.12.01 -[debug] Python version 2.7.11 - Windows-2003Server-5.2.3790-SP2 -[debug] exe versions: ffmpeg N-75573-g1d0487f, ffprobe N-75573-g1d0487f, rtmpdump 2.4 -[debug] Proxy map: {} -... - -``` - ---- - -### If the purpose of this *issue* is a *site support request* please provide all kinds of example URLs support for which should be included (replace following example URLs by **yours**): -- Single video: https://www.youtube.com/watch?v=BaW_jenozKc -- Single video: https://youtu.be/BaW_jenozKc -- Playlist: https://www.youtube.com/playlist?list=PL4lCao7KL_QFVb7Iudeipvc2BCavECqzc - ---- - -### Description of your *issue*, suggested solution and other information - -Explanation of your *issue* in arbitrary form goes here. Please make sure the [description is worded well enough to be understood](https://github.com/rg3/youtube-dl#is-the-description-of-the-issue-itself-sufficient). Provide as much context and examples as possible. -If work on your *issue* requires account credentials please provide them or explain how one can obtain them. diff --git a/.github/ISSUE_TEMPLATE_tmpl.md b/.github/ISSUE_TEMPLATE_tmpl.md deleted file mode 100644 index ab99681..0000000 --- a/.github/ISSUE_TEMPLATE_tmpl.md +++ /dev/null @@ -1,58 +0,0 @@ -## Please follow the guide below - -- You will be asked some questions and requested to provide some information, please read them **carefully** and answer honestly -- Put an `x` into all the boxes [ ] relevant to your *issue* (like that [x]) -- Use *Preview* tab to see how your issue will actually look like - ---- - -### Make sure you are using the *latest* version: run `youtube-dl --version` and ensure your version is *%(version)s*. If it's not read [this FAQ entry](https://github.com/rg3/youtube-dl/blob/master/README.md#how-do-i-update-youtube-dl) and update. Issues with outdated version will be rejected. -- [ ] I've **verified** and **I assure** that I'm running youtube-dl **%(version)s** - -### Before submitting an *issue* make sure you have: -- [ ] At least skimmed through [README](https://github.com/rg3/youtube-dl/blob/master/README.md) and **most notably** [FAQ](https://github.com/rg3/youtube-dl#faq) and [BUGS](https://github.com/rg3/youtube-dl#bugs) sections -- [ ] [Searched](https://github.com/rg3/youtube-dl/search?type=Issues) the bugtracker for similar issues including closed ones - -### What is the purpose of your *issue*? -- [ ] Bug report (encountered problems with youtube-dl) -- [ ] Site support request (request for adding support for a new site) -- [ ] Feature request (request for a new functionality) -- [ ] Question -- [ ] Other - ---- - -### The following sections concretize particular purposed issues, you can erase any section (the contents between triple ---) not applicable to your *issue* - ---- - -### If the purpose of this *issue* is a *bug report*, *site support request* or you are not completely sure provide the full verbose output as follows: - -Add `-v` flag to **your command line** you run youtube-dl with, copy the **whole** output and insert it here. It should look similar to one below (replace it with **your** log inserted between triple ```): -``` -$ youtube-dl -v -[debug] System config: [] -[debug] User config: [] -[debug] Command-line args: [u'-v', u'http://www.youtube.com/watch?v=BaW_jenozKcj'] -[debug] Encodings: locale cp1251, fs mbcs, out cp866, pref cp1251 -[debug] youtube-dl version %(version)s -[debug] Python version 2.7.11 - Windows-2003Server-5.2.3790-SP2 -[debug] exe versions: ffmpeg N-75573-g1d0487f, ffprobe N-75573-g1d0487f, rtmpdump 2.4 -[debug] Proxy map: {} -... - -``` - ---- - -### If the purpose of this *issue* is a *site support request* please provide all kinds of example URLs support for which should be included (replace following example URLs by **yours**): -- Single video: https://www.youtube.com/watch?v=BaW_jenozKc -- Single video: https://youtu.be/BaW_jenozKc -- Playlist: https://www.youtube.com/playlist?list=PL4lCao7KL_QFVb7Iudeipvc2BCavECqzc - ---- - -### Description of your *issue*, suggested solution and other information - -Explanation of your *issue* in arbitrary form goes here. Please make sure the [description is worded well enough to be understood](https://github.com/rg3/youtube-dl#is-the-description-of-the-issue-itself-sufficient). Provide as much context and examples as possible. -If work on your *issue* requires account credentials please provide them or explain how one can obtain them. diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index 46fa26f..0000000 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,27 +0,0 @@ -## Please follow the guide below - -- You will be asked some questions, please read them **carefully** and answer honestly -- Put an `x` into all the boxes [ ] relevant to your *pull request* (like that [x]) -- Use *Preview* tab to see how your *pull request* will actually look like - ---- - -### Before submitting a *pull request* make sure you have: -- [ ] At least skimmed through [adding new extractor tutorial](https://github.com/rg3/youtube-dl#adding-support-for-a-new-site) and [youtube-dl coding conventions](https://github.com/rg3/youtube-dl#youtube-dl-coding-conventions) sections -- [ ] [Searched](https://github.com/rg3/youtube-dl/search?q=is%3Apr&type=Issues) the bugtracker for similar pull requests - -### In order to be accepted and merged into youtube-dl each piece of code must be in public domain or released under [Unlicense](http://unlicense.org/). Check one of the following options: -- [ ] I am the original author of this code and I am willing to release it under [Unlicense](http://unlicense.org/) -- [ ] I am not the original author of this code but it is in public domain or released under [Unlicense](http://unlicense.org/) (provide reliable evidence) - -### What is the purpose of your *pull request*? -- [ ] Bug fix -- [ ] Improvement -- [ ] New extractor -- [ ] New feature - ---- - -### Description of your *pull request* and other information - -Explanation of your *pull request* in arbitrary form goes here. Please make sure the description explains the purpose and effect of your *pull request* and is worded well enough to be understood. Provide as much context and examples as possible. diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 9ce4b5e..0000000 --- a/.gitignore +++ /dev/null @@ -1,48 +0,0 @@ -*.pyc -*.pyo -*.class -*~ -*.DS_Store -wine-py2exe/ -py2exe.log -*.kate-swp -build/ -dist/ -MANIFEST -README.txt -youtube-dl.1 -youtube-dl.bash-completion -youtube-dl.fish -youtube_dl/extractor/lazy_extractors.py -youtube-dl -youtube-dl.exe -youtube-dl.tar.gz -.coverage -cover/ -updates_key.pem -*.egg-info -*.srt -*.sbv -*.vtt -*.flv -*.mp4 -*.m4a -*.m4v -*.mp3 -*.3gp -*.wav -*.ape -*.mkv -*.swf -*.part -*.swp -test/testdata -test/local_parameters.json -.tox -youtube-dl.zsh - -# IntelliJ related files -.idea -*.iml - -tmp/ diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index c74c9cc..0000000 --- a/.travis.yml +++ /dev/null @@ -1,18 +0,0 @@ -language: python -python: - - "2.6" - - "2.7" - - "3.2" - - "3.3" - - "3.4" - - "3.5" -sudo: false -script: nosetests test --verbose -notifications: - email: - - filippo.valsorda@gmail.com - - yasoob.khld@gmail.com -# irc: -# channels: -# - "irc.freenode.org#youtube-dl" -# skip_join: true diff --git a/AUTHORS b/AUTHORS deleted file mode 100644 index 4a6f7e1..0000000 --- a/AUTHORS +++ /dev/null @@ -1,192 +0,0 @@ -Ricardo Garcia Gonzalez -Danny Colligan -Benjamin Johnson -Vasyl' Vavrychuk -Witold Baryluk -Paweł Paprota -Gergely Imreh -Rogério Brito -Philipp Hagemeister -Sören Schulze -Kevin Ngo -Ori Avtalion -shizeeg -Filippo Valsorda -Christian Albrecht -Dave Vasilevsky -Jaime Marquínez Ferrándiz -Jeff Crouse -Osama Khalid -Michael Walter -M. Yasoob Ullah Khalid -Julien Fraichard -Johny Mo Swag -Axel Noack -Albert Kim -Pierre Rudloff -Huarong Huo -Ismael Mejía -Steffan Donal -Andras Elso -Jelle van der Waa -Marcin Cieślak -Anton Larionov -Takuya Tsuchida -Sergey M. -Michael Orlitzky -Chris Gahan -Saimadhav Heblikar -Mike Col -Oleg Prutz -pulpe -Andreas Schmitz -Michael Kaiser -Niklas Laxström -David Triendl -Anthony Weems -David Wagner -Juan C. Olivares -Mattias Harrysson -phaer -Sainyam Kapoor -Nicolas Évrard -Jason Normore -Hoje Lee -Adam Thalhammer -Georg Jähnig -Ralf Haring -Koki Takahashi -Ariset Llerena -Adam Malcontenti-Wilson -Tobias Bell -Naglis Jonaitis -Charles Chen -Hassaan Ali -Dobrosław Żybort -David Fabijan -Sebastian Haas -Alexander Kirk -Erik Johnson -Keith Beckman -Ole Ernst -Aaron McDaniel (mcd1992) -Magnus Kolstad -Hari Padmanaban -Carlos Ramos -5moufl -lenaten -Dennis Scheiba -Damon Timm -winwon -Xavier Beynon -Gabriel Schubiner -xantares -Jan Matějka -Mauroy Sébastien -William Sewell -Dao Hoang Son -Oskar Jauch -Matthew Rayfield -t0mm0 -Tithen-Firion -Zack Fernandes -cryptonaut -Adrian Kretz -Mathias Rav -Petr Kutalek -Will Glynn -Max Reimann -Cédric Luthi -Thijs Vermeir -Joel Leclerc -Christopher Krooss -Ondřej Caletka -Dinesh S -Johan K. Jensen -Yen Chi Hsuan -Enam Mijbah Noor -David Luhmer -Shaya Goldberg -Paul Hartmann -Frans de Jonge -Robin de Rooij -Ryan Schmidt -Leslie P. Polzer -Duncan Keall -Alexander Mamay -Devin J. Pohly -Eduardo Ferro Aldama -Jeff Buchbinder -Amish Bhadeshia -Joram Schrijver -Will W. -Mohammad Teimori Pabandi -Roman Le Négrate -Matthias Küch -Julian Richen -Ping O. -Mister Hat -Peter Ding -jackyzy823 -George Brighton -Remita Amine -Aurélio A. Heckert -Bernhard Minks -sceext -Zach Bruggeman -Tjark Saul -slangangular -Behrouz Abbasi -ngld -nyuszika7h -Shaun Walbridge -Lee Jenkins -Anssi Hannula -Lukáš Lalinský -Qijiang Fan -Rémy Léone -Marco Ferragina -reiv -Muratcan Simsek -Evan Lu -flatgreen -Brian Foley -Vignesh Venkat -Tom Gijselinck -Founder Fang -Andrew Alexeyew -Saso Bezlaj -Erwin de Haan -Jens Wille -Robin Houtevelts -Patrick Griffis -Aidan Rowe -mutantmonkey -Ben Congdon -Kacper Michajłow -José Joaquín Atria -Viťas Strádal -Kagami Hiiragi -Philip Huppert -blahgeek -Kevin Deldycke -inondle -Tomáš Čech -Déstin Reed -Roman Tsiupa -Artur Krysiak -Jakub Adam Wieczorek -Aleksandar Topuzović -Nehal Patel -Rob van Bekkum -Petr Zvoníček -Pratyush Singh -Aleksander Nitecki -Sebastian Blunt -Matěj Cepl -Xie Yanbo -Philip Xu -John Hawkinson -Rich Leeper -Zhong Jianxin -Thor77 diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md deleted file mode 100644 index 495955b..0000000 --- a/CONTRIBUTING.md +++ /dev/null @@ -1,298 +0,0 @@ -**Please include the full output of youtube-dl when run with `-v`**, i.e. **add** `-v` flag to **your command line**, copy the **whole** output and post it in the issue body wrapped in \`\`\` for better formatting. It should look similar to this: -``` -$ youtube-dl -v -[debug] System config: [] -[debug] User config: [] -[debug] Command-line args: [u'-v', u'http://www.youtube.com/watch?v=BaW_jenozKcj'] -[debug] Encodings: locale cp1251, fs mbcs, out cp866, pref cp1251 -[debug] youtube-dl version 2015.12.06 -[debug] Git HEAD: 135392e -[debug] Python version 2.6.6 - Windows-2003Server-5.2.3790-SP2 -[debug] exe versions: ffmpeg N-75573-g1d0487f, ffprobe N-75573-g1d0487f, rtmpdump 2.4 -[debug] Proxy map: {} -... -``` -**Do not post screenshots of verbose logs; only plain text is acceptable.** - -The output (including the first lines) contains important debugging information. Issues without the full output are often not reproducible and therefore do not get solved in short order, if ever. - -Please re-read your issue once again to avoid a couple of common mistakes (you can and should use this as a checklist): - -### Is the description of the issue itself sufficient? - -We often get issue reports that we cannot really decipher. While in most cases we eventually get the required information after asking back multiple times, this poses an unnecessary drain on our resources. Many contributors, including myself, are also not native speakers, so we may misread some parts. - -So please elaborate on what feature you are requesting, or what bug you want to be fixed. Make sure that it's obvious - -- What the problem is -- How it could be fixed -- How your proposed solution would look like - -If your report is shorter than two lines, it is almost certainly missing some of these, which makes it hard for us to respond to it. We're often too polite to close the issue outright, but the missing info makes misinterpretation likely. As a committer myself, I often get frustrated by these issues, since the only possible way for me to move forward on them is to ask for clarification over and over. - -For bug reports, this means that your report should contain the *complete* output of youtube-dl when called with the `-v` flag. The error message you get for (most) bugs even says so, but you would not believe how many of our bug reports do not contain this information. - -If your server has multiple IPs or you suspect censorship, adding `--call-home` may be a good idea to get more diagnostics. If the error is `ERROR: Unable to extract ...` and you cannot reproduce it from multiple countries, add `--dump-pages` (warning: this will yield a rather large output, redirect it to the file `log.txt` by adding `>log.txt 2>&1` to your command-line) or upload the `.dump` files you get when you add `--write-pages` [somewhere](https://gist.github.com/). - -**Site support requests must contain an example URL**. An example URL is a URL you might want to download, like `http://www.youtube.com/watch?v=BaW_jenozKc`. There should be an obvious video present. Except under very special circumstances, the main page of a video service (e.g. `http://www.youtube.com/`) is *not* an example URL. - -### Are you using the latest version? - -Before reporting any issue, type `youtube-dl -U`. This should report that you're up-to-date. About 20% of the reports we receive are already fixed, but people are using outdated versions. This goes for feature requests as well. - -### Is the issue already documented? - -Make sure that someone has not already opened the issue you're trying to open. Search at the top of the window or browse the [GitHub Issues](https://github.com/rg3/youtube-dl/search?type=Issues) of this repository. If there is an issue, feel free to write something along the lines of "This affects me as well, with version 2015.01.01. Here is some more information on the issue: ...". While some issues may be old, a new post into them often spurs rapid activity. - -### Why are existing options not enough? - -Before requesting a new feature, please have a quick peek at [the list of supported options](https://github.com/rg3/youtube-dl/blob/master/README.md#options). Many feature requests are for features that actually exist already! Please, absolutely do show off your work in the issue report and detail how the existing similar options do *not* solve your problem. - -### Is there enough context in your bug report? - -People want to solve problems, and often think they do us a favor by breaking down their larger problems (e.g. wanting to skip already downloaded files) to a specific request (e.g. requesting us to look whether the file exists before downloading the info page). However, what often happens is that they break down the problem into two steps: One simple, and one impossible (or extremely complicated one). - -We are then presented with a very complicated request when the original problem could be solved far easier, e.g. by recording the downloaded video IDs in a separate file. To avoid this, you must include the greater context where it is non-obvious. In particular, every feature request that does not consist of adding support for a new site should contain a use case scenario that explains in what situation the missing feature would be useful. - -### Does the issue involve one problem, and one problem only? - -Some of our users seem to think there is a limit of issues they can or should open. There is no limit of issues they can or should open. While it may seem appealing to be able to dump all your issues into one ticket, that means that someone who solves one of your issues cannot mark the issue as closed. Typically, reporting a bunch of issues leads to the ticket lingering since nobody wants to attack that behemoth, until someone mercifully splits the issue into multiple ones. - -In particular, every site support request issue should only pertain to services at one site (generally under a common domain, but always using the same backend technology). Do not request support for vimeo user videos, Whitehouse podcasts, and Google Plus pages in the same issue. Also, make sure that you don't post bug reports alongside feature requests. As a rule of thumb, a feature request does not include outputs of youtube-dl that are not immediately related to the feature at hand. Do not post reports of a network error alongside the request for a new video service. - -### Is anyone going to need the feature? - -Only post features that you (or an incapacitated friend you can personally talk to) require. Do not post features because they seem like a good idea. If they are really useful, they will be requested by someone who requires them. - -### Is your question about youtube-dl? - -It may sound strange, but some bug reports we receive are completely unrelated to youtube-dl and relate to a different, or even the reporter's own, application. Please make sure that you are actually using youtube-dl. If you are using a UI for youtube-dl, report the bug to the maintainer of the actual application providing the UI. On the other hand, if your UI for youtube-dl fails in some way you believe is related to youtube-dl, by all means, go ahead and report the bug. - -# DEVELOPER INSTRUCTIONS - -Most users do not need to build youtube-dl and can [download the builds](http://rg3.github.io/youtube-dl/download.html) or get them from their distribution. - -To run youtube-dl as a developer, you don't need to build anything either. Simply execute - - python -m youtube_dl - -To run the test, simply invoke your favorite test runner, or execute a test file directly; any of the following work: - - python -m unittest discover - python test/test_download.py - nosetests - -If you want to create a build of youtube-dl yourself, you'll need - -* python -* make (only GNU make is supported) -* pandoc -* zip -* nosetests - -### Adding support for a new site - -If you want to add support for a new site, first of all **make sure** this site is **not dedicated to [copyright infringement](README.md#can-you-add-support-for-this-anime-video-site-or-site-which-shows-current-movies-for-free)**. youtube-dl does **not support** such sites thus pull requests adding support for them **will be rejected**. - -After you have ensured this site is distributing it's content legally, you can follow this quick list (assuming your service is called `yourextractor`): - -1. [Fork this repository](https://github.com/rg3/youtube-dl/fork) -2. Check out the source code with: - - git clone git@github.com:YOUR_GITHUB_USERNAME/youtube-dl.git - -3. Start a new git branch with - - cd youtube-dl - git checkout -b yourextractor - -4. Start with this simple template and save it to `youtube_dl/extractor/yourextractor.py`: - - ```python - # coding: utf-8 - from __future__ import unicode_literals - - from .common import InfoExtractor - - - class YourExtractorIE(InfoExtractor): - _VALID_URL = r'https?://(?:www\.)?yourextractor\.com/watch/(?P[0-9]+)' - _TEST = { - 'url': 'http://yourextractor.com/watch/42', - 'md5': 'TODO: md5 sum of the first 10241 bytes of the video file (use --test)', - 'info_dict': { - 'id': '42', - 'ext': 'mp4', - 'title': 'Video title goes here', - 'thumbnail': 're:^https?://.*\.jpg$', - # TODO more properties, either as: - # * A value - # * MD5 checksum; start the string with md5: - # * A regular expression; start the string with re: - # * Any Python type (for example int or float) - } - } - - def _real_extract(self, url): - video_id = self._match_id(url) - webpage = self._download_webpage(url, video_id) - - # TODO more code goes here, for example ... - title = self._html_search_regex(r'

(.+?)

', webpage, 'title') - - return { - 'id': video_id, - 'title': title, - 'description': self._og_search_description(webpage), - 'uploader': self._search_regex(r']+id="uploader"[^>]*>([^<]+)<', webpage, 'uploader', fatal=False), - # TODO more properties (see youtube_dl/extractor/common.py) - } - ``` -5. Add an import in [`youtube_dl/extractor/extractors.py`](https://github.com/rg3/youtube-dl/blob/master/youtube_dl/extractor/extractors.py). -6. Run `python test/test_download.py TestDownload.test_YourExtractor`. This *should fail* at first, but you can continually re-run it until you're done. If you decide to add more than one test, then rename ``_TEST`` to ``_TESTS`` and make it into a list of dictionaries. The tests will then be named `TestDownload.test_YourExtractor`, `TestDownload.test_YourExtractor_1`, `TestDownload.test_YourExtractor_2`, etc. -7. Have a look at [`youtube_dl/extractor/common.py`](https://github.com/rg3/youtube-dl/blob/master/youtube_dl/extractor/common.py) for possible helper methods and a [detailed description of what your extractor should and may return](https://github.com/rg3/youtube-dl/blob/master/youtube_dl/extractor/common.py#L74-L252). Add tests and code for as many as you want. -8. Make sure your code follows [youtube-dl coding conventions](#youtube-dl-coding-conventions) and check the code with [flake8](https://pypi.python.org/pypi/flake8). Also make sure your code works under all [Python](http://www.python.org/) versions claimed supported by youtube-dl, namely 2.6, 2.7, and 3.2+. -9. When the tests pass, [add](http://git-scm.com/docs/git-add) the new files and [commit](http://git-scm.com/docs/git-commit) them and [push](http://git-scm.com/docs/git-push) the result, like this: - - $ git add youtube_dl/extractor/extractors.py - $ git add youtube_dl/extractor/yourextractor.py - $ git commit -m '[yourextractor] Add new extractor' - $ git push origin yourextractor - -10. Finally, [create a pull request](https://help.github.com/articles/creating-a-pull-request). We'll then review and merge it. - -In any case, thank you very much for your contributions! - -## youtube-dl coding conventions - -This section introduces a guide lines for writing idiomatic, robust and future-proof extractor code. - -Extractors are very fragile by nature since they depend on the layout of the source data provided by 3rd party media hosters out of your control and this layout tends to change. As an extractor implementer your task is not only to write code that will extract media links and metadata correctly but also to minimize dependency on the source's layout and even to make the code foresee potential future changes and be ready for that. This is important because it will allow the extractor not to break on minor layout changes thus keeping old youtube-dl versions working. Even though this breakage issue is easily fixed by emitting a new version of youtube-dl with a fix incorporated, all the previous versions become broken in all repositories and distros' packages that may not be so prompt in fetching the update from us. Needless to say, some non rolling release distros may never receive an update at all. - -### Mandatory and optional metafields - -For extraction to work youtube-dl relies on metadata your extractor extracts and provides to youtube-dl expressed by an [information dictionary](https://github.com/rg3/youtube-dl/blob/master/youtube_dl/extractor/common.py#L75-L257) or simply *info dict*. Only the following meta fields in the *info dict* are considered mandatory for a successful extraction process by youtube-dl: - - - `id` (media identifier) - - `title` (media title) - - `url` (media download URL) or `formats` - -In fact only the last option is technically mandatory (i.e. if you can't figure out the download location of the media the extraction does not make any sense). But by convention youtube-dl also treats `id` and `title` as mandatory. Thus the aforementioned metafields are the critical data that the extraction does not make any sense without and if any of them fail to be extracted then the extractor is considered completely broken. - -[Any field](https://github.com/rg3/youtube-dl/blob/master/youtube_dl/extractor/common.py#L149-L257) apart from the aforementioned ones are considered **optional**. That means that extraction should be **tolerant** to situations when sources for these fields can potentially be unavailable (even if they are always available at the moment) and **future-proof** in order not to break the extraction of general purpose mandatory fields. - -#### Example - -Say you have some source dictionary `meta` that you've fetched as JSON with HTTP request and it has a key `summary`: - -```python -meta = self._download_json(url, video_id) -``` - -Assume at this point `meta`'s layout is: - -```python -{ - ... - "summary": "some fancy summary text", - ... -} -``` - -Assume you want to extract `summary` and put it into the resulting info dict as `description`. Since `description` is an optional metafield you should be ready that this key may be missing from the `meta` dict, so that you should extract it like: - -```python -description = meta.get('summary') # correct -``` - -and not like: - -```python -description = meta['summary'] # incorrect -``` - -The latter will break extraction process with `KeyError` if `summary` disappears from `meta` at some later time but with the former approach extraction will just go ahead with `description` set to `None` which is perfectly fine (remember `None` is equivalent to the absence of data). - -Similarly, you should pass `fatal=False` when extracting optional data from a webpage with `_search_regex`, `_html_search_regex` or similar methods, for instance: - -```python -description = self._search_regex( - r']+id="title"[^>]*>([^<]+)<', - webpage, 'description', fatal=False) -``` - -With `fatal` set to `False` if `_search_regex` fails to extract `description` it will emit a warning and continue extraction. - -You can also pass `default=`, for example: - -```python -description = self._search_regex( - r']+id="title"[^>]*>([^<]+)<', - webpage, 'description', default=None) -``` - -On failure this code will silently continue the extraction with `description` set to `None`. That is useful for metafields that may or may not be present. - -### Provide fallbacks - -When extracting metadata try to do so from multiple sources. For example if `title` is present in several places, try extracting from at least some of them. This makes it more future-proof in case some of the sources become unavailable. - -#### Example - -Say `meta` from the previous example has a `title` and you are about to extract it. Since `title` is a mandatory meta field you should end up with something like: - -```python -title = meta['title'] -``` - -If `title` disappears from `meta` in future due to some changes on the hoster's side the extraction would fail since `title` is mandatory. That's expected. - -Assume that you have some another source you can extract `title` from, for example `og:title` HTML meta of a `webpage`. In this case you can provide a fallback scenario: - -```python -title = meta.get('title') or self._og_search_title(webpage) -``` - -This code will try to extract from `meta` first and if it fails it will try extracting `og:title` from a `webpage`. - -### Make regular expressions flexible - -When using regular expressions try to write them fuzzy and flexible. - -#### Example - -Say you need to extract `title` from the following HTML code: - -```html -some fancy title -``` - -The code for that task should look similar to: - -```python -title = self._search_regex( - r']+class="title"[^>]*>([^<]+)', webpage, 'title') -``` - -Or even better: - -```python -title = self._search_regex( - r']+class=(["\'])title\1[^>]*>(?P[^<]+)', - webpage, 'title', group='title') -``` - -Note how you tolerate potential changes in the `style` attribute's value or switch from using double quotes to single for `class` attribute: - -The code definitely should not look like: - -```python -title = self._search_regex( - r'<span style="position: absolute; left: 910px; width: 90px; float: right; z-index: 9999;" class="title">(.*?)</span>', - webpage, 'title', group='title') -``` - -### Use safe conversion functions - -Wrap all extracted numeric data into safe functions from `utils`: `int_or_none`, `float_or_none`. Use them for string to number conversions as well. - diff --git a/ChangeLog b/ChangeLog index a91de7b..7e2afaa 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,382 @@ +version 2017.02.07 + +Core +* [extractor/common] Fix audio only with audio group in m3u8 (#11995) ++ [downloader/fragment] Respect --no-part +* [extractor/common] Speed-up HTML5 media entries extraction (#11979) + +Extractors +* [pornhub] Fix extraction (#11997) ++ [canalplus] Add support for cstar.fr (#11990) ++ [extractor/generic] Improve RTMP support (#11993) ++ [gaskrank] Add support for gaskrank.tv (#11685) +* [bandcamp] Fix extraction for incomplete albums (#11727) +* [iwara] Fix extraction (#11781) +* [googledrive] Fix extraction on Python 3.6 ++ [videopress] Add support for videopress.com ++ [afreecatv] Extract RTMP formats + + +version 2017.02.04.1 + +Extractors ++ [twitch:stream] Add support for player.twitch.tv (#11971) +* [radiocanada] Fix extraction for toutv rtmp formats + + +version 2017.02.04 + +Core ++ Add --playlist-random to shuffle playlists (#11889, #11901) +* [utils] Improve comments processing in js_to_json (#11947) +* [utils] Handle single-line comments in js_to_json +* [downloader/external:ffmpeg] Minimize the use of aac_adtstoasc filter + +Extractors ++ [piksel] Add another app token pattern (#11969) ++ [vk] Capture and output author blocked error message (#11965) ++ [turner] Fix secure HLS formats downloading with ffmpeg (#11358, #11373, + #11800) ++ [drtv] Add support for live and radio sections (#1827, #3427) +* [myspace] Fix extraction and extract HLS and HTTP formats ++ [youtube] Add format info for itag 325 and 328 +* [vine] Fix extraction (#11955) +- [sportbox] Remove extractor (#11954) ++ [filmon] Add support for filmon.com (#11187) ++ [infoq] Add audio only formats (#11565) +* [douyutv] Improve room id regular expression (#11931) +* [iprima] Fix extraction (#11920, #11896) +* [youtube] Fix ytsearch when cookies are provided (#11924) +* [go] Relax video id regular expression (#11937) +* [facebook] Fix title extraction (#11941) ++ [youtube:playlist] Recognize TL playlists (#11945) ++ [bilibili] Support new Bangumi URLs (#11845) ++ [cbc:watch] Extract audio codec for audio only formats (#11893) ++ [elpais] Fix extraction for some URLs (#11765) + + +version 2017.02.01 + +Extractors ++ [facebook] Add another fallback extraction scenario (#11926) +* [prosiebensat1] Fix extraction of descriptions (#11810, #11929) +- [crunchyroll] Remove ScaledBorderAndShadow settings (#9028) ++ [vimeo] Extract upload timestamp ++ [vimeo] Extract license (#8726, #11880) ++ [nrk:series] Add support for series (#11571, #11711) + + +version 2017.01.31 + +Core ++ [compat] Add compat_etree_register_namespace + +Extractors +* [youtube] Fix extraction for domainless player URLs (#11890, #11891, #11892, + #11894, #11895, #11897, #11900, #11903, #11904, #11906, #11907, #11909, + #11913, #11914, #11915, #11916, #11917, #11918, #11919) ++ [vimeo] Extract both mixed and separated DASH formats ++ [ruutu] Extract DASH formats +* [itv] Fix extraction for python 2.6 + + +version 2017.01.29 + +Core +* [extractor/common] Fix initialization template (#11605, #11825) ++ [extractor/common] Document fragment_base_url and fragment's path fields +* [extractor/common] Fix duration per DASH segment (#11868) ++ Introduce --autonumber-start option for initial value of %(autonumber)s + template (#727, #2702, #9362, #10457, #10529, #11862) + +Extractors ++ [azmedien:playlist] Add support for topic and themen playlists (#11817) +* [npo] Fix subtitles extraction ++ [itv] Extract subtitles ++ [itv] Add support for itv.com (#9240) ++ [mtv81] Add support for mtv81.com (#7619) ++ [vlive] Add support for channels (#11826) ++ [kaltura] Add fallback for fileExt ++ [kaltura] Improve uploader_id extraction ++ [konserthusetplay] Add support for rspoplay.se (#11828) + + +version 2017.01.28 + +Core +* [utils] Improve parse_duration + +Extractors +* [crunchyroll] Improve series and season metadata extraction (#11832) +* [soundcloud] Improve formats extraction and extract audio bitrate ++ [soundcloud] Extract HLS formats +* [soundcloud] Fix track URL extraction (#11852) ++ [twitch:vod] Expand URL regular expressions (#11846) +* [aenetworks] Fix season episodes extraction (#11669) ++ [tva] Add support for videos.tva.ca (#11842) +* [jamendo] Improve and extract more metadata (#11836) ++ [disney] Add support for Disney sites (#7409, #11801, #4975, #11000) +* [vevo] Remove request to old API and catch API v2 errors ++ [cmt,mtv,southpark] Add support for episode URLs (#11837) ++ [youtube] Add fallback for duration extraction (#11841) + + +version 2017.01.25 + +Extractors ++ [openload] Fallback video extension to mp4 ++ [extractor/generic] Add support for Openload embeds (#11536, #11812) +* [srgssr] Fix rts video extraction (#11831) ++ [afreecatv:global] Add support for afreeca.tv (#11807) ++ [crackle] Extract vtt subtitles ++ [crackle] Extract multiple resolutions for thumbnails ++ [crackle] Add support for mobile URLs ++ [konserthusetplay] Extract subtitles (#11823) ++ [konserthusetplay] Add support for HLS videos (#11823) +* [vimeo:review] Fix config URL extraction (#11821) + + +version 2017.01.24 + +Extractors +* [pluralsight] Fix extraction (#11820) ++ [nextmedia] Add support for NextTV (壹電視) +* [24video] Fix extraction (#11811) +* [youtube:playlist] Fix nonexistent and private playlist detection (#11604) ++ [chirbit] Extract uploader (#11809) + + +version 2017.01.22 + +Extractors ++ [pornflip] Add support for pornflip.com (#11556, #11795) +* [chaturbate] Fix extraction (#11797, #11802) ++ [azmedien] Add support for AZ Medien sites (#11784, #11785) ++ [nextmedia] Support redirected URLs ++ [vimeo:channel] Extract videos' titles for playlist entries (#11796) ++ [youtube] Extract episode metadata (#9695, #11774) ++ [cspan] Support Ustream embedded videos (#11547) ++ [1tv] Add support for HLS videos (#11786) +* [uol] Fix extraction (#11770) +* [mtv] Relax triforce feed regular expression (#11766) + + +version 2017.01.18 + +Extractors +* [bilibili] Fix extraction (#11077) ++ [canalplus] Add fallback for video id (#11764) +* [20min] Fix extraction (#11683, #11751) +* [imdb] Extend URL regular expression (#11744) ++ [naver] Add support for tv.naver.com links (#11743) + + +version 2017.01.16 + +Core +* [options] Apply custom config to final composite configuration (#11741) +* [YoutubeDL] Improve protocol auto determining (#11720) + +Extractors +* [xiami] Relax URL regular expressions +* [xiami] Improve track metadata extraction (#11699) ++ [limelight] Check hand-make direct HTTP links ++ [limelight] Add support for direct HTTP links at video.llnw.net (#11737) ++ [brightcove] Recognize another player ID pattern (#11688) ++ [niconico] Support login via cookies (#7968) +* [yourupload] Fix extraction (#11601) ++ [beam:live] Add support for beam.pro live streams (#10702, #11596) +* [vevo] Improve geo restriction detection ++ [dramafever] Add support for URLs with language code (#11714) +* [cbc] Improve playlist support (#11704) + + +version 2017.01.14 + +Core ++ [common] Add ability to customize akamai manifest host ++ [utils] Add more date formats + +Extractors +- [mtv] Eliminate _transform_rtmp_url +* [mtv] Generalize triforce mgid extraction ++ [cmt] Add support for full episodes and video clips (#11623) ++ [mitele] Extract DASH formats ++ [ooyala] Add support for videos with embedToken (#11684) +* [mixcloud] Fix extraction (#11674) +* [openload] Fix extraction (#10408) +* [tv4] Improve extraction (#11698) +* [freesound] Fix and improve extraction (#11602) ++ [nick] Add support for beta.nick.com (#11655) +* [mtv,cc] Use HLS by default with native HLS downloader (#11641) +* [mtv] Fix non-HLS extraction + + +version 2017.01.10 + +Extractors +* [youtube] Fix extraction (#11663, #11664) ++ [inc] Add support for inc.com (#11277, #11647) ++ [youtube] Add itag 212 (#11575) ++ [egghead:course] Add support for egghead.io courses + + +version 2017.01.08 + +Core +* Fix "invalid escape sequence" errors under Python 3.6 (#11581) + +Extractors ++ [hitrecord] Add support for hitrecord.org (#10867, #11626) +- [videott] Remove extractor +* [swrmediathek] Improve extraction +- [sharesix] Remove extractor +- [aol:features] Remove extractor +* [sendtonews] Improve info extraction +* [3sat,phoenix] Fix extraction (#11619) +* [comedycentral/mtv] Add support for HLS videos (#11600) +* [discoverygo] Fix JSON data parsing (#11219, #11522) + + +version 2017.01.05 + +Extractors ++ [zdf] Fix extraction (#11055, #11063) +* [pornhub:playlist] Improve extraction (#11594) ++ [cctv] Add support for ncpa-classic.com (#11591) ++ [tunein] Add support for embeds (#11579) + + +version 2017.01.02 + +Extractors +* [cctv] Improve extraction (#879, #6753, #8541) ++ [nrktv:episodes] Add support for episodes (#11571) ++ [arkena] Add support for video.arkena.com (#11568) + + +version 2016.12.31 + +Core ++ Introduce --config-location option for custom configuration files (#6745, + #10648) + +Extractors ++ [twitch] Add support for player.twitch.tv (#11535, #11537) ++ [videa] Add support for videa.hu (#8181, #11133) +* [vk] Fix postlive videos extraction +* [vk] Extract from playerParams (#11555) +- [freevideo] Remove extractor (#11515) ++ [showroomlive] Add support for showroom-live.com (#11458) +* [xhamster] Fix duration extraction (#11549) +* [rtve:live] Fix extraction (#11529) +* [brightcove:legacy] Improve embeds detection (#11523) ++ [twitch] Add support for rechat messages (#11524) +* [acast] Fix audio and timestamp extraction (#11521) + + +version 2016.12.22 + +Core +* [extractor/common] Improve detection of video-only formats in m3u8 + manifests (#11507) + +Extractors ++ [theplatform] Pass geo verification headers to SMIL request (#10146) ++ [viu] Pass geo verification headers to auth request +* [rtl2] Extract more formats and metadata +* [vbox7] Skip malformed JSON-LD (#11501) +* [uplynk] Force downloading using native HLS downloader (#11496) ++ [laola1] Add support for another extraction scenario (#11460) + + +version 2016.12.20 + +Core +* [extractor/common] Improve fragment URL construction for DASH media +* [extractor/common] Fix codec information extraction for mixed audio/video + DASH media (#11490) + +Extractors +* [vbox7] Fix extraction (#11494) ++ [uktvplay] Add support for uktvplay.uktv.co.uk (#11027) ++ [piksel] Add support for player.piksel.com (#11246) ++ [vimeo] Add support for DASH formats +* [vimeo] Fix extraction for HLS formats (#11490) +* [kaltura] Fix wrong widget ID in some cases (#11480) ++ [nrktv:direkte] Add support for live streams (#11488) +* [pbs] Fix extraction for geo restricted videos (#7095) +* [brightcove:new] Skip widevine classic videos ++ [viu] Add support for viu.com (#10607, #11329) + + +version 2016.12.18 + +Core ++ [extractor/common] Recognize DASH formats in html5 media entries + +Extractors ++ [ccma] Add support for ccma.cat (#11359) +* [laola1tv] Improve extraction ++ [laola1tv] Add support embed URLs (#11460) +* [nbc] Fix extraction for MSNBC videos (#11466) +* [twitch] Adapt to new videos pages URL schema (#11469) ++ [meipai] Add support for meipai.com (#10718) +* [jwplatform] Improve subtitles and duration extraction ++ [ondemandkorea] Add support for ondemandkorea.com (#10772) ++ [vvvvid] Add support for vvvvid.it (#5915) + + +version 2016.12.15 + +Core ++ [utils] Add convenience urljoin + +Extractors ++ [openload] Recognize oload.tv URLs (#10408) ++ [facebook] Recognize .onion URLs (#11443) +* [vlive] Fix extraction (#11375, #11383) ++ [canvas] Extract DASH formats ++ [melonvod] Add support for vod.melon.com (#11419) + + +version 2016.12.12 + +Core ++ [utils] Add common user agents map ++ [common] Recognize HLS manifests that contain video only formats (#11394) + +Extractors ++ [dplay] Use Safari user agent for HLS (#11418) ++ [facebook] Detect login required error message +* [facebook] Improve video selection (#11390) ++ [canalplus] Add another video id pattern (#11399) +* [mixcloud] Relax URL regular expression (#11406) +* [ctvnews] Relax URL regular expression (#11394) ++ [rte] Capture and output error message (#7746, #10498) ++ [prosiebensat1] Add support for DASH formats +* [srgssr] Improve extraction for geo restricted videos (#11089) +* [rts] Improve extraction for geo restricted videos (#4989) + + +version 2016.12.09 + +Core +* [socks] Fix error reporting (#11355) + +Extractors +* [openload] Fix extraction (#10408) +* [pandoratv] Fix extraction (#11023) ++ [telebruxelles] Add support for emission URLs +* [telebruxelles] Extract all formats ++ [bloomberg] Add another video id regular expression (#11371) +* [fusion] Update ooyala id regular expression (#11364) ++ [1tv] Add support for playlists (#11335) +* [1tv] Improve extraction (#11335) ++ [aenetworks] Extract more formats (#11321) ++ [thisoldhouse] Recognize /tv-episode/ URLs (#11271) + + version 2016.12.01 Extractors diff --git a/README.md b/README.md index ea9131c..89876bd 100644 --- a/README.md +++ b/README.md @@ -29,7 +29,7 @@ Windows users can [download an .exe file](https://yt-dl.org/latest/youtube-dl.ex You can also use pip: - sudo pip install --upgrade youtube-dl + sudo -H pip install --upgrade youtube-dl 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. @@ -44,11 +44,7 @@ Or with [MacPorts](https://www.macports.org/): Alternatively, refer to the [developer instructions](#developer-instructions) for how to check out and work with the git repository. For further options, including PGP signatures, see the [youtube-dl Download Page](https://rg3.github.io/youtube-dl/download.html). # DESCRIPTION -**youtube-dl** is a command-line program to download videos from -YouTube.com and a few more sites. It requires the Python interpreter, version -2.6, 2.7, or 3.2+, and it is not platform specific. It should work on -your Unix box, on Windows or on Mac OS X. It is released to the public domain, -which means you can modify it, redistribute it or use it however you like. +**youtube-dl** is a command-line program to download videos from YouTube.com and a few more sites. It requires the Python interpreter, version 2.6, 2.7, or 3.2+, and it is not platform specific. It should work on your Unix box, on Windows or on Mac OS X. It is released to the public domain, which means you can modify it, redistribute it or use it however you like. youtube-dl [OPTIONS] URL [URL...] @@ -84,13 +80,14 @@ which means you can modify it, redistribute it or use it however you like. configuration in ~/.config/youtube- dl/config (%APPDATA%/youtube-dl/config.txt on Windows) + --config-location PATH Location of the configuration file; either + the path to the config or its containing + directory. --flat-playlist Do not extract the videos of a playlist, only list them. --mark-watched Mark videos watched (YouTube only) --no-mark-watched Do not mark videos watched (YouTube only) --no-color Do not emit color codes in output - --abort-on-unavailable-fragment Abort downloading when some fragment is not - available ## Network Options: --proxy URL Use the specified HTTP/HTTPS/SOCKS proxy. @@ -100,16 +97,13 @@ which means you can modify it, redistribute it or use it however you like. string (--proxy "") for direct connection --socket-timeout SECONDS Time to wait before giving up, in seconds --source-address IP Client-side IP address to bind to - (experimental) -4, --force-ipv4 Make all connections via IPv4 - (experimental) -6, --force-ipv6 Make all connections via IPv6 - (experimental) --geo-verification-proxy URL Use this proxy to verify the IP address for some geo-restricted sites. The default proxy specified by --proxy (or none, if the options is not present) is used for the - actual downloading. (experimental) + actual downloading. ## Video Selection: --playlist-start NUMBER Playlist video to start at (default is 1) @@ -140,23 +134,23 @@ which means you can modify it, redistribute it or use it however you like. COUNT views --max-views COUNT Do not download any videos with more than COUNT views - --match-filter FILTER Generic video filter (experimental). - Specify any key (see help for -o for a list - of available keys) to match if the key is - present, !key to check if the key is not - present,key > NUMBER (like "comment_count > - 12", also works with >=, <, <=, !=, =) to - compare against a number, and & to require - multiple matches. Values which are not - known are excluded unless you put a - question mark (?) after the operator.For - example, to only match videos that have - been liked more than 100 times and disliked - less than 50 times (or the dislike - functionality is not available at the given - service), but who also have a description, - use --match-filter "like_count > 100 & - dislike_count <? 50 & description" . + --match-filter FILTER Generic video filter. Specify any key (see + help for -o for a list of available keys) + to match if the key is present, !key to + check if the key is not present,key > + NUMBER (like "comment_count > 12", also + works with >=, <, <=, !=, =) to compare + against a number, and & to require multiple + matches. Values which are not known are + excluded unless you put a question mark (?) + after the operator.For example, to only + match videos that have been liked more than + 100 times and disliked less than 50 times + (or the dislike functionality is not + available at the given service), but who + also have a description, use --match-filter + "like_count > 100 & dislike_count <? 50 & + description" . --no-playlist Download only the video, if the URL refers to a video and a playlist. --yes-playlist Download the playlist, if the URL refers to @@ -179,6 +173,8 @@ which means you can modify it, redistribute it or use it however you like. only) --skip-unavailable-fragments Skip unavailable fragments (DASH and hlsnative only) + --abort-on-unavailable-fragment Abort downloading when some fragment is not + available --buffer-size SIZE Size of download buffer (e.g. 1024 or 16K) (default is 1024) --no-resize-buffer Do not automatically adjust the buffer @@ -186,8 +182,9 @@ which means you can modify it, redistribute it or use it however you like. automatically resized from an initial value of SIZE. --playlist-reverse Download playlist videos in reverse order + --playlist-random Download playlist videos in random order --xattr-set-filesize Set file xattribute ytdl.filesize with - expected filesize (experimental) + expected file size (experimental) --hls-prefer-native Use the native HLS downloader instead of ffmpeg --hls-prefer-ffmpeg Use ffmpeg instead of the native HLS @@ -211,7 +208,9 @@ which means you can modify it, redistribute it or use it however you like. --autonumber-size NUMBER Specify the number of digits in %(autonumber)s when it is present in output filename template or --auto-number option - is given + is given (default is 5) + --autonumber-start NUMBER Specify the start value for %(autonumber)s + (default is 1) --restrict-filenames Restrict filenames to only ASCII characters, and avoid "&" and spaces in filenames @@ -354,7 +353,7 @@ which means you can modify it, redistribute it or use it however you like. -u, --username USERNAME Login with this account ID -p, --password PASSWORD Account password. If this option is left out, youtube-dl will ask interactively. - -2, --twofactor TWOFACTOR Two-factor auth code + -2, --twofactor TWOFACTOR Two-factor authentication code -n, --netrc Use .netrc authentication data --video-password PASSWORD Video password (vimeo, smotri, youku) @@ -375,7 +374,7 @@ which means you can modify it, redistribute it or use it however you like. avprobe) --audio-format FORMAT Specify audio format: "best", "aac", "vorbis", "mp3", "m4a", "opus", or "wav"; - "best" by default + "best" by default; No effect without -x --audio-quality QUALITY Specify ffmpeg/avconv audio quality, insert a value between 0 (better) and 9 (worse) for VBR or a specific bitrate like 128K @@ -447,6 +446,8 @@ Note that options in configuration file are just the same options aka switches u You can use `--ignore-config` if you want to disable the configuration file for a particular youtube-dl run. +You can also use `--config-location` if you want to use custom configuration file for a particular youtube-dl run. + ### Authentication with `.netrc` file You may also want to configure automatic credentials storage for extractors that support authentication (by providing login and password with `--username` and `--password`) in order not to pass credentials as command line arguments on every youtube-dl execution and prevent tracking plain text passwords in the shell command history. You can achieve this using a [`.netrc` file](http://stackoverflow.com/tags/.netrc/info) on a per extractor basis. For that you will need to create a `.netrc` file in your `$HOME` and restrict permissions to read/write by only you: @@ -638,7 +639,7 @@ Also filtering work for comparisons `=` (equals), `!=` (not equals), `^=` (begin - `acodec`: Name of the audio codec in use - `vcodec`: Name of the video codec in use - `container`: Name of the container format - - `protocol`: The protocol that will be used for the actual download, lower-case. `http`, `https`, `rtsp`, `rtmp`, `rtmpe`, `m3u8`, or `m3u8_native` + - `protocol`: The protocol that will be used for the actual download, lower-case (`http`, `https`, `rtsp`, `rtmp`, `rtmpe`, `mms`, `f4m`, `ism`, `m3u8`, or `m3u8_native`) - `format_id`: A short description of the format Note that none of the aforementioned meta fields are guaranteed to be present since this solely depends on the metadata obtained by particular extractor, i.e. the metadata offered by the video hoster. @@ -664,7 +665,7 @@ $ youtube-dl -f 'bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]/best' # Download best format available but not better that 480p $ youtube-dl -f 'bestvideo[height<=480]+bestaudio/best[height<=480]' -# Download best video only format but no bigger that 50 MB +# Download best video only format but no bigger than 50 MB $ youtube-dl -f 'best[filesize<50M]' # Download best format available via direct link over HTTP/HTTPS protocol @@ -744,7 +745,7 @@ Most people asking this question are not aware that youtube-dl now defaults to d ### I get HTTP error 402 when trying to download a video. What's this? -Apparently YouTube requires you to pass a CAPTCHA test if you download too much. We're [considering to provide a way to let you solve the CAPTCHA](https://github.com/rg3/youtube-dl/issues/154), but at the moment, your best course of action is pointing a webbrowser to the youtube URL, solving the CAPTCHA, and restart youtube-dl. +Apparently YouTube requires you to pass a CAPTCHA test if you download too much. We're [considering to provide a way to let you solve the CAPTCHA](https://github.com/rg3/youtube-dl/issues/154), but at the moment, your best course of action is pointing a web browser to the youtube URL, solving the CAPTCHA, and restart youtube-dl. ### Do I need any other programs? @@ -756,7 +757,7 @@ Videos or video formats streamed via RTMP protocol can only be downloaded when [ Once the video is fully downloaded, use any video player, such as [mpv](https://mpv.io/), [vlc](http://www.videolan.org/) or [mplayer](http://www.mplayerhq.hu/). -### I extracted a video URL with `-g`, but it does not play on another machine / in my webbrowser. +### I extracted a video URL with `-g`, but it does not play on another machine / in my web browser. It depends a lot on the service. In many cases, requests for the video (to download/play it) must come from the same IP address and with the same cookies and/or HTTP headers. Use the `--cookies` option to write the required cookies into a file, and advise your downloader to read cookies from that file. Some sites also require a common user agent to be used, use `--dump-user-agent` to see the one in use by youtube-dl. You can also get necessary cookies and HTTP headers from JSON output obtained with `--dump-json`. @@ -840,7 +841,7 @@ 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). -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, `LF` (`\n`) for Linux and `CR` (`\r`) for Mac OS. `HTTP Error 400: Bad Request` when using `--cookies` is a good sign of invalid newline format. +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, Mac OS, etc.). `HTTP Error 400: Bad Request` when using `--cookies` is a good sign of invalid newline format. Passing cookies to youtube-dl is a good way to workaround login when a particular extractor does not implement it explicitly. Another use case is working around [CAPTCHA](https://en.wikipedia.org/wiki/CAPTCHA) some websites require you to solve in particular cases in order to get access (e.g. YouTube, CloudFlare). @@ -932,7 +933,7 @@ If you want to create a build of youtube-dl yourself, you'll need If you want to add support for a new site, first of all **make sure** this site is **not dedicated to [copyright infringement](README.md#can-you-add-support-for-this-anime-video-site-or-site-which-shows-current-movies-for-free)**. youtube-dl does **not support** such sites thus pull requests adding support for them **will be rejected**. -After you have ensured this site is distributing it's content legally, you can follow this quick list (assuming your service is called `yourextractor`): +After you have ensured this site is distributing its content legally, you can follow this quick list (assuming your service is called `yourextractor`): 1. [Fork this repository](https://github.com/rg3/youtube-dl/fork) 2. Check out the source code with: @@ -962,7 +963,7 @@ After you have ensured this site is distributing it's content legally, you can f 'id': '42', 'ext': 'mp4', 'title': 'Video title goes here', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', # TODO more properties, either as: # * A value # * MD5 checksum; start the string with md5: @@ -1037,7 +1038,7 @@ Assume at this point `meta`'s layout is: } ``` -Assume you want to extract `summary` and put it into the resulting info dict as `description`. Since `description` is an optional metafield you should be ready that this key may be missing from the `meta` dict, so that you should extract it like: +Assume you want to extract `summary` and put it into the resulting info dict as `description`. Since `description` is an optional meta field you should be ready that this key may be missing from the `meta` dict, so that you should extract it like: ```python description = meta.get('summary') # correct @@ -1149,7 +1150,7 @@ with youtube_dl.YoutubeDL(ydl_opts) as ydl: ydl.download(['http://www.youtube.com/watch?v=BaW_jenozKc']) ``` -Most likely, you'll want to use various options. For a list of options available, have a look at [`youtube_dl/YoutubeDL.py`](https://github.com/rg3/youtube-dl/blob/master/youtube_dl/YoutubeDL.py#L128-L278). For a start, if you want to intercept youtube-dl's output, set a `logger` object. +Most likely, you'll want to use various options. For a list of options available, have a look at [`youtube_dl/YoutubeDL.py`](https://github.com/rg3/youtube-dl/blob/master/youtube_dl/YoutubeDL.py#L129-L279). For a start, if you want to intercept youtube-dl's output, set a `logger` object. Here's a more complete example of a program that outputs only errors (and a short message after the download is finished), and downloads/converts the video to an mp3 file: @@ -1252,7 +1253,7 @@ We are then presented with a very complicated request when the original problem Some of our users seem to think there is a limit of issues they can or should open. There is no limit of issues they can or should open. While it may seem appealing to be able to dump all your issues into one ticket, that means that someone who solves one of your issues cannot mark the issue as closed. Typically, reporting a bunch of issues leads to the ticket lingering since nobody wants to attack that behemoth, until someone mercifully splits the issue into multiple ones. -In particular, every site support request issue should only pertain to services at one site (generally under a common domain, but always using the same backend technology). Do not request support for vimeo user videos, Whitehouse podcasts, and Google Plus pages in the same issue. Also, make sure that you don't post bug reports alongside feature requests. As a rule of thumb, a feature request does not include outputs of youtube-dl that are not immediately related to the feature at hand. Do not post reports of a network error alongside the request for a new video service. +In particular, every site support request issue should only pertain to services at one site (generally under a common domain, but always using the same backend technology). Do not request support for vimeo user videos, White house podcasts, and Google Plus pages in the same issue. Also, make sure that you don't post bug reports alongside feature requests. As a rule of thumb, a feature request does not include outputs of youtube-dl that are not immediately related to the feature at hand. Do not post reports of a network error alongside the request for a new video service. ### Is anyone going to need the feature? diff --git a/README.txt b/README.txt new file mode 100644 index 0000000..24d4314 --- /dev/null +++ b/README.txt @@ -0,0 +1,1760 @@ +youtube-dl - download videos from youtube.com or other video platforms + +- INSTALLATION +- DESCRIPTION +- OPTIONS +- CONFIGURATION +- OUTPUT TEMPLATE +- FORMAT SELECTION +- VIDEO SELECTION +- FAQ +- DEVELOPER INSTRUCTIONS +- EMBEDDING YOUTUBE-DL +- BUGS +- COPYRIGHT + + + +INSTALLATION + + +To install it right away for all UNIX users (Linux, OS X, 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 + +If you do not have curl, you can alternatively use a recent wget: + + sudo wget https://yt-dl.org/downloads/latest/youtube-dl -O /usr/local/bin/youtube-dl + sudo chmod a+rx /usr/local/bin/youtube-dl + +Windows users can download an .exe file and place it in any location on +their PATH except for %SYSTEMROOT%\System32 (e.g. DO NOT put in +C:\Windows\System32). + +You can also use pip: + + sudo -H pip install --upgrade youtube-dl + +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: + + brew install youtube-dl + +Or with MacPorts: + + sudo port install youtube-dl + +Alternatively, refer to the developer instructions for how to check out +and work with the git repository. For further options, including PGP +signatures, see the youtube-dl Download Page. + + + +DESCRIPTION + + +YOUTUBE-DL is a command-line program to download videos from YouTube.com +and a few more sites. It requires the Python interpreter, version 2.6, +2.7, or 3.2+, and it is not platform specific. It should work on your +Unix box, on Windows or on Mac OS X. It is released to the public +domain, which means you can modify it, redistribute it or use it however +you like. + + youtube-dl [OPTIONS] URL [URL...] + + + +OPTIONS + + + -h, --help Print this help text and exit + --version Print program version and exit + -U, --update Update this program to latest version. Make + sure that you have sufficient permissions + (run with sudo if needed) + -i, --ignore-errors Continue on download errors, for example to + skip unavailable videos in a playlist + --abort-on-error Abort downloading of further videos (in the + playlist or the command line) if an error + occurs + --dump-user-agent Display the current browser identification + --list-extractors List all supported extractors + --extractor-descriptions Output descriptions of all supported + extractors + --force-generic-extractor Force extraction to use the generic + extractor + --default-search PREFIX Use this prefix for unqualified URLs. For + example "gvsearch2:" downloads two videos + from google videos for youtube-dl "large + apple". Use the value "auto" to let + youtube-dl guess ("auto_warning" to emit a + warning when guessing). "error" just throws + an error. The default value "fixup_error" + repairs broken URLs, but emits an error if + this is not possible instead of searching. + --ignore-config Do not read configuration files. When given + in the global configuration file + /etc/youtube-dl.conf: Do not read the user + configuration in ~/.config/youtube- + dl/config (%APPDATA%/youtube-dl/config.txt + on Windows) + --config-location PATH Location of the configuration file; either + the path to the config or its containing + directory. + --flat-playlist Do not extract the videos of a playlist, + only list them. + --mark-watched Mark videos watched (YouTube only) + --no-mark-watched Do not mark videos watched (YouTube only) + --no-color Do not emit color codes in output + + +Network Options: + + --proxy URL Use the specified HTTP/HTTPS/SOCKS proxy. + To enable experimental SOCKS proxy, specify + a proper scheme. For example + socks5://127.0.0.1:1080/. Pass in an empty + string (--proxy "") for direct connection + --socket-timeout SECONDS Time to wait before giving up, in seconds + --source-address IP Client-side IP address to bind to + -4, --force-ipv4 Make all connections via IPv4 + -6, --force-ipv6 Make all connections via IPv6 + --geo-verification-proxy URL Use this proxy to verify the IP address for + some geo-restricted sites. The default + proxy specified by --proxy (or none, if the + options is not present) is used for the + actual downloading. + + +Video Selection: + + --playlist-start NUMBER Playlist video to start at (default is 1) + --playlist-end NUMBER Playlist video to end at (default is last) + --playlist-items ITEM_SPEC Playlist video items to download. Specify + indices of the videos in the playlist + separated by commas like: "--playlist-items + 1,2,5,8" if you want to download videos + indexed 1, 2, 5, 8 in the playlist. You can + specify range: "--playlist-items + 1-3,7,10-13", it will download the videos + at index 1, 2, 3, 7, 10, 11, 12 and 13. + --match-title REGEX Download only matching titles (regex or + caseless sub-string) + --reject-title REGEX Skip download for matching titles (regex or + caseless sub-string) + --max-downloads NUMBER Abort after downloading NUMBER files + --min-filesize SIZE Do not download any videos smaller than + SIZE (e.g. 50k or 44.6m) + --max-filesize SIZE Do not download any videos larger than SIZE + (e.g. 50k or 44.6m) + --date DATE Download only videos uploaded in this date + --datebefore DATE Download only videos uploaded on or before + this date (i.e. inclusive) + --dateafter DATE Download only videos uploaded on or after + this date (i.e. inclusive) + --min-views COUNT Do not download any videos with less than + COUNT views + --max-views COUNT Do not download any videos with more than + COUNT views + --match-filter FILTER Generic video filter. Specify any key (see + help for -o for a list of available keys) + to match if the key is present, !key to + check if the key is not present,key > + NUMBER (like "comment_count > 12", also + works with >=, <, <=, !=, =) to compare + against a number, and & to require multiple + matches. Values which are not known are + excluded unless you put a question mark (?) + after the operator.For example, to only + match videos that have been liked more than + 100 times and disliked less than 50 times + (or the dislike functionality is not + available at the given service), but who + also have a description, use --match-filter + "like_count > 100 & dislike_count <? 50 & + description" . + --no-playlist Download only the video, if the URL refers + to a video and a playlist. + --yes-playlist Download the playlist, if the URL refers to + a video and a playlist. + --age-limit YEARS Download only videos suitable for the given + age + --download-archive FILE Download only videos not listed in the + archive file. Record the IDs of all + downloaded videos in it. + --include-ads Download advertisements as well + (experimental) + + +Download Options: + + -r, --limit-rate RATE Maximum download rate in bytes per second + (e.g. 50K or 4.2M) + -R, --retries RETRIES Number of retries (default is 10), or + "infinite". + --fragment-retries RETRIES Number of retries for a fragment (default + is 10), or "infinite" (DASH and hlsnative + only) + --skip-unavailable-fragments Skip unavailable fragments (DASH and + hlsnative only) + --abort-on-unavailable-fragment Abort downloading when some fragment is not + available + --buffer-size SIZE Size of download buffer (e.g. 1024 or 16K) + (default is 1024) + --no-resize-buffer Do not automatically adjust the buffer + size. By default, the buffer size is + automatically resized from an initial value + of SIZE. + --playlist-reverse Download playlist videos in reverse order + --playlist-random Download playlist videos in random order + --xattr-set-filesize Set file xattribute ytdl.filesize with + expected file size (experimental) + --hls-prefer-native Use the native HLS downloader instead of + ffmpeg + --hls-prefer-ffmpeg Use ffmpeg instead of the native HLS + downloader + --hls-use-mpegts Use the mpegts container for HLS videos, + allowing to play the video while + downloading (some players may not be able + to play it) + --external-downloader COMMAND Use the specified external downloader. + Currently supports + aria2c,avconv,axel,curl,ffmpeg,httpie,wget + --external-downloader-args ARGS Give these arguments to the external + downloader + + +Filesystem Options: + + -a, --batch-file FILE File containing URLs to download ('-' for + stdin) + --id Use only video ID in file name + -o, --output TEMPLATE Output filename template, see the "OUTPUT + TEMPLATE" for all the info + --autonumber-size NUMBER Specify the number of digits in + %(autonumber)s when it is present in output + filename template or --auto-number option + is given (default is 5) + --autonumber-start NUMBER Specify the start value for %(autonumber)s + (default is 1) + --restrict-filenames Restrict filenames to only ASCII + characters, and avoid "&" and spaces in + filenames + -A, --auto-number [deprecated; use -o + "%(autonumber)s-%(title)s.%(ext)s" ] Number + downloaded files starting from 00000 + -t, --title [deprecated] Use title in file name + (default) + -l, --literal [deprecated] Alias of --title + -w, --no-overwrites Do not overwrite files + -c, --continue Force resume of partially downloaded files. + By default, youtube-dl will resume + downloads if possible. + --no-continue Do not resume partially downloaded files + (restart from beginning) + --no-part Do not use .part files - write directly + into output file + --no-mtime Do not use the Last-modified header to set + the file modification time + --write-description Write video description to a .description + file + --write-info-json Write video metadata to a .info.json file + --write-annotations Write video annotations to a + .annotations.xml file + --load-info-json FILE JSON file containing the video information + (created with the "--write-info-json" + option) + --cookies FILE File to read cookies from and dump cookie + jar in + --cache-dir DIR Location in the filesystem where youtube-dl + can store some downloaded information + permanently. By default + $XDG_CACHE_HOME/youtube-dl or + ~/.cache/youtube-dl . At the moment, only + YouTube player files (for videos with + obfuscated signatures) are cached, but that + may change. + --no-cache-dir Disable filesystem caching + --rm-cache-dir Delete all filesystem cache files + + +Thumbnail images: + + --write-thumbnail Write thumbnail image to disk + --write-all-thumbnails Write all thumbnail image formats to disk + --list-thumbnails Simulate and list all available thumbnail + formats + + +Verbosity / Simulation Options: + + -q, --quiet Activate quiet mode + --no-warnings Ignore warnings + -s, --simulate Do not download the video and do not write + anything to disk + --skip-download Do not download the video + -g, --get-url Simulate, quiet but print URL + -e, --get-title Simulate, quiet but print title + --get-id Simulate, quiet but print id + --get-thumbnail Simulate, quiet but print thumbnail URL + --get-description Simulate, quiet but print video description + --get-duration Simulate, quiet but print video length + --get-filename Simulate, quiet but print output filename + --get-format Simulate, quiet but print output format + -j, --dump-json Simulate, quiet but print JSON information. + See --output for a description of available + keys. + -J, --dump-single-json Simulate, quiet but print JSON information + for each command-line argument. If the URL + refers to a playlist, dump the whole + playlist information in a single line. + --print-json Be quiet and print the video information as + JSON (video is still being downloaded). + --newline Output progress bar as new lines + --no-progress Do not print progress bar + --console-title Display progress in console titlebar + -v, --verbose Print various debugging information + --dump-pages Print downloaded pages encoded using base64 + to debug problems (very verbose) + --write-pages Write downloaded intermediary pages to + files in the current directory to debug + problems + --print-traffic Display sent and read HTTP traffic + -C, --call-home Contact the youtube-dl server for debugging + --no-call-home Do NOT contact the youtube-dl server for + debugging + + +Workarounds: + + --encoding ENCODING Force the specified encoding (experimental) + --no-check-certificate Suppress HTTPS certificate validation + --prefer-insecure Use an unencrypted connection to retrieve + information about the video. (Currently + supported only for YouTube) + --user-agent UA Specify a custom user agent + --referer URL Specify a custom referer, use if the video + access is restricted to one domain + --add-header FIELD:VALUE Specify a custom HTTP header and its value, + separated by a colon ':'. You can use this + option multiple times + --bidi-workaround Work around terminals that lack + bidirectional text support. Requires bidiv + or fribidi executable in PATH + --sleep-interval SECONDS Number of seconds to sleep before each + download when used alone or a lower bound + of a range for randomized sleep before each + download (minimum possible number of + seconds to sleep) when used along with + --max-sleep-interval. + --max-sleep-interval SECONDS Upper bound of a range for randomized sleep + before each download (maximum possible + number of seconds to sleep). Must only be + used along with --min-sleep-interval. + + +Video Format Options: + + -f, --format FORMAT Video format code, see the "FORMAT + SELECTION" for all the info + --all-formats Download all available video formats + --prefer-free-formats Prefer free video formats unless a specific + one is requested + -F, --list-formats List all available formats of requested + videos + --youtube-skip-dash-manifest Do not download the DASH manifests and + related data on YouTube videos + --merge-output-format FORMAT If a merge is required (e.g. + bestvideo+bestaudio), output to given + container format. One of mkv, mp4, ogg, + webm, flv. Ignored if no merge is required + + +Subtitle Options: + + --write-sub Write subtitle file + --write-auto-sub Write automatically generated subtitle file + (YouTube only) + --all-subs Download all the available subtitles of the + video + --list-subs List all available subtitles for the video + --sub-format FORMAT Subtitle format, accepts formats + preference, for example: "srt" or + "ass/srt/best" + --sub-lang LANGS Languages of the subtitles to download + (optional) separated by commas, use --list- + subs for available language tags + + +Authentication Options: + + -u, --username USERNAME Login with this account ID + -p, --password PASSWORD Account password. If this option is left + out, youtube-dl will ask interactively. + -2, --twofactor TWOFACTOR Two-factor authentication code + -n, --netrc Use .netrc authentication data + --video-password PASSWORD Video password (vimeo, smotri, youku) + + +Adobe Pass Options: + + --ap-mso MSO Adobe Pass multiple-system operator (TV + provider) identifier, use --ap-list-mso for + a list of available MSOs + --ap-username USERNAME Multiple-system operator account login + --ap-password PASSWORD Multiple-system operator account password. + If this option is left out, youtube-dl will + ask interactively. + --ap-list-mso List all supported multiple-system + operators + + +Post-processing Options: + + -x, --extract-audio Convert video files to audio-only files + (requires ffmpeg or avconv and ffprobe or + avprobe) + --audio-format FORMAT Specify audio format: "best", "aac", + "vorbis", "mp3", "m4a", "opus", or "wav"; + "best" by default; No effect without -x + --audio-quality QUALITY Specify ffmpeg/avconv audio quality, insert + a value between 0 (better) and 9 (worse) + for VBR or a specific bitrate like 128K + (default 5) + --recode-video FORMAT Encode the video to another format if + necessary (currently supported: + mp4|flv|ogg|webm|mkv|avi) + --postprocessor-args ARGS Give these arguments to the postprocessor + -k, --keep-video Keep the video file on disk after the post- + processing; the video is erased by default + --no-post-overwrites Do not overwrite post-processed files; the + post-processed files are overwritten by + default + --embed-subs Embed subtitles in the video (only for mp4, + webm and mkv videos) + --embed-thumbnail Embed thumbnail in the audio as cover art + --add-metadata Write metadata to the video file + --metadata-from-title FORMAT Parse additional metadata like song title / + artist from the video title. The format + syntax is the same as --output, the parsed + parameters replace existing values. + Additional templates: %(album)s, + %(artist)s. Example: --metadata-from-title + "%(artist)s - %(title)s" matches a title + like "Coldplay - Paradise" + --xattrs Write metadata to the video file's xattrs + (using dublin core and xdg standards) + --fixup POLICY 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) + --prefer-avconv Prefer avconv over ffmpeg for running the + postprocessors (default) + --prefer-ffmpeg Prefer ffmpeg over avconv for running the + postprocessors + --ffmpeg-location PATH Location of the ffmpeg/avconv binary; + either the path to the binary or its + containing directory. + --exec CMD Execute a command on the file after + downloading, similar to find's -exec + syntax. Example: --exec 'adb push {} + /sdcard/Music/ && rm {}' + --convert-subs FORMAT Convert the subtitles to other format + (currently supported: srt|ass|vtt) + + + +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\<user name>\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: + + # Lines starting with # are comments + + # Always extract audio + -x + + # Do not copy the mtime + --no-mtime + + # Use this proxy + --proxy 127.0.0.1:3128 + + # Save all videos under Movies directory in your home directory + -o ~/Movies/%(title)s.%(ext)s + +Note that options in configuration file are just the same options aka +switches used in regular command line calls thus there MUST BE NO +WHITESPACE after - or --, e.g. -o or --proxy but not - o or -- proxy. + +You can use --ignore-config if you want to disable the configuration +file for a particular youtube-dl run. + +You can also use --config-location if you want to use custom +configuration file for a particular youtube-dl run. + +Authentication with .netrc file + +You may also want to configure automatic credentials storage for +extractors that support authentication (by providing login and password +with --username and --password) in order not to pass credentials as +command line arguments on every youtube-dl execution and prevent +tracking plain text passwords in the shell command history. You can +achieve this using a .netrc file on a per extractor basis. For that you +will need to create a .netrc file in your $HOME and restrict permissions +to read/write by only you: + + touch $HOME/.netrc + chmod a-rwx,u+rw $HOME/.netrc + +After that you can add credentials for an extractor in the following +format, where _extractor_ is the name of the extractor in lowercase: + + machine <extractor> login <login> password <password> + +For example: + + machine youtube login myaccount@gmail.com password my_youtube_password + machine twitch login my_twitch_account_name password my_twitch_password + +To activate authentication with the .netrc file you should pass --netrc +to youtube-dl or place it in the configuration file. + +On Windows you may also need to setup the %HOME% environment variable +manually. + + + +OUTPUT TEMPLATE + + +The -o option allows users to indicate a template for the output file +names. + +TL;DR: navigate me to examples. + +The basic usage is not to set any template arguments when downloading a +single file, like in youtube-dl -o funny_video.flv "http://some/video". +However, it may contain special sequences that will be replaced when +downloading each video. The special sequences have the format %(NAME)s. +To clarify, that is a percent symbol followed by a name in parentheses, +followed by a lowercase S. Allowed names are: + +- id: Video identifier +- title: Video title +- url: Video URL +- ext: Video filename extension +- alt_title: A secondary title of the video +- display_id: An alternative identifier for the video +- uploader: Full name of the video uploader +- license: License name the video is licensed under +- creator: The creator of the video +- release_date: The date (YYYYMMDD) when the video was released +- timestamp: UNIX timestamp of the moment the video became available +- upload_date: Video upload date (YYYYMMDD) +- uploader_id: Nickname or id of the video uploader +- location: Physical location where the video was filmed +- duration: Length of the video in seconds +- view_count: How many users have watched the video on the platform +- like_count: Number of positive ratings of the video +- dislike_count: Number of negative ratings of the video +- repost_count: Number of reposts of the video +- average_rating: Average rating give by users, the scale used depends + on the webpage +- comment_count: Number of comments on the video +- age_limit: Age restriction for the video (years) +- format: A human-readable description of the format +- format_id: Format code specified by --format +- format_note: Additional info about the format +- width: Width of the video +- height: Height of the video +- resolution: Textual description of width and height +- tbr: Average bitrate of audio and video in KBit/s +- abr: Average audio bitrate in KBit/s +- acodec: Name of the audio codec in use +- asr: Audio sampling rate in Hertz +- vbr: Average video bitrate in KBit/s +- fps: Frame rate +- vcodec: Name of the video codec in use +- container: Name of the container format +- filesize: The number of bytes, if known in advance +- filesize_approx: An estimate for the number of bytes +- protocol: The protocol that will be used for the actual download +- extractor: Name of the extractor +- extractor_key: Key name of the extractor +- epoch: Unix epoch when creating the file +- autonumber: Five-digit number that will be increased with each + download, starting at zero +- playlist: Name or id of the playlist that contains the video +- playlist_index: Index of the video in the playlist padded with + leading zeros according to the total length of the playlist +- playlist_id: Playlist identifier +- playlist_title: Playlist title + +Available for the video that belongs to some logical chapter or section: +- chapter: Name or title of the chapter the video belongs to - +chapter_number: Number of the chapter the video belongs to - chapter_id: +Id of the chapter the video belongs to + +Available for the video that is an episode of some series or programme: +- series: Title of the series or programme the video episode belongs to +- season: Title of the season the video episode belongs to - +season_number: Number of the season the video episode belongs to - +season_id: Id of the season the video episode belongs to - episode: +Title of the video episode - episode_number: Number of the video episode +within a season - episode_id: Id of the video episode + +Available for the media that is a track or a part of a music album: - +track: Title of the track - track_number: Number of the track within an +album or a disc - track_id: Id of the track - artist: Artist(s) of the +track - genre: Genre(s) of the track - album: Title of the album the +track belongs to - album_type: Type of the album - album_artist: List of +all artists appeared on the album - disc_number: Number of the disc or +other physical medium the track belongs to - release_year: Year (YYYY) +when the album was released + +Each aforementioned sequence when referenced in an output template will +be replaced by the actual value corresponding to the sequence name. Note +that some of the sequences are not guaranteed to be present since they +depend on the metadata obtained by a particular extractor. Such +sequences will be replaced with NA. + +For example for -o %(title)s-%(id)s.%(ext)s and an mp4 video with title +youtube-dl test video and id BaW_jenozKcj, this will result in a +youtube-dl test video-BaW_jenozKcj.mp4 file created in the current +directory. + +Output templates can also contain arbitrary hierarchical path, e.g. +-o '%(playlist)s/%(playlist_index)s - %(title)s.%(ext)s' which will +result in downloading each video in a directory corresponding to this +path template. Any missing directory will be automatically created for +you. + +To use percent literals in an output template use %%. To output to +stdout use -o -. + +The current default template is %(title)s-%(id)s.%(ext)s. + +In some cases, you don't want special characters such as 中, spaces, or +&, such as when transferring the downloaded filename to a Windows system +or the filename through an 8bit-unsafe channel. In these cases, add the +--restrict-filenames flag to get a shorter title: + +Output template and Windows batch files + +If you are using an output template inside a Windows batch file then you +must escape plain percent characters (%) by doubling, so that +-o "%(title)s-%(id)s.%(ext)s" should become +-o "%%(title)s-%%(id)s.%%(ext)s". However you should not touch %'s that +are not plain characters, e.g. environment variables for expansion +should stay intact: -o "C:\%HOMEPATH%\Desktop\%%(title)s.%%(ext)s". + +Output template examples + +Note on Windows you may need to use double quotes instead of single. + + $ youtube-dl --get-filename -o '%(title)s.%(ext)s' BaW_jenozKc + youtube-dl test video ''_ä↭𝕐.mp4 # All kinds of weird characters + + $ youtube-dl --get-filename -o '%(title)s.%(ext)s' BaW_jenozKc --restrict-filenames + youtube-dl_test_video_.mp4 # A simple file name + + # Download YouTube playlist videos in separate directory indexed by video order in a playlist + $ youtube-dl -o '%(playlist)s/%(playlist_index)s - %(title)s.%(ext)s' https://www.youtube.com/playlist?list=PLwiyx1dc3P2JR9N8gQaQN_BCvlSlap7re + + # Download all playlists of YouTube channel/user keeping each playlist in separate directory: + $ youtube-dl -o '%(uploader)s/%(playlist)s/%(playlist_index)s - %(title)s.%(ext)s' https://www.youtube.com/user/TheLinuxFoundation/playlists + + # Download Udemy course keeping each chapter in separate directory under MyVideos directory in your home + $ youtube-dl -u user -p password -o '~/MyVideos/%(playlist)s/%(chapter_number)s - %(chapter)s/%(title)s.%(ext)s' https://www.udemy.com/java-tutorial/ + + # Download entire series season keeping each series and each season in separate directory under C:/MyVideos + $ youtube-dl -o "C:/MyVideos/%(series)s/%(season_number)s - %(season)s/%(episode_number)s - %(episode)s.%(ext)s" http://videomore.ru/kino_v_detalayah/5_sezon/367617 + + # Stream the video being downloaded to stdout + $ youtube-dl -o - BaW_jenozKc + + + +FORMAT SELECTION + + +By default youtube-dl tries to download the best available quality, i.e. +if you want the best quality you DON'T NEED to pass any special options, +youtube-dl will guess it for you by DEFAULT. + +But sometimes you may want to download in a different format, for +example when you are on a slow or intermittent connection. The key +mechanism for achieving this is so-called _format selection_ based on +which you can explicitly specify desired format, select formats based on +some criterion or criteria, setup precedence and much more. + +The general syntax for format selection is --format FORMAT or shorter +-f FORMAT where FORMAT is a _selector expression_, i.e. an expression +that describes format or formats you would like to download. + +TL;DR: navigate me to examples. + +The simplest case is requesting a specific format, for example with +-f 22 you can download the format with format code equal to 22. You can +get the list of available format codes for particular video using +--list-formats or -F. Note that these format codes are extractor +specific. + +You can also use a file extension (currently 3gp, aac, flv, m4a, mp3, +mp4, ogg, wav, webm are supported) to download the best quality format +of a particular file extension served as a single file, e.g. -f webm +will download the best quality format with the webm extension served as +a single file. + +You can also use special names to select particular edge case formats: - +best: Select the best quality format represented by a single file with +video and audio. - worst: Select the worst quality format represented by +a single file with video and audio. - bestvideo: Select the best quality +video-only format (e.g. DASH video). May not be available. - worstvideo: +Select the worst quality video-only format. May not be available. - +bestaudio: Select the best quality audio only-format. May not be +available. - worstaudio: Select the worst quality audio only-format. May +not be available. + +For example, to download the worst quality video-only format you can use +-f worstvideo. + +If you want to download multiple videos and they don't have the same +formats available, you can specify the order of preference using +slashes. Note that slash is left-associative, i.e. formats on the left +hand side are preferred, for example -f 22/17/18 will download format 22 +if it's available, otherwise it will download format 17 if it's +available, otherwise it will download format 18 if it's available, +otherwise it will complain that no suitable formats are available for +download. + +If you want to download several formats of the same video use a comma as +a separator, e.g. -f 22,17,18 will download all these three formats, of +course if they are available. Or a more sophisticated example combined +with the precedence feature: -f 136/137/mp4/bestvideo,140/m4a/bestaudio. + +You can also filter the video formats by putting a condition in +brackets, as in -f "best[height=720]" (or -f "[filesize>10M]"). + +The following numeric meta fields can be used with comparisons <, <=, >, +>=, = (equals), != (not equals): - filesize: The number of bytes, if +known in advance - width: Width of the video, if known - height: Height +of the video, if known - tbr: Average bitrate of audio and video in +KBit/s - abr: Average audio bitrate in KBit/s - vbr: Average video +bitrate in KBit/s - asr: Audio sampling rate in Hertz - fps: Frame rate + +Also filtering work for comparisons = (equals), != (not equals), ^= +(begins with), $= (ends with), *= (contains) and following string meta +fields: - ext: File extension - acodec: Name of the audio codec in use - +vcodec: Name of the video codec in use - container: Name of the +container format - protocol: The protocol that will be used for the +actual download, lower-case (http, https, rtsp, rtmp, rtmpe, mms, f4m, +ism, m3u8, or m3u8_native) - format_id: A short description of the +format + +Note that none of the aforementioned meta fields are guaranteed to be +present since this solely depends on the metadata obtained by particular +extractor, i.e. the metadata offered by the video hoster. + +Formats for which the value is not known are excluded unless you put a +question mark (?) after the operator. You can combine format filters, so +-f "[height <=? 720][tbr>500]" selects up to 720p videos (or videos +where the height is not known) with a bitrate of at least 500 KBit/s. + +You can merge the video and audio of two formats into a single file +using -f <video-format>+<audio-format> (requires ffmpeg or avconv +installed), for example -f bestvideo+bestaudio will download the best +video-only format, the best audio-only format and mux them together with +ffmpeg/avconv. + +Format selectors can also be grouped using parentheses, for example if +you want to download the best mp4 and webm formats with a height lower +than 480 you can use -f '(mp4,webm)[height<480]'. + +Since the end of April 2015 and version 2015.04.26, youtube-dl uses +-f bestvideo+bestaudio/best as the default format selection (see #5447, +#5456). If ffmpeg or avconv are installed this results in downloading +bestvideo and bestaudio separately and muxing them together into a +single file giving the best overall quality available. Otherwise it +falls back to best and results in downloading the best available quality +served as a single file. best is also needed for videos that don't come +from YouTube because they don't provide the audio and video in two +different files. If you want to only download some DASH formats (for +example if you are not interested in getting videos with a resolution +higher than 1080p), you can add +-f bestvideo[height<=?1080]+bestaudio/best to your configuration file. +Note that if you use youtube-dl to stream to stdout (and most likely to +pipe it to your media player then), i.e. you explicitly specify output +template as -o -, youtube-dl still uses -f best format selection in +order to start content delivery immediately to your player and not to +wait until bestvideo and bestaudio are downloaded and muxed. + +If you want to preserve the old format selection behavior (prior to +youtube-dl 2015.04.26), i.e. you want to download the best available +quality media served as a single file, you should explicitly specify +your choice with -f best. You may want to add it to the configuration +file in order not to type it every time you run youtube-dl. + +Format selection examples + +Note on Windows you may need to use double quotes instead of single. + + # Download best mp4 format available or any other best if no mp4 available + $ youtube-dl -f 'bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]/best' + + # Download best format available but not better that 480p + $ youtube-dl -f 'bestvideo[height<=480]+bestaudio/best[height<=480]' + + # Download best video only format but no bigger than 50 MB + $ youtube-dl -f 'best[filesize<50M]' + + # Download best format available via direct link over HTTP/HTTPS protocol + $ youtube-dl -f '(bestvideo+bestaudio/best)[protocol^=http]' + + # Download the best video format and the best audio format without merging them + $ youtube-dl -f 'bestvideo,bestaudio' -o '%(title)s.f%(format_id)s.%(ext)s' + +Note that in the last example, an output template is recommended as +bestvideo and bestaudio may have the same file name. + + + +VIDEO SELECTION + + +Videos can be filtered by their upload date using the options --date, +--datebefore or --dateafter. They accept dates in two formats: + +- Absolute dates: Dates in the format YYYYMMDD. +- Relative dates: Dates in the format + (now|today)[+-][0-9](day|week|month|year)(s)? + +Examples: + + # Download only the videos uploaded in the last 6 months + $ youtube-dl --dateafter now-6months + + # Download only the videos uploaded on January 1, 1970 + $ youtube-dl --date 19700101 + + $ # Download only the videos uploaded in the 200x decade + $ youtube-dl --dateafter 20000101 --datebefore 20091231 + + + +FAQ + + +How do I update youtube-dl? + +If you've followed our manual installation instructions, you can simply +run youtube-dl -U (or, on Linux, sudo youtube-dl -U). + +If you have used pip, a simple sudo pip install -U youtube-dl is +sufficient to update. + +If you have installed youtube-dl using a package manager like _apt-get_ +or _yum_, use the standard system update mechanism to update. Note that +distribution packages are often outdated. As a rule of thumb, youtube-dl +releases at least once a month, and often weekly or even daily. Simply +go to http://yt-dl.org/ to find out the current version. Unfortunately, +there is nothing we youtube-dl developers can do if your distribution +serves a really outdated version. You can (and should) complain to your +distribution in their bugtracker or support forum. + +As a last resort, you can also uninstall the version installed by your +package manager and follow our manual installation instructions. For +that, remove the distribution's package, with a line like + + sudo apt-get remove -y youtube-dl + +Afterwards, simply follow our manual installation instructions: + + sudo wget https://yt-dl.org/latest/youtube-dl -O /usr/local/bin/youtube-dl + sudo chmod a+x /usr/local/bin/youtube-dl + hash -r + +Again, from then on you'll be able to update with sudo youtube-dl -U. + +youtube-dl is extremely slow to start on Windows + +Add a file exclusion for youtube-dl.exe in Windows Defender settings. + +I'm getting an error Unable to extract OpenGraph title on YouTube playlists + +YouTube changed their playlist format in March 2014 and later on, so +you'll need at least youtube-dl 2014.07.25 to download all YouTube +videos. + +If you have installed youtube-dl with a package manager, pip, setup.py +or a tarball, please use that to update. Note that Ubuntu packages do +not seem to get updated anymore. Since we are not affiliated with +Ubuntu, there is little we can do. Feel free to report bugs to the +Ubuntu packaging people - all they have to do is update the package to a +somewhat recent version. See above for a way to update. + +I'm getting an error when trying to use output template: error: using output template conflicts with using title, video ID or auto number + +Make sure you are not using -o with any of these options -t, --title, +--id, -A or --auto-number set in command line or in a configuration +file. Remove the latter if any. + +Do I always have to pass -citw? + +By default, youtube-dl intends to have the best options (incidentally, +if you have a convincing case that these should be different, please +file an issue where you explain that). Therefore, it is unnecessary and +sometimes harmful to copy long option strings from webpages. In +particular, the only option out of -citw that is regularly useful is -i. + +Can you please put the -b option back? + +Most people asking this question are not aware that youtube-dl now +defaults to downloading the highest available quality as reported by +YouTube, which will be 1080p or 720p in some cases, so you no longer +need the -b option. For some specific videos, maybe YouTube does not +report them to be available in a specific high quality format you're +interested in. In that case, simply request it with the -f option and +youtube-dl will try to download it. + +I get HTTP error 402 when trying to download a video. What's this? + +Apparently YouTube requires you to pass a CAPTCHA test if you download +too much. We're considering to provide a way to let you solve the +CAPTCHA, but at the moment, your best course of action is pointing a web +browser to the youtube URL, solving the CAPTCHA, and restart youtube-dl. + +Do I need any other programs? + +youtube-dl works fine on its own on most sites. However, if you want to +convert video/audio, you'll need avconv or ffmpeg. On some sites - most +notably YouTube - videos can be retrieved in a higher quality format +without sound. youtube-dl will detect whether avconv/ffmpeg is present +and automatically pick the best option. + +Videos or video formats streamed via RTMP protocol can only be +downloaded when rtmpdump is installed. Downloading MMS and RTSP videos +requires either mplayer or mpv to be installed. + +I have downloaded a video but how can I play it? + +Once the video is fully downloaded, use any video player, such as mpv, +vlc or mplayer. + +I extracted a video URL with -g, but it does not play on another machine / in my web browser. + +It depends a lot on the service. In many cases, requests for the video +(to download/play it) must come from the same IP address and with the +same cookies and/or HTTP headers. Use the --cookies option to write the +required cookies into a file, and advise your downloader to read cookies +from that file. Some sites also require a common user agent to be used, +use --dump-user-agent to see the one in use by youtube-dl. You can also +get necessary cookies and HTTP headers from JSON output obtained with +--dump-json. + +It may be beneficial to use IPv6; in some cases, the restrictions are +only applied to IPv4. Some services (sometimes only for a subset of +videos) do not restrict the video URL by IP address, cookie, or +user-agent, but these are the exception rather than the rule. + +Please bear in mind that some URL protocols are NOT supported by +browsers out of the box, including RTMP. If you are using -g, your own +downloader must support these as well. + +If you want to play the video on a machine that is not running +youtube-dl, you can relay the video content from the machine that runs +youtube-dl. You can use -o - to let youtube-dl stream a video to stdout, +or simply allow the player to download the files written by youtube-dl +in turn. + +ERROR: no fmt_url_map or conn information found in video info + +YouTube has switched to a new video info format in July 2011 which is +not supported by old versions of youtube-dl. See above for how to update +youtube-dl. + +ERROR: unable to download video + +YouTube requires an additional signature since September 2012 which is +not supported by old versions of youtube-dl. See above for how to update +youtube-dl. + +Video URL contains an ampersand and I'm getting some strange output [1] 2839 or 'v' is not recognized as an internal or external command + +That's actually the output from your shell. Since ampersand is one of +the special shell characters it's interpreted by the shell preventing +you from passing the whole URL to youtube-dl. To disable your shell from +interpreting the ampersands (or any other special characters) you have +to either put the whole URL in quotes or escape them with a backslash +(which approach will work depends on your shell). + +For example if your URL is +https://www.youtube.com/watch?t=4&v=BaW_jenozKc you should end up with +following command: + +youtube-dl 'https://www.youtube.com/watch?t=4&v=BaW_jenozKc' + +or + +youtube-dl https://www.youtube.com/watch?t=4\&v=BaW_jenozKc + +For Windows you have to use the double quotes: + +youtube-dl "https://www.youtube.com/watch?t=4&v=BaW_jenozKc" + +ExtractorError: Could not find JS function u'OF' + +In February 2015, the new YouTube player contained a character sequence +in a string that was misinterpreted by old versions of youtube-dl. See +above for how to update youtube-dl. + +HTTP Error 429: Too Many Requests or 402: Payment Required + +These two error codes indicate that the service is blocking your IP +address because of overuse. Contact the service and ask them to unblock +your IP address, or - if you have acquired a whitelisted IP address +already - use the --proxy or --source-address options to select another +IP address. + +SyntaxError: Non-ASCII character + +The error + + File "youtube-dl", line 2 + SyntaxError: Non-ASCII character '\x93' ... + +means you're using an outdated version of Python. Please update to +Python 2.6 or 2.7. + +What is this binary file? Where has the code gone? + +Since June 2012 (#342) youtube-dl is packed as an executable zipfile, +simply unzip it (might need renaming to youtube-dl.zip first on some +systems) or clone the git repository, as laid out above. If you modify +the code, you can run it by executing the __main__.py file. To recompile +the executable, run make youtube-dl. + +The exe throws an error due to missing MSVCR100.dll + +To run the exe you need to install first the Microsoft Visual C++ 2010 +Redistributable Package (x86). + +On Windows, how should I set up ffmpeg and youtube-dl? Where should I put the exe files? + +If you put youtube-dl and ffmpeg in the same directory that you're +running the command from, it will work, but that's rather cumbersome. + +To make a different directory work - either for ffmpeg, or for +youtube-dl, or for both - simply create the directory (say, C:\bin, or +C:\Users\<User name>\bin), put all the executables directly in there, +and then set your PATH environment variable to include that directory. + +From then on, after restarting your shell, you will be able to access +both youtube-dl and ffmpeg (and youtube-dl will be able to find ffmpeg) +by simply typing youtube-dl or ffmpeg, no matter what directory you're +in. + +How do I put downloads into a specific folder? + +Use the -o to specify an output template, for example +-o "/home/user/videos/%(title)s-%(id)s.%(ext)s". If you want this for +all of your downloads, put the option into your configuration file. + +How do I download a video starting with a -? + +Either prepend http://www.youtube.com/watch?v= or separate the ID from +the options with --: + + youtube-dl -- -wNyEUrxzFU + youtube-dl "http://www.youtube.com/watch?v=-wNyEUrxzFU" + +How do I pass cookies to youtube-dl? + +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 (for Chrome) +or Export Cookies (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 +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, Mac OS, etc.). HTTP Error 400: Bad Request +when using --cookies is a good sign of invalid newline format. + +Passing cookies to youtube-dl is a good way to workaround login when a +particular extractor does not implement it explicitly. Another use case +is working around CAPTCHA some websites require you to solve in +particular cases in order to get access (e.g. YouTube, CloudFlare). + +How do I stream directly to media player? + +You will first need to tell youtube-dl to stream media to stdout with +-o -, and also tell your media player to read from stdin (it must be +capable of this for streaming) and then pipe former to latter. For +example, streaming to vlc can be achieved with: + + youtube-dl -o - "http://www.youtube.com/watch?v=BaW_jenozKcj" | vlc - + +How do I download only new videos from a playlist? + +Use download-archive feature. With this feature you should initially +download the complete playlist with +--download-archive /path/to/download/archive/file.txt that will record +identifiers of all the videos in a special file. Each subsequent run +with the same --download-archive will download only new videos and skip +all videos that have been downloaded before. Note that only successful +downloads are recorded in the file. + +For example, at first, + + youtube-dl --download-archive archive.txt "https://www.youtube.com/playlist?list=PLwiyx1dc3P2JR9N8gQaQN_BCvlSlap7re" + +will download the complete PLwiyx1dc3P2JR9N8gQaQN_BCvlSlap7re playlist +and create a file archive.txt. Each subsequent run will only download +new videos if any: + + youtube-dl --download-archive archive.txt "https://www.youtube.com/playlist?list=PLwiyx1dc3P2JR9N8gQaQN_BCvlSlap7re" + +Should I add --hls-prefer-native into my config? + +When youtube-dl detects an HLS video, it can download it either with the +built-in downloader or ffmpeg. Since many HLS streams are slightly +invalid and ffmpeg/youtube-dl each handle some invalid cases better than +the other, there is an option to switch the downloader if needed. + +When youtube-dl knows that one particular downloader works better for a +given website, that downloader will be picked. Otherwise, youtube-dl +will pick the best downloader for general compatibility, which at the +moment happens to be ffmpeg. This choice may change in future versions +of youtube-dl, with improvements of the built-in downloader and/or +ffmpeg. + +In particular, the generic extractor (used when your website is not in +the list of supported sites by youtube-dl cannot mandate one specific +downloader. + +If you put either --hls-prefer-native or --hls-prefer-ffmpeg into your +configuration, a different subset of videos will fail to download +correctly. Instead, it is much better to file an issue or a pull request +which details why the native or the ffmpeg HLS downloader is a better +choice for your use case. + +Can you add support for this anime video site, or site which shows current movies for free? + +As a matter of policy (as well as legality), youtube-dl does not include +support for services that specialize in infringing copyright. As a rule +of thumb, if you cannot easily find a video that the service is quite +obviously allowed to distribute (i.e. that has been uploaded by the +creator, the creator's distributor, or is published under a free +license), the service is probably unfit for inclusion to youtube-dl. + +A note on the service that they don't host the infringing content, but +just link to those who do, is evidence that the service should NOT be +included into youtube-dl. The same goes for any DMCA note when the whole +front page of the service is filled with videos they are not allowed to +distribute. A "fair use" note is equally unconvincing if the service +shows copyright-protected videos in full without authorization. + +Support requests for services that DO purchase the rights to distribute +their content are perfectly fine though. If in doubt, you can simply +include a source that mentions the legitimate purchase of content. + +How can I speed up work on my issue? + +(Also known as: Help, my important issue not being solved!) The +youtube-dl core developer team is quite small. While we do our best to +solve as many issues as possible, sometimes that can take quite a while. +To speed up your issue, here's what you can do: + +First of all, please do report the issue at our issue tracker. That +allows us to coordinate all efforts by users and developers, and serves +as a unified point. Unfortunately, the youtube-dl project has grown too +large to use personal email as an effective communication channel. + +Please read the bug reporting instructions below. A lot of bugs lack all +the necessary information. If you can, offer proxy, VPN, or shell access +to the youtube-dl developers. If you are able to, test the issue from +multiple computers in multiple countries to exclude local censorship or +misconfiguration issues. + +If nobody is interested in solving your issue, you are welcome to take +matters into your own hands and submit a pull request (or coerce/pay +somebody else to do so). + +Feel free to bump the issue from time to time by writing a small comment +("Issue is still present in youtube-dl version ...from France, but fixed +from Belgium"), but please not more than once a month. Please do not +declare your issue as important or urgent. + +How can I detect whether a given URL is supported by youtube-dl? + +For one, have a look at the list of supported sites. Note that it can +sometimes happen that the site changes its URL scheme (say, from +http://example.com/video/1234567 to http://example.com/v/1234567 ) and +youtube-dl reports an URL of a service in that list as unsupported. In +that case, simply report a bug. + +It is _not_ possible to detect whether a URL is supported or not. That's +because youtube-dl contains a generic extractor which matches ALL URLs. +You may be tempted to disable, exclude, or remove the generic extractor, +but the generic extractor not only allows users to extract videos from +lots of websites that embed a video from another service, but may also +be used to extract video from a service that it's hosting itself. +Therefore, we neither recommend nor support disabling, excluding, or +removing the generic extractor. + +If you want to find out whether a given URL is supported, simply call +youtube-dl with it. If you get no videos back, chances are the URL is +either not referring to a video or unsupported. You can find out which +by examining the output (if you run youtube-dl on the console) or +catching an UnsupportedError exception if you run it from a Python +program. + + + +WHY DO I NEED TO GO THROUGH THAT MUCH RED TAPE WHEN FILING BUGS? + + +Before we had the issue template, despite our extensive bug reporting +instructions, about 80% of the issue reports we got were useless, for +instance because people used ancient versions hundreds of releases old, +because of simple syntactic errors (not in youtube-dl but in general +shell usage), because the problem was already reported multiple times +before, because people did not actually read an error message, even if +it said "please install ffmpeg", because people did not mention the URL +they were trying to download and many more simple, easy-to-avoid +problems, many of whom were totally unrelated to youtube-dl. + +youtube-dl is an open-source project manned by too few volunteers, so +we'd rather spend time fixing bugs where we are certain none of those +simple problems apply, and where we can be reasonably confident to be +able to reproduce the issue without asking the reporter repeatedly. As +such, the output of youtube-dl -v YOUR_URL_HERE is really all that's +required to file an issue. The issue template also guides you through +some basic steps you can do, such as checking that your version of +youtube-dl is current. + + + +DEVELOPER INSTRUCTIONS + + +Most users do not need to build youtube-dl and can download the builds +or get them from their distribution. + +To run youtube-dl as a developer, you don't need to build anything +either. Simply execute + + python -m youtube_dl + +To run the test, simply invoke your favorite test runner, or execute a +test file directly; any of the following work: + + python -m unittest discover + python test/test_download.py + nosetests + +If you want to create a build of youtube-dl yourself, you'll need + +- python +- make (only GNU make is supported) +- pandoc +- zip +- nosetests + +Adding support for a new site + +If you want to add support for a new site, first of all MAKE SURE this +site is NOT DEDICATED TO COPYRIGHT INFRINGEMENT. youtube-dl does NOT +SUPPORT such sites thus pull requests adding support for them WILL BE +REJECTED. + +After you have ensured this site is distributing its content legally, +you can follow this quick list (assuming your service is called +yourextractor): + +1. Fork this repository +2. Check out the source code with: + + git clone git@github.com:YOUR_GITHUB_USERNAME/youtube-dl.git + +3. Start a new git branch with + + cd youtube-dl + git checkout -b yourextractor + +4. Start with this simple template and save it to + youtube_dl/extractor/yourextractor.py: + + # coding: utf-8 + from __future__ import unicode_literals + + from .common import InfoExtractor + + + class YourExtractorIE(InfoExtractor): + _VALID_URL = r'https?://(?:www\.)?yourextractor\.com/watch/(?P<id>[0-9]+)' + _TEST = { + 'url': 'http://yourextractor.com/watch/42', + 'md5': 'TODO: md5 sum of the first 10241 bytes of the video file (use --test)', + 'info_dict': { + 'id': '42', + 'ext': 'mp4', + 'title': 'Video title goes here', + 'thumbnail': r're:^https?://.*\.jpg$', + # TODO more properties, either as: + # * A value + # * MD5 checksum; start the string with md5: + # * A regular expression; start the string with re: + # * Any Python type (for example int or float) + } + } + + def _real_extract(self, url): + video_id = self._match_id(url) + webpage = self._download_webpage(url, video_id) + + # TODO more code goes here, for example ... + title = self._html_search_regex(r'<h1>(.+?)</h1>', webpage, 'title') + + return { + 'id': video_id, + 'title': title, + 'description': self._og_search_description(webpage), + 'uploader': self._search_regex(r'<div[^>]+id="uploader"[^>]*>([^<]+)<', webpage, 'uploader', fatal=False), + # TODO more properties (see youtube_dl/extractor/common.py) + } + +5. Add an import in youtube_dl/extractor/extractors.py. +6. Run python test/test_download.py TestDownload.test_YourExtractor. + This _should fail_ at first, but you can continually re-run it until + you're done. If you decide to add more than one test, then rename + _TEST to _TESTS and make it into a list of dictionaries. The tests + will then be named TestDownload.test_YourExtractor, + TestDownload.test_YourExtractor_1, + TestDownload.test_YourExtractor_2, etc. +7. Have a look at youtube_dl/extractor/common.py for possible helper + methods and a detailed description of what your extractor should and + may return. Add tests and code for as many as you want. +8. Make sure your code follows youtube-dl coding conventions and check + the code with flake8. Also make sure your code works under all + Python versions claimed supported by youtube-dl, namely 2.6, 2.7, + and 3.2+. +9. When the tests pass, add the new files and commit them and push the + result, like this: + + $ git add youtube_dl/extractor/extractors.py + $ git add youtube_dl/extractor/yourextractor.py + $ git commit -m '[yourextractor] Add new extractor' + $ git push origin yourextractor + +10. Finally, create a pull request. We'll then review and merge it. + +In any case, thank you very much for your contributions! + + +youtube-dl coding conventions + +This section introduces a guide lines for writing idiomatic, robust and +future-proof extractor code. + +Extractors are very fragile by nature since they depend on the layout of +the source data provided by 3rd party media hosters out of your control +and this layout tends to change. As an extractor implementer your task +is not only to write code that will extract media links and metadata +correctly but also to minimize dependency on the source's layout and +even to make the code foresee potential future changes and be ready for +that. This is important because it will allow the extractor not to break +on minor layout changes thus keeping old youtube-dl versions working. +Even though this breakage issue is easily fixed by emitting a new +version of youtube-dl with a fix incorporated, all the previous versions +become broken in all repositories and distros' packages that may not be +so prompt in fetching the update from us. Needless to say, some non +rolling release distros may never receive an update at all. + +Mandatory and optional metafields + +For extraction to work youtube-dl relies on metadata your extractor +extracts and provides to youtube-dl expressed by an information +dictionary or simply _info dict_. Only the following meta fields in the +_info dict_ are considered mandatory for a successful extraction process +by youtube-dl: + +- id (media identifier) +- title (media title) +- url (media download URL) or formats + +In fact only the last option is technically mandatory (i.e. if you can't +figure out the download location of the media the extraction does not +make any sense). But by convention youtube-dl also treats id and title +as mandatory. Thus the aforementioned metafields are the critical data +that the extraction does not make any sense without and if any of them +fail to be extracted then the extractor is considered completely broken. + +Any field apart from the aforementioned ones are considered OPTIONAL. +That means that extraction should be TOLERANT to situations when sources +for these fields can potentially be unavailable (even if they are always +available at the moment) and FUTURE-PROOF in order not to break the +extraction of general purpose mandatory fields. + +Example + +Say you have some source dictionary meta that you've fetched as JSON +with HTTP request and it has a key summary: + + meta = self._download_json(url, video_id) + +Assume at this point meta's layout is: + + { + ... + "summary": "some fancy summary text", + ... + } + +Assume you want to extract summary and put it into the resulting info +dict as description. Since description is an optional meta field you +should be ready that this key may be missing from the meta dict, so that +you should extract it like: + + description = meta.get('summary') # correct + +and not like: + + description = meta['summary'] # incorrect + +The latter will break extraction process with KeyError if summary +disappears from meta at some later time but with the former approach +extraction will just go ahead with description set to None which is +perfectly fine (remember None is equivalent to the absence of data). + +Similarly, you should pass fatal=False when extracting optional data +from a webpage with _search_regex, _html_search_regex or similar +methods, for instance: + + description = self._search_regex( + r'<span[^>]+id="title"[^>]*>([^<]+)<', + webpage, 'description', fatal=False) + +With fatal set to False if _search_regex fails to extract description it +will emit a warning and continue extraction. + +You can also pass default=<some fallback value>, for example: + + description = self._search_regex( + r'<span[^>]+id="title"[^>]*>([^<]+)<', + webpage, 'description', default=None) + +On failure this code will silently continue the extraction with +description set to None. That is useful for metafields that may or may +not be present. + +Provide fallbacks + +When extracting metadata try to do so from multiple sources. For example +if title is present in several places, try extracting from at least some +of them. This makes it more future-proof in case some of the sources +become unavailable. + +Example + +Say meta from the previous example has a title and you are about to +extract it. Since title is a mandatory meta field you should end up with +something like: + + title = meta['title'] + +If title disappears from meta in future due to some changes on the +hoster's side the extraction would fail since title is mandatory. That's +expected. + +Assume that you have some another source you can extract title from, for +example og:title HTML meta of a webpage. In this case you can provide a +fallback scenario: + + title = meta.get('title') or self._og_search_title(webpage) + +This code will try to extract from meta first and if it fails it will +try extracting og:title from a webpage. + +Make regular expressions flexible + +When using regular expressions try to write them fuzzy and flexible. + +Example + +Say you need to extract title from the following HTML code: + + <span style="position: absolute; left: 910px; width: 90px; float: right; z-index: 9999;" class="title">some fancy title</span> + +The code for that task should look similar to: + + title = self._search_regex( + r'<span[^>]+class="title"[^>]*>([^<]+)', webpage, 'title') + +Or even better: + + title = self._search_regex( + r'<span[^>]+class=(["\'])title\1[^>]*>(?P<title>[^<]+)', + webpage, 'title', group='title') + +Note how you tolerate potential changes in the style attribute's value +or switch from using double quotes to single for class attribute: + +The code definitely should not look like: + + title = self._search_regex( + r'<span style="position: absolute; left: 910px; width: 90px; float: right; z-index: 9999;" class="title">(.*?)</span>', + webpage, 'title', group='title') + +Use safe conversion functions + +Wrap all extracted numeric data into safe functions from utils: +int_or_none, float_or_none. Use them for string to number conversions as +well. + + + +EMBEDDING YOUTUBE-DL + + +youtube-dl makes the best effort to be a good command-line program, and +thus should be callable from any programming language. If you encounter +any problems parsing its output, feel free to create a report. + +From a Python program, you can embed youtube-dl in a more powerful +fashion, like this: + + from __future__ import unicode_literals + import youtube_dl + + ydl_opts = {} + with youtube_dl.YoutubeDL(ydl_opts) as ydl: + ydl.download(['http://www.youtube.com/watch?v=BaW_jenozKc']) + +Most likely, you'll want to use various options. For a list of options +available, have a look at youtube_dl/YoutubeDL.py. For a start, if you +want to intercept youtube-dl's output, set a logger object. + +Here's a more complete example of a program that outputs only errors +(and a short message after the download is finished), and +downloads/converts the video to an mp3 file: + + from __future__ import unicode_literals + import youtube_dl + + + class MyLogger(object): + def debug(self, msg): + pass + + def warning(self, msg): + pass + + def error(self, msg): + print(msg) + + + def my_hook(d): + if d['status'] == 'finished': + print('Done downloading, now converting ...') + + + ydl_opts = { + 'format': 'bestaudio/best', + 'postprocessors': [{ + 'key': 'FFmpegExtractAudio', + 'preferredcodec': 'mp3', + 'preferredquality': '192', + }], + 'logger': MyLogger(), + 'progress_hooks': [my_hook], + } + with youtube_dl.YoutubeDL(ydl_opts) as ydl: + ydl.download(['http://www.youtube.com/watch?v=BaW_jenozKc']) + + + +BUGS + + +Bugs and suggestions should be reported at: +https://github.com/rg3/youtube-dl/issues. Unless you were prompted to or +there is another pertinent reason (e.g. GitHub fails to accept the bug +report), please do not send bug reports via personal email. For +discussions, join us in the IRC channel #youtube-dl on freenode +(webchat). + +PLEASE INCLUDE THE FULL OUTPUT OF YOUTUBE-DL WHEN RUN WITH -v, i.e. ADD +-v flag to YOUR COMMAND LINE, copy the WHOLE output and post it in the +issue body wrapped in ``` for better formatting. It should look similar +to this: + + $ youtube-dl -v <your command line> + [debug] System config: [] + [debug] User config: [] + [debug] Command-line args: [u'-v', u'http://www.youtube.com/watch?v=BaW_jenozKcj'] + [debug] Encodings: locale cp1251, fs mbcs, out cp866, pref cp1251 + [debug] youtube-dl version 2015.12.06 + [debug] Git HEAD: 135392e + [debug] Python version 2.6.6 - Windows-2003Server-5.2.3790-SP2 + [debug] exe versions: ffmpeg N-75573-g1d0487f, ffprobe N-75573-g1d0487f, rtmpdump 2.4 + [debug] Proxy map: {} + ... + +DO NOT POST SCREENSHOTS OF VERBOSE LOGS; ONLY PLAIN TEXT IS ACCEPTABLE. + +The output (including the first lines) contains important debugging +information. Issues without the full output are often not reproducible +and therefore do not get solved in short order, if ever. + +Please re-read your issue once again to avoid a couple of common +mistakes (you can and should use this as a checklist): + +Is the description of the issue itself sufficient? + +We often get issue reports that we cannot really decipher. While in most +cases we eventually get the required information after asking back +multiple times, this poses an unnecessary drain on our resources. Many +contributors, including myself, are also not native speakers, so we may +misread some parts. + +So please elaborate on what feature you are requesting, or what bug you +want to be fixed. Make sure that it's obvious + +- What the problem is +- How it could be fixed +- How your proposed solution would look like + +If your report is shorter than two lines, it is almost certainly missing +some of these, which makes it hard for us to respond to it. We're often +too polite to close the issue outright, but the missing info makes +misinterpretation likely. As a committer myself, I often get frustrated +by these issues, since the only possible way for me to move forward on +them is to ask for clarification over and over. + +For bug reports, this means that your report should contain the +_complete_ output of youtube-dl when called with the -v flag. The error +message you get for (most) bugs even says so, but you would not believe +how many of our bug reports do not contain this information. + +If your server has multiple IPs or you suspect censorship, adding +--call-home may be a good idea to get more diagnostics. If the error is +ERROR: Unable to extract ... and you cannot reproduce it from multiple +countries, add --dump-pages (warning: this will yield a rather large +output, redirect it to the file log.txt by adding >log.txt 2>&1 to your +command-line) or upload the .dump files you get when you add +--write-pages somewhere. + +SITE SUPPORT REQUESTS MUST CONTAIN AN EXAMPLE URL. An example URL is a +URL you might want to download, like +http://www.youtube.com/watch?v=BaW_jenozKc. There should be an obvious +video present. Except under very special circumstances, the main page of +a video service (e.g. http://www.youtube.com/) is _not_ an example URL. + +Are you using the latest version? + +Before reporting any issue, type youtube-dl -U. This should report that +you're up-to-date. About 20% of the reports we receive are already +fixed, but people are using outdated versions. This goes for feature +requests as well. + +Is the issue already documented? + +Make sure that someone has not already opened the issue you're trying to +open. Search at the top of the window or browse the GitHub Issues of +this repository. If there is an issue, feel free to write something +along the lines of "This affects me as well, with version 2015.01.01. +Here is some more information on the issue: ...". While some issues may +be old, a new post into them often spurs rapid activity. + +Why are existing options not enough? + +Before requesting a new feature, please have a quick peek at the list of +supported options. Many feature requests are for features that actually +exist already! Please, absolutely do show off your work in the issue +report and detail how the existing similar options do _not_ solve your +problem. + +Is there enough context in your bug report? + +People want to solve problems, and often think they do us a favor by +breaking down their larger problems (e.g. wanting to skip already +downloaded files) to a specific request (e.g. requesting us to look +whether the file exists before downloading the info page). However, what +often happens is that they break down the problem into two steps: One +simple, and one impossible (or extremely complicated one). + +We are then presented with a very complicated request when the original +problem could be solved far easier, e.g. by recording the downloaded +video IDs in a separate file. To avoid this, you must include the +greater context where it is non-obvious. In particular, every feature +request that does not consist of adding support for a new site should +contain a use case scenario that explains in what situation the missing +feature would be useful. + +Does the issue involve one problem, and one problem only? + +Some of our users seem to think there is a limit of issues they can or +should open. There is no limit of issues they can or should open. While +it may seem appealing to be able to dump all your issues into one +ticket, that means that someone who solves one of your issues cannot +mark the issue as closed. Typically, reporting a bunch of issues leads +to the ticket lingering since nobody wants to attack that behemoth, +until someone mercifully splits the issue into multiple ones. + +In particular, every site support request issue should only pertain to +services at one site (generally under a common domain, but always using +the same backend technology). Do not request support for vimeo user +videos, White house podcasts, and Google Plus pages in the same issue. +Also, make sure that you don't post bug reports alongside feature +requests. As a rule of thumb, a feature request does not include outputs +of youtube-dl that are not immediately related to the feature at hand. +Do not post reports of a network error alongside the request for a new +video service. + +Is anyone going to need the feature? + +Only post features that you (or an incapacitated friend you can +personally talk to) require. Do not post features because they seem like +a good idea. If they are really useful, they will be requested by +someone who requires them. + +Is your question about youtube-dl? + +It may sound strange, but some bug reports we receive are completely +unrelated to youtube-dl and relate to a different, or even the +reporter's own, application. Please make sure that you are actually +using youtube-dl. If you are using a UI for youtube-dl, report the bug +to the maintainer of the actual application providing the UI. On the +other hand, if your UI for youtube-dl fails in some way you believe is +related to youtube-dl, by all means, go ahead and report the bug. + + + +COPYRIGHT + + +youtube-dl is released into the public domain by the copyright holders. + +This README file was originally written by Daniel Bolton and is likewise +released into the public domain. diff --git a/devscripts/buildserver.py b/devscripts/buildserver.py index fc99c32..1344b4d 100644 --- a/devscripts/buildserver.py +++ b/devscripts/buildserver.py @@ -424,8 +424,6 @@ class BuildHTTPRequestHandler(compat_http_server.BaseHTTPRequestHandler): self.send_header('Content-Length', len(msg)) self.end_headers() self.wfile.write(msg) - except HTTPError as e: - self.send_response(e.code, str(e)) else: self.send_response(500, 'Unknown build method "%s"' % action) else: diff --git a/docs/supportedsites.md b/docs/supportedsites.md index edb76d9..2d82cc3 100644 --- a/docs/supportedsites.md +++ b/docs/supportedsites.md @@ -33,7 +33,8 @@ - **AdobeTVVideo** - **AdultSwim** - **aenetworks**: A+E Networks: A&E, Lifetime, History.com, FYI Network - - **AfreecaTV**: afreecatv.com + - **afreecatv**: afreecatv.com + - **afreecatv:global**: afreecatv.com - **AirMozilla** - **AlJazeera** - **Allocine** @@ -74,6 +75,8 @@ - **awaan:live** - **awaan:season** - **awaan:video** + - **AZMedien**: AZ Medien videos + - **AZMedienPlaylist**: AZ Medien playlists - **Azubu** - **AzubuLive** - **BaiduVideo**: 百度视频 @@ -81,11 +84,13 @@ - **bambuser:channel** - **Bandcamp** - **Bandcamp:album** + - **bangumi.bilibili.com**: BiliBili番剧 - **bbc**: BBC - **bbc.co.uk**: BBC iPlayer - **bbc.co.uk:article**: BBC articles - **bbc.co.uk:iplayer:playlist** - **bbc.co.uk:playlist** + - **Beam:live** - **Beatport** - **Beeg** - **BehindKink** @@ -131,7 +136,8 @@ - **cbsnews**: CBS News - **cbsnews:livevideo**: CBS News Live Videos - **CBSSports** - - **CCTV** + - **CCMA** + - **CCTV**: 央视网 - **CDA** - **CeskaTelevize** - **channel9**: Channel 9 @@ -197,6 +203,7 @@ - **Digiteka** - **Discovery** - **DiscoveryGo** + - **Disney** - **Dotsub** - **DouyuTV**: 斗鱼 - **DPlay** @@ -205,7 +212,8 @@ - **DRBonanza** - **Dropbox** - **DrTuber** - - **DRTV** + - **drtv** + - **drtv:live** - **Dumpert** - **dvtv**: http://video.aktualne.cz/ - **dw** @@ -213,6 +221,7 @@ - **EaglePlatform** - **EbaumsWorld** - **EchoMsk** + - **egghead:course**: egghead.io course - **eHow** - **Einthusan** - **eitb.tv** @@ -239,8 +248,9 @@ - **fc2** - **fc2:embed** - **Fczenit** - - **features.aol.com** - **fernsehkritik.tv** + - **filmon** + - **filmon:channel** - **Firstpost** - **FiveTV** - **Flickr** @@ -262,7 +272,6 @@ - **francetvinfo.fr** - **Freesound** - **freespeech.org** - - **FreeVideo** - **Funimation** - **FunnyOrDie** - **Fusion** @@ -273,6 +282,7 @@ - **Gamersyde** - **GameSpot** - **GameStar** + - **Gaskrank** - **Gazeta** - **GDCVault** - **generic**: Generic downloader that works on some sites @@ -304,6 +314,7 @@ - **history:topic**: History.com Topic - **hitbox** - **hitbox:live** + - **HitRecord** - **HornBunny** - **HotNewHipHop** - **HotStar** @@ -321,6 +332,7 @@ - **Imgur** - **ImgurAlbum** - **Ina** + - **Inc** - **Indavideo** - **IndavideoEmbed** - **InfoQ** @@ -330,6 +342,7 @@ - **IPrima** - **iqiyi**: 爱奇艺 - **Ir90Tv** + - **ITV** - **ivi**: ivi.ru - **ivi:compilation**: ivi.ru compilations - **ivideon**: Ivideon TV @@ -364,7 +377,8 @@ - **kuwo:singer**: 酷我音乐 - 歌手 - **kuwo:song**: 酷我音乐 - **la7.it** - - **Laola1Tv** + - **laola1tv** + - **laola1tv:embed** - **LCI** - **Lcp** - **LcpPlay** @@ -402,6 +416,8 @@ - **MatchTV** - **MDR**: MDR.DE and KiKA - **media.ccc.de** + - **Meipai**: 美拍 + - **MelonVOD** - **META** - **metacafe** - **Metacritic** @@ -435,6 +451,7 @@ - **mtg**: MTG services - **mtv** - **mtv.de** + - **mtv81** - **mtv:video** - **mtvservices:embedded** - **MuenchenTV**: münchen.tv @@ -477,6 +494,7 @@ - **Newstube** - **NextMedia**: 蘋果日報 - **NextMediaActionNews**: 蘋果日報 - 動新聞 + - **NextTV**: 壹電視 - **nfb**: National Film Board of Canada - **nfl.com** - **NhkVod** @@ -513,6 +531,9 @@ - **NRKPlaylist** - **NRKSkole**: NRK Skole - **NRKTV**: NRK TV and NRK Radio + - **NRKTVDirekte**: NRK TV Direkte and NRK Radio Direkte + - **NRKTVEpisodes** + - **NRKTVSeries** - **ntv.ru** - **Nuvid** - **NYTimes** @@ -523,6 +544,7 @@ - **Odnoklassniki** - **OktoberfestTV** - **on.aol.com** + - **OnDemandKorea** - **onet.tv** - **onet.tv:channel** - **OnionStudios** @@ -546,6 +568,7 @@ - **PhilharmonieDeParis**: Philharmonie de Paris - **phoenix.de** - **Photobucket** + - **Piksel** - **Pinkbike** - **Pladform** - **play.fm** @@ -562,6 +585,7 @@ - **PolskieRadio** - **PolskieRadioCategory** - **PornCom** + - **PornFlip** - **PornHd** - **PornHub**: PornHub and Thumbzilla - **PornHubPlaylist** @@ -643,7 +667,6 @@ - **screen.yahoo:search**: Yahoo screen search - **Screencast** - **ScreencastOMatic** - - **ScreenJunkies** - **Seeker** - **SenateISVP** - **SendtoNews** @@ -651,7 +674,7 @@ - **Sexu** - **Shahid** - **Shared**: shared.sx - - **ShareSix** + - **ShowRoomLive** - **Sina** - **SixPlay** - **skynewsarabia:article** @@ -685,7 +708,6 @@ - **Spiegeltv** - **Spike** - **Sport5** - - **SportBox** - **SportBoxEmbed** - **SportDeutschland** - **Sportschau** @@ -771,6 +793,7 @@ - **TV2Article** - **TV3** - **TV4**: tv4.se and tv4play.se + - **TVA** - **TVANouvelles** - **TVANouvellesArticle** - **TVC** @@ -784,10 +807,13 @@ - **Tweakers** - **twitch:chapter** - **twitch:clips** - - **twitch:past_broadcasts** - **twitch:profile** - **twitch:stream** - **twitch:video** + - **twitch:videos:all** + - **twitch:videos:highlights** + - **twitch:videos:past-broadcasts** + - **twitch:videos:uploads** - **twitch:vod** - **twitter** - **twitter:amplify** @@ -795,6 +821,7 @@ - **udemy** - **udemy:course** - **UDNEmbed**: 聯合影音 + - **UKTVPlay** - **Unistra** - **uol.com.br** - **uplynk** @@ -823,6 +850,7 @@ - **ViceShow** - **Vidbit** - **Viddler** + - **Videa** - **video.google:search**: Google Video search - **video.mit.edu** - **VideoDetective** @@ -832,7 +860,7 @@ - **videomore:season** - **videomore:video** - **VideoPremium** - - **VideoTt**: video.tt - Your True Tube (Currently broken) + - **VideoPress** - **videoweed**: VideoWeed - **Vidio** - **vidme** @@ -859,11 +887,15 @@ - **Vimple**: Vimple - one-click video hosting - **Vine** - **vine:user** + - **Viu** + - **viu:ott** + - **viu:playlist** - **Vivo**: vivo.sx - **vk**: VK - **vk:uservideos**: VK - User's Videos - **vk:wallpost** - **vlive** + - **vlive:channel** - **Vodlocker** - **VODPlatform** - **VoiceRepublic** @@ -873,6 +905,7 @@ - **VRT** - **vube**: Vube.com - **VuClip** + - **VVVVID** - **VyboryMos** - **Vzaar** - **Walla** diff --git a/setup.cfg b/setup.cfg deleted file mode 100644 index 2dc06ff..0000000 --- a/setup.cfg +++ /dev/null @@ -1,6 +0,0 @@ -[wheel] -universal = True - -[flake8] -exclude = youtube_dl/extractor/__init__.py,devscripts/buildserver.py,devscripts/lazy_load_template.py,devscripts/make_issue_template.py,setup.py,build,.git -ignore = E402,E501,E731 diff --git a/test/test_utils.py b/test/test_utils.py index 2e3cd01..edc712f 100644 --- a/test/test_utils.py +++ b/test/test_utils.py @@ -70,6 +70,7 @@ from youtube_dl.utils import ( lowercase_escape, url_basename, base_url, + urljoin, urlencode_postdata, urshift, update_url_query, @@ -294,6 +295,9 @@ class TestUtil(unittest.TestCase): self.assertEqual(unified_strdate('27.02.2016 17:30'), '20160227') self.assertEqual(unified_strdate('UNKNOWN DATE FORMAT'), None) self.assertEqual(unified_strdate('Feb 7, 2016 at 6:35 pm'), '20160207') + self.assertEqual(unified_strdate('July 15th, 2013'), '20130715') + self.assertEqual(unified_strdate('September 1st, 2013'), '20130901') + self.assertEqual(unified_strdate('Sep 2nd, 2013'), '20130902') def test_unified_timestamps(self): self.assertEqual(unified_timestamp('December 21, 2010'), 1292889600) @@ -445,6 +449,23 @@ class TestUtil(unittest.TestCase): self.assertEqual(base_url('http://foo.de/bar/baz'), 'http://foo.de/bar/') self.assertEqual(base_url('http://foo.de/bar/baz?x=z/x/c'), 'http://foo.de/bar/') + def test_urljoin(self): + self.assertEqual(urljoin('http://foo.de/', '/a/b/c.txt'), 'http://foo.de/a/b/c.txt') + self.assertEqual(urljoin('//foo.de/', '/a/b/c.txt'), '//foo.de/a/b/c.txt') + self.assertEqual(urljoin('http://foo.de/', 'a/b/c.txt'), 'http://foo.de/a/b/c.txt') + self.assertEqual(urljoin('http://foo.de', '/a/b/c.txt'), 'http://foo.de/a/b/c.txt') + self.assertEqual(urljoin('http://foo.de', 'a/b/c.txt'), 'http://foo.de/a/b/c.txt') + self.assertEqual(urljoin('http://foo.de/', 'http://foo.de/a/b/c.txt'), 'http://foo.de/a/b/c.txt') + self.assertEqual(urljoin('http://foo.de/', '//foo.de/a/b/c.txt'), '//foo.de/a/b/c.txt') + self.assertEqual(urljoin(None, 'http://foo.de/a/b/c.txt'), 'http://foo.de/a/b/c.txt') + self.assertEqual(urljoin(None, '//foo.de/a/b/c.txt'), '//foo.de/a/b/c.txt') + self.assertEqual(urljoin('', 'http://foo.de/a/b/c.txt'), 'http://foo.de/a/b/c.txt') + self.assertEqual(urljoin(['foobar'], 'http://foo.de/a/b/c.txt'), 'http://foo.de/a/b/c.txt') + self.assertEqual(urljoin('http://foo.de/', None), None) + self.assertEqual(urljoin('http://foo.de/', ''), None) + 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_parse_age_limit(self): self.assertEqual(parse_age_limit(None), None) self.assertEqual(parse_age_limit(False), None) @@ -489,6 +510,7 @@ class TestUtil(unittest.TestCase): self.assertEqual(parse_duration('1 hour 3 minutes'), 3780) self.assertEqual(parse_duration('87 Min.'), 5220) self.assertEqual(parse_duration('PT1H0.040S'), 3600.04) + self.assertEqual(parse_duration('PT00H03M30SZ'), 210) def test_fix_xml_ampersands(self): self.assertEqual( @@ -763,12 +785,27 @@ class TestUtil(unittest.TestCase): on = js_to_json('["abc", "def",]') self.assertEqual(json.loads(on), ['abc', 'def']) + on = js_to_json('[/*comment\n*/"abc"/*comment\n*/,/*comment\n*/"def",/*comment\n*/]') + self.assertEqual(json.loads(on), ['abc', 'def']) + + on = js_to_json('[//comment\n"abc" //comment\n,//comment\n"def",//comment\n]') + self.assertEqual(json.loads(on), ['abc', 'def']) + on = js_to_json('{"abc": "def",}') self.assertEqual(json.loads(on), {'abc': 'def'}) + on = js_to_json('{/*comment\n*/"abc"/*comment\n*/:/*comment\n*/"def"/*comment\n*/,/*comment\n*/}') + self.assertEqual(json.loads(on), {'abc': 'def'}) + on = js_to_json('{ 0: /* " \n */ ",]" , }') self.assertEqual(json.loads(on), {'0': ',]'}) + on = js_to_json('{ /*comment\n*/0/*comment\n*/: /* " \n */ ",]" , }') + self.assertEqual(json.loads(on), {'0': ',]'}) + + on = js_to_json('{ 0: // comment\n1 }') + self.assertEqual(json.loads(on), {'0': 1}) + on = js_to_json(r'["<p>x<\/p>"]') self.assertEqual(json.loads(on), ['<p>x</p>']) @@ -778,15 +815,27 @@ class TestUtil(unittest.TestCase): on = js_to_json("['a\\\nb']") self.assertEqual(json.loads(on), ['ab']) + on = js_to_json("/*comment\n*/[/*comment\n*/'a\\\nb'/*comment\n*/]/*comment\n*/") + self.assertEqual(json.loads(on), ['ab']) + on = js_to_json('{0xff:0xff}') self.assertEqual(json.loads(on), {'255': 255}) + on = js_to_json('{/*comment\n*/0xff/*comment\n*/:/*comment\n*/0xff/*comment\n*/}') + self.assertEqual(json.loads(on), {'255': 255}) + on = js_to_json('{077:077}') self.assertEqual(json.loads(on), {'63': 63}) + on = js_to_json('{/*comment\n*/077/*comment\n*/:/*comment\n*/077/*comment\n*/}') + self.assertEqual(json.loads(on), {'63': 63}) + on = js_to_json('{42:42}') self.assertEqual(json.loads(on), {'42': 42}) + on = js_to_json('{/*comment\n*/42/*comment\n*/:/*comment\n*/42/*comment\n*/}') + self.assertEqual(json.loads(on), {'42': 42}) + def test_extract_attributes(self): self.assertEqual(extract_attributes('<e x="y">'), {'x': 'y'}) self.assertEqual(extract_attributes("<e x='y'>"), {'x': 'y'}) diff --git a/tox.ini b/tox.ini deleted file mode 100644 index 9c4e4a3..0000000 --- a/tox.ini +++ /dev/null @@ -1,14 +0,0 @@ -[tox] -envlist = py26,py27,py33,py34,py35 -[testenv] -deps = - nose - coverage -# We need a valid $HOME for test_compat_expanduser -passenv = HOME -defaultargs = test --exclude test_download.py --exclude test_age_restriction.py - --exclude test_subtitles.py --exclude test_write_annotations.py - --exclude test_youtube_lists.py --exclude test_iqiyi_sdk_interpreter.py - --exclude test_socks.py -commands = nosetests --verbose {posargs:{[testenv]defaultargs}} # --with-coverage --cover-package=youtube_dl --cover-html - # test.test_download:TestDownload.test_NowVideo diff --git a/youtube-dl b/youtube-dl new file mode 100755 index 0000000000000000000000000000000000000000..2b3870d61762bd1c1cb731d06e7882f1b272a60d GIT binary patch literal 1455038 zcmZU)Q;;q^6s6s^ZQHi()3$BBZQHi()3$Bfwr!pN8(hr%lZ#aDQk7k`@~pKJQes9| zfHR}9l|7@Gy&I9Er;DY7J&d9(C>R<L5D*lQ28+0iv=<9l7ZMPV9WM|NG7uh+r-Q4D ztFf7ZsV$?C8GymjQ%w~b2vprDO>=HML(|m*76=&Z925xXe@-jeHh`^B^sv4sje?10 z5}V1>pQ1|h$!z7exLoON1#S3fU@0aMkwl!N#uJyvy)KV@@CG18g~jH~OHep^w>i5x zZtvZr72~GfHy{6pcJFPm-n)@E#H*QEZ{3lm7rw{z2Zl|sDZ5Hj!H@xt%VwEq(+%JH zE?La!A`dO&_m3k6efuTEgK)j(7k3*${hPE0H;tETS(dW+(#89g>;;4GI{jahL&Sf- zZjY(%H!HlQ%2ovQ-Tl>hHypowS#|<^*OO0%n5sQ@MTlw+t$w=L4>TI&bKgFX6O^Cs z(_(kNwk528;rm?5+#OtKtX2sLgXA6Wex{%Rygvi76<)6v7=qj4*(ObJYc5I1_u|Db zMH}sSIQZ9DrXof=ZkW~P3y9v(-RW-Q-u`X761y~Bn;&;UCnm@A1R70x-TIy<g7zd$ z_<wKm8V(@x9Xs-THK;w${1;EUc(JZKY`9Sf>ev5i%1Q#X$St<cFNif~iaYW(4|$Z< z*5+3u^f>y6Guz(}tthZRPlkCXqfdC&Q_~k@yfrI57`qQgHE6D9^}!5q0XI7e?7f-} z-CP^<^7Wq-G`um@sFwc}SJyO}R)2r_SY5fB40)&z0Jz?Lf=CyWv}3!hb^6?ocG^Tw z(@@&kS&=88@x9L|BO3yLO;2t7l#YiliqR4Bztm^!gv%rb3?&lEU&?IL@l2Gt?a#jZ zZ&v);%En{X(8@Xzac1Mht-o(2!7ePhKG8u`uMXYwn&QwI|GoO-Q6XlZ>vj9F;STPW z$D#LqJvcqnhD(%X;i6Xpeqt=Ckg5qdl_gG6;G4)kqr?8}N;cCFvgV7^0x)pr<b14o zyP{9yrvL-a0zh#cu01ws%U<SMvEr4UZ&S)z%D$y1%TEIATCaiB*&ALbe{JWD%;TKl zDKG7g?nq~SSi9S1g!_-rQejCM^*!j1Tz5?L!`XNDMy9BW?|u%@UZ&UF7k)&m=FG0F zwZ98oSC1(aIh43R6zQq5KNJR_=9Fo#?JRszXzJ<5&6~UFH0>@!BvA(aFb3r*9p`AC zr=*b>5jb8pZ8-db@LrEznL`3XD!(zs=y9%6uJxPQ*tL${&m^MfTK;8LB9h#M5MnmU z{z@raLB$>E4o;t?L!<V*Os-~rEqxSII=fkC9lBxSXXo)E`-_!v18&W?b7Y8Cj7=08 zJhKd(Hz_iY#t&2&JKR=<oeV3t{suqQIA0UhXsG;7G<c*Udaf-r4WIe-Mq~2&H~ATS z+ix?!`T^{$4Dfl@Tigi+GrOC8x(#xP{6re^eQGskKeT(Fd5>(Ye%=T_HZOSY`wne0 zZT^+_s^8;`tM+KGbnzXs_ifMq@cFZh|Llz6y-w#WpTVm5d3F14-+ku>dZcZO*6;Kh zIGnDCX!9RLOvu3NdO5&b>knt&%wBnllK*=lq25@H9MdIRX6!aZh1PrP?t0JevejlW zcS;kb|J&2;kzG+AS?nIB`99FJ!L9FG+;U&zF2+pkk$CB31pk+7qD=p|rK`TE0y(*c z-M-;oeSvP%K6nPQ$)$tsTD;1wp+-|lkQ0Z3Zw=9E$GD`Y{!;fC6wtMWHpKFUT_v4z zPLZA2A<=jESarkvQ@>Z`@_~7Ack(8o$QbjQLiTWE@3iq3ZRj`rFtX?0hjGu&XkjH( z=+BIn&2+YyVb4Mr-e{M#bN$tuAL+*qYh4+NlmyO=0*kT~vhvUS+&deI&(G<L<zZh| z_wV&h{;OWC{_Qn&>*OTcR$h26#x3QVUmWu!X5)}}X%O|R1fK}yk6V3nO4_Np8qdXR zm7;D&h;gCLz#veYOKvKtvHgJ)U*2CyA*U0lWYWmxs2*)fyXIy#o@U0-j97l&8^_gD z`aE;l;&9Hvjj5~qEz8p&qdks`TKX*ui~VcjWV~uUF8RJk4sC|Gwd9HPvoyQgt}kJ` zV66@O$+bBS0}8f3E^txs>Tu?`oR$2_lsXWj<w<deFT%KOIpsNXYhR%hR{q>xPdo#z zE#-L=vn}P?dUIiU^!(lvP5QEV@ccSnug}%t6HObHDZMzoA2>3(<}9oD7aJ>p3_b_3 zmg2Wr`A58#md-S%TT8#-kK|+S)o~%x9R*hh#U?KzZZX&8wYP><tL~b_H1)lRAt8gY zMe71JQ0ayA63|%pLUq6gTw&pg@5SnQK}%kdQ!zKGlJ%f)r~GqwqP-sfSfho?-An5f zq<4IMz<bPdwT-yJwsp~3dKmjmHD}{a#<?$v4*RofMWTIPJl&Egs<bX<4-YTt-!^s@ zq?J}nwij1A>ac3`T<E(-k-C#dtE(xjc#&SGQ*q8izU4KJoDo3DTVaW1V>ph3m7h*4 z)=s<6=zJO&=u8iCY}$L<a8u=5UiF&spU=#4_m)<A9{Gn0(VFxn$wq`M1-N~|qJ{AI z<1XZIVw_21lZllIiw2kAJ;P#&**fvc(b@Aau$_Z4U%Ls7OAq{Ci4r4DrE|;fnm3+@ z1(y$(d100oF>g8n_=}~4Vc%1!ziDil5km>pL<lB)5_35EEG{2%^|bmSXN|?z0Tmnx zYTuGs+-awvu`c!XWH+c9Vm5+fkTysLUUyP&1Wt3ivXg;a?)6pgdl9>0&aP}tvS0;j zvxs4zi|F}bryOj56$pq$BFyN@GEJlx%=S!gF!JJJyzbz21@x}NdPd4gz33PIP6%+C zg3nxx3&_vdqW*|=p2pnsH?EUeaQb!-Pu15Q8`ltsisF4H^)hN*;ao({i2)?ufiZ;7 zbaP(o<1OFTy`@=G*eT9Ou><=W_OdpJDA)i}>Pd8>rVVHD{~llVxPr&EOgj}4_|9gv zL{Aa0kn0?Y<34f58-J*x<3c4)7hRFn0pXn+<ytHRRtVV9td(_54aAet;^y?T;d$p< zc%_M%d4O2SB39o0(A6ELE%-y41PN9WOlg-qNykjHL={+8UPjYQY!)$b{hV)jC8*2H ze+_MbS8<jQQzc)!Xukqvl5SFIFP!`}yJa-H2)?3jB>YCq-Yq9z6;gmN{5Z~{eVK($ zcf`IT>sKsEU7R_J-Y`n0f8fY79QlXttJM^U>!T!Pbgj^z%Q69;)~N3Be1H?QDX_v| zo+;Ez&eSjagLZ^@i2g8l=YHum+SfYuW0p#Bq&faw>e`H0N97yNA1&{)9w;^x<sV|` z%pg=18(v7i^<^&XOk3gRR<T$bdj(yl<n=&CW$D3CQ-o3nvaL>wlosNJ$yzH4O4VTo zDd$FlGw%>aD@blg5<W<nELO=`(EM_J-GX$oa_hg*u;_De`tKa8N6o}%NQ~ODCm4r< zkQ}=E4XTO5m3*dQ;ixKNnbpgb@yw9%D>Mp4nPj#{;*frt={bNIXfEOn10T7^xp9R> zPBEJap&k)_c{S-4Y~p{1M7<e*W@vi@SCxZ9h7*sgjnod~R4^SDXsmBC)n6V;LG^)? z5>_T` )^>LHLzxLGf7t<0g^kj<)$Xw(((09hDzQf3Nh$>Ag9!+-8QSxWK}0a41- zfic(6(t0s}W@$_34E%25ce_8Y&gy>VARYRAsF}<ZSSBeJ=8KasZT_jWqUL-MW?xPV zvaTG|e58^#mO<8KDs&|AQL!s1wJr}JZDhsEg`2mYk}lzMH;<10o=ge$5g=03eNU_z zygNV+X`s?TMEgtxm};uwnzofS0aR}dDQE;07$2AWE6c_UXI`m^m$LF;Vq`*4p;OjJ z2uIL;U}l@&b2bsLDY(a@a~6XKtZEAu%Txd=f0F4VU7|_2{YOCMB>2ZKCN3a2%KdCs z=gwtDHfImVjPX3Ka%G_K?3kgI$h-r1gdp}+?`wqRC_931g@1BnRsUh62A~N;DPWXG zLAGrnK&>Es6<O4|XVHF?#K$Zz9IiQ8`^{slC-Wr3K)T4Y%Y(BkbP?v&|C6pQ0J|q* zhoMS`Q@D|>5tRgMhM*v7O0Ee*SiLK$cq7yJWHWW=;e0l#a1$PT*6(k4hT+nfcqpij z1gtuR!C70hZ%!Iy1yVlzF$OXPCRv8!!itfau}vg=5EToUntf-&$F67C!KmkO1=XWc z9EP$%#nsICfe>B5?H?LQwrB*~fpVneO1s2zkvjwJM)<ws#)s}iGO<+{i{U0pWyOFv zgU5fC5{JnHH&e7)k_6=sj<~p6*a1!qb~%4<(Xn_<%?VH#77!4*C3i>wf3SN*JI9G1 z3f}-f#KoT#LtuZ2_!*lub*l#Bq5O@2q!ad|RGtvq2b~3)O`5Q(UDha2;<0zps9?Rw zTI>PhU2?c=h;{+V-9`LSV``~XQ*dt4V>ia@62_k+lZ?XP|MQ7M#P3BRTCM`U*y<b6 z3Fz(hdeXY}AwQaDhxl1*(mWO`J}mofX<_15=yA{KMAwx?H{eaqjzCqwtrEKgL=Ont zC6N|^3h|#F`_f1xRMwpIXInIiX}Aa<5kXezGfAJTE<RIKXbJlgdFm(`#`~S#?66uO zG)VOUZ>s}n<zrQn8`C`qp<-f$(E>`xr-}CUT_|Lw^b;u7!RR72f~5z%-f7s8Gw@?T zH%V+zDs%E?0G%RwIsG>|_RmfgG3Q*4dBHij2m;5|rN$uOFH5)A7rv<k`1Lru#GNiN z=bQoE6A&|K{N7e4LjS^gVUgwXM-3yAb%pUvNjkxD)SuJ)WuB>oKIx4?9Y8n_e82nP zP*A)6E2A$ki{HMRbOd=lRc{q?g8#lt-FbW9;=rrn%lUNgVo$-+sw)z4MC?)?0!Bq` z?&|~}u@d8m=f1cj<pvj5Tb)Pj>iTW6gpkkkNyTt~H{eVRR4dr%LQ<)Gp%`{fGb1il zys$A_{O+CpSFSCE29o~b&55OmT#v>WznM=EwQeyoF1KdBqP_p;9U;xpOVto*tAlvA zqU1iQx$P}+bI(n(@=ZLw7I{bHGelL{5agaWSChwk+4ec{JRAHVQzbV>v~&W;nQ<e) z4?CBIh4m|Z_ZaeZv6A-u3Bsa^T@eBwp)>N?<pOuXpb!9BRsbuKDr%7M8+G%51e>F` z6V+p>(%$2C^84@BZV{%>H|uh9SjD-8I+K;YcKQ|wzgFS?TN)<Y)%oLcT=}QY??)yb z?O8utAs2S#gSTrNj%ItK$GOh1-Dms3g!7HA>)ATc^Q%1ld+*gQZ(w37^J1l($6W*$ zJev>OnXq1Br5h{Qhfwes^STDrzbgxJVX@C&H!U`-kQ|+HQrH>LlD2IH{c^g^ULRx4 zur{PHV)s$s*$I#0O^A(Hj(*pszgR0JK6RU@b+rfCCI5Y_xx=Ya<oWC1!*TVt@zS0~ z3gBsLC6q23+JBEaK3f`IoiHnVY>L9HKGpwV@s|Z@{MS9Jqr3%kV@2~`gKU?DaLU+K zIR3PMK&(A8^;xRC?RAQ`Zl29L`yyO-MS2<)|JQ!z@Ecrms)uMjivU@$<L~t~_P=ZQ zo3SbY$t)tez~;&pWzL|l<`~qcD%%h@C)bslc;f}Zq`jF9m<fky!Qs#B-%wY$@%iU@ zy0qCq0`abI>rUNYUA?3&32<<QZ+xi%<|e_h_UFq9@wGv-H4md5m#VJUo7X~_&(jb; zXWW0w)z3GXPvMvof7&C1?&8Qy_Yl)$_x^Ak40d$8DV>C!{N`!1D7G`V5KjKS(&Ibd zmFmmM{)70xQ;=r}baf~&AfOUhARyHLI|VT@GO;xKKXZ_U|2GF|QJ0P1=78({(x|Y6 zOj>BzGQl;Rhsd@{7HtwjX%;pJ8ZBd;Tu&mla&vb+cVHx+y4#@O7sJ$Pl=34JOsb8s zhdNu?$c1-QFkP}f8rPZ-N$<D0=#SW>kp2c5rP^^gzJJ}dUg@*h>cc+YyMDMf-MPy_ z2FDX~l1ZA}nuFbG9()<?!VeEuuXwZ_u>C4_-xt~uC$3v~WqE^0bVdx;XbdBhj?&hY zwHI>&D?_|1bi7Co*{3NKi7!ox1DF@qwjL|5J`@}L(w%uoxc$nq$Q1h8H@kJGP(&z{ zz-e|1j-S>r6*X{2F=>0CQHd@cbXEt2G#{6$GgUp%>LP|I9!<MS><N5j?(y|__MXi- z_-`!H7yk1}h762+M2>HT8peNm)289L6mN(g%^@VBy^1UVJ`U8j2q<iIL5@(+DK&<p zm(a9sA*XD&mA+u0mn#bH2<VUKMy};z5&icoYD$=A-shj~JNI;5SJzh*9OokYoAV)3 z+KJji_XTTeLbdVS_0J0Ip)gRG+`gE{M+d?fqZhk`VS!boB$;SFc7}7+#w^)m80mK% zXNP2Q3Q1A%P*JqwR8{DKS=keVnr!NiW+jvP1drXmms<!b@>1MqQQ?(pXq_0%U?=Vt zlt9wj7Hm7oGbQY!=YFwJY1pQwqJ?~x@Ob8w?$u>Kqnr|{f&fz5%f(<U3Vgjx=~Gca zIEc2Sy}@1V0)(EpljfD!zk5E!nK++@t4{siy*}TE&zVm*M@=cXpJ&sBL`_V97~6J~ z;p;)5k|vjTe*%0iOI@>-h%^RWkBHbG1khgeM{lDP)w^{V${%>*gY?=yr1HeK5|l-Y zc(F$H3|Mz5$`*YaB?0}zL;)RtwH%war=9DjgvvH1m{+<_+vU#m+XzvHG2@%;@_0n{ zb4Dt>1gvR%{w|s?glMD*v|H79rjn<@uKe%}xAeNlCk>^1VnvslD;niKzNz+9Lc_&Z zW|Ci1p!{00VsQ*vV_E&}u=M@-US(Wal~wFAqnh_6&kIcW;7!O0ss2&9!I-`E@jrtc z9PnWHOH2V$8szA{8Nm)e|A0PF&g|%boWeW#_atQWinAC&Kx2D@&Afl90ApBOGj>Km zo@o3dX?ilarcmBt0I0Ku{4U7K0MpDxEuc&zT2ii%hjF%}1;h*M%{g3qK|J#oW`(L! zSP?y}A%mXLHA}{96kDDW!C26-e@^XXrB<C(%6mX#`lIKvH=Xq#alxDQcr6|8DdxlY zJzqGT4Qe*NBrSYK62|7=szauTLK1zo;x4~`@2lFlD;_zXDg~}hDL0(wUv6W$hv;y8 zPx^zKXB&YBDakm><7p6B4hXq8V~4Ja5C6HqyOvG#{okVExeP7`kOcw?*8>JZ`~QiG zgPo(1%m1k=v;VKEjQC!-ZAmqr`U`?@t?(CBsj|689jfg)Z9FcX)byyiclfXqC6E~f z0)Ypl9OvEkJwZHSJoyt?&hm|!Ql!N&vItN3e&sAws-)eElQ~Dm{5Rly)*h3IV$vyV z?0VlH-gimlS8JZ0MmYA$4!^t6YdNK}+FG5cE`~kPPDx&hu6KJ-GQu0uKa4bgZYY(= zzWL-1tG&op^|93a>BM^<8gXEgFWXE>1KCht_SogM1*g;#+d2Gg0V?)s@0cWY|0b7e z9DX-vIjs(1pEj>YmxVZ}{v=iSIrhZyko*Zf&k;AKKm6|b{@LyE_VfZc*OB{IF-R9v z<+v+5b)akQKC*1QzKl-I!R~j1-A39N*gmcTW?a+Cq`elceb>AI$#qHXD{ax&oarm7 z(1lSg8_!4n(%?}^S^9O5v*t9TPuT{0stKN57|I@P)P@Fnv$Wp|sa3m=b3F&RpO^U; z<)g+~Cv02e(iasTq2II;RSZ*Aqcn4z_=3_5A`c_QjoN}=X>XWvn&2w)z3CPhlCSiP zekEFXW?Z|KXwo_1+`X#&f^~WRQ-9HmPrIOpi#o*gkd;RX|L6qI3Sk}>t@+1lmn+m4 z4^$-~KJmeyZRw)DEQ|Y5dYhs~6=cxIPr4)U6f6AEco)`NK0STq`Ib+v$PW(BW88Cb zT;zGb*}TKY!yYD$04mwfWM`ep(S1_Ama*KrasBEa>jw_-gMR)34HPm=04K2sk;LG} z5=un;VS1T@FcgO)`otKkPBc3`B<ANL)b5`S<$HFh(#Lx395+b-CPJJma@1P2g`+Ei z7+ycjU~in(<=ZW~T)4%8bW6k-54UgIf|by-r4jXJ3PMb;Z2LQmm@SL6(Bf%6BgcxF zjybX6(^R`Tj~j#4sl{%HSUfZNx6_YF+!N9^?x*qfdpUw_6{3M)sK`tW6Y=EpV2Tsw zol&Z<Ay2w9GkV_dovHRLfpgHxBEipp5GlSf7E6jKUsx-}HY6|}yPGv3e137cbSj~< zyOPsXkt}Ot72C>S4uXF!#rrzo3?h%maIe3c8U_K5&%M7yz86#<i_5WJ78Dk;o8>-e zz)Js3dT!LsHTw&oUoRqGT-L3fnQ8DC9_-1Un@L6A=VitI=Q9}EWn{=SbJ!f=V4gJW ziF<=ih#cP0g`011)Be&NF43VFBS_nCY~4HCi~o^=D#D!SIh=|rdmic>DbzIC6sFVP zF`vV>DbhaA)})8gR&jM#;&!1HH@iT{X+yCvymEVhXKVt<*wm>#JdG%Z^2ulfOTh`m z(IbvlCoOcU^Wg_sMx5GW?`SC7^(ccT<`q)vMYMw%p=tzHjZ%2H|MY)Vd&^a|(J=V( z%y|65LLQD4Gu-`z(g`bjBmOnXU7V>7l7#*38+O7L?RoyJe%;i_l;YTs`4laiO?M5o zFdDXgu*uP`3WH0LMMhv>kect2rP$BQWLTx?G6EVS_cr9ej6~hui~JIr=e&`En5$8^ z$=1muPk(uSJIFcUp~gGxfYMs?@Lg#LC2`+5dpS5LZA<rkmxI*=<mFpBxCl6RFQ}ID zL!O^($rDqFT1MWPY>{hYRb7{Gt4_GXdlm=U+4$t8!4PDITkKjwJ@;D%syKS|oyVTt zgwpXZwtBK>`||`($QCmADsGaUKN;OBy%9bW6Eq6z+=98<IR%T!ZQ(}MzV57O(36*0 z`tc4yHZ#g>kJk@g(=SxIvr095Cs9Y$mrICBl49mt%xQP5j_pXofXn1pcO;Y3SNm6n zfrpi|8mv9$6^1lF8o2>@i^j+{$pk~2zP3utyxTIG8mc^Kcr4qxR#BpYecYuHA+u+Z zi&eWW_TUFIX^hPb+qFrZBxaA_%$Rxla2UiDv#k)5y7}SS9WK6!-eHlqLh7N&mxxIE zmZL?P*_`lG)HF!o5f-jx0Pk}?-4MzvIAE%N_%y@$<Tjkxv(X-`?lD1%%uUpppL2D0 z+2W<c@4M)>Zz04aabOe<7HTiTBn+`jGWBEi9-cc5$F_fp%*QtlySH|(-Xbhk!_2Im z>-pL#Hr8`09~|O{UK3ehmzH*Dt<Cyl;Qj&GtCby#un_&=XsDOP2ULH~6)QQ_yVH<q zB~DqK8BMi&IS=kvh>Ua}E0Jm!QfH9!?0+m~5ye>e;*cW`e>%y1x~FRnt{!^7EZ4o@ zHnAfQSw0t_4l~-mixY>L9X{gjA69SR_WEg-o=-F8O5@8o$GY=)2QAp=?q6#3nR~cT zQ63UwKrmbIvB4QEd0AlAdwsn_^D78D2>0i2N8A?a7~Ldx*Cosu&da?Rt+kQ?HrY{4 zoTyjz_Jc@YW^?+Kr1TbFIi6`Lq|dniwtQ;s&>HJBTdVgWH3W;gwO0`WxZsi9$R)Ve z1H?zr4|Fl_A_af^HV*~1&AV;)eZ+ijCegt_&siOVa>~$!2{+&t^I1Z?B*H}@W>u_# z5xE(u*G1#wL8#9{0+($G-LzN-x1$NdqeG=uloGysFg6b&Qj-(Iep>aQbn$$xva*y2 zU$M;H-hK03Pvpt$$7f;5*2?c*=EokPqHYdg?pPC?qKK-yDc1GC2H^b%SZ&O+Iy$EP zWLFQdHh{882mu|222&3dJ%>7)>Ne1bHQAC9SjV(RJNLjM(5$&ZZv1v!B=Kk{o(j`v zTOK*W%1E-Y*8KS$0g@<47e`gEYZVH<u@La*#p0V}p0?Ss7GUvt$a7G60q?XR4HNAs z<~l4F@N~8}rSk8^sSkD@)vCcv18fRsiGmgp4iv{3qGD!o9+7@z-KzHH7rphIZ#Wf( z8td6QsR>{6lP^_vGMK<GTF>QioZ!GO2L~U6r1B3L*9B!NlF$yc3n&QpdOfZqYV}lK z<eSqb*@y5MGo;!3{F<{WyC*M=T;k<1A!1KL^u~_UZrI%%l28OZL1Y=o3z>&y{}MNK z3_>$KQieSn<@2XLTI6~*@y-#sI>>g)7G{o2dE<xk+obL3n)Ua~%v8CI7u@vSSFvI> zW9^2zf&EgjG@7cZUNvKLHR(<@omrYa#*w)CrzBi@7?zI`U)n2v{mtfLjRJSs!Rh7x zIue%jlSJ4fx|7w$zBk;%KI6u7iN!`UBb13P(fcyr;u0LdtQpi70i(q%QG4WAH(A=E zy0_IAZj?lF8w_PWNd@Z&It&{0eb`jWlvU5;t^vdaZHz6!Sek5K9ED|Dt$VtBlMb7u zC$y{)5itl#rOjjDIpol?>$5b&T`RO}^pGa$H@rQ5gG9|mAo#<uWx39sBkBu<j>Y1> z<Z$glH@IEr<R7Hkg<@-m>C5}jvvIB<gN!n@RzY58p&(3cgK?i^a@>YP3HOOmOYWG( zZUxREjxx}tIr%I@W%c**015W;?>bg>gipq(0OQ%`*|b}6zA=5%=tsVWftCw_{KAFU z_U)2E2Ru&sM7y8Ug=92GRYS~v1X!-V?buWme@oIP2+K2;=}~(U^YjLSO$|?HkBKWg ze6%C7E)cl08~Oj5pBr=^LKp<zQ>7K*P0_&Iz@S}F5{^*rF(WA05B2lmV1rs{inY|i zG3c8kY6lG=<4TVSO_{8ah|$N8lCWZ=a~Ti7Za7;&LsSrOx<r)R2%}kxM}|TKoFDLV z{ThgBqWzGyV~UG2z2SE<kISt3Pgd~_6rSeO3=SZT_z^5P;B#>&N10b2CPry;F2K?u z1TZFoz#JA>Ti?bfm`3KOCoVytLvx`GW<Env;DW4>6)Jo|Q0jSFyI$=>idfi?8FTTX zbAN{To_o%XOy+5bS-hF3|1L?8v`BkM`8w#<!#^zXlsxsZD|T}_u~rc&z6hUVTU5>2 z^e9NhkQNQ-DQ<_xaEq@-sQp9)hQbT*jCMU&$%mrwUAGZUi!{k<J|okDKYB46%?;6L zPJ~_?CAm@BTKg&_53j-R9|<D!2d8=8hYES@Vv6}Ct-|9ON=1P!m2ikboFl*`QPEh8 z-4zn77T(}(yfYYwY<B?2f={gyj)(s&m@U$94x2J=v@luA9ssA%JzqP^#`s6$#{WQc z_c~sWrGZu264MpVsVnp6-_(~et1BY2+h1XD*r}YUpR0W{kzY~h48c}mE-DzS>T#~< zn9(sW7G^*9G~}$a7%YzKHM|^73@$`OE&6?!9&}9Tm8fJdujKfFVq5*$TUjCGs4mEh z9%UvX&Au&`YFYf9pi@&;PmD`v#dqA^V!aOx-TLnIQ4Y15lONRSt+$4Oi~}_<mFljI zedsADErvP<>6T8yit*aBR+SD_=hvwv*P{PJ7@D8`v*NPssx;Yf<}xTAF2)bnEkd$c zSIk`gmn^Q&^?=N@?#0`?V!sDf0ZK%`rGRVk+z(ONytw#;u%w-i9t&y;#qxVB4HVpy z9uh|3#oYxNpIM<Xf`y7X4*{;wC+EaUIak5OyE+w4ObhaEGRVlvcbz|rk*k>rtM*LC zI{k1Nww2cU$~aR4iI8(d^lPkdQ9yLGu6Yg%jiIv7s1fKrM!z_i808sfXZe2umagvL zlyg(@<LJDJMf=HBU=cE04yolV$S0T8+_)Zh{FAEt3176y>NpGF0g7<@m8!wwnTSD% z!x<rb+{D<T0sau1A7aGOkxN_zRTc;n&C*2{@ek+-$Rwzl?`WIX*!V=NS3m7EJTo61 zZ!za(y^vS&?fU=T+1QG2)Pslu*~^qkymcIii|`#8!UQ&TuFLNPXl_3gTJ7RMn}I}m z23fQqi;Bciv@Se19;;X3=35?D0wXQ58(2W)zN-aO{Ei9AgSky+<AzprQ*+jtPhFw) z0{$`=YE;<9(Xt;I5*}<u(EFwN7V8--`ZGeBL^Cl1BU}aS*6E-!T?o!>VsqtVeA3;O zst?yVrwI9P!E|+=hrFba;RjeMWKUZ_IHSe28(gw-*etz^hDp0blq{F3g<bb{x#I{q zya?_qHioBD@AM4KaGAd_Qe?H&>43sYcD;sdwIN@NN5$W<+H{#+Bb;W#Z6mbVB}bcD zpf3TF@Crv**4sZ0K|vlJCdz^EMQ%eW(&8{vpbF$TdJzr6ARvgCP=WCU(d1deFBDXr zGe^D>dIc3Om7r)XXI~a0Nr7E<iFHw9(G10T><M!@&!;?iG$;Uk``Q0Z$?IjOhp4;# z=xcrhPrN=jC>tg`N=90sRJEMWPlpS%*|zm_{~29fF7PWXWP3BLBnnYe;`Cre!V`<- z5iru9kSwiwJi3a^&<I_)8QC!`?{>`)SDwHd<2ZT)Iv|r6<beB0%5D2B656Kh`%+Ef zjF>-zQX{|}7>0XgHoB%pD>^=vyKV0vbENSeaiAduQNF{E?P(>*1hjOAC7aT&-X0^T zku7+KxHTt^LE9HY5qOFFQsk9wh}EJypXc%_3EXs|gcr%C*<mCzDyUn5l##HN4gj3@ zkltPK%a29lr6;djA@f*8JA@ZSOdChd#t#k_n-Gbz;Y9E_c&?Uy6VO@ibxL%6Z6eRJ zjNsrZ^g#*pSR`sE<G_+4^{?=dr;K3IMZY-^>4sGyd8lz48;nB+6*cM(c+UQxWmHXD zrFA+&IJhwslko*GZx{>q^YCE+UUzB5M-a}iN)S0HD40CeD09rO%5+1p1*I%Rko-eR z2#_q2_bs&;*O6K*xiRo#BC6#zmKR9uj)?m{7I-}v6ojLdGw=aE4N6X6dFd3ZNiKm& z^thH&fU{7VntE1yw{5ks5iRatILXlMvKA!NtV5&gbrf5nyLOx4NZ~JplxDwi!%ZJv zDoNx7o}<VQm0tUy9D_$!Tu*r)l3H|G(EXRnlg31H-E5_6qkwZ2t~9ZR5EJPTxw?X4 zD{N2m1VySC=CcFio|s-Ng6rQ51^akWwx)3KWbS}m;Y0lggqx({7M_BsQIHFDkRG-_ z^t@o9n~kFPHMdd$<(2o&iH8@IvqCbDLAJ6RXbcm1w#5;t98L+T|1ugbc_a4iP&JtE zmcK1<jSmWjY8Y>K^B&1zt{O|CakE|jYsAl!_t>7|!^R;C5}XH=->p0ef_U2Vdwu$u z3r=O9I@_Z%0;+&0;Ycz)DAo<R%Av3fp2Koz3g(P6gZ&4FOvR@7PEZ}Eoi4$-%=dd` zN)K7AF|=brfejiT*{st<B5#ocbDIY@bls_b@GUX3_cPC;Ker=B0;{{3N^b=b2P_ZR zRyB5cVy20yc1^ur@9E(ku9`?xa1O!*CecH{5U>fMp__@kQb9m%&}HJ#L9a84;Qs-` z0ph3CnTGQM`9o=sVVDzk{)0zyl-Oe+;-ts}XHjd33PA~`mq<+Hc*^|5Xbq3+j>BmF z?guTbnbQ59EvXJGtfLiiihZFp_IHvl5iFbB{)t1723PypwJ$7$W|<^dSDE++a7#aG z9AAmK2%*Kiff4W&I~#P<k#aGiPX6l-GWb3UCx-NndAe)5kpWgsgnHjqeaOEMktywt zhYw6wP7px|9<6#;=ZO|GnBnLlHZ1y2dOQ7gCkH?SGm~V8MoL|C7Yp>w93_%%fiwRT z(c1^TdM*!ROV5r&)QG~ljnMyBMsiAwTWfMmjLRUDx1@*ONuIwXs+BUBkT;2d<#LlQ zpdCXDYtvU1N;fShoco<~o=$LN^a&pFz|Btz-h;Nts=W8VMcoMhZGK3NI7M*Tf24h1 z9}Pwci%~A(jLk4c`X=e_?cVzHNf5iO2v3#?X^1hP(6JWx^PM{<=#U1Ngu^0Z!(+>g zVQ5{}A&>JVn=B&2+Ju+}M!k1{qCwO9MLv)L@Dy^j=}WWL04<XJDIk`<ljGI9D@NR* z87}NbhJ_j5G_+2sV3Jmd64o9chZCC^BdFr?FT@E%1;aaC1|0@L{1omXa&?5a|5D0N z8sQ{U+E~)_v8eQAUh^H`yUR$FO+MvHAsf-{qV|=+A2XT2)N_1xKz#q?foWbCC(Rzm zCCjcM=IGrPovD)7SEc}(QWe4j@5r|QjdRBy7D1m7zX9oSilTiA`f4o_|5P?EJ@<sP zxfEZxi<zqa`JV<coO8Dbuj94aB3)-ydn!vq70pZFv45e(WU6Is5YvZYm@9-~f+E~z zRV8yy$SOF{J%7f)3acJ&!O~dQSA_-?p8f0KW*$Lip)7+{_z%@HI=Ftpwh+6yp1~WC zACYN|qjZNOfR6ucCqmKO!y0@EQ~DIj0(Ig4Qreggg!~xK&?#E@H|8+S&oicJn*1|U z#!M>Ym(T}Vpns)Ifxh-kf$sNv<-je15t7vf;%H+=0e~dGS@6;H$7Eo_<q%OKgZU7n zg9-Va1_5Oq2El^3Y>lw6Z*X^AZ|=_}e1eWXfGGO|J+pGf3rp(<JYf~&(^rC;IT=ag zJL@Qi>&+U;X<_r1;2r?+ynz$g9-zfwofD7W^}!>jNd!i^^{;ng?s^d*HRO;|26!O7 z1(8MOL#Y$P-~%E`=<l4ShdDH3hA{;PqijvzpuBuy?P9v8?3C?YPcfJP#EktvWR7qb zNQd_z>EJ8rcizU9M$umUIfqsSBGg!p^Xn$ltVR8nCjH!yoW~HoBhuR`DlRHCY@C!l z1Xs3AGsX@+8Qz7SCh=;J!s__R?ZZzX2xeeSJ%yK-(M}jelToJu9}$VubIH&g&Uxy+ zjeS~kuw{R)KSDP|@aDMF#LX4(7;Rl_6fJ*XW0=R7k|P2^xSj0!X_)6N3a~4H8FCU0 z%ro9`d!y;tuf<I(g~{$`-iREvqM77d9gK!`!i(`sfOSnWm|U`zJjQ9n_?$BIXi088 zs;Rl}!?5cd{!*L0B`0B`7EZh5`DP=ePQp&HPd+F9N2%Y|7)$c(kw-z<f^NMr3Z`Xv zs#ftO?;+;ChA1UeQQ0=?YcX~_zKIb#wu6d`QE>*gIBci`J!RD8-YDc{Ily`O6%14k zu?uqZ*RL3bES`K`SW_jImk8t<8x-9<aYmWipy!V9#TJatsPb<}X5Pa>Dyi~hE&xhB zw+{I9X?H@d><I`Q{?+Rus;LjfqU+hr6{R?D=T)FHTC4F!?{&amqBOQ{!M0Ojagh;t zPX82`+y}tl(-B`qeNP)2pLH&Zm{L>$+xHjIzxwFVau_xgPsTo+z-WW2e>*&e(&U8? z<=2T4pHwIYo-I=&>Eq#y0US0G=L7G|LzbpU=6MkwriyccStc(>z`<5e`0DXw1&P8r zyhmeaqzXWi$0l)6vd+W<I6$E)ARKNqGNQ0-(HDj%R4kH?;~7i$$`tB$R(g~eg77#G zd;)OTIcsm+O|*Gr`(kt%VB$HYlmo7Y4Hg}q18qlC20pxT6fcdHU2^YvW33hmw_sZZ zaUa=fypfr8A@yboMx&QwC0h&D1c`_U1(U%wf~|0^zwLg>mOMEXV%_x!^`%26oQo68 zG20E#Sd6w;(ekM0E!1KAV#qzi(G$@6)uLQ3{YH{Vxho4i8(A4y1KYq}zcOsdLVVjP zq7{Fz<m61RJ#i2@jmA$1&KnzqBEm&C6#AJDSYt-13ZN)mXvg7{+#e&6%Nt4p$txnZ z+0?n^FK8)hF*iBzrvS(|#5s<GEo~FiLF@xMIPx7V)w9k$){_P&B*vndw%60P(+7$R zhA@!vvAi9=TxNOXQ)*m>)zfO@B@nliuh<cUcfyE%DY^@Az5E<#8fs#b+^erL;6mCu zqm|;vn`}%*-`ZCM`Ot7a%3~5U<tPtP8mg{<Y(e%wGZphPp;6)18L5s(ar%s;T)sWe zk_vYxT{(;)h9~q=G19jMk~o(5PqO*USCH9V$DQWw5z7XZbkM3peyQRP6r&KUer99q zrd2%*{oFs-)UHE#I#^Ca`;Vaw(jMoi%t$x%_?Mp!LisxJ`e=o<?=c~rMZ>2YPGE(# zCJ+mX8p}E#1j$-=IJg`!$XoJ_%9YS8W}`TWNoFS~s380VFeKSa#A9-CNHIVOSRvQO zcCA(c1Z?pG8RB4>H|uLAW33Rz2KZn!ND@bD?=@<uL?*z`JZAaAqd&`c&Qci;m(0(l z4asF#){U<bf_~FTjqN<b_tZvEZo&aJ2lEs}zZCH+v^`9dE+N=kYXY(B_l~3wNj&bp zrlhlaVoZN2)l*K9FOG!Qv^_RB(1E`enWz%dNub(nBFt_Mcb?N}`Z>b3;+Qz~ALD@! z$Di!bR~^m5kPrvg3iH##6|ojd0yA-m4de)zhCiItK5{N8`DoJ$R25I6DL7aFqHNLl zwfZ=$`BbB-GB{*=(Sof5HOSQGV!7Xhk6%ZjEw0DOA<KY}>9+~Z^JkvjYibr~sly}z zh1&Eq><AQ_%s?)04){ACXm_Fpo;1Ax{QQ#>%*g28(6^rIPPHszt}8euivaCFDGqBn z+}>RdlLk&sjap5PH4P8**jB)FKXK6gj}v<u)*0r~@`g&-{2#%;qX?R@54>{<QJny@ z8IOl|VT-WSQxkKOY4lR&BQodWQLQ-S-Uq&|lxU4~!Tb*3m>aj|B>#UC!XVP)M(_Fu z8ziR!5!fCvIgYIn|M_FkF{nWcR0@o+J$c8L@KgCalbUfF3?fvm5u^b%xRLCf?}L6Q z93k!zpjk~J+kp_)q<s+F;%x3P<0zCa6aC22^l;t-ZQh4L5%CW{^iNE8vY0!O@<rZl ziK#xaC>r4kT$(bIcx<Q-bzQxL6B0)QcGI>a80A|o^RFn4!%1D}$OeXtE>p{3Ezr*> z9SXyb;cb?I*<hQExCvo<3zNm14E>hY!l|vOmReoj%ElisN8$}NAX{&x%6@*yG2=$E z_aI^`)MvIm;Y#(`eP>*KoX7*W>@lXp_(!Hv7u#<{Tk{aItW}E$t(*Bb%;b(?3UZIN zMCk4-C}C4H{iR4|wx|cCZ1`{l5n8-lxmIA*<t8^<u)0KiyaO$AE`*T{MGm}N@0`oV z%A#w<#SN(|+ePWr9T}l!^i@O!3Egg{9!0Z2hY{wUqV9{DW#I+PywJ=6af2S86NFu> z70gzJ3en{J61O^yeFlcPx+KjZqi!-<WY${!g{hEf#imz~3ihfW%+G>@r!@hS40cDZ zUhtJOviC&nXO~`?M}F#}v6$sa4DJ&!52-EJ0lwTE6YR7UZ;gJkHjJ~-Y#`c@tF%IA zazaP-zYA>ZlCc+19_cqzQuTGJZdrWBs_<*Px#XR<o;+nLNlUUsDzHO3MDXDAQ$+A& zybgOhZlh}f;VR(P%8U%{&pe{eiU&+IF_TWOdH|2OeZY%&(<QwUMUBrV*AU({j24BJ z=m_p022N$>@B?+noX0EQ8=Je%Lf#r63ZliQJt)O3rVW$anAA2U0)8#tL7AAdWSHH5 zdaSglKks=PL<M=vcMr3Bzs<PZ{z%I@T~<ADcL(L>Lx6>5E6|2_{9H@TlMx;IW7qDC zZRNJ13zmwWHjPmq{X*ge^kcE2Yfx$?ionrWeXZB7Wm#2ox#4BE<_;Da3Hbn4UObS5 z#lccS`Whv%ENJ7{_S|DPek?dlqRZ<(gHg|x{7h|$Nk^l7ah~n<G1@OTDy}D9W6Wx> zAhpw~*&gj!9C?Dx{D=ZEy$wor%xHEaLq8}j8!H@PiwxO^CvAnnZk`$Cp{+>xkCfuI z8V|D%V2(yBAs(gcLuGxjkRG=D$-_y?<R!X1IPkBf)G~|fjpi<on?W@~T!EQ7>bl7~ z)`iYCVG^SBVNMzp95m#}ue7}$Q8tU;>4#*WajVQ?x2L<xej79!*N_(;3OqpFBt7;& zn|71wvqApzOr-<CCeytf<Qn#oXZ6oxoEU(x-zBH)anlgG(<+q0Rw9~XmN4V1!v1Y8 ztb+6FT*ozXd{pflqpyr~0h(?B%=6|k*|4=5ofP&O_!sURRD<0)YaY?Ht2bBgI^cm- zidp#niL!1y)}C@{dIbH9jVx`YjxFT;gXc{{5oeLume)W@SPVx)R!D40WGXu6sqmEK z%m<FD?8p7OkZGcAV~v|kDmnC^%m#9=&Q)q`Z0s5J5z7tPKjdzT)qMkjy8)f|co<<< zI7vye)J@Hq7xNXa7PLrWqd|_TdUW}N`=-(PfF$E;L=7tmcSsW-Qy#{FkO>La@fAi7 z1)?|j5N59C9$mxHp8YgtSgxMA(}k5S3>812ca2O7%`cvg7>Xj^LmnXBkzvkI8zNy` z<disH_g?V!-XcvNs!@XiYPcJ{MwXlsY<7A|JeCIHIo?1{!sM&y+8tK6_j(V2fClx3 z%31<LT=5p^5ygtls&FvLRFs30_3)KwB0K0Q5CaMWZ7tXUW>$P+7Ze^+{(#0=4nK`B zk|s7t=2Pc#KndD6nzhLqog85UIFX;$TSpBPLCc$RjYt)ls?FTq0^Q7jDI*sa?7uDY z4;RE^6Z#DLMOlHOWGPfli6w`Cm>h<zCG1;A90g&)JZsbSl$C*oDW%uBs$zUdOoMPE z=K@k9o->5ma$sI|Y-p#UJh@{8+@MUxuxi(Ekp-0rr5L||{C6o%dHA~o^^#dga^`Up zvw$S0b-|eLeB~}aH@U!>*=0oBAm1szPx)Z}^WLva_xdEG|Hhq<Ea|k^ildEJjXtGb zd{%*~qt5_WAJgz5vRUtN;audHzY=hhMZ;KE1b&!A(y@;tblekNFj$A_qxw2uiq({0 z<p)K@P0DFru;I}}(I(jztJDAE434KFeY*?qv+Us%*A`+2#{Z|e#cAI!8Vz|^n7^q6 zeTHJ3edEDK)0UI|@iAJM%fd2eh%=Q;3jvm3?Ae9(x=XV%jx8fYvq0i<au&|_P1aND zepp^>(I8<xfWF>>*~h|S9;T(7&k)RK2R?t^KUtV#E{q-H_kk;}<%j7}$`>czLpWn< znKg`DSG<BlPW(KH`i6Yvqf;4lU4LqkZkr#;DOCOQ#=Ng1(h)Jk%w^8tGc-eXO>a*j z?BAo6iCAZZ_7z4XASo9{o0FNn;$^2iS<kgGL&H2ejCFU_O}x^tPuyZCbX)i8BWfW^ z8~GC7z0PUnaZh3ooW#}}RD3$chhfu^@!Oy8#WsuUZURH0v=L;|zj0=%_yw}AF~Ke+ z(kh9^7LBUUtDLya7`p?A%~w*+xoXF@GA(NA5InW?GqYbknssV&!}y?}b`Gg}Ac_=G z(xJA&?tUkw3mOfTOH9UfSkE)Xg)H@Dt`EqB^)!J%z9Df=38;MMq=r5dhebxjzK8jw zU{?_PwnoSkU>bI)4!z&dGt$RA_?iSOB~}sO$i<&J#Lb#D)nkhTaJ+S`6KC(UhXtb{ zJWefGve>{}l8*FbhaD(9F^3a#!KNC@e1GVb@gZO7Xs(h?Q};m4;-coWbC^1?$_+00 zrN^qF*#2|_r^diCl9($PIA+{(LG}oQH`R2&uo=?ge<XPj9u1n+a7e>UI4`iVfr+)( z!>Re?u?5WxbxOBUH@MtGoa0V4O8yw;G8Lkb?#YkXQandjwWqJ!n&f{*0)Ml%ksGRY z9JhisKQ(e&z2ysU1c9_Sr_jfIki!Vvmi*ef5_G>TUh-*rmXJ({<Ak%_Ae+moq16X5 z{a$jM_36Z4SdbY(e18nt_%gl<G@=!Ty>XvROIr)dGpmtDAnjmDMeFCE_j|o!IK1uK z3!3di4fG%1+#R)-spm}r_oh&|8={xZr-+gfo8_BO*yVE`V#%vdz|^oR%%1%Z6YW4u z)*US>EE%+tz_Uglu`QY#!zHz-w23vr73r??F(EK!StT<doK>}WL?o|v0Z1sR!qaXE zRZSJ${Y#;Cf@YyJ`KYOFS9k!;MU+vUw1OeLs?b4{QOVj`kHruOe5WI28ri0-BIgYK zNjyT9zK$a29LaB(r2D($rO)JRK4+CAn{SeEth`<!?Hs8Evv=sqGR>04;uw|Vm<z{m zO$|y3S0c^e<g6jh@GtI;1Utsb))K@-jA(*fohX7ygIpb0#Sj7`jU$N739RbRV<IFT zuMr#;B$z>X1^}%O!H5}EYs?GA<UaQP`|W09$yqRjg)FUhEXiwC=+<W!&7IpFxkJGD zmgKwMDM5kRk>AX!zn)hUhsg)}hYt3YiL>@THen7n-E#aa^h}QW_(=p&X7bTf*lu^# z{ixJzB8m;lUrR(ezc{uqd7Ue{LcxxQ&*D}Gj7|x&wj_>-wF`_l@p4?=r2PCL{C3TV zVkJ;5Csk&}-b0jOB{FzERSq3d-C871e&sec%%#dLoo|D5gDswltj|zHWLzo?mLe-^ zJXLw+);p;nb^Ze*mlgYRnFK(_mAknE(;<8F+nk&pr^n{=etqjw%J_0qRQ+Ar`rI)z zfjglIp`wG5LoN5vWI~=>T<C^+O;%Qv2x01Cnds!yhI>H;VMom>-$gfNR@G}&bX#lT z5+1&t5sF045hSNURf;Ta9@?2t4s!k9M<oz35U;-3p}D-$3=>8}teJ+fccL)@9MOzo zcyhvTpljD{L?%O~V+)fNqcK0Kx=H#e0de*bSzar(6VcxkF-OCo6PKajVJGZC7t4w( zJ?cEC$0jth_LcxNvzT~qKF6DaS2CChf|6;<*G&FWj+^DdMT&%z)j{fhReS~hEFv3$ z6QtP8qYUYUP-rDIiMkerhtB&gJ2Hak@h)U@#t>q?MZZBhEzR#1YznG(d_a{DFDt|# zkOkn}-O$J4vB1a{13GT(KM0+{4$^x<XtT!ZO=7MOC&K#!7J=;lgoKO}8P7gYlW%AX z#E_8er)@R-3C5%@>zL^cM=FoS3Z;9h0@l%qMFjV2vI^IzWu_<3@i$_gN#Gfqc07m6 z3nLpFa{42!!IVmqib9n8zZ?I~%p^9Geg*P&(swW9KR*-b%A9HOuIhWgx{L=YaZG2o znla==>SkB%;)2+7<mX~)N(BKTm69<B%J-s1{bjv@cU1el(<FIsMPYk386M9npP2lJ z&nhq&$|Is@pkz+8RS!>BwACAHWRQZbc~4JF`pMsBPsqL!4o^D3UEfJ9PHPx%QG0eb zc#;K1Z`=d?WM^yC-wS?=BaHJigCzC$m^ncg1IO{a5u3GAf>}UVSOU8USJ(KI3)5W@ zhQw+L6OMEvgQ-l}*b)>0JIWw&OknG&rQF?yS|k40S;$QhOEi-@Y71>-b4uNOMaaOr z6$7b-ZRD=i)LYCSKg$}POQLu8m^mcp^$U-Lv)z}M_N;5|&#sDV!1V-4IZR-nI4og( z_=_{^$W20!<utA}EA1dgw&e|G{dufp5W?uR-vW`(O74+-qWuPWL*{42C7Z+{ETr3> z42m;2oI4s0>9y$Cyl&DxNAvIVN;l3>PXF~L!IFFWH%RVG^xLSd-(pE^Xd>ntJ(5Fo zm*J=JsDU?!q~$2u+Z1lUEup3(Phag+8v7gnCk4uLxg7qT%XY2<h4ILX-6SIOvajV! zzy>Pwic^PO$Sa;<Z&Tc%Q)N9zS%u+SmX^1xVOnzQ^Fzo#J%v+d5$wQGJy>llxN`qI zug{`A3RqI-O2dPaBIXp}@`~+Lx{(K7mgogx$fvG3q|VzTaS^wUG~r{3iwx0bx&NN< zoY5dw3VXwmXOr=nDq(q+k1=WPKa_=uIR)nbe}sKQkSIWqW!tuG+qP}@Z`-!@+qP}n zwr$(?{)vr=or#%<Jyg`a4q2H`*<f3kIC{a^MQ9!Lufe*7xHPT%{*w~WuP7w5+n1@k zmpbhuc1S*7S|~t_q1OkVMqx&85Ol`Q1x7M7xEI42fchHd$~fB`U}rAXv|r#b{LQ&L zoM?52HTY}|r{&<6BMRu?X9T^|_?dc_1N*b0->vT<3!Zj6#c13+N~Xp9=c~i01%A!e zGvpv${{2xCc#b~z^*?R~id^`&$8>0SahP!b<{+K4(~y7}WSn5l{$TW)4d!t3Qphj? zVmM7?_X#xgsV5M>{>ZKT^fzx5wK<ZRD1AJGMUSA140v?aRlZS)usbC|-B0U>KpQhy zD<}PR4=8u#Y8Fs7xQi6^O{LbZ={(!^t3C=C+PE_9D)i2zX@R?3Sx#ccPV1`sPsVjs zm>BvcVEw|nzXK3x|M8pMb~hYz`cO?5leTLHk8FC)l5q6J;v9kWw<jeIlDaCM^FHzr z;{%J2LFWAV%QTJ2At2X)X=-gu{ug2%MVDuDTvP<;2Hc%`pZ66z@a%NU4kD3CKSBk@ zs(jST{}#1PVrnF8|DCq&Xm&hxG!~P-|AZ}NI}Ljpu+~WqM;8a?8#-t3d#%9yC5#hE zKNjucH;qg^1!*z-jFLL&v^|ID5mdIizoNC)aaOO_M|FlNKu1z*r@miVeVWnAIGxj@ zk7NKV&MN65Z?pAHqoFoHbZ-oTtsz{4i{XmUWlz1u{10HGSTK%(vrXKQv8l31{|SS4 zpZoc>Cj-NyNZK0zQ|#%{0-&<}xT$SZ9{@ZA2?YMHzhzIWj=s~#q>er@T%wl)o*2WC zq*z8^!4zG39+3Ozor4YOQyQKOFY^FeXg?(}PfoP~79-0*bS`y1{HKtTFdx1SHx&_5 z+kU6L#Ot73MrOmeMl{ifAIY1Qh!bqz@YR0*?<dQa$brM-M1lRpbY%{rxOHD$manaK z-^6x!EeVFBzen$mb`3rb-{f=92Wkxa=-<SuT649&2-KTYM~;Sp$H&*V;RZ%8{J=8T z8X>2R)lq}-FDgw)dV3N|bT}q;AV&oeeDe;RIDcB%)Wdb2M$?k?%qXoC25W5w2`>$T z<BNMBi-K&*9A@9N#W%|??M_gb*mu(0HArSAJ|hqWl22gCYv6=B(sG}Z|0KVdcm(i> z2EsuQ2tlBZfK6}v4T@=j9jqA;aJ|w*X^qgGCLb|0(~lvs_JF6$fPs68F<na7W~<UI zP7XGNFj!tnt=k~`hDnW~ckKoA`_X!J{_0luVp&_e?1G)E({jqtk-#w&*+uEYg!cRZ zP&&?eG>XCuH%^EIumj5WKzjcW!pSH_IAQk(BSDh`8Yf|BlFTF_aq#Y^0inA@_ooiu z5lw(+9F~Wjc54sS=}dMEI5bvKYmmHv!+WpQ)$wIz!5nw-Q29hMhL8r}I`k)vjvyxX zQzW$yTXGF#Y@l?(oU%e@X=O4oVfVO<m6(bK?S7j$IX8;KuwkF3I*+2oQ*#*ysvND* z=uxi?glr&&sli&~uW`nkIVdH?5(lSmVni{TiKY&S6>KZg7L{!PVHZ_I59V#y^O(Om z$3lYqp@2Zx8%Kk-6)yPnwMtJbW7*fPeajw(uY<fX1UO9zXhRX?xd;~~IYDtH)UM01 zm*Gnz5iU!RNg&K!{J+!FHLCSU2?k$lVjd(z+5tMG8`bVekFvaEUKi^KaxgFLK8Ior zT4H<i<a;K(45~yO<LHa-%x(bXWE5#h6=-~=T$}K2Ify92*79lH;nFPJSzhqdTW!F? zi}fve5uGjhKNJaQN6d_Fo71j>Tb>T@-n&Q+v+K6|GeT$-hiQD_PUf0eb}d-705TK6 zP|`LZi)NIzE2_9{n2Sh%mueBm4hms2mIV&aD~I6BCIRA~_j^YwmB7W;JzP}LoJZ9i z_NY)ovRwCR?-u557gKp>Dxnjzs_PdRUG$rgkNlS#Rr)lZn-96mL}#9{*C=(qt;YaD z_a*)|T!G{*212VLsMe$&GpKwH_k6-FjbbZ)>a);fuwbOoT4U+aOR4yZ0GvN_XoczT zA1m5HiX0xgq5ODv_wYoJSZZvEv+`ouhxlo&ENcD1WA$3Sl9Du<H}p16e@vJfgrMgm zDG(L#1Jw|H5dlZTL&*zNgEV|;BjXu)L>NiAcD$Q2zx@T+=&pkW*y*p~1U?0F^^~Xn z%-W0!=VZ3273$~Y0#)F*DAFVb<r<oNkjj&cP^SYTUs<q5ekACjF_2-KOBaApLYbQ0 zJGn4O$7ycdqtguELdQVgE~|^(w7u7spFdM%&f<F50B+i=h+XFxjPA%Qao(Pufv%^l z-cLx{vdVH^9J0TEAhBWsNzIkPl-=B0!wB5F7%`7rpm_a@OXh&<?!Jc;L{VU+(SU<3 zoa@3ABUZJorw|0=IK9tn=4aY^HVR#Tq`K!6X0b0q;H+~rnHQ(VpW`~@(f>xh$pd~+ zUud0GVGogwiR-b6(>>6Mh<Ff0Wm><xpLqVL^GzGlZQWVGss3I%T@Z$4>;^9h#zZ&p znLrwO7|Eh2;QKWXp%q<@AZaV0`+?rF3$X9~m@0Ia4jWdt)>t0Ja86DQKT_+Z4~@;$ z!UU)MMiLTZsJ$is;{eBBi~_BVKLN*T#TLg81O|G5Kpq}c!?!?4UhReNDkT#22MF}9 zKha)m5jq)11}x6N1bP!xNZ%G}bpq>?pUmOd!Sv6^aVEN(+6lUFnn!D&4mk9_-Yv)3 zTDB8x(kk?6*TKd=JfDZ3D4|AGW%4Zhetd8Ba(1%Lb_biKDA%-(-%Ad~^TQugQk%bw zyYC;Io}aqhJ>_*i|0K5NSba3I$Sx$RU3RWyW_l+NRrAr)K%K&Zrn}KE7;kTsIL@-) zLa6>x?Q49!-91x}Bf2nitAM2J@M~4tUX}`(Nm558%q<bhj=lw<4CeV>nb__&Q0rCg ziQ&5FNFnHcc^J+-fV44qzPnK+2HmbVSK~w_&L!&^YpC!aHN)5UalaQzOu7m^^QL@w zOek>Ki0pdixs$WR6YuUV&oU-Ha7`HBnNZIbxH_;w!IjMX+^aLh8$-L!E7tOkDvfTY zgnk>J3`VMO`<!5?t=@<$Z5Y_(cuExL%S)>DI<5{WJkOB*=@s;B_Ff`Ft8Dsvz#~6% z%HBSvFhla*PR4)g>_+vRGH|2DY{I>xMlI?@F3I=G#1ErP$X#|#QKx*kU(o!(L_e#H zo{f?esWc%S^&KwJLWGJtj3HK#jn~Bg?Ye#a^S1eHeE%Lc7$i(-6nWRV(ij%&%V*K8 zAF)CdQE)`{H<ebthc8wBi$wK&yo!*EX&W1SPSzy<A0979U4r~=B8vW*S%43gZD?j6 zC;1MclDfK0j9-rPCn29o^yR~}FjlZIbA?BiPGrl{Oz7-9E}O@_4(4&$wI<`8Ko<^g zi)7QA8=W6)J}5d%27cswzs}m60L?9-q9sXd9W;#GC3mOSZ<mPc?&JsmLs#>x-|%vj zzvbj2z;jekJYltJw^>iJB~eY$wB%ED$dV3JDu=Jj@8Qrv{H5Ev?2A6agt}YfC&T9X zF08$(;cAd!Mk0PwqihMeA)F(^&-?9W{_&Jn-`0><f4h_0Qny;jZ~5cyrTuDOwILcs zcc&aW?s%eik}BK($a^(`=b>0H;s+xHy&!q2R|50REsy3-jx2Q%2cVtCdQszL6woJs z;xqAB?<%UnD>l4@gU10yw+#L{rl5BNeAD~>kP-3OBh4&SYPE=${|z`ljy|R+R5duP zdT~+hc1U%(z~Aenoa#C8&&SgDSGzAAsG@`>zbZ)fK`fRw1vDZ0r5eVirO!pS_lVoF zR@@Itaa(eql+I~HuM~f|BY*Z2zh4Wv$9OH}2l?MT6;b{u?1CKJtu>RF0(i+)6{F4f zgkT5lm!WMkb>1^inq#}tWAh2}3di;HfEh7*H!+Ue9W;4uzqTG*RH5AF6Lu-q5DV$! zgvg=T=Cjr!Nt7EN&La=;%SK~mW6WylD!tlfwfmElhtS%P49;q6;xBuLMJ-bGYM%J$ zg{YhlnGl+XQOBK?5R(a@L?l`>8JcqbBrB5a2**gT9xO0U^(f2MrjIie(N@{j39PDw zKADAFTa{eTO$z=4R04Xniy{gtb6rVU4T>b<ZJy_lcM4}!b%*5b>dNEhr`t*rC}Z-K z=i9AHk4nQMtyv0QE_3G}$^C^5vcK6-r);bPCnYp>ctYj$`lR)J50+0&s!|wtXv8-s zG<Az=v=KV<DwQ_nmJ=oi{I%>VyJuIE*E{j^>f+UWi&4`X1A2qbv;(tY$$6^ZO4F@_ z!s_#&>X%_^w~egly&f}GR(rWQZ}dw8$`RRDf8W(=q!d$B0yh`PG|}jcsu7r)edx)u z{((-4P%5WPfNFvHFJMqwtw&FB+!WdqQIYsxhD3N0_dop*pZs_#2RBKsJ+{fLHkI%h zO>kP^YN@_a16ANRa$qi4s2v6KrqvKP#&sF|#R(Ba<%C7JB}FS;;(?cUS}jsP9dleY zEHKd78X5fA6>TJw10E!~<nt|c@Xh_{O(JEs3r)_{MYsjp8ko@`p^pV+G@=%ZAzOhX z0Zmy8D;rU*NL}%|DdnEQ_hJ)&mpsm8ZA4JfQflxj7w8MjwNt`=MDI%^w00Wk7J5{K zj_ryKJCHlRlt#;-bR?@OBU_zcW+N+VH!|MJP)U@Cb6u~?1<3-bs`j|h7qV=jOOWOo z60`#eo*sq0%GJH18*oGkCk40BH9?yT84{)Cdy-AR=JN|BLUI!wmv_6iE|xozT>Bl& z)wKr0hEs|OI;vfxTa32XCM>JC(5cnr1RQ3U7dyfNg-ff;>e+A;q6UdE3byz2)h^M+ ztFtqR1;y7DG&?u!>Qm2cqqgWjgN19OmLKUpyl>$;ii|{J(29m{>k|0Cf60mmyk%m$ zx4g(oT|jPv9+F9~ISD&N+rKh5z*n#cRoN1J-wTm)@#M({6L*Xm(%?_}?Qy1Jwde=l zgAPLAC(vEl*h3Bp9~!uq%CC#g%ugi*`%Cl*JZ75<$&lv{Bxvcwycdhik9;pfUJy~l zj46^pS3EzD6f61D<haKA-;SwLC?5BxFWqiQbE$0UeO!r`*PAQR8Z;kX6Bk!}o>#}e zSI8|i!SYjgtwk;yzb=2Q=`y+Sc2fPe`8#gi(GBB{y)DmoZ}{74z0FJ*cUw(3U!#w= zxSU<Wf8s^G>8XqVN{Jb@kw!Z@20KQl+HrO3S4|1jY!uU!O~yPF(H^bnMH^&JQ9dWW zQ`f6$DRlp+FebNb^hf9fdTC5{q_cK^l>XtM!qCVbmK(c{z3KDBwgdC425QrCYQ`av z$|!DD@{lZ|aIe=1BcX=Ve!t+xbcuY4yZr6I#BD~X2&wc@h`A3C=1jTG46AQ3<<|4_ z)l=Y(46{wpdA`k+^Ud<^8Lce1`pOvcWu-kQNZs57U*Ll}OizfGIV#29LGAeqOrx>= zj<~^uZbko>%PQVvM=6V1*Fmr9z~)jHJoYHE_C=<Hs+!-pcX%1O969w}iVxa13SP_4 zyg7n^;!@jfkPzFmG$mQtmDmP-{vN1(hz5x?-f-bv5_aWrRa8)1^*c6+18)OPZTY?V zSmLLxu@V(ZAl6E9zm^KW=IeOo7)|Hl*V~~@PaHSCRLFUP9=t2HSKTVuweztNW?XTi zscn)|((EriH5_t7Oj}BbDm|C7-_}ck*Q>Lr33pa<ihI3vR%Ng6Mn!mQlWtr*`7z5v zrQiXzB;{)0n(~HeV|G}7yvjtnV+uz5?pVSx_R&zBLaDQL4z*zX=itge>nX6Zt)}0% zCGC2#L8XOIWYra#?qF}1cm92$+Pq-t^Wni&p{_9+N5}}}xLW9nWc!_M1z)di`C*m} z_I`-$?BCagFEy<~`+lj%R+=JTlT&X(H^2tDV*Ww}^1V;0O$@4Gzl}gb#T2D_sU)C> zIxSS|&Hbi?gbHxU_G=c&Hq<JcQVF|e(lyOs2Lg8J>!4d*sRuF?MS^i!fn=goK~)%^ z+&wTHG!jlKeJ{eDioqg^2pYaIZEE@Ks$?UISHa2Zi>ShtKiHQrmP%}FgpJV?3m@4L zI>s&K^p=8LtwloZToTVxyt@7xmkm&*)t!(FyhoQb!4OaZ#}8UaZ}BW_n?qiCuuAJ| zk0GT>6T3~lsq_gM51+U6HA{9y8$<^Se-MMzi<x>wRn~VuUFA9p2k1{XWF@eLj%-x* zj%CVUEY!G*hrBQUra+0dr~H(+PkG)Zx&6~ZzDN@Os@NZIUi-$=t|)U%H5F03Q{qG# zL#xGIU9;+rSUh9ja__h_kZGx^f$Mc7h<|LdI);%fI2Btpr<P{a&GoZs($cYspyaVC zvAK99LX|Hsec(EtItx;p)q2<n+Fbb@htWaF+Nq?{6&l}&hD52Q2Onq&S>Ee;Wk!Ff z$Exgum9tcRXogO_&`7D@z#V%t*nQu<c<lG4Rkl_qW)t)r-9p#gE?>r1TV}A#3&Sp^ zjG1Mxc*$pLA*PzxlvB61(#T0lPAjPjN?D(Y?ypYJ>Z)nS+?F_hr)~JCjQG~aO*Sae zPc5xjC_Yl0M)76CX@N?fuh}|tmKHR=IQlKi-Hxu?^~3k}`l+Cew60(19(`Yb+C{oi zz2-HsT)bMcS4&x9dMR3EMts`pDz^zV&0*eirXFf_0#voT=EoEpi&vIhFWriY;<|Qb zb=4H`>te_^BBzG<*{U9MRU@_|+P%hVB@RxIxsxfmJanRkw7r$TK8u|fe-%CJ)ar{@ zTtF$YtyRQjE@*L3O`h?%BTyd-Ryz)l2*5@hBodVXOrr#UIIrtVhLqrhWv|@6H7(Ve zU;Z9ai7my8y}E})TIQhruAD|}B-OLVlMzt`t`x>>Q<TX`9dNf9Lsvc}h#{)P-kb%w z;4Y>jcW@Qg>IatIUfpfubTQx7aQd2o-+Cli&00DD$gkX9geZP0)eNBvS<jqaVDFxW z*nK}mpqC4PHb1?K1|{b<x?eD*^_(XObU$p#FYTvoMA{HHZ<U3K!G%X4UC<ttR_S9n z@Uj}xH(GZ7>cc_3W&|%ws@8h)adWUdN~eqE@(nJjJ5`%k9W2__pR^_T3YDVxx%}92 z4d>iXnBk60!6QkN3PM#@cvyC_Pc+`TyRCg}TU6Sm*0S`|s?J59NIe+bfEH`}<WFh0 zC(1qZZKzzH&Akvy0IvM7UIQySZ7<TwB%X;6Yg8dS6wKHcC#ZsR*I;QAozysYQOj>^ zfWy`^+VYv@uJXQ@zrHI_UT~`ju}j7*$=N=?;D9hb_<#%DxL&}T^IE+b&Re*cF5U5E z@p=N-YzSGpXnVR@NQ?eXM^lQN=9<esi>=^%ua(GA&zqxntH)_h3RtE;BsYAbpL2ab z%0kJj6EJk#*!i_SZQ5X^uhzDkHaWJ&h!jIj?rar8C+~$YvJL0(0r)A&<W?#={jKog z<DO9X(0=qgDTEzTn>(XIT3r^J34&sE*Be6G@!etE6B1q9#KhtliQ#>VmFLg-bzSzj zdk@={M%>4)p;8O9PVop!B6)?sY4tTXd8SG6!ygapJ^#JImy-E$ifz)jsY=#XTyD^^ z{+a##(f@t*`-yct@k(!se^krVFdA;r!5j>$bDEnLVk*b&w{AR>CNjZ1^veHq9<Iw+ z)@Z`NfRf4-iyc)&EpaM|7Wl4e@$!>gh$4DZ^m(Yla>b1*RVTkeNHofjq;7x7PaaNU zQ!xcXmB-^rvrE-1CAcCve+Zy!VaLM5m!AyTM2cjZ5^;-bIJQJ3epT3iKL2#4#-cs2 z*7wf7C?6^7P*Qr*6T89RDDKY8Zer>Q;|FRdK&7oL>ppvx=uBWSSBC>{4pPWb`K?=9 zM5I;V+`L_H&=C?9obb^`%gRob)=EIdCQ$A9>UO6JIgM(4go`9Td8prHt^8`Z?pLgg z(hDsf3u);lak}SzBRFCsfNKePtcpBkgRf2|StM<uADWKWe0D93z)IFlBV%;&9(Pek zqS{u)iBi11))cJa(k*bDrFC0znLEuI4y6@>v?O<_Ua!RMvpTkIQwq(=68A*zy&I6Y zT{*xuODf+`FuiEj8tcWzi4A@D{oW~h*7e)qZV?VnDVjDh#&(mnG}%<t6uvm~_SsNh z{p_k>zsBXFP~aH~kctzJymr15x?Z+&SKZt{Ni6)$#Z+?o+TC$re{OXHEMKe1Se~}2 z$IVswzId+(UZ<8$g600w5%*H5tZQba?c9O-l|zg12>4tenBOe;!!i*VqTGXB+#Yk# zo{-U{bhshP+Dj?DRWwdVBP0++zbS*e*wCToGyoUw)?{Fp=GDu5j+5$j-JoDX0lNQ( zaA`&>ME7K3RfVm5W295Nnp<pkUCPh#n0z^Fr4yXOG9|&1*(~y--S77&oy`1O_*UUJ zKa>1bSc$I1cb>6&<xy0cKehVpyK$9%HtAw#1l_?AwUAU3res15c>m61I0_hIJ@G=D z(8I(08-7(%#wO>Onnt9(Nd@wPptQOt?P%>cbm8cNi>+rOikRKG1Kk>rTdpe@P9^Hn zT#dPLTYG%s)(Mrva5=hCgkCd2q`Y=|nGI$mgi5&=7tfVV{Zueb>udT`U5Tn<yWqx+ zG4pk46LYY}mrY$tMN+zm=i=sji5n8v;j%Tfq%yZ8-|SyycYQ|5FZaDJnsDBv@NgIj zYPQP3fAZoFAs>#>XG$6g_u3eK4<K?Pa0Gv?&5dR;SN*=qOlg%7-JVL^F*_znP`<-9 z-BYAa(bW#6*>pO$Bt>n?39Ppjn$OLxJa@X=Yu&}M`<JT+PN3aSdVJMsa^iCcqHyf% z?)LIBy}2r%)B84yA}{UGE!zDvJ@`6%Q^cR~vBhhIU1|~++8LVT{`K-MuBZ4N+Br2< zq2o9_Ixo0vSzb88IvHO{)}id)7Oghas~o98o1yh_`&IG5XOdQ-sWE##Scs-5S#y4y z_8mhzrfc(4Qi#^jo;O3<UOd$gyvG2#Oc)c#CS-saK<Z`ks~Joc{Ilm-eRxNr#+?ec zZI<t9GvVWVh?cl|be94*$0eAb3|rJ(%+d_@4P41(DI1R(H=W>jDqelU0N7+p{V`H~ z$Nuav&!t+xC$HRlb#7<1s=!v@q-}InSehW*lbmcA=7}nJTUx!;N#)yW)D<pnx%Y>5 z?FO+`wU_zkUwK5WF36ygGuPWOWon)a6MB%W2~^)$-Rqo!`b`Sx{r#~6Ur@7g`SsOU ze)yga6)QkQq}bVL0mC_Hh+>dLjqe^LxC)#W`J=6?!&dPxXW)mA^4BKC#L-rYJt#uz z+UusWOZq^EZqwnOai|3y#Bq~GT$^-Ovc>T!>Mr{cX^;CrwIJ}WStqAO3agP@I{88o zXD>`PD)GGlPD%+Sx592SiOg(IQS|=ixiEKjx7*L_<&L!1zKJ3{a!rD=)`RFY0e$kt z{9k}DYHP+^Ckdu|^HQu+GF8N62Fh;}Zf!F<m1rK2(?pDQ>hDId<z8Owwp9k5T@4$u z#P;2Zqs(SH@t+pQQ7JB+ZfHz;Z0d@+VJGpYzj*6TZraAN@nc!M)#U@#5Uo^g@$DSv zi6oz2V;P}r`91<7Ro0!67#5J_+qO;k_y6?e871NIV9*_<NehX0A8>BH&2Fq-3|Ft< z38&k%wrdu4TZ_u4mdEFHr4L!!)8@yL6gZHl<7D)5>c)hT#ZZ*eY!g5f{WDfRr%iu1 zsJQqwH$db~(lcEf;wK-7B;jxZ62_H=QFGDVG&aHcPe|jnRnY=ZMNdOZ_lt{Ey5b%6 z;9xzh5KlJ#jkq5}J@c8Ji77s9twx0C;wLf3zJ5tgr_?UoJh`bE+8z}fdik%sxc2n9 zeqsw+)0fW!RC=QC<w|e3cs<^Ie<@<2>u)P_GSzk2PX!}eVPqY$#zzkEg2zm#P1?q0 zRCaoFiY^&aT*d}!FXrN^9;g=DfTg>K^Je8#EO4QTlvfY#6Dg32og`=>1s&!u0jQmp zKAZ_CTQ513h4Dk`$Kd$5d57LYUk0KI+E4YfT4Ikqm+=<>DjGz*ydKY<qu}ZFy9ZeS zNLi(7D239ij`hR5nsN>Ok7ZlOYQ~~YYiBfASx8ef87ryIc3)NVh*oOdnrb^Xs(1iF zX+0F?zcwu@tss{4-;iFVs*|!L%@;iiYehKGbLGJ`b9T$}R|bFAeMYj51C~}xo5oJ< zW|rQa306^mw$wm3JgLwotP5BCo4Ilx9Xk$G`A<8_xwOi#1YDX>D;TUa<vjd{$z03L zW}o=;tupmc-Bfx6rZrLaZmA(#URz@j3xSU!!7DEGx>M0DqTLrEDswwVKG1FD8(o)R zX-Sie$rFM-5=7E*0;@OPC}V3nmNSn3IBf(CZe+aZEK=o*+j?Q|wV?^IfKktRwp%o} zP@`z^Q+_F5AfSGhK&+4M6}CMOmeW1TiHCYBr&B`<S&TbsYyR30fmet>(~B%~O=?7H z6zS<P8GA($39G!paAQ-3UI*>+@++{~tl9gN0`bWDUCMTF4Y#dy_DPyKs-&o0gQ+5z zr8ky$wJD@L#vGkF<od{WE|xbtEQI7<R#bQ;6<^PLPgPrF$aj!dJqO*{MST=yi|ktC zKcT8_jr{&nox8UV_Oa<|Zb4UOoDxt$u^12U{&NA(7XNVZtFI)Ra@QeMB}aV1D413o z%}$fDg1u48U67B9QuMgroML)S+^TaJj*<e2seN8!7-XuU(XD!Z<~zF8l~U2~v}X|* z+O`5Qe6Nlbls%$!#1Z*m3pbI6@e3!9&kabJz$dco$wvaiy);4b9>yjM$MH_;Y>Nry zXNBt(b1u|H9~pDrVl(k>Nic$QoJ^gKhSQi#-7yg<ag;#9rfdPLIwZLf%#X|52&r!~ z?MQ2rqO^sW%YRQozj_IJ>i0&}wRu<-!q(O#s4@j_qaT+&oU6~iZ~&2vpL+em|Mvhd zd%5lm=6|aa(Eo*aq5by&FMWLrTMK7>{r^vdS2d4~(^lK`?l<+CG1J1#`eoaytJdth za0Z9X2_5|*$Lh`-57u>L=cE>Od4aK4?#%ZqIDkHglGbK>r+2tI0YD%Dgg-&?sUOFU zi&vMza($JpXyYZDi_4u3&83j)rSiO6WnnKKPSu7db%XV?n-6uPOqq>xYxWs6XgCwK zD*0yD5;!>Km)?XF@j|);-!rs3n%#v>O~uh(-vZ&hQYX1;r+#x-vxn-E_G^(_-v$I@ zZKm9EvMW&$IM5HPN9FNo$zm8db5v_ptL#pQIatd0C)nDnR!bO8SBh?;6>i^CNz!Y& ztwAuDuX-!HhxV&#d;rOkUCY_3ANTv@_?+8rIa9)&?9O;pmzMM(*a$q=n}iW#9Q&!A zzR&wU)92gq!^3weK22Ru<pdY~%w|i=fbFAg`?y*KNb+E?iZrlq?k=~n58>mn7+Oib z#j#XNHI1<e*|NWOI{JE``?HM&_&-6%L~BJ-6*sJu#idDU$3kRHC($NAvo-CqF7#sV zd5y^wwfRhkcYuf<wJf02U5l`Mddl%c3%Z)`dT51k#LinwKyKIVhWGk1o)2y16!3FC zMe+>>0a@m$Xm=dPaZLZ`EPkUK{*G@`8vnAvE%f^d`05RyL3D^t1Wc2LsrjbGPL16x z-%@f`cEa53uvG&=vw{IPcfHc9QWPr0Cp~D1Pbs8y^<2xTY`WWA6RKIA>5a<sH9qp- zu>FR!ZlQc^>}tj46Liznq3iec{fvZ@O46v*rQXG1@6UZPIkT1Z&IGHuV2ee%9l9tT zRoa2_s>aH*>~0Zc^@DNffdO|!z4gz-X)3)u5}`CLX!O-yJ!+g5iY<!;(^&eNE0HC< zXf(B&{{;&NbZ@9+D%xZF8%@6&fc6nXclIKd(hOo2q6P(RMF%k>_%x$*w^R?n!#uT! zTupv!IN)tG+F$FS8k#G}Zyk)OeB{xYbkSOFh8jOTJzu00inH;75-*|8bqH0^GU3MK z#4IuqX!p!I2ZbM<11$N(&X$@LH3Vb$o8mzi8kDwe+3nO24G9Ngx6)RR^-1ABUsoZ% zDdFgUn4#N%SMmv1Fg{J?^q4^n;fBX)QsTkvsW(Ndk2S<@lopOE;tUK{4^#twCZVIO zP*w)eyg6x}rJ#_phM;{ugno7M{m%&&Xix%XF$wmq5i>GN*uPuW&D=nnOoFaq4#5B1 zw)WVG038IpziwmF`Sk_o26;myzUFnN`l5c}^0IQoD?uq_XqB797!|MdM-39x)Br1% zM~{(Rms`0JUq+nGq2rJqQZiwHI$MP0RRDl*j|i(&geuTgItK^-iUn}N7H8nfC6LmZ zFAujfU#<WImekB5HP>9Ik>wMDY(y3Ou^j%^txA<8eBeWc#1Nv+WW(jk(%i)0N_v%E zcRtt_j~qAD-;qmrjEagyFEynpi6W)d&2rG_;h>phrk7^dV0*9|LjB4v9FyfDW(S@< z6PV-FF9c<}>PqedPrm_)9|KY(K2~(YoC5oJ;eeDBUx))Bqm_!kP<VS6il(ln+CE-Z zD)D!xK<ktX?4aPtFViueeEJ~JfKp^b;8G=xXA)u*1GmCS*r>iR&3_5fRCD~f;rYC~ z_~txgk`?**m>eE{51YjIMe^%?d;5M5(-fLV?QY02`~7gg|L%nUWjG)ozfw%~|D||L z98ML~S1u$o8E?NqE!HoqUU%sOk7(gtV2Fv;tS4{+ZK!q7`&`aNRif{Aq)7dpR%Tqe za_5-r2<!uc%K=t|nj<y-L3q(h6RqP)8)ZMu)gMF%lf>l&AOcDKV9RxOO3VgaCtDR3 z&z;rR?fNl$`F@ulx1J(mo<7YL>|xP-iR0WYs|o5xl}Is%sK$;^HhQ%N(G5T(fCvQU z8*nY$jwq>#QaW&2Y=vzLO<utEw*IUTvYxY3r>2F~r^E)K%X0{e14Tfb{h)iuB00W{ z)#uZ}!bJR>ecK(EzUZbQhmdgC6_7zZfA{GD^^jxC&P)52nW8Wc+5z9j+34Q$ZZ9{q zO5eaUBW_z%M>zv#X6ycyf}Y9zTjf}3g(m0_zwg)uWM2{~Ea+FM>XU3hm#w3p35woa z5Z!q_f<v-(kwm*_f9-RFz2)nl+Wn>IZF#9JYJp$Eu?yl={X_-$Q|A3fEb|&BHZ-a` zC9-ngQKMGp#}2uV#)fGQk!EWsQf<6#mFW~hNds~v<$9f<pqy*5xDr@Q2(%;=-3A(@ zE835}9tnZGk`tVk374WKKzn1r8{XV8EVjB{Z<G~`%(;v|&V|G}l_DhgKsvNm@z~7? z`hGWkb+V7=lqkzrtZWK!Fb>qm;#RjHmi<|tADxjK({+1Mu}hZ+4Gx5(%ELrDC%xzf zB!k)7$drQ}WPAYu1g;R}W>*J%C71T|XV^oKsrtuG9;y@my_5N#>8WD=33eNbXl-Bw zCb76=r9!#&0no6cYrFAyE9!e&T|yY7o};WHHD1Q|qV2xoVBdoYC9(0a#ANHAiSC20 z-6m`TB6GHY3mfCHCVnT97mq2_ThYqFg|M@yx`t2{uevPEBr;_ySOdo>*0^pZ!@b%k zI*GOlXhN+-7St3Q=xu?7g+N&2Bx7>`s-)dw%yy)j_J|4Vat%TS^ixL_!k8Q;+4cyj zC8@#So(rpAb4`(9rn;gIkMgy4z8072^zHL6Tb#qKJ8%_vSk~_Ej<6|?Un!vz<|}-< z5ig7J1Pr0exiRz?{);c-4RKFwUC5|!<e_kRuUH=Bmv}G`)IDk-@5Xwtp0CNP)tVWw zgmY$>5aN-amwCt?;0pG<#{PiP6d&eniSgfUx|8IsNu?YMsc5>)ZFHX=6;G;I-k~p1 z9Ngn+MAKFAF+?!n8jYhSXq0Cu86`_~xe=u<O$A!x5U7--Z*FLsejr6P9a8G4#QoR` zg4Gx|gP|JxF9CLHjkat;qv7=V6FU`!Ok=Q(XQEJ1X60*1#-B7{jC*1=((~6LGKW|z z@D*-Dpp~ToJ4yr5KcdIBl@;Zps0LZ08K=?v8M@8yp463eURm!DE)A&|)K|9iwQ2^$ zv0Ub%uWhM#apXSEYp2S%&G|_1pXUNo4u1PTB~xx~j@BobBm*{Z+&-o%77ycpZpXO~ zyAy{)bxXD1&gaMT*Bk4L;_`ji36~Q=gbpNYS3!uxkv0kxchD<xq^1C^XE?LI)W?M^ zl^MoUn>=iLiuwH}?&Y_iRCL;_H$w{a-QH~+zmw97XRgX8%q@W<=E5p%(aFoJ#^250 z8bLRY$kN+$cf$Z7!#K#4I~1(e&gD6~d4ueguCPU=leHTI+!;`uMEC(WPvlj4sq7?s z9qUP_Ygbv|*+Hi5mKU3B-7|ghl=-ZKY)v-LeFZlQc;zhUTk!pD$Ng=&jl{M1WmQHk zq^9o1BIIUDjSEv6_k98LZj|JilL3ZMfL(how(4nk=}E>&eK^me(;405>`-8_$D*r1 z)QF2YF$KIhD=Hn$#EW0)<R8#?MC=Ie8JteH!&N7r&}P_jAhmjj?$Xp6644VP8+d?l zm7@XemyrOtd2&|fBt+RP!Pd8k|6rvlzF_GXn7q4S1MD1Qfm2&@VQ%}YuJ}k74kE(q z65%1v4le7Z1iga{mi~0-`J=$5Zh&tvJFIscN~!O0B3pbI42QAL5P1AWj$~1w$@$7A z5p*!5U?-th@=QA~L@%d0izUoDe~&^b@c@I|Sbd8B!s0tbf}qydtN{*g3;W||gJ0;t zA00sThLJ1qc*cNtjJ!?p5EDxS2hE(#TL_L;&Ky~pcqy2?n9t&DQu|0{57mybQditc z2-2{VkrFd9@I;YX><5{x_ao>XkhQn|tM_vN_9nA;p9}I+hus%yHc%~0#eHLPIuRey z%)zg4x%^-mW`a-S&<W8w^3?X!EN^-ItO(F&{cr+1C6!$1ABt=5zyKF}p@w6+0z`hZ z$&)uk4gNciNHAESOUZ0~7i6KO`p@t5=znlRIk|ZZwx!%s5&EI-y@N+Q8|seI43ZNn z$4Wk*W%i?T3D@EvUG8FY+bhr`nHmaX-Zp-RQ|mJ)V`q{otTG|G=%3uw!Oa5ZpAT-J zF-{|mA=QZN&<;j%-vKdA%zTt5y*Bf&dX)S^%TTt*cOI#b+}fPl1x%ARNDfd#K;E-4 zL%to_^1je3eyF3^8pKMS1bckCZjLo0Q@$TlLf);ytlaUld+QPAx;Om@<k}{*12!Ic z;`dAw14BVaNmO8o))4M9#m~kM-3|I=n53WBDGtVt?KO{oUASr?Hb9u=xOA&`aio9I zGWoj7yi8zDpucvjOF-_Iyy=SYh|9^%9PPt(3*&M%y~;94v>CH;Y%!-`M{n10iVbHX z_Q?KL5XRl5#)wyKTCDrqb`auq;PQ3MS_ImYGqM_F!u)x3y1!M|UFABxJ4fyuS$#>) z!^s8n8``3^t~9*Ny&ZB4(gungNWtAPiBnA)-aTXu9lh>9r$-onr-lG7o?_jhON!>` zO`TMy$gJ!Quj!fG91wXI-QKU341b4eR#|ZalVg9Xd(lL<Y$l$QQuVN)6Wni3vji`H zv$gg5(m6!nAr+zJ>b<q^Z3E5y!wE2U<ue4=_-Wu=CW>TKxsoYI<5Z=8@`v>Ht_`Bi z#wG1R8bh;X3$54o`R_k@UaryYN{bgBEn_&eyQ!M#py=h)PWNyf?r5CkmLUwhJ@#(4 zJiaj(HaUP7D7MkH;-%5R-}q>ZFJE5UG9EW6n@}wN!G_JnJQ|*!(%cvbUAPWvsV=GL z1vs|2Hf<DJz3oRsf1$8En2;RI$X*}^EWA;sq?>;RV_NF4LqM2_KbliC08GYC40}dA zydl%|M=&TvBf3lo!e4f^Bw*}?MxF(gpfv5Rv2?tq>=J~FV||Nzx)dqK?g+vlv2{sx z?DiU_r3l1n5bSw%ZscGjsthoyf8FaSm^Ms@#;hy*=P;c`3|i4~HUs~twCWp{!LbOz zD#7&DM$Fq&AH<1mW*D{(j2(2tm7ds(6)d-u+T@D5%*LzQM`AC#j~<P4FyKI7UzlfU zWVSTZhYbqA%-f0~j(;7D;Om)VGMxZ)h526`AfrH-kyH;g+%L$Nqq{Bjg-<o>IF)bg zJ8AIj=Uqj{P=C3|m9&+c(&cpq?14J@8+^-MBbB&9MDS8!g-XWi9GoePM`86FO`cbN zp{0<SBBu{72VlznVPG3Hj3LG*=r_>js`{71ZO@sM-<eq!@=5}ifNIi*7PyZ^-&E(5 z5^`t%M-X!dYl6xnj9%|;jcIu-;vF)M{Gbogc<k>V6#!X+79=vANes@$J4&by0WLBE z`!ej!5oaSp@8#7?xCE#%%de)l0h(?RM7gM%Nd^^rjWurNRF4BrfNt?s$`nv{2;stH z21JTK?lMBlypb?m1crBMAhoTI?6?3%M~ZpS`HY@T>CoW?Eon=)e}D@jXziIQhQf%= zV7ERS26|q*V9-Ls5N!dDc82>0(vSm6Attg&SqPKzm4z;@;(Aji9#oa@;I_{Ejv6-Q zhd0aw^<ViiJja0y_AKiffNGQidtrjkMUdrHr@c7&Bw1q}_ypN?S{fAI&@2;c!_wCl zd6<U%!vowcX~A;?dNmXIuN|-P`cOyciadN6HHtP7se(jx?2@|{vq%And<heP?PU+r zdC*|yp!V2b?VsQp9%|-znNdFfl#P!QW@?(5i^mvrB-e7hvW4s0!u65<rJAESYXiY^ zKlu<-+~9sQ0f+2jf-&=GOtLZC8A%KZn<=9-vN38@OHP^WNsgD~w#RV1bpyuYxf|A_ zw=+)7Zv=OFAI1~#h{=aahNZvz5FrL}dfxA}GKC`0sWD*jP5!GzwsHeS?RQ^6N-#@a zX|j&K*8`s0ClJ6;*+t)vMl!QS01+mamTIJS<e6ymC{?{y;f)Z%=tN)hP9=TE)-A~R zZq-5s&OU9}e_&~65F}}*4|{3l@1U|CsG0ds+RLYp!FtaL5h){p4CFpjdGk3!-tmT@ zp%E+TsfWVD36tO75Ju2d9%elR%rUzclYfdSK&;Lp%VZ0AN=(OIZxNAM@WvBwEV367 z%v6Z(AqGh*h{=U2->=shKZw^l6u*%Y<L}QOI{eo}cZJqX{B7zqQ_VnaWik&6Apo<# zWGP*@TXhGMUW%kJG`wt;Nw`G#3@#sj7ESfo-(G)_&&bW$h=5%M!sANzg2uivG5W7N z?In0wsrKNNU-1YsLI7+({YxeETT1BfkI02oC^JpOAn>ow5c*>_?ACLe`p|u@U#8L9 zotS%FA6DFNS0(crnuI29Xavd&`|RDZ&H4sZ$@$wr(j4UiG{kdZ&8E%Cf`6UWkp!)i za;Q9T&+X$j5XQoFA?%yZ3_Gn!a)+C~*#Wl$lhG}kV%li6_{r?HO}*<Em_-$ie&Pl- z>(8UzG-JeecwJyxxoQc!3$$LI1R^HCt%HlBXSD8t9eG?iR;IkZy;#3Zl;SI7T5vnD zg}y4H2l<^!G4j~s<S_hWZsq+k#AD#(ogtiqb5p!Y&?$kIl<PefOO#Zf%?^*D@Yd(P zzeRLxZFRd}_0?I<4yMIasi}(Ko%I6mEAmLTD7~MYU$8;PY=0zAKz9u9y-jxg`^Rzu znYcJYYRp$O#^Z^Y75@bB1E>bD#yyWGw`<(R(Q(9gOe8biCR^ifcKX+W3<K$Ws>K!{ z0xbDk8Nz2|#N`!9A6yS4OTcvxuRnep<(9NR%PsU<{V+4jV~LOn{7T=5cRK6YxmUaP zl81KJpu*0JEc^22Z1VN2kzj2UF79c50G_c5SYNHYF6q;9xv&<=h~0tkTQWhg$ZZDs zD)@heAT|E2XMH=yo}q>W0Jtam9}uLalZCCbiKG30LXaB&`;OLOOe?!hj)zV^P;^;2 zrK-2B*vt{gNYR%%=q7Czuh)HRbp@IYLv{K%B`mwdUti`TJ?}Ax7dQ?;8{--K9p<e3 zmaZ`g6r0P66P8Gb$%#PqqM7v)3G<|e$OjJ8L`mQ`s>m)MdMSTZP&+>-u5|18ovIoQ zDlM&_;6A5EjeB?CHTEoYo-B|=$*0ZI%-LJN-|I(O&A8&Bhi-EED~MSrJWxa6Hzp7s zv@YN;8;J17qFqN9RuBh=*%npst}YxPWn6c@;E0bJU>R0Z$pt{UF#oDEKtFsSD!s*E zUgth$8})1;1Kx<8-JPF@*w_w_uL2U~1KOido9urvv$Pytt-X+wlD)%%CTOXo)5yE2 zA`2Xy(tjGtJtR0bx7E=v<o#pb-+l&VpWeaV9PKc3f8T$;cIU@CyfSlt+xQ;I635A+ zLkN0zeiDS!lClPVeH~ttZ7cSKEYs#_MbIZTQAK<5&e=#X)Cn4gkfLHm<*;?U*IGgl z$RL2cF!*Tg1$+420E)PU8|wc0IST}jlxxIyx{C7lpV%ynPiqwuDGsAfo9nSsg;Q1b z1rC$R6^5ln#SK~flX-K1IzbsUyL0DWYGFbgB}}<YyHA0zHVnP;xnV1%Fv`@sJIN!{ zr#*RYp}S;=+~b~X1b)G+bJYPzKt;WQ3w0e-JpsdFn4B4NO&(Y}-8#W9X+p}EW5A#) zjCD*s)gQq=n@Bn7?@zgQl}Y>IfuLW)We2K+4xmWM**>UO{yYy$$>hobNhgS9xHify zkSa%=Cs_`K_6nz5L~1P@K7t{<`lQu)i}#7v6FATf=K=A$Net{n!M6n>u8Zr+4~(t` z0j^?8oJ->g$x^DTz@Jst`KC+T1&Kj^F<Tv4V$ebL5ahT8gm#QiSn``Di5XA1Mu8#3 zdXV<iU+lbk)6aD)jAWe<ZJ@Zs_-0xO(8OY@i9*!UP9pP65DcXF*1aS(1Y9c{Y=%Xu z^u1csM7=r-?rg-kibXfSZZ)^Yi>lijqDAimm#VPbO*~wSmiz_(z}o_$D_^`Y_=>*4 zXX0ZLm=0T{2?ZwFwOBA?=BXf1H#1#!)S#rN3Yuz5N0G*~?|vv;JEXf}NSa$ipHASS z4%tnF-5Xjt#v*kAPyUW2wv72qdkfa73nDgPRcdkw>i3)Ab*w1pmZuXxHE@OIvMQAF z%JKU)?;Ps=an@W~UM`2I3#7kiC&BaS((=`;UR}I2Xojn)wxM=#rOFyoxT;*&v<Jcw zgzmMG5kd)#l+{r>iwew>G<!_yYqQ5e%p?l?W0T~*{v~i#QY#(YqTwEX1PbotpOx4O zOwJ<2hJw@*Ad`J<e(beiYFa%=4%$JWKWnsp58mk&BVsmwc*)#JyaDkrF%_B<H^4ao zGMNu>jC~P=LYTwDMu#96;{SjYXZ@ZmtdjNN(-;}k5aD8M08OwqzL*saHkNG>ZJd3u zz}nGn1F1)TQ--advdcxDF0mFP2+`g_)6{LZ1h7}huK&R|c89<AB6;mM(0*(YRc+$$ zkv@t!OvB$_b(OGi0ox3w^xy==UKb={X%nEsP}0eZy2}kYc94nYK;)fG>$5f2K=d2A zm@%Pb(E=~@v;>cRxJWt{%2jLnMqId#d#tef^{j%%?H4)8xC^NRvtrgy1yQ4KL@>zF z7c=Ze3CEf(YB0TcC^61Bq(}{hH3q8uH#Drk)0OjLts&p&>dD_hvR34J<QcJ@^(aUb z%iZEI?Q?8d!PD2qr|?3-8sQ7g_B0#GCpg0-ZpC@V10|RJD9BN$Yh6Iqr6nmkH7`3j z-B^7)_9@9msBa4>a6N(D-k%m#Qh2N6VImM9TVRn5T#TWMke{8H5%9Ly2&(dCyXM9l z92A25q=HV_(%ID3FVidK@W&-b3EnTibqMbikhpT*jBEnsq7Yq3(jjZ0JB%bp+QDQ? zE*12immbGOX+p%rOVRAP+2Ean9406<6G!xlGT(5SfcEqfQ^`Amx)eSM+LPz7ojSx6 z7E|16C+wV%xzzd*3R5h3)c6e60OqyD4E`R+nMQy$iLR+RQC3mnCdv-~z#E=%+ujW# z9I>}46AMO`jC_$}SJ15p!gP=G9ZFePnCD7LaPJHZ8}GUs@1uxDN_22OljS84*Yjyp zw3zwpK8$$sc)d*P=jh&&EksYB|2u}`ej)w@tzqcQMt^(tr70nmOKZ85TLuKEg6?^a zz-0?0#8rq|7rYc`_tl({C6#UM3;qNPqUuF!vQEvflGC<oH4_RR;mGai>;mSZpC@y{ z#)VEpsFPtkVX@!fvhcY$-kI^`H+kdpw{^qO@{QWFb<Gk8@borT=71g}q)qaqewV%R zV!_Y%$H*CJqUI%8vwN7$cg>v$xs%r?pT7_AgfK4Ji2q{DR`^nIyIHLTQ0%a>8CU|H zx;g+kj+#kbMyDIjT4}<9*7~)*9}X1QkkU>2+Y0)XbnRS^oltz;RUiGE8Qmpf_rzSt zw;NYya-&t$-Nc$@<)Q(@SK{82R#lt#Z2$=RI+)UYYC0`Z_3k0;A}3-QW@1k&i*|4K zqEitJTMRHAix7H@$sAJ_+2NQyo~l<)7SI*&R|~oNYkmEhD(>k18dIzV!54J3A2Ufe z>Vdg$$K#`K#mDqQw?LyZR{VRbLJgeoC-h6j367LJq+y6k>F7L%g$|)88PO(Me`2l> zENtcPHfzfv$WPEsEekS8C@hb%B=5NJ7NYkks|r%dnwf?N+uyt+ObvhqXnrc^K)tkx z=ow*T8}Uc^%>WyTFet9_O$3Y2&WvKoTs+$AI`Zhi!)6)$UmtSI5GQd7P?jGSBCJ$6 z(Yt`CxhT4ap(hm{+TLF1)rXwMhzGPU68<*XY8U4mQP;D2`isc^2vaVH=dG<=F3$nB zX|CtNLi8Z?M_}rrhI}VaSM}1|yT;_Ia*P{|ybc(}<8tIYVm27&aXX%ssX2GT1{O;# zcSDN(Hy$)`LQdhEL3^y)rxdYhXKnq3Gfu1os+8`og)d(5Ex_XL`~vJ=el|fGkIyf1 zYVe9lT2FJMhDrK~xZAPv=1cBXUDi|)y^H=S`STbDtER?*(H~nT45zE&>m&aE&i+z) zosxn90st)jJO6|IwK24?{r|GRx(btWLkuuor__HVm&9mj4*-yqVs+j_#%y%iHdx9N zP$=|c7q5*(<#NW?avWUMW&72mTTs{OF;3lG)t+`>^HlhU#}k$E!sg#05|^tlB`|Tv z3n7J!?|y`@Q6PI<c$mBN#rv+>+6kA_rOE-DRV#4JC~_uK!9A$GacrCF_|bYA6sjr* zr#78uOT?_{-`d-t?)GT_H{hzG>__|=KLVS{$2bS+*L8X#Sm=V}yex^E%wgJC%-NeE zR(R=>h#eC|ih(Yosd)1xMe7mQf<Yhin+*Ty(`>qaK5A_U@S{o>`2u-0aLV3dk>egD zyl{+RvsJR%Y6y4#o~{~%HOY7r4&(p7SN)HMHhc@$d6*Oc06!N10QJ9f>UQ?d7IwBy z|Fxg}U$$Zm@mRTSvNh~JQrBIy6toc8oG!1l%EhjxAm@(68gWXxHMaA_K}c4;D?rZ0 zcE8@(^)kE15m0I>B=BCcMMxTeG52)=+N&K=LJn$D{!{o7Ml71>K`5Etv&3qo4F#gI z?91nzg=T?EQ=u&%D$!W<r+d&<?7jg5Oe1(99J^^IEQX^3c7l6j%1&`ePKlc9g}R8> z2$p(44W{qxAOrDV;0n-Mpe1La3V%LlMIg)-GZG!$^J{h{o3uu&v%58=J&sWKNUZsc zrS^T_jSD0yMRM%RN~M5i))yEcP8zfvSl85Tp)yzzqK9}J?b!uXa?HYnGAz*#+>Ixa zBW5CU#-mI3cjIJ4a{LJ!?vl|Yd+YbesqgO@iqRbmoQLQD;&}Z(jGa?=CR~(+W7~Ge zwr!goJ9%T99j9a4wr$(CZEJeX-8WZrbAG};d+n;H%FLmkIlbQgo(PN32vVDTfA@d_ zK0qMfy_E2lB4w7v5vZrG@{ft4i|LC>Guq*!kt&+UoTw5bQu<_+#3)BFDMlPGk}oQQ z6fbF5@?fS(TkqQbY<qU0-RRhvoq2&zJ(AJbi<|3lon|5`T40vZH{gUAk}8W)K-zUz z4JR_oVpwnT^dW~b(ltlkd`3_HRH1<|TOi}|O3u}9-RF6K=wS@@dEeAH)iN78Q+2F8 zGZ?630hiSi_>QRGY^k3!<LJ<QpAQ!yU9^QUT|X!+55xl>`3@pznT)!&dDjDC0SPw= z?KkGHiac}5{jqaX_+qK)w4r!C8mucRm5A*C5PaZZ^E(&9DG@ARjF|zk?D};6B7VJ} zmV=eOxuLhQvy0oQp|w)|7|?&BnC-mA`JTKYBSI7xwC~Kpq%|;tRFB>rKW|yHuX&bY zD_nkR!KlYGBMru-)4%1dkHr6%H|#fe$i&4@g@8XW$kdu&*umAQ)l5JioF=Z>7=eRi zA+VQGq!c*hF|bYs>%tLpeqe~wZ|5Ne4%d^RKy3kV8(|*&yAmcLjP)iN*5Bd7t42e< z9WDp7-WX>&LcT=TL);kcfYzFPmMz=+Rpfs9p$dvm0ol{`voDy1_q&CJ=4g(p<h-0C zF_>WLlU!0%1wO6j{GA)rnwt|!%<h`>577M{5?_9@?wZ=zhPkJ`j{%xfT}1dSk4T(d z;XJ6`Dxtxkf``8i`@oVE6C^boF9+8pebfM{>?!;>HQkL?BH2E9Z$Z7dE_C;OIC3R- zFGkec9|Lraz->l??fF8JZ38|kpL@Dc0SIc-!0maXS*<2t{jtQtacyqrZ`MP&d=YBR zLWo08Di6*-NCv_s9O*~Ie}iCo$?6Xj#ghJr5kbNPQ}Qk$QF@Dr=nuBe)&@j~ybpZ$ zl3O4f>&4C(qoYv;T0f>}l-wZJNbC(AJz@RIzhOw?rK37=^FSUeQSK5^8Y)%c+X6Z6 zT$?GGxQ>K5SGfxNp`5Kkmo<YsMf~`=`f_}GfcJ7=qSy)2{He*-Kka`_q$g&bfCLjw zr*%Rxhi``j1v*1S2)y|L)O4BTC`3A<)C+WWHl0#M#h8HQk}iO=wq&WSH(hyNEg0w> z9?f5Xw)t>92auQS0G);4V#IeAM5q4tpwjh3pL0xWLl2Ptj(o)sg%vC3L!Rp62JSGC z{WDj}jNI`;YohB%!Nvsf{mc)n>c<vCz2_c-(n@mDONbWM{7z)W2E60nM}}>TjLcPN z<ovJkQ7b;tLH+~@Fd)5I#~%iJXq31aFljhD{SbVH#z?gg#S!?|O!y2QWJ?O9@R1*k z)`(aLjWNp5cZiKt;96ZbF4aEm0c#0fFjuO1N;%I=`P|eVrUClS?-8OsN3sK!)!i{O z$ZF6K^FZiisy7!=-2>RfxyVaVb!$`T<7bgTxJ2a3hsUo9U&qf(@(%%H;ga(H<-o>w z%LGYILJW~!3FgUx!r|7E&OP!sOyI7{4v64L+Mo(DeQz5%3TY)y<pSNp*0;i3DO?(# z$GDgN_{+Bb_q^m|R|b#q^fB$gzBuN6)1vqv%&2MWEd@w$?#snl;Aj#)Czr;5A)n*g zd(xV+b7j8^d@tDe2_6{?*TIot?cbD*z&kL(+#!>~{w(CStp7b1JO8_3Qx`h?hsr`) zw#cZWZpSk6Zyvc06Dy`ipD-{sfKUeQH{PR~{;kberN|u5TCv%{Eckn7uM9ohA7Cy} z3R!n80|h8KqH7XZ&&V3H26r5mLl~D7V>kKE{7JzhAq@}gBjyAUk-q!@)W|v`rfl=x zh?!YV2M&4kuz=G2Zd91zyeY0=TasyM%N$vuD9YKq#+A$LVwur>18$SFqDi9sFjVdU zxA{MgtOtp-sPF#tz2O`=@<iA753+Yn$yM0#|56MwNJGQwjDTff#>`FBF^quM%b}nA zmEEf?e)SUaPn1FqGK3Q|C#UHaANwCJSZcMN<q{^9MPPW>@}=49(15`pQ!Wa|FswLC z#<`2RXrWO$CXn=qB%l?*#|R;n!4&CQ3~SvAJ-`ypX?4qDH-UI&9=C8VAaMp_(AHs% zDbCOsP%u|~^D8pa8QI_n{Hw<d-*p&gkglTzuM<)%?~cM$ET?)fEpgX&Iv$P!LtwMF z02Y`Yg$~4)o?8uM51N%?njf{|$1Bo}K5-I{JnPTbn`p8^kYkxEgVOw|nEUr(=%P;2 zd`y_#bv5#tK1)cUB3Y)I-LCNxQ6!6<PuZbAmwa?d-*F+kwavL{!Q`C0bvCPoHBYBV zF#t16)y5~(>IrV2am8UnpUo*B@|{7Y*5)0@4*0XhT@k;&!A(YAj?8Nsq?YK#b%0N( zn!DqG6;eb?$9(EJI(L<}B$YvrvcUn$H`0Mp!yK`#N<r%DTX#!uIQ%gwOeD#PayYG` zp{`OgB~_qi4BZ=-V@+Womhs6nr*M(bTj`ozg^LAWN(-Cm)alE5nIV;KO^M+XE0+i2 zmw`Qgf--AfF}|0RJ+lu{!~V4Un}mj+$yeOh*^xFtimO_f=!6->`dyvY8#ipn*a1wo zTS8M(MnYFYcU(UVyTG?jAV;MP#I`y+vSkFun%Zn>V(DR4u96|}^?J@GA9S{mQ#9Th zpA)|@4eK65=E0SrWCV>as!!pR{@PRc4=ei?v>I3-6W|S*KmaG`gM(ZQf;|u_X|dY4 z3I|^ynmPto^TTTFdTg?lKP|r|;?QJCB<Q|*OG-B!3Yk@`Qn;AV6%9rEg|@LrZpyL= z2cr)jH0B8Di&Q}nZ|~gS<ABM{Ur?%QU5i_=RIi69^G%$skYXuoob^^xNX%p(<w0!A z3(rc*2nJ@DG5byxm2e!TL<OJ%LvR#XowVz-s4dK1Xoh_5f9LHB3AkYOGFKMe8(glq z%Z~CV1IoP*GcGPB@IS3PS-LsjU1Z5zZ)tban6c{`yd)KkHg`ZP)@lF5c7wAlY7#0s zMd0~Eg^I~*Er7Q$-FkZt=wIGkUh;hrum1UYetvQF+uVX4{dGjG1jLX;KLo1eA#nE? z9IIzHD-=4dy++gsi=Ckza228@E}eP{ehXv0QCD5gRhb^{u2~<1EsA8+Y70MHP!RcW z;9!nl4IEzitr%MY4VsV5&2(7(8zIhe+W&J@iQiq%$RDZ-91LOE0-d-dCF!+v+Hk2& z%8O@3hEeQ^3nNdSAsj+@o?^FsSD!BxHf<(pxZHqUZ<~L|;=0LnC&{s{BRS}=X>cMg z=(RQwCl&z=oT_pA>_@%Wjf{rp%S#VL8AA&Zx?>Pt1+^OWiCZ*SJm{8ihmNLBGM!CW zxu-u$Af;p!bzh?i7+c)IG4DKtouEfa>gTOyqY)=hgqo!F2df8>_!ggFs?@s?dd(?a z$nsq@Fu%wlh7?RKAuYxsm}@@a<5r1ldfVhB>&JX})#vc*)-N*N1BX|$$LIM`|Ig3{ zQRp#ojt7D-TI`JP^(fU_Yy9ZH?%wnkb8G>{S}n_$nLRuo7pLP!ZVDMAoTxT$ZLCRX z*s!A{$oZtINHdbamAftPFMZ364Yb-aZ2+%e+a}rTLeOsZJ?NtxAy!JU@s)V|bF+zD z{g~<gyQ5Q!AYi*V+B>2>acmIgWj)+W4_?zvGEkSiYNhY;=Ql+bQ)D>KzjmwqXH9Ly zUIQfqm;;1fr8Szbodufw)g#p-VXJ%wV0j+gWDFsPBhR(K0fKR|#3+nR;zA8?=R#lR z1B4-79pBpx1e!2H*ZYObJ{fGh&7q_h4mt2+h$8hZuztHk+bUYR+g=#0^hKL$L8n4w zl?{LE|DEiu-Pt_(&ehre!k00h#l~V`N?On&HE_j71yG8`_s-rs?pMr?YF)xS^EhjY zR9ZO~x<-L-Te;5de|u5NpLOY@1JoyPd@P!(6>p`B2$wL_kc(M>`zmxX)h$%t`qK6} zAASjbDl}7*;pTk%sGg|Ab}eTS7AcjGEoClT_DQlT5GTj3aa+LbQxL!&1AEkY1wH(H zdfYN^Sq*QUg@V62zMGm}(ZubnAC-;r55sSjC(`rS5Ur?7$XT={miUvJmh_&=i0UX7 z8~IYa%dRlwqR8<68DpXL49A3w%^X@|rSkBeX#Qt-B$a=>$kvzbo*!o@A$YoHH*=$T zC@hF{J6VCRTGYiS4VDPjxjvVApg7X`D~k3^$2y<nI6G1!<56yM;zT8}0|j9eJ)4=? z-L>qXc|<R=@WnJ{neC^7yLYDw$pa%aTaNrF*BgYl%{WTKX>28eyOokN;a5uiVu)Y6 z-Vr?Q?ayV0nse_?P9+p&B?FQWXXte+V8}BlxB#B9-DprrX0{44Ku{Bfd(XH_!sm02 zQ$K^UU#@{vFW4)BnvE)J{#f61+sTa;pR?!pdZKW9VnAfscK})2?kr!oi`Z#y%H78c zB9e;{a)Xp_;FriGSXfKTr0#Nv#=5}0rjs2Htc<}liS##sciV)><UV{W=s7<kC2bKd z3}quBvcod*6Ijz^pR^)un;~c%&j4qXh-4}<7u-rMD@4*6Uje%>S?Au7$G2aT{9tty z<q@O1YfCq9iIBeJS47*ne#Il~!u8pp%8MmwdQ#dVM*3jB_N(?}X}M^H9K7U-Eio-& zsZB<Q*tR%1=I?vKE8UU2%}Q%4J>167!KHoBOCNK|Wjnub@U-`7@lDcYUPQbnfeDV4 zR~?u2_Mc*ysw?jD+iq%<-7|cTA)#VE)eMN=eeJzBcn1QE-Dz=VMV~C3bu2l4h=k75 zpJejJb>mn+HqP#B)u*A=dDrKcQtF&edc(rfEmY%_cf+I_)k>k_7ZX0C8{)Pg-^Pnu z3d=x-;Jd<<=lPXrqU6v^yUg#1qv#pOf3yo04y^2Y+Of=jHN|>!GlanzlhE$DCg5&i zlrIij{w%)Uo+hJ{9LsJ`6UUbCFcB>`$h?C#1PRIPQlYl{H`Vn!uU>9%&RFbg4>+HM z*+kl1T-xYz;Ko!>BhHB9XYcHL=pWsigh`f+2WAo2i720t*>@1A<UBSttB)KYVrq<R z9f+lafuhB#bWK%5BoC3WqqZinHqO9|Mt~n75tz8QA!B?d|5^$uM<rE2C*7ydX^M%U zl&?%qPr5+FqzIK*!PMA-kL=jg_}Xv`{4m^5Og{7BA&)3KpyGuJQ@t6vqQEEyU2Bjl zaKRi2AD$MvSw0*)t}+o?GKPn`vvt6<go5^>kI<z5meaB}N>tDc%i^#mc2(msrGu}u zuY3ZQ5jgS)<!FaHx=1f;xD(T8zHpF(JAHtxO}9k<i+uCWm;B&RA0gzj2sfsl2aQB@ z;mWwV9*aA?9Z}FU99&N7H2r)Cz}FbA9fgJ1h;3F+_iwB+vHYizZtS+&o2$>u6$O}T zEvv^jUn%vvpo~O=NPR7a4&%2-FCsrDqpZ0v-||<mL#wp2lQqulkJ+jpIy$(xx_9OA z=1VSq=JtV4^exK!Di9ML%x%me6KLL0=>|d%m~{djOh+Laq$fR{P^FtYQ2%}0rZ8|P zBM@S;CIBZl<8&igiZ=CAXKapJ4Oyh>MFJjxxpg?}NF)LiN`Fj`N=ok<rxK03C+9jI zhC7gOOO{VWlEPn)APqhRX+$f@b`ar7U5${&ud!wN8MaSNWy|*l_AtYkNwxMYQ3@t+ z6hkwN&eulmRJd-GYv+4%XWoi?G!t$Kc!oD+Qyo7TxWhFfQf13C2;Wp4kOaTTI{v-5 z9GOrL;>hE|KDI<Hm8#emoMWD^?b52k%TF<f6CDQ2d;M$T4HZkZ{+{n!e1dWsGK)Jc zA3{YpiSnE@q%<<Z&k^_>A~17%6QpY5L?nLZL`2e_{491denXz>T$MmFdhzO!-eCz} zSWo_OdWn37X_-$)uRyrgHu~^{!~3*&QBMHlZ#!v+hB1KIfUwq0EPm3kg%lN$w#9PD ztrp@=m5ozHw~xvjAy@<Hl^EKGS&@LG4qMwN%AVBk^fEW0pzP1~bi%g1dwsBC+OBr{ zrH`vd{L&hndHRtSyhgspYh=2nO4C||_U5q*s}MRp<ikQvC39mEGc}whWuI4ir=#ci zM+0CSrzP=O3Q@Htlt-2i%E4{d5EAm#X24Xqp-ma-VerYA*xA?|WOC^A8V~E$3TB%i zyN4h{4v^ZWHliWm8;B)az-!-?xD^MC)s~o|*yOy7Vvw^j>(*w;tm#59c<7c?TOQUJ zUoMI$43?!q?Db_@6m8ZrUtPS`#J}I@Sp<V>TJ*1iwdo<!oOriIo=G()*q>bGqjE-Q z6n@%OUi{{uQTBpLSg{g#yapZF14}*ow6eL;FG**;Z=oT8=1U`8k31sPWg>XV>tl5I zY3a-YkTbDvqvA{7;;AZ0iCoG5hb<8X<V-X(K=&HFT2v%e{zTLAw@k|!k}n&CDpTLC z%YLXkGv$CHAnrEG2x9Y=JOeukxX5LxZhv!5lhoUyFBId`7`To*(0He=5~v46W2tIF zEt5-pGR9%Kn#QHtWE@uM9?!BV_X?lI+>HDPj%8#y97C+oYT-nqJ@j|u#oC6?d*_8G z5Y$nPvhN?63huz%+N-Wlm)le5k*P=Xdm_51VlIa*85Kc@;j>{8mfQTeZogqTyD&x~ zKOe@?kSp=S+Hg@N<T4spv>N3hlH&00R)~ktgezOkV5erP)#0g@k^1qeLRASQ*bvMf zjxBn9Ogeg8bG9RlcyXwE&;cF=IXT2q-)vtoN3w3ZvbK?$w%5#XwUMz!m@#^!YN!vS zG|(zza#aW-<iP}#%<G`A_}*M49^uxVUo+Vg-S<A`h?CKnj0MHtg_D+{=%>i%!U<<} z^6V>^pObv}HuXE5_#43SE;LT;GAV#>u0!k5tFaoJkAuewV1UtzV<Y+(((m^$EoTvE zGJ<rGg-a4)vvPFVhH0WP)%h3->-bOkZ0jj0m%MJDFUcjS8w^VGX3U2|ND;=(UIk#B zXj+rXc|+W&JB;pL?}Wvc;yOM;nr<B{o|b~hhK7NMYY35-WX&fv)yQgu8;SD+kXHve zwepkq3FWW6@5Z_Hm@?0xKFr&z19O$%sfcPLo)8E%dTtEnUE;vt-(0p|7dIK{UNto2 z{U(g=rxC)%@nRV?5`^d7o_%zuO_>*n&aPZlI9Ai*ClZ(=B_}mJn`K^KRYyxu>N;YO z^S2n}1Qrh^?%RTTfexR8FnXh+qqV?q?qSRjckvoghh1VuLPoU663-*Fcws9L$UUX( zbhx387sK^d&Z`ER0cGm6P~PKk<el!C`4Z&}zGY4>sePN}KDe|xyIxRzG8c}Hf}MYh znS4UPZIY}1*wlH_2nZ_M#SyIY+$~8+tXnH@ePs$4LNNt)^3=R@qvlhy(kO(D!>Xti zS9I{52XUiWGOA^VRh?(hqB~TV_bu_Uc^Dy8xx;+tI$+KOpt@f%XiiY-j3kNM#k}kg zcKc`$CaHJXloWN(w0ION!G?jPlo4!?uIwyZtD2W~_GQNTJ-+<R)z~d29`omHlT}YU zk2geZF!P5Otk!(EEYMmYUb$itMjyvh0vUBX7c1D2J9~;CS@u1qNk3^(S7Ev9UHs_q zEFU*VAGrNQ;L6(s8plbe7cNL&L5istOJA-=A5ELk!b6e?!eB_&f>DmCJoUH{zVrw6 z21f8}GTXbYZgp&Iyu|qkl!(8ShS3Qs2KNM{4A39tvQ|=uqN5C299!bq4Ik1&DmNHH zfKFJ?=qLv?IY#jn>mf2!waSJ>#0;(RIaf0l&F@)|&kG=&w8&Ha5=*})89>8yUD^`{ z###e~<02JSfd-RqAZhN;7of7IBP@f%0g@Y~H=~KDd=cg=7i<N<85~o-GN(}t#JTUE zcl}BT-g|^pSS*=3MkFt1XO|A+R=QDiDp@eZU~#cV9!y@9i*z^QGtP~et~J|PxlV=I zxYzUn(_APf65`p+ZhJ?xqgm~)Q=D6o+b9ZUfwL3R3ec`diqyXVff~ZoEh(Y5t+vt1 z@rjV&(Y(x7b%n#09G>cB#Tfrx-871(I+Jw><nH^?>)Zacvae1fp%lL(MK!MH{uMyr zs=RU}h!zZFRWr>@KipwM4Qd|_F0dd^tgg@>rx%K~-IGThN_jq-8;S3{q&n^TD(iR> zfaK`5heqlgZf~1sGtX7>u_v9+FNogK%f4brlA~TT(pShL@|bECxGd9$G@x_tL^;@b z@Rj#2SXCi4Ce)0d4QYo{lQLvOs5k{qYNV(eDk8KbMDLo*KimAibWw}b^3FnhWN2dV zYj`cnM&ENd&*neX_LNuq{dxCQ(+$F>L}>gd!Gkwmru;<K6OJ^H!v|NVr;qa@>O9_6 z>_^*=x9v|-Sgp)GOkK2`S~L)NK_y0i0%cf0j@Y7guI6_uApGk$wr_bL^{@3*|7#&i zD+ZFe81Yh(x4~N-(uPD?YA#f|*&4?rOe|2o$g+?uxnpcO>36#pe=GqaszP^D8CGLC zrN`{`>MP3g_x$3T^glX-5S|NUl1Jj>qYK7iEcXDfxXC7mUm0w<%B#*z5B$v0*Cg@Q zvO>RMwd>izm$mBSg3iyiL|BMRn;kR`neff_*vDMCShKE@WqxOFGbhg{ye>ctc=Gy+ zoo`Y9MS=61V;BNV-0-rI!p`2!AC_Y3WHbF>VnbKP@qSOd6p9dabBgrFYj9mIxPPdT zTG3@>xjWSwA#T3vu_E*1WuNXHNP@&NJBkgXi^!7Xm30HGO_rIG^3C#7(^8Jd9A!N; zy8>&{YJ_*FUiemp=nr3q*ay>3ws9KSXCmn3SPfr)mwZz<t(~SS))Z8VRJ)f>)-r=l zW1GPlV;v;vJe}*`nvL5b_@ly>XS^5asUsBoS_>3zee<n;5YMXnbbP#i)ZEmps!)fd z59e<6a`EV56z2S1s9ze5u7iAu{a2%ivV$w^bBo@ymLXi3WqLaDRK8&ZeB?-W_+;<R zcc|?qmRKpFOgUoXY3s#I_T-H4E2XoNeut<cj|fsB=QMa|vt$rlu3|B8WXMW|IYCdi z^W(Oe7>=27KYY#t&D(iExI#|T^XKe*poGSB*kW8Geje!{a`kx)Z{cWLp&~%HY1~fW zQo(|Q05d|rws@IRE58IB>YLe~5a$RmEDuuy6GnrnQv&BnhLuo<y+MBAa4w=VsVRWN zhVk?e{+QYB%b(PmPYCI{_oz<!$Qu<EGi`O*zp(ZA(B8z-zT*tZW7$SW>iB&3d9OTW zCo-8Fb+->&K4_owD-Nd<XZGh_j`L(-$44pb0Q*MLP7NvnjW(&n{sV8QmUGUWAj`4S zwHV^a5~l}F5|7|0Aw}p@GwME|U1|O5P>P@SU^bC7rtr4g?p7kgrf>Bb=>^yzuJp#x zV<73BO03sB-jyi=)4*zf^z3*~q|F_D1Hyl1o~%&PTLhQbA5laF2lwXe$eXw<{^SLz z%%fSPj9ZT)N*gZoqQhiRo1iIMoPRCDD4%N_-1XB|EUyUncP82&ZQa%*qGc=PMuI+F z^f=ne4I7eUP1V9q&^gCZXXpj9e(Tw1<B%lGG~|Wk%pszPs;=}%l2(p9RtB3a2c5Zc zp}#C^NC2>N&5t-uHt9MXs(NiVv*!ShKXI_a!Vl;Qn|Ur`9{vZ=FYJTfFSPqW)c8ID zdMl~FjP@Bm^)T~t?Ii0AmYQ0oa@wD2-y1M=8g3i7?DqxE*dXEf#vS=4y%(WBBx!y4 zcPXnBw`oP9MP%)xL<|sC7{`b&a2-o!x(@xlwpcH>6UGjxuR?**CGNxYJk?P@N|{l* z(>#5nTy4T+iz6eX7Xb$F$GO(Vn{m~nsK!Ox<Mmh;QX11S$6Br{iNb?3M>zOm>vKoU ztl49dVXN0u3QH+Sq*X_?e;#yJ>&BMv?7fW$Sk;03oV02hjTubm#7Py*A%=`}=9|ih zn5(7aW2v+XHh=GaIqs$JgMSUke}&Ua3Gn=!fN#ZJZz%_HLvK3<LA}OMoJX~7Q0pi; zh{XSqyQh=j$Y_8Z^6l|8Vb{65=c2eFpK#H<+;zrLLKh@Q(`YTorH_h%So7?<^ceP3 znN`ot;V`pFK3^uCE_Ouqx5+{l&n>I;P8H=Iw`wQM<&1{yrq2aQNa!k!d|-0Z(y9hb zn24#*D0%q1nyoDa$Y%}GJDVknVfRYAha<_e2Co%&$@W=LK6ptBnyH9m0}_HZQN73a z&S1H~*CqnkZN-LKu$LWs@u{noVc~&|?CaLd9;U^ffpPL1ET>b_)h<2EQu$cj51nN7 z=U9uakeRtp>Dwhrz%gi!+S=<X&sBDqB-C-kwIveHFEOM65Y>(fhdQ*ge+eH{-krz> z;_vF^zlIOpmT&U3rc!z+h_?r!jS2ZYD69nAt|Y9GLYzKba%{|{{`yt1@66TQh<qm5 zxW1w#m=N}V^p)XYiA(_*hd=F<xF<PuYVNx5j2<y5;ulvUPCM)B|J$10^>e1T_4K~B z4ax!$s=LH~Lc3ZYXz??sNTg4JZ<Fymh4E!9<Fl+VFcCGupK;N9bHJBr2e`g6U<jBs z$Gp*Bdi*}4%~sUD(td#-d8*{C*!_I2=x4fASgoIvK$Y@qp*h{P4cFe?8|@yqyI50x zf_tp-D#5R?OQyFpXTt2TM)II-Y4mkw8`uYmsb^!HeW^76<~K}BDp}h4QgP3boMXA! zBVEhR%u-G`F~3L*Nf7cF`8-A-HK;(H>j%{OxRB#;O)+2{U62PBT2?ATl>}<cyQ`R` zm2@X&Rk-6G<IUFy{K^DUJ#pCmRwurEhMS0u`CBKSxs2503Y!QmcS54~BEhORwO=Zc zg=WP-pXeA+)isW#t$1<<4In^RBJ1}N27o<BV1yQJ{E0iIGFGCfiyBIG?~kB&m+@vE zG?8>Z%2SgVohz^aG&<z<aYy`y40k@F`8cv63!Z~x6fdeVbJ`xUzT<MWXkMQeyLP`r z-!dmGMv&%4zn|O;$^RRdPH7T1e#T_tt)oyjm{G?XG~E+8{uQ>7gGX!87J|*J*J1TV z%XWy%)57&f8<5A<PIW81%3A2<0}O>W+{!5XHDQi`eNZ;8FdLIF?OLJa8|;TdUJx>k zS==a3+BP<m`%zw3uNM+fMuIp(!vUbot_}%$pp71_5l|QW=gl|gMUv+)3WrS#wEXB) z^WdB0;=&J>KyVCqZAc{f+f3^uATHyaU0Gm{8=eNbb-&SQE70lZ<?-DiCfwpwuMBo! zpeMWMJR}?B`4z1^1mPcNt9%&v#Tr-zH@H+=kx&p>UsVSHh7xv0${pwB&Yy&sBA9R^ zSc&K<gGr>O+=O>1iKzA*c0x5thHNCLeA*?O<t1y=JYOEmq9uTVA1)3vVf%+?GAP4l z4)Qk@3!d?JG&Q9qnIv=`|3L}V0~JyHu19w)SlQ&ET_;YV*Th-r=t!N0eecz@H>}f} zVjXSV138Sinyj3Qe-)5fCfdC2norf2sb;<AZ6iGJSlH(Edl_DkKX`NQE-!J@Q&cyS zT}wynjNH$AqFk&l=2rHo2T}8xm@~V8!bT9vRfr0|Z)M`^2~lw?7VPOz`}xY@o-W|B z&pvSL%{m@AU!rN!?R&V$Lt5jinATn|=Vby>J9#VrU>!4vUWvEz=~B<HEL>o%V0vqI zhk5us>!t(@*)*%UQ_82949sdE$7ti8eUNV8uHgc$XSCIWTwP@X*LGzkU9D%Vxz|6N z{bO54-1Um)5!zGNtnJk4H@4@Nmn&@T%+;IqK<(3sRyIIR&DG-;i;C^xvsc-m3JiK7 zElSP_&79xGaI6(^O-;P^IdUIFCF<LW??UDNdNb(x#{o5L-HUgv6r9nlC@d;=i8I-5 z+~T{lbh6V&ay|(Fb%fu%^?d{`M*{s|C-orq_QeaYI+CHZBQ5Tz-EJur;eP{|Mr^A1 zLleR(k$?&5H#nJ_$Uu0Pn_9W>&MIO5HtKD5T42HIch)knK4cgv@(95dKJQ6L2CTp2 z^zgM|OPLq5pN{&(x+T1!sc|#r6tQ|e^vrNDe4d&3LZTkXGY!|@7coQ2>4d6&wgx=E zuKBA&AzH<>E4dWcdk2QDkd5uR!vGrIWj%73eOfUheGwWCd3hh#46lp}r!J-oxejgg z7o9_wVr_y9|8Sq1B8+HEZbS^H8-%Bt@lGV><j=_C#sqnWavq&YQpTyzM3^wgs<;=Z zwwQVtCi-I$j0}CYCV0E#B6)NkZounO6!d_dRpjjUaaH@+E$w6Yzwk%ZbY<7bka_Et z1UsMXx&;H^+_(|=<OZ}d<7aFFMj_bX?kKQ)7kz2Tr{ZEJPAwD&$^Kjz-feAsXVRFi z5)i08zmy%y9~}x*GRKBI?M#m7=f7uyx`iweygm}^@pplX^B3{_3cF+WBS@R{nj(po z8IoI$`~m&1C#<$nJfQy{<beDSazOpBC(Oyt*!n+?u$j?RO&51qAYialP#~cHeX6uB z6gEaNezJRv)W3EM<>YdubY_pOK*@BREd|L`wV%|J>nQpnjZdbdU;#@%J~L_98!WzH znpJ9S&%DzIZrLoIBq?ihc;JVuTdzvO7?>14y0LUJgamhfaS)cW`BUu0xam;(qL%X> zV&r)}=&WQk$+n|aNIJfaEiHdr?N{Pjr))Qgwl22@vEd=2uED>ly<hge>|6cp|8WKO zKcL>O+>SLTRm^cr=N_YErhz6>XobX2`;v;sBb}g^)u$26>0pV3eJN-Tn$n@40bgHV zT^Y8P{clw!3<QG&3PC*l&JRUH$78UrA5B-JUL5E2^Q_0VqC?|yYo0gifPKDZm}f*p z{^Sm3d98iB)9vMxPkvM4I~E7nTJZp|XY54;9{gxj`xs0AjejV`y>ech7+rJssNt0> z6tC4J=(5j425d5T|HgZt?t*)AX_{Wifd{4Ic(0!EK5c=VG)CVQIm}p%K@+9c54l0q z#J_6L9|vyyKdmpOo=uz`sRPZ1{LXA$ygvh}SiEo${>zWVxd56(C$+0T2uM{>z2bqK zAeWN66jIbs1-#KcDqN__^!cL3>5hB$DAX_Fui=to)Y8Hz&<Kmu^x=ddwOKEQ!M7W% zks|$Nv4!f$2d~4Fzc^w79pkG<&y1iu{3k!(KQmtiVN!<qF$EDd_A(XXSv@{5O{w0l zMJQX_)=L)F4&S}csHhJhNS(9v|L!@wn<##IrA~R`OvVMQQ4+T6$<}m^J>4h3pZfav zI`}v;>(V;*@?-&#otO}JeUWVe1oLb?A1K^4ZY0|W#!ggj4vqM8vT2>l-)`^LK2@Xf zR};m#ennOb-M&B0XV40^H;g%!OLkVorux^c#Y=)8V?J2Y`!KzJ7%{c+vJ52*C|^xT zRbK~44P^i!rA&<7wUKaSAm2w!Dnl%r?@)>4tP6Y3m1~acCdcS#$JxG(6uG&+nOcMg z1eIXsP?$fw9XjQewS9Nt;9+>vGyTY8%V=qUH_6<IG^FY2E=7eM5bFvFN5@OL>!mFG z^E{<Wk36vE`PA=OzZHk?f(8V`N)AGYAWci#g%ojy>>L?++Z)NoHhMWaaO<{OQ@2az zO8~J^$Xv%i@)Ij-maL97(3x&2mvk4-I>Bni1)|kz5ZNaS&Wi3~j&q9E1?Cs#x>zWt z@&oz^SRcD9vV7|0#l8(ot69&u(-jP@@>9w$3qE`QBo>y&69yIZ^$jSHN#nudxMvc6 zI4(PAP;I>Ccj%<*f#*UbSxdrGGnVaI1&ll=h+O@ex4-==Fz{>j6U7t%$q`xyBl=b? z4;0eyMO&CXOQAtbSKprP4P7txg2d<Hrh~MM@1>RvQ-V6fIVBf=X1DCw5ZjP^RfJid z+>umRV#Q7pqmNRrS3;^^?2Z<$20S*P^zz)k`*7#z$xU~y9bSIETctxf!a8z7D%V&B zc16Gg1wv*;=Mf(hYE}^oQHTV8a?0N*ElBj&rwZ@YwGh!dQRnKn1|5ef3A8@h?Za#l z)4qcxRr?G<sb?l;V(S8n=XD+PRcg`CFolt*XMGYukJ8c~L6nHiR!s2sGiMQn`@^*v zUjaN-kE1%dgnJ^L6_0)5yR0EPfLJL9EiScDoAPFJgEKb=O!g$y1Y(<ODD1bi1LvY= zpuKNWc1T|bwJD@V?{!&?=&6w+;M$L>Nl)^EE2bxeXm=;#zMwuy2wpQT=tf|Cm{8cu za`jT}OEiW%08(mFqclP9mNQ{BKFuM^$4?g>UfwK@xswOm>K6fP-SKg7|CD;wUpmP| zw+2!w4=FdLKKjpEj6mrx(4bSpGRb}R2m$n}Trf*k-~)-_@dT~VXBZ*QNp<gq+{|V0 z(T%k(aEJZ2k%MiiMZwarA}->fx0{>{-QkRbh(3Fuk+>z5xGycS`ckq9^zzT6HLXL{ ztwO{15s`x(wf>!SEsvE$iZiCuQ>k)bgvS!G;w6|YNuQa7K{@StTcVjFCwi(?)UX+$ zss~e8X=n#g{n+$zD&iD@_nz@X^t>=jNF2YFiq@Sm0wAyt1=z)|pMHtiMD1{9tAQrL zO2-LOA>OBi(j>V`bgUh1af+HiLwTsEv9%WUWu?3zdHnG+lmS_0As=NpSeM@@M`<IH z=ek-aS1z_a&vlJ7T9eN%=JjEoPv32m76YTbZ_ot)qftyPg4;)6<G|L<Z7l|kp3MMM zm}yZ4`UiBEU0}L=`la;zgk66P7Ax;ESp_~Ww@a<eKyD#*VHuun?5P(gD=IQWLKdNj zn>;fXrJ<_i8kIHqC@sND#E<tOpa~lve6hX(`{ZI`65YmuGA1{DNE$?LWV(EBSQ&<t zA^$*S&X@b^5H0x0qronRNcUj2^dA|dB%A_>C`asSwG?Q;wa?6!LFN57`D81%eVskk zn1~6{dA0>3z6dkJGyh_1DfgInNJ+7W)=>+g;!340kPWI9OJap#5Qkd!t4L(W!m8=) zg8P()xW!!q-LaI|nNP%YX%kyZiOONp`xuRML6pZLpvF3M+D9)8M&8GIh*E{&^13+x zWA?x)ZSD>>fK@NdD>W-bv7d1<bUpB5-L&J&g)YN^Mz?xeBbiu*9rd<D{*JBOGY`;R zGjyk=a(MbKX*?7UK<peIy>HM>+5Lv|9m1F7>)yGXMTE_k>Rv%}jqa#g|4k9ZSH^X_ z52cJ7y{N&81IZ8(Hiudl`+%L$4jnyFkP;fiA3*&+bEK6zcWhobOD<p~mo@(Poy2qV z)Joyf$IO4xmK^u2b4;w(v++0VWDER4TW(i7xOUg*JsAL%<vWprZzaPjo&7DTx#2iU zs`)6ec{{AJUA@5z`^I))OI#)pzv+0zuZ}{AqDval$m9gYfkjM5O+>FDcu4CDo8II1 z%(~A<{kpBTBLN=^e^W&CN<o`%VV9kS!`Cxb`8H=q(#Ihtn2Jb=?uFY=o22`VO{4n^ zS(s0u(iQB#`d=_rpd@vWn4}gE_&VNCjfz0zwj`jBk*hcaO|iA(;v}4#z^*0ODpv=K z^)Kv18N!N2yj@k(D52-8<Q3G9rHw!gt=M7Mp}w93UWK`@7d{&EGr-ckmS1`E5@gr* zN?%I|#1iM%vd&_(p9J5-wv7IRX9X>EdVN`UCDXa>fyWw|%GjhjdvHPJVqNn(w?-Ml zM)^}|Xwn`l)9p<FK=`TUP9k4iXo;D0x;8%-Z?m0wq{LIqZE?2!#qBzk)#lFa8k-G( zoy6nIF7>@63iI`#(*o3^_0><@_$!;UGF8u5@1)(+YiSk2G={$sWyX#+dk7Q?8}JSB z-*pf$@iQ)o0R;5z`7e6!|Ez;<X8$kf^@{K7A0!ap^HC$nae}@?Sx(jwUKRbImtNT6 z+amRH{`kIK#?LPu3}8nqyC10AnE3Hc1%?745>&3s`u&`I!`3v`=WWQyf(3Wxl587x zQ!|l2S$dOT(ID3lm?+gKEpk4hB-B7O{qj5*q=qx%tR`w1uhEj<_<r`nseOG_1$^Y5 zWZNvHwD<4~)$z(Fz)&A|=ha62$-D+p;a1R<*Q<!3lz9QAr;DjoOFe(7mRyAGe|`1G zS<ZW$@Kww{&g+7*_?ub|CLQg~{x4|(+ng;!@k5Z){Svemf-gU=JyvTy(Ri8ANP@y1 zPNx(s3fbZ1$qn+6{^&1w;q*94ijOt_OWa_rth}s0Z;zRoK#&Y*5Q8d?f$MmoXo-n) zn@H9Ute6&-nJNi>!~17uxC`*0MR{^zIq{vFfo7JH)Gz?$G43gLz`7!mjcAZdu~+Ml ze`n#OIJ=Utl(KE|zv!!U+JZnie32Az+;oW^m3XEK==jLgeM*lV1*FG8E7<MbiW`Um z>0gr0Ok5N**>RwtGP0;410Tt}WTA%_5bvRfW3k>3@Lc=6b}G50F}{*!w}kwDeq+I6 zr6s|94`84J+Ed=+B{5l10$&;ZoCB<o05}0@qPg8E)PFL#Sr0!gZ-_>`!9M>oP;2e| zTh7?wy8#_>YMN9osyFKjdHwM2?&sq8Ti$eA|5sio_92(4brNFfDKFogGbc%pg=A;n z#%|zcXfU~<eD7m_=w*vUVJlpOJ_J|z!eJmb`Ujigk0Pt+{#EEeKnP^D&%PQA9x!G> zM0nhAzdfbIwkRvYl9F5>c*H{<m-RldlTbyfl>Fz(&)Ylr=iyK7XOdP&%KlIAQf|h5 z0U5RT&V*$rLENs@!GYpX?e3T+zd-_--?qxEiE{=t>-cIEGevf6pYON94-Q^ji7_t4 z<gNr6%v-PF)Y}^M)_e-`0aujkaqH&%WQ9_cV#uB*0{(WLJ%7p3)rkn2G7D(NAh&;l zu8_u(3|m2#3bgYlW#_Q~Q>K`rD2-nR6SWrd+~=WOx}sBdg_11lQj8qXouXfD-jFHI z`z_Gp>j>n9amdV9qv__enJzi+sE$8QJyYs2-*HGf2eCRZKmMLttXLnjxM&2`e&=Z{ zz=gR`ig-1?p$>XmDQ6~bz!oPm!T83;wTVjAjDkY4FMckP(tK_flNw{0*q5b5KWosT z4L&H)6U2G)zFO`YK6Kin3Zge~DaD`S%D(hpI&zjO!7ff<gOm)@=ZfiXQJ_uBx0`%2 zR`4J%K*+A&7h9+M*TT+DcDKj(J32yU!)%kE4?=k|X9a-4I4{OQ$sK!GFo0GBG<|pG z&9ssJ(2l4L5yhMqG;g~F=E=0p%m8l&>-$8`x+>fqqAsWpo;X|nBJLUrMhX^A5tRG{ z;rokl-$N#9T>)#lM1iY;O|9AS^`HP++@8;y0XyNw%B3Ka7K?99#d)k$wVWD}oSlwM zwY6jvmPpW#Zx7RPZg9qaMpYGk?9-q)q0<q?Bwr6&3B0U^HNfzYw78n)ey2C4HH4Nr zQVRu6S8BaMB<q=(qxeM-6}^OgB<+am7t2q-{x;gKYf6wl))cV)S&`N#5GKp$@mK?@ ziO1*{w!a)XXcA$luBZWKtcoPH1xdMD1F@20-bCz!vs~7M6?IC8GtfE`(ypSYyVWG= zj$!a3ZsO4U+?+wF11Rk=tsONg1_fI-n5TE}yS+m&l5O&B-Iz*HXb3bzk(2{Q3Az_W zNZ>jqRlQP`@>J`LJ%L^rZ_)END1+2oWFRU&Ga4wu7}^W|!J$VoIERn8lmYv#O=F%` zju4b4yt~WL{o-~3Qu^2P$nMqIg@ypav56v4GvWZBpO*OUwa4@zD$HV7K3J5q(-VS1 zg>xQwqHhA|vM@~UdkBakY?1Jin}iqPInk3!e`W9$kBCmJcCqCp9QzI=U~gY;M`8ZZ zExo84(F$!~vD5|oFhyPz6+K=nm8UZay#Z7xMM8uu0yOP63dHsD{F1}lzaglw_DyEI z;qq)}4roRfp3M^!d|J!b)SaJQapdDmP&^KU3uGJ&f8{CUgvQ#><f@-yh8tx!@H+FB zF9dR#)}@HiR5Z#Um$W!@0nVr%MyPHlGFr)C#v06b(@7c$mjZ;o6~71LO(pu^aYIfo zrWRp7t{ZoI_p6T)hhSwnU2Cq!QsM^%oRkQ-FP#p#>Me=vdJ29co6s`z{#=9Kt&V5z zMY#9*v*o6g(xCXGZr01up@y7s<c~$Dx1|M}b?3xkoPTqV(x)~v5$(>*e^6yomyr%z z8q<oN5g5yCtk&<Wt_yG|QFeP_%F>0c-%?8Nh)SiuX|N7Bu81_dyf%Gr^|y!q^QjNP z*1;0%9MhgR(ouO6ASf6#Pukcuxdh-rJ?0&Uq~=tggC&Wvgxi#s_{se~Fz6_PhW!F4 zPksf0(bB2PaExGtjQipxQOgufE2sX`I~&;JBZfKpnmDkL6@vT*mAi@G(($NBj2O?0 zoDm{$u;8@OYe?9BB}s*j&Q~^{lhIR@hYVE_PDuQguDdmdW71Sr$tPZ=w#`t5A_G!r z%omRT;M(fLQFRXj=lP2>Qz>qOOYf2B#<8Tg*q6P@@orx7^K@Q`JVd^dK;guU8!-EG zC!VCu3*S^SGc|I-m9~FCxU(LjK=JSX+UGp}Tu<G*Bj=w6J-fTtYNTX4DF?OgZ*f~! ziIqeIFRv~aixaIyTQ2xcOJj@@ErkglR6G_&2g+}L8dYW{HD>9EKB%O5a8mn8RBZT3 zi@jSY->SAsSEG&ZomM8+cCHNLCYMbI6ECxKjERBX?1YaP?cy4fap`*Rkh57fB9EV% z<cYEznNG{*9mKQ*i{)l}hu)MZ9qemkqL6QUd`tLx%c@n9ia7otw;2!&UT8MFr^RQK zi<yEM#8IQy^_cVXx{{;U<N5Fm*R1b;GNNH_2N?lTAxt0=P$8kuQ$MLuA(GTP3qrnw zuvX|QNMl5!ya{l*F-#mm^QPZ{TScl2m(>vhYp~h}zx&uFr$8lhNk|rJV~tF3uvbd5 za_8n?)u4wAu$ns@Ek#vZ0lgncwlm!oOo$i{^elSq6w^r(MtdpxYuO-}JJT75p3B2% zjY5!?RIA<Zm%H7z<093z5M}jg_sbRD7M00#$?S&8iAhXe;`|YBpH8=?d`QFA5H+oW z9V&=KQ3HDWG%e+HH>B{n6B1p2w)tq`R+i0s<KA7uZWA#rDX|d)zxi5cmFXSehl|c- zHO5kVK-#l(5F}T3<&D=uOIE}_Bjhl=j3cXvrd18h=T(gN5K(5CP25*RFxQ)=A@gY( zj=C_UmB|jTX$6xVPw5Qm4;rs+>96Ymd8mD==y#0tyabVwFPYgs+|PFKc+j><=1bpJ zJxGffcv$QqyDf1J6EqP;%^R@^*|Zrekg5HNVg#`fN;)ts@7mYKZ3ia;Ur~tQqAYMF zUU5leCIi?-xqFB~By9v3>^+i5u}I%jn%Q!8@0kP6K8EeDcIPGIG2X}dbDWw5IHRK8 zh!Hohq0pEH{18JPxG#uzVteNEbFn}6;QZ`ywXlwKc8vZ!aTP2K27_ukLpe<&Ev{;> zM5n3(AnhG98(fSJG(imVSgn3N(xJTTCGxqIsG-Yxok@W6*T~LQ)evwsH;Ktvp9*Ih zk)o;N68~E4A5!h#;(hfas6DYlay`bt7t*4J9yk`7Io+J~0iR-#%yOwi_!A=Wv_Bu= z{7EaaE!1Iu`#Z-AE1Z+C@OTdfM<iI>WO*Rp;)t<ihyTthM%JfMg(Iypz2rkUgu1Dm z$Hkf7>L7$4tB0Gi-G}~fnPoBt;9-zf(KaWKX5LiFWnL@#A)#}RJhfqZndiv-$$xr1 zepnnVlp;CP8ghLc2-fCXb=?O1cPNAm%Br9;2M1fb9P8(@yG?8(Lw|Z8SY^9h)Ln!F zRcJ>)+S{9Lm)_&KlFRBS+$5$osE$@=l7)&6{DqI^9|r}UtS9O+q2p&4R=vHx)Ct2M z>uj$X78zX)twuVlne>Ajz84GXTI*2Por&4vFY&uD+6Bh^XcUwVuLW%h$CX&oH48?P zNZ?F7K?h2C4WY@qvLoVd;Xuyk3!mkFU45HdGpMb&=_MhK*5|e0nr+J%bb^i01C)t8 zzZt}{=2iglKG6OR-t1w1Yhyf0)tt6n1fJm{u1R12LFi}%R`LLj+FCvDTw}d$3Mi(I zf5bSpN!NTLLU*;8*1r^qzQ}j;Y~zdYgQo~r^md%cVXQ^<O@B;Q?dEFBi3XyMT)HwK z<9@qEG`6q`{}Q^KDG^oO>%+WtEJk_@JTI&V_ZqGnIK_04x*cIxomBiK(oOYO-sh^0 z3^t5xn^Po!q3%K@H#w4g>>;rhm=>c~R5XQMgR+exeLe1j1yjwv28%0$Rbo@Z{;}wH z*7h#Kkf7Ptz^!eu&#EvcV0;{mgMrP_6lE2q!h-^M<LoyC7r-L7DT+%S`vx)^Rar*x z%lOug(|~d0#PK%N&=}A}U4iVVP~sW;Cq!)KifhD3kxgKpn)3zZrIu?}r!<<}Y9gKM zh!0LqX-Yj}uC|fsU+eMKdSmfYRhh-1O-0~noO(%VW0sCm6TGJ6;)#5q`bLv-y^e>R zQ6+mO;uTn52%U0z{u-um>@JEwzV|PZwV9C*kB4Z;)=3Rs0869NP77AW5p*6q^cc^Y zll!5NLUdgqL2S=lstv&}bI&#i-kdq|ChVHp7b)-w^U(S<^J!c+2NTj3#k}4+SW4sd z*T7-kG7RNzO?w2s7P!F30beaa;G0ZuId<b;471q5qLMQmx9o-VZE;6`9$Vr)BZoUR zuPjVtI+rroHrknAtu1#;GLUJuA~q#0!|G2_>CKAJAECL1qrLEG%f2?PU<t6}zv*=2 zcw5I#4iy+w7_TQN+pvDd^eU?E6g=2IR~#Ff_7zqxGV^&%APjEyMVN-Uif&p()e3zm zAvh$`czJ~g@?H8=U+R93Dl?}Jxo6no+bfnqD0;cNaopoUdo0&SKly@#=sVvC<HP2i z+O@=6EQ^qVWnMF;vFygiv`e5*k_&^6U6DU!tKKe^DE6tA5;YT^daI+$j;REE5wO`a ziogRVKAEYEJ5-M0B6X>|HCMx*1dWpT*0)N3S#W%hpa=vLbaZ=(l|Z0sYz^i}?!TF) zbNvO$qCh7Uxsz0O9!7)zWn0Z%M<7#aJ5!xE^n%5GM<8#N0F!>A3txG`2@hj;OYY86 z>ui-a+SV0P#Mf=DWOiq<&TD5AJ3_qWjCdh6BG2|QZ^M;mjnw?o!=|$X*j$7NfX+|S z6yA9l*Fek}SeT4p;i^xF8}TO2N4xD#=o(IJYcGbU1Z;+Oauv)HD-0Yj7qnwUh?@Px z6>{*lV4?j6&@72ib%OO7Byn_J@i56Ho#UA=Dl>98zXsP}mNJC7rDRm`+Bdxz^fozU zzH@0K?!KcO52OD=z8Ce8n#8Bf6CZDKBH77v5-FH`f=1mLwyZg5jtaYnT6u&in!-$Y zh%-gpGC<n)Q0>+%=!`p3Oe9Iq1*IJ)TBpbVz1cmbG4wm7L#ZgdA-O<Vr~_)tTD)tQ zu9DJWu+O*h`O`M~3P&{yum5)VgDaDJp!g_cA2W<P`072_ItRB%_qQ`@1QU}JAsavK zt_8p!_Waj$f6noexD6n;-Cq3yCK|Q&N3>bqsN=LH_6;^p)i)_$O!aIo)sD?5@jfr~ z+0;Ii97MzJ=t(nI?NS%;NL}Hvb;7%7TRFokXfoEql=vi|YoMgLNh}G+tr;9S0~F$2 z9OZi1F$lp(qq<-Y1HbNFMIQvGm*~^|P{?<c&f1Nc>VMo+mVG<J3AN{z=>`~ym?SlQ zK#7>Xm2(;SE8KOhII`>lCcfweJ~S8MJC44nks+I4G}-C1e7$1iCs%OzlOMFFjWRIY zYud8WDkA42DqQkZtIor~i4ZbSGnv(Sg=#l|s4m$1KZJc#a3)+7WNh2EZ5tCO6X%O< z+xEn^ZQHh;iN9cCWB=NH+1=Wzt$QBs+j;7$Q>XiM-&_;cv)&i?Rj(`^#C#UNZ^f8R z-PvHzX3C-Oe><XI??Js#`4nh^H(V@7KY;#9&16oPs5di6l&8^_fb_~Y|L1%!WIXw6 z^5EOc8oq1|$*p#`3Fem4@_4Qa8?oQ)3gaq;C^4TF_D<_hLrOcs-&d$h=GReaUesTT zcfq3o0?R!$`=-|*3{UMMLrW`zTut}&2ol^SIl0|6=NgTe9Hf&UyVi-SSY~_jT3>v| zDgM7;dbNXhChZx)QAFD_0oJ>#lj#koX`j=Fe^|iXk-!9DR*=B$_YM6_IpyU81#T&Z z_3ueK+-Jh#U!6q7_MvZk>vZ2TYBm|v^baJ-vazi)+ZmG2*jm}Gif6y|XU=-#GjJ@+ zt>e9JAOy8opdAU0c@#Ub=aJ}!nM^Jk-u@`hgQ-jB%2H(2vb?8LtyT}e^4cG-wHBt; zL^JW?fGgxA1w3TC+B<KJWDQF+0!`K$I<cLL*sf2No3oXCydO(-<4R%cd^lftm-$cQ zZ-TK{?fMiE*Rgqs?^)gq%u9ysvy-1C5p#wQ41|hm^J-Fb-0xxklDE5C+@e-_isYSn zO?J?rTMoqs^St*`26&0=ec#?g4;fpFF<G55Q9jYKUD*SB2&u~3cRQYMP)3G;NY!FW z0ga(L0i+dnR*qtXSC894>S0=BU0Zyu-V}r|90&m=a&eOw`qTeKcd+~D&0g7gp7YmI z`S@{i=FZS*>@I<{ck}CcB8%Q2z4{n2W{3Effu)<^A66oQb(EibiNLlR`h+8;Yq#u2 zx4WerF@KklefOpswicy1P+c({OXuAUl@d^90=@vY+sFv`T^9h)J+CgY&luz>10SCE z($tj$UOH|$ripMH-J4;<`qtVP9YRGSb#UgTNL0q!)b0xi@N~4o1HuYRZLF4QhId}I z4x!VP%QgCHzYzPit9Q2xg;8!PlJFmTu04I*9L4@xx>JT}#{bf57-;E~UtK`s?Ug$? z$ScC#@CUDCSmc{i1v#6Qx}(kviw^EWbYZ^&Q?gMzgVKMBj6r-3@gsov!7nNA2O=kH zH&|KnDs9(n`>^#V_x3J~Xl}_u$FNp1nz(C2_NA3n2|P`sgq*Em#OOEX*%rDa?p=MD z^Q#fXIWg__j5*cU0pw?aIzKL(f*0ZDRYrymxAo1ffkyit*as1iTcGWH<K<l|>;11} zuwoylr#FDLgT>#0!Wa-Y<|dqeGfMFf&QWd;^Q4Q#{ArQpK%A_$MnRmtW(mN4qlCbS z!%{<R_CDz=#QoKNqkw=8Bl+o-&?=tu>xNZKvKvBXE5c&S^I7+5*7;pQf9mbHyl~ta zj)^VqDw#$-!gF#I;x#GOd@~apUPIiQMe5DwuDpi;`ex?@`sewB1st-EDO_`u0scL8 z_lm#mR~jPNI3K9bLq^Cz3v|$h1oeW=Z+ft1A&4@*pb&i+f=5!8WowgoUggz3U9|;U z?*jCO`Jk$2eOLk@#Fa}ym7gZq{{Q;*CI>#KRkmM!qw77?Yu*D^m~S6HP+)i~g-l4L z*J@onKLSAi&&4#vaBXD{3<wB3J_rcL|GAiUb2K$_HT&PKYyKZXg=;N4mtrZj?>Yc$ zc?$A`989Q4(q&3lt%PQ4dTs0Uo&wWZM+GQU6b|bO!p55agoDxx2-^8*-&MMN-JC3= zWro%J$whg06y!e2e!_GS#>|Us(_|-&OeQ61LPkCnBsxcGufZ3|;p{GRlEthaspSM1 zo)8DT4c)pG8i#PF?Tsn!ad5=18_l*R>|(6^<Q^|sw@pTt#p<>Uvp*$GUUO`vCKKGe zjK11e?t*Nj=y{wUzWoNbUk3HqjTtbqPK;6Q?@;Q6^jsut+GZHNEF{RbHhRx6pR``B ztZ_V@WhU!t36&`bPpPt0@L6HD%uE|tzwoTF_ukpwW+sBqX{R4aCS5(pbKM+pOl8K7 z5i<u@xh5<n%z-nC_yWcH0yf9N$DguFO=1pK);{5?FLQnMbu>#g1jYE{NzYZji1mbM zE9UK>DQ{U2S*1Zj-J@G`GvP-;r&{sXTE9)b)^?iB_e{+<^K5w6M(}joPIS^Zado%8 z7qTU<>&Mu`JI&`+nv9zkkU13ord5BJxr*aX(VvrV*98X$1P3|ezCjx{tNsx@V_?uK zS%KiRZ7DMQcdNXY$dlUZ6svoOV&EiQ{}kT4BRNfr89OCVM3Z0IXy6D44{o#-0nr9c zM<L8>j*Y^T`||%u-cpL@Bu|8(7v-i<RF%q0GOqot=E(rRbf8&?ybd|t`3sJzjij`E z#INi7=6byJ=i*dQtEM)FEIqyWj~4GKTuEwB=IvsdxDK=}PHC~+stRT%aT<5~zdE6n z2;HPTlxxAAegDTx#?|kDy}V65dO8IP@Y>S#+5nf2wIBaC^x!$~Jn6jA4T`K$_Gz~( zCj!Ve`Ccc1Y$zA*NP+php<Kez=ap=4dsF^8!9uK0S87q5I7Sb?yzWAL&qhLCdx=W! z+*ony_+j4MIP!?iXWP@w!;P%DGp1Zn#mwui#Tl2OH(voW5ETy~<l)TysYwTmjZo%n zFHfu;|838P(GhPm)l8vU_H3nH_YJ}~v_bK+t+5Ig-!hNufy4o1fe}x0C86TgWT>_x z%4VV2HtNIJOqA%G)j@3eAI|L9-i+B?&^x{LOuSyGGu(d-V{|8=B)DkCqj35UUn$Fx zu>0#Iy}BHhC|Qy~7DqHjxI%Crq(~@{w;8tCjk9s2_^#(V652E5q>@Q+@<7<4z3eg& zpr9BXifR&gjCfWO;_Lw#6oryAiL^}k&P;nK{Dzt`D6ovGQxP{cHU&*op%CeokNVdv zkId@SWBo+C4VF*=JjnWhY!rkSu8%cKy*s9HcRK_T*IPpc`_xFxo>-$1oD{huU<4!I z(hL>ZBFjijMdm)sV8dnNKA2$@a^xBSy0yaF4Y=gHt5`YjPO=!&vo%B=xePbTi5|E= zJq4a7g>rmo)03Q#hG(oA(LzkSU-Y?9XDFRVQ)T`IcN$7ZjMk~sZkgVZC1^25G+=%( z8jOfea6Rr_vzoCzvIXfsQo<cl6J=Fjw6z2Y#C$k{;Y#rH^+g#8*O`;NtwAv*Kz~Z~ zK3gQFUlX8Vi6?~q`sT6e9xB$D`Qx_h#J1B)2Gg>8snHsAP>hlSivR*k=uA3AV4Wko z2Q|Ph+s0Qc-<^JL>A0?XXJ8kn^}dys1+6=q0cWjle;-l+1{!1_#KGfyr;=j3&cnfS z(c%D2dCozf=Qh7L266NxvwUne{-|^Nn0&s$si6T~Y%@O6y(>~hYx7I80#}+)vDHl6 z#r6xTq;)-ox8<x0iVn9Ms*1idbp`6p-08Ge)^$rVA~fjH0Cg;kqk+^eM))E%jb-&C z5L`t@TxWuxaUAp-W!YAshx!ZLgG;#eqx<V{tFse?`7Mx+3Yo8I87($^wIDw0Dl^PX zG=xsN;JC03Cb8p}8cpmdUopN^N0q(^t8E1cc#g>ZHIBa~Ie1N_UkrKSU1pO4j%%Ye zH)gf;`60g_Si}hmHB~RF;6N+!SM@(YsQcJta^PFs@h@96ZBYUOZ&FtGxEdFZfL=o8 zpH|yP&)QuO`oTS^Q+r-H2#)!MHnK~3bbZSqyqm?t$VKy$y2|e4a@#L79}lp&_>8ti zIooc>Ljdj4ljv;Kp-XuXEQlCRCm(eIU4#IALlg7LT~`ZX6z4F;l=7vhe(R%$raURn zqk(2S@O0qOg|g-{jhV)z{7c6it~cXT;o{#M?bbBY?#J-BEMAT(@`|}2?hUtV_%IR= zlIf?}IGh5;)yMj6knFY=NSM+|9U7L??^KCf*$$!Erytbc>hQHB!EYe0=D~Y-6f<fd zvWlQ_%60K3;niiq_S={Nc<So15qow|cm3;bpo}^MckoL8oz1k!EjHk>gu+rI85Hg0 z-_pq*vhwxa^M4LF67!e&EBgSJTlV&~J5C4goRoGyWzaQR6OV01OjXQ0KnMk>9783m z(~p>Z1UMOA=c$HcJ4|0CY^R$hxQ~a+UwRP(OidrrF90$llEe=0PwY>1zy}cv8XHV` zp4E^>1q@S+MF0HI?8sQLRf{KPCjYqFZ@{KYu+oRL`FBo`l}K>pG^ol?OLYI@CBa5O z5qo_q{l5YEmvFp2kZjrCVqJm8MKcZPqXXo=zk}1YUCDr}3(8M9Hs27OS$0)W@@dgm zvR_s*-&Q2Ze=snwkj*==4Sz7-Jd%zgR?p1G>ZnpNYF?9+K-15XFG{m8DK>v>)&hFX zHB??rR%`q`-um_H`zXASp)-->vya0yW_HYOfX!Ov491>S4&#ZtPdQ7!$ibg_Um}2- z*9@)T3m%#ZGg@IpLEWO@(K|6}tTFCrzgVonSBzYRJw)QHWN*B6dqKi6U`QuKJ2C%N zxLNAo+}O;o>D8^-pc~+}@jWwaH5;$DtqUw>g=Glv-s<%O`g-+~kTr?Z(`!kJ+HX<3 zfd`J7AVM78{r}gb6a3%WY}5?|q%{)s|5jwWxmwx&{}h=!{8k=2QqKEt^jqZ11IpqE z$hj#}I$30lTWFQis*SC~sIj2l;Ve$Dh=~N+-pnt4SAULAgt*E*T&_;NWx2+o1-|Ol zHMr+83v=9(kOz}tTs_>}+%*1sZu6-gU6qmD;@s!=2eFdL#}o)ybu9d@JBB@jOQtQp zHbzDm5kl;<Dp@70+zO}fDmc^(h<YH$WoJ|ZZ32xA1$g0U2i$d-l-v!W*IizlZ309* zzx7f;BN(St6K`WiTp}bD*rGfaZ?s^Q^zzTlZglG`N}?_?Nd)3USeRp%1{8-HYzg~a zi$Av+2OQxz8|EP##r%9omvYj5>3Jvnhhfa~LPzz6iUN**N5%`#<Aycnryqf3!d$E6 zVNf1o=3lTxi)Y7xMP*>*!@d;%(M?JjNt=yG^UKoId(9h6&Tui=J`zGsB7dF32avgx zDkJhglG9I8Rxz`9n&!UUp5GNy|7P&qsr+5+D2W#0zfyIb%!d<a|CfY4Pzi0HJ&2Cm zsWW3=tn@POnS#x39x_qq>!K4g;j%)^2r6yf#tn6D+*bt}gPN$H1yEw73Z2%(dYut6 zmsyYj+K$eR02GnkVJPQ9GR>c>QVOX|<9HS!p|Z5YnYSj%I^!}7g6;@sg7m^q3M_Mw zGN3aT9sQJqQ+41{FzF2xrp^s>uLDeot7z6!J9)D526Hm<qlKDsKIuBX!eC8oU^Y<5 zLJftcCWdm=DE9V>=GHZ=1%X*L4u91qAZddZgSdk~hhE`!Pp`$|k3AuQM@vGi$vF() z<HdP0;HdEa8b`pCw{`8lWkj%oiDM!1&?i;(e|Vna412y9Bp;mHJuV?gge0vg2s}Yx zRn;OjA3$%wpNZye&DRP#a)N%v7%!083%w0eF&q*KqKt-djVr5m%lPd0?XNw0=B985 zLhO;^p~=BvszzCQ#VH=CAu=3I*09hu5=+)O6tAd<Qk+wD?L_}fg#d8^#Zt<`dwADL z{|ZJ1*?b(>7i%P2cxWyd&io&3ZoSG`izp-cH-mb|Ss707nHRNO5Ync(hc|q+){f=c z>2>KzpxS3w%jliDy4qudoLh!@W3(3kG|t9D%eSqu%ebax6M9DovD=2edR_Ck=I_mT z{09}!#a?%Ge*4_OSTEgVV42+(S3=TBE&6{<NV88zzwhPR)An>Vp|hul!Q=1P>|DyX zx)*WJM<sm@1wzA=vn?#Vup7uVy<W?;ccQ}1U2ULTXggl0E%eehnfapv;W7Oy{9d4s zDdf=#o=fP_AX|+Z5z5dd$SYpx<D=upz|N<k&%g5q)AK^kCgYd>(HRAj{D7GV;!fF@ z_xG;GHscz7i+AaBWWE^}rOsoI>@S=NBx+ciIGbNc8m^s{6I<Kd#J2xzh5TG0)We47 zMc&*{exCQB6Wo!Bvl3oj;)$|+vJ=|>0Q*Yb#pz{gJ%joBha;T6zc!+;(LXn0jn|Vo zS8k2)Fs|NNo+|9w3Cqa_>%|R;Um^s?hJ+-*fiBDf^i{-;y8g&mSU?I|se6zNo)Ak; zAWitGf8$Wge9gg3YK8PBwngLnv*^XGU2Y|;$YXH*yehXcdg88HA|^GkmgR%g4~91` z!-RCiYGOXHjI=-Z3SJirYUC^7`B`|6y<M1hYma|tcYpXzhP>ttRT~?igY~0B0T6#n z8ZqD}2V>wryPhb{TI76cI=0DZ&wnUXT8SIKccTKN`RXrlka>rx(B0dA(+<9sC#5aB zQ9CrwMGD6IxT}CfSV&gm7+rP-Pyv4LH3*em)FiA&8!USBMmdZ9RzIKZ)Hop2$DfQ^ zH2r*f#6rCZnb@*K0G}gl@G<SF1rbY4Z}7*3GR1L(X&Gi6m2n3%6nZ@ko2_Nk$~avc zo(0DU23O!?aMz#qXZxtUDsLv9_b2<vys~J{pY|8}2)n{=22A<$exzP$HUp;n{`j$f z{C>W^T5sN;@PC-)Zrb;LsJ&`$-k<d6{^;f2pZ6F32)ROT7M}X%`A~eO-pn@-Nc-}7 z#@+;&15Ed4`_jKOp4T_`O#`z1gg-=|JvR3(eiFY-o|PQ>GQS?O9V~v5zHFX{ulDyo zNj_e#gqwb9ECCO+#wNo;jXNUiTo<5ukFB$I3mj#3cEio^^C7){Z_1Z_wtms`&D83Y z5LKr=g;~fn#6l~}e?w<ZZ#!;7MQMnw5zTC(=P9xRV?b2|Hw3o0Jf4w>9Edd30~U>9 z{xy$Ubapff)T9+ITBS)Y)xee+lF(GFAmD3-tNqVnZ&YS(>*#KL_3Zi=>piqk5z&OK zVCLnu2&hZzj`8>Cn!zGoYf!i0#zM|M&pKG$>O5F5WQdou!inh%dR$XZZ5?|Ak><^- z|L<@DmB~&obKhILebeqg^fioj^@t)ZD{DUtp0c}Gyd0qDmqRbs8Q9s)2XT@J4Bpn} zyTsG@tR0&c3(!te99hKOtNWzhh$cH;kn}TLV4hRmO)S&hiBzgl616t+YvgfkXO9SN z?z~%m1a-Fl7=A1WY(U{1tzDYvFUM7*&;ZBhR@>gIFTT#UK&%rGxA;L8?&z;Oc2)UP zVZ;<Rx`M=&o%H%7ty*=6Z%b?~cmo?nuAv2Fk3?8t@-|U=Bp36fAI}XMP@lgJUiecq zf(-c!_Sh(mV!hZxK%jgOH#AA(ImQlhD9?8IFr^f6dXqg>?O{>i<$!E0W}eP1ex4<` z&fAsbCALS{IF(Iy-a&qOV)cT8TiSi4vQQ%<Al9lq0tthw85v%zi<v+aM)wUG8r&%w zty3H+Hu(l*<d+xAx)sz<40*A@e*;x;evt!$8zlosv~XdL5k%#g({`F5BQp0MDeG%S z1lGfhs}eXCY;Byoh8ROgs(^nDn4?;jv*>(Rgc&QH_%-!bC#LYC&p0eeWn^ZSa|b7w zSYUh`9QZVV5(!o*mKa28*idvfODISg^fqXaIn?nl4v0}1U&v)%h&Wr*P9jAx4Qgar znrf&z{1*q%Vp{@m0Ff?A!N4;;VxZW@>Tjn(e-s#HS|Ld>TE&8OhI7c)#?L~N#>KG} z)5O~FVOf>?O-*VgID1;Vd47KTSij5R%Bjra%C@%<C#BoC&SUPVJZ{Hiq2S>jwMK=4 z)u2wu|7bKlslU>z4Mc9aI@TB@n^$xqnxaOr1a)lPbRZFkU^h@649rSHJq8(a{x!JR zgmUJ1ia_ZG333$ELS5Mz#{CRnOMI>&?_w8PM^%j~Ami$3ZB+FhUwdVp1!)b+5^^qL z3!#!E<&RXx!K%Fdl3peK?L!Z0sdZ12S6QzQ<bj*6Gr8z=vc<2s3&;{?#?_=qzHh6u z+-j+$C85cRJQ-R~`dJM&x>a4Lau%#!+%d5xe`I%ziPMbX=kSn}0h3c7IF`376K=;L zmqpUFLZY!Lb*;LCqM%=(4kluM28DBuxr|dZq!4?!20w#92dFv*t&A`qq%&W?#Kkyw z*_$L}6-CSQViBfBn+W!OHCZK5j6~axwdA6iip!*6?_hgo82oyn@k3gXx+^iT2p3^^ zXw)*xQYjjV482n)cc}PJl9BkEd-e=)ZllwR1Ga+VO_yPQe_sb6dOsEn7dZC5f_UY` zgCXq8U7-uE<-OFNq-Re9xYMCE_g5_ofa=9Kk6M3wr(A1)S|wQ*Hpqet%LYL*3dD;_ z(ppf8${B~kt04`&6+OBos`OYC=LdK%dE|Tw_0ome*cWmV9Le<#pd4y6lSlZz?Ak9? zL!u6R)wx_u4<c_Ib><feJ4L6mbF1}4&@jMaEfYcQ^g=+`<CGhXSB?>lhXjB83*yKB z8-P@Yn&Y+Z9Zp>W-5^|sM23fRV9*cXm-bbXNSbVs`0$3gH`FmfWSNRHS-}hCk)Vej zYh@Z?abX}JVY_nr7{yifw->fXobWTHnB+KJTc1TBbq&L8S=bg7)-Y}<=X4Bk$)I<s z{A<@bQ;VmTN8AI<loyw?6vnARnp3rK5I58RE(!rK>P2-`G*3!Cf^d`prA=}aEc8ds z3y6;d;@x9HOp?m$YR9}6G#MoHpnj<a=$Jcly(OCFwDjf!3>pBd%dyW=cKLQ}XX*<$ zm_9W6hR!;erMrU)XC8HZ7@S<i1i@jmA_QhK46-1OSD~=dT|Gw8yd~+mU-eP{S$i%U zBZ>AkSX&q2XpzvpZm8oKrw7+r!WWPPaag8<rnk8BaHZL-)nb(|!dU(tEIiP*L>oIs zb+x1aB^W^?uGpYNBy21voT1(tE}prxSA|>gpX-FPC)q9L6XQfVKOn$G{jpu5bnlv$ zw-6M;5tKgC>V&ZihbQC*a4)z<;y9}9$H|LsVLg<01Q9?H)j!*=2><k>$b-U*!5VHr zdJ&*wuq0mI5cCtBloa_cawGza(7rE6ICD7SO1SIBhky*6$_btsPBba&rZ&VC>-3Q- zrxf?!DH-aUB<ws8^&l=79OXk`Ed)az8(7??jZcp7jIM%$9MyB1bt4&}pU6~bxE_Sz z`%3k|t!nAF3w5rRfiY~+x)c^((+Md(IxONLssg(wC{kv!rT?2cNSCd^cV&t;6naa0 zqS}3ysK2D_tCE;e1<RpKI7<5icTe+l#%NrKYAG}Gg2`Tnw*;iqP_4dDbAL3W9=t<A zD{@m<{s)LuRrv>`^95-4^%@x>0G!(2zv4`sT46z2d!=@lstu}t2uhZ`SC?5HI!ao% z<zM7~1ws|Q3&Gq7)hPLXF~>SHq}?#4Xyxx{Bz0IY?AFh8`1H^X2I5*$$mL<NS<w%+ z!wYJb!7Bs`pZuYV!6Vn(#~C-myU4-=(0_mjf}(2Vz^KFO+lay-eAlV$F6p#pC?ujt z2Dq7cxhczwmjzJ}wn9;nDYsfNCKB15KK#Khx;L!vA=3c<Q@P6PY=9?yD(=Q)y}24s z`!y2mk2QmeF`$hQJlr_$GM=i75-nmB1EeaegujWSV;>~j<d+ldWdfF;vjK6i;AZZH zqGfx6!z5=hY&;@`SRGjSI#W=r?_8|@PHQl`dd0{qmM0;3%zFkdm%<x4-vk}25hX{h z2nFS`K6Om@s<ze|*kFV+KKs{mw*19v_Njfb-|sT%wPh{mMgXKG?j$71B0s{n2fHTQ zf;FTO@6x{P{pvXn8e=(=MCJ&sDkT#xI3_LiN;S~pFyTh1@eB^H$SIvER=@YhGB1>J zC8|Wc!>0*z$nG;3`cEf%IBlJkP$8-1mgL~2ocN!2TGaU1OO^fze2w*DCyyVI4O{NB zj%v$`5dBGlqE4>FxFvB+%>m*wkuLX|2&pL4LLj%IaTyvp5DAAWXA<cswST9p4D@vK zZXkGR_RPqaP7)UK0NL<nAU~UMq_4+bub!B%0&+3CvuX<y#bl&YO|!(h`Z_H5vemB8 znsisaDvCQ5tV^<DJ@*@n3uB8K47;r$!>QmG^_4dP{5*U~5mp^|4U#b}8S6}|T^J}$ z>$H)@dJpnJplFo-ls)Vi`nDw=zeF0f?aOQDnHYl`)yA&TOqVL5RR>WoLhI&g>k)|L ze2Y6KgrFK9L_0*;2h%6<*loEFF(U8hIMRy3)`9j{gBtd?bQOGB@%MvINU0CIH^3-j zAX~;5w3yWVVC5#by<je`4%(RtO`!i$TT;1s)NCGZ8v#S1<cvzjDL30_1YA(~>HOen zXJF*mX;naJfxra5@*yKubu&!SQ^3PF$rIhnHayCaPYJa1=rCFt+Owdy!+VtS9HCA3 zT87t+M6YbcPRq;W;@aAR^X;5)L71rVFm#XbKrWb?ANI<oLw+tag@brEHAwKB1VL<A zmR$<hc)>cdeUao8R?{sxMyzsV=wk!vP{k&?P60e4>(X8|M^1$zO^T(72^oy<o{R+M zAa>a(J(h@>*LK8CT1a;$ikbWV5WwZ2*Z@>*<7qxJt<v}{zK~Xcbsnifp_oAhg^B`1 zNe>;`;NIWg-4^itt&~XPSN)8))T+`1kyb#cyBYaAKa2D~O0#h*Wxkz2lnq%aHSuzG zc!Hp(YFObz<+eXwk8<>B*Kf<k?f%gdKjD`b!TK?XS;)=w@|W5>TiadJl2Q4eObyz{ z9+`2;bDV|q>F#No<0(=oS%kR13vL9;$^s&E?DuKZN>Z!l&02#gRavK4i8}ul>CFXW zW_mb!eR_ttLYy&Kw4_KX(6>^N7MDvKo}D!#s3!#K-1^n6HQ+4d?b9Buds9S*0X!S$ zI)5d`9e$yt&B=2$gyjBb(rjZ_+YuR)=;bQe_lt<1JqlE;z?kzCljRTD@t9m^gU>2J z1Ls)tPJQl|0oKSdQsWf|d$JZ`Mf9@pXc_@2X~pJi5ny@XEOu!yBhBOLUN45;FrmJ! z46++Z1E3O~M<zjTb*8HHUyy7JxVc=mLN&+1(tBLh%NtA4--ePCST9t)py?26;EmTI zufY?O;s#}wI09?p&`>T-o)HaLHN_yhtYneEbwv0sG)@sECZXWys($C1a&z<jy}+9$ z%x92YLoqZPP;-nvSrj`6q~d;+Kbl>QNh46`8Be_t4Uc2>g;NSTA)X*>*US*wn$xqQ z!QJH)hb}EOraii~bT-IgCi0g9D!S6qW=6=kUS3=j<NOfB)lz&ycYWH;UUr01cj$?C z&~ffdJZJANvG4c$E`PqzKRwbtqv}IAK8mGmX;Xl8VAA@_X>(VwsD@Fx0EM3n|A;fK z+%{vCs7Zj?8y6)G*RkdYU8pzEJG@`Tc3*SL?6E5dw6HSB3*#*sJ7Wl9vO<k;Kl-r? zj@&jA7IBrXDrY+XfVI;+E33;}SKfUc>JKp`?}GGFGYhi1R2C-+!iS$Q!xzAYI<}J^ zX#>Se3CTLsZn$g@liJXB;IByH<=q-37`+s|8s2mn7v(#i-B)XzDEJ9Rd?$^e)RlES z4DttzJ4-rpo^fd5Y7blVk!t*zP8r9qHSSry|3WR7&B?_{VOj*}mV!jRNXfW;W+R=} zS{Wn*)lI0!EIDHpB3<}rYV>Xjlhv%(MoYPe&gTM)m@7#c#(k$*l(Uh8T`0KJ4IAQl z$jRw4YeeTYCAaOXhxfqP6X3cm)HGtvBuMKNI~y>kb918a*AZNWMCVX<6}4fsh?yB# zXIWZ;IMTzcK#CXs?e(@V^7*^@`u=!Y-BtxK#13}bh4zC5zzLM{9YS@5_mQ|dzJ&r? z@C`Xx9Ca$$;adEnCFQ8^y_<yP-E8k)l#~XH9Z}rAi|ft0ST(<KuGBuiHpa?RiCuyq z(=vsL6XQsIlPrE{zo#H<p$>k9xX=$gC3Lr9Bqu9QnIQ+!4jMPS>&TiYMf^Oefy9la zL(?oo)&y(LVz_p{jX~((!7s2PA2WZVxI{26CeUs!CH0^_0j_&D-M3}XXkPaKL2cWR zOJx<KOzE|Bo3*n|Q(HPQ)p|);&=jI*STGA9G%8FVeY3;9lQ|zk0Sm%hjiz9@uz^Xt zZvQfQEmriYGUZK=v2by5V{EII*cxgt(-#=T)$Eo*-uw=t@k~V!YGMm7yk^p2Qs|z_ zZIw>wT?7fnNwR)zTCXo><wgT#5TS)fIu}lkSE*O5sg$cFdRl%5GlwB37B5gYqQ#u^ z4RlJ<qUD9lkzmHJ5JR*0IGM^3s}HuI_^BewkJr`mmpHHI$PJu@;d~T6Fhx5!PD{Wy zO!)HX{Cf5Nq45kWEnw-Oe5%6iS^i~6okAQ7ue(1cSe5T$lCBVUcyYLPNN4m!&OT|y z^j)ZrK|XzX+-t+{;0R?g;1eo0cvpDz-EjR>hWk9vnPI&4PQkSIHUATpX}4)+a}1OU zREWRiGf;W#LF>s%VWp$1&*U>e#%DK8?Fk!vAIhGl24L(%JSH9<r({?C-m5fpKcpF3 zN2Mv^sWJ1SQiE-Lv*02QoGJ$~dFzy!HR_fJvZkS(?v!)pP=@gH-F@xkxx>sVbz6RP zW+3D<?F|tqb$^Qqn@(@J-jx%l12A4Bb>HfHZo$;!NNThw_mnNvk`i8C57f(1E7BIV zT_v|mH;@^=)vh76fi&$<p1HyL$dHpoYACzJM5V$<G?jv5p`tR(oYxXWMW3M#{ob^> zB5WB77g_2wFkcEuq<rS^A~(o!4*@^EZ^vh42LshnD?9+snQ-icj<EHhc)NLJ=9KBy zzo0{i4`$Jt!7;N-lyq8n{6NxcU=e9jQ-L{s_4BgTlsQZ%S+B|qPAyuZ){<9y2aHXR z2PCv48;G-5^^C6X8(P{*!gP#MfZlthR$BOP|6IEey<I8D)lRYG{VExCsZ=I~CQ#`M znr!yW7Zt%W*(kJFc!V}q#x}<gp&wcA(1roURQE!ER$_>7&x1VrE2BDycs9j?af>M^ z!!OJBG(sst9r+7>i*`<RU-__YZ(+j^j~oe%LYxD&kY<nHX=!PeW(w4BVkXn`3*g`g zrA)4lK!IV@@$8jVMgj;yWTP&Vf8-2o1HjD7odeuL5ft1xoBo_ZBk{kU$hE{n4cE4> zRtqmi8=S`-*<%%!`&ih@ytHP`iT`#9o(sOF)Ii0#C5M-WMlg2a&i|N1p~{^eT{wn5 z(kZeD!NZe-aL#uQOl-~lZFoJ`_p!fL2LiUf%hT*Zijh5xJ8-+RMs8_y>u>C@f#30A zYnWA#;X{-yVr@vR8js9&eD{cie@V5J!b?nzRej*2)X%-MRvhPvy?b@<gNKuZ9!ErQ zE~7Z%@<n}2ylKm?3CYpJK7#g;dO@d1p$8Gv5}oo!Xz>bExc`oX7Ec7CWp{NuBFdh7 zMJg(ssTeo>mXTlhGh7S-S#vAeMN}ltsGuBshDed^EuqiG>zqwFL`_3@0UDK>glwy6 zAUbtfq4$yq@fqitR5<4&#QfR)Omk|hzmXv_N5f1B>7d}ZC|Jj1oD~eF8OVh-u|GxQ zwC`B&y$LIX^tdbqeE9_h?$2AFQ$C-bCimq`{G>_DSbHlh5Txbp^e4J~WnTKRI%;yB zRHal9urzM6IPvgK1@S1yV&%0{$o8May{g>g-_*YzK|w*ji-tP6r2>;WU*<4SIery{ zox=TY;G>~y2<R^MT}3%v$@f1g)>IZakouCxjTMyBdT*=9veT<K=?ew-6dSsN*fCmI zhzqL^TsS+;E#X$c>6dDl6LyJFHy#?-vQQRPgVNXY<nx`6>w%N|`)`(q*52l?PLv5Q zZ2ZAFO=g>w!Koq<t&l;+US(Pi?)C&Fe&`73Z4b6%;*5m-tzukn8-+w`BL%-Kj{rpJ zJK#BVMX*MIR*v3(owT&$fQzme*^126R5~N$5>D}{zVY<-kWXW_^e4?G-yjp;OVQkX zPw-5cS*gy>P3=~7@khhU!?VM^a~FG)txnU`dBajq6l<Tex_Ta~C(!o0TX)a>bM6W4 z?NhI%j%h$I)s7-%MmvsvJCU;*8Y=AFi-zGGr7ch>+Nbb7CzsCIcOz;Uep`dcqJnVN z(wwb}xJ7}n(&0H;rmDH2Oz|1I)T$=Elqa>0uhaGYZ3L1;a$2Tik{JGI2iw4-lpAPa z{^W%hnfR&r-PcqUrYZG$2n<2ZR(KdCkkDr2Q1lzk0TMCdNR^x<4pd&Km3y!}5yrdx zTxqLpif}JziV8$Xm{yI%LKY}W%@KVq5KH|6!#R@2@R1uR73Q30zb?t6!tl>#a1H9^ z8b&7J1?4((E34?Uw4hP_2t>ROwWmJBZna9HqC7eOVcJTCwg%h-<t{n?d<DZ8X_GFt ziXI!oZxdhfx`ylNz}di32|S?@SfhVO6gWx73OB*XTt+jo1VXGns7=b~BDlQHI3ebR zP;LAZPLsr`Pt6VGM1mRQE-TSxi-hEw5mWr6+ml|${S1+@n^xJ8KeGY~i36Y)lz+#t zQC2=GZY9=*`1jP_$**#1<B)?&rk$|{zer%5uzSbvjIYsT2Oi>UQEkkN3dTG3o+G)% z4Q`@BbmDJ=rbj^}&^7C1>Dxs!{Z{h4Q#hRB)PfU}M7Qx~<!DkVN(~*$(TUS5JFRs~ z=(ibC>_JtVaRO9J7_p}C7-%!gEu^9dqN9d}L*m<yx3pY3@nS-UJPtUk$5T=htXO+S z>x}lAlF2RU3DIAuy_NqK-OXcJ<66B(aYrny*}3DRxi&BK3&o_omF%yV3=+638z|X- z{QXms!HlnEH722{SIi^yT*LPUA0sOLdP6#fn{T+b!VmxQ7f0|f;mBsTC*JI(wBnh) zR0)GZ-eZpcf;7J>8UUlJWuk-TR`*T;W6YpG%@YWQBtD-WuX;=V;~%E8vLS8+r(6sX zR?-l4TURQ2@PYXjB9odQrF(snC^CpD2ot^>%DB~9$dm_=&|2b(uC&+o(RwR2Y<-2* z(+E<vz7bdM6U%mF`m@eo7VUr8<E7q%16p(t9ho>~f~Is=S_#@iQEy(x<ebm7Jv5fR zo|BPnjiw?E`MB<zrxaL8?epE`H3r6^>!H9J_tQS(lwaa7LjuB&U9f~LE1^9ErT5I~ z1ow(pT)2Qn<LgV~0QE)E+q60q*Xj!ay@M*xcu-P*O^f9c?fjy*R6;DnZoz?0Z4Yco zwt`4WV{8X?I3+9=0#FLJ`nr&lR|wML%?mWkyR22%X%1TCPQqOKunWRpH2wp%*{cT% zu^5;*v=v0)?bDBmN_phg{X0Sj)v(h{a5}*?SdCRdfqW4O>T@!p<&zpmyy1Q_yn0!E zEovhiHY<~@965<=!l#%Zg>gxnrP_wc9lM)^p>elMQ0Ik)<5R!S)>NF8QV}fGi02R2 z3@YoEu`U>Ojg5T_gy|VK7T{Z5#G(pr2DN*H7EJ=nFI~&?2T{Rtnu2X~34x1|-3b#N zdZ|YEedY=_?EON=;BMg*3H#?*D)x6L>U7t!GpGA=7U%?(A@4(Z|7r6hKc3&!M<z5k zQoVOPow8JBmhqxdbxr5n10k5Be7SGuAD_fsqW!|VV)qy<lTa%9jyo40(imPl3>L&$ zV90QC@oZYLzunj6)h)*Cnq0fx3&?M{&PbRqQ7LOXUb+U?9mawJq%PZM%iL!pI0@4K zJV;DQV60-L#%~6V&W<hpT((thIi!pfiaVMbyTuu;RTy|(ic<;37L_^p+Gk%beJr+f zmxqVv_6`T*H=AaM(-Q@+b8-j?35oLU9Xg!}aYrh>X=%Yk>E&eOHbOl667br;l;Lr7 z<DHq2T4gdbn0DNNEXcY0e~+V0uVLBTri3G##a<evs)z<JedU;c9{+AmQzfC3?RcjP zGt?>4z=(z=%Mz5@vavn;Vc9V<wWmAkY*@!^1y9@7knDV1f4wQu3-4Y()npLe{CKUK ztxDdXrU3p)39@M{fp5@Mek~l2Eti~m^!N)8Ml^Gd<9xf1r>spS*$0({Dtkr!5=0A+ zO4>ko39(lBS0SC(YGzWc3h^evu%J?}50nB<Vlo2d3E_Ve0WUZ!X!M@&&_Bq^_>TzZ zF7QjeU&mKqN{4>IY<relRsDM#6?)1l-Fk!@!Y_<f?bFA!r$OnF?TH$y!^7UiUVTpu zkk|PFQcsb*dH9`hTvdd1aVbev{Y+7mp?SPElxri>^I0z#Q7jOU!S^&6{UTk6Gf?ZH zjQ5TP(y;5cJ~`GlPd|jet3MzR&MD*0-A2~+ofKKUgoHPujKX)oIbICnpdhw^Vtmzt zC~);4W(3-}<A?571-69D5SJr1#r0bktB8XME4Qzi<R5o_v>Gpb_-h5b7$kIa47Jgp zuJoZG(RVtwqLC#@X%rp2Jko<atN&4_%eC&cDXXXYSFQ+Re14wEB(eTQaUbe4a5$3i zX&Up0lh}M)rj77f?aTwqK|1@^y3?YFEQI1jymnJN5Q=h`nxyKR1WO-gV-Hi=6GUqx zy7#I-%3Ee?ZW&AWkTuclz3vp)qccE8mhek2c#q=|ZP!zNFOXC2Ju7)ce1*}7IT7{I zp=74HnJ4|hSQLo-vgD=Ay^HMlD`Zb*A9ZD?xQtqea~R?6^`^XZRb<;abmftN7M(CD zxoIdd0zh>R3pOr!fmD%<ZC_Jd4Fjq0C!g^iwPzs4+)R{^|DverEH*G>pJ)6Iv5NeU zgfZL+y8Yad2q(+-Fonn3c$4=tKOAPpNrwAy0d&vZ27FO>=H2ILMcVg%=gKzL#8e13 zwFfY9c3%oH9mLZ;Ss#Bms0;#6WrW(t2?lpj3#M@P6NfD{k1u%qDoveKxRukb(BxYj zsycLvK^fOd-%y=N&;x5@L5&rgaS4BPJq=bm4_T%TA!ly-RS!#lF^kz3RdsBvG(>cu z{*dpj!G@PA{u7NcK`;l*{wJRnNc^nD_eUv{3<<I4497*|#X9CsfQ)#M2Ze?WFMLW* z|F_Rsdz`-OT#Zd7x6ah_bV7?u;G85L4aI$WLjnH;!$FwBwpf*wWn*Zorj~v6Q$c1M zP*4Q~Dh=s3_8Rkc|BQ+;Gsw*FgdXy!!7G<Cn9Rv4`}*Td4Pln0!bh~i`-1krr@x^q zh(T0^Vdu-~%z5n_s-S>kn!uQ(uA;iv_sP?nI-{zMp><h-qF?Zm;C<M8p6#@RQoiy* z@CXEww0zNajmuW92MSC|!8YE{>@yS#Uo0~o$S_ds$l>P)MwCLnos$dD64*D&A_2)l zzI<oM`9it|tOUqHuAWc@_P!^{bcL4fQ1?CbTmQ9BpM_F1arY>^@gd67^rQ|)R8aDK z{pEA?a9GAL^LTesHi`;wiTWGL)aDn#!}W2Y3z`H(lm@l-8*;r*;9wwi;bD7(-EMkz zHhxcmDS3g6W&=C+A3yC|YEig`;!)SPu>Qv-_n{f+9zLzc^s3}efj`JrP3ctM<Q9{+ zjl;JDfdQYNL9VF;hDyVUGolhfNH(&`iIHDSRxzk*GtO++W!i~_9@GR}9N-D|sh1F? zw^FSNj7DvKqC%^dV`X6Zw|?RIy{#8;6ia)0>{YlEBtJZ=IZdcNGVGIWVAE72see}S z?8uOCi!jxV3RbUC%pmFMg}*xZJSdG};e~+jWaJ4#o1U_d_gIqR9K{<5SL%CYU}&nV z?kbo#pF4C^!dTPo)H4uh<xqt|M@t;YQ$2KhrobB!sYdgQ)ULgqIlpu3&*S^5RZ{PG zwFQO1Q^v<a!O;zJQi5hfvqVqvoyp2xxh-!uSH8Dz{pv|Wq(G*_Kr*4a`JlA(b1jWY z%*3g)q4K59ftQfKh9u~3QLGG38|B8ftGukwxRR0_<{-_K#bqO>qq)e0-HA}VVYSZk zpSZA_oun9NPxwg>c>Yp9ugcB6;6I7v_C3$zy9qX;J9{FF4>v~QgH~-cv2$73uKKWL zO94+DOFJ-&*x-A&%|oS2wXM#XL0QY*s{EpQgYUNmxoDi~^Wengi<nJZ5(;+^EpE4F zyUBmAXt!B>b$p+lPev2w(>KC{WR&*j7b@jpF-{>{h!d%}(sbwUm!_KG-c+tF{nlf1 z>X{(YpO)_dvr<nrE93?j2s%HF=-X)LI+-XRwJqiQTazte8_YVHnVcWnQ!je_7C-kG z#<UNBr1q8TiuH(|l((6{0N)_mf&6rCU}@w0YS>|Sdsn<dyUyP9SkFD8?5+X=*aE|g z!yFHi@K3+pV?0E5nv3a3)`0td3@<PrCA<J1OGW{@otIxRryTV8`~KZR_}i2waqw7B zU&q;BMIz1debmdmD&PoEv8Yp>VH4Nf8n6i3F;!XQdrAA8POu;V@Xz}wymnHSj9@}) zgsaNvzl`P&@n-PSp>*s^Sd~_Qe$uqd`HSV*;bn_r7XHMT^tX!YCb$g#w@VjayXtWs z_sdHwT81^mG(B(r=JXWYi_cxBbpBO|@A>5z<PT7}Hc<1_H_&A=%(t=+`Es24Ne#nr ztb%5+UqL)1=@CXjzPdzOfTI&tn(sPo8k?+u|HQPmi;P+l*N!*1MFj$cX4FvwfJf<s z4Ty@}vU68Ygn#<eR(;zv#*P=H;%iOR)~;~p{>CTvZ|s3obF9^Ful|q4iyejZPo{^` zXMQdARdc*Q0RkUt9slFxrcCKEEVCpfGibOtD*0g@$TXtgb|EaV0z@nht_A)-%=p>u zFE+9Bz<GfQ9K@6sarG^>ZTPw)Xz}PmQ$rqC&FLy1Qe|o}75-C01nfKfEvc`nG@zH{ zx-xAXi~BN(<$t^7$dj#J!HYfP$CTRYvOF$bzzGWPx$D4rTWTCnvmNWEVLl`gWA-<? zGSg6MHb<|@3RMaDbEEh4QR77Wdm<AnOfJxu`iZ9429FOFqkXKc^3h$N_x`b}08!}X z<+HlFeFgoueM3tc@`y+Ok&eTHSDtTS>l$EGzSt^U^#|&|15Et0p4(d^bplqo{0ko< zf5pCkC*xxxgpp*hy$QRWWegoIfRv?oYRa*tXG1%~|8lcYFlPZ1$z5SJ9NK#NpGyW4 zF54(v?oE~D*V=C4P4SC)6R$t}v#<Z~_hx0j`W|hm7)NS)dvV7#gYxNr<~H|!PkP}+ zYuy&7Z&aPVgxfis5*R-yiW2u9UAo>8m6#RC?Gx=w-C9wI#fTS%1frF^N?G|FfrD2* zR$HKh7u*GcX()c$27Qn+^*Zu~qRu;~^!<!|EI*`=#ijSmo#wS3=tME!n!b6(EsYuc zEhYE;SgL0M>Pzxt(>8EA8KtDYi;j-)T;UJ0uJne?j9knm7JB1M-9JV=GJ7FO+c8;d zO^#=}Fe#rZKfkX>Z?_bptWFeGZ1-(4sKl%C&%&{kAXZIlw32VL*@s}xIArrk79XZ9 z``udJovj9ZH#{E`*Y^J;jN2E#y&t}nJ`}*EqX~J^GPUbRP&(u`aNwMk26g0s9}>0Z z($$>qBc7^+eAqn!V{W<I@8dMh3GYEWx93G}@E+rTd$uJusz$Rq{_K7~NM2srAkZfH z`9F;d_whUmB8D$k$4~>XvR-X4l#(AYy~f^MPHbFKqhmv0LYOcn&t)4rXwILX?AGC! zi%=y`xM`w=qc|hN{&=PC1#n1cfcNLsGZo~|2++trZ`yH%fh$^TSeTUCUWa@fsQiaS z6ukFMvVFrQ*sd=jr%fs!qc?m!2G(VcN1K&36An5WK6&1S{U)8VtjsALx_P@P7=OI# z-$HGCSzP*QAsqg9zE->djdP>Cl#(ygSwTp?ipy*ZMt($fR{l98_W<r3r89f*O+jH? z<7^|s`^mh^!b^v>E*fK|md&{AXg6gBDMaD?FtpEmnZ!kj-RCM8IeD+CVDnlSiJ!Bj zb%E2)rY76tV#^8}^V6w`ei2>tPh&;VMa5<92~=iO9^_}4eR<1N#PK*Ge5B+Uhp##I zai#3S1_zEvImrsjoRUmjMmbJe<4K3w0A;5$D+3M2J$yIOGna8Y3}v|PZB021uYGzQ zW@C*L|52A>PaPw<FxA;v=-2K2{jK+Bw}^hDSL6Eqi)PJaflipRApf8gb92ZGIs&5h znFCVf*6i7*uhC+^v#6Zas?t4ALJsDo@woNs%MU>Ob2i=a%KH#;x>8oXJU+;vYoC=} z^75Q^;UwN_O^DZ)y>r7&YgY_ac7|Yq?Z&T!v4r=rRiF?N)ap)_jJo{?zu)z=5r+)y zY70`@l*R4a(Sm0VI6uJ8pSS(!<@}QnT)Ay2kpY!skEM#ERv{Dpp}XzGBl&^XC#<yf z2q`zq6R!St*a{U9>1A}Wuk$(cxZ!8;U(x-~H1`>xZT}`95@&mcN4&rRa|ZT-%zK62 z#B%4Xp>up{R`c4!b{fd29RfhT0_)1DFCRa4qxUd?I%988a16<yb(q--Kzi?YDz|;x zAhpqI*Lpa9>@@Gh2cfayF)OBgM6t8P>!ngCb~mPICAFgT=wmca9j>~^5<=e(8JvPO z-&8=OtUie?OkXJ)S2~@NkxmvvrM1I3`Il}A7Q$n2HFO(CJ&y&ju~8eXDMl3rbD*AL z73^vcKl!*hxNQ%ad;V9x4Ncu00ZqM1li5nw@e>`ShSXfH?|hPv^+zUpLnUz&RuEw? zXdk1VLMv6EPNoRVwfN)F?0)!uB#8L79*PVNC(SU{@HWz1N0ZqOFSnV>+k%$ejL5AX z23>8m*fMzqilLQR8$qJL>)Z4&sY8zf7GUrD1DxiGZ(2;(B?+39+VahXP9MDI617yb zK4fYoS)@4*G*9GH$%GqEPBEy8YR}Vcp-^i0?M6w$hM5A%w!~SwIZY%QmSA4I{&s@V zt<;Y)RUPw<{vOnLYp@z89fdlSjo<p)u6Y7mfR6N^N3e~EBz})k<|xaqog65OXmw<5 zsUgFGMV=_@S4|tM!bp#nN0&i<uj@=OtKeckSGFn10!3WNYK`^aXeHgzgXgT5wI>i! z!ICF$AK~gPp~>MKorZA==+a|sC*c1{y{1K}1&}wG^3)JCf;pY*Tfa+x&`_sC25@)f z#s)GJ$n!t!8C_cvK2J_NVAt){+uw+ho{ofleT9)}i&tn}{@Ck1z6H#N-~AKrbGozs z5rX$ZNcW{IeXFfc8p3)BIGKP#i<eFQbCK$`sfzTyz>hV{;Uy^YFI!)@Ta@tWii#@o zLLi1d>C_rvsFGUEOeY$wyK+RJbojl&xN{|!G?|uIvmC0BeFJbLMyt?K(){F+HCtoo zQmk~L6m!?_{0xj(sGb>s=I0>BXD~Vfv+^)jU1`3(HOKVCndqOo)CFReL~7sKB4V#Y zRd?3$ArqA%=cI8pL9n#YKI+jL_5B{D6!tkb;7ADiP|~q)<HaOU5p4Mu-(pT1X^i$i zclxMVmU>Q{%Amr$FV%IywKQj;aL)?Lu2vJLA#gqTlIG}-N(cqojV*H1wW7e1+H7j? zMKnsu&&5$@aNI;DwbH1Fn4J0_!o60OFI-^<(nvGSef5?(ay4_;N`W>JmNcUMwz_l$ zu`aXDswC7@YnYUhg_>CY^KnE4s5qYO>9Erg6?azJc$Xin!6DBqNLAa+ZHcD;65I=b zHIBOkkZ(oa6Yh1&f|X^!V6GaKYfGNp3Du;>q$w08xK!i}f|*4mVu%q|P&<HOKBU*6 zR4!l1pRdiQFgDi3I<Y)0fNCzhM1G>`@{ZH~ET<9!>OM<y?;j?d&*zA&cS=rDxLh-v zY5ukEhRhvqUMy}}S$JGRq(a@_0Sw%*($e84AK|_Y4)+1{5@iG*=ug3MA_ZlpY{<WC z^|6SZ1vIZ`RHZ|%#{HvjHYdQ-;D{pa#}<H>d@@ay*jtzVw^P+w2!GoSZEqa^Qm5Tt zi=R=P-o{G=wjlox09rt$zxzq*Px~=D;(A@*N-)s9R@OaoI7|DJYf|ctpPgiV6%B4p zPY%?7b9S(K`r&BXP<NCQ*M7Txu(h|{Dy47zc6hwiEb2A7uGxxf*64>}`^rxuKYY5P zI0@uo%<>J{nRD)`jyv-k?igU6(2xIb-`IhT!^6EY`gPsfJNoV9^te?Ejk=vzJ38Dw zINd&OR1Z!)l)a<(hr2L(FleG{ca56fziZWaVH_|$-)Q@B%4(Apqcy)<_9XM%YKV6s z`DS--yMwJzlu2lRX|}Yqv|{BQZ|@(TZd2|H$ku49k=R$(w13q++qLFTTxnSwSl!k8 z-Gle*d%Ig5Zn#4}lWON{VY%79M((IMb760HJme>^!3Nvi*#^|Sjn}H%LK8<WG0(N9 z@aU?;**1(>)=fJ<IRC?*HF6+gO>>0@EIDurU_N}^TR35>CjhNXuzyR%^P4p+Wp2cv zb~KFsEJLl<?s(Ff#HmmPt~0I2I*ov>u>egZu|CD&Le@7W7b+B!69aNC%?9vS5>K9F z@nknE5q_f)e16u-!yNR|P$lWbQ!=;%#=lYSfiepdN?A}?P!RbZJOT!+rJ$m>UHU>o z?G<Yt6lH-n=q_chH);hYql&dxaj6^b8!rgir3P^~ieo9qnIsfQ+3q*Aw*yxHCP8&( zj}(<Q_KynXB+;B=x)hqcX%MRwd5b{>j`L+B1ZMfBQwiynvs3{{lu<y<{lk1+1v{5t zO__Bx@29wkrdfG!V&a;PHx7)a$!g9C^>ar^Cp)B(a#O>)kR0%wPg+;fn0xT5a$V=x zG~6zk_745bXk^Tk6HU-8LSbuNp&a!W=c#nx<%AUBr;CF$R#xuTP~jgi^*DywdL{2X z#-uE>^JXX*V;0)f<p#hqLT1Pz(=p<UfdHuZ-e5E+`)`=x(ORfMX--e-uw`7zNT+gb zsRBx$n3(2pnvQb$72StASqyWKp?kna*9wHwO-m&AJbzU%L-nLEgXs7&6I1xquB;oW zmn)qsVvF>ch;cW)RM;vc5nn>QF|)9pm9g!*!f$=Ck*2+@GeKY3?xX$&US^R*&yd_c zo~0Z*bTf(5bRpkl<Q_DPd+6opZ}mHHb>4-@$Qq~Dy(BX&D-PdpAMdRn9c^#v1M-CM zoF*nO&=~}N*iSJe?YY=fjXWBVTgBlL@7b!U@irKa?qBP0Fi8EZqP)!ko5gFIsID^F zMzzq2;>`3I<(0Ow=EnrnWio11Y7b_QoG{OzoX%+%saB!3mkbG*80)%A1^zvBMsG~B z@fwa>mF?fW2|XiB)Lo^I*^hkxo)w}4idlO&AnV@K7(2EX-~1P~aSrR4>SFbh)B8gp z?;)B4Gq#uZ&|(yAaZwR0J(WI-!piwF(@O>a*U#Di=Vw6-*FEOpW&}KDCya0C-ZoHw zM%D-rqP(AUULj1xrs&DFF(5DRaQ+0>COwOD6aj=m0-F^j+DuBYt@_-z3Y)4DOjkti zpk3hDDT;O`#gI@?Tpv#LJhwnj-^&y|C&wmnI^g8SAeT~=c;aF&<aeZ{8L6k_qog!Z zW=oJ&?^V;7pq4Qqt@@tXyqsj}_xOn8^KL*K{;CQdr^bWbiF5I$DG{GW#&jF4D2}!k zq5pm~%{5(&=e$AttA~v-__l#7I3Oh?)cgcm@JxFnlzej}Ns4%&!;24kzzLP5ql&TM z+&uMuyO4GQRs;?a%3?A8xp%nvuCx7n#kw@|Pu@1I2J2SB{C3U`gfw@TI%J7*&kk~@ z(w+U29ehqUIWzr8R)qhcm=KVv$JYIxvEj*94ow;s4&T!Gy8x-zR0IHPjzEa_)QWe} zLXTxkjxMV%p!lbD;aIsgKX((noO$@qjp1v69&ZNh7lbXo>fq}ymbs#eX@(!>tCEj2 zwEV7Atg1DmI{K<jig*8#@Wz-m#@C!WTRv0ihlZ=QdtsdVmf<nYk$scE@}fI4V+wpS z`gTZU&?-Vo%@aR~Rl>*=SPamGO?W#OV{<uFj%*$h+fVWa@=EGvSXiG{gpK9)xa4DH zk*DjEUzqz;r-F~oh;QWkE04%ridX#&;hU{c%yu|u{aDWQO2=?k`d}kJ3_EP#WZ+K; zeQnyW?z#p>wYXD3ytH~08UyMJ(TZ_b_R8;&_(!rabV&tG=(i|*{M4QWNk!e2!B?dc z4JyWX`X#fxH;t~f@kERIjY)u~k{SeQ>ESv`BgCktCommPhr=-U`$rGdp7EGT5u?#B z5XwWnkg_>o2>RP0Nvn=qJ5Bv|VbMXr0xG`dOrugee=5BmEYW5sfQ^9NmeK}MH7or% zB%u<k<OA}j+cA9Gsm9z@=VOXKVy5GXa*6s?3=HaPJ|S0jPq@Kc-`PYLzjsU}P)i!< zKCEh6zwznX<vnGCErzYr%KNWN360Q)N`!>HGwl6%bUvjGs@y!U9Ft4!5>GWiBSgV# z8U)TBAYKt7@~sltm@7X}0;pQ`SNC9X-PJ`&9Lm)x=w4>fa|W}<ZXQ%2*#wHR+e_xD z!@e%^tAG_kzQ|Tedn4%YkU_IVzP+S2OgbG50=%G}yBm0xz6<DMpFei^<CH&+_+y(t z{@{-f@Ns#ro8*D+vCbG>ip*X)i|Qw$;5>euV=6cAqxQ-`>1gDTS_)IWi^Dj+noc^X zG}p-}vS#rW%Bo4iG&CzjKI@Aj35nlkE6K)`1$9$gv_);DplK?s6;tb?{$(^Bvq9jK z#_QGdR+}|cA2(mK8oW}_e3UjXx)ioeA%SR_0>5!-$>at$(1Oyk&u!Wu$!%Ij0&TS` zFfbO;9NmZWvDBv&?*O<acp6kQP3JLzXbN*UIw;UJry1+{9<~kaBa~d^EcDP(Ib8|J zusf#roCGyJfSM)b#0;hT(<p|yMXivQ0)fGFZ+y)MV~qI}qkM6w5#Y3UPdlgU8++SA zAp=(Ms$(c*xLx}<u0ksf7yK&i2{Vz?mW(@?dsS7gTT!kmEePYhaXYIU6j=iLevTUM zl@&8b<7a1#Yio4tYSd=<L(jyyoG%f#^LGUHPt6<?doyELTccZ7qc$TbV=wc|*qiyM z0()~-PEG91jI6dsx2{HQhM$zMm-%Jv&HN*Q{f}mjiM^RIsjbnit5KWbXC>@qei?f+ ze_LSx+{`htH#7X&8r`}YwHdP#@-n-OyqW)pK>jB)$3))D_*`3~TUVnt!_UfNFAJ2> zH}gLT^k0}cCi-T^ZEcNiU5(m|xB`7ypp5<tp>n6+>Pq~9aca;>Y@T)W#Q&`a9X+_W z*`TM;`ViJi7k%Ik$WW>3ikT(q^)lD4s6E-P$_K~0a?-elRPWcMUtQH?yn9#9_`dNa zs|;YDSz(q1F=%JB2A4tCxOFMRA=Gk==+OX~1&^zvk~=xB4E=>5>ic;61Ew*&Z93c0 zFbvWWYue^FF>VyoaE{pI`e1#3`-EJPu&tDldXBhgy*(l7&;i2>cx^;rMjb(GI(B<7 z$Iwr#8aX0fx10Fa0qNZ|_{U#1AbI;{BWW>0RlPh<&sU#bvR4>niMJ1S_I6L+c8rm_ zRNYtDe%}B97vGtU!;Uwe_(=-<U)sQ*!t_Mjmt)jQ90K<T7d!3#0F{0wWsTqW_X<sF zrM654sRpzDL*w<|vBH-y`}xZd{_`er`tuhQ3jF-#;SAY!Z(*>$@aFQ**0ZmW#BM(D zyXodbwOS--bhSi*9Q^gjLa#yp+WtCo@d@Qh#cRd!vXC8n#xip)0@9J}RWZ|D|3}+h z|MIgJIRP`?_gTq3MHx)P{pekLWn;IBRS^c=Uh#_5!{_KdxHRtt-NZ|78!qOz)42WI z6=HAoq)=*r;A8JQ`o2rQD&4krrvsy9cFD#1JRQ~@X`sG?0j-(W(`r^`Th)DQPm*31 zHkN;EVLg0rq5t1YBU`OFeE3j`(Fn1{+F|KcFd?D6S{@u}szZ~2`bcbIBMdatbJDTn zjLZB0%0+;9NlMLW<f1GZwAw+@SV}fVb{p(S1~Y1#fJ|-xOI3m=iCS8DR#Iq4(iL=m zaaPLb9VH-nAsB3f`2fzw2kwKGV?}&NovO7pRg!Q!Usx`ZD)kgmjSdQlPHXvA5_Ztn zC!In?gm&13qj?@}v1A(ynK1EpyRhSJE1O#QiYRL3Brh#Oi>z8?N;3%L_2@Nh=ktHR ze)z-XlSP-K^r*{wvp}9C7YMUO%}dQ8gT7#<ATKy4SOzod<qa0!(s;e9P;0(kM5K&1 zt%0b)gHf%(V{S88tK3YEWyzUUK3n$i<S$Wgx7W9Hpp|O(R4Uhaph77*8>iG+5h2tf zChXDK>0jRj0Cfw^u}++zUajA_2J(T&{@SvX&9(?6YVWC^L3FJO7HdTp5j*X=-Z1Z) zpA1MR@VaQh)VC!7s6J-c%3hnUVss1hJOtEoB*+?HH_5vb_r_UV<o@52>(C9Ta~c?K zV<0PJ+p?NKo{6F1HRQT!fK_}vPL<$eoOR&X67<<0dNaT8D78`K<&0^~ZNdUhzL#$v zUC{8vao)OUUp%=~E;lqXf3rq3Pgm?1iUKPaSh0rc9s<69YFPkjP40g;x51?7g`7{C zzw%^W7ne8VF4&*4DtsfYrLu+T9MT--Ols&>-Axgl0kqihSqpXNkuUIj_?@2au<j*{ z4I7jTVKmC1SM~poenCJ=8r=jsYI(BD)36CE3ER_2R3v?+U5Yhd|M8k{t$G9uVfB2} z$GQDA&!c#msFteJn7J-Gl9{3Rn4{OH&DSCq{~)83#_4hpF4D(+C<`gCo3G(VsnR#X z7NZI9Mo<`&{u=1!ya2c{l!c@0^(ye3&DVcX8*?Wb;HOa8?_sxq>6_Cit_inT75FDt z2L651>cGFUxkG8W2Tirui@9j?cp(eHlkr82W|56auP@rKzbL1G^hnbb%e%fa_-Ayb zx&zgnz`wHJCq-NGhdZ)K?-{S{d5I_b=?wFWZ3tM*D~$O_Q=jMH3H^Chr~uay6>%cx z)x&(OhC(>I?sz_usW_8#0ZoMyl4qdz8$ZIs(oo@nv{oLezJq~!$vu&AC~-NRgT}UL zn;CZG($QK<LlZa@#K`?~>1+GX<*$FPe9b)=8jWknB^|yJR><+{?`YqHY*ML^*admp zdBdXTxe>a01pMDSLM7aC)JgXCUyXuN$<v)E24$ANNwU9kf9Ch5EN+CaEz(q3JHIse zEpl0qY9n-ZjL;1tFS%vk1v;uWh77$SkJE4sJz76~+fpu**^)iTQtB7`TPB4X3}cG1 zt;r08gmKAmO40k2=1e-GC>U&`-5}>u3yR-s<{X~jg@9{Q-ksY=q^x!hy+WT%>`*_= z`e>MCmfAhqrgT3^?DQs@ypN|*&@0?t%$La+hT2*eY33VhPVh@dyf=s2UC`ZfFROJ_ zwQ*G9tJ}ylO8j0tj4(*#nyVbDl*Pa7KEdFT$&mp13qWUlPBHu3ER1^YH-LO@<oWte zqgtvS{fExU>DKN6&f7G^*p-fstVLFVaoahJ$ffH7%_S>M!L$qp<B2~6Six|J(c%qw zyE~_+hi8aS;ZvMqP)#H4Hv={6h7{z~^yRJN^4-fj`O6=Fd`Mq$!Z9$|%F@f9Uc7w% zV-akCOt{d>rnJPwgq^eWZC$NooaJV|{zOSwb3s&EiguBEE>{@$!?V->YQajaH0rL> z&JiIvXXc0~*9$s;mY4Q|z_pFk^4moQ3qfoFYNS}&a#d?ORb6i)tKMf<lx4>nj_tJr zFE%;o@`cRE1GdUlKQGcJjq?TMlsewRXZF?TnwJgbW76y|BT#iE(C;KlaJ4+gM9%DV zAwuznet!?m>nhZR;Z!KAhoY7V2Z|<lIMdW0OhY2Xun4kJaHLSh0>KBMGz@w^yL3^e zYtfcJ2I^m6k$;;PUuEcHGztEOiZU(4qSN!>s9NKw>IS7(5lgrZ`h8JfD@q_NRRX_S zCGs{<;YWWrnUOrPLjN|e`RCU{88#mh(^1t@rI#vpIdfj9TjPKuqS17W1P--zIlP8? zQ6+~xD6|p1vsLQR(`V3EeMV4^tqP(zTAANn1r;3YVdOrtUagt%$}D^y<WuAzO!Q7a z4Jjg8E|W3A%h@VJwqO|ZL$8#oU!@z0s8;DNp#nHruF5r-H&ANfPRtEd&lQwQH50l` zIb1Z<C>AWce&<<uG;gjHT6)US?GyWfGH0$-gRPIOSXQv4tI=rSgNL)=EH_KI6tA2X zLJiBS88MIsmYDsESYFk^rIa|ea(!N-Ex{6UI)r+ys22aMIX8cvGq6<zVuy!L+jNiU zH_QqaI_QQGE(aNKRxx@P3_kOfZh>4hOp^qeEUd3Fe1PGxAGDmnZ<C)Q3mQLclK(Nr zlXfgQmn9xBLghbXxPd$aXTpBZ*bW9tTfhQl8!7S&PQ!u-CByR9ppOTIGngir$F$X1 zumQCJTl7`rvs;KyQy;Dk-Vm^C+p~iQiWo4YH#}p%SPQ5;Qyd)FYJGQrogT&+^@eP^ z2+tNNLy{f<UX{#ICPj2O?t*C8vY=5D#Pq;94hJN<;qt@K?gqKfyMqMEP{zVX7@wcJ z(R%+HS(N|c0HyPyI7`3t=+w?g^6&RJUjLGFkO~ucN0X=0saITUqrNUGDUscg!gFFF zv?i)kf{irFpyc=j-SI=8WNwVkf{A18`HIX`hjz?bE;TQqz@(DE)iDAb6})J%m3P`Y z`_(vn+X0pLu9^s{**!PPm4nfWA*wpSi=miHbq!j8&)#{hYH@4<bYZQiS9vT{12Fry znnSCOwQJG#>X5kQK;^a7O6~!t7%&@kyj9$xhM{+lcPy1mFYIvZB6BFdeI=xsZj_O? zud*u7#l@MauJhunp^g)J<8I%B`-s(U9uQ`!iN3Cj3Ta_QaPz;f15>jD&;FVYsL0OA zpobB@bMzlPc(Bcw=dskx2x@Q`q|@OLy;ze6SsfwVc!r!GS*-Fcta$h&6isI^Lc6Cv zUabz<RTru2fz@rPUr}@#4Yls-BWi@OgZ+A&t3nCHM7*fk?r3|ALKy02Vcc6Y%5X{% z8N45PMoe%PLKrSVP!zjnO{)Qo)Emsw82WN<c`RVmAf{$c1<E(d4-#*PvY|OubP*n< zCT<d(nL=Fc^*ddB%)v3mnAP}o&^K6vK`?_=UQDH0gx0ew*=AKPHZ`FR2N#eL(p!$J zX320vv~jrKIXivx0u6&MX8zz}*6qT71J`UGVHrACx=vlYq{CGdDrj<nnSKJUZv;)< z0OOzWpG&t{>A1=egUMy7T(qIBrHUsC%b84W(aJL)cibC;{;Cb&9PuQBC=BWlIb(0q zpowWYSc!4HEOe51MWds)3=QTQMHpDaBz0bJ>fET&s+sQ<wK?+BhWrHM!lOmX>w(v+ zc&VqPvfwFU?w1#BhbLvO<`)(JWQ07=%?%3}YQLzW+N{$^tXEo^M%<JEtV~aMyUriJ zPdXfF(;6zRmPCO`p}dki;%up}Dz4z#pI_BT!nb_pKB*Xk>}I%#1lx-zx48{-UP$*{ z{Vej8*(H6@YtW}Q8CdFkwLL0kR~IL{Ww=lh!Efq0&jA$LR0>f;y(*Vh+6C8?8kf0F zKIy3KhT52tWL85!Ev-rbg-%$dBs4EKS7D4QME(t?bI+(+LjcMRR@d}c7qe>2PC?M) zBp3!L(EUW=f3Z;8N<+~!9R9%|z{eCSVJ75bs$I;{`f^p!aZ|ZiA+O_+tLag{%<Z8H zY9V^i%W$Y0{g!j(-=bO%e5AI@8?o>Mq=g;Q`c18XOvce6pfvEd(Q-H>j)5)GJ}7~- z&nPb`Fo4A(%G9}!E3|(ODVL@aYzZ-9ny?O+og-#66ZKOB)v?K$sbHm(NN`v+V45yu z$t{g*n)FDY54b_&wHOzddD9iIWl9;4+%Y6Q@mkZ6YSJy|oqwyop<7n<br&rM=({oG zc?=}EL&#r?ft5M9#;jgj$XB11*P3bM^U6@+W6dqYCrG8sMIUia*IX>!%a?ay#G`yS zm^`t9YwEw+>VtOMx*eRVvy;y8`swb$PT_Fe-Emj7OCa}Xhs<;GUkl4mF+tfcy2toK z*`&D#oA~QR>u+BH@ag-`(faZB!Rh*5XXk8pYkP0^VB2Wq^!>sIqaFPD6a4<E_`M^u zkF4Lz&#<*;MZ*3%Cj7+B7fN<0IiskMrk0)IGc<^@vi>-hSt9u_{<E@NNKehv|NHdx z@VBLR^l#KC0z_Y3^#5FLt$b}>JgHZTGxRHS+iR$+<KwWJeB=}}TdG=Qou|@oYvrVI zROO~ne?)f%lLoHxlFGSt8*RK!oBuxNmp{0bcG~~Ad~%UKzG$G*RQqxBqWLo_fxT|9 zcKSth`MCKQI}aDxW%O)_ZK$?Ck`qpB+iZICaDN|g?i_E^v*Y5$W76UJ`^DqMX1n?L zHGF>2pqcAFdAEC{i?i<5pX!18D`}+VnkOoCt!P5~u|D12**?zg=M0zFs>h9`^V#p0 z#y$K=^G_t!UsqvfHF!)|Q^=qL<LAb0r~vc?p!{^7`Y%*<!~G0eKwVuo#!X3Hi`%|Q z2(Q^tB7>t1F9me0;Fky(B0JD;PVsaCF)r7_0BG?sd9<}t7gZ|pH7&OiuC^Z2n4ysd zB1Z-s?gJZ}Yez&0Oq&-M?JsEXQOG;~6cz9fz^uZZ?Bao2)-8E(ap68#C3}%_y^D*B z2&-1qgS;6-oh~g|`Cn-x6+_=LrU8CjvrUQd9x@=Nbm-66UI7O{EIf-}kVJ*+U6(|f zL51RBp!|0P#k0CHkth|_I$94N^&hOF&xwHMr!ePnS6y`kxsUo(;BPklaWS?HW?lcS zf_AWeZaOR4et^y|{tZ)diCYy$|KiKV#ku<+nkHFyFk6I;-E2NqB_4dq>$z0Vy|W&b zaEp35G5FGIyk6sNcYbmC_3LG`D5OYQ=kmO*zL9H=qQFHL8ZA+QFZp&xs>3_F`Pu-h zynU?cyrMVm9J0hLszD2Q<4f}SY3hYR7Wip{zuk6%z9Gj$m-Ogr9G$ucJyrUaopsUs z4w;2&oiw<NrvWNJDZW!nyQrbYr=V|a(K?^<1{%uT^ON~>c}G-B1w;h|*C3&<Tib8e z&-P9+V#ewI(H=@(9w}?dbm370nn>G^8mRJ@YRebm5K#YPh$e3>hrgND75zS}>M)qV z>5eaU<nZv;31f^iqXK7{Le0CaDz^9bc8^YoCvw~EcJ9DO*|oh=IFy-_^Ht7q7O1R- zL+VuehhQ94AGMH`qla3C3!I2Vz-M1IL~d|PlFeD-o-ee~+~YdG`3GqS76o3V`?&&= z`fTxdw$!6)2ku<fg$dawRk+ka%quFE?+5zmk=@bikH1(Mgvp&@xvQJzj^1Ydumini zxdEw!R_GH-O+2N-$yJn7vW2sJg-|e|&%s2wqEsJwf}aS&Xz-cCFz&*!+#u0s!|im? zyA(RLb79XL^_v{&f-lV}-p^cU^D|n)t6rh}3%M!0AsAA$hl&cYimAGDBswx3zr`yh z)LhGsV{=D+6X)D7n!bpPLVu?H$Tg)0xLnqbbAmV-mlsIW{_c`QSt03kh45kIOtdR} z0zvwD8h0HrjYYL;Dgg0`ilOkZa9fvn^kkonNFAUT1o>{RcEevRp8_}aZEm0}W0+KN zZLp8wbKz>Tg1XV;tk^E&ikJu`m4DW;He5M)(|!;yjwg6ia>vg+gCBY596?X%rDAF6 zDQr|#)F0}l+a6DrTlnt^E+zPU+IHTevcoi`%%_fLDx^{@C{!I7$1vWLcrp#W#4#T` z-J%V`XYy3xqxhmi-48o5FA5_?tHs|Pa_7cR<l{`Zaa+uvfOP0GWjy;c2LV>{@ix87 zX;Uc$-x$KD!^s4(g-_E=KOIjpKg*uX#v$frnaE5sOvDe<kxu3fbou^ZHj#Pbuz&@h zM&5Ns(5_`0vxPx;jp_Iy(qXz6^fQUy=aGJ96-gIv##9?WOs^g=H`9dB7(bo9umRU* zUPpa&l^6o^SzoB{r6b+R@uY8N4W5muFYqB#b$Kgi)K6=25EJNL3e&4g1gR+TX&Usd zD4;Cj5nqc%NU`b?zvQz8Ut}BnVY~<BJ`z|FG4Qhixkwnn6fP!%-t(s~mdyjN08m=e ze}1JDHjL=27PYp*AP7+y#-d1kE6HoC>kUH0fAp$u8BOIYUD=Vh3OjQ6+EnD|nkoPt zpiiZz&?=Y}q}L=D=X~_NC{QgrqyZGA+j%JHruL7h1|<j9aJ}o^GP&8k?yacLr|R<= zeqK*r@&`S$jr{9n^+}~iE6<;*Pbv*d{@T7HYOaGCE#HBz%ZSUnt${3nCwIU=<x;{b zPP#$L4KvnWk3M<}PixTdYS8fJqG9W5hyXP1Z|lbgy9Ya~&Kbv0S17ZC!vbE*hz=v% z1gas>5@Z`i&6|peCmGsGC1YN3<K`A%=c)BpF5&4CUPXzoaz<*fS^j2hTr}may3Kp@ z@MUZ&RnKK(cDM0Bt!mQld{w!x;-LCkypggq_fBpVkkPxj2$2R9j^AkbjaX&ok8O~x z!mRXJ0?!!@cN1TDqikU-Na5B;2dtYfoSyN#Yl$_1`Sf}tJcxe2NFQsXtF;Fx?bN?s z!L=PO!zioi^@TLbl2cIhR_I(Z4k9v0E2N(q7V^MGMEf-vtV@BdH=gtb6Cil8iou{@ zfB9udN&N9qtTRo52EUFW4D-1_^TwFF`Y8PwMJ&&swUh_ayfn*Ro<D1MpFdL%ujF*r zR^`Z9c~%akM+3j#=rM*JeFxJ5@cJ;SY}BOc8CFVNcCTJIa|#9pxSS)!gYY2cD<66& zvNwY;r4h*0GPP`M1#s19JKnVygk*0;cT-@-Z!KRP1zx|%MvChyp34nVKJA$Pb#Xwp zXxlh9BcHAS>{q%7ef;)xe-BlA{Fw*KkDg)B7!N_QF_7V$dE;;&@AO4bl}1-8ezdfU zZByEdWtNuszkv_`<>j8PEOh-+*};IzaUG*<SXWk;S$<wwMzjfKiZ(BE4xk&4=@|)6 zLF}eD8;pT9<-JhHIswT8aZ#9*S*X;d;gq{lmj?d|Eka3oEvWNUbIfI9zQO>J`o%Ro z$`#}W?u%L6i^B%q{yO+*tlj#k3=*KKEWVoSoPtv3W#`>(bfMhQw+Z>&Mcz6OEM_V6 zxJfpilpSt4oUVqfqS|<zR@K7f`bzMnrY%S}@1v4t=gKbXnukvSbWx~iACn6NbZNRP zlnP_2nAbb??AmE><d6Mab1XtJ3LE?~sqZ8h@x*f3eoW;IF(?#57g!z#At}-=sVLiu z0#ztrqqr{DP8oYMls=NKH+(0rW5NRri%jT+23CiP`xcY-)MsGpAG1U0e5;N<?Xo2o z#JG<Z&=<P_bsUm1H@azu69^%Wl{yw9b58FOnEfaf;o;niNC7pPdZc8C&^1O6zK|&@ zD{`nX-?Z5}=sAUNH8?eJNcHm_wRyOIw0^vMa(K`=JlZ~9KRrB_!LZ$5fI*5Wesr9) z!_2tb{jw&q4Et{Pm6<a%E4>nxhGr#^<9{-8{w}g2UpubEe|0jP$unk%aLh4$1wU=f znx@kWWQMN%+gJFW&;d>;&rlw|;|corCTHL<YMmfb(K}w@BdX;<!*<PqwSp*vwWwWH z;ETxByYc>TCp(=S`P-lWxczV$yguLPUIHxRc|%u+nZ@dj*MDaSO~ezvp&jSr0$G9f zKZ<d3k+aDiqT}5)cZ%Msoa#1elQi;sDRPwNcxq!&WARkIk;fR7stSDJt~{P-XXW_k z^)QHeN4xavD=MCs2CQ5eO{vJ^A#$6-Ldy!|Sp-%m{U<MUC_Eun@wB88?_IP#@CR+v zBuL|kaSCk1CQm!-MCawqu>lW=Dk?@h+Ol1?YD0o{4N0zQR=xXp27-;$w=JUXZAreo zy!2wFDUF-Npxfqc`S9`rwuV<ro6SEnc8CF4D94m9<6=Q*ZL0=s{TA)=X2o@ZLK79Q z2xS{TTKb1-*~0ys4AabTOL|24l=wSt5`l+gd5THN7if9$A@#P0Y>woh^dwi)kWe$x za4nBC^PlNz09&sA?`T6!RtZk6S?YJTiih2X`xmr*zeR$7?k;Zepiee-L)g#^{Siig zahT2_+L;QGRu2gON*!uBCaDw@%-(*r;n0i75aI+fhDjBSCsjMo7&FCtpB=0pf2cd& z;b2u_&FfX^GtfML%cY7E-+K)6QLE0~x-<E{hnv;MzwlhMApb>2TJ;p_%aXmC^F>=; zprQ-vU5l7LWI0u4ioP8So)0<eHw?%lm0XO6l-%-L9UMOaIwsaMGrfgN`K&Ev7>za5 z@AOmEI*~)tUn=h9T22s##TJ^!j<U?VNG-M_i`7}E{X-#!VOXjN*%cPWP2*Hm4hz`V zNj>A0<5gAI=$No9EE9Y(dG3%FMESBx$!^O|4*DeB#+o)k&Lij;hZ|0TUJ#E`R!N!Q zl(pMLxeOFq#!!j}QDbzZuf)M@(!pmNxJFKrM*dBz6y(YF4N-e*?|!V%yrfz&1x0;z z(MKNnq79$G52vJtSu~b!NdQ#3gesR~kfpbn0oc_6K&x=T##Z6qi@y3`r;8WuFRM*P z<Qvd<`W&6<^TA!<vfRY8?RiDc3gwiLe`<sPT2&!{avjhFxT$HEW-_H&Az4cbA5q`3 z$8jGmt@Ky(e_D^0o|0OaF6}H5#;qdZ5hY*<r{_!L(ody6mxY$mB^*W$$i+3VL{<Q` z2CWt2;@+9jdrH*fcRG3{_QJ*tE!;XtV>;+NFiK(VP1cN)h@N6s9ap{b-Q3)?Z=TW% zUz9G|@3i>7yIfs*Woha8;_}iW7qRPfmYy#?n^SS=nW*@+X~sf7J>B0s+72<|Uv`8W zC6Rt@@Q=+QTq~ZZauQAk=$SWcIUcFjml<TpB$l`{YtV?Sb`xYP_$T0{e!KWl=7q@8 z8ZmgXMq&er1bGnGD3t8A(^Qrw+b=F|%x+an99GS&%h4b$*FMHF)wM0(sX6_LaDhjK z(lP$Q2o5RAa>XnZ)RO9>BxW`a+kTe#ep?ki#qYmERj$I|*7(D&-yZmWzflb$i`5Gt z;a57+6#y9z6ShcU6ht69sFb7t<vYkWt7YK4qLfntwEIN471n7Ff~b!tEUu3BB5jgY zyw8yJN@W3DL3fs*JyKl^%S^OTR~-X{l0g`2xfg`Ah_mNta;71%mx08?GqDd0q>{4{ z<W|Z1(6V{4?D}Zogj6xVa9F1oLTU4U<Aau}m`5!7F!&}2P{FL<pC<RN3S}+XhS7t{ zdqK&DNc&_|SXaJyLo@fZMlw2YVDbbZm_$uS=X4+SFCySW78YIs+ksy%BA_&-yAn;L z<w&mjAS+sJ-mAPu*eY#M4jlAmQ$9Vo>f#Vj3*VDr&_TC1anxXQ>Xz26Q^_s1!_I>W zz;~W!D65<~VYc23^vkq?;_`+J*eI`!b1PfC%)yl-#-3jq=yzdT+^Y{5|97g)*4DJq zfnmzFmKz|XK30I6l4&wFzwc$AcB)N8uP~I+fXf!j5@mAnrOLwhMuB-TEbLjdz+Z+! zERE`YK$zo739#zYdk$`HuEv9DsNc>XxoUik={Mb~GXCX70NZ*H43)QCiiw+}tI*T- zmAOk*f2N}e*REz=<UXF@%L_o&ZqXBsRKnz(!pqRf;q#|2&$1v)B{x-g&s2OGx?32= z*NfOh-%I-GVvxpAcVT4_fGp6r4jrBCOu69gU{EOJG%a0C4_QFZOHBUI>r!I(N+goz zns@Ds!~rD^Wc4dbyz)dMsoHttkw_$a78nGPm~f)3o>HRJsq?NGC0X*85^rV6&y@IC zAm63FcRkU~E_Ji(3nsfus-xYhOdL^SAbQjdI58E8V{S;G)Qz~INF>IT7z;JUE)7UG zk;tc9QZ&?~9`!t-v)Q8_^+uw4Z^VgW=z7$8&w@#<_hjomYQ5*nl2e8`6^YlJC=@<> zG)Fx-M}0!R?}-8F6Y_mu!0Z#uejs4>X^Q)wV>8jG>i&&D-lyA@ABx%ZX*&E!EJdFN z#Ggo*)c15EhR!E#Sw9sc@6&+zQ!z>d>gK?ciL{Rfa)AwKEdj$R5<ha{N0AsaOo8Ws zCT<}2(cqR7Z_UIZp@fm7&BQ(@it59V6U8VEY3PQDz;j4_A5I0H!)vZCCT>Knk32EO zBbvC8-xY~8AR{>-BkKETEc!m8zK;^wP{s|3IT{h3qp5^Rqcpk|12X!|C<$5@5b{AJ zMk(lXqS(a&^(c^o91vj%x&rxtx*4GBUL%o+YA_MRDxkgxeOWza^<%M?0_uB^Nj$0V z!Ic>KkJO`&6EPqkY2rS5Vmz;?<dq!HE9%izEUI5okFElN{1vU_tEoVV0yYB7&muA8 zMA4%wBC1y-K|`)0E-71&86`1sR|%ICeZNXMQS8mDDdQ=tUo%YE`VG@hS@M?qE)qi; zx=;>XNXKrNiN1$4p5avNxRAy(3`FZ;#EGKsVayGQ6%uA#Qno(jhQy9zW&cpl`<M+W zBoP?Xfim{QX*ec4$B9_UW18aemDn9hKVMGqIAUda(W7y~CB=A-Y2wDISWDxK@f6)0 z({zk)MahV!Ba(|D>avQi7?6mzHr(h$B5m!+7seIQkV}e@kEokbDEb~zH={_FjJb8u z&4~IQb;T$}*NnWFqlmg0$!^A^bR74@bi}j`<Bu|tHdma81r{fqC`;1F$Enyd6B^Hn z+=dfc43kh)pU{9zV$q`s!JNo*bCPjMF(994(SDkW=|~9qBo<3Cp+Qb0oljyeDHEq$ zQna4j@Gcf5Q|e|ayP47;r-_*2l$K2@PlS|~O*$6Hr$dG*HdjhRms+jUK1xGDRMU_X z#bQXu+>lscX~Zar6_V0`q>`+qpD6K@n7B0IZc6(kW{uJtk;rCAu{2hqK~Cj#q_mP# z$*rX~oG9?jXyh}=QD-!snPlBF8qaJfMkym=l}YY5qe0Fjq0VTKv#G4k7E?pn5RGS+ ziXLS&o|#-=S;8=7Ln&7mbHp}SnLH*k8j$QpOh<OhCB>SbQs1Y6SW8pt(ez5RJ|&c< za?wtS;hBCG1n`;$`C49Eu4(A512J*e)c0$-wQp$RZbDK0hDzSZk~5m4*+>k?Ej4r- z2t048`mLl4pQ)kGa*98XI8ng-OiS@|&U-7z@&BYtIlIE51bV$d^VAizzHaowRGGOK z0)Yn)9&E<wM=GNb&{K3}ibdG)7Ov(FUd@-$kX!#)Sv=Lsn)s*HNW-+9-`Ghcfnd&8 zSG1poO6(A?6+-d9zzz^H@mn^rqsYk!zoX(@LxUZTj$`8-U?`DB`B|r^vc^6~YwaS6 zhD-^`)8*&SD@7!4uoFr~LQe?s)qq0><F7^F%KSx=nkTmlD2kzK9hFiRjI6)GRk1!8 zj=U&9Ig7bu)_=#$|NI{zYK-ls_#sY<^*yQ_cA>6VfLniX#?Vh>#`+0mkP8Gaa!$N) zEc3T0AJ~aRUg*{jIb#^ho7(!WN}mRymGdvo$-JbOL2Dv!N96^uJV+mI!%Mo;zASW1 zg_5C<LUft6&sk&N>iGI^oH6an<TFa1rdi^JR*lm<%gW#}{Ol)PFZd`YW`l-t!y9>H z$;5BGRT+sVPtlDn&WPZq+xJsJKQ}fw4;t!Ap~%Ju%JD<b;uAKuRmL!wio<E+50w!} zA=JjNoE}+d?Q?Q6wg!KLhGk<kwU*=tt%Hp?46XyO<s6061m=b`T0-Xpju7982cp8i zxI*Lw82aQSh%#pzMjPr(*`3>oCnsxTool2pw^ZP*pM3U*@wK%GHh$xB864VH&U?<8 zUi+EaHzJ!B)<)ue4#ZKg%Y93NEJ#P_W-Wj%a@h0X-%~$<<XFlxHV(M_H1Y#y3#Tac zLdh#^&_dsshC|O<UK?*XCjn;9bKZFJMBdm{xl_Qx%y>r&Y||Te<GuvAxvz5kB$kZ8 z<~rv@o}A;&_nbcQo%ens?;7tuaNg}0dS5|$HVOSr*qX4Tob>_IlVg7}?S?_mEO|;R ze{<xCIoRCeR7+5?d7zTzgl_)M$qA51*l`tey17Xu;$ECOjdwn*|7h5(MEsBohVi&7 z2k;#aU_6c!xeGUUI0J~ENZ!hmTcn1(<&WbYJ__{mflwOCqS`yI7GG7Ocg(r4L7ZcY zYHre^*!<7`4V$cg;qG3?ffSd%<;qD6ILMkr|28eExcM8WCf<MkFL`s{<k`QSSY&6D zsLSSOzc;F!>n-ZrmLI{rS+KHOM1HnD2Hkj?i3PnyqrMfR;hF62)}fhGy|}h%+P8aC zpqzp)+on0&9^Os_Q+q;7ej7-Y7hc<Sc8FAMf12VuSOCj<XBtGlz-gOCcpGRzVr39P z-cErBmqWizgmgO_1@T1YyrIE*<Aqn|`R+9K0X10vX;TzF<ibhpS1p@2G`?>FdA)wK z%c+sQTi#GN-X!>PBu3y3r~461F!bJ{t4C(`Q5@bzek%KPYL+;GxgPmRK|KR0$loEl zwBvOpx!T$1WP5+^&=BwVz-w9Dj><@YRtW;VL&S1tWOZYQhGi${0_n=6fM<sWW+(A| zYhd<tdTA_owp5l)UU!Zt1D2*A#?y&}cc${hX|Z#vQh}-UBsaCQ!&xw#sV_Tuz&Z9( z-TAFZU)TuXY!YIpoe!LSYYom@!r`qK$Zh(TCgrW~C3>aO(Y)W=!jr#}JAF^n`xcf7 zy(>1}BV~kryoqkNh*c0P{Oti3k1&j>0QB~q${9NEV)=6Nmd5ezG=lS0jLI%?XuCb% zo~~VLh7Na;yrq)k(wg3-HL(kurA6HwOZqN~{!118BvQ9IwTuf5D!@dh$=R2j*6to> zCZ3cu?9v47W?m>d{42rw6&O;BjQ)DW8J3vrS3>GnKe3k6uS95mjT7sI>>ZK*ciw03 zYGmJ2-Vv;Kz9k2INBitukOW;%uBLZ{(>u5;0S{>$n@4^;3H=K<tsCHX$414vGPLmD zO>aCYd45M*=-q8Hy!~wVV2{@7o);S^R2=7`%6qPoUCZUNN8J3L50^4Y*Y-|0BaJgD z8Q7yv?FC)?wzl^{Wyo>e+vQ|9g)wez=1ZP_@07E%(bT>d?$LJHo6daTAE)v?e4i$M z-|I<MVE>&;_WO9WF{kq;hO1ZNe3%Yn*bvusGqJzJb^G4XOM8;i?*GPlp(iCw`yX`r zt+fyL->aN{a4ip#{XLZ<A)TsJ`5LwVmXnio<b`1s;oAR~DgoEdz!LiIA9EgDdop`; z_s@#FKr&7r6fU=MmPvTT+3x$ZpeKg?4Q=QBpqDT~YB_KGJ{nZ`eWsnMJ=R3P_T#W0 zU)S%A{Y@?vd9u0v1C<W<d#h91DhHODKTKq;6P=gB2`|Nm<gXa=lDKCz^#^Bs#sl6S zUG6oUN!G*50YN(e+G{Zd2gjTNHzkow1m?h>$d{gjJx)fpq%`g1;2AP+oJ}v})h@FC z(Aj_Zo=wRQXiFXd=}o+$d}=({=B%N7(LLD7ldX2nI75!i0WnqwaWaU*tBU*2{*lUO zj%y#Un{cnJSltJQs^pC)2>&6C{oz;=#v|JPN8VLQICb<J=Y*24I66_u6iy9q{1rlh zqjfG6!Eq(hcQ}1A^&A}OGFNl-flJUZ3;d60oR56D5RPcKAHhA7j5Q?PIHFa56l6Uw zkZJ`-v`~P>wTAiVl+%-JI+RQ6h!*0}6g6k@<|fwszo@_e@+@xim{30c&;Oi8fjldY zX_AiPu}x!+X>}Y=(-eghiYC~VX=aXZP-)9d-=I#NcqoF|0O~gS&;Jblu^7aYw?&b+ zKKh+$IqPYUqoWhYcbd>jaQdFJIgO;;``tlN`(2P_EZ;fsuce;S-eys3Z`!ly&6^^V zNwCvU_X)DO5@Wt!lsyX25g{|BNLE5QChv_l-v@B*L9Z)N7Ed$g-R;Hk+X>gOB%~** zP2OYjG4<q>^J3>T9y2aSP^K41=Ko}!i%t81vz~YsMLXd^L~1Kn*fAsICw2wynt$6H z`C%wKal%uMW8*n{zI3+ap6qZgaL<!iiV{wKS6Mg<Fz!A~!`3vbnuQZ05ho#>J69HF zyE?~~)1DBMbb?ZtxKh4!a>xb7w!HQa9z48SDzTHe)tnT$>ZX`aGpEAL^=|^`M^&Rn z?USj+0B>{V#1ic8aqpAB+4CZ)i+DmuatYAMF(;$oR6fd{&@KMt+6%jQ&qBn1rG<7Y z-@#7kC_1@80j5QuPPRD<U2>Y~o4m1ag6uONeWDT()stI1GiXIt3-XApoO;0x-h_@4 z6v+1I=2DW^o&L&2KL+J<<Ma>Ci#~hAPo72S;jE5fIVHSLM_#F?r?j+BgK?ZJ>|t~= zkx482G?o&((|4SD<y(i==^<ypMi9xgpMl~<LEq!~IE}lW1(f#dDUfhm7IMrP$(6ie zo$l*&e7-0R&!*00>bVK`xj3y_t*7s~Bx)&}>1WjUv!PA?&uHhIUE$M&7_4<#Gin}a z`nSgcvYJv_vtg8a2Q;HEpYP93jC^KMMfQFv8whn2C(hwC3vbbmvZ9Y?v@*|<seRg? z(JDIo-1W;V>^+^4@4aa1WnyIBQ%BzeY5fcb1gt%J#~@azZvDNd*?k}QnR6h8HSc#g zCqYLP3Uz?UuLq*wZdJjv_DNeDH+1g(23L}RC;rVeo623aO?%-tT<ZzG-Hj~e<qy=o z4`?|hC?<{kA0>I(AGDwU2*zEno9jZ{{VI)~7VmoZ#W#bKLkAyG7gikg_{opJz#XwS zwgmlo#1XkBMwkv#!@4(W<NY*$rfyTzOf&vGFn=oI6Huqw?OSpHm^6Bov7yW&bAsza zslZR|xV5M%pJ|PJhdm7@g%1;az~*o}=xhUDi^+W_dK0m&2va{}FV@tY`v?snd@}DL zUwNXe{!^|25=QTK&Fyren7(#8Xi1CVhuG5|&fppu|8X|LuJ-7Fe^|Pqp)#DZz1`iT z*{&W#)95fqMirsJS7x&^$QR{U!PCgN>qFKL7ZeT)RLT{mUPa~F*s}&~E-G^SerUFO zUe)5I2<D;StvO;=YHiw;d%+{ovi8SO6;O{LYX4r^!80$kH11uIpH}+vtoY{TUw<q| zI{DQ0`u&b}07?C$qN;alUZj2eL&F=qo02}nA}#NHFF5_!xk)^>kjEX5Fk#P-(*uHE zHzMD$;EeTTZLZ42rA&F^QQy1vJ4xzw;C_+ZPBP`#(w_lg@-d9|IPOowskZrcUG@{U ziw+ymKGivVyM?AIsdId??s(xa2J$}|w{1fjZi)Q|rQRa1m)&SGHG(sd*GvxX2Q*S4 z)MEdO3t?~toEB-K<P}O-uCi?rdZcss_HlsRnLrIq#9#uHGZumc=Px4SjQp8)LJ<!% z0&rLt*2a72aFVW@tJ>91N|EBplcuhMH$@DnoDUg&nRvJ8%wPH3>EZ)dF9={?&B9=C zO9OwtN*>uLQV`WCa9DFD@l8X)sG6X^84JdJG(-BC*OpF9(fMd6YD7~Q3p7-t$b1HQ ze{;6Cmq$KwmzGzaKKt?cPcL42-5x+0j)IR@;TSgdrzFj$*Eh4<&+8kTTib7T-tPYT zZg2nK@aSL1C#PrcfBXHzA9>UZ^4@?gnda5(Gp}gxd^Nf(41GC7MuYv!&9nBU;5m=_ z<fzE+rwXtNqQOCG8d1vt)-=qCr)2TAR5CWBlIYJ`4=mf*<BuDBw8xsF66A9o1o_B` z(EndzcuS?0=-<UfCo-oCOKFdk90=7zx2)vzI5i_-6}}~uJDH>P&3D^doz26o?GuU; z!{K1CY}_48dtR!2C$rDl7PBJgA$r`6L-MPiyM#!UQ9BK%TBUi6APytXsq~$b3pnbV z_M7s>H4Aj~T>q)qD;`1uWV#l|HWt>L<vfYkYDc#&SFq}f3}j?Bcy3m|ERZ}`3Fz|F zC{Y!ysF-2*qT9H*dD6V-8gZx4L5FP8aIvw}Gy-i~^C3OZqc6;kr(++c4dJVSf@ZI2 z7xKtiVPwV@`jKj?ATHWi9)n{k*G3$UZQ=4sa}Cqb$=?I=#r)t4e6%<~QR~Y;nr?+_ zh=3ei3WuQOm|PzEE`@(Nu2oSN187hjOUgCJ6ti-V*6Ao1WDO_*R7koMLCCLO0Rdn% zoL8_v*$5Sj!?s$Qp<fXCYf?!7`q0_%Fa$Ty-U(`FX2=wv|8$hxbZ?!14*OR<iu{35 z$H#CQUUN9_f8NGd$!(h50*FK9M=!j^_(w>0z3l!z@LvA3^jvJ?XxM=NOjjij;hHt@ zQJUwk=70^4Ag9NRM+ZBLR5thJtzn$MSS`q7p1Atr()s(EgHC>5yoAaZv!y=#=UvQ} zJ^XYjR1Cp7f0h^CeY<t++C+8tP*KzabPw;a4+Q{8-jdt76NV_$YMje(e|oh6D`*A3 zyoE2%@XM~tYZc=X_pUnH@!6W*HnUa3M19%=)`ki;6lC%kJcG^S%$hj`?v19=RmyHD z3=+Z}D>|a6{+iXc^7(qc`s}hG75M<?qhm0#)SeEmTh#uR$|_v3uFR;_Ls0Rc3@{aK z(9P>Am^hoqn^t?Nc9>v!r^i0PMYrgXyi>W{E|lOeRxWlTubum|#Xs$-CK&Y*N5%o> z>zwQ8X$tyP^MRF$*%<l3aFo@Q!bPi_0?6n!Li1GQB^TQzy=X!}5HU(R=MlKXa~>A{ z*7~V+86l`o)^uqTdmRZB(rP!$Swx2$@T?f0p7smrMZ5WZ4;MRJ_AxfMS`*0BdP(Bl zHa=ru^`b}vo6`IVGNXN5e>{kfou|x61~Wf2w*p<;F`zW%0En4EtI;_UqyS68;PQ-H zl>zLCm7^WYP&?<hm*=y~V!SD;apFZobfk>aX1YcJ5_}XRYPW!GV;TJ_5a?plDZgN9 zW0l6{T!An*(=<uY+dKLjF8W*ygkJVWIV;HGtUy_zWBWS^<D?QB?1Apo6K8fQs$s@V z^;Jz3lo3Tje}D^iNhD4ulqA>S0I+;zN7^tz81u{RE;vt1!4GZ$#8MdqHCO>a&y5X6 z%n=6MAgVL%mH_L4Yw(vRglyCK0Z!<_K$IpQ-xk~zf_pZ(8|-v)Z=g>J==!yvctihg z$c+Y#FE;_K1o~0CXG_nhr6bSJMx}Oek0anxMi+@(MUTrXLd^xO3SwGnCRbOlonKxl zrFys~JY3$8->b;RE_mIvF@b!q>@juHHS)U^`8^}QSJ6H>9KrC*0Et`_^N)&{In+aY z;=Iav!atfT0QxP^x^tk}o)&9?^l~7Qx)gLNCskNOdJ7^F-%=-GOOZCkEOQv38Hq{J zsU5|#Z?PlUoUuF|1*tPeC(m6!1X7820uI^M_0!Cu+73FkV&N>Le~fuY3tzzx@h4?Z zZn+Lg82om-aPF+)8B(?o{ppB=l!FpCbc{&bL;<s8XlGGCGI1{%PEnkc!Z+V^r0k>H zTowLrK_diLwIH-0sqlTyQv1jDl9i`rQTJlve|+}xg{ZGuCAnLW6u~e_ID)OYHu;nR zDyeq6qpNi~<rtQAO;q^XgLyvOI$T9BLSYwJC1g7`_jYMw(^6^XRDNFv;J~Hm7%TI< zT3bU6ONt{7;azD;0bQUaCl32<$E}87M9EbBNzp|%288UwolEiUP%6nMEx;1B0N>z~ zP&9OOcVi0SqVUs#ND|7W^BpMH4RgyW&yhv2U?FpZYpSdn2Zu-mPEC1<SJkt&P03TY zE>hm=MT_hJe?Wl0l6yP44w5*+{?nYIH+S2`bFl*U{metAhNs_e`$-bTEyqWfh!j_| zspEPO@Lk&Emc#EtE+414b)g$&7DxTi`3*@H_nG499-O{8an|wtj8GeD3)$ckv>_O$ zc2y-d_M`Sq05=`KA9!>(#$SsF=V1<q12Uxyr_)|}vA%WEUU?}1Do;`Fs;j-f!-!Uu zh|zUuHfsB`Ak9)5eQOnX{j@WP$b}WK<4*|YlM=W}*XtzpC;2=B0pfVmb(=V2gX-gD z&?d6qu%`aorvKZQK;A~_+?&EEb%4TmV1W+QqVA1+xUTs#zc=OBDz46STh6(=u%LF7 zd)cgpHLC?QE1-<r%QBN%Mh8Yf!d)$M9ok(seOf_;D&4}DnyH?x0&_eU@<FI98&5L2 zy}1jKtM<3MaP6vHep#x+0eY;S-HpWTJ{a7%CWW~y4_I%Ej}MJ=7QMbvq1YNlQ!Vn) zjnS#=2(PNUt`7M|%)Yl{+>40G-Bt5unIv+96+C6-*26z!c8h?<?W6KbnbqeOFwcEB z$=1wTyGPrU4qK%%J&5e&@{;<ty^DX}w}15?cSEC%v<sP^@f1zUGQUw-feZ4Nd4aa< zs>pY@nV%)L?(b`L7na&Sne{c&)<jox<P;|w_{mv|ZWBE(ax>zA^|6nBCV5x3kW%n* zT-61Po(Vn7F!qrUfddyZomDwOwt93wRtx_gY+_)S98-_^b2u&mRpP<<0Bt)D>Ot(H z1H>?N{6Iyw_I0>ySM{7Ez=|BqgT#z}O2b2Hp$BJ<%e7D{hi(k!)NTM{*Bccv^$<cq z2&rey_JfKIQG3Dqf8&s<QRJa&%>$waQP;o+-{ckt;Qs+oO9KQ7000000GAL)O6yVn zAw&QG07L))02Kfn0C{h9bai57Uu0}Ac4cyNX>V>WaCuc!2>=7m$e38q$e37lcnbgl z1n2_*00ig*003rkZ*3r7UuJc5b#i52Um$61aBp&SAa!nOV{c?-Uu<b~WpZI`a|#My zUv_13b7^mGUtb_SASW^~F*hzSGA=MTCkjwY0|XQR000O8S29IPyZK^PVq5?KfQJD9 z7XTapd2e-ebz)^-WNa^4Z*_EaVr4{3E^v8OR0#kBR$-P{(8!orb$AN^0R-p+000E& z0{{T+y=i;g#<4K^-M<2n!gnzCa3ony;_!q{7>TxZqJ@tr#cx9M;Kj^fNSHGK0${kr z_WkX*mfjc4P+so2_gp-Q#R0mjyQ{0KtE+2y_?t(Yu6;Bst4Bq3oium-WnF#rFqzkj zvbs1(HvMw{^N&7Sw)Hy6vgM}Vv_+OB<+`ccKFMcYz1s9e#=j@YrYfOkk*&(UX!BL~ z(MO`>yk4z}d0*C5r(aclaoexTnSRsU$-ftQU-ad=kiUzzt!nvWS+0t*YBs%mQL0ba za9`Ie)y#Jt3`qRFs^|Gifvg+oV_&!Gx2n^u@_t#jYx%oXb-K$<U#`@z&8%tbdC{qw zT|K`lRJXc2^}!rVUtbkf`EUKZ&F94|pI@o=@@i491=^?cdfnu`#CiHr0uR5-W_ee1 zeG5}HF<;N?`l>9x%UkPhaoYggO;^~jFN!_`q^-*;Uu7M1%ldlR_f0lml||KC@2_t1 z_M)?1)m>KQYr8sh&iXBfuKuvTZrT-)Lk4qQx1kSh@vjYxci>a@Jn!?bVVEl%<yc@4 z=d804m|ql72XQy=iv>f(5kbdvr=KB-R{guWKD~sh$GTrgo*4qyg`wr*ZC+i7Aw56- z^634`ciEfw@7}#Sc`2$DjOhX<qjz5cDfKlh6j8svsaAEqFd8i?T3jw_`Sq8uCN%m9 zg*X<s@bN8D8&JIg7fBt7>8>w2^UY}iYjh!At&p-887@73vCglG?CW>$PENB+iEw=X zD!-L|@7@;q{8FO#1aQ81S<3lq^0q4oo+i4JqJ7H~dD7OmcVC-u<)So*?4+iGxBy`Z z7$a)hVhJcH7K9tMJm7UxR0~9YQFXwK_;p)cK(C56!`0iVdFbTVY60K+d?rT@P*$*F zT`;H6FPsIVA6;IRJ(By<njQ5TrsmRl1@vscS!8cbvhVsuc3I@mCDA`%LVei-7M(`k zSNU~buCUvGFBe5^bPL)b)}aeu12`B+)^8d)%9|E=X@>06m~?(=vYda^uqn)n=P#cT z(-G4lTT)-WH91GhkZbZ8{tzDuNuly1GN`gz)|vV;fp?Yu3H&MVfDulT?B&rv|B=0X zbM*Z9tpK+Wv{+d1x=l$Fn(5D8`Dxp)8(9heUToG)CNL#RH$Z`n9J0+}zWj3C6c=BX zx0~kG)6M56Cll}WXL;c5Y2Ow-t{VH>tD?OqTKk<r{}SOiIIB|{<D%!Xmzf+&mccf? zbhvnOc$kc;esn-k<p$l~H3e+y9}&X!<firPJJ{XFT=>C*2kJ{gC8r<R#E@|L4mfU+ z^gsr6Rdledx(4Kf5~d}omx-JRpfoJQ9D3ew@>Oz;^h{Df0%S!*iKR;1T9ZZDT_rFc zgo~S9a+xD+T0+HwhXbNYzOJE4SHn<iDB31{-d%Om<VBUN0e{IHw^jrKUF<IF&1#X% zsG|vp4T7807j3?tCPzSd7v*(PCAsL@`?oJA)B%I~7Io28qdvK+>YL;e{@>Tks+o+F ze6^w~RRL^kks!q*6GrwzeS?o61-yXQiidXqbONIxI5<ogeuFcEaG($P8+%+6Hr8Sq zz646`FH7jOKOvX-HQ+Q^7a#{NxJBq!ebZ4*r*VJ|D3RQg`V4g$6LpI#DEa0R{)Txe zJL;Igf36Yab|K-tq!W{gMV4jTIRlqtUY4*waW{b}1BrIfBP0b}+gP8WLGfww4nWyJ z1m<~c68#3=0Sfev-tx3U9r{BfnD!aO!~`kPp>nYXsjz6vomg0^Nbq++snqQRHxO(8 zN6M@f9qG=**VKGoG%#(jWA`}ou+PGJh6!Tgrin?an$X+jAkc%{LZE0N@+82%4?KQD zSh^|uOB9VZYY>GxBsUoKyntDTwqUi9RG+tZ&=!HI8xr$joIn-%f)L*o>NPHTwJ|}P zZN0g;q_(M}VlsNzVP<f$KuLr?`lJVIn<rJH08SjWwWA{$b;W9#<ej@5fmY|2FsxV; z0wuTru*VBrlh7)%j;^NlgG8Mt57ryvN!(;h^ZGzc&XF3Y82tgiN4A7a_8?Kud+~~T zlW(9uRbS4T44X|0bW#8tWx1*AZeSLT$|vI0_R2&$HUzu!TnJN=m2tJa$<|$Mv<PEc z)Uf!ma<bm6`V!=ZeK_y*#abP#5&!@lS(d;FBp7$-uVQtfC-tW46|NKncl=u+$O==5 z`>N>MxsCgT-i7cd$yka>GeD+^h!YTndZdq%*1?L_H?6IH0ffo*{<SHK-a;R&Z(4*6 zRbK<rK|1c-dR3jlIje&C=ng{lkUixU9NKZlu=BF?REqKQ0)#!I<uCCS*QPpn>O)Ru zR3K^cAX0%o8ih-f4&A~po||AVH|tpi3*sOIR(^E)vM9QFThih=@G2P}jVe+KK8TN3 z7BL&z@X`&|k{^xoC>I~Z#!b>Haz^Ak|9Sf6HCH705f|5r<!XOKas%SZylp2pmo;z@ zIC9*rfWv&0gr8JyPGf8|Pq-awJz2r=lDp8AuvmfN8<Qpo%HLrKO`4Km%d#l=?_7pH zpuPyW@oAwr-L$zQf?U_FwWl&Tpj(iqO}b3p6>B`<F$09}4Ujg@k?4RttIMf_^&mP< z@=5aGe?1^suxsFChMNzIhg6hhzKaUFLg!++mIQ#VuNx4PGzPekG1(a$HwtK7A2|-h z%q^^48h8t#PZUp7aj}?d;2(5?l07(S3lNrIro{&)QH6Cm=Utz-0{JK66)L*c%r0`& z#PxO!II~LRdNtsiS3bj!+^f^3m;=wA0}g=-0hcI4NEn7FVgtZ|w9FZ$<f3a4aGVoS zN=Sz`0MdCKBwGMbDYHJ1)%?<CS*m_rfn-Gm6zfvtgmR8m?Jd1h!|RxQLzP$c1suh! z#qhGeu$XvGg`nc}B^9P^B(LU$g3!Yu0|ueMxDfcO+<tHp%#DGl$Yze;;45SG8eh3b zQ}fMI%9#WS7pUfF+aY23DOPac<P|KaoJAcUj`3B%G2TpX*DD8_y<=!-db23kfG&n* zSIvMcWU8F*3`_a4I&&rJ46Qm{Unx}%LI_b`LrsJHP$RFKL#YF!s(KH7xMLQP<9Q$k z42s#k(1hKo(~7PvHVf)tbdSJea0#r`86+NTyuOc_Qjz`G-9Qx{_dv_>8kCf#bw|`U zy@{aMZtNUXNfomzt#T>+V7oX>e6yitBF1cCP_AEsa#a)!bwn@LzribKk4y3;oE7ja z*6%k;ov8G@Eh=?2fFrHx700EC-a3fmNaaI=uQCLIM+M+s_?DoF&G@QplmdzyIE7bC zEv)I#fR|3ESqDz))zaieFKZ#ViW;nEBl4DApdTbGPh*twB^;#+p-rI))^!-7lusp# z_L;8`K)A;S8_Ny0zQis8SDOj8hFbYmxh@S!;|N9YzCa!dM|_~&LW@dxHW+nS3*p=q zx!kn_&-+U1{Nx#4QmRnh01!Os;iNQ$*xlA;m0g#`O}ATrpg71^>jbMLeE8V9CfA#; zXSGWy59dA0B{Qcpf#>f$5<H^gQNU=|Qe)r&c6F2Abul<fjDh3&Yt$GaZmK$=xsdzp z?Y&Tu-#Vz+HVAdrCXunJ8xT}+g7Qj#0<`Qfg#QNEl0~w-1^M9`*~gbs9_2+qjOT{b zi^xi~*n#c0#T-dt>rnDl3#;lb5y&?exWt#y+ZeF?A}@tt&NqixUmpNfzqz+uq%)MF z*oTC4%qW55DTj0=l0^Wwm|x9{7BvBLJbMVa8$`i!d6%4?zD$g-opFJa0oy3%o0d9* zr*yn-GI<GIKjC_5;rLz_*MXx(;5p)Dxvo*8HBq`8;@#b*K|LZ2V0MR^rFWZ|;B^h& zNZDt2)Bp-LOJ5V<N7w2oAoTHdMgtZ4giM0*>WcFN($b3)R4BBlJ2dOY#sfqP&Ft&z zOyIqM$Z3)u-!@PmhncT<Kj#bT46mbM4bX7j!Qa^WO<wlY{HBtsctGeS?24%Mt6*?+ z9Y|ni<)X}P>h>ycVFA(R^$q+=_-8WPTwK72#I3Ska#*cpI{?_+@cKVCCNU2ap%`7Z zP;*xD+A08iMrUR?H7o%;2PaA!LdyWjQ0OQZOf#Y&p9HJ<YO??labYM`#HK|H5c*rJ zR-&zCzFGBISKvaX;wOBG$YjGeVYrdy$PDq&x@lKPO+?}Os*JDU5lUMl!gv8vRE^?b za<MU_4|#j(=&Gn?`ORDoBn;6ez2EUEPO=bj63vz?b&40O5T?3bU6VE&rWw}Jre!8l zuGb)1V4t7};2=5<(g6Z}j9{~rTl<Kw9&ka?RR{KXR=_q_!f2P`Kpc4N6Q5Xk=5-cN z*%8U5bW0@l&n4df;dQf6SXY3dzP*bz^fAbWxC~Jel}wq|qS+W}G-43sbI0oEY_WP| zReqEK`zre^ld6!MIvqu$AUo3DR8V8n(zO(HleDu+125&4C<?6+=$k6|om~R&b}_iz zRC94A!)^AWz`L*2s#ushk!WKA@<d?Wybqu^boWsqbB=DOAEOSV-$1|K@Lkmd<Ld9h zBzZvk82AIm{a^_=?Lg*z5XGZ@p5eyBw8wWy$QM`-1UwG!;VN9Bn?hbt2A&s7(L3HD zLjAM4H5r<kWsSNjT(p3<2KPMJN7wlsU0mQ!D)#Y%II6UElg?0<Ix|UGZjoTdaWMV5 zaUls9H^m4y`Aypb1X#aPE!9UQ*pCengN;ZIlE30VL_lSCHP8(>{jX%5)AHYit@9+i z0~WD>!-^@}30ekwVYwzn=U2#4C0tUsZ3NB|ZFq8zM|VdZf1|YcF>>~%D;A98YO|if zl15z)@1=N1GPH=S%o`B<0A8OnEIGghnU)#*^F0s-n}qC|?gG9;aD>N43{=6~ima_| zF5CP9`4}+AMRCiGlMv2`p(Cp#zTKxrQ=mK|i)IE;sd_@qyE7!ec1e0js!)IngtL2> z_{dE>^`->A4$FIuHXMs_l-ZmJZkiCECJFvxleak_hi@Neh2+fubyeiZ!GVCH`W|Az zf`4fqHI^C*HR&kHZ0PE5xmk(x9`-e3MSLbTH^<WANlL3Xc)yQD#RU|q(}dz2ZCPw_ z`N-0M!3hUN!G!rRiCJoyBJQFy$Gb$7NA4#NDpWH+IDqk?h;u2$sc>PuGJ~=ttQ2s7 zgH24_q776+t342>>NXSA>5zlypiTP*=LvUDbvt(-F2iOAc+-r)**xW@1Z<~59F?N{ z2Ja@sNr6yp3;fA5vfJG6U`3c`3M8bm(nmC$4-gH^`{=*cz<+bJJZU$$?w2?uJ{iLf z#>9vQylA*Gu;B^WXn(O1M<bSANP;KrI1gl16itSzgci1A>cnf0Q=&>7%fT90;s#El zo+4nR!&oPPPGP;QX!9m13<l69GdifyQJhqA)G@wZK%=|pxg_3)RH}c3QHSIv(PNuG zxG^s%)#D2iqN1v!{5G?3r&To$PTx1p_A&c|+ol15F$+D9Gv?snqAU8<h8P(vz**rA zJ_(I5@Eozil!riDqU5@{yfs=vmwQ%J(C}lR&g>@tBY@EJsnU)MuBWcs*dCywJ3Ue{ zA-<KO{MxuR?MNUkZl%(QF5;|93kfY@#U(;AFECsHbX$ein!UQ7I#Tkz67M^?hbRHv zymF2q1zGByX%iB7Kv*X0AUs2MWJX5!SrbEbjj9%sz~e%W4Fv@c2fz-hJ`)oeVgMx? zG6Tocm=NWQ+kD-uqybRbDVvLVy{b)}x;QG+?m*w@)`AYbyg`cd17B-M8DCmFDGP5{ z+@--V@Kz9H^%Cu>59BEwja^oTRVwbe#eAdYU)YjSG3WLfXElnD*Mj|Rs;*!y58g*E zayVJ0vkl;BzpTavKn8TVLUU+R#Z|CzqaO3UxZ~#E$=5GWZL2D!j94zwMD<aA4P4+l z)-4c3-oXwtF*Z3;f|+%(5Zy-@r3QGt*_{ry88Z7sZJuFRyd-=CXHA>SDGe%dBvuCs zLo>E2BeJ}sVxkDaa}3SWt|&|;f&TPpUa!}61r#YPXR8`oN1azA-CrijY_miYLp-S@ zs39UH^Mr0Dl<hn*DE+Hf#^Sip@Err02sJ4j5peG=t4*<3O|VsUibumg*!k%?jX~U^ zEnWshV>A$;(~R6fh+qI08BSl{4K51<ZA$Z!7<wL456tv%AlU<xj3yN8dP&jDtR}-n z!`v`>*3;C-4GJg${S%Gzz)+tUmR~rXu%`CW+-7%uO-Nz$;K2h%9os}EheWURCPSUU zVRClPznaGUrLG;&gd8tc&5E!yXZo7K{L;<aqF{QG@1^!Lky@;jDV{rY$Xpo}nDqG& zXJo8Ja_IlFwm{t>TeKR+tir-n?LER=SXd3=zzyCYhF|hFV2k_;HQ)cJ-eVu9HioR% znKZ))*0XSFytcGwp%MYKKX!_^$alZnQ*hSZbyK$Ym?YxwqHWL5c+gYW#nX{tL^7H% zha9^-gKrY124k1ec(l;_FnP|04TB?E1xEhO&geieYE|&ZP+L>xZz=y8+eP@k`jA~h zi0F*-a=EnN5E|xH;DTi|mO6N!a0mjMi%aXubhN)eul7wi`+O^d;s)Mr;_wzz+Wq$T z@wO#YR+x&8Y{grs)8T6&?zP`z2Y+X=>gPDkX1OqK&Oh?k7<bFL)=^|-cc*Xf{QgPT z$==u6taG%*20~upHTNNwnbu8F!M~}mqr52>z#0yt?uqGm3NqMcUHJ-S7!B8sVo^0f zeB55k@+n}%yVM-*-vENTzD?=<*oV|L!cP*4qj;SLp~9jpt3&NeIz4%Dava{Om?az% zBBLc>g&*3h-$!zA3aLI-6lx#oz;KwDy~C*sj|87HBBE=c#ZL@;O_Gm4R@eyE_4`=d zk|V>LQ}SH<#k#v}OYAXB<!FD7|9$`N%l*%X`tNtu>c;#suc~4N-Ke|iazX9OB`|7d z4tKCeiMKy>i2Q)G;r*1{pwTyr{+J%Weslc#-2iG_HusF~?2#{`>r5iX4xNx^j0qpl zP*B_7$8Y<Z9VFA_Repu`R^+w?r%45Xd?6|W4lCI4fTaA762AMbQ354<oqE$Izdbp6 z_qEG02`|xA*yeZuFj-iNdz<uTBm4U=4wLlhWXvYP@KHLCCcimMMj(bh{dA-pb}Xdb z5hv8vPV$;H9b=czMtL_ciB^tYpT5Zc_tWWT`%nJ(dnA_-II`3?_^W5dtT?R0Vjm`N zs^o;c@sp=~{C&^9^`<4((a8(ea-bW{jj&rz(uYqz`@?58MnlBl^>%dBb(=L$z3l0} z>Z-V_;ENM(U)@2Ed{}d`?G(<*q_#kJ8+3s}N2EZ7(}K-1UOvl?UcQ8i*JWE*C_*RK zd0R@4u4Q@4hxJilgmT~W@r+v|3aJ*|l%13ZQ*)Mtb^2&L;Y*P5cKN{{&WV(oq_I0L z5q7bLGhJ_(&*U;}g0LnCV&`N-t1TFY!Hv3r{!?ryi-zq>UTBJT5>j7Os1$|+GRWb= zz`0iRHoZmUx&ms^Z<-95S<$ApNT!Yf0X&hJM#d%^?6#Z+<_!)}nKZSqU41*VEj&pz z4VKK>{D$wm9Kp&q7J%h-cJ54H)3CoV5QOI}n`-E1qpJc$rLkKV&qQK3*M;p;3t;~I zO#pFVpa>*7Ax>2ve{6+S5Rk_aOktNZv(GMyF2ks?&M_g>=oZYPX>(~b5ObE7^Mv@p zRgsm;tiz}YS-B9SgrQv<Ej~=>yR@=OUOeaf&r)iB7kPL2XH95}TN1l$*_sAi0&E;| z0jDgos!pjXR|;>7Dd`2%cJyESXOH*)c(nh|eE;9s{`vP$9{>1Tz({TgamXK_NgG4r z(h6mQYv_!>?$1X0&I4r#zd%0JWonhS4fux52SLDTh2)bntaDbLGelLzs_-HEz)MuV zO9h6sapEg4JOl;U6Q7Gn)n6dZ^@XKKgI$>Ii&o_o+b<n_TkUn<R-<Ik17?KbNKJf? z4GKddwHbw=vC>gP94!_onAncLLI)xIi;GGbPmzI+se@3OgK6HN)mK^?!Zgek&6M6n zO4PpHHSU2apno_ki)mS8z#h^u?oFkwAA+x_a?|=X^CXN2@Pi^K1Rziw3F_~!ik=PC zxEG|q0^}U?dL#P}u1{{hELyZ=nuumWWa<iAkOGG&BW(-fZ6a=!+hT+#Z{3K5G?yBo z3NJ+}_T7hx)cDj>qNd6=nX=SFg*@%rm?dT>uwX6bB77_)I01AD5V7sbD?K(?BpK0_ zg-x%q4UT3uJYPt?0q<vSfK{hfB#bUX(?Q_GG)P7dM$<@Rn?qpa);OK*N$3rmz`9JV z02c9O36f)31=eNLsC9{(p#0c0TNaPM#feT{`kfR8y4o%yNwskl-C0UM0urutqvJq- ztsPi({nF@K=BQvq&%{ld(LKR@F7pl*^rG0vIfIUzITVyBpy^E=C%laU6LV<@+@id} z`P5aP4mhNXqe7gmY+$L0l2iJfj$jWM!&dghL6zO~lyoFh@=;1<TTqK?Px*|Ijwo2! zXguBp)N-}yE>m;OqHr-9O~0$lDh-|Ir)cJmBT2{8MPaoV(JmliWWsClqDVCs#vZSL z=FblH;jqF8IoAY%8zJe2ZAzH1_fS!<4qX);(A|mYRj!@N)s9uMM|!eGw_TG?MR#cY zv;||e)N6CX_AVJgVdcL;!e)>l(QDZHQE`Rb*XXHTkc*JYTOKSAJt0<p8JW_6?&%<o z>|XzzXbY)$*-O-2fz~lq6gi*L`ADK!6GyQUEgSt#YL4FFwMSng8e2Iexna6Y#%mcL zp>@Sw7`2^1m%tN7=VubBwwx(kw$=KE)u{n|<m14m60SY*FGIXpF4{KA6C+ayRjk>% zC-?fPlS^uu(B!%bt`C}}0N!z`?uT%#C^oSzE`u|=4c@j9`S&u$RdR$ZncJ9<!a=A= zQsm%M)0?tdtX9*j0tBGd(@&=$(mvyszJV|GjVrc1Oy=1Qs-ChY9VhGZ;<A_Cbya~I z0-CBr%l}7=?Ee5=H~^%V6-pz}2dQsyB*RGmPF4TjAtt^_MLFFoiBf0XkKP@>eKjH# zYBv?yu+Xu>n%2>`kDoq0fBYYCwtD>d4{*9Nc;Ud(>hkL%Fx|h@EN>s$!{ik2ib#ot zpwW~Z*6RFfCj^{*`ssf>MqW5HX4DbZ?SHpnzvW&TBPXTbea8ND``ELrKtncht8a9i zDg~&)6IigI1@G1{68M;INgSwQd~dtlRsM)uZ**1AQ|iB|j_QGZ&Rh;AOc?r^E0n-a z@myJK<#QSJpvRjJvd+x4`6I}b0C=6CBu~!A3d(bG5+i$;$~CtZG3jP7F{p`MmKU2= zM3*AdI0eLsNFug=;jt)Uw4wV5tN-c#1uv7x`&-}gBhIMf0t%YMEOA4bNXK_G{EQUO z^-%g59qq|bV?q}_+T=xrt_?e0Ix>>nqJ}3@@AKY<7a|c6lgZtS5$Ch`MKD6TgH?Dt zr}Jz&K6`wAfC~^lOa;Lhv&06I!pBwK+08H}YEbrvmhmtV{00rEbC%tMC+8qw$=@S= zd1Vz*zp%rRg9mls6MdXfvosZ<UKO3BAIBRQhtD+(+KWXSY$Of9h+pjWGYpoH1L{0j zsKhW@knW7c7DJ5~lORyQumj2*O>X_n)9rcGW`+@pF#Zr}(Omv=(=I;>GoNrxt5$dx zqHye;4KHBr0L5B@R@CF1!UHx^Pt48OQc1^T&5^ODSkgCGmX`Ll_L6<-mgTK9cOHFn z^!D|O*IylIK;+`b!FJGSx$o~-m4l#laRrYIfDH!$vrj`ug)LmqJ2psM>~L@hHEV>9 zb6F$Jp)H*VC_$2!2GNo<trNqvM4G-!`I{rY|Hh0VYd+b!lh=W`MoDgY{2x!Bt|hwp z&3d#0%{s9B`Nc<|BGX5#(O#GAbtoaH1_VuXLyW?KHumV4k9>|Y!WT76(s|BW&kpg1 z(JFZh;=5u&!ktC!OwPw|-@bW!Fq(K|Nzt|zL>d9&p2o=c*PwvN>_1uaV7$5a=iPxI zkf1A2^z#pxYo2EzE?Q7<`uusu@n_<AsP)ZKX-i)b4YqXowopk7NWzfEOOiB}8}yAc zJRD3B%Cp*1bjcdR(V47x4&(KKYp{q5-93#s7Hov6$uaHm0qd)QW~DFjVB-cNF(f+( zq$+l~yv33pDK_f95>c}_RxN8jR4~UuO!XqXAiKGU3w+(mNAbdEBbcxGC0UTbj+3HU z{uKY?${lD1!QM|~r)b+^@<MWo_=ch`jHvwTH}<<&XJ|CE3LcM=Psm`=sf`Nw(PA`& z16_j<;ep>v(!tT<#XfMUC*x#4d4j$0t)e|-SX~e{3@TnBdJhk6s(~>$mCqR`AJbw; zQTI+_tX-$dMD&8u`FK3p262}mP{5513g1KKzTvuLkSMrt;PYjH>aEarAHasu55~me zc8^iv6y!$Fy}^st&O;)8xcfh?e_eyUi*#b=J_r<kD2o0Z=z~CzqvRIp8=&4QU(XhK zay3b=5B!u6zWs%9sJb5eX1+SkkAFSl8@>eqlwDRX4$~`Aua=9^*wy<7SY-;mmtDud zuOo*p>%j{!EK6~ztf`>zE&=0j?}16YHWxXOzGHQ9J%Qy*76_caf_gmOGAbh@(Nx^b z(?EH$4wBL9qme`M&MqPC`T~4jS`bd$G%!w|xVo30Cl&SW(kev9Ay;(h&`~5}Jl(oQ z<u+PO;!HgJ><^#+!6`L*hejDAvd@&tEN!QW_5~O{TZW~j)@8_cFUN`l8Y4<+(_tO1 zsOvUGCtQ1#nKo+4IQi74$zKxI<aaJJ^{jmVghsx}<A9m(p)&LJ7rKE*J9SQ~5~z@= zsJiC$M(XbTQYUJrby2`P>FVzoaz<HuV+dGZxU$X>BQC7GP1U>um5L1=3eqN?q&j94 ze#5wY!Tw|6@hCV9$N!66X(^bJE1cn<NW80}cVyh;t>L~)@dK2Fgf@INf_5l}H+;y^ zm-WLWbBWe?X-Sp4^SVT5l@Zl6`59{6xdvIs$vUpq{T(V)F=E3d*<`S~lq2DMhra0r zh6&1*jx-pH+w1R{XxZMIbiCpa<IrD~a>-o<M!@5c)W9*lrW~*=)rBXC_y<0|`0DkW zx5v+pPLCt|prC}&1EeADEYQmX@#mss7EHi_LG<VinowC|bXZ~J(3c9j92&dvIXZYV zZgXh#dgMmQpK<6kzG5NzVUOJ$o;`R90qaq+5g&GBQLKy@8y0LAD*9{yhbmqzZauP~ z%dTV-!lpq1jA@DJ{LH<z`X((~<k{LviblW2)3U2sg`0x(tXdiyYrVKpra=yZ^fwzn zMx7{@ROHs+Dw7}m1DLMo3LQqPe=-8YMsbFrd>iB#duZ`r%yaZtF3HGBEK&;I8wwhm z?kyheEyjdYgBebYK1_5M#twhE9T>R$7#O&!H!$!oj4-etG;rJkDZNoRM(mCwmwm9P z!p`WII<%xB3!_(ue^S+7!xnRTP!IOH2j-|sjz6qh#=aX}_jJQBZEkefG^Flu)}N<O zkuhQ^>k`9pn|2j@dbd9C_aqT5Bf2Yz?;*-DY7d^rVK`{0Vw5*kFm7pL=L1XJK@$99 zdMP-f%wI4HRypTOQzhJ>At>D?@im7b*yy*mzE*lET@`m7-v{cFQpBM1hq(0R@DS^g zglJRON@pW9w5AAz<O-kw$>Wiu<yREl6}>pJq#A^wRFl_ZG$@wYFs+~xxDGjh0$VtX zi*Vig;rBmA0woAxT~v>x#_$a5%u&Bpv0*5Ff*&-JqM>3~C64xTLop7GI4>_ipp(Nu zhYbvzsQv0ym>44txH&&EV-?4)Dk~|_Q5g{nlEUyW=sKP{!qHEy(Rk~M5J}83mM_Gf zNiGj(l&`p;4U#{*Rmk~;mS)^oU5lE5OQJ$;31~2Hy9}`%IK1{QmUw(q89Y4&LJCMu zGM>msPLs05V3(BxgvU}uqj-L#<4VLG-t}&MCvCO!wF-Nbugd;Th4`V!$ogJ?owrvQ zZ3=$2n2>f7@NEe_BT741ibHdb3Eara0{UyY&fydGmZ!Z6qbs26hrG`w<c9d5E-n>@ zcxw4l1oTt;LW-B;fDKp)tWzjwB@X{T%s^F4rfpeJ{7H2fTh|yY8QnL+TA3L%;Tt>H zPL!&f6KXIbVLwd%8t&#nQbS)}9E&9<qGSbOnE3lXI%T5_ZS6*I6c#EL3QZi3_&Jig z-UHo0xb%-<f;8Pc%zZ`U1wDjfvn<%_;4UYeDyd+m;F>K+ZfNac0rhCqy;^#&WDe(} zYOKPrvj~$KgDCPy7#Sho#?+cO=p<g;Hsm-qxQ1ENVQ4-Jkkblj{-G>CLbe`0Wr|(~ zG7$%4lH3g^rN$_2sc3ki3HuQ1koe#OIhzR!{p@gOYn%J5-EAKB@p1tbRfSn`M1Bq1 z*$!DR2D|4&BGJAje+AZy@?>*Yjbl>iif_7t%@amy*P)d?eQ}(<K6>TE*cjauvjz_W z&=3?;d6+}rRrX{qsD2UypG4Zmy^h<L`<@Xe$GQ@ASGR``N075*w}>m*yZnl;O$FZ+ zu2p4`q6Hys01FBjKNjKhIV?OXhAAHa{?bdBG>QcUQcBsg(~jIeHtYvq2wNOWRx?C3 zQqn1zP77{QRurA44rnBVjSTr4v3=TEWno&Kyc=jWp(S*gH9-_gM@R-x7N-}JlXZAa zU3r&Rs);kIKoNM1RNkrk-3|Vs!}5m?Ugr0xPApArFo#Ygew@yc{%M^w#z`a=zXcM6 z4ky5u(Y)7bl^<~z4yavsu*MXVhjbcg0e<FfPq9fvJn%$E{20TWBerRV_Fq10$G6}^ z`G;fL?{<?oj-!(Prr@kV;xuBMVuXJr1L;g%1g~TVkT~kd^vprswK+KJ@aU57j?vPU z46<8saS(NuE58k0U<Mz935Mn{hIngnyOSV;U7GoU=+IAx#`UaNEI4MQ6HHdxP<r@` z9|R<V?~RP$xD6T<u5a?}E_jFqh7YYqPJ&ptD!%!(?sauPh0?;ivK_l^B}?Y8iXRJB zE5{gQGgQazXqd5J{0+C{+0wp-sfrup1co}7dEL0-$aEnYvd#tTAX0di8TE{fXH3>` zF3EkgmCI;3z#FY@D8O_kAG9R&MuD-RosX31ISX-BVp#Grm-HrdV<<CH1-XtA8N8jE zFM)7#a=)Otg3r#wwrEoLrzNWL)Ug~Ye>)SX40<GYr3i7sBAj?NuxVQbl+9BR2Ku-U zK!DHAXdhzU*(7qzpHMoswn44w{u4?lLuoWT#FtCE2ZvDHUrKf-wJO#9PU{{IB|}5u z1hdX)EC^;q(m+RbD}xGQ6reE-QfAdlnSDnD5srq8E>u}pP|^p%YoN-sYXG(BXc99S z65Sl_lVoLsiPyk~=wp%y8n7zLR`;X6<+|sT)>k>1qlF>?9uqaB0G-_H2YN4`yRuj< zs1kyVHyl4V`jG5l`7m7y2uz(v0Ap9lC{6TCK60jXIp;1#*$OLBEUK}pD3z>k0qq2J zwXhz?>~R=V8s1r)s#GgyC2|lW%#YQ=5Lxcq-TxC{hzv0QWRL4UK`<?3%MRL^stwNJ zL#`ZTMltDd_F!j5XM5eb-bnVkgX9?-c7eRRCzHXHz$sHBX%l|o^Y3~bia>;qDf(*l z!MQ%@PHYrT^uU}`3vIIzqB{Y}aq%)tdH1FyAJ_PpJYolU222!PIp&e<F!J<nRn7xO zi&oFEIUutM{S_^GFXylj+3nCBi!dkVp5{0HOH<}^n*v$;@ssE;MsOXgV<{fsY~_a@ z-<`DXG9jUn2i_3llQje}>dM31>%&+N_XdX7*Y&EKmRqR6Tyg^x@&7H7aQD5aY}R6K zk1poNZX;eY{DXu2C+GKQf-<lSw7><X-Q{MvMBf{UXYcG-PV~t_2hUTp8xnMOJR<O3 zu}4X$ghf*sUu1+9x;Bp8KpDOR2O3ORo1u?g2YNP#OJ;BsItU$)w$<aql~+}qxwf`S zo(@nOq)K}!g)7>s_aOa-E86OKqpJB~hssf1eGFs_1->HR9}Rs9bm~Vx=UZFkU0taw zdDG06{%ac7iV#aK2s*wKl&wZG18ab77ZFUDsfX|O@nIgX)F=_H1&?MoC7$>AT8$3` z<my7=XAyb!m+{%mQ98=^z-a@6yE=e&)mNzd{KZa+3lnPe(l)5$F>k};H+%8;p!#xe z&j?1CCk9-ZG&mG2^aX0j3eF6M3BO3SwwU7R9G;}Pgu9=SX*%T?OxqaCca;1=!fC_w zG+<Nkp$v^G{}iU?0{FQYn?0%zU~c&M1`*M#n|7Bq<R6P8+(i+=u9gp!^Ul&-$8-hf zyDl+TUgZD@%77ppy{IS^xV(GCg(%mvu{NzRkehO~5P3JHt)%iQrtr&6F*mPz4bwWE z@vRo6+51A;|IE>FRK)xiZW$6{Vz^<vIXQlN^zO~uQ%}Mf{Rt=pRp1!gZR*;{jQ(_J zeReWcjJ`0xUbvONuqt1;m94MEznrhXu|8M9L^Sd<Oyez#ti?!_>!t*uvmK2_>7Q@M z-*z8cVADUJ{0T_^3-a^(fjtg?=x6N@IsE?`|LxizWOl3{mW^{f0B{JQZob&-#`sqS zyL3ib=)3Z|_yWFv`{(hWL#>iU;ujdIdV2mz`sahQtG}&ZU3}HQYfg&efB*CDALr$t z&;B|)hw65lzqRo)LP{I`AY!4cb679MwCLt}Q%v+cPtm9qjYu@CHD<9e5GK7VOd?c; z(H7Y8x(?aC(Js-JAa7)B`^tXR>*+;X!%7~}OV=sU^PSoWF8uBamAGt66JiJ+n89Q+ z_iq$^L;f1j>)yL*<}w;1@#C-JKMZxR)%tDB_dHh#g5VRKdj@4JcR)5va-tJruzN*d zXR2!5s350e?Bq~n5A^ii+bqt6XkdfvfJ($!f-3S~SVTDKVt^iDP<=o@rgXT$JPDU6 z+gS%7{B{rmT3Qa*|2S4(8HdwbtD?Q*!Vx>$&e^<{1#d#`27BfYIhvWxf4Js<q~$>S zgN*Y3gV>PDfc9)hHW#ZWSY5vV@1y;HBE!q}&p!#a@>?H&gZ#}RqX3V?XU$hI+0MKU zAD`dh6W|E$it*~uGO_x3&!yt=0=49Y01#T{*1!}vAz72ev2;Z1oRaLSagklOW^i<Q z?}xN7>qHrvj7%+I*~AleRIQuT1U~Ul??o*X<I-}LC1!zqRTz=<<y%|OqHvjaurO|g z=_AYrM%Sb}w^%&az!^%-Pk;>{gicN0KmPIC>f8SNC;ZQ+KmON9*nWyG82z2Vp?;Kn z%)L5$avt_qKBZwC+u><d!IKxy{`TdIx2NyWPeJ|A9eZ{B_N!z3Mt|t{r!QWA^^!jD zU;4{eZ{NH>A+HDgL%;u$I({m!@A&59iDp55{prXqh#5>q(uAbbFGoDd7_q~lYPB;X zZTD#K@8<RqO9Iod2Ch`di{P%I>Bf7_iM+$jCLHLSVTPl5h{HD(0l8rM=7inWIlBfP z%g+PO>c(`*P<Cb??{kA<)|0voZr#OGTc9^Uwy7{bEAYfFj4X^+iUrm7+HqE}8+7fi zMwB?0#)#df+cur{v)i;37y!r4op7V>k|z*nXomH$Zay2)CHn}Exfn`a{Cx8J+dqzw zuVBK~qU|}5CYIlqCHJX}1^(#e%QxQ~KL>t`f<-!dgmm)>{%3;!N%23fd;BWz`b<u| z_(8Kze-{`}lm4RguZJRWwfo=Q=!t<LoS#foXAz=;+Qxw5cY%DDuNok`>3g9f3fTY> zvi)#6Fo>pL#fO};yr=Y5B_+H{W^F#d!W8H-n%^a$YsHx~EcOsyK|g7}e)53u`DvU) zJ~4-Y?a*O-#@hLxNLm_8m=MtEz5e<B)nAX_PE0gL!nF#4ZYPY{<KjQI6&6-%`0sF0 zHbg1{X$*PTLsma#$36-6Y#UMhbYckZ^`>NpsyJSp6TuI%b<tiF(nMCgn_t%D+<i%6 zspr~?kCZ$D@`6YdqXf$kEq<^}@h~}l{p`(ikg;(0qf9g~aB1k>s9b(S`v!>b6p>b< z9d<nlbj15r#BNO83ArEcvpOORB7ikp@Jm^+)EGO9#vt>VS#%K^>~lQ8K9wuICW~QS z`w-!U_8YQ`B_rU=qAR+DU=4y|Qc#i9iS+5+KqRd&tH+1!l8klW@cA>AiYB9>IMcsa zk9ZZj8{1@HW`2Rb?AWr*(&7;AFkSGG-8xE+9!wr2YYaHFgcA^kbXUhieZ1k5W)!qy zM^eOhdlj#`3%iP;=h3f%o<~0!J<GD~dP!V|UY`cg3M_A-EAF_zh`l6yeJ`Kw3{M@u zCrN6KU}E=c9A<_1xbqb|7U1(i^R+wI9?c5$!j5(oAM4`FK(}>t-x;A(p%IWv!h*gV zzS3cQ{dC%XUr9gd<U#siJ0a6<u{$BM{PI)jkQ6r)ZhLoH`(yxj>_TU>xbuq4H;dA$ zc`uP~7!zUzIGq!jx9o;LfQx-1xEP27v!cJjKotE=?eem2I}L1~Fw)IUWGp3FZsLq# zkZ%l${h{H#5y~JD<Z51DpyahUNFIFu_{RrIXDKvK(J_YQx8v8(Umd;u+wt3QpZx87 zr?q*{JySbraV_WM!8&F6HIujTsRHK3STT&l^%O<?5tek$h&RICd7a1rO<&J_%PrDk zdzI(??SP96d*BTyHkRz|k3@_m2f)dP4}Fn19}b#TH?4xqYb2kS^g?_pKF<mia*b`% zH4PI%xM8(X|11+X{k3PXDd$&(ybn=!);yDg+|sVNg(vd7+Es=W-_EHzjCqzW0%+H_ zB5a~)WA<l3tcffrcs3I6Lb0(0!jL&`#a19mhXKMG8Emup%Jm|5x~Y6<x6hGSnDOo1 zY@E)DLZ}<v07LAB@?hZLs4kN6ruuPcI1Gq3pk)6^6cFuXyuIm}h&xqL+a59oi(}tJ zKuWq77mmDmL&?Dv#Mj*W8g|GLF#V42G9`YkGmXl4d-6I(<%y<?7;Rvzs5qqtSe=x1 zctbN^)tkU|zlIEe*>s*OmFtU5J09aL5Gg&DK$nyujI2Go{t->=0KD%B+Jrjt<GxI> z9E${n4^bp7JUyaJt-;;5pzXNyXdfvRM@79ISbi*U{dyF7xH}EroBR~zp$kZ;Y!FK{ z?f)au^!T2%6!Nb(pI?dF<@ZC<y;+&f#qLi_|0B^9rKO=`8u@Wz*nC0*-KC?M#Oj(h z>|%zFS)->H4gRzKET?~(r}$5Oae@Ej`J9U8*TaKzqypXU@IZxS!cynTSRN!xvOGs) z@Iw>sz$UQGEj`wZV*0x`#&N*4ge=UZL<7<mC*(6`U`qhmg$P7ZZ<T~)VLJ7PV<WKo zLukM{H^8lhEk?r=Wmxnn5|4u}cg+yMFo`@AxuM!lO1`WG5mtseAQ)%2xr|-vv&NH( z6Pq0tk2{$(F~<1g*bhXx3y)y8n4$cPyx~sJN;=t4l8t*oda#dvil6Lt56EU$&XSt1 zCj-<saI$zPbV!|2Qq@gUQ`}TmBYi?>kDhFTc=ws4jFzj*K8cpS&m0Y6aP-$2#9p~2 z>~SpAJx+;BV<T~MlHAoB9zC1o-6e=?WAG1#CrZzTv3fpiHaO!4x-kXK2<77-U9ip} z=HmzXM#hkd_86W{P&LSP?F5z~IFWO(INuLATeZc%HXspcJ;CU}8tZ^ZlW6(?qo;o& z{CR`4DaU$G&%z+>N?1d#R+@kA+P5t3*871yB#1+u<eXLq;ngg1Xbn^sX}KcxWgf5r z07mMq2oN)m+7PxImu56_n_zk@RaI;jk=k-A83HhCqqX7FP*wEGr&J?ZizdM_FmACS zka=)8F4r9b;15UD-ZC6yM+XKo+trD1_}+q&2{dU;r#kV~edC`;k=o=XyAY}f6ir(% zHldJt@zJChac;UOiiSeZk&e|JVW`Z2PMw8CA>&~u-2e)F52_-`2i**pV=dOXH>l^n z7w)pG@|DryAmZR{h9e;3Zg)f>oo%8LN>sAf5o;j<*-*MVQn`RM2^Eb87!8sHRS#YU z*;vq6!UdY6cS%`K|9aOK-HSI;HbB{8%8{MZ(WYPSe{OnD_!&&;8dHufV52R(ujO5t z`Xl8&Ofg108p@fzFT$-(-LJjFKLY-Bp^Ls(oYW$juWJ1FQQZ`jP(j()(n1mTO(kAu zrjI8SMa4kC*mUfkukx--s1GlCzC}#y8D>>-NQzD}z=6s>%Y?T^&_bPNfF14y^7xN% zAxbYp<_3=g&gL1#CgbL!3AG7OsB#5NFJ4*7W3mTdaI_ht>#=NAG%u%p-7vzCPJNP= z{yGM{GqXKkP_%mU$zkH_-^F+dv_0U8g;hCb9~%J+tq5MMZtSa!@%YeX|6-T>f1J0} zCMtnbV<AWfq1g4D)12w5J<nHjky5%FNMGD?{*8Vi%gTtOsszR>5a0Y{SeJd@$gg%f zETfvUXp2t9Ej7xR>#eS@%(Ngh67e#WnTK3d>8sb!+2|R4A?_;*dFgms`A*|awid@* z(;6|g7uj1r5$NuDfwcwEAl&crmZCuLFM)xyX}x)GT1rtO3dpepg0fp7pPf!SaoLSA zh`6xMl)CZAjgZxrzaK{RkqOr#DGX)A0W&Rw=Fkty#RJ%(I4GmO1ro6bY-*C}5`R*A z1Y@{KvrQ+Tt1-2xWSSTWaedosKMRaGS`LeoOKYTkiVLiLj)c=tM~4UtveO5hr4^Ge zI3Ml77!h=barh7;<Ch&eN}*2{hMkIp=Qi3?z|Vv6QvHHPvTHkpYk#>}&#Js!1(=Qg zW)p`|C+Nwkz7K%(6Nsr#fsN5frm6dcgR#1Q_C3c?*KdD35BEFL-)`Cg4PiE|L!lb( z4+82InT1@XKNwNC>)>l6i=Mc{_76QyT5k<Xy}1Vzd8#(R=vViEgQ@`o2LE*Hk1#p1 z$YTkZcm1iC9I36hqqJ#s2lo0{28D3u1Ua#Ryy!dS8XwGmZst56%5&}`DITpsGm;TE zQ(9cZQ^#?rHe($IIG<A{mP}8m7yXsL+bWH((9r4(OrZSaL>`YV$|zJ_0q;QsS=hXH zQFh4qve1sni7@a>oF^M?8=%gULw7^46SfT`c9m2?t$VqQ*JwJhZtNB2ZWG^d8ni^D z(yllCe!bl1)T;`F%wCrk(~Bv{;1_ThK-b)=pyb*jrS`-D-4#WGlI6jpN3+dEH)Xe> zY298tqD0+Ke*f9;|M2POPTKNNR2O5=m_7jh!LCi!ADe!TnG;lh%}rF}A+*R0LC-)e z&WZ7R3j6XB;iRLzf9$RI+`#GLpquIt36tavZ2ikseItLK(jNhifjQ9igg;D<HhrB? zjz1hNXZ$6B1HF)2U@T2tnE{qQ&VU8Z;0PlMQF>{S6Vd>S3BKC}Mr*2*e07uGb({iZ zzAEyHo9U*Us~Y}?zO5*ftZTY`OWyq*W|N}gDv+eckuq31nqTG(X7D6;`J5B9jEbi0 z>P6w@wehHWuM?x-&=CN2?4^q3C1+OSf<qfSm0-TuC4vLfyXib{%06GA3S&Gm>A>%b zDT8&J8RN=lZ|alH-qh;@ZxhQV>MQBPWXW)fPFYJ9%d|PHd=>XUv+Edp>%jGwT_>`G zhD${+@PZvd1@4v|F4!S)g%4*apuBZi6{!7<^=Jx<5sqKu?K`8M$Z$wm+zWD8rE5(3 z3MWm9!`2OPe(Js2R26*xFybZ__FEZGjK&lFI<kQew52}bk`2%<KF;N#0YhJ&>AL4` zoKD^P(D}#gO1NAc8)K7oeuHVpZ^-x;*kC!=x3MzY(X3F%Xd~g6&yS=IH$s(UZqODZ z;Tnq^N-W0w8bk;$EVf}Mq#7DZr>e^vs8V`m?|2(D_z9n)U)RD8LN>9)ZT~msnOWY! zkXUn=eE*|^;`wEP2A3F&0~5HJ(f=6Dml_-D8a|_FLAXI#8%Qayux(jhTDbV@4%f02 zzPMCCTRN;i01yu_J2K_9;FyUionsS`9K7@+L&y1_!}i<`n{3Xw9gQ<P3D2?{vh)Li zc<dgOhsmkvq=|n_E(QBEq6O7}sN6S$wMlJfaSMmdu5-O1;=OAzh3_nFM`z!5lSiL? zd-m;lIzC4MARA3Wb-eSO=;2|ga2Tan+@gan!gtND+64DJ7=R~K(Dv)I_{}R!d)RGS z&SYpUf=yKdf7E@o#U}Z7lH}`Id9kTCow6l#1{6uxy(AsJS9_d%kp!~s3@kMt#E`|7 zJM$nd?Mtyr5301e$-P&(zi4(}G2E^1%f*k$e)2ug@sHnQ1gjsFZ&+9|SsVri7`{jb zn1{5>iIV!PFKHxP54&+VO49Ei|2S5?aazSPuskB1gT99KC0>heYNsQ)c><~4X^9E% zKMQS3NtT1o*~TLiXY`79!q?bclxEYRp^k^&=JZdS(9@(!Znx+ZBhZBut{js<6Q zvW;DasLI;ol&=-na7MRSBwxRKcan%}6Oe#v-cfNT+A3ekRO4{ygX7tTQw6S7en1Bv zrneLZ5H?HOtXA^QN~8_cf=(bOom<|>Oy`Y4V!*mPQWBtjapl6bxahk#&)+1^FiJ8E z8#Sdkrx!IGu~5dcgdM>#&K{r3MG#eglVH{rJ&7Yqc9MtWk`vT~onv=qVYg;uK9y8# z8x`9&E4FRhwr$(CZ6_7mwma|na{Bb>9=(6W+V{dW=dzWXpUZhLZpdB)QMH!qO?4N4 z-(GQUqk2a0r{<4ov-y6C(#C1;Ul^2E<Zvbh41Xt1t09mf1(H9wyV-fljb^pagCpmG zuR$EziIGrpQf<@<gCPc@m=qYRG}hp@MvRyQPc#Lbu%A{_ux)zm$QoZZYa3+hCWAQ` zTG<y(!epjfywF(_m_?}$YbxE{>urkYwNCfMR;SPN)zX-xbLT&@iFtGv7kC6CNNEGl zvEF0}Wu^m#&%<^K8tu861f=c?xKsbOe#I<Wv1U|Sz40J5nG4cwkzi!AM!`|Ce^aAb zrLI$^bAkHKwtW1MzSa6#MJtp&I&7xJ!TNYFG?L0$s)W=G?y7~UwWtcf_@4<<5Rptd z3UK0i90?QKzNJ8q$-{s)4C>o##u?D9_vXw5gz@|%mAz5eP78D2_jt`En_A9#s#*rK zFS&`9zUd83)KLv4#`t)A-@!38^c!QBVJ9+7R4i@hekz_nB}0n9OGV&JJoT9PO=b)N z_?UE`dx7V4CL~H)3!&PW^2oUEGQOL}xKCgg;r*q-9%3#xCv)J7Ym;>KHw907rv;p< z(HUxWJ*wR1x{z)U9owH*&jv_cB|z$+C~d=Qgs_ZSmM56Y1;5nU#jw%OP`&T~q080y zz!?~E!bEJv&EUSJjGK<yIH1IOHLEJbjdBMITFY2F_YMAuy;8W^HX3{&p~$2{Qr&8m z%A};-2yk&wq47qF-0I`CehH2N_}sk6<uJrcon3<W(TEy;(E}nm8gF~mA)8pV(LL+r zIf2ub35i1!cg-hE93Ni^<=<aOGE42EvbeloA7%8%-SEXG?QnZZc9;!S*PD?CzEKa} zUoHPebWdALTu-O*)JFs^LbbItJnULC&}z3~7r;t-9v7%at28jyIn3Zdw5uV38#C76 zxt8SN*K_3>C_KbN3f8s1n+Yc>dm{cyo)VHg#%Tp_P=JOIUB~U(37w!e=<G&^g8sPd z<A_|3i;oCQNXHkNZ|(y79Iu=Zu`;PAmC}aQ;Wv`b8=jRv_5$2;hV=XpokWG$8ct@} z`G08_sq}fW*B`AO=>bHGgiGK~TD!>|iNF6Hq{gU5Q$`(7v6xDV8!6NNq29@=F=;8H zd`nhWubVPfw`>b)kAd;4VGwM)s;HV;q=d({<-(~O6BAf|mg?85O1y_+R<sh{U)3HN zR}T=_?6&RYR5|K0o9L#a0kRCQ&4?v;Bv@w&*z$$MR1N}8UjONMDM#=lfkMp?8&F(# z_MeTA(UFsrW|98|Ku?T2r!iK_V5-i6MzHGIK3qa2wWP!u(MKW>EW0^fT1RgVz$4UJ zC7^Ij^i4NhHcRR};8VtqV#n_kLV~tn<OM5LfH{)86s&x(sQSrq6y#%GGJJa*q;{Jf zv=0R{UHO$aUW3Om|L1b*$|eISuL}!1j}3Z)&E?9he4;Tem1l}kGwtbpZd8tToJBm! z6g$?-nQ(=0J6+WvYEz3{a3oImHT3F_{-bCYw3>cDL>Wd#)2@O}&^}fJ{8%<9E=Hej zgJiUczI7UA9Y2kr@hRb;z+jPMnF%pwEIu}aBaR~!yhlU9_kwT83(L$6NgH?2XWxDn zfHuqu6i(WrmcO$}F&I&QyTn8CigNSp(g_|p%9@UT7<bDeq_2**aUWA0R*&!rD@-0T zU^zM$6kYro@NyObLwq&(XI77scQ@Wt9Pp_=r`DjY6@YxRr&`Q0sHJ1`j%R(_HEokL zi)2`=46Jczyb|><QQSGkm`UW7R)~}aNsLZ~R^p}RP9u%G#Y5xZB+yjN8vWnIl=+bI zVKhOOs~H@Sk#P?g%ta25H+BmWwy(GI%|VP0+eoFx!s#M?C0eI@L|$`AsFQ}iiABJ2 zewx-V9blpkDx1pYGe@?n3Kzw-?CGVY<6x*Aq=}(nbb=zr0?mZR%0YN5$-lV;DU^oU zqL$L@*ve81$)hv0!Ah%=)RPM6$y~@VZ^B)5AN&A!EE^lpY4c~R-fp}Yf#LOrQn&a4 z3{TN#-~>6(#J>clHw83+evMGZ#v-Q77a?={(K{3w^OVubPEAh)4~WIWZm;JvVz=)n z65MiS99)Q_iYfn?2q<K|VfZcFVxtypOW_W*5@I89Y7=79*ovtf7gY~!n_muxIPHz( zx{t|@T$mS$YF7d6Mj)$22If^7U4J9IS8zvRI&$>~x+4Z$V}qPUL1+UM!qE-VRwz`D zJATI?o?efI3>w!7!frba??CPvjGgK?SWiZ9MojV4Ag~kL&!y!V%3j$|wGf@V%LAN$ z=;635mtJ79kPv2p)vwskpevr9ejY}f(sul^XhxD6q4hicEfgK%J`~Sr!s_1bZNf#= zaU`RAsDDHjgi&IRawj=@D07u4b7MyPwKdU$WaH6nRynYl--Xv9jz-~78p{q)5H06I zT}=HK%Uv1;6(|&KFpLduXi`h9RC)Pe!hX}*X%%<8))Pw7?PNRD-|Ge-21)M}v0$43 z$BT!B*wzRtY3ZQ-u~5ALzmy7PEZZ2Em9`Y3e|Pyih^Zy=GaElS_6~Vw#~IZmP#R$Q za*sixSxfci6mT|l0xQn?P51Z@-YSbfB;3!>2Q;^d^q=*!@2KPs15~1*&$7b9O3Wni zusfC>BJm5<FP!lkFtHEC!bptzeIiLIXmHL8AsEg&VOC!pk0tI2D$Uo$+934$ynn%I zSt(de@eN)Mu5Ef@mlIRIj9pqa-j5_BU7gSIjO|k{#v02TGqU%_@WfLQeH$4^!d(RE zC4>P?w307OHuK{^Q{PpsNJ8IN)fCPo9vKL8hKe-K{h6bd?<VRt#tng0RSSDr;ziAL z1N(*D=ImhPE~jfO%-w|_S%OBF`I{~q9R^wes7iuwSlXas<=FCb)&8ok`enBy9bGEA zJgcs>suKacn-<FI`*K-rY))Nv1QYL+L~acnN3pBVGn%$uzNrg;k>$fiCKja@GfchJ zV<6Z!1>sIfOPL~MFmw&Sa?1ULMdh5E2>>J1d-CyWKxC5lOG>BVzdkhB2#XA6c~(^H z7_t;vNj19Bch7Zt&1Qe2DwfjvZ80thvqS<8>BJ#LGt2r6{be9MKuFenR{nnDp~ML5 zlHv1(X<nr^V?izLV?ccEl69zjmx_H|zKep5l=>d1^2b$s_^CK^oRH!9DHo)_OAO!$ zY04aJyE3*HV3n#5C;42;U{}iK3?DNy(>9dBjSYjt(z;uL@$bCYBa6V;#C}4Q*~``! zFJ9T041uqKgaSxaFbc#cwexy*@fyNF4<}kgESxUfqVaBNmv6RIB9Z>X4#GDZM)nLx zx|rwl^H^S2us@u6ICPYOUPN>cRuMB<8|qY342mv(_hU~WAX|ha-zH}y3*3n~6L=HG zdyA%MAsRpTqy3Kk`I-zTY(+R{VY+T$jjfUN+6zqS7s&4C@oC12xm$SO#k3~04hCWN zsGoG7aHQ2Aui3*a<sj+&%a6&xiec!FfZ?(e)@5MN{uVl}c{$=3@q873@hkp{<g1@B zx8-kwSN!H%2FE&yw5_otD*MOCd^Q+|&EktOOTM<VdLdSNPG(e>@}mkm)yAGK<Xci; zoCDPWw1yNXFXlvBbN;!m$~`lOw)bL~2zzB0?Hka0yTzJ<24VVj%}g@d^7Hh3ds9HJ zW|t^EbR%G_&kjNi7?OZL6=?^O@)Lt5>Sk_wse2#@^C39u1|Es28GzcB;}Uqno94i& zjcB*X>a-F;^``4?R53!Jc8~WMyb1F_Z`GytXcPeZs6AiAG$w7F!J|fFH)t5{6NMPS z=B)5{hexL>eCQ#2mYu2Fbg#I&+vpizV2RMte#AsI_%3cF6uuB~0FvF8X<E?^qdoMy z<TVuiDU)UNS;jsmWQ_4nS_SKpPB$EdT7S=8Rs3yz)idZY_LdYz-e{Xoto4<$bs&DO zfwe{^daLW@d}9CN#ixf82QWyJqi8()dyK_UJ!(cMJ__S|;f^;kwBTa-Zrd}(cAKK) zDl`TyXSb$5G~5w-nmk0_KPE^9?rvqxG|8rApkMT6fPADcL<<2P456;-lZa(BW*NcO zj1hp;v!TylKC0qBU8pNU>UMxc^}O3ac5EUG*Iy~d-(J=-e1T_55Pt}cx8FW>V%>{P z0^xfF))KZd-Ho{LLCzSE<+9O7{bS*v=?&`?fpm?JfOT}%(9s%6yPGz)zQgEp`oQ2A zSc>qFiI6;2N`c-<D=ElQ%Hqq>pZwIb*OXrcDbkWd$Xj&_)pBc8VLKl)T^A9xFgK1B zVrS}AOkZ6K<h->--&_chrNhg0M;GbTJ8dMZC6Hlelq$3kV@1BQLPwW{5RJoB|2?2l z#V~Yh>X>@FIS@glDE%s7xqBOstlph4@*7a8tq6OcN<BR)Sxm&qJuCF+6dQU_a4ZA< zfUbPF6OgAMdFK#INQG@ERO5`5SxxaRFmAVV)o)QhiP|1|yISK68qgrvO)Hdx-O>vm zMx4WD$0PNH^a+wQN7=tgcujPdctj)+dx!sLvBGvxEs2qbNOrr&i$Z2)k7@`vwPrm3 ztOQ+lH<i-CIT&+)P&T4f3;fY)v{~RZHV7AFdSAe;vmgkZ$M1pjneiJR-w^q|`|mO4 z-=W%PEEX)VZ-5tH#g~>=j&}cxkj8WWP$oYRgSn%!6>zx(F+9LNm>n|EM%F|6n%ozW zV$g{HZ<;J~*pS_US$iZ(0Sl`00K7WX51oe;LF=iT_LizLPl+AAU3K=k*IS%0PTq-5 zB5Pq33e<n{9UunI`V~iu-|g!4cJ;I1yqKWX$-?$Y>f+$x=6*Xvujt;{&-TF;!rQ%L zIh}iDVJ#?>0=>yXrt!-SvW`yKnMwj3ikdv}4q=CJ<qNJAe?>)Le(pTsZxJ{3_EAV` zB_Wn})2KwW=1x*%8%_O0cYMOncY)0#V7up{LtheGAb*5FxGMW#C_TC%Ei`kMcUA?> zb{2*wyTcBcd|w|YW?!#QfU}mccVPBFhiu`l+Up83@obJCL0)@NrXy(42$3L-L;2um zRp_r8FlI&9XzDCIOV;Ep-)lD&)%(<H&j69F{&zVK5`a(#TC0}-_=72G9_^S&)xI}T z-y5iBmbr;)C2{@1rZ|CgrCTG7Zp(?`!z|a0U(<nP*GlRdmqWA*_cb5iMe77Agr>u# zxIU_N!}`P~eS6$NtaW^wy!3mG1yf#0ao|m=e!brz5Mg6heV1g+G=zir#%zS5p%zxj z?e!(z+!8lVBt7&ePK``|@|GmlO{+}u+|K6AB&e-LB&s|o(|cpY5%!Y<^?dV|^d1ke z3wxe@Z+DM}TpHN1Fwo<y!(S{a*d1{B{YZL$FDDCDna}VzU^W8L9r$s2_YRZA?<@1= ztXv9cG#y@kAf|>Ki-@f(-c=`FC$nCL2PCUqwa?Qtk0rnYDcX(px{GI<DKK({gp#6h zSPz3vmHitHpEFQ;1Oc4@Q#&%1bxRv36&z}QeVcEaavI&mw&epVbux+yFdcxtgV`K} z8{N9nMdxD=AB~gc3@e{p>Sn1}8XF9hC(AGaqX22=x4yY2EYO5G)XWIM4c;vL@E;#1 zDAk27H}H-Rr^r+$+=1<CAo;cUXC=dl@UPIKq(X>vI-ldQaBN-&NV;c-B!4n;djvmi zeWX&rnr~d<iq8zfui{Nde#XB9n8oF;<bo@VHY6sd*TYAB<CCJb3`I#R+=TmV2%J_* z)5V1E#PoeX5VcQal|I;y39=4GSV}q%$6!wECchU2Q_qkm;t))_ugMp0gFHrO#AnTR z<IQp;x=DX~PdiV+Ov!K>7d2W^bca|2zkKIVLSGpKqUPi%8z_j#9K|jg950Qq+-S*# z*(Hs2=f)BN(nbR$T+WEBaxzmbM0edk&=!V^P_WF&bVCc*pBFmDMg03osoS6irqJh^ z1NUQBvbL+Pk@)fa9r_zZkw^OKGS=c&OeP{IqWa;3X?4p7a230>IPKDtX_Sj^tH!6! zJ1qPuV#+r272@_&a|E}v6Iz<;QyuqqKL-i3!q>#m>z^5Eh|+U`EA<4q$Y}=J5E-}Y z(na&gY{pc~A)ANNnUe}rQ|s+qRGAgH-Ol|S2jtenf8>nPizkj!Y^fWgB4+2y>9B#h zPF;E@CHykyN!A3Msfh(+KBGs~`+rx{Qy+~=RQILH7iHD*-2F3^mm`*)(WPu1;%p*C ztgziNWyOvpYCQ%A6OSiyS<{X<ZHEQJuz#bi0`81DFDJ*`irVKy)vp+)YZ_;5v&UMU z`o3UK7G}xc4@owJ&M8D5bNGfygL4j3{AZk@C+<2sS8!FFxwh6N*0KZVZdSNgZBAaG zWNHpVgSmmCfL|A@ODZ-s8>KFBrPhWXS_0a!4}q>+2X6tKpsjsi$`(SSZE7B)Hl<sA z<Ypp5B&;49h+z1&)kregTD!FpUj|owzFDzqEt)J>V*!30Zz!|8YbgLK4Jw<<VrNJ= zC651i{1lDOe;}s3BJXJwD`C7*oRw8tfIo5ag-#%vM(dGwWg9**&YM4E;-(e^r$hsU zbv<Ejn;8v_78%DFKg!0*0t^8+U|AoW)XdU=l4G|UeqtAtvfgR9U=;Ljyx6Ab$bON} z58N;d3vOmuTZoR2I&A4`ln{>_1NqZN5HxW1iGvaK$s{-RK<waXZ>czDi1|px==A&? zTv&_7ji$=Tz~U~0e54aUA(={&d$i_zY2KO=^zi;k)d`G=J|U`Hx1kyfC(1V@{xwdF z@Wy{4<fH_=H%UcAb{vfN%+~5IVhIz8kSIzoCvvp}EH8mM8bOU}+`o*zBiFAHV?71q zC)5FaM$$BFTGP=4GLK=Ve;8p~y{gJ40o+6|K>_Kn9Z~V_tOlaJ@wFC6&0zuL>@kD_ zF5X(PB(v4Mcxqi3dyOMeipKJbEnC5JQq{Y8FktAep$V%7M$Z$3@9$xbCiSp5pfHjO zebi_z*q=h;Wco7R)2n$!kEw~<dQU2VH>S~M$8h}t=%WaOSj-S*kDCpoJEw`$7w6Ke zxs{<KYDu4)g*G}wc@qC^13kK&Xt*e24)1gNOv&6)(hhSZd}tdR)JbvU(c>?_A$tA_ zNN3LJ<VoMnN2=AQ(E;@}FuA3MQK9Na6hKV(RWdTU`C+M$#NezNQp{`(fE&S^8Tz~S z3gj!?i2y!!O7=V`(1%nnXM}|p{&5;2RMrzKH}2|t8r$>=F;kLU<77t=VH(3&AAKvz z@~i%NF+ao8*ZR(yELObzxnpSM8#hC)1K4~p!Ta@^pXVbF;D^D2p<EnKY2+|Gd_A2) zopAUo)5FFmtnIz$=7nXEcdZ#uZ2RA4)q@=9UduJMeu;5bYMbIOE2c6uxCBOv-zL?U zt$-UUY%x%V3sukh!nniL2@Er%?HklqChyq3f?rtFmF~vg93$v$??2->?+f87B?^(w z4MZkw2{ridkuZtd+^E;7N_aw9e4IfAz+Y~bN?~?s4G}VafE!JII(|Yf_0~Lo4s)Y~ z+%T4LJT-DIfeEY|iIZXQskQ@*I$*`?#_ACA=*DIiSZP%SQ_I}ZvmX>UW(2MbBYMWp zd?Cowe_{J#0GEdL^N%g~p3X>D^;B|TNhd<J=WH$Y$z~V$+O?wv$V9*t8~z{7^>ed_ zJ@#qdh|il4Hnm=z>+NnwMw9HUveSlW3_0~Iz!KT7u@BPziOdB$p<yoeMhBbe{ZsbH zPVCYPE+$4Dyw(OR@y#olYFm_YbBw<mqY!&kia1)mJJe@Q^(NA}H-~V6O+6!k?nKe( zFd3KwY3vZqKEk~tS@$jsZ}C#JKd9lNQC=b3S)+nOZ}5St^+yQB83KtnV9i547ZzCu zjWZgG=k~bLPBGS-JAB_9_8AaY;XK~sHipSA;O2GZu)J$QaXW5t(6U^W7nkOpoVsKY z$pd9_NM3C;XVNnw5EvbKhI>VB2|<44jCapyW(;ep6J-53`!Hbr$+~<mj)g(Mmz8^4 z<T)FUDNaeA9G~1<;aS~WJYILi?A&hgg`6Q-Zf_3@+cBR`^;35+pC=k?JP!`b%PPW; z83$dXV2Why?dm9hJTONC+7*X0mZdE@W5qYoM1SIx-Ax*oSM3yNLtWCyq$*}<vdV0~ zf4@1N-ZD*$M$j`J(8=T2oxSdt+ro|HE4ujpYxf))gHFcz1dTn_K?d82v8kxlB2W>6 z(GAP{gIa&fv@;X68C*}CvFXHpgn>hDNkk*ZH>|cG2gn`(7IEb+A{7B}6H9Ozm|Txn zhQny2Hy#i#Oz|g&>8KSq#v@|Sx<B2W<b026ceA^Df3Wmc6IpdletV^iZfJ<y_4`|w zp%T@QY_I0+&T8(RIk^jD_73c<L81PhkX?DNP3P3_cz-`o3i9#x@_gV*v`arenzh^= z8l&eR1e!4Ide;7Yo!XoI<wNar+z<_d-=Kg$+ti>mhv=tl8~BUn^Rbxn_yqMVNwDNe znm0&+1S;xObqnEzEQZ2}+84vM^Lxb8$L(t@G?|YYM&59%oAMouez?!4*2^VdQIUNY zp*4UTvl^o`c}hk2%D500A_RVG<w|JVe?|OXaF!Qu{Z)pNOqz4aFQqtGpyb*&A#4hq z4Aj3vRs@pH<K(NYay1(2<Mp8iM3&1uSWTbp{EXD~wz0g9yp`&cAWfyZ_x)Wm5~6ab zzeGD7kbkhTzN(()&cfqRxWZZ$XxX+j98Nn@g=Z9I>dxs5rG?f$@Qa4fau8>?A08=H z_ro(;j?n8XFwS-J2-t(~)0~9?V&Wbt<UppvCq;Ni3+AeCRuSq7@+O^FMudrAxi|F; zo*F10bzVfoZ)aoVruNBN%jc?@&-G(yuu1nS<L*QhmK%?~pCwKnx22XM`xNO-z_JLF z!rEq+lLxXtV0w00?M&Tvg~-FglGt~>fc~3@EOk6<JTKtkYbHV0LZL)02;V~Lrxx!8 z-$rW}P}#317X#i%`k5?yDm`o>0BxUmoIL}9_CauHQZ62^u{LrKg2(>$pgmPu9t^XH zkhUl~@x@gp%xk?WbLKUI1L+8%J%=hCO&CY43szmY=A2sS`kE6iQ+IRFU0es-#SGBS za|~Vrn-yP@1U8&22%=C9W=_<SJgZmA)DO_Ma1kx<>ZC?Qr4;v1haAe=4z)l_(T+3| z|DM41VJpxOp-N5h%t_66qcfjQ+XcKN5T!MiE_VhT=@7+FB02!aP3gNsv&w!GFNO~S zYv+U@^Je{W9E`VXYU|@qv%MqjsKml#nWPSbkr^cSHzaK3jE=p^5=+Lv+~F<5+Xpx^ zb7{)n_i4IgT39kQ9oOm1y}{NW3N{u}-(+P9FPxlTuyKgRZ{ti)^*q98wjcs&503Vn zyR9HdZjQ12e1E?N`J=0nnHjwA=?rgN{57U<@4t(vxcN*%C^`A597u;08^N#RavpbA z<Ss7*2Zg3Vd%n(#HLrr@Px?x6ETu|zTKF06h|L9LzktnPcO2_AlU*T&HIM6-xAozp zp2l(mW2tnCAvVJ1F7mz<3a+i|+L^}Q&f$Ii`WPZ{!N-U^;DU&4sU{{_(fP2!%^9LL z8pXX7;+Ec5B*OKpris(6#+L*vLD4s@7x!smg1aEN^qh44a&`49l)M)DmPLy<jYf*Y zQm`k9<7grh4vy*@>j!7_GBQ!H_c96T5Ak&qnS1|hZ8`*L*qRdfaa!U-H)(&X*$f_~ zV4zqgtZDfuF)GeGy$+k&9K$O@H3CbkN8R=c7}DJ3Bt_?+pQ44883FCY9f|VW2EU_w zN_6ur>6IVyT*#*&A&X{gIyt&2F0biNP5)wH{hPjrjwr<;#!XtJd_1U4jTDn38~Q<p z3M^Y0{qHq)H67hd1QFxP>-`nn{7J2j>;$sZp+TLPInm1I_omxI<t*0%A$4IE)_9Ar zBk#7OSC{cL`551u=cEM#*D%yV#m6*I{1&a|!@`J9p_@7~xB0>d+%P>1Wz0ZWycw>+ z&5Nv$DR7i@q*0=>MvYmikss+P3w>r^>%c8`7`kRZr*SXa-{o}7s1A236~UWs$~x-P zlW^AyH-LVDJuN0L-D5#0x@!pI@IRKK7XhjyBR2vD|J^LSSjf1EuWm|(1c^Rq&R*px zn5<=TY`c|NSNHdjzqbEaM(ai7#F%!#6QineHNEK#9cT|~9qx_6aGOsEu}#)xYmUhs zt~}hx)FZUE+~{T=Xgj5xCQ19Vrf<M38^0KxxD8c~Pd`JfN%4Yd3Fvi`$31$q(IODx zv@1ILl0j7L{N}>sl1^r}swcwxb4$7;(CFW)+iYj<GDt+&K-^djlHyvq6H|8E*`32s zT-N=H^;GgLqYW)1C`;jkhLzzcMJWVX{c+%e*9%MUnTQQhOV#8<Zw<6RHRm=jX|9kD zaikIFuC=r<2Wt3qpD)`O{a;o5+xR!k{!w6<Htx@R{8m%30f0E%e}#9EhKIfGS|(SE zh*t;IZvR?y4T)!FLyAnfWo*7Lrk$|85A695E1Qql^s3gK`<-T!dZ?6ejxe7*CGSnz z(Lm}e%c0VfZJ8`ga$nn{$C{2ms1#>@-qh1eOa?Q+M}!C=n)j{ezbNYejVymTurXDE z2Lifc1p>nRpU84U8y9O!8$ClKds+h<E35zJss9IE{vW3L|G`tA!m@DKXuj?621k4j zF7(Wojm}6jCG4=SEX?KzBa7!Ht{?BivEvZo@+S}zPmy_F@8|#$^F83^I(2jpdjxt4 z^3tpGO-|BmAXZ~>QV1i~TWe2Lnwr1hQAndMuB50Bk`j(LX)1NCj*bR|Dn6A+tmZ5h z<5V^{acbTYCY=`)kT68-2Wh5sHdj8_gei*m0T1;u{e<IS5pn5XLP5Y^Sth_iWFA$O z#wg2-^h-<I=aI_zc2<_G8c>C+Mw08*K_@*GV2ecMMuVuYgu(IWem=ru3HpOu5gz2W zgR)Wq_HQNXvy(_Up6?HbOyf;1qQaNZVl$e{Bc^KoPQ*%WXj0fbKE3k9pz$Lhs+2#j z${U1$x!s8NUG|QdzXWTDVg7Jyf=NqINq*iW=;E7E4dC7pLF5+0YBUxH@^>(a5TuIq z9vXCNdA32s9N_`CZdDiwvBXTO#Xw#x5$ehp1QjZ^P*pO_!qAj;zt^~_Ljs5+Fgt@( zuy%wE4Z}cn`SA%{%?CZbW*RaV>K{MSa3Mh_ix5pFUps5+K~Q6hG2*8E7XQY#I#FhD zkPdFAOD*DJf=<l#OZ4l&7QOs|S`!?6JX+&$h^rD$qYM(mkRFhL6~Voi3JdB(aY}+d ztozJUo0;2?yra+$(ZzD)cxtJrc>brfmV<{EHvEGn=|f+;p3bM;WnIAo$Wi$nX^Yw7 z`7S1yT*bR7NZ#C7_T769Fri~KipnE_-1{>!6Haj=RP*Wo-jrzy)fKxTC>u4Y!ZsqY z@e3<}l6@Rq^{-`T)pT&vkgNqOEg143vw08pH#_GnMO<+_NoGKEQa-M_+cGSld@bIG z<Y2VjX^-{71<8#>ufoUYt#R)*IIux3mDauDkBLTz)}K|)rBJxRZFC6v<TsP<*)Qi& zn_$u~-VvbU7Y9lq#s_4yTQZSck}&I}1e2z=T#sb&j)P3LO;RdZi1PV|?yN1RJ7u9j zL!ZAaA8IL|q0lu!9P_0qcly#|L;~dwAH;OfIY52e4T@^7D1k^i&eH1jWpGRxa0aSZ zF`2U1nCB^kyHXP@`Ii3{qSd`XBGgRMyW4duRQM(`WE_PRFYyH<7P9gDRaZfN$$kpz z9Ljt!o4`dSlrl!nV>OTSuF3++U1Oir8z1jPVQql~x(xe(9)tktoHPw`P2<GV;xS~z zSW*S*7~ux01hWpR!3vXbE>4+DPB~u@*dPOy<W92iGdD<AwRf^}OY(ew+7z~beM*6K zo|ZA0(aD_0{t4>}@&bJlHSp5tt<Qv4%EZfsd9oX2Fy&y%HLPGjYy)}JqFrA`IA`E< z<|nq)Vj;6MjF6|1_yhEF;R$<HeAw#fGb#%^1u1H5JVTW|KLdE7QJ*Mg&G#g94`-)^ z+?Ra(VgnvZQC83T7Qta8{S<?aItl`Q>%%;8rOF|M0uLbwwFYI>)0)Ubw#Q3@8-(um z{!C5q4-`O*XxCJ9vfQp9u|yS6sM*-r3%&yg=3m(}qKKr8XBHSg5NpH8Tw#Aqux2j% z&S05`svMk5&{#8setcSdra`IYxil6qP`MNViDO9Qo7heL<`?9k+oH$VNfDjRKYlj6 z2Q{IKGz=@XIs+(wH7?HH7iH7?&6Ih-6*6L_6Jm~(e|K)*fuwLcfK+F&WMT}=r%v<f z?C&C1pc=WXo`HL+z+T7)t5HO8ImF-jjoolC06sfh4AOC<=+FzvMJ6N*OKRUMl8ArX zL!|0KmYhD~%?bcO#~JkT68IUq_Gf~CUE$=Sg}FG(!9c0Qn2vGwvH}Apnr_jzFa+x0 z{`NNlG;TbM+~v*83N7H`9*9<Tsy2sdU%Q^4#-q#kOnwHw6kt2JZicGG_^}c>56@>L zZO<3J1lw2BZS6GFrO=VEfB}vO@$VxI6PgJWC=OzX<LdzT1+XGmX>;~I>*+$=RJlWr zn7axA;#Bd-&xlZ@`kOrak30ahDdHZxyv;CsVo1wBNRHfIn=+0R-Am8{ZI8e&5`Y>K zFTD;Vb;Fe{y=HcCK@T>9hd@Ks5BJm>kX4UXqSN)F|3oODL-$x?UXD1^N4xs$^GMhm zSN@nsZ=lD7c_h!9Ue!uNp91aI)mV=wvz6~{wbX#cOqE}UUC%1W_X|Wg$C=_yUB$cU z0T(z|)gPLp9L<*P$kF_`(V4Bmo=s~B>ws)mHD()Jaanr^%)3>U-wzz7LP)CThgQ}- zp6?Tgw@|WM(GWxL8KW({`?&eMt<}}@a(JAfGM59g{|7&*A}x8NZ(T4CzHzzkkKapk zyfj9(2+pfh!irj&30Rb{375gh2zBaqmCgCzk8WsvIe*uS1y|gmHqYNm=usLV&5uk> z`q-SBmVg3g^R!Z75+ObFRRb>I-j;pNk3RayD!zTV0?2cuBBW9R^XTG^GBx~|NOpfx z$2+dj^cZ>p<V6M>Gn`sY&>p9{Vma>}C14(Rx=q}FJa>y9FN%AZW>jY2TY@2kf+<hj z3H0mI^;K|P=v|XR<YmV88AO+)#Mh^pRE`39Jh5n*Y?-rkuAL4-VK(5Fz*ZI%=)`0J zhW@`@3{-}zls@q)*QAOcVFUTMn&fnH4D`1tf|VCvlL<F|V_IL+;^4eIh?@tA<Y|o) zjb(E?+|*Vx0*Wn<ia_dU%7QF6^vp1ax(|KwlXPe5EpAlB)?w)&)i^KGaM2ciz^KIh zN1w?9-FSIw8u7aGJH)+tF#)K8<S4UcDs`@tiocq2S9ajm!G#vzhoaU94PnSyh=dAW zH>cqx*r_fQP~{q^P8wm@RY@UBQ6J{dB>D6rr2S^)*8faBu0emy_HS7xOi%e?mCj+i z8D^8BT1u>chX(o{P5={jgql*KJzDD4Xd~}H0`!Sb*ZPY9!pb(wNORDOqUQfXY<xO< z7g>#Xwddh?fMDK7y2Y$>1WU$qDN5U9rc5s9FrLK76o18RBn8qP4gEH4&b!#fav!&c z124a{AgyRjk(1s=@5n^wYg+*?vX`gv$XkN101nY=3eQ1+hmXu^bd*J{NcE%MVqf>g zA;h&WKFsNGk<KGPcpM1fb4fBqEzR=i-`d)X0!p}lmtvtDslUrURtxV!$rE9}*ffEt z19@BWo^umAv1DFIewxjoJ<%Zbcx1z+8y3h?UZKVNJFBd0TUbxlalSqQ=gAeJaN^jc zVQXdKi}h4Iz-<6rIGCKUz;@|`hQvj|G>+<e<_seuH5yjC?pggDBr|W6a0~=4vuiJ6 zOxNyEVaBfSEsY<A|LJ^;F$TX$_-jGSi_db`wWY4n3&n|UGRTPJs?5%1nvc%%EMo~0 z^w3l;7HQY!T!{`x4(pX|L{+pi`BE~O(*kq+xcrrZ8sv-9STDkRFArYrbo!w?Nw*k% zq4Ja3zK=?PPr;`W1YW=N8(0QP3=dECc*Up0IpANZYK|2CoZmESo)t6DrD@77PPuHA zcCLQ+#JJGt2ev}#dEFfT-wy}z+BoUW$szG{jTW5c4`r)nu4^aHYET^JzF%%@3{(tF zh-P%QV|DHmv0HnuL@+l38>k;A7qND}W{$o_e0zcJ5pNGM?_}d!=L}kqa8kC6XG6v~ z#nHbArCv?__5QiItp|r4N>W{HYiYJ9imL8IN(nz|R(H_%om#S_?Obs|zgI+@V4@7; zOvk}M7>+DGj!gy!jugxiuYUr_q#hA(m6leytflJ)+J-BFtYkhgDrelr5H3VnwB_!# zaQTvJUQ3sL)*k8P8yDl}UYLC$dvMYI;2o{*IFVxq?X^5!sbNouOjaf?64o>vB1J7K zG&{(#8Nlv*9}qGL>!2`jYX%@>t$v_hx8EdgWXm!NPLh}iuBt6w;f)P~37R>o=QIiO zCV2y&JWhzSu4nTuAS=Ps+M-VsP4#9MpVOTR<GiU`@27C}nFSMKR?-cf!?(^xbRco! zX)2;s8QAc)?*S{Oc5rGJrJ#82XFku#mkeJAk3N4VFE-TW@w_st+R-6i`7_?X-31}5 zqW+jEPU!hK#C(ljeL-i!mjyn*Egj(Z+)A!lEeZA5q9->1ZC2_Tlmw-vCl3o<s|mWm z1tH>yEw|$Z#FE!u`Qpb3#uV~mOly^-pNHrc*X@hZ6EbHWMl~+VW!3LC8I#p{H-yF< zx8`R@eLLEP^k%<mp7spD3d`$Bb`hZt<ohDgP&TTk&r0@$h3~OFeH!!&5OrV?ep>u9 zZFT4BAmge5lVy#z;ouH5v_SI9KCNP7s~I+N@XM-z$WeAK<idjcN6Hz=AuqUxqt@PK zJ#^lp$aBKFhPHT^54YQAS);5!F^+vCD10_d$O7Ng5C<W;l)QA|cb>BT)>OLxnLLyi z{oQ9~LI|uv2g`h-xW~8)hDZFq*A&9j>2RsO6~$0f{dlkM?zQ#T^!Bj|cwiqiLC%6H z0-T3o=q`RbM+zk9j6k8^Xssw)U@r-=dn-5*N;T~2Wgptdl<k{op1>Im(D^L2KkE^Q zI>rv_RO8DlUJLhYFyCNFx$NoD5Hj=uOmBu{V)bu!t&Ot2ok{it);3L_lkUXHGym92 z&gldOlR@j0Q0$9{64SEfdV*8C%pOpJHjOh*f)5<aKrbPrNmdPf-lW;X<Y`GH-%rR) z&4Ns>!P}#LN{*+<=XIjA{r4%gzfIh!I&B{-+!FW92#u5%)c3NZSl<d~x7yZ>9u$g{ zsMs@Lfvn;?lEgY3;F4<_%8P?wVxloE?d(VvH3sDjq42pY5;`;r=RZAVhF7_*#Y%J5 zNenkqU!3u-wF-KFA=~dp6?J_}udwHAlg((7%5&Lqyj8_<AWOb@-m;oBu(C$jHT$ft z^1`CdJ2*E}a17#t4hudME4a8x;%>LZgY1iM_kR2P;4oYW%PnrBqeV3cqGzAs3&IVi z7A}G8;xE)wgLUQ)KFfXpC{iUN>FD}4(ll~kdN_al<ZbZFD5_YvW@v0#virn2i~jY; zIFm0X7&|O4MR_!3Rj;ZsaHfK~C!e`5KX$zoO=@`0%Bi7V`{|8_y#K&~m*ev8lYwI2 zp*qX!zu_9<8f*F?0w9}SKVS}VSK5Zc5?N`$A_EIf>3O4_7_W4^8Wo#O8ofVg5t+{; zIzD$BPy6cd_XWSLiPxS_BG4NKW3^IY?fi6?^c*&4ih;ktPO=fA70<0IHDvM`?5)i( zyLKArRxhTxtxfpD@dp1t6=U@hHaLP{KtKe5AD7GjvtKvVb1?niMPvUL`&p8*w9P)t z@2+<hKs^+3UUVEXJGhe{c&CW_s=nV;5gmwMvIt8Za#_4$=av4qM@V8Byd;b|4x%J> zw;Q7;<A6W~;(TMNRTaIoUrN$Es`(gWk^yC_@Km50H4SXIH>&ka`Rs*Uexu&R(_Qzb zCO|ojl4`k{)yAwUXy+ZdNtpwEIT;q|Vh?=QAoU>mJD{vwj^>jrF?v23HnDQ>kWh^p zHBEQ8H#luy<zZ{e8OcQ|o~-Bo=xF$RyEFkg{7{!>xR-=()$`*GK*CNvyXqY9UAI~2 z<Nfggz5M&|fcPRJeF+<Oc2p=`$JZbrUsV8s4beMqKGWo>e=r0!v!>%v3whowe`RxF zfa(SWd$n9YJ;~UK532?0DvUZVD!I03p${zfYr6N(Kd-b;85tjd9mv{A*}m7IxLWue z0VV@s0$X6LV=^yV7f_gsx*73RDnnYyFoPAhKnf*c0=0;^I4ERFwpNS>6#0@V^Yg^Y zYgn}vIrp>p@g7#qym~$BF!(yG)H=4b-joK?SwwZ6=+<fOJf)z)yd*w>uw<=KlCyuT z(^`T6t-T6*c8Jfq@PmXXtI>&XCVtkW%{`Pg&Pi{4y)=EJ_79Jvt%G@*1^4bWfD|+q z{wCz1h@SvEt}!p_*OB7nJOj-yF-LhuuVA8j>?YufYF#+;vJllD@QH!{@y+W*K?<gu zO7CD;*00*Gicf*lx&~m)KCuYo-$8(L<_*xx*zs<M)_}{j@-Xg8EKhEnuqmU<mPax3 zf%`k?<>OmX9}%acJAPcTtq$@MM$M-19*$&^kDHQ@#gyI|L&TJJznFTzoTp1%eNBrs zrXX=5QDY1+#B|H6z!jTTgYvj7(S^lyzA_B?Bn3ulioJy5Is{G?s<-%&u?HEOSZE`< zY!-CZAe4$w?Tm32-_uWzyDzIo|82%f(&M?a*TcgJvS-*-;5VkM6Zo5ya-B2o`B}CA zO6u|0myvf-Tl}5d&TO>`vQbs5RxY-%8K9i#@I-WE!6qU9V}0<Mvp}2DEI3Usbd{w| zAm@gL!Aym?uzP@g!6CNH1}-Nc%4fyVF;+osPDP+xdMc2O_3yw2--qop6`e(0<s`t_ z21`N-FB)2JNpVr2Gyz`qQJ-*II`v91pfDocxyJbBM;2F~!8wk@tgh4>#@G6rr?SBT zOpCQewB4z-lev$9Jtg6)u$Y?_XE%kJYZB$~`vhb6HX+!U=#kUL(^^AGN--G6ZH-Me zdMCu)ChX%2&s9@B%%+f0x^iUpc`144qY-MR2yVj{yXx7_YkB{qcRQ2k3<f<ZE?8q> zj00eYseT=@ea~s_=_Rmf<bM|5Qs&&kSLnA_qUh4%);?V)xqgxQY!z#4@x$dVTGwHa zx$!+&N-Eol&)DyHCLZC+^sm9&<FQT<Y#EnZmV6Apy@A1b_KVL>@Sgqx|DTn~7;2@; z_7@OPC+$yl`hQj?BiA3RqP3po|ED@lVVXItvpjY9fH$WB%F2W$oaYO-<{GULThfY~ z$ZnrhMJEJ^$?c>OsDb|}yFB$=d$5V!#9G?S3nGaUzR+}HiT=G~h8`%4R~qY&Ej;&6 ziC1*PyiE;Kqf`@TtZOmRwnacztiC8HMHL<+A{FAUFY`&Zw4vpH;~!kH$kx~^F&oyt z%i!8)GA;t<N6)p?dr%-xHGFLXr)Z50#-R-$RztH?L*gDPaqwkp`E77_RuXZuN6qy< zBJAq^^wg0M;gYOKvLL0Z=@ZjSHa;JV#&G!B>fK$eHpGy-?9s5pb^c3)OLpE!=`S{% zSsU^j&V+mh+jVAj8mIGLnhNHLB3z9*u4&cQUEOH#hz8psIpJW5M*TUZQEN3t@%B+b z7P4W5p%h8PfQ7FTNYvBQQ+^~2zxJj-xI=nY_rtn79uCz*Dv2(6dQhF)K5R0HLA<J- zcsdzZ<boI`-~(Suj$u(7osnQcQ+lmMwE**PH7uu?F{W(26T+S^sP;gLl>hu6Q}nq? zgs7x$!Re$*5!r<F{zxe-zuSb+2Ug_%7u#AxMA46CCr#7>`3T?S><~gqj0vx6FSl3K zN%5+MR4!D*x;QD<1A6&zA<|uc7-@H=WdXqaA6C7!gk1VTAc@w!56Zw$)#RQ0FCX>a zFSq7XLwU*Ps<3od0TMKQuvh-|^Y~&DSsHQzf7J*ud}kEu^y^lF-)uZsbnD9}$As1D z+%t{*ao{U-{K*n?zc#Ss!fz#fcYr`4^jcyE_3abJQTPQDM(P-3WiR+W%xo}!jeEeP z#hI;q{uN$NA47>bZ#AC_XV?Xc%>xSHFV!ai(8iF3+~e=F?i`WgcZ02?Rwibo6ASg+ zRq#-dc=1cNqq0G78<5^*-Q0?B78b2AP0`g@A~Yp<{Vp%5lEmhE-932BNT}KBgqfM9 zJ?c;mFXuCWE@aL$1>C<a6+u$QaqXqChRE-EQ2nSaq!wFx@xr`iZtT$RLyx5AJ0yWJ zRSI$u{Di88&oJ29N{@8U0>(;J!GNbwf8|>;4^lYYMvAxOaZYB2H%9EIia{}Itr_Ef zL0FNTj5$kj_vY$`;=8fGXCGUt&eJSx?zMMnNZ}Y?CAJ^BJa?{I^${vTEOF6g0ARVr zo@mC_7quwfm9|HrZOoF!)($;YqyL095epJj_I9Q_OGe97EecqcrAG1Pc-}#~fse%{ z1qy=NDG0O^+b6;FOJ2k>1pk78UU>))n&S`&#Kg!kIjG;9d~p;)<SRzcYyYcuU<K~E z<p_jHU>spyMz=F_3J+uX>#UlQE#xD$MS;CHfU^vf-hn_Tr^meB)s){?Gw)5o(k(CS zPNPc*!PKFw{kBD0bgoS7jVctw|6Q9TVa!2FST3FclYXX*a2Qte&1vE(pR!KNf`iqd zQdt|kt!oTE+u%!m=((|jJ}Vux&?(k|Va&BK6QL;Ewno@U+aTYnX4P1#c1A*D4Wps< zQoYL!sJapL>!j5J|Bk{I!W$E@jT?1jmb<LqQat9!0|)sM(|Q^h^SAJ<kFuoz31WSW zT`{TOw{#Xyo^V+Tly7G5DWwE^OVyI#4M8BP=ArD&*M|S*j^Qas64EFr%&(rM(aq2u z?n9A|RBDB0rCA6AX&W+A`HSn{2-yQ~uQC@*kU3JbDZolM<&mml`>rX`n1-`QRfx*p zuD&u0ntbc>3|1&hVM4R0MPV>&R*4Yv7VwB!vsfLtfWG6Y<1WXpXkM;`uiddb1mG$o zp(00M_AG?+IU)NDAaF8zA+E|cGrtZX;-tPS$BNX&-x~GD)c_a!iLXMy^ZRk54Q}cb zPkRa`&No!o>!%|Z{W=7m+LDPj<V?oF3MHAWJ)ByGj$Z%UgklouI`uqP_G;x*$PxP@ zENM$v#^%>XrU_BA)Ty2$uTT5eXf(3hGkn%WvaD{G<b4=919?sJ9*$>8)^92TxzW4| z$Oq`k1~UJom49~GuJ<A~c2^geLuPC1r1l!aY};okzTsIOTN!ZO2PiB!$&y{A&TAjw z28RKdAf@@wfMn|lml^y%E1-tdCMqqPpXbIm*dS}}QQ|M~LD4nMx^>JH8TafM9<J)M zOT-(Ig`N{K+a3Y89lD}y37%v~{}n5jcHpjauP=}DPnT`Ie$=<p`3Wuxn9nZd?eoX0 zU!|O$`a41cc+44ccw5o>7HsEft#!74b)Q*@MFuR2S%@}2QXI<Uu*4ykCoiSd74hqs z^d$aTHO2}DB`y-cKaH%!R@R6QR!}QTp#m~%$M=0RO#t&GlR{#%V7u(Foj6#{S74wx zZlr^rB`(AE{s;xRnSy9g$x$n3y=y4lwn}BJx`OZH78Io-VnOMU*40f)4^X<q)cPrg ze?iemI)az{Ycb`IRVQFB{A~G9J3O>{+8d>y$cKS0Xj#DiGUXFQ!ztcPXr$Aw)$w$v zN|W_O4j&jNiB!Nfg$i)ZOOzIYK{cbAZ}zVMg29n+Y*83T-rpw_tINS@P@X0Z=epT< z(+AhQDZwW7zjt<C9pA*bcicgWIoLg)9Nix-c5c>yr12>vG1CNleN!g9(nM6Gu6&$r zUmoHJ>^$kLb}2K?0(I6QI6-QR(74=sr32hXFq~P{rt@JperIYFp97beZn+UTo|grL z2rSmbWT9!T(O<42{SAAUK^+^*ih-Kg|0A%<8f`#%<?IP*vu3PypBkHtTs>g(=a)HJ zmtkM}xancaR!?G!CvY=3X>6p(W^F4uK~e60H|_RuAgLTMRKZ-hr-PlHH8*?HaXV8= z>m+lWptWflQFS=>CF?s!nd6#fKK6kmLlv*+t)4)ML#PsA6@YfDn|%obil{dZ-!zV~ z0i4K^bMvu<(v<0<t4jXE6)A$j7X29f`^fAn;|q>?g{GzJueIq~|D}2YKSXv}<Wl8# zolV1W)77g&OWwexBDT53x*}i&mS%gz@os(WAm?7TiHf{2nz6N#I|0FwC{N_MU24%Z z*Hdvv9$$zsraG7Jd8{2}oK5<>R<7)+&bNNZ5tG#{xs%i5_L6f5F1dx@i><Q05ns)H zsQ%YaD$N@Cw@vB|Y<2{4)*7+-$pRyA7lWj3lE2C23c$>lD(R_{u(u5!TQB;FW9yS< zibzDeKC}w0ch}baW)U^1T~R6#&;0YO87rn?&6Y5D16MPkk*lC>d{76OF(GAlY5NpF z5{Or^wg;_&O&pTbAdEedBV9lS`4IajnnyN!{$TCF7l+$q;e|X*6i0-YLE(AM@ds7q zM6Crq!{8n8CjWk~dx!-g|C9b11{P~U98`44msMzx4rx!=OgGbL$!PIy`W_(s<y}ZJ zlb4Hv)$_;t{4D%hPakS#JNxsYfrMRzf$?QMYz1wo&!Ir}vHTNT$EB{IO9l!vFzr-v z9azrLabUc50Shz!u|vi~X_jQ&Uw_N-cd7Xw&RV+FB3OW+COrH^zP6K`Aro~d?llnE zY*LNo{mO`0*Hx}Dx<5BS(KNKC*SLHQ`|(b$V7uxwXI^eUF}$=@oG+G1eoJm4^?6i7 zk}H%=KhJrX**k_#{equqF5N)rd_q;@QBMFQo#CZ5Z??c{@*BUOVcub-l{?;w%<Z>P zP`OK@x}rPRtkD&z3HF4-Hs~frZ&AC${JQZOQ{^h#&o2tNw5dv~W6z}&R<eb-e7RL& zJr6Ue76OWXOj4eclcli=R;Lx`<T6t=ztw^vOLM&gh$-@|Fu=s{X{mo|nV%$_Mk3ps z6S8{B4De1&^XCJ56&pNcOHAkeX6|cqF$kP|9;a(zDs9&-*BRdnKDj7Gp`n7$%<!Ou zuZ?$Z+7OM9y*L!el_07pHWS9hB+=-3^h)cJWX&l;NM#@A<;zQg*~?`3LOH*?ov5I? z<te5wcWSnZ{Dbco!D?p^G9QEAqsVi2c5`~OlBpKFicxxXhaZQs%H&3JsfTy4=f6W{ zOb%cL70z3rKT{np0EqGqYEEezuQ3FK04$j9IlhMVP(PS%qYUs8qYq3M)rs=hE^d%1 zG;~O#qy(%@d_R9hn}@5%mF;ft``}Q=G*Bu_Hm4X-X1);g*1Y!Fl6PvZUz&7UCVO@N zLg}ZHTI(Hs_iB`2XbnS<p-@!tQS#FBHFuk|^GeHxCsk4;cec}Ep{MAG;|s?VFX<bc zN+={D+)R-9rjvsI#hBsVW9cQ(OCxp}1Ugi#X?WwfpVewOH9T);x_UEZMf+<jZ-fG+ ziv9MCN)hBT6^?;}oX@JS_mF76@xHW{n_FB<V^~-EC!Nliif3CFj^;LnTRMgb-uZKu zR*^GsE!*t@ZXFa?l0yB3lK*sdS|<MoxLoTRp`0JkWi*TyJM$T*1#*>!L4@7dU8lzX z^HO(|P{crGp0ylzKZ9eimNhPm-R+ewc9&h%)(uR8jPT-&0!l6v_@nc5p*0Rn_|=<A z5b>Pe4dFAc#6^zKwnggTaz6`itt_SG0|MDn!3L&5_`eAIreM*cD7kCfde^pX+qP}n zwr$(CZ5!{}w(?S`R5HQL_xV11t?pjk?dSxdyhJA81A2kz0ciyl_!$I3GNBR&@EaXQ znIGciT}%n+|Iw3_TacmOVeev`;?&`f``7P3Lb;FRo6ubZ0DveSfPX*^2f*Whl-KJS zThsk-M<J%nHva{R>-l#Pvekb755;-rCNB#Y5{tPawcSY5#$wAQZR=z|@wVflAqix_ z;!z5GEM$G&?u-P1K!~^2!Os$>hVP6RHrVl7=%5nEF11=%p^Xt!v8wFE6L(FxtELz& zrfyV9s%M+QR$0uxzMzaJI=VK`?=@C_g4oNb02X^Hxa4J4>w9@o$YPeT=%80yKSi5e zd~Q?#g{!JG6zsUSi|r@e8m=x!k3fuNaZ;@rIn~!Z!q#wL_f9vNOkZ?X`TzqB#X%`G zSApTH?s?yCDaJ-K@7W|BZ<}VNkPkIcn~~6<JTrGi-9~bkj)bmcr$VOP9vH0}{~9{9 z7?gOsfG_Ec!FE~MXZG}{$a0XCH5cezv}!MelHA%G9CUS|ZZX%}6&VGz1GdBcQ1`u0 zn-5;lR~6pgVvo-G$=mPwyym=7jY(*(K)_O;L`MbCtx0<i6#%h?Bo%A6v>Q+pXh_s% znGVI3Ep2UWg_Eu%9=ymPyDBxBX42XgUY3q`bqt3EmlTIW9+EsDIi{8w6>^{h)bl$E z+T#oM*W<VtX-M*?69h(&<4J579VjhDGv)bHlY0lsQVO4qGEiVvpJ@n!s2#mvsp+J= z`~2GKumF09Y8$@!PdG=%c=}p_fvHB4Osw1{)#a0EILRsQBfLgKcN_`|6iIBLNzFq8 zMG6!rI%!$jOf<PnB(m2{w!F!O&&TIwE|t|9+;!yzI?!phfY*r@O>L~~rbaY2dTgSc z=2D<>m8t72eONeo-)0!yWC=knkjx5<qzcUUByhob4q4|2u1ecnoiyh2(~;mKeQ)hp zqv3E_HiA6awe|v`&&h$D*l*A?GpAj^wG!5ZN-c;+!&fpFfbfR^QE0-dGZ-R4d5UDZ zCN&u$5%R#nnMLnAIQ1#y1w(mN0AqLX3wV_C<)~A;oZqw9#6h6*EVs~)qyx^89i>=Y zJLV!Y;;DB|L{16WVZX3yJWj`H7f@A}N{3p%D#^ik77f@c=yItx$=UWd4;*!|;jV^I zM8jk=mra7NV<cvw^PKT%MaF`*TU>m)tF$1P^ej4*zDXGN3Jte~uf-HtP0lZ@HETD` zGmVVzru%Z5xJ%MIN(X;nct6s<Sc58xo7bkPZM`{?!?#N|Wd^|~$j4=<;8!dMk0Dg# zMOJUbo`L=KKng{JHsZTaAfPTu>{C|;HYyl!V4G+M{%|P|J^$5#eHG~ydy71=Ui+7J z{mXOR6F>N-d5Tv>EXAaL_$wOoS>x4=<VMcb;?BQbHWat2Q($A*OV&PCTtiVx9G3(7 z<rL>AXlgqx#n@XpNlK-a?50YJX>6kMU7j-%cAU)<a#2=k>`Sy7`W7WbgD?o>gyc7N z<39APZ@sC>R%-$v|4{@#Imb-+E@q9@$9sm|Swh(M@d&q8fAmYYc9)OMPr0Y20z4|p zmR|Yg(m%@k-cVbQgy}bKyZ&|w)`-ITGtFLQr@n}d;`l&*JQ)B3AQ`-uw6QY~{ROA| z#@5+@dugM!hW{2vJ#mIk?d`Vzab=&Ujgl2gaG^zx>nE->n>mJb-*537lFX;dhRG%8 z&vSqWYaVa-O<d+hATK<67eWh*$dS-N_FW&hBD5*+yGm?ICWUrC_Sh^ZdkJJU^+%A^ zpRX~L7v!3lLr(op>4DIXe?tXe{k*f5+j>u$!`jx!_)Yy&e-|4@xDvUn7kOa?Qz4J~ zb~evB^eAEwzBmcEgNFshPKx4}ZBZ(0(dqA+D}iC<>lsX<*OD0EJwFa2{TZ(T#;<i8 zz0~zWkBgNOORnW*1L0E?yr3q%_OEMz0l;wYCTr+t9bqEHE|0NI{kWLaT$6PZcZApT zB$Gan0jT<3T9Bfyv=F3VJS9ni5?6HaDr09SsgIUQ>L;7VU}dd)+74XFwQ0?Ae%`QX zxaof5S{&6?NjfDtz47GLz-0><V$E%0<apkl4YijxhEJP(Du}SEX;VH<2LBD#Y=S#F zC$hMS0HQ}F?KwTaW-L2x4dLaabnGl(cVIC;G5oC@UA@ql`G5pD>)%*3Y=kMZ%$U)m z+n|mgSw`FV!YL%J%8s+8YV)avceR$8Vo5Sks>%;tR#Fe)*)0DgydNO2pd7+G+4dnY z3KCiQgxxj*zCfuNg5z)(IrABDs>ZTl{^JalbnBD%o((4lsBGj$cK054pQnfY=K}rp zb+-e^+SqT|s>dnt)S?(Xtw;aAuAt6s5hPt!q3-oto6iG4uJvRxfIofNI5<_h1sjgY zqMlkoj<8tyg0V)9LQW$^-pG*a^E^!QKJvkMHYC`1)IUU%X^)3gS)Q4D!;MrW5U;ey zW*`Wb{Ik4YD$lj@RmAzOXrH6yQ?rcz3w=8?Cj;Yb5JX{GVy2^gYjJ^@pf49t;+6A3 zK_#_Z1LtY8l2i_)K&+(%5cwU@z3!jyUt@IlX>5L^jb2=Q@d6;Kk#>i#x4YTBpE!Q* zuaI4#kFqn&8@gT9D^Jd!^(|VUcOV5?GvjhADGU6%y4A54aI&1N+?T$*M>1kFg`Ecb zoodfKC^V4P2+2GJZ+mcQgtG#G;Hg+A&FZAd^+x28mw#mvjUDrLp>w$8fD}~+*_y&x z<EiKtPT4_Q9^b-s>PLm<YGzl6FxRT0EE0!F;MrVS8q|=#0>SmhmMkV>jOv^fq)!*F z*359`A`q(hg0)c0$_)J0IoSQZgc2`Wr>kx-;KUOGQ#B^p-JRU;!OQ~UkzL#sMdS|U z?09>Ddtd-a&XDWfXYQJf+nFAkX)07hi%^O90e3|$R7nxw1bd$NVZcHe19yv<N4)H= zgHQ7w`dMIjRU$p1WH}j<m4>CZ6X&_A%*X=3AGVw9;zqz_0FZ*-fCzX<Gz5z^n_-8L zX9*7pvCJ^s2Brqt8=;ZQN0Q~!9szT<syjmOWV)eZu-j!gK0Cr{TJW7%)~-W5ihmSn z_P<aR6jEgQ{FsC5*u2Z0e_COGH6L7q=<s{$$y8E_#$lG5<x=j+|HvJt<h}sk&8~Oe z^wc8VByj^FaC5@j5PJk()i*Hhu+2IeW>Af!i#};|#qr$j0+ch#C*-_-ZJzh)xC05f zkR~Rg`#ehEiiVQAVY?A8*2xonM@(loDwptTGH(%EM_EXHl&<^an{UK;XGq48IxpZ3 zYd<>rf=*$K-&mSM*Ai<>t&e3wKA2`22Jn|4{2~9BM8|Drjf^YWl)zLg!WAIj$Hp9} zL+xID5Df$lX^Nv5<N4KJvt+Xw3N^_^`R!Zqxv)mMf2giKfvG;u+u<(=x;6<2@g>$^ zabp1fP;DIg4k4nkkVsvixL%Li3OYb!z_x%N(mTT+m;n=p*=YVJp_nF;<_T7C{kT+v zqE@ZnSBP<H_<&7^#r+fz1*F*kB_R)U8uG?fsR^aEvB)f5khI@pMQhdBYerJ|6n}o4 zKTAwl#J2ft!kaPfqSb=Hf9+cNgm3BnN}nM_o~wsFr<dpL3ElVp;_h26Pjzqg_~7$M z=YB|T>HV)g1D~gdGkcb<^xJ}ULwcVt4_9U(UyfjPRT-pmk&=B#HQEzt7+oAIV!Pp5 z*uiW-#=fekew6{h9`Mw+W`1o)mNJ-I!92xJ(WK<-Y~*T2LDF{}C-Uo)>3E%!u2H9} z#|pJ3E)7yBdW9eXQ8zs5M3#yH|2yT>^po-U3vjHje$by2eri=CsyLU%(rWq@^zPuB z5qX8IS-eH|mUY`F#j6HP;Gd0un>R%FwEkphM!zCOrisnTOFO0v>Z8gG{t;-}+#4!~ zinhTS+oPDYC}^N08tfXdwf3iB`L=aE-aKIeslnK+I^8&eXP+=}I1JIG`F>1vaBKeS znIlx@;Rs`Dbi^HDJmX_DjmCrp6PcB2qb4&Yr*IJA-FWAvnbn>AwIcDs^T)_jFA^({ z!~;dKApYk0!oZiko;MiAQ)ANmz}K<0L%n*s3}$#u9O?VR$^f(!NTA4-B?sG=AOTuN zgs@~<P^$!4U4ATlK0uWvm?X}@K>sK=y8lrt+r`24nEaeY$qHyn%{2m5r*cV*Vpy`{ zKz7o*If&<_D4&E7*yZlu9Zn#saH=J-4oa8|W=*z}UUe?YRngoj?$7#_m@_GAg+L@n zyZ$6ibo7prQdZKv_3wyEvL&N&Qd6~;!uS-2w0p|tsfjPku%t$Z>B*G@HNF-EHrY66 z=VFFcC2Y0jy9HbKuuIj^5)4J`O78J-WZ8KMtQBoN6c_wc{i)KqZ89_W5S8R~`3hfR zy21=`@M&+Ly1*aAjqi{5p*((b>E<lD-M;rbKpBlI+-M|>o5_+)0bOv1RpzZ%z1}Z& zfpO#DdTqDr7Dh4k#Ajp^ZDL)@<T%JO4a0b36n14@k3j7+NQPs<LXVcjHsnfWZ#75= zPjR0(mPX+-ryrfWM^eL=wOuY(;}wafr6lG_hLvSSF0$8+T`pLr@?jfg5~^lSt%9zf zG_q1nVqA#Y+6s(h5%N9V2kzETb9KKdP!L(@S|EJUMh1?e{vZ-y9E^{oyp<iDKjkAQ zQ_#$rK|3N*-+v$0@6aE%p#bOcAlFRO%u96+4uC^>KVs0BnF#l3p!@lUON{1K)=kOP z`_1^@3zgfr76zV#l#-4A&cIG@@4<=Lao=>R44jxcBFq3ilH0Fr1CHMHhD&M<AEP}+ zdV(8JqxwhN$+5!@kI9k^Bg&)+0$Q2&4^hgW9GoF#bxrlVqhjPPS-4@_%RT~eG`S2f z$+1FU$e66DN%6(2({6p!2&}7^2yxtnuFl9(Kwyq}DuI!$G_uuqA^pqS;J%7v63Zx( zX@LX}p_2{b8HR54O_i>fd8bBn+o4fpja^oaVj;N?$R`9mU%mX>!n=F_m%VL<^V`o~ z6TD2Zavy#Oi$E$2lNCcz#^}J&P`YM?AisPRH+@$8%1s{Am^76XHVrSR=13kl%>0OK zNWoho7g@szLRL0#4?IB}y?B2+SGr8LeQxeen6*O4z)+^)JbPe8eZB>fx%d0<+H!>b z_6kK6!v)GlhJ*B`hRa(R$;n#0km}FZpAUc}CzIQ=1TZf17*Fx9i<7QNzVecGt6?#` zH=`p5072~rMucx<+;MB!tG!2<5ya)GeiJZ>^C|c@kM%C*gF+SEfTa89x?zGqkFC<8 zOF_HOl_1}4?7BSnsS((T!Pzak4}-sHQn`6o)_E(~4`FfaRbuqKH+GU0l}!uCF(L!t zCb)k7s=r1A!~syi#>1!(5UYYtBICV1wcM~`S<4rlG<^{`X+pUah4K9>ZN=nlw~%iZ z+T0}%K0fq%SH)(*JTB_(LVD9<-#k(8;d_Q2Vj^Nw-K|Rf+PQmE)@JkH8Iy<ZLwa!> z8UDVMxD&t$^FJH9?DaNoioYZ#-e3XRV^M%2&?*|jXYYVU!7WMku?(06rTtoNx-H@! z@&E`6lF6uK#td5e47NR)@N@7_M2=^~Qj_@sSXnmWT?sz=3aSL(TIBMTTjAX)YH8nI zJ$pn4EwF-i=BdzA3lb7XBUEo#hsnJ3BX|cbCSlPDQl-SY#!bk6QkRNPl5d-JG+nc% zoje<z1Bz34yfp}20d*oCL3*7$n+rS74`fN=za7i_!joyO2S%y%b8c(&qm|rLSosG% zG!EHCigTyNy&^r!KYt}kzBWw!7y~sT(yoMi)ttY(I$SQnIoOrgF#C3Mf{pN`!)$!q zO)#2z>UVa56S&ow7;bL9vHurmqR%KI$*-FhbqM;8Gx_JO`Txt`rj7<?HYT>t|C2Z| z`e&u7|G%v?IqFh&+pGw^w{`eP7>SA^67#r`pfCFUE>0Hnq`jEX0lEshgGd$O$;fTv zez!1qNE8;=A}<Jb;~u_`Gxk@VX*3j5p7TO;lZkh&Nj;>fen*i~2}uHXLDlLT_A{QF z<ujuZ;>Ud!yNxrYqEaIQtu-jS(=2xDDPN>m5>%^P2}P?p=x-2vb#>b!4CcG!ekryP z-s*c(y~~XtLw{CE7JY2#Kte;{Kx{I2l$7mfeoacQ(!=8_ADBKl=}R7ES~slWU{xmF zf6ex#<rqp?3$3l1sZ^2gYT$T`2vw>poE}17UZH%uJ^JZn5%~V3<H+c}KJ}Ui>gkm* zK*%1fRH>bul5`YBCSVzhvp^wQ6{qr4<PfMPq^e{mCZoQBR`^-%we-RDC7~fz6VRog zVq4uOJcRBB@N8I+7i?}i*_B^q+;Avqv41i*yY0)YmWDz(lDK~gpOM=JzPUR+w$Xq} z)Y0~N<2dE|m6wk<C<I#mKmdlHP&Api@9S_tTo_UHc(m|XTtc74^P9m)Y~ags3R#am zJi}}lC;DRbbSespz6VDgAaaZgoMp4e2R;-^G9(Z{adkYmY$frPfNlIFgw)$igiwx~ z!30KqLT*Ekhgi;R!u6`DheMMaD-b8VLz90r!rxJIq4q_fNv<t6>{rZDOrhPSe@xFu zz~q4uPXCcwok1G5#t&NGMB(2MfIu;wn`fJ4KyRU@^7Uulr@!+yUdM^NB2D<4d(J%Y zFSmP(82gyupa6XeGd^%5+dC2H&QTNd;MqKnWj+zV35moWuD%QalT`U*S?37++XrsB z9CNDZNZNj;8c|F1zR_-+)FPh-iO@ezd*5Z-(%#-m<OSf2CEC@Mbd7E~cUxR0tAZ$D z4|*1hYEA99Y^v{PyoN8vlGGd2mOwn3HhP#p59Y4`zbo;`67__sJjbG{ykzVSortCN z@(qjlOOoIUzpGUcZ{%vaPh}=I=eHe0R$>s!zLUO6lJ$fPU%fZQBPvf$FIwZ}vCmvG zC(V-54A!nAvyov?<C3aIt6bVfX65yRiilfE(yLV_0tUUk%)-u5DydZ`mSsb!#q8R% zZ}e|gWy#hoI^v|M1;o$-OpKW&jI2E&<K~GI@_}SLm>Y*g?+$1aP&B%b8ep@9_RDax zr)&)IUBsFINQ3r1($OG*Xa}A_R34Xhpll#>+6)U+FDaW?Ed-oYVe{2}2A}K{*u8OZ zM-{RNH5h7#7o*`1E4^FtgTaLu>>@%x3==nQd{D$IaGfAy*gTt&$}W$E(8enhVh}Jo z>Zk9;Vz*oPRq~g%b)es9zL}H>0c<SLJzf?9fV!%iX#nM2-V=^2CXK4W*nS&({F-g& zU!^_zKeW8a#=;VcOSocPfOM_5Dm3`VQ{sK3X*7fpRN-#m*7S=7YGTmR%hfTVgjWeu z0y9?yDG9ux%m|l7-02>F#G=p)C+om3utE9OsYOS+$QMMgY^~n{$V7KMId8s=(np(x zV<Bo|<>Re8;x=gvk#mfGNVpZqpl-tpHf#p5HYw=4-3mo7YiPWP?GhWPTg!*;9GRRs zr5S;^-ab7do7DbM_Pxn8FD@1O7=h=`1c7*5hI)i^xnGUptVFk~G@KZLqN306m>$Tj z)~)ico&iydWCr!oOq<+lPdl{acSu<)5N=096ay^Wu2T;^EvO!$Tc06eOb2^8a3(uP zP6GZd>2mFXGzyw4qvErXe@)KNO8vn4oHPj_!YnKohItP8vxFeYE^`i=^_Amvvgg>_ zw<C3@e~7PD#<r*Jnfh_lZ^qO}xV7j!^a&W>l|VFlG-&5dLE?ZnT7BsoW60J^UqEXr zH@0<SANUu3am`FmnkhGOd5zQ>V}n9$^l-2$1|zOVow?_Dz`w0{0?gQ!ejt6@a#fey zHPY#@lj=5S^egmLR>i3Q6|dgsHKSeH0*qsAKGwLrC$37RirP(e4sTp8H9y7-xso32 z4c3Hld2arK|F7wx_HTN0bM2XXLIMDs;r?fgyScT~{~R3u-Gll6xaw@tu=&ThBmUIt z1<&XG$iMa7A2J&^?blkT^vgjy^my;-<cDVxVgNMPSUv7_LHC9ii%+bTz7Zy< zU(x3JfMSR@5Z7WCbEZtYK<beSS|*NeBl9{D)n*hYTs%KO7Gwus)Vn8Fzp<S%sNkOR z(5R8|01@%8+8t9a40=o@#ZLr&Zai(uyED7`oDf7{i+AFe8Ivll8p+{GF?-mRmnlMd zEQ<I6PB!SyjXU1$B#v~(J0<YxWuJmvLAD|<l@qtClUf5Vy>}l*kXYBHw=z|n<YY~f z|8+_$;0ziS7A!GrNt2vfUa}SJ`4p(rtCwSmQ_kUvLOg@UZAhne!i^l&e%wo^LP9gE ziw1G?NXP9`wwgGtFs00rM9#AewQSc@B2^==TYDs|MDakch;s6Z5#j@W7>PnZiWc^U zJb6~g3qRmq(H<5K^Y^DqCv4z{_LJ!_CWb(u)ZSpCrk&lHYKl{$4?q>A3@w45o-F;T zj8AGa=0xfBIBdda%5{$>67cbY<bp|G1Rgx(Z|8k=uEmPYn!3!Ys*=kyTXK3e^knUN z=k5U$aFy^E()3!=GaJ$i<CE*l_RgN&_2J}e+50+pSUP^%+t(kuKWevw{b$S!Uog=x z(?=Cei`<UA-Sqf=GhzMqc70!B*2)leMs+AjVW^Vt7X&fxU5pmTq5~jw*JjL9Lh=U< zxId~@JM0$Y1)wk4k1s)bbFhP@kHI~cOb{cujhM*}5kiv&xT*({2aM2+&r1gxR)w7{ zSe=+K2f2ech&WUlDPEku-w2PxZJz`Az>E>y*O^K<?ajpL$LPtFj@8491p?%L-hX~u zS(tKodF1@$8262B%HxC2HgP<1x11<KjPrRp!tHn(5YY2RE>m#!oVO!a9ej82{Q0qV z=lR~6d3v~h0-1KY8`~yVKuz5mf?YQys2c<|poN%2cnnUSUJ|}v2gaR#YbBKGWL$C* zH3tef1a?L7H&HlZ&fs&r4mlEd8w~`E>wu#AK~$8d-5Oj8Yof#3)td`#qElN+I;UHj z!fbDn#COD!HfmTsP7p)%<e^`s)?9H0^16r*P{T4C><h_aS)q2YRv;8&c<jLf$tlE| zc7qMi0-r9)2zMdg#<f|uyu#2^-jCJ{7w5=6??-fGfO=-cdQSxNOrKYWW)U7F!17BE zm^mD=|MHXz5FmJmiOUu;`-{T@BHi2OFCo-_@QP~RPOyLG1?{c@r7o6-&Um{UvYa5Q zU#{esMPe_;K-n`7hcQCQhcEJSjVumC><63C&T_xo(&WZS*2HGXXm33+?IGGK9UNG! z7;?SMbkQxy4qa*!MTOqb@Nrp^H~?lij+mfxxOkhg0&X9@dMwsJj**^h6KQLO2n5?u z3KV^ORRc;_&4NEZx-h7cYfRl*v*qI=HtR&7&l1SdxLqmo(uC@9e)U?}2m=YhghIvV z$d8ihS5$RKnkWFRU)im5!9<>X_4;Q$-%d@v@Ef{S9<hF+zD5~*$Y>k~O>bBbDAdXm z7h?&-qD8T0^I&3)IT{!?wRrwnywe#motmK_Qq{;N0?!(zQh8NvL$#5ymN=R*K-_4L zKn*cy5v(x3&cAuG#ps#M{g^lYIY>tkw<3Cg_GR?K1s=FVFJR2v)Y1+Yd%j6UlQ4yJ z99Dn($OwSmA#(*_e3Un8J@6!j+o}lb1Dw~j(Syzs9hZJwnN7cP6bPb`c$l5CTZo!p z>Nr$zyGkY>c(0&WkE|)FewJAb!TfSy5slQUZviOUkPwgOCf_@bQk0w3LWF}dAPIz* zvg-gm^kn&qef@#hweQ?0G*}Q;=*~%yvL%oZcXL%Y%S@%^V~GN@?)mv&709QWO^Ay1 z0;dL92&YI00fI{Is`H-b^RWCVb@>fe%uFOpeZC~<_}@FA321%&%5l()@1{G;MSgO% zOgfi2WVV=d;A6xbv1yudEe{tZU^VX08q7;c%gV<7SAJ{5+QuYm$n++N>P{2}E9sWw zFw5MX9H~l+s;t@@be9&aFg7wSeIFH9wywzK%&IInNQeLy*5Z|lLdL(V^VikYIDya_ z?(z-2E7Nt`gP+pRy`O%dOQzjN8^0a{D&<*OHcVNnE9coq>dAlD1NqGeYy8r0&S0Cx z_T}4cnTF7V0@`fS;eWoA?$&3a4QGpTA{PEAj1E!d#=QDe&va+C(?ip)s}1>tJYn>; zrRtKJytHFid$dK-?yR&Ma5a}K!|a~i@6w)tsi<E6<tESXJc(bq#|Zq(F{3BTh9uwS z>X~)Hu6*GkZ$>|jK!le`YNjJs84ib4(QcDods#eeT<-<QnS?DU1_ExVz9CNCvhm~U zy4U%QAhy6_^0@;C6+25?!huk;ofWx-Z;fQhCL}{l!(nF;T{%R3CtRK30F9!^9NU%b z&@E2h8e|VQebWWZ*0pNYA?LI^W2$yi2rqYaXUUc5b!4j37M=r9@`fY3k$EtK6=IHm zxtNw0ftmzA?dE#dvyUXXLnMSg<_arh5Mp+gPA?uVok<vFhQk?#W{=)wH9Bdu2eew| z)NOz>F>+u|qL?$gF&`(YU6EX|@TUKDaqMch{mHW(8yow%g*q*`_awG8-aqjhMXV5Q z`D?RJjSY(pqcf2nBt5AwBx*)E)BJJZMh+U)`I&p|b<h=H$qdAGUNw)=B5CZJoM5O= z{>XkUOOi!aUGr59>euh|Z#Tv=zkBgf36zS=MV8!qqz*PR8w8G0&MMw26zU`@lednt z3Zg;t=@(W#h(CUN?Nj%GS(>?Y-}*RsJEwBSbg^==D@b4#AR#l2+X|?*J3l=~zk;<t z9+Nv&dcBUbJD`7_cXMRyqAV;*%;JRlZq3?(6cF%9)^0MRwsB4!S&{5%ZKm5H@-q`2 zj@OL3u(?47P9l*SyHkpg4PtU9JY!^<b=hj@a<+!-J_W&vdZ=yNT~B3G*7;*w<YM;? zU_`XHb^mr$%Ov(~H~R<S>0h~Km3J#yWv8$@+~VY%lPp%)6(qjKMwWA1QWDoG+g<WF zZ?-e@T!-fSjG@)1u9^4adymUnfJ4`$smK&!&Dp(MYW4%deCb514o?-^t*U#GiXDNM z=vpsDKXH8P)Ick&tBbQ1aKTSWDHSQJY$uLoN<_c}h*7=+V4{!OhVNwn`n(8sl<)4i zstZqW;0(<OaMNX;%vz3p-yl~V&q>mQAHaXy=X_Dl9sc~Y=qOSCXEq&kXJ`BWVxcS1 zw6WV_NBYUt8xWBf7quZdx7o6qM<L%tp{ZY^%|v-!L<6E(Xr*l|N3LM+5c&O_ff0#F zB<K1UK092>K9q6L&5h%!GC>n{s8Vw&Im|HCT2jqi6-Av;5&kG06?uAbR_;MiSsDKl zrTmhVI1w}dk~P~p=vzCyumFV~fz+`xIaqr~J2j%!LFG81q`;zNFFVnaW7Iq1l5)Di z7+PY&)v&5jd)0jxKJX}trit>QIavi8t^4<hqX!X`GKdPzn`%1!uSjXrZ=`x^;Te3% zz1e-9Cb><h8!84t@1Z8!)z3W^?~jamuH#IOiTRh*fSpI`qX})MT2oO`5%H;H!>eZ6 z?QW>girJ}fb|mV0<f+4EH)P7Vnp10|VpFyH1p5rqj{H7wsR8;<RvjP=$llhPr<SH? zdMFGLO{+;XaDfk#RT&j5lC{B!m_~o=#(~j`YNOy_D~g0}S>Sn$eqEAqvZq5t>A%N$ z3u04D%BYue|5@x#4sy2z#iEz|2<WvLNz$YdVphXmXNB->A@QC$hHFu^&YZ>>!@A%5 z#b#b2r$)PRmNgbbL1$1mVm@PSfv#gRv7J#X))cE#075h;N#?{__`AtDXPt5tmf%Ke zf~r?VQ~?M6<mwMdu04fnYI&V8k>IigI#`}Z16n_k`Y!Om$oby{sCA-kgNG{e-rnxc z*gc=OYsTJ>yE>^>eY2*FuH!VxAb2y&AxX$C&>NV`ax5IkZqpjJT4lw6H&0{}C?CqJ zFs(E818de~9FEaDq-p&Qe@K*c2fD1(C;;T^1CPy$U<X{g03sOhE|Y!A{rN8-VV}@D z-)14mqs;2^fwF<ovmxM-JAy(<{m@7YK!_xaHlnN4teA4#`i!_m(3@jkS{{>*qUt@< z&#Tn&&UxnLnPnBy<T<A-HT+8pvSnM~&(%8*4}*zMq;@#)Q5xYw0->kUvkPBpmQsDH zai2^v1jll(^>hd845OD<*m8(zdMk^KGoH3%BY{!V+qybGyTDWl$9P3F$$D5d@n#So zRv=5=3k`r>yAD~_WHLJsUFe}eVk8Re8ia;R8L$=U29y&Z4l}L><-*R8<O3~zU>3#@ z5U7wg+AKyZoalQ(6X6JHRwS4>g(26BU4FP*t8;@IkkWVAJrrL4_eTnVh~Y87re;n) z4vnG6XC$f*iI$(Ki5?1|C}zHiWFS$pIoUj3zS6mH82R!hvbovZZug(RBmbUFfe%ZJ zq8Ev1PX`es-FPqIR*3kp7Z`+SbW5~LhKD*9O}f!VjR<i_U6QPN#)HX0yYs^hAi+Ym zjlM<(gFVy%ntH=Q02|s4wE92RW80->*}KM96C|Nffk)$;GJxtnF6`;3HB=gD2OIQp z@OdQr;n=q@agIPZpoK7ip({$N^_;@8siIdcmfT%PT9CQxqG0o~)C-_&_EHouUGny@ zB37)UnZV&8^b`?D<c=A4+2o|E0#PZ2niG-3z#UCcQN^J4x{Ph)%b<nB>QYL$!e_4$ z0){U#8PzsR*n~F-eGT(L4Mfs1VBL+FLBZffhu>g$PzNHxBAGqLa&mGGTbl`L=vN!( z=h4;6aDoos&sQ0HZm}C_g4-$aZv!P199aFgERb`{?pnfdj4f6=IO@<gd&hoguJ^`? z;2)uXu^3=wpKoK@NL{MDDI1opgOwIB^qj=&)8hz;7NweY0r=tbDg@Vr>Xsx%z#0MV zSeXd>;mq{5ir=t%T;LFR9)J39jqu#kN^#8meD81hAkRlwUjUOG#t1ZL5J!Uvtlt0@ zJda?(U#uL#4ZWW3dItX<^7967=08m7`m$J?(O*b=M<c_RY#Q~$$;9m4CEw!^^7MfF z1Hq`e<nA$L#R+5m*?0C(JL%p(Dn-CFC+baZJL<Iv9Xf@8D>rRAY&w<GDBXxPqUj7N zsuG9Hz)=U04O#;L!QZk4Wrae?-9_mHAbr#NnpHI%lfExL<b?{1z~K+KP0qnnC)wba z-%yra9bf`g@@U;Pr-v#n30{LLOHK&}*c&v&2Z<c93~>+8nE<Zx2JlWcrl6#4zy#DT zmj<TRs*_<P5D3<QM^Fj%Uz~In2amvMIlCtCG}0?$)~dPd&K|13V#~+>y_j~>M>P($ z&CZZ+IZ&Bgr0hcd>=~gkCYRcF*WHe|IH#9(3>1cvuy&un+{A;|N3<*Mjxb<aTi1j5 zWyeSkFu~1svq>FNwwGOK89W)Gq}uN$T-*m#&e1r734hWl=kwQ<nt9A4{chN^wMVI{ z3WTdqdVDcc_LhdSWHh1-nTQEiIt5t6z^G<SnZ*ha$d*gv^!@>ny-4N^PrGtLVC$G8 z4rQE~3#TMN<)c$aLVT7*1YQU`dzdMU!{gJ_)zOs;NM`$E$**56v(fNwIs2nSB{O#Z z$wO{oKmEg<X$yA}N4LIFf8Fpq9xK;32AC~Wn4uNv`#O2&b!>LpNT?J#z}YqOrJWXC z$9yy+Hkp|DBi1A=XLh)-%z3#gTED~|9OU%@E_m1%V6pzJX>b_ZpK26hve6mu|0;J; z$Pp^!sk_@%<`yPJUg!csTSS#>u8~s?;#eI%`PsqLezZk`hKG?W0(bA#5rhPN1|@}J zw#;5UKKYP+ZJYxfK4A+n*UBKeJD`yf5j=aFotQoKtjU;b&A1P<0ND$Q^Jopt($j)| zhwTbAgV|ipVF*1;mooh)SBjl&Cw;JaNHhvH%o7<HvNM#_0d~to04-3}8E*Od4aR$H ztp|sn*sRT`$&2=!)&g;dxUH8uE=PK)2*4i`-o!r3_zf2}KorXvzxB(OkD@ydAJoJX z8Xn)WZ0uiuRYZEIaaAG|zcGe)Rqv+Em+TtrxTcN4FXSY^E`TpI6)H4=B<!2}#MKxk z&S4q?-aZIosIAqAhg@n#-Jgr$M|qt!^`wj5i<!@)i<556w#^5wyw*D0;u@k!0-G*q zD19uY8xX|&;&+}nAUe_l?%1YkNaDh+X+S*Q_m!UKfd_AaHdn+SNUse$s`g4Mfw~G? zwjPv=3tC4Csf+A#?Hh>Ckdx`Y;PP0m41H&^Dr|9be7IJx{P2{*$u33ZaUG|};3_mh z{B;uH8+%*+3(6{dv;EEL%0I{u>2eoIlIyd@@S>pWu>w+94s-AI{F_-Ei-9*kqv!p^ z9i{2`SFnFBgUl99G?F$D_zKdvlumNoXg#~Q>?3wZg#y3=>$Ut?leM=^ViY_x(7)FR zR}3Iv*$tP5ot{|7&FZn9SrzB$tz@H}2@48?x`NgEgGMqhM@T#3(lV?|gF_u}cFkt9 zvDrF@uJf=pjZeoSwFMGZVue}V+|A%`<u3_S9NZEvBwgyyPt~pG-p5}wd39KHQsDE> zhJH>W!39@r@}Ox1?}K?^8|-I0sRYumCPd%fm=b-w)r_1KaDg?ip;CG#ugFd&BCYaz zW>`*Dd;1;%56Zl9P7;U!EH_AZ$F*q!U7jrO*YpKly1;*|eCFx^;M{s&Y!QIIT5IDC z4{12P2~4#)2_K&lL*!aUt4^x#n=D{ADJuYf1K0PU=5{7@pT!9`zlU<!u3g5iTr`00 zs@rY*FWwLqP+=s0ov3LZeHnG0Y~{i{P!MZrFvGJONMj;lc}q<@LY922;Aqg<t%`*u zBN~CHhO{MiP7TZtEP%<f40l6Q$PD7@|J|WtZ=lIcWWz%b^pn~ckTe!B_Oa2R(`PDr z+t-v!mLIA9>*17;CW7C|4A2NA3vRdw+&n5$zPU9FuPu`;9B`vbZ>s2Vymr>by;6j? zlH-UWIh{W`r+N33s3ph!_y3oV6y-+fP=-X<8vdE{k^iIy$QlHByYvvN1+Y8si(@@4 zDa6FEfCfJOc=Uy_=3!TQX?O(9;suA{|98#iNRQ{~c(6rX(jKY~wsA9)0ymNc_2SHc z6S2ML^zAqhC_*1UN&HKkRvGq}46f4%`kT>&;DW@%&k+4ZyUtJ46%G^L>Vfk#mhLHu zCWsPn+@y-y!j@Fq{9FkCWK5TR=Jyci^we=Yht${34-cGi73DR@yC_#-Hbobsp#IZJ zQ#AG|4EX2N&>f-Aixf9{V(8k6>>`_(J(id4VO#X!_y52gv&4UQ*?<55X8);>|9=Hi zPtU^E!dXx6f5#pFk1)R&WvQqwdW7CjweY8X3_;qRe_NqE)*{-b>BfzXMzCcJasX}x zaa)MVua{UOF;|^p-qribv(I71ES3oQwdbBzelmm$^J<cA)T({HqI<n`XXQoUVIzwq zW=>D5;Na-j>LNWHYlpL2<-VI`m&8es^TwA%=fc%@!}@&>z-ko`_r4b(yHgm9_1!nu z6{`6yX@V`%`Kb7Tq*>n1I_8%^Z01Dt3{~J9F89AG<d7r6z^xk2LEkP7Wf@h|4KD^o z97p?pcM|6LB9`4|(NX`;u${x3p&RJ$kDuJ?38|+V-~-Q;b~qEu=T<*4mdC&7_$V$} z_~uyHnAMXbD7Mmw%j|6j;eyubvW>wE^ZC>+60*+hDr_Ew;SeI<Xe(AKDmb0wsh1&U ze8kejnb13!lOmVsN8{8=w%-q%)rN%|)-Q<M_u%+O02U-pa52+KsTPj<nNs1h1gMY| zsTi0{#xe?nQUzm+GS0MlaxShFc?^tx$_tmUh<`AJ(#EZHx#p_Nbji!H4XHVT1Rg<H zLAFRX-<;5)`Mm6L*{`EjU`GCEKR%_7w~Vu%d#7YV#er_i>j;MW)_vs%C?#{cxScDI ziF8&S42pp5MTZu6R}V2<$Hb)THL#E{Dj)owq~#4GxTkz#lXc7bc_-UU!p}j?;&9e` z$Yt^$EW9MWD4iVKY)j`Nf7!**?2b$kmH|tSo{x@YALAAmg{c)3CQJOwT$9NSRq1L_ zaoHSRx{O*qy`cM#D3}mE+Rz>v005WjKT|a<oc=2x!HlNXKM;)O`&x(JNlt8|O(fg2 zk#7zr?j#U&ZPGg9iq{x`FO@tKLv1NB;lj!F>oZ5-LO?R<5b2?AK-w}fbgTV#e;4ma z`IZ@MpqY}AZy>(jxnD@EGHaMSPj5tmsz6GX)EP8&qBODE{7x;UFk<p(Gw>ij8qKnY znJ2Bd%p@h!ti9B2y{x^qS4U?RpfSBBvix#s_wU7urV*qBL66Z_X_RJl{0Z(SD#}i| z0*Cbwc&xB2<mhymVayb>;>-a_nkeQZF>4uVs=L7RJNSN>h0Y(_X&LE#kEpusxxqT$ zu1u(l)6QXAcX7PB_~3GuDc(v46_jl2P5Jjxc~rcO0fuF;I4$mglM-|*Fdn|Ki7*oH zYv}q5A=e)#zLo~xkF@T7E@7pchj$qsVAq$U?@i17`TT1qtV)U>B)jwaMCtARu`P>g z#eJFO=i?Yk^S2^1jx4E84X<`6YA(-q&W^VQB1u9}sc~Nm?+1QrEKpVgk;jx<GLX%3 z6%>^9wAeD56BIfC(3dDAmf7gQXh$2kOeHmh^&=E&!kw4I0*&T4oYhO*rBY>0NWsV| zRuJ;$#O{XcSfJ*+%O4dTjap_1H3o^&JDm!vMxi2nwQ*Gg3IIw2h+yH`O?T;Nhbkgj zjW9OGcSrt}G$mZJe(KCF(-Km9mob)cGjck$`KhOMCo9o|YlWRK>cIq+<`X#6H2$@c z`@Z=uvhld`D&j&Ep&GHTsaX5jSXql~&=^An@(^D|3RprsnXCrvt(Mpbg6IRi5FEev z1X4=Fx}~A}>HZMr_YF`w5{g9HLVXSyf`*%PEkkTPZ=Cak4c(Z4e^35lzdGx|BY#)} z?k@{THZU5lY){x12+fzc#ezmWjXrHMWkplY-w|oVQMIE-1Xw|%Krl%LQhvuMYrnC! z&5CE!6bxAb(#2Fw1E|nK@X#y#V4?>Z6wMp%fGzn2no`DWOjU$Z+leJ5CEKAU%j?u? ztYM)TaS~MQ%q!PZd9yyUe@RK5;QNq3Xn{!L;M9JLp*EU)lXuy+QaLyfRbr043@05^ zwz!6W2}4_$TTsZ0<GhE+J?b3g$1)!b>{itaz3NTz_ZmxOttY9c+7<|6HE>wQNVjOk z*Nk6}OJs_vJ&O(T2FQa1slW-7O7>L_a2FRd>YJy$nUj)nUNCv>jlqY&8+}GO`?1(l zT*M65B+iX-n7!75vJxQjF)h^Keo1;N2h7W<LMuviI^3(u7tQWCH~4Nz=BB-T-W$5v zLbs;8d>Tm8d*?*{vVC6c9Qg3-3Ya(pF@3(!SWf~Dmyt2Gnfw$AQ%4lZ{)K$b<PU;L zsW&H{BR0*I`0xlF>>r@6Nt8}+GN!xgwUyGmE=*MGVACdnwi`mKWL-hEF2*b$cASAU ztovFE5?M+Em+Nz+w%4}o3(&l&=v?xuWBI+5-v~HOGys6FhA5<z3xWS(dag8Ic0Yoa zsqhDmYnZ@JJ?m6Jg|o5(ZPpMOb43IsG2|rep^71=v*)~AM6GG7@Yk;)B5edxI%t9@ zn6pP1oc)-Q^-3kARHaT;-%)r?$4$AcI2M^^qJ4QXTKWL2-hKL(PvUt3uIyW`@2(S= zQztaPAndKx-!G@eEx@gQa3r^J0-K!{&N9a<EbZr)3(yfY5w1n~%h&5IU#yVcngK>^ zX=OI2yfd(YgX11!r6eRk#h=m18K1>{Y*;f#Mw4Pfk@O9uv<F%p6&+f+gX6kc*Gvt@ zC6*Dqu!+>H*j(GlU9k1%(gx-!V$qN;Xu3!NhJz+-1t@^0GU=^};a{|Y0bulU5xrd= zH~3UeejdXU2SNRx_Qz!MsWgIIi0;piH&r=lCwyL_-S_tq@Vc!00JNUnf7K)GvG`E5 zR6t^$SO+;(@4t-YLo&Bz%UCK0x(}v4?We_fwsCSPPE@q(@Xm;ldMQjlp2CTN-zaF= zGgEm1n+|vGqPh|Rqs!vATw$3RSI-JgasZVi=sGG5coMBn*S>;Lj?YK!FJ}*yy!fVE z7`Hly^$6C$Rt(CRkJUYxxhn6GwoIwKtyXU2anSDVz8bRLx8DmB47+4GeqHHa0(K<m z?m}wf@@&J|65<FYc2~F;xU)dvtPWS}jLmfnb4sn&wsX@}IH&f}sssWf_dT4)HiqG7 za`&8It}!1F0d4*+Moue3{gYzmV}O`D^V0}>6*VOztT7FvY))RdCIq<GgV85bj;N*4 zrs|_OM#p^cfuTZ}Ax7o-<0P3@&<meIscUzrdHi}+Kqv`U;3GA?iNUANbkL`(iUhr# zy0cZ!K$04{hU@t<JdgVSoZn*Ie?trgY#rj=Lw#}tMwAYvnIg$%&W2)WSbLxc&Y;sN zkcBhAq5ZWLk2>(t(OCNUtHfWn4gp+wTgO;5dl|2mpa0h5bFpLRvzcrWI;kbG_i{mF z=zmb>&-b%oLaRPW2~;bL!i9ZfZ8YxZn+a0DB6BM1L>X!qWa78Eb7((|k~R^?{Ni&N zTZa<5hWt%Uic(48OaCzX0Y8uHDCiSX;n%!8Wlm{kzEQ|_;h_{D#q6ZUD-6Nx|4C@8 zZGYO(-{HeP15SCg*VmzN;m42T4@CnmZyM|-umL9`hG9*J(JHZ}chMtzuB$(HJ#q}r zOe0$Mfb?pivB(`iFsZJWf9;@W5rf&2>nFuk(a@kXdE2Dvy@_UubT}I>KfFU0a*%tE zFu1thq`zQ2L~Jzaj<B0{Kz<<$57dk|$-)iiahq{izh4D2K<wv-hXE<k?ZGbA%AQ8j zkspbU^DDiODJ}l3xTDrw6I@4xl1XD4e7o8)k~p3*V=44)YgN1r7B<1rMM1hb;v7|} zt=JBjxx@R#h%6oQvP$+$@)X4>G=*G~$kk8<&eR!V!R^G?BGOAx@`?h5ZGY9g=T~vU z#>u<Msaa%lc!Dk5@vbL|JvK56wWuk68fZjI<>)<$X%d%oBwAZb^L+&l_dL<<b}#tp zIofj?VUkGkA09+++*^w?{&P%S(rA6W5_UOtxAZRNT@YJG*7Ly%sSdnqY@j&wo@jcW zTs#9$2*7eopqyHwAks!T*LlNL_kJDvbaT5qeao;3!OBD_O%;tx54U%$D`w9R_ast| zJ<HCVte*U3ddNKLX~)^+mFW)2OIQd(paQl^3zBnmi##Myk39>DVqIpCOjbZmq(B)= ztE?|gj|oCzZQXyjjoHcuH}I4eSaIX)-Q6qwimO%Ot`CZGwm@o#X`5_-O@zMM&Yb_Z zlQnvc3yAd3xF|sBNpTYnT(tG3d$@3s{EK3@@Hx;1m+`sjmq~1+j8E5)l-TVqML436 zE#ZM4DXxb^Itlnac-`iH;hEI?MTxLPb_7?QHaZRRO&MB!4w&+UQ0CgtOwnV`jh7c| zdW}J(|AobRxpw7W4A~9$Ug0hzdymz`($lfzuhPJW(dhNt0AzGD<=H8)-5TsXPQDE% zb6)f5<_Po0B61&SlP`Wt^GY(b+%0BdYh*_6)eQGCY_#Li9110J56h#2pVji5M6MP& zL!ENTrVn5kRy#<rQs?thoz((eq4?owz3FvqU8|*?`>Z7|tGY|Rp}b3TS^f*?XVp0E z9gDH{_ivS`s7(s)Wes!;8-TGg7c?{N#e@zV(jE<E05{FtwkyXtJ%1MXAl%Lvi-RwR zy{qr*>pHc!2;oHjq%3w%R3T7SJfnT4RgY6DV)b>T_W8j$8^PxR1g-<=mcVlWU-@`* zA>WN5xNSKxr4MmZMrl<et*EgkBlMwe<BlMC((+7{J*`IA+@PvJVGBr-W2ub~q0AhZ zho>9;eWQ}vUDxc!?1`0G9t^h1(WVc$836?@Rqa3~tKNd%Z!P&f5GWXumKe*1@Bbrm zZZG~-*Z=|mz!CpH)3O|$ZT>4Qs|VA{ZmadbhdMRj$8T?HCff90`&*wSqL8<i2xMIk z$-o4ro~cJsLlLJ?Q#J1OI+deSD7bd(Y8RIOdElOSe36WVEpS%3P;``(=%ff<E}mXe zC(bslI7u|IWUPP>w(OPI^;SA=j3+#)<XJiol_RAp{xf3Ogy<pkrjvQ^bf0b(NTR)p z51~ZA)35BOP_p%?Se9WKI|LbkTIb;{_nya1%c5oKZR+X~Ye<xoZIj*8_E5Whr>*AY zrcFfav#(e}m?u-3G(mhoMfhAQJ}I-19lUf48+c?d;DJ|%1gbWV560w(Jbh}Fi#lK^ zYK-ucF3YF;>*)d))^@Qn6n8MQ@CBRo`|SF&7e0$#R|d!!$5e{)4xzl86Lv$hLWptC zK4q?$7aVC;g{i@^naHdMnOWRW%b;1!SQg_=kmNSWIab0P<i*1>hj!q1u*{LBJ+QM7 zIE7)006-@)>w^$u%v}Jv6dkC~Yu=2uetSjQi3B<qW6l&0=A2sga{gHbtyb8cEGeFO z!h9O1U%~<Ixz>pDP=LyTWhQtJlD`|k(WM_})h>_-eJx;52ek&sD<}vfXOxTj1yGAd z2?0ii%9rdazC+$-ibSuFUQUQhFm>mC0V<~^>N@<egxwQ45VBzf$$dM9frYq~y-gjY z1xX5z=TVPg#wR<iy>zK0#30GuX^BCPT1F8MOH9Xz_NZU(QNvRBxq<uUEW6Ua*f8#r z=>^AT_zu3EdX(^2dh`+@8_UQ2{)3e<FR#xdH}NxXd~JA#*Ml^2?1;6xpAT<NHutjW z{NNe|Mfkp_lR&Od*B4L9=})b`R#-UZj)Vf5KE2XIBo1DV_hno5Yyo&V*;38uiD>Y> z8=i3N#}+L}Ut+Ef9RZ91GkTnspk`CMDMkc-yePwzA(USjDbB1WB~$wV5##MSqm^Bq z-(Rz0C|mDZBNNxqY46Ipw(Y3Aoz}Z8YWFG8Fud`FH=>v6X|jDPCo#RGYc>DMr51!& z6zxYiWyOP2g<8PvXj+v!9!RWM3t#l<QAFy2RJlx|O0iWMkmmV#U0B*<sN7(SSYciN z4vI`>7>HFpEqm%<bp9X%ApEaBSW+WUVUFbddw-9V?KXT&CJ>az^DwWMzA`pQ_$4Y@ zxGW<BPV^eg+Th^$w|)V0aSZI^k+(s6ZY&oEo0#tQpRfh=HQWTKwKR|f8s*mqDQ&$g z%h2&Yd#s?gv_p(&AE5|=54K%phplUccF}IAHQd~gC^P-G6I5u@0UJVdr9lACWD*n} z{aY|6PTOS}P>y}h*uW|K<-kgH$MRiZxs+Cwf|_Hqyf>Mperj=kT`%qR<f%C76`tP> zp^iULD?IrI%06S3E{lW7j7$yrwu81n>kw$y49bmi+Kaf#&#F5aBTf2l-XPt)4gMMm zFbDcerQp)!&Z|~@eon>#m+N!gn{5DU^PRO>sqPTBI9leU^YHoi85FoJu3Los0XGD8 z2zTSF%1|_h2Z+1;Y-4Dl7S#)LV)C1h1?nC7DlV+THgVmP>9#?n8p!iDr#7)kF!Bou z{~Gcz_0OV%mzf9tL3FGzL>c<#-1?{rSmYT2?CrY%V1_*U_C1UFK)iS+oWb<!9d|Ne z<BHCQ-fNj11DSQ~wCW%cKVpM(i0`a;1An1p)~WblD_pDb&?&{FIxI)Mfu2+i!*p5> zI9@`>6o*oFZrI@)YNCqRFJGMzHK{IBAR$T6^FkGdi{u)5)C0d#_Et%Dj)0rp3rV<e zT_>Y<d}_}zA|-Vie@T;o#U}0wORpn<8z|HmLQVfWv=~A1l))B}BTv{r)L&Hg`b3=$ zD*5~-9R`@=Pz?s6yS-kYKd0p-4aSr)6timkK6W_&jj(rM&NS+_c4OPNZQJhHdSctQ zZQHh;jygss9ox2(FIA`N)PDCq-`W3R-D{0|jxn!sd07s1bkAT7=6rE6_;(WxV+!0x zC#|)?U>(M(l4UmFGW@+QjcM*>zeSF}&d-1!coku@bWLoC--2Yu9%Zw9&`rvyXCoL# zVgZ{3zNMDrOdtq23A(izVY^Tpa*JQ;tYe{N$R#rH`l`o|e(IbM5}^ur<r!&==xb)) z2M-6qHRiS(DwA)=u=LN1Bf&jVFO0QksdppjKC%ny9W<pX6#LYJs5(XP6irWDab*nz zUpMfhOF9I*)`tUq`Gn#-mO^ry8GV;%^R!Yo6mh|XX*9#e-^N1FtFaq~X~0y|BIcLg z^xhle84G))!+g2*p8$dhN18JMTlrST_gLOj#MPw?5K&g41aZbtkvrWqceX9E#{+DX zANw7lR_^&W$M5a(;$m-+($Lw&UNqzLa1YNd{&Mp<-JH;`_w8`+4MaiVB6$+=;bQpk zaAcJ|$7j(oK<;j!0R?O3jPeRs!=ap^F?V8-CVzGfPV1O_ij$&~hG9^}AdR4!*zIK8 zxH6VJ&{uVHv85GV#VQ6@f%r98=6k40yaI}pOr4|ywM+0eM4jX;mag3eDLhKmmX_N_ zt8=^zR|ET4{6)`&ZG_IoseaE#h0-EP)O#$suriN_;h58J+gaV64Nl$o=^D_p4(`Rs zYvsa$_oQI(f<<w_Ztu0GT=OR%b7SxZG6eKaT8K%cG21cG6Mrb}g_c-HI8pqI!hTEa zn>(f;Z8G>QeI#a3Z>RL6_2hAp5q+V_8MVWzgK(<B++FANaipzbB<R+WexQ?JAtbu% zC|XNlS(8w`iB>h2e5aO24KH8&adX*ohaupyW3^A71AyoeRy!M~D<KH~osZ|i{;&n3 zA|O0^c7Ni>_*ig(7xW5Y5ccgbW&A6-U8vV0!xX+j-7>F={g>BbwYmM28wK4kwvG4T z5oZ&U|M0zTRJPRG7Nj?Ug&~1Tg`fPnbH<LfYFi_D@CWFBP9ND9wrCB0=HZwS|Npwh z`G3<bxvKK^drU~Z#~Lv-#FW|*UUk1~_tbyB!{Tw48L%22w`IbX3#;$<IMBe7hT4|C z0P`)r*|F@U8IA!@d{LKi?uxQj1|c??HJDCy;M_TZ$vA}bcYlF89dmLor{&1fls3zn zQ)&#E{a#<rwJ4ZPWaZI<mTO{92$utlL)<aM6y}K5QA>02WE3ef2{sejCc0#855!-C z?a}W(QwAHZO6bcwiWd6#{GF0|zY4EBg)-OfWF{P9q$qjd@0-mh#s}0X-HWL3%Thc; z1*k}ankcTNqfuGdZ0*U07#Iu}?@X`;etD=FsOC49{WXe@lLt(g>9paHWyLw*{yLaU zWX=^P$}Xii`MfY!#o`&BDI-K}70@+(t2A1?Sba#clE_<zG_vIJ=qmd-WvOt?;&H!1 zJ@a2`e$Ur-TRATfIVz_y3rFjIID+%@$;=tM-5+i&a$Y{X*xkjh2`*1RmOMch%YvZ- zRd0v`hO252hvXbH+YV^lv~>qvkdUVW!<2`P#|f2GPDNA&fof*dVwM>orq2xozr-{% zZcUt7b{sZUIjocfolu-pAnVL~u1|RwK;~3bkIxyt?6_I0HjvI=POpVpcM2xfy1V^z z7_5&mVtO2OsLvyo+^o@_^MWqNSMv<a9}MksN@uUJIBcx}y^+@)T|U$8MIK^b>$|V| zG^(`udM&&8pfVgq=+wze<{-X5xM0{P{<umueroIzScDy(VF6{IvTgKeS^cGp{}~<q zk}IN;59+%sl~*68XZc5Shz;yRQM&HBL{$nkRGOV&LKu4l)9M5EKTqxU8u84^&xy@O z{U3!)KkQT|fU%3c6C=RL*v{1be_ICF)U<V8<U;z%juld`IEok_*D_j$4LyVbnNp4E zg2Jt!#T(V5wzeH49)vxFef!a_M_!WAKg9hyw!~RqbH5bm{)4&)oqu~8K*rPX-YOIo z(P5WxA{KOxf-&;57T^%(vJ)m3TvAx|_YOQhY`~W$eHJCnJxg41@_?HyDm_VIRxk(t zekCu0WH6o9oDXT(UR(JWY^DlUQpOp%^wR+aOH8FIRo_vlDzy{O?bfiauaQ7RGl2i^ zJk}DFzPaf0=jm%g4pOuNUz}>Nj;L8_^;P+zyE)@#ynml4h~;!k+}~*7>eS@8+)6B5 zT<vrN9S!f=lx8*m+uh7rRlJ4J$&cf7+xLt$_ou)5!yK|NRu|XoHQHqWwjM0Kf``fe zMRRAZlK^(2$}SP?Ga0p5GdW*~j)~Uk+vPBO{R}EMSdQcrT3#fSe<|z8`*OQ!|J+rZ z2Cmwkd2{#mSFA9)u)_X6W|k`%14P;maB16^N~>?C8#I-A`umi*?4byLKnz6FE>IGq z|5)@<_n-ce43{<lbBkIU%O+}M@;T*AlKR^w9|zx&MYE%BNcqBxC<N+SM3|>UYmyZz zn$QR#4-R7BeFscs=9PM39cFv!%Y^rowlB@H@!-;+N;~`J`gw2mYoW+<nVPkik^^pB zQvoxJjn4SL{AnlN_1D;^>~Sh%>AgjY^cN`mGVT=>`>W(P8~*7r5T8p?G!TD!Cx6(G zxUFxx<%JwA=aE~9blTI#ey7$3da-V-T0bCelM6W5E)o^U(R6!9aJTv|F`5_c><-0N zJefgpp}+STn2zj;3h6?#xe$W}bp<h5ps=wrnmdadIobX}&r#Ks*+)ywNvyAkHW4Qn zK9ehz+VkR$hCN%_lwX6Ht}05PTFlishXCrcPCNgbyGpQ4*Ah{Yxa&Rmk*sH$xS0yC z!^R_hp#uMC8`@*yU7;Bru55(nMMiXSFS5xqK+>kJ_@*D@OV+h)0LKzwd$EaFM<0rV zX^dKK0NmUkE@B+m9%DdHSPeh<uX&MZElH-qx4_HHAUaZ>G-0YZ6IjB(yw`t2@a!Rv zi*VM=xlo|r)BW>Msh~T>0r3Q4_j0)4T?Jwrw%y-DAEmrOT=XuCgya1TQu8fO-kirI zB0Xk1Xu&4Rvmzo7_?9|9i0%1b<*?Wm(np_o3tA+JMcf+D^w_RZTY94~`-+MGatqJp zlV5xPsZq%2ZV%w5!+UA-+U5Q7$t|W-0HZq5%`z1d>ile8iu)i#I*WyX7^1BX6%Mg| zJ_UL_VJiSX_;(l<b%-?by5=R;cqM!!TDu$|pwZDCA^PDA-@Oa+Q{h_)yEU{jM@i6T z|9j!g+xfzlCO$^}t|2u_Gm$gqyd^&w_6Ese99%{`Eqw7B|4Gyd8T7e<QkH4aFwH0V z;3{r64HcE&jK@2H@(_eI^`b{WaFdu&Om6DSj%?3N9ls5c2NKcj?-!tcg<qh9vD(k~ zc;=tv37R3DFQLz!I9ag?2=)<bP7X!kjh(~buK<g{V5gphG9yQM@`9?fsk(5kt&Xzi z3beQ@Y*9bG$e4j_N93p<**g`*7AM-k55^SJa0%^b-0Wdy#)^nL6)Vk24#F?#LaR2W zbX>8re*KyMlY*JYqhKD%bmi8fOCFlWJhKpTo(xIo9UMU~2chZ3?&1rz|LZ8G?L4Y< z^N-m(#VHQo1i!kR@@2Ksz;AQVuiKbC{fI3x)f8v6;6N!Mq)=zM$4!7$q#k_Vw0IGy zj*JeBfQ?d-*{7`dM)*9x5l9w}p<keXO=W?1wX%E@)Y(ozvfL?i)g)0}&iYVMTzPk+ zDJRBTKADCM`f<Wr?srlxEs~Jzv~nUu1VP=x9Wp^h#@*7FOApVg*2I=)+`NC-sDL$g z*70+eu8?vvnCjxq0eaqKAsZ_M?Jxv7_S+1)aKS)K{pBB-$dN&nUKYw?9)d9mbz?&! z3#sWusu7n8rn=}>M2<9BVeKt_go`aT+u-pByr`47=A2eu$ML#tvTiOtWS>8TH_jaY z_$hy^S@eJ&Q{pnv6jKC_+O+8D^ivVb_H;ofuA@V?s%%C`{D^6JUv!p_hK?<ZG&K$! z+y&$>qU8frcvLJI>H{}WzQIO+iiSSXPyp1s?g<-aJ69V?^Di0i`;-TS^-GdUNBu-t z7f0I?her|xUJ{J5>gh-VSRBh0TvE_y2n;FBPw>%+En~XnHQP1fs)j~}+kQM#<tnFU z{mt|>omyQIa-gcwIk3?f)QnKem@F;ZY!4|#D8xq;YY5__2`g1p7D1)bp6a%2*m1QK zB8qYa^yRPrR$yp{qdY74lXwvPDKY$S1&06eUfR33{crDOuEtN+ngi+U%0RdSl#D&j zmfKG<r@)e*NOT23Rvk`CIWUPzr<UwzJoQ`WZQH$M%XCDVk_cIRYt#AQ_KLe-7{T?^ zqFF5RChizNejZ6HE&ZpxeNw~^ONBxa<&{XXW&kr}H^7}|6@)ZbwfuUHsYI#H0o&8% zlM2fX%rsL>5ZQ0Q8M-%k=av+pWG2o=!q1LuJQ{iE%#)8Wtv`0+!lMwtEqTqb<=^+^ z<l4Dx-4<J_+^wsVzxCNCL0bY?FWk$se*Fl4{Oiq)2r+jY9?@}<1$MA?EYRUi-VoqU zVe9Mpe0vxCxROsO9B8RSY~<I62lsGKt{M8x`Vu`3>L2CyYi8N~CJg8JSJ|sc9$zk8 zY&mrVcKaQjkb}d$tAjh(AOD;#fq2lKW}jy{d7RPCtnh1{=kf8m`W1~8jR2owfx~-y z=A`(v1|c1iLrf2FP1e(x5ZnYP64D03P$nFtsgcH5_c6ebGztN4gK;)M_~n)#k9#Y@ zxG(y5n!`8Y(2F4-uKdxF(D~n6A1=$uM||K4SB(Wz4X@-g4%NS2oz~RP$pWp|Wbq5A z^f6<$)kB!TiRacrBA6cG%4Dh}g>cZlAqOZ|OoD0dqQqUv<OJSFbIp=lP>7Prr@xua z_d|I{>tZh(Z4q?z)+h?`0R~~QmN9hw817ZyPi^1yTOSL3$q5dD!&pmGx8rP*l*6kf z;!KgCQF@c1z0#bLqRuRA)5#p!l~e%bD^46h;|OvW6cs$~f*?*h5DQ9p&m%;S@UAqA zB!h26$*r&A*JgaJ54N0ca|mCwI(FaJR{NGfti<39Ok)6EEQfao_MDz%ukIdkG%}th z89faTW#Eb^P!>AoYsk_UMKs7MZL>_7!E&@}PeR|bp2+T2aG2_aJ(j$Y9)%pWikYNn zRT2k8Q4P~FwJKo*{-jQiNG0wow9aY}!ps8=kVIt_NZPrrIF@FP;gL;k0#wb)ulYhn zRTAL!MK5kM#3bRY1maU-L|D9<gHs$|p!?9eT<g*4n>w%us$kT8a5J~@v=$@N=&p|n zo(<XL9=;mYbWle$p4ILqPBkDHqOOVdvZF^E(4C5asb$(gD(7DD&Zf7XNRrw0x%*a; z-aUu3;{tWkz6&o?46N0JF)y18h#aSQH1@hK7Prl2ov$ZV?J4s^EU2nz6VC*~>N>ys zR@jS0erqy0?2Q&Vs#KD`evp0CVi#UU@)0w{*9obHvpq2z>hnC{FY29qgd14`p~AC? zrQgy->iGry6~8l)PZWyG5*6u^k7bGpmNF`wrq7hQ11sDYMPiX?4CHZBqYPr69sb<u z$KbN0I^`nbqO5*G2HL1nJ51M|`tFQ<{H<MFNZbq8At85KpJh{>Bwa6QIb`0d;^JG} z3n*l9`MWmb+}){V`pD}8r|eDY%*R>1;a?y+(Ur`P-uh%is>Fe;!R$7^O*J5WU_;ES zCq_VwRAn7<11sT<$9(2PSrpDyB1@FLU)Gr>V6>ZgPn~J#eie%;YR`j>h#7qvk`T(; z9BIiZf8qS$(t&lQq~B|v5o?xw>cVVkx^hhQiIm&_gFkyD6cnvQPm-IAFjCK$)9FBK zi+_H-!VRzT*}2+SgrB~e35$r{ES;S7O|NHjQB8|7GT9Jn-BWbvaHHg=dnP(gT}aNp z$V*|VFX~*2RIjaUJXr1KiG8Bc|00z5c$Im5!_j=(4sZTzT|F9D^>2xG`QR%%%5KOZ zOyjk(;u>&lG)mw^PLH4!f%+ai)xZx5IeGEl7^30zh6(jQu7L;^5D@NvGDQF5UjDB+ zwEvHV=4s7!yLB#{zGoFAe6*ytH2PPf$*nTs1qfE~H92N^-tK)5FqsmYHXaWt8oRdX z?(1JNY2@qDi<`ZgpwcF{f`oz;N1jnZL<}Z_mPkZtb<PY*iH%g0Y*HB|c$7tpl?Ysy zE=D7Z(RXaq&Gf_PbTf>7QgNi2_fbU}QfU$Np{v3-m6i-#vz{9L?_?mEkojVHsoPo< z!8wpxdGmK8IL^YL6i(aD8+K!7E<8#>p+e@zj0Of7^qb3a%{_fk46|GM1*j%FOlPL5 zPY!^S;+_4~?3MZ;#Qxqum7iu@-RMQFe*3%`j_hgISsw5>>k%h-zRwuD5T5MsRRg|r z9fQrQof$sg=bS{$m4i%E7nwp0%<KBC;DJ|-Pd(q5Aj(lVOL!u}kY~5H6eq|y-X^^j zw^3hRC<kJ|zqC$zvN+@HFi#Kz?h%&K%ofs@k;-Wn9i~6rZKyEJXYszXgb0!n?&aL% z#--da;UQeZbB~hy%ujqPnH?!zE<1>lq%5)7bZ|vjNEp(F8?TB4$mAD_u>vIqXyJ)< zhzexM&}u&|P%8;j^HCJmC7+_0e*{(E!)3mSzE66e5POxrE~Cj+#d2!NCs}JVV$Azk zM@*Pvd!XG$Z#~3@6LAq6&SQE{k-U?`BD%vS_gHmkk)1}sx&R?Tu9`$|rqf*H=!<%o zpB6G>ZTst2CH;dri&GHwVl6=}(s{`wMMD@|rELWU7id&i`pUc}(hJWNGlpC@ab!s$ zpnL>gi-U8BV|ILxdYGu&_~BbAVsY1>iX@EoUtOM(jNeH8J{~?S(XL6xC`fd!GO6it z*Ir{2R4bN({*esCWaBlk18)i}{xkMevo6dbTyJ;_blOUBek*}um^=v<m{K81znzI~ zGLY^tB3<($@sz_=xzrlTU7)SN#n&T>ZGU&)oTZt{l4-P%h2sEO|6>95Gt?V~n<N+i z#RS($Cj&ERM^(jtT11y#kk6#X1twhhl=m=akA|8O1h06UGoz?R#TDYY>b`A95<mJp zLRYZ>O8m|qytBFf%bu2SZo~lmABnyBv!oPvTvnX5`L!jKoYX){ROjt1p1O!s>`0<t zr)r)gkzNB+q13N;+BkcnAVz~=76j=J`>rw9i@}Ec-8ltKy3jK`sIml(@H14m97^fF zz>QU0kIvD=SXLuR;w$gIYpy=$lE9%#N$OlN6`4IHyx3cZ3uAL8f|ovA@vC_GAyM|r zBkZm0&dFxy5?>LW{Dh~<XshzM>rxe{91+IZSpw!SBX=nu8ItW%QhOvxmyq0f2NZcj zju;BiZ>IHcOYIHn-~a9*?5x)hw488DG$m*o2+8zri`F*Wqn-FsaEgJBd{E|`l(K^; z95DlrtN_*V1cP(n4HADH>r<c^<-|3TZ7n*~Lwia|UMUubD|r-`HnlVUR$?#meU!Kf zTtY{Awy@|V9wxkmn5xpddv=#G3eZ4r&%g}b+0P+p%pok((%rh+>qY!+t%O3iQW8b( z&-k{a&(m62-hM_=$8KfKA1NiCqfcjIH={qZdS2?QHOT@iZAI!Q|1@$M=0i^#6{P${ z<Ai$?`SgsdzO4Pr>t{(Qntet;<Hm&l`rN#@o4u?$s#V)*4XWA{Oj8rTJ$6xP$SS7| zkYmZG795s{?L`CkfOdNEL<6_H3Df+58cRk_StYh66A$|Zqyi)XH??2oP{j{VjUhqW zdgfh#(;lY_jictbW~ttIP4B5+BVRm|2e^bOgN*<)Cz<iYiRjru=3gaV3X_RQ(gv1m zfZLJ7IPId1JrPNUwQMb3VRO{?*K&D+HMY*F5*`+z1Oil_v95t|gU{uqUe%%cRJ({I zMvx>PeGoZj!7bTQFBP*G)~)*k2Eq0$-jx9jxsmYYYN|{z^%!$%`Bo7Z(wo_OoM+0& z?BiatH1fqh*8E67n^6!&&?ym#_`spK5(h9~oL2~DI?~brE$<lGKWVhDMCRg712m#v zL<Zv}I9K5@%(6fhAJGEidZ_HH*97AW4AQ2cKqyJVsf^8U>*FSB{9_opo6uwJn$!XY zcE?G6_IAe`ef6bAhShlly5{dixaH5(3DqR<tW!zGX|}U*Oxvw?iG<jjALD9H5DoEm z1bvEDN$2|K9MBa`KW4z&p=(o@)KL0jKE|Wz9i=JC!iB|T0F&V#xlkr)JLEp#@&^;u z$DKH&!FG^J{tfR7SJh~HhPO4gAtv*H=DUBRZsYf}4&l;T5^w$=#yr?@vv^~^*La{> z$c4qgzyrt#!_sU};lXq8<;4ymW2A&*^N4{p?<tl^lDa$wsrm&5#x7wqt(YhD9=A|@ z?8Giyu3=v$XbKIu3xg&&DvS>wk>_JT#Qpx9LD_BIh7SZY;d6)xwZDKrcU1>%+}UpN z?Ah?S5V!RoZNw%w6+ilc^lWb%V$|RXSEv8hSdrxLtCo@XEP~XHY%Bao8kmYB1>#zW z0%}L$%8Jez_p*}(Alxj9)aEui99UsScEn?d4by_Kx`$gMPJ_Swbjk@S!iMsN-ipL; z{707x92i#3wrZDY+J7BJ=O494OJ#He1ozRJy|U6Free{N-GEn2T~mn~Y~#5;EA)t> z6vKt6zr5PLr;B$aWK3h#HEpeHvc-iS`nR+Wc?((s7c2@lqI%)At<;=@&5$xdiIm!+ z2-H#ou68~De#@A?KiJ*&|8sb|CdE)g%@xJ?sQ|w_tdWKerRJ0q3DT~|bUpO*&&Agm zQZ}@UT46LpYJv<&1_6>j6+-pE;{fX|%=Bq36%Z4MW&Znie1WWVPU2Ilg!C^e##h=j z_%F643y1eLm(JYyA@MPzC-DinSn{2jH7iTL{8J#cUNC3~gqHLc!Yse#KNd9_oMtEp zMu-UCB761sG7a75@^+50n$h<Ifeu{+W0YElwD|*~r0rpI*M6Gd_E~wfNBjSr<@!-; zwFUk-5bi(!r{w=v4P*>3F}1ZcHU&7j{I8{bDth+WOlZEx8oG^;Qj(EXz2ee}t)|)~ zKX87#g%pl7*mR@mf8!kFf0w=mvW19Nc`W^QhmZ4|uQcjRphFH?E74IvYHCVY6k*f; zz(JcspdYT?cfp3{rFUm={e%j|2^%mvbuVLzDii<Q_oS%Q?y{6(r_t#tnMOS~spG6v z-$3zZdKx0W`gyi~3HAAQ27y-?>R_pynsDTXP1IOsb$cYu#lhjP>e2n(Z`pguWVLMx z_04Ox>0G6-FMGD9{HamWPyAt_q?*FT<xD-PKM^@~zj;{`_pdR!2Wj6LLImC$;^Up> zjXSNKIA`X=o}F>R7X^l_(n*gh8&^VHeX1Ru#2ZT%(vLC?&kxqo!I>a%`iGiUsEp7I zmpJUSGRc^^M%`?bjXN`;$OR7YX7%E*O`%=&ON^tFNDXERNs%AFSj=beWQ4V?2vUtf z2`D{^sbK)4W9!!2?<c0GEA9EZO3_&FHu<;r``oTchH)c>rl4-j3Z2+U7)EbR2k}Cp zq^)joiOI=WEew4@;V<zD;rdimJZ=oLtU@tZN_4?O#*c<1i(2R$h#CT96k2SX)s)&` zx^F6$X)-V|=MbKTu1{^AWga-!4?ne<;P#tMSn@G2CyCB%#eHcZ|0>OXiFTirI;Iy@ zO+{L?@?pmc`}2_^A1o>My;!8<K+3j>t<e*Va-(7&ejs|zczxP&%+QAZg2VOqET2u{ z1{eKHnicwsfD2vFmkR9&R&c|{w>#mB_6Y*kLNdM3xzSSAh<;V(BrCfiPly41X+Z4! z!Ox;k<Xk+50gHK7t((s`TVbVab6{Sor^)B?J|CC!jc3sHRa5SnV-4e)^FPmb4fAuZ z>(ALvL--#K+kesc#sKI4mv{Gn!4~CeoZGE)V0~Vf6KSKhDNQba8qrN|{Kf@w(VH{D z<={l6N{r$@fr!k)Me{7^6*4GbY>Q8!lWpoQW4F;faNn0C$TJp{1W0K9@KVv^(cIC{ zwSs&Et31>cw<YN&nuCgIOm`$dGaR*dI`Cp~M1`M!DW!(-O@_!*WQJ=cnVbp?tKpcQ zKlcpmsIn0Zk&pRYE60B%wLe8QcWh)+l7ca&ISJB!u*sgvDI9cARnGpIYE`Svdn4~H zfmWDc?<+rGr+u|y!;h5!#7v^pGB`}sFDGvWmC0gzv_5Uu_~{q3vW*gV#2(gsub(~s zE&V=UUooT_)tR}!^Xb%-n@R89yxR2fV#wW&bThnr>vo7<Oc~v_|I*&*&G|zu@%!YJ zJ0`oN{XBaeSE}QcXl(Bh&r#c{#n>mhKoIS>152%|F8ZxU<k_1dfz_-jK#OxqSwsa( zSn_)=0|VByy%b!H$%mjxW;f$7g*vM$atvQ#tXcFdM3aP_;vdn{5Dt4o9J~grOE_2A zv3A*hm+%}sput}NKpZ|G3fmePVUi|VfoxclAzVOHcCI+W%C0eQ`wNkM)3E{IhVn=1 zO}_+}vXi;RVbqw$X4VhWwh-OtYrN{-T-Jq_S9ESwj_+B=ItcZjX3jx^&?29Xvx}M< zq=FiOdBzKvvlb*D9()@2l(+>p2Hi28?4fdG>u)Q=h4BXX<h3yC^+40JC76PwaQ2#o zVl=hDY!AIfgi*=Y2QJZa;zU(ubI*;PA|DbanGPaPiQgWDv#>t?@zG?oP=_*!sSdfc zw|J)FXc~MYl!^eY!YVI?0BA?m*(kYLIC1khg3h*5D}zuNd~dIU?yw@jn6jLl?g%@d z4l_Svi+rqNs>gN!jBnhQo3<#7*ZXPl34$6p3hI1${1`q#@URQsa7!*@uxK;8n&8ki zv_nQ>wK#|4uvB@LLS-F5bR_~e<VHSd9}VAuE6+J3t~>FAf=$Fv*zsa9>o)~?Y%z8V zE~g2F{!hpR31CXF51EfV2yn?WB(O6b{}8fwefa1buj<K>L(~G|EpmlxbcLF5tK3NF zpQOuu!2LIzKmkmSPqddqe^8;@gLKX86-Yse!F370wgC<<E%Phrj0i8;tr8c|m5spJ zE)NF?AG~Qe^j!nXX0C&p9Ce4PgM<<CR;2Xzg&iCx0jv8UE@$Ebz4RcbtLAYj-tvWL z&Q+yWAbRp|T=JT|rp|we8K!t`lL<m=e&LECCyE>c&c&TeUYsD}t1mcpg5A`Mie}<p z+X8jt<>8-N@N(TJd<XGW+TV-h>9sL@i1qT-&LMsoM&*8z^66KgQk!IRomO#SgaShj zvZx+NXglLc#D+ka8!(T&29fc9!|V;*J87$otF!L&2jTUsvt0wzlpa$jYLRVcW@qyN zB98`HkiPwQD!qX#1oDiU7N(UNwe=9jYMpoYGlcxA{yW{p9X@-JLlkN@TdyHl`<Y!W zIMQfkHSHuQB}JBE&$_Unuf-e}jOBoyE;?kbxhMG&D>E`;<99i|j<p+C(U7L55G_q; z%L>L_?t6`}ErF)FIJ=9$ZnM5K!?=Iu7Zy?|+ZS}6Cz9DJYCo)B<e03}WICOFTr{AS z&)r@6KDOyD#i}qnnm$cZBIqToh;jLu&{06rEce$8Wr{NDdZJ$UDT<E?C%FswA1zV| zieJe?cX9x?@0%pg9GyCs%|R+IONSiAtWA%5GT%3R5tVi87%4b%NrAv!;knAlbu=Y) z7XHH;Ha^T^3T6z<1Kww5X3KZWk<fC^?#mJmf+BuO20Ox~D{qpfrM<m}bIEj&nO-A5 zbbH+k0tIg7`E*`F^XZA;f8OQi;d4iwKgGiHKhzSU|EpFpF#*_F+M50^Lz`3$Tb1?y z$9SHU8{?3M0}~;(%_<Ci%AgGe_TtP9xu<&Kna`!~ZpsNcz1_Aq<@JN_%<C7^zHGK% z)3en@e)-+Bp*add7tJIH7edBt?zR(f$P69irBt1Y4`tD+8_Ik+@C@1qtn0|xp(`tF ziyaXo+8Cm0r}=;}$XKe?FTl5<4}%<Gmx(iRCV-JQW~MGB4rT?atJRuJuH~XLIvS?Q z!dR7+u&%|j<1II@0g)Kgrrjo49FfC2!)-30t9OR}9Rmnz^b`E{aRvDHzRO97S-?^c zTkvgcuZ#_!R<W|jGP~vwsG*cmKvp8CtFFOXPyGBzn{_~y8<S;u8yj=KQ5Ig|zP&ur zJ8#LC(VjONTU1tsPriqHtFpc(Ui>XDY+p+t^HMsuYGrZujqFNdD7EUrdyKEYj_ccm zyPCb8ZLuSsaEFjtIR9GR!8+L;oD%T%l`scA8Lsj7;yEWIc!qo^fCFG5O#<4)3;`-$ z2UGyY6B#bUTEi?tf|Xx*5jKM&6Cib5c3cTM5F81~!O1-JCJVuOy0a5!owE9H+U$m> z;JOArpATd0+kHM>{*GPoMc$DoTN9_}P2a%Jd2|Ni8MoXrK1hyf8ME=V2P?qonjjVC z!dYBiV0r807Q$&lXR<EZQ-j@VV`em{&|Q1hhd#=D@U&O;h8PRn2V9hzj*JCysrXbr zoS60pnwslKf3%U2aF7G4K#oud3?C(8B$J$QU4RzLnA0?hqu_&B%FsKMQ*X1YtR@&q zS-7}xmNO#?=z`Qk=>`BpG<;Lw051GZCVWK{SNb%&YgJYnO&6GCN<>*ORYN}TDL^f! ztF`^6&`St+aa(Tzfm;Um16pM+G*0W|M7}NEZ#Vi+95=T}xAG@L*&?!~3+**Qd(?dZ zU8D~TU`d~840wwo=dI(Nwh1$@wPoEzx)%%P{Av3$#Mj7}5GQ%(yiuo00m95`hhy<% zNiJZ#{1<|kd4<=4=Ty4)>)o_}rtwlTd}?!q4>VU#0%>c`-&VwwYB*PHcd09!<=G%9 zoX^c0cu<1E%^2BShUreIJw-t_xP{83H>tJiq&T?Ztbz&J{fcJ@@GGy#1)93mKx8pZ zGsSSjh0{=>zmYuybwL*a-EuFPKLCc5oeZKK(5Sx+{gyB5Nb)@JKI&{xIMzCG?gC?P z@euuQE%H@H&bn)x(|LCm;2@SG$@S&L%z3d@i;NGg^vj2X)HwRA?@VfjCB9Objh3iq zdk)Ez3iNtk_TJNjg!Wf;v&rq+D_m{BXO<@)d*0H1JT`p9vI1@=*foaA^dT~-4as9H z%)E-fAog)>hqd2zt9k4gD~alhTtFIhkEre0^yG2ZvN=3UY4G!PaDwtCYaVOBGATCG zmP5U|N=_J{Ii(+V<XW~CfZTi-QkQUje`__bVyh+|m$7AoZuOh+h5Zr65J(Oqb}*NX zv+A79h<WX@bmm|_cx!hsd5+XwtwNind3WB`!T5zITRXK3hmOuyxnMFgVNaA{&p=#w z9_yABBon-ZVR71mlpu=~@D1VNThqMcU1C-)ChUtPJJiwp(j+D6nNy4j(V5iEJ2n&+ zUK)9A@Sj(r_wfzaG$9ZWb^QNWsQxeV*2Lb()B)i9znP0EdY3<B&iU`F{-9iQiq7mv zBi_#TEjdBW7MpXDiK_AO6@{OS40I${AQ)_bvP<sQ^=wdy3GDA6J3(F4#BMN*_q+8G zkk@`9WNKQDeuz|kM88f=*+j_M*>f3<BmqH4I>yi?VKpX?cme0KN-|wN-4;YL{x9j~ zkB4J>?r*8ql860>#T*QtFhNK$@W*(}X$=7il38)bkKY}d(es@2(nX;*+f4N-VuS{k zUr)Ny`Y4qrx1}<yb#d1|?#Kh*RY6rDDG$VX3Ic5XQVP*t2&IZV<XJ8Km^RZEZ#H4| zY!j15$BR-D$}q3Hd+*WF(UuP{e0iJv5dN@VD*X>%9Qu9Vt)H@=qQXuv{XPBoj1t6r zA2)Xu%Bopovp3v%S?O{8J$}_>GMAxp23tH|3w@8<N8ekFzr$n>zr5b3-f!z~CTpJe zk7_%;feOb_iyoZO_`4+M`;b2TIP+rn{U0Xx;GG&E3t2rMU;li5&JG4$3LyZ)k#WMv zv7v@~`Huprp1nba49X`dmIhT)u~Cn6<4apO&0qk8qciMm*FMg0KFt(*K`E#^-$Ibf z$-+;Q(94Cz4&%s|NRDW8GU}xqp~?(jLm-(CTc*V30S(ARFd>1S5O9VEHDCk=gAAEw zOL@S@-c0N<(1>|El?D(w2EK2|rb5yFz0dVsG~9h4IjqWL{MA6DFWAORnS4)3=`{ua zR;F1QJ=M`QR{mW$(*#yQg()YXVX*O+(?3BA+#=XAnaV`UG}TS}^x^3Gp6xCwh!6&0 z|23S_3BSY^SmF1{i%5}^3W>(xu3PkkKoIJ;xHqM90w(Y!qys>o4jQ$}I;e|#NyV6I zSyQ(YnA#D%r3zau1#e2_sx=uWg&9D%S+TA)!jF#e@o0e64sx4!uvEn0!h0a?#0%Xl zx2IsJB^s4H4)1h>{QeMgdw6%=OYt2x#|zImLy^9j2gzL7V)Z&){0C|=5f>=p(OCoa z>$%3^9*YAp7<%1A8+eM?GyDxEnoVdbQVvuI?igc;?d&8>2q<X_vv#=MQsW>X%2Nt~ zX|ZbVZYQ^~?BlHd-!nB`Eu09Di;f|Q3{V&j2m=O>IvS!bef=m!_UpgjXnG&SLX*;$ zY~3#2Vf&y3lT#kZzB<yg9+JsA-T@n|ycx@NMfD=Z#udDP2hhhbQJ5}rC*$NoDwwR3 z9TqGFo@xd6jsl6v8%Lg2sDBWIT<c)SKDPmXB2;oR7FD6Wj@lGtj2c%hedh4MR%pTi z>^Is}HLLMhq|n3VBUMS+&CI?nnilb8(hwNte9UwK$_4JEFZPAlH5SqBHrEJ@D9~F8 zPBG+A7#rZUwwV@u%81?@xrO3-@N*2AAVr2qQ&0iWw!-Ubp~1y~kxr>5PI{|DttA;} z8c0#-iNcF}p%p<rcoa1fX$hoMIgpLq%_;irN=?-IO_zG%rl14X#)pD3a(J-Y1`A=C z@TaqTMuI9SRUX(fHdC?}8&5i`pgSVs&QTW%vR5FC0eDc9An%^JDM_@ikO;Ku;N!)c zr5XW4&S(S&xFZ-5Wd^Y(_&q)MnvBjcF$|aC9DV!*SP>Ug;%nOE+Cnj<6~-gF-Y@WQ zIO6#bRw;M=0Vgt#Llld>*Ou)#cqv)s4Z_g&VhDQ|e&?n-n5cn;gfcM*_Z=1VwBpjG zl8PUc(clLvKb8}53~;|kFzx`qok9kljzW{nN%o7+(;YN`!GA#n-<V9EzsB#T3Fp>_ zQOpZFH3>c27;32V^WcyJJ*uH34>0Buhlf<~*Qug;ue?!1s^Nfth$GCKTSdYWj`A=@ z8=AhZo+&rjgHqaJwoqLy)cYe0ZpehBMVJAwG}wjR`4$sNL`qH;D7mxryPkpjOqPWt z6JpFAETi5Q;fq3+_*~H60UX5e19e98SfrIbJ=a*XRhK0mS~Q5JZ7JUa3*u#?f`pu0 z2dL?H{1NI=By~+JwHXOv&;(h_$N<}mXv~X+E29yRi{sb`@h1|UJx`86;huwo69WvH z1lADuZHF-}P4~70xo3&>oh>b$XvNv*Phi<)fjS#8Z$7k4^{#^hT$1`i3_@{FUn+OE zBmq<_bW}uYBaYInBh7^?&nP^hU}0}cdZkkeU$&={GqvLr=r_ojTtl8$Hid^N#R1*w z7x+ZbbXQ?Wvg6C)+rAB&j?uUy5S{|1-3{&r6*<b0<{cO<LU?n94w9%iIZ+tiaF%?S zc~v11KRA_WEQo|~Ut{sg<v0e>!r%A|hG_I%B%`!Jca<~*5_vXXHKdsI?e*dT*eYV6 zY9DY#Pll%ejxF$C19A}a!j@U?X2bQ0oND)#XzGO()8M(Y*3b|uy$CRAD6VXj%xq4+ z;iW5)<t?vK6R&d{T7g^zG`2gZg5p0#)AsvARNQ~lCP=6qMED{DnX=t#oP6HR;k=@H zCi138szl9SVad5<g@u(3o}SNI5rX--$#(jb{`lgXA%EvV1%_MQf(UC9y?E^kMRxT# z=((Y7B(yT}H`oY7NTTv4--`iDKLs<E49HO>1}MA7TruB0Iaa^w_mcr@0&L)p&VZz- z9VE@DI)J6OetDfy0PsLcuw{l|Xci55cq!@6VOS-)@ZhK?0{u*SZs93ulh)Zmo2!GF zE22Q065up@Y94tt%6|4x{+?h+9c{gqn?x(@rP+j13?h%YKek7Et3-{>>-<4Ysz0#4 z1fM&l`zjdusb>>CQ}REo?A~TciYB?dux}vgWg%2xVzE4{*H`kwyQ<|1IKNA|QaREZ z2`%-k94(x;#d9-|;Lffx;?KJlYQS!8x25q}d20h<KI==B;-~S`LD!*?k9!JRFiK)V zB%Qah#oL(RAjhSniJ2n3u4)_MmTAE6AMHC#LyMv^aitb+ZkUJn*f*R|rV((N25xe9 zSu190TcA_XW)I~f1?G(O{Mq1P-@foeA)2S83&uKhJ#0NqYUtA|Nx29SgIX{DY5`6; zgaq@CiJH2YE3c!9k}wNaXFisQ)>M@?lP~(6O)hZ{KsppV8*;<<SLE}GJHneQhrIX< zk^k3be70JOW%)KuyY@(f9biPH?(l4PQclr<v4yNi(ei32?||qe=`@NsiOS}X>am=s zdlfgn@$lATTkj+9aP1?BplZEl136obZj!E<x)g#zXQ0!ZN)}p*XFVtU&}|sl6Mak% z0aAap{dq)r2$xP^zSDQ^R+-oO?Bj<6I`A4>Rn;;^cOwm3$Z7^N@7p{YaFd&G26QS^ z%bqKQP!)%<eQoI5X1&PDb=;slsEA}~X#*>?jIs(+r4?}T_Ap&g*h=}ZwffXs$MuV) z**iikir0e}Dw|XH^>|dJzAM}_YVY6m&L7e_?NPJPW0dFNf7;?J18gHB4!@%R*c|YJ zx(|^nj8B2Qsaot)+ip4+aTpN>sI*5qFnZ5g0-hkf5^p5-9{1lT7OUaO#%N&jhRo+6 zir?Qn*O|go3wAk|EUshYmB;vR<EA*tqX@3Zcd(4PYi@9_CH4$2^_w1+Zs+9#n$hcM z5h>(yZTGZWzzn(}MOIoQ%n&lo33z>pbS;yfGQA;2!_kunBEakyx5+a-gYa)oDo>U8 zX0VK!m+*D7fSm?)M?u;1(asI&o=S8aMI5}2q~!@To6zCEF79)%*LRu$*=0(X^rck8 zP|YEz#a<d)QTKT@Z-JS9^LYYQG3W%sXcU*w_CmP4n^c+O)LHZyTYSyttTb#T3WgD7 zi(7}ztT!sq)KGsQH#9Bs`pI7>3>%pR$ibnQ(pCR<`&>Oxq9%P(!~Al+D)ihJyUs%) z*j9Le&|<=p3F9cmh8JfqS~N9YhNR%ibII7DDxNIOjN3Ifweb!}u2`?=b9G~=eFP)~ zcSnxB7WbbHFYz*2#u4k#%8R&feB6TbQaj3GW48Ksc6+3bsl`N#T;N1FsYVikJSGMC zHd{}>gkcVmL!gpc0r|hlo2Va{MA~z}0KHdY&MHNNc0a*Mr~pCOm4Jp=z^@|7s9l$F zB^v+&?I~{k2AE%@+}97DPz7!o^LwgV9!tUvA}TxG_4+0U;0dQ#0^_+YZv>YH+PUL& z`sH$~8|Z0sOukxI(Av<q^gc`f*aW*w1SDUwQv^e=F4*m;aDevgaS)GCAV0mMTZN)3 zOG9y#b78}7LSxNHE9xSk!Vq(NTmB$YNS-d_<<3xb_bTSoMWvJI>2=?x!LMv7_NjbY z^vz!|mP0ImY-^56(j#R`n-$9fW>FDy3Y4Msxc<HyxU|MWPD6@Il?VX?tZgXiL@Ib2 z#d}Z+8gii}H2CxY9wGLWVxtMz!%Q?X`erYRU}V8kWhtGy!N3jBVT${?UhbJ{U7~d< z)O)B%Np9)Pp}o@<&l5ca!vL6@(7rmA{3gP&9OodN*%T8oTY4^n4OxJOp;J)#jLM=p zb`PwC4=#|y8NKNNbe|-LyokQ^na&vBJZ}is#RH}ywU$DHe1_%w(x?S$?%H;VHcShy zlb4T|0%!q(=l3AP@&Vm+71|0$8Un%DF@px!?<Rq=2-N;vtYT_A<G)UZh5GFVL~u8K zk<|Ov#Gi>2<{kYRalG^#tyZjjT=H5<{tN2R;J}xVJ%f&ah;&MFx*gSKZuy*eI@>kS z`H0lpGlOPfVv86hIh0&u{f0Do0ViABb43l;V%;GrVKzAh^ebS$M9XgFDb?LKT(78o z<>I@8+iZ6;gNY+8lhA{r<;w>WQR98~=a|`4`}gMjcUbDV7*?a|2a-E@SZpW=D7B@f z5q3n0Kcv!HYNa`PwO8OH?GOx#%M2QgX*?r;-&vMU2@Ou>J&L=+%RBafq!UU^db~Co z)0Sbv@S5;6V~$;*7|C*<UkGDDA8DJT-RR-Z&ve7-HZ<Mfbz~{k#ev(YsGU~X3g6aN zV6$hhKE1zJ=QBG3<y6TM+W+h1NE(_l<v_S3rOOitz^3ylIp30nJfm)NjYTB>R9^Ao zC0%^L6;TwtCsYIS6{a+MQ=eUKF_5WfT$%DhB^(CUV;nAg)~(A#TK<N>v+B{#?-h#I zR^dCmupaou-)B~4X|&E2*JSQ^kWWFy0fA>`06D{@t-8^I(`{L0hkHjzHkR&edF_)) zFJU4S?>YFkK%_|LY{D;W6&)YS?L+Rp7Av34#j!V*<kZH`QQQSPoq#V)qMb|g4n;cM zHN<ip$0X{NGiHFPKCkG(15B`=sOBTa1BU8j?O~T>p@oZAbW&PA&O~V_S+c6r)l=_6 zF&)WZ6{Y#5wuBR%;!M&$7-aWPtA4I~XFdUp8L-irs>VrMT+9}W_Y~pq4d%GPYV5#p zU>FUhD4~W2l|(YN>&aAOa1&Kp;vssIb42T$QX&|*z873xbf5|zeHNS7^^k*}8((Ay zX0+KLXj=sbNp=qxQ%0BBi^U*i3PGtFWG6NCYgP}dAmjtonmZp?lf7gk4w->$0Ym?W zmmkNhN4q}JC>k3&EFaEM#ok-gAg6o~;w2^M@ggZ*&I1Bu8-jGO2Z(QUF`m?Mc5Is0 z5277^)$!v-ba4f_xiwGecvSP0I%bOUm%0Uwd@wUg){zQq+cj1O_QJ3L<^~X_&2S&s zwd9jnbPfRL@eJOewKN57D<RL-QvaqtdPwPnugO&GCU?dYFK%}G%RQ(a;*;N}<!SXx zZ+B$7Un3-6LA4`<2D*>DkH~Up)oXKG=K8csOUSDa#k-!096*J_@-VH;b<^{3QAKwa z+~ZM1kBS$;;Dg=uaPS11)mLaB=T shGu)ODPX2*4#Ov>VE39o5{z&xvUy34<95c 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�e(2%p!wN|=KOnzZhWD7~rW!mX>(_e3i+STgeq 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 w;;S4J%jhBWD*1 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¨o+dfa|qH5!uTO@{&B8==#Ns@9ZRGV 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 |T#(Y%rDFG8RfY%en!Mr+$K9 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℞;l*u=h&I9pf8e>u;WoIB5Wg#X`|LJ| z^xDs3Bn3}?j12ruD*>en`;dNA>x2J$La}zbtl$C$06_QK-HY`<RX`lr|3mp>Nc|#V zqZ#$PrbOV<NYYqzi&QCt0-JryWmEEe(jyapX&fgGfYhyT0${hAJ!YrqW*+?l&<(L{ zVmRA~?49tpZxikpj(Id7jZz#$x<NXwdgzudQOJ1zMWNo7*Bz^oRV0+pqwiP1XBq)D zX<P#EJirpOP$<+T_wVsN5Q#&ji~{jXi;<2RL^>%KieD0W{me-yrbvYS`ogk<wW;Hh z;Ps8a=Y8)<_se(d(@#x8BgI(P`xI-eY)7t4Mu!$WumR%3!d*>md}a0RDEZ-L%J`+4 zev`Y49|N~?2UhRYp;tl%av)GQcPX(jA{b^Ok!o_mT}N>E4jJ|7u@9J-1-JHroBIa! z<GjQc<ITleycXG-FQz0{&akf|c*eG7XS*BJw}yY2gBpGF50SJd#;0Xvyk1rvt#sQq zP2x0NEauMMYJA%yg>qS7wjYx}t_F9=Ldm<X0(dcJkTtRxL%!VA;#yMsz#0Qa$Q(z6 z2_0_C*3jVJM^~z2HCtOb8I$#_Gdm=?Gb6_ISgmu#*tpqj59pPGTU5mLtbT${uYMs= zWd3FxJ;r~@*?&9p2lLLrtNJ4v&hkYVhssjERNO&S@dT5_XMKMHqofh~Mq7=-bv{e8 zfy^-q)+y=Xl98!|`<RC22WjL@CiX_LqeF#l`EtP)vk%@Dwe@%&%uc6F{ki$-;VU7L zCLa}{q-T#hxD4NQcb;}kH|S&4ra<XZwcNm&rmxHJi{1Zy0h)Ug_~<>}HNGm}y_bbf zi(w?UYs_*DM}%PqSw$u;hT8)HlA47<25C@b{}#f-ik%Lpx9YGb#oRc86#!l)?<hE+ z{;}-I`$Va>2A+dk?nGpLHyf*3sHga&mJ!Ga;TxwH1(*a#Wl&@Z^acjg#3NvF76!^V zW<z0qgUTFZbOVougbiVd74?IG-q@{c403?cmN92~3{Ygbb1{u<(_lnznsMEY?!Md< zmon4R3nz1?LaAeQE9JfQ3#hB|#&t*ywUq^4V6XJFJ^$Rh{*17*x2$~gZ-07y&9r<^ z;%<YdKaLE{O=8C2hMkDAICRCI1m&~46z7A>n#&1|{M~)?VoaZZGurQL_kKVNp!Pf$ z#?!G&+4PO>v3+d1tm<6wNkh!lWv-dNt(LQ=8}X>>GX2n6swJQ7agF6}qm?8zSs8 zFKYWE%6WqRJ`?3*GHb<kENK?xCCK<<K9^}N>Aon8AhzXA&pQ2#>0g~c^d&?Nvx>E1 zeqezhiI1FPu-}tvZqQO8PR)m#RX2d~CH3dD!edY8YguDz(NJS5Y}wd-`|?N;in6%S z#yQhtHme@q<b#{8V(g1nwRs6i^Mh{u-*Y9~2!;At;E$QmrNKoJ^OswKr%$+<=k92V zj$wo7i=YDTU}A2#N|FA!ddggiK%Y+@c<`p#f|8h8N^^H8Q6+=!7i=lcl}l`kugQgJ zvv;j=+UK3wSN-FnV+?I0l>Dox@G_xYZM1w<O{$4>Q6S=R?5iXZvbzdVQ$Ywq%0Aw{ ziYC%o1|S)QjNXR?@*;3@uQXz#xfyewU}MlP&>h!-EE$&(&g=E{lp_ZC^mYzOG#DJ8 z#S^ZI?%g1mX3B?FBTz-j41;n;wuBbJej0V+wak%*_O#g?Ckw13e5<i8QjMC0%cL{D zEUPw<%#C;R@u}8(5)Rsnf2P-TF=iTYSq(LO87v9?#5D?3(Vst^lw-mvg$0cgNleJN z8o6kFhc6lXvJ|&fcD->$GxdyZ6^308^#f4lVBG-!NOURz%e3B9{KV8U%1UnCvG^g8 zWmu-%6cS3k>5!zNN_yD5*dk{JX=-?d*{a@$Umm|=<wWA}`+$?K?T14kSsyU&_Za8I zcAZiO!oVrXbv>%Yyg#eR$6S7C6MR9+QKzThwNT$~y&g4gu`jY%8U)5F#)CU8y!H$P zpfErxo>tRsrH1<KNS`$0!?LKpOXtahXt;@b$g{atQhN9W7zG2%T`9Phun|)j&NrfK zXFj6#=*rJ(h%`wYV<ycE=RYEtT{P$az@rk%Se$r+VY(LzhO|7U#Uug2-mpI6-lrWS zB^Ur&LbMm*uTKeR>>xbX`n+5nBN>3M-@FfHH&MDz)eKh+Aw&a9O=beBk5+GWw&6Dh z&d=veBTQ8ioWx!P)F~uFm@&<&UY@l55Y{k(kCgh#=d(I-|M!!Od39Fy@V9v9`#T9o z{6C&#|3}$t;9zWR{GYtv$*LPR2W$x5E9wX~%97#4D?`nh?J?0H_K^VQzc5VtieQ0o z;&ALO0i_C-p>HwWkNKI?zdn`1TQrnwdg{%D9wE#plXe^ru#gVJ4Q8TJsCc;;VifmD zZaNy}N`5DZIcRMPg_9gMAoP1sAhLz}jZlD9(a4A98K&8N#%RYK+@xlC4s+LbQbWjV zR}`gjyLCzmLl2V-Q3Ux)3E1OqK6C`Zmky@Uo2%4;y9Zso9qpaB+nZYP%0!bIWd<F8 zXezJD%c)lCT7)`oEzzq7^x}aIREF#-UT&lMvM&ayWG|~ajxHD1b!s>_IzPT&PhP~E zH4U|{JNc)5b_o4AZ%wdZ{Z~5FYZRZ<zvTH%D3KgRE$Adb-8q087{OuNyy|$|-x4`@ zxOXv1N8Iver?zbi4A!5B6aRp_uJ_7BqASa$YN*ib=Ex+Wno@~P#ZKUpVGXGQtsezb z1pXD8h|^Lg<*3I0?pBBY3E!Yhh?rQMp;*C0DE3R94p<c5$7!DqC3=5GWRLUT6_uX( zge4k<7}%+}h&*r{3=<e7D9%q<j3q#)0S-Q=L{_rzlTgjf1&(z`0&1gIMiK<=Pdyvx zf&aM`s}R9NM4(iMLOP0TNYXmg3=xPBTMUgtOeYTq+6>ZCx@TLVLLuJBSj~j7+zIuh zvmq^`RvCOOFp;~Fb^wOC&0ugyDU(`hQ9(FZgE#nDq~T}%wG)%%0A#q$qO_6{LY{y~ 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%0A!M_#rB%49N#&zijVh&aJ>XHS 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%0Dt~qpXn3kydz$ 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�h<%pdtN8(<u;An?{8Mc@snst141U zmMXI;Iums+XiK`dL&SI?_n3h6e4bgOv~UcQsFvD*Na_)6fG2M+T>H?JdQAqkHE)ra z)4mUK${O<$&F(#`l4eY@&P7_4vbmZS(~}AYCoihB(@t;IlTV>c(_(Jalh&YgjW7h# z<m9L)4=RxYiM;7*UQ^ve<l?!fxrHN<ecm6AE#bTe7mVO4WpaTDkg+z2KW4?v%WvPv z5LB4bX)GiAu^B_@6%23^OJ?>@&FDuQogw-ySs5V&w5M+yoW5+>vgzZI_77m&Gr`fi z(fqT#bNpJ<ci^<5yTWTlb+)?k1Ano8+~MutTQ|`5zo27wb(Cg<J?=s~#kw!x?0*<} zwz|Aoc|scbeLDhAZ_qu!?Sb5G>!<IcZ#7}Q+F5PzL6>lS{5iH3Hc#hZq_p5OjzM4s zfl55%FD;Khp)WpuKHL!Ou5PXi&$+Cpx?8KQFFD$I!{TFJ4!}pfe2HIMy41D*vUPW~ zSnPsTx!LKkvxoclV*BhK$9sRB%TLRxA#pd2s~NlYy?ne~d_d)TsC67jLGyJsYjfw0 zPq?t*U(cTj)Y;Y5)=;V`Eq9nr$tbU!$S9w-@?=#Y2X9o7Q4`0?RxdMzT(oxsq+*+; z84YHzZ6T;EBrN85n=9@g2jh!341A<PBht&LLw_8x;Y}Y=cKAw?c>J3xlnOg~LCZ7E zl&#k&MC<sbm~1qXEq|B{6Qe=P3T%>NXBR~JB(~;BD+g;~Q7wF!YCXk@FtVf0;>w;V zzEHAXST)(i&!9LwS6Muo*RUo)nFlpD_4(rrlB6nDTqOooqUi!f;Jh~LL$L?JvwaPa z>^j$Qhubd5tZw4UWQStG$sxt9M0_3z?AG=&KAZ6V7ATs122CiRh&`b@YN9tLZp-sD zL>2!hv|{BG%q95p$oQ4e8ooH7!9sM^kpsk5q~><>+hY9Vt_nZgH{nHN3ObBgb!Ftj zXT=E0*w|_Tv$QyoF_|`-(P~|JJtKb2WRRvM$_%pHQ$rqPG`e42U}Iew#a3_o&)T$; zR_7RHtM*JAaXC>B?%X3RYr+?Bg1+O!tBWk3o-MP-`B)R)SR(Yl*Nt~k9MN;J6>TgL zzPi=7lBooA8lX-+J{F@UyW>{Y#j`C1+GQO1vk=Oah|B^#D9|Y!b}bXc17+I}ez5v6 zUa*dIw6z>LGG<$*%0QZd6PbA!RmC%tqAAK;1z?<f)0r~k;LI15%8zm&HpaU^97~b4 z34^q?CDbO~UfHoOVTZ#D%evl<-5eu!b^7mEu}N^J<9dRE&m-BZcD1U{)I-i{578Y3 zXyl!ELObK`0bwqf-Ve5phii-AY~?c*{Gmfu2OnoQxu31E1J4*JFWdIK#JksP2lN}E zlwGBkfQkE>`RBBK|2*78X@2?V9-kCuSDt*UCbnj!DSWdq(<$1?EZGxgmy$-F@_#ph z6DQj9S{(g>-a(<USLE-DBXLeqxci!8B8|wzp6HK9NB1a(buk3gnR42N3NnZz4>F!) z;_-s|iY<{<F-y44A-ZFUFMm*8?RFRUR^Q@(AJ*)TKx+PN?r2Wi%8#I7`8Ju(Gv?<r zw7`yvVS<X8vanBv8*P%ON8G%n1~{XP#itP{@r9`>KQfU}>3&>3*uIAGR$@AAIPz!2 z67=J>r_4>NnW^L}r&+A!V3pZeOj(-5h^HAcn0&KHo14ce-CUQh0DVqD;SBS2n0b7T zLp%aF22VrhuI#i_&7GGqWX+6anU6YZsF;N@V^bNGV<Cfit~>+aSB^5}icQrR`hZE3 zboV?>otETu*gRD6;#ni&xv{!eZ0tpg6;Ed&rru?;hjQ$_9|&?BddZ$iu2|WJDcy$g zMsA#2CDn@PL{=8wyYQ3y?jNnl{RBiBm1Vm_VX(`5rj|_B>svZFTSu$d@~Ty`6-Q7Q z*fLpX+^H^9mmooQahIzDF8%Q|gyFBMcBz|?jQmsR@_Tez64CnEu~q9|Ii6l1_&@XO z@P-t?{JsRh=f52U)onZgCG~$N+%4zI^Zu6G@`J^QeHZuZaA6n?8B(VWz1V0eACH?* zsZUc1vlX4EBiL)#KTRn~5Fl_s+yCvR7-kk*zc2B|;_y(wfq0W{sQ4ujwm3&GUz<lz zFbRo{@p*fDC4Lxa#a%3<>wv2`JSfZ(Pug2^^?4}1{l3p%>iL7|68W>K6q8sb*Ic=R zVTh#^gZ7}yv!PeV0wD-J8oVD(dQ)pKt_Wo3S!Hq93c!P#&8*r|$yT~pX(%7_E`hCm z$f?TeY$a#C?6%-5ot<MOzMb#$=Kk<<b#`&_bd5TdG;rGBEik0L1?wQ=^Z}=bmzccf zI_^ChU0mA~w*<G-<L~{!Lr||)))f4(IW{rl%7Q6B@;Gimep=OBTh99CJ0W(su48yH zmQ;>xS~a8MEk_&5<Xl3Ld~syL&hy~Bw4RETfuNuyuA2rS7HAycHn?vC(iD^!7T!Sx z^LHShj7~BaH*sg<WU)*+)|FEb%JA2ZIz+U+11&d@1_{8UB}B7V-L=9<1GJ{Ml<+A3 z)+e6s&^)Uqdu(Cj-}BbD@ewINeE)QH(|EgOmNIaC&A8Pgkuz|Bp`LAgYGjSf8cI?X zV|GI&V>Y8P3+_6ymM-^K8m8jgxTg8&d?3iJpv`HTUgjJ-ivTUrA@+Ik=rll)#YD{4 z^TiOSW<$ime#t@FJzBLCdz=T4+-ozGcE%g6&PRhaqHvDKDYQ-?K7HD7B-PfiBhsRY zp~a}(M488n0!8_B%87Brc9znn<T@>=U0u$Y!zs#JQbz-(B7IP~_ik*%CyRy7FU>|A zQNGC0u%r4c%8enA$)}$Q{{*Avx)u4azVK<Ae0XE5_?G*W8?N|b16%&miNx8RYcFqH zUG+wKE*5<;^a)}WQ|e`02M_j8y8=f<ADquHbCcImY3zIcb5aOQ4M3Za74_5XuC?D^ zz+mVe^P2^vb9W9L!KW3m7T&T``~2GocyVS4bQMy`pVO?E!5ULbc^jYj5I>xZ82n~w zxTX*jqWD)vKxUjtBW`a5)fF=*Tlwer2A1U0WX1qX30P^fi8Z!fRn#v^&f!ONkYwYa zN4*asc|>>BB<-0mG|~PbIDY+1zv`T8X?mVx_F~ZY+wRYEQtRf=E5BvG$ko*+3_EH2 zg<^9LE7|(GUA?OOe?}zp-rvY@uwLGv*8uJ~+`W!vlUhL;#wIL@&WBii2VhbI;LUrQ zZUcS(6Eq2a2r>3w58u}d2AHYfK~|!(32TSi$n0ypGUfG6!GUQg9(FypL3!VRbAm<S z*m1~0!QeV5_E~O@JV5s2qhSa2E!)X>L7g1j+`P-t+g+T#Mf&>?p>iW)SR)X6s@@g} zCPXCibw#n*feIgk5=AY^Uo{59gWM;dKk?|~G*}v*@ompZ)j_Whmbo%BsVQD+y%POh zfKWmPseg6(q1Hh9oBfdQvg;Mqy_Pi+z0|Y4hmV*DTC**cFWDb-ohn&tb`B|b)X=Cl z_ZJ?1v%4m^bs6kBmA_hi##LwSZXU8*Pm(h88%IjA>Ra_zW#7N^drLQc?$Ktkf0^yK z!D2c)gMmuu#_B&lF^k;K<;7L1NYPS;x@>HFU=a0q*U*~tMRb--eu&BUs#f5S^N%P- z&0V<0`e2@$-MU98ZN+sYX_mXFA7xU97Bvkr6Ih*k#w%_?l(OlPb9<4gr}61$8<lQI z;OE32Sjahx@^E!)0f<%UmnghO7M68&Y^G?-IEsu=8LS+WYo3z2DlWbW1}+<xZFsD8 zyHW;j{S<Bso5TQ#h+$x?9Z4(Qu8{6EvUZo~Bvm?-UJIAJ1fSAjZr^sAhO<lgZGf1c zK?;ZCfa@a*Jg#~T!nJR|UzM)$N&KPvMi6*Xyz{oZ!n`I|@YUwi5pHx>D%YLgYfkYx z9@Jy-U1!qprK;h{o=YIov6B?ZMp39_h+H1ug+v3;*C4j%z`L!nTIsZw)KIOZ@o?ER zV6fCc7oS5nV1@8J`AK33fWjM)_YYvCJR=F=dW08aGmFYWumY4Zx)eLK{*3GxevpIF zk=%lR+BCYVK!&uZ4_@%!D!0!~to4^L{uoF;yO($RY?IUC-^u0#1M?AA!vZC3tF{9u zm>lg1*UBB{vIu((alqz54Q`%Z_IH$@07nGmi$Qw})dJlH0K4dkIfYCB^@GKHiqD%p zuAhyR6eJ??FKEw8v__0Lck}7n^v<%G->-C!88SjiUT*;`0Xyw8LFqD7UM3CBqxDWk zBf`Kx550*p0DJEY((|jLp^-4JIhEUO+EWyoMEx9Z?FLu|2i&jXF8t-fARsVD&7Le$ zA8^MW@h=Mz4}^8I8G@P$8rIYVb~*qdOf$2C3fD48`{KdE;GLjg?ioal;f)hW*MFgM ze(>A@t3AwQVa%8C8|tt5k`a9PRCuQ{A$OMuEg<oO0%FH;|9FnF83|;y8@h#mgSWnN z_Y1e2U%f&9?yK&4$z^L~{-J7`DQgYxcmo295@bn$rP5SNqNoOH7|8=P!?ZEMmS7v_ zerinZRC2FY)2_U*z7l?O{b$15vOmPMS5y5KH)1~Zajx5auj><TYLTNRx3@BfZdtqs z@^;dy{pqAJaTFddRAAh?hAfhh;1C2C(IbA<ZB^6%F-W>lN=`Wg`ztFjE?rx}U`7={ z?Hc=J{i0P0P|Y~Nq9+qxBE~2#Wb%`%;U|INmLZZ2IO(+PIFPamjRPjW!{`%pOh57T zsf$J_D+aEL^CQxZ@&+7!MeMs^Ve*QfvVwoN&4QST_v>OtN4{z~LWNAMA*Se%s04u6 zqg)m6q5Duv!dO((5whyBiu_xzW4bQGZd`iG2B*#taXTJHF5I*Rz3(8(C$@&X7n_*x zFbog}vF{}81d-gfKntA&$a%|qRD6UpAmpK(pg6IOjqul$1qM=|XmUtA7=IHzWPRu5 zZVOMBC7l#oueU>X@z~ASbSO7)kPRxMOtEZy8uQ8XP-n1U=pED)QqQlzkHelI<&1%u zZr`rAdYTQJLF+hq=}la_U#bV0&N)9f#Wb^#8(nQP5DGCZj6TnctISRr4DlS_zt-N; zV>^0q@7nAxjV0LyH*0c>Tru6^Bko9Q-5IXOvMuTvV`Mp=l_H$fI^k~!U;`-uLmkD@ zGnC9mQy}}b?I%ERtDVOV$gmSg8JLKzg4^^eV+?c7yumM&00@vq!DNVy0OFtIy9_+E zml-Z3Qs3wU*YwrF7=tRd#-(S)4ks^t&><U;F0jH}nqt)706L2~sgbb(8|Xwvbz&b{ zPFt?jS8{v4yartfIh+MFtJ+$O=1ezDcO&4phtcKLTm-Tm$ekwU?CUSAGm_+cvUBnS zkKB-+AI%oxx1gTT#<v6yU0J~~A&42rt=EtkGvArTJEJW^;YRl-r`NmsF)vpN(mVWQ z0$W#+IzX4+7eba;8YPtYP$CD+g?G?^Zor780a$~Lq)_oti7dB78K5`F<)VGp44AYD z%`mO}dj_~cZ6edSyIK)qVkKHw;c)V^jj}@PZdcYVGNE>QS~{hvYDGycr0*WQ)HVT{ zvXOU^ixj&X##(*Oz3TNz>=@oK-83v)WTKRgSjlx^fl-|dVM<yndYFou*UVt?Mbq<< z)~5n3vx}il(wTLi@bXD+goL2kK7W>%MsNHsaPcr*hgg$5-!Lu*aZJE2NE5B)N5rJK z%I@t4$c!L%ldP-QWC^Se<9b*Z!LKM{WDxL`H8v5T#Zi~%VuIf0Q0o}k%GF`O1rN1X z0xiYAR9zjU*}x>yi#h3{%&^{$S^toBq(EUX;=M4$Z}EMd((bnzU$)0E33w2W2q69G z-fE9hU?s-QxGMgnyDaqz#t6|a@!z>ZlGRd$?i(|Z%%B?1EFBlskWH3H9>Tk+`He-f z>7@vvbVc_fK|ZkJ-|f{Zr}YyZvHBNfZq{si%5>jDOu_R=whp)BuWs6v;dwYSG+}b4 zTWA$oFj&gAkP(uE_{Yny0$>>GZAC{nF5LlR$hiyS*$eB$p=dvJ1A_M!U5!r`<((}u z6ZYPSOw0AHFwsFF{K{1A2}@?K&_J_Sn9Ny(S?V>s?F%&E0XtGpI8(zvtyp8YaD2DO zJ~qviKX?uh7QD?DRcmY~YD(EQ_6hmSS8;{v`fRIj#Chv7{?W(hrfM8$-5UE~>i={T zJx4oEDw@D-$l0=}R)vP)ip_s{qPP)<3ZSA4@37wHDOC+-X-%-TQxa61Rld!LIHn{0 zytp$Ip8iG^#}+dk9SC8~cr-a-{i76L2R{e|piG3ZB$KH-@@<5dlti;BI4pv7(Q;Zo zB>KxhckT3_t<jHHZt@jqv`}~@{>IKZgp41B4}Ow-SX8%ffLNReSVPp7pAejh36ryw z83=3gafTb;?R$i8^m4IeWhNVv5r9g{c|FEJwEjWE{N~W|$tAEcd9OAPmmlw13vM*J zMYT7;vr9+by@~<DIyrDNskU-~4GS#vhgg)*t3WkrHPh@*6GL%NQ<{OEr5a;4uBjQE zlS@6dQxT5^GLJ^XB}#e@r%cRaibil_#EKg@K1c#i9WVq#jvkq|rI-D9!`PY?r%@g? z7D7(<PEg+swG8sDsK8yQ$Hr#@MZY~yxE>SuA*M>KPCY}!bmkQ4h!gX6Z|O{dyFE-C zavtMnHdJ4RkKSJDOxFzri;T8*>OR)Ft5z%j7O26ZC8wwsr2)=UEgqq78L%LEPQ%V7 zLCcm^0IXD9>5tKZx_C8Hctuw;)EABDGi)`h*!2@``B#%V%Yi`QAY}@p9AgvU4mVpx zp?->j7;5glVf}YgfJiJ0rcPlLbI=@o9~%SWH%gvva<;T4u4aJU@WanttDas3omp7L z3JF;<Neo1zzp;KjaC$E~LRi%QqdBkHRR6M+f_uqT9`$BcBSK6)nj{gszylO|<B4sg zkoPJP^UEML?wp^J#2=%y@h%T#)khnJlPg(=P72a(CCCw#IY$U#`X<hXQW$C9I)12) zF_#%f#R1$MLA>R-#nwOkiJBNLJIB(Yk>ZiXohZ#nZ7v_#{xG^3J;I{4L2XsSD^GFV zhE+=uH~8%L*}Z+WTKuTT99Q(B<xFaq!@e975aU9WCZ(dUY1@K@O|3?h#2znkf*{+M z`@`^k`V_y&FW(1?2K;awevV(Z3%Yn)=AZdv{^85;?fAj|a2I~QD~n~tH~%EB@PxnU zFaIlL<#$V+#b0=K@UoGLYeI&^8AW-H*n31c0vaF?e|3r+(TR%$SrKf@)fDMl1A5VD z7`N}(4}>_-PbJ(oh%(4CKg`!%AQ7Bx<zf(Lx~Q{hQAfXuZEbxS8~YqoJ)lT^YsK+% zKHBB7)>j2uobQ(-6O{5L{qelmw`N}?BHyhH1OgYCCj<7#^oFX)BKCr6=xnsytTmnL zN{zf4sceis-9*sHJg!qsFiHbAXkRBx)S*}Tcq-pSDb>4E^~aVa>+)GY?CXe$498cf z^{>O79VXNKM(wj1@#*ADln5ntVXF$8VAc^lDlL(FS;y32+sm3AEH3U4Pv&8!?cMte zJ1M(d-8d(c)I7N_BK(2kg1Ng*0|aNx7K_#KDWqyo6@No`-11!zw9i2rxFb7eZd_J! z9?b5N+}kKiboU+LY~$?rDfjJXWnN7k-o=rOdZHa>t-1K<=k{rr{#D-@o==DSoyY6( zJY&)}R63fQKnN}D7#5AA<KEu!ey<gMp?_hAjLaKsy;=rP5H}*T^wM?Y6cSK2o}fXp zdOJlzpngOTH`TtfyHL-ofy|J*B~zYDq|+qn&`6c>trKVJwRS{)Q58E6#+KeDrmqO{ zsb;<fr5}dkoOf5%;R>S-vfE$p!;BNR(nSc*ExgfCrI@K&J9eC=%ampr7%yd_)*%U; z17StzyUNcIVJ+OF=$!PT*lN6VuE(r?_rA>#Jy$SOGf!EQp_m#HuAG>Xl)K;bbA^oI z&q<x_h&I3Rj790Gm20x#Z0#boNyZNrcix5c-1=xNLT%7K&Dp<qxrX(a--PBy5o8+T zLg=-(WB#3x<mnwN_)V)-y}+Chte%jhVrE==BCyFLsIv}Ze!MbZs2#@5X{g=LioTk# z;>8A3>n3q3jhuA4EzpbH;MOiHw%4A$lX#qu^XtDln&xBQ4&RNR?-=FCU$Kuip#z3W zh^Bjcoe1uc^!toTmDphFy&x#unA{3Dr-51x?e<G2vucRb)KN#3pSt{sZ{V63*OukT zOSaOD>td_xiH=qpPdfvCY#uRAL{VO0b8k*ha?{}e#W;qv2}=xQ<=!&WSe6r^+G8Sf zH8^EQUXZU1T{QR@2UpS@4?xhEavdxkn2Qcl4pm8R9Wn6^2u54<UWXbu1Ltq^Y82OT zrBD_zPkF%?#fx63{)y$~ymZBkb!yx9q8361@GN6_+FsaT?(}2T^Ud7o`#W^*uEt!x zR^e<+cyv_kQ5K?Mgj*<Er9w-LUBcp$?{;RryunW%L?Gez`)n>usy+4orKyhK#g)e8 zCZ$6<hf75R8glk#dxto{=Pt5VH>3H?UYhrbE|;Auh@uZEiB)z35PZBv%=(;1#+{+g z^_I~s&}62}zS(go=Af^H&w~C{8q3>WtqKflCYsABCzI(Y6Sj0|Gm~qJF(G=_CTw83 zN)@J6t}eCX3t<;917JG#XjaYg`XdrUITK7h*kK1!KJDRzl94N1RZgm&?=?|!SPqf4 z#G4`FGU}fW4+f`KL#L{$yl4{)rk&h0OVArC8)V(C&_5C?DGuIvtR4=cW#4R4VKtzf zEe3_Bex9a5U`()@2y_LXb+yyRZB(s5nc6zK-XpRdn$__;80V(8Pe!7)h1Wr7sotf9 zGpX*CiYcUKDS&8nQ;hfqm`2IfH!UKej{vN?Q-dSBrPqsqIJfDpc(f9|(@j+@U*$q! zs9kZrI|zvE9!NW|;v#3bz#%`l8V_O)%K}aPTGi~jV486k&pD8B(MqqS%F2`5pJv7_ z9aV<5#~TU(I=4HDY=Y+aqTtRLTaSXZ{xn7%D}{ai`n`~{*!0Twvt`}wwe3AQ5bNUJ z;s64m>s`oI+z5XQ$^n3nZ85d}V&xYE^6$!}?+UOdqZ{FyZ{9U&;E?Z|IJ>}5HXVY( zhP{Fs%{s=7uI0z?5`xc6-eOec9zGpy*>yL;_$Y7+Mmx}o`LoCzw(a|JL`AKKY(Lir zxLgZn8lXcL2K2&He6tsu;Gpm6UY8kPPg{4V@<FEiefqnAG@U=@4Uc+2>l>Ow_H@hZ zfVQ>$9x(EhEIA|#F<2Jp!LmD({sUD={gE=u3Gv@1vT^TenAh93a4foBUKWeaL7SZR zGj73M@!t4GAp$UREyZocKD~ZU^;^4L#qI$!jO)>}HZ`TSvWVDdTIKgQb&Pk9tT69` z&AY+7?Fpkl9v!;mkQx+RZzq#;cETqYX~!2GP=1*8UFe(GPdf=_IkY(x0+6;UPRD{V zx<i9{tLk1{u&AkP)3Wx_V!N<@HY?WCuVbHO$GY|q#W(h=RWUYx=7I9QJgwb%*J^JB z%2>PX5%Z_L7=^vYYFu9&)aMi@7^K*#xguF+_h!^+^u7(U@NmQxa@&1FOZJF7N+o(5 z1r<4<1Er6!k{r1>caVsyv*5t-6owD@((`%ciu)7v%?<I+CQYS|!?KZcIL=1(+Gq4N zh>h4^|8(YZewiIT`$z-9#><Hgk`7fWPVy>b(TaVEfH#aT)YI`#C0tj>p7vR5;cLsv z7k?nMNCh#)_~%nT4~K_u?f1d-F6XLEeKy#<i(c;rpE%6-?#kkJdEd{V79F<WXWiZ@ zhVIsRfC539q6eq!mQJiwqzoyj9<f88J`9*IsTEHXXX~0M&&5=z*RLdNe>P8KAue-< zZL#X6<d23TRB&+21Q}UGY-;6bl$U^cHv%D%ib{M?ejsvDDGWsh@_Uf+E%Knr4JKb0 zz<i;9t>jpYGAs*mf1v}&P}C02zoO6hP4!SZ3hyXqIm&C}*H5t*U}xrA(NvO*Y{5*W zM^43fGSJ`Aw@GSe2Gk<CCQ~)37V~8;*@rk%vnvqmFDN^xZQ>~sKFMG72%W6$@~Q6= zN!xL;%M5OjZEV*(+?qNb*$VQ_Ad0CtEI(LbcL=h{Eir1#<K_|*EU;iuAeun46D@_o ztVScs_Nd+cc`Zc4T!2ae5a1K)x)b((J3XX#$Bs_oasM@z9rI!Q)P~i8!iTfFv*=*@ zuF=mvZ&!!zKJkf&tqY^Uj)xge<Cmy>P0%R>7=5O2R3W;2nFtBZJHb1mG6s#QjR-;y z<QM`>!FV8!<_bh{0Yj2Rurn}!tbQu<<03;IumW+nc?6z5J*MokP<)LJ8&>M{=>wq{ zIYhLS(uTBURtDo(3@++2?WEYV1r=WH0qnkN{nB2T4k%;NkXzua!KxeXS@wozb8p~# z0m=YukUMLqi4hS;9o=mMSS9yJW<I-OO%a*2r>^GEOiJQobjKJuFAeu8MSt!OGMF6K zR0Dp0NxT*v2>O3#)e|}7uxay>K`wM=#e~x*SQtKg{+lYDy4#Lg+k%NVH4ko+1Axm* z`j|Wl$G#~7punn*<z^93eyKS3Uhf7GH9#@+f(Q{70?;@Bd;lF-+y;sSv&w$lK(1k2 zJ)`~vah_`xG~piYO)tkAZ_THd@K>g{UUWZG0kmmgm%<X*g6g59_jGE<?T9#ogQi0B zz`uEM`|o{$JX*;a;7;84%77_Ad$FLyfh>^L39AtQe<3yKqdc1EAf=Xwtse-MG%5{W zY)xV%C9ClucFBbb%Mik9$A>3p%Mh#n`2E?VfgNinc?hXuuI0~wEsQd=jS6N0)~e<w zi`dNAKqy7ex*(TH7eyea5k6HzNMkmaFO~=!;FQ`29XC+Wh);X6*`zMa`DV%1HtzHQ zhJW7N@OUY4-bpbM6!he?K|S`i;K_@#5;GTxZdF8Rot%s8jVbrREC+=M`<vsTTi?9x zfE;3DZw|C_4&<BviRPiaj7bA#LPB;`Smpn1DggGhl;`?qDyaWwD!}{S(Y&?}Hm3ha z>8but>G?lQV#cbD$8B;T^juPVKvIzYqsmq@WQv(>fCF=a9NzS<feA*JWJi)fp`?Q1 z{(dTS9g!px8f2LDRH^%@(lJpg1t3tXQc?;9ly@XRrC`Q`7E<g-N#&q~4Nw(eN3)=6 zhHse4*z{3F8k3qtJ4pXcE)u?zAtY2JW3s{!%h@Xe_|!?0`U-{a+{{WwP%{DOfiMM_ zKS4lc-Jr1;w3+*=A264z5XfnUTb@AvqTLS#ve#Y$bQ8aGxs&5na7<N*y{G}#$nOW7 z7sU_Uf>tG~f#n9GB`}G{0^(0U=N#gBAD~AMO}keli#=Uh>so%{!=fZr)3N?`qbcHi zz808kjM+(s%rsK97#))K*Pzv~3WKN@?%`bTxz~CJD2o)UT6zsG7fh=Hq5G#dR+Khu z-6eLCbR{<33(G*B-h?!hw~hT!R8H5{E|)dEePPeg3$9qb0-HC})a_Z1wcBw&PQF<y zxfpZwZvAfAEc(3uv9G1DG3W>E#E{FmdsB9%zpJsHYJ#r8om=dB?eczloAtgX-fvR! zbVQ#vJJD5vlsTUN)&b}0{E$f7H8z~)NaiTr^=Hu7xE{jK`SRpIx?(teLIQJZ@7AJS z9di4v&sXcJb&;*H%ucAIF>e@6GxzV%OU#(!ogK<X<y}lYrCrr)kHo|&38d6iVFc>b z^5B5sl>*u&CnR?E$9=m;N`{3~%Wi;P{WTNusA)c&)dFz)l1mLxHr-R9<mekKd|65^ zaFTs|uPwF4ZKrPvs?vU}U<SJ7=aLqZEbbM%x$G+bWbBJ6(#^hJ2J1^{r>y3t*j90F zg{bf^V{!YM%jb6PhQpQlC&ZBUZ-Aj7GiOs&Fd1hr@n-R>%c2B=Z!GCEx3@HAd^~}+ zkL(d0`!e9u4?kt)_J)>H+xKcR{P{iR!W<$=Lm}Vhusf|c!;jsW@3t`$!Bxi3K()(& z)j#7LMc){TcuOJ$LSDj}vW)aAzN!WaQXf*l+zAP+_k{53#hDB$iVqztleso1*0`u4 z?V0<d?A=0Q6SQp{8vplF!hZ_=b$WZbG5#S#u&XN<R*QrH3#!&~_nTzg&4^8MtJkaT zHuwI&h<5+eKiT%OXrJ-VEX{)Q|13@0{kQ+|e}K45YiK)filF>660Bt!ktiN^<x(h< z%UW>3J|z*#29OChrLBy!E!53Pxg{Zic?9LpiSK1%hV2u6v;R=$EN>^_=!Ai@ELL`Z z=HBYOTyctbgv;0|y0r!Z`9Iuy*&aB8V~&vA0moy26~#^R;)BKj#bK~LM~2%fR{zDu zliWFqo9)<wmdqk^$C*J2<7M0LO79Jq&G%+3!hBmogA}SI^q>LafioQ@NcSVwDVkz$ zH)oiUXa-o3p=f}~=Ms5abHrx-Pag;y8W3*a)lOY!f&3=KaZK@bxp#cb&}@DY;zNq_ zuKV8=vFcJg+bOfA<g!*)(0$~39Xi>*<6%r>>0ta%_=*-!rmjDfi1U-%!Rg=vPG4kS zwD_cVHm1O$H3C$XB#X_gEBxN~2hsGac{qAhu`st9z>&9dUPF)#VcR<fTbNoJ_*o+O zue8p(_LtwSspy4!DTa!R-~%$w&8Cu#R;q*mgOrGIoAfttOKp)`pGP@a=pn4p05+du zP)YZqhtyA$Z1fW{_kjTQi`aFSA6a~7C<1}j&Ni56FT%ZcU5nQ6TwaOPL5T83RW78T zVn^>A^$;0KOw2NP4Cm}e3Wl3y=tpt3nLQv#_MC&nbm-Cm?DLnhz_m#PCB^RUYt%1N z{9b<+>(ZbBsdHYwURK|)^&j2&XYKvp;ih+e`TM>V>9%@9_1pSp?SDZ+e0;h6UzOi3 z+Yn&r`Nw?Uf510vTJQ?Or!sPd0W%z*61>^mAPh0Ko8D6(Bq)D#APy9X6k5q3(Eh1> zrCNM1Jk&>6N8C@e``B&ZS3a%>_)j(qdRFkZQthQt(UR&G&tX@>t_yp2F5$ecTk`ar z&ioTX31|M|xruNl4}-eGM$cxrz_jXn0lv3+eqB{h5?}G<>AC-T^qk7{HRV`ipDmoH zsnAGt_wju4GXI*`;rDsKe-K;dwRd@BEjfz9lCyT~$|4vdUQ4@{V#8KN@LmuoV7B9W z$W)4U7{ffnaO%Qz91NmzY(W9%j8c|yq6ll2(&cFxM!yQQR9=wrN$Mcbaz*qEx~M!6 z`$$s<9}%B42=fxmOl{KSL%xxehe4DfdqPTruACqgX$nNKD3Suil@72^g8xdmVVRBi zLsgj8SpjXSTv3@wywZ#WpL<j>VRdwfn4zcvm&S=!3%On({}_Fi4KM`Zyev_&C(%zi z2n0TYm0wY1^qA=)|I<{@q2BBy!35s4SL!2++_eNw`>);o2Fk~HvwNOCo++;>fW~%H zD830UpCG#~detmY7dzlUaVrX&X<V#$1vEINl~cVm1x7o}Nw@V)8cvx-Aed1qW{G*) z0Z1eUqd+}NzBoTtT8L7-LeU5_1E@5N#~YTIgi<7GVA&zL=2|LgPsKXQ&Sx&bN)xLJ z7S=A9MKPz65y~sANrZWdI7W)8I=F3eBNB+ra8!mE{X45W0-!|_Jk#M|pCn2O9`o31 zMI<q#v;DyQZ{l~cxK6%M%A&e?@9d<EO{l2!_Mu?z(S>8SIS+g$!_bP}LQdTjm$GW+ z^>HELj~NM>icY?U17|w>{ctZg_nT44YYp%&HKyv--gukD3|_XgdP*%N+bfl1fQp3L z(>K&UhAN?c9u(Cuu|lXzPR@BPLPwy%KKG>pSnY?lwf(9`@3#$lqh{i?rSOP)<p)$S zeeIL5%|5WruV6i9ztS7nLiVVBo7}B+E$y>O^?PFLv!GDhtIz7%I^S9>rF3lX+jJV2 za=Vc9NeD5Ol=I%hJkLgJQI|4OH|3oGW?v&^4vNajQT@lz1f(6Sad6tsZNCe(xnU2x z#;tqjrRZV0JS%7FE$c3a&zBY+nPphBW4XjEXAr##mw<HPN#-apd#A4yoZ{BZD*x&s zvQ=_BD77mfY#S-02=z`9vI374jR#(K>MXj&qw-WiKwC-)Ke(c3GI4;(vQ(6M?t)X8 zm<sH;yx2ss2G}4zD6v@Bu>|E)h=tA6C7+tm*14ljbBfJK;@^cdS-#c=hM)E~nHesp z6UkqlMVLpqYm}3m6idRX@u~=5J#_6PXBBjOs0<IWT(>Tqm(s%cZEF%Y%Vo5&ZPf!^ z7H`iv;gL>K*&c0I4VuGy^MSl87#<_1S)>U|%QbDH{s4P?wG?F$(KU`q;~9*)EzvY^ zg`=U_Q=faOVyaV%_=x@&)wzSgl<?yUiqA_+;)}f~G(7%9@V-6mG`xEiM5Z!T%EH(s z^4ER)|Bmiufz>7f{D<!4BLV=x{@?Sb>wgWO|I=ZIxoNjK_N=SVC`yp9btblL1L+E6 zPHeKhEgL*6sl29TBobE=NtwjW+<avM+bn<&^;BtrztQ`IyaD7(`N3_A_KD8RjH5&% z`ku7S=8BVj(lM3k%rE|$fbGSi5u-?RGX1@g6H0x=@u)Ez!vR-RO<@A`7Z8-^;7tV~ z%vZ145`efRr0h7XS{0)NM0|iJM+YKI7m+EJP?3m6DdmVhJQ@ZM`r;AAW(C2=l!q)P zw5D)pUVwwpIf#KEHcPd7SqI-aPH+AV@#M(D2o0`nBx;P<`G_INHylhw;cBsM_-Hua zy8Vl*ydl`Q0fZ+GE+M3K@BK2vVZUaaW)RxQZ0%uE0}Aopv8zY#kG25apS2Oh&|gIR zeD}>HTu2bt1_Ci)UR5S^4j%cpVAvzr1QGxdk5M}K9aIHWE;n7nm_)*W5et?6;s`G! zLA?>;FPRWU)E%GFweEdG1<*3cWYO+J41DltjHSeaKqtp5bs{l7w8w;6q~_d%;hcKx zI2nauQ;|ARZgQEyYqe1dfInCklJ(*k{0d>Z33GrtT<NWahI<wjmYSHl2Y?f#A|7Hu z4pH6l%@iD2mbn;zvj4>CvBB%(`J2gDW4k*y+;Z>1PRwFKbo;Ig<Quf^-CZU(wfIbQ z<f9QhcW(owQEE9J1^Q=-x{ph<?sQ6pd9@_#5)q6M$_NMdGw<piqofq%nCwwP{K;p= zQBXkv%P~Pb4!!J$Z#b1W?K0)TJo|zB&c!$fEci@;&ov(<dvFdEoq~n_J_Eqyanl{_ zV5G~LW&kCOh8$(Nz;Tr6VXSfnUQX;dcDRreM?O8@Pfr$eyNGNELM9N1sazH~A|k3I z*co7qj!a#IF<B=l9yeziGt%T+q&w*5`Z_pkczk$AFOW3LfFCU=xM!C#hDT1#mCDVf zD$U(H**x#MQS}z(iP}tizgv&5eBE2>vL|)i$C1~==>t$B$8KXZI+@(7Yy^U2q26o_ z_s$(CSoJ*%3+!hhxEkXQ5a@fNM4z@>#k+9_E7ozqVp70~uUb-lSRlDzmyu?)O@L0V zP*d!KK~#C8Lid4!{H7H-J(b2OAj=XNqdOG3aKwx?!J)L<F}S)$w1MaT_VgD4WA0{m z>T+Afg|SI@vF#FeqN#IIk7O94?)8QD6Dyu-S;p+~z&E9@%9JFE{0s?^bpRfya6u*! zq9`b^mIbZ6oMF2N1QjdZ--}bLAn2+^^#l6L8uLyXabtug0H)YlfP)pjiCJ=b?e6Uj zj6N$iq_~UcvE5^5&bEdB>@A!f!`CTT;PDu%_>if`ibf)d%e5Jt2~`^kexBo{iKJt= zPq!aRd2dC^Bhkk(G*u;W?^P#X?B<jl;|+`%|NL#jU#Lesezg&I0Dgf%60eeAbR3EU z>w7qnk>^sDT}?Hrh|1dY5b0Kilhm9EOa;WV&TV?TpGtfw7|19243LBXpX58{CKxM= zhK6T4S6Gv7D47#N06(L+E&NLMCqDa6cD$b-kEh?;(>RD?T#y0*o_J#*=$}koA_!nF zxjCedjipD3NydS|@RLVX5wx*xb9b>|!5;_$=aXh78URTNxgzU?-I})fLJ>2m6eW}; z0{xP&C{-qNgo;?(=UOP^i5kVdrLi>|IWj(a#-4QZNr~uD=B5yWzJjxsz}!oXs?Kfp z!mQj@l1kNwF_hmWJ^FD=cId?6$+VcMLb}_|RW_?IN^VUWwxK{cPjN--g3Ly$;nJy` z<B_D`Y!j6acRKU{G!>q)!yVmYQvvfMq;_L|G6vY=Y1%^=uHmHV!S!sB2CB=9sW+<Q z>#<$|wnuomUZ=8G+GqByi$G7hVfGwIXcg*sYAfg*@y<>Yo*gOBM(P4V8K{6OCR(|W zJaie!U9EbCI2l$&j5+FDnOd|G5+n~Z(MGAL{7z3%IH@X?ylNlg)W&(Sp-#Z+s?f~y zs_NViUt3A)Q3E`yRElF0VGq!GDxPu$EwlS5dP3hl)b%1#$<S@W<S;J5?ySlI3U;3C z<3$!H1T3|86nZla{VOgw%ndZ)>m7kV`4dzU-@-Fg=gxIvr`d<*oy#>ANv_0nP03er zi)Bj{7X|LFGx{y%ubW9wRu<gW*45Y+m|1PM)2$kAUEhV<o3~q);?)FH9%YW*BxjNs zUT5Ymy-ktJL>zV);13kuZ-%mSx?TlWbGf#2XeYH;g)R`1U4>hmq`1e~#VF8{vA=&l zie>I)S?BCPwyiQ6wU4_9ksvZDj^@-VBqhpxH6fv*q=l4R^{8smm|J}EHH7#qb!IE3 z9<g52D*c8$n+}+tCyBg$^I3MOnJ4*xa^%v&qmJQ*o0oD<z+6$00Ji9kdviBYXJu$r zV_FbI`zjYqkPOuf58oCK4{@PKmB^s}!b(D%c&3Keglm!kWwpw1Q%S6s606t4FAVHV zh<%x{UFL`Dea-~?Q7VoLzXLs}GM_{l{@HEWOi;Plo?#YKe|Sx20a!)=i=U$$oGs=q zWf;E)2AdLoN~xJAZY&T4K=g@@Tp;uQ{wBoRDE>#{#hUJ9IE8oIb>nu%c<;Iy&85)q zCuN9%Ix1uA8x)#sdf7BZ_LG9XUf<U1;=^2m|9l?m`6$u%ccJJz&KCSul;`ECi@#B` zAX$a4UvTexJM8=YXnXa4oBY)Oec9yyzS!LTegFRV{qg@g>C*qXK|{Mt)*Ri;cYWFR zEa!LUb?3;Q9+SDT^t!YEaio3Gga|!+WO(f9x(0YK+#0h7X&m9Hbk+=#z#yru(fPEy zAcpQ)qfH&nUa3OW16jm|<#C#iN=w8!s3Pqyiy*@e%ciQ(8j}|PYkw!YNUX5-b;(EV zaKfj@!Iy`K3S`YxJ-i~-UZ$HKs#42e#?40KDM}`}6N?!fwPzvWXpq+8Anc$0e1D(x zpdvl)1&}{<eLtn1ylINT%<v0DRA6dz9m$?t0C1|cJ-yWk_<Yr5Hx=&vvT7GGaOH>L z?F`1+g^Do$Qt@=HNfYtqFj@I1#ZKX{(_kTW)HM&Ulg^E*CQWvY<j^^pL@wr}wNs|W zpVKSL*S=XHZT}0H;NzmmIG(OWnIJiP6q}N$10B%Nx;BAQ+pZSBEiHsDO^98yHC#gO zACyVWFRYaiea#k*sZ+;RL$R)Ha)1FT?okbX2Hb(%6vdm`yT;1w5|pS(VA^NBwnI?} zBr46alD^HEtez4hf(B)r*DU8)H-)Wo?nPYQ!a7qPzw2HJRItEC>WC++xGVxJLm#_m zd5DrK+dT5k_nCBs&;!}N+$fUYwaJo`$}cf}D^a!5{KW)8EZ4zkJC1^s`8&&<dX4i( zQ1a~L`CWgr#-e1iPPLV3`lcsJ1L#r!ZOQhzeV@}1PIn*FF-7}ljyv-g;J>HJG~#JP zf`1rXGF<=wtp7DtTK|7S<uK26+@@I4?>9>B{ofLs*su~2B_|qazFCf!5q)#+8Bk{A zBGFc{Cxw!<5|+GSuq0gqZ+Gu@f`R>dj;%kSH+_dW4LetLk5F0aYvk)yc1c8(QpGXJ zJ(5?6oz?$V)n#$l#%UxjN1eYzrp&>B+2<AkjM#7^Sh5Ea(<IT21x^TK<{Mo<<D|1O zni4&iJKcFb@T{@h6_{TNTPV#p3NA3g=vsa7JjI=|OWT)V{UZxpB`&xjP#}RZRyn}~ zClG(pbksq8-Y*|y4<jtG8o#=<xV+J7v{W#!n6EWPJP#vBwj()AFvvb&H0?<P;-hi3 zzs)*cEYbX-kTimp-yZWkLI@mm=3~O&1Me}hffPVn78$Jo8EQBh49Z@4AGCFsDLcMS zXKq_Za60FjHC#pv4lMHN!cm`@Jx7GUaIxn;rf{x3hl&9-a_Mcn_MI)s0kOOnFhLF} zgIn^w<^akWOcLJshv;Wq?s0!Icz*WqEr;!{$3VxI=$tQVy13)<blProy8Iqjws99o z7oHTjM!Rs>2-47T+Iw*r?Gs@7@ja0m=E{lH$c;1hA==f03n7;46E1yF?yL~TT5M9d z3C=kV#E$3~{Nt1ua8VZd(_0{EjJ*IJ0nlp+pK;?&kvRtvZ$XzD;xzCBll(dYl(9zc zIXb&rSb0TAQ!adVxDs2F=j-{0ML--SS{|NqZqHMMR~<3vY<MDxJ>~R|D@IIU7R(;Z zMT6ELNN99tJmwKL2&G>%mR(e<mZR^+3<2aZdw{+?<6<63blYd+u#E1t>!Tbdh>-9> zNrV^!vbyAZ_6e_g_U1zI41li!r!T*#F`1w?iNcXFWY!iLF+c^FOicE|6lDSmN#G>% z0sR;dQM`oC%J_WRfH8nRhNvjG9S-+PW+|cJv$RJ6G0ONhUAk%6qsVABE}FG3Jby4{ zVQda%Wtlh2swk~$6NNo!i3S3A+8wv&U~-YcqQS5d7#f(6V1px1OIQZ!;2QDPU_3A4 z!VD@5qGc*hagzyg<1_J(%|9a&iB}&XBn}h820+j-;B~jmLl&hzM*B4~$i%jVtfXwf z%#P<!|CuKF@;&$nE0l;Ly!2!qVdoKg6oIc^DUz)J%7S*uJ+XHKco40Qao3LrcFG3I zPz4?SGt5im*E8WUyvI_?fRshvUhA6X>s%+9p@IpTvwx>p)?$NZU$^f3<F@g(c|{Bj zBiwXL&0&gn-8CRGVr>X>rYxM)ZM82|_pG+BZC-K%+HmMMkM&G;J-@!>e+$b_WN1>; zGmAF1*HAu_8E}J$@wEil-~?dB5O=gP2xY+TwUU}8|JA7HKi41#Db~f=gvaEqX$+I5 z-9uU&6)$5e0I%9Urmdu<fq4kda4p>&7yzWAuSpU++Lj=?HG8Roi2teSIy*S(z^pm0 zK{~zB(Fyd&9<U1#G=WP<X09Ne71)kQ_37^JXE+zmf8n)@<|yNuvj;bXII+6%G?=s* zh?AP8oT7rka_)>Dl(ZV}xCQ?4E;zHh`iJdGN$n{}2y{qj$!P<X&+gm;`47U*vAfo2 zS+_A(Y}>YN+g`D4+qP}nPF8H&wym4{ai7-C*}q}FqiW2mKKk>%9OL}5o;}$~Dzm`_ zS8KR%04JRI^tyhfwXqxuXH#e)kwE;CLu�ZP)+I-;mt>3LMeXWSjjB0``r^1FWUF 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 _|wg(T6SGdSMxEA`5{KjVga*Y=} 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 literal 0 HcmV?d00001 diff --git a/youtube-dl.1 b/youtube-dl.1 new file mode 100644 index 0000000..38c41e2 --- /dev/null +++ b/youtube-dl.1 @@ -0,0 +1,2490 @@ +.TH "YOUTUBE\-DL" "1" "" "" "" +.SH NAME +.PP +youtube\-dl \- download videos from youtube.com or other video platforms +.SH SYNOPSIS +.PP +\f[B]youtube\-dl\f[] [OPTIONS] URL [URL...] +.SH DESCRIPTION +.PP +\f[B]youtube\-dl\f[] is a command\-line program to download videos from +YouTube.com and a few more sites. +It requires the Python interpreter, version 2.6, 2.7, or 3.2+, and it is +not platform specific. +It should work on your Unix box, on Windows or on Mac OS X. +It is released to the public domain, which means you can modify it, +redistribute it or use it however you like. +.SH OPTIONS +.TP +.B \-h, \-\-help +Print this help text and exit +.RS +.RE +.TP +.B \-\-version +Print program version and exit +.RS +.RE +.TP +.B \-U, \-\-update +Update this program to latest version. +Make sure that you have sufficient permissions (run with sudo if needed) +.RS +.RE +.TP +.B \-i, \-\-ignore\-errors +Continue on download errors, for example to skip unavailable videos in a +playlist +.RS +.RE +.TP +.B \-\-abort\-on\-error +Abort downloading of further videos (in the playlist or the command +line) if an error occurs +.RS +.RE +.TP +.B \-\-dump\-user\-agent +Display the current browser identification +.RS +.RE +.TP +.B \-\-list\-extractors +List all supported extractors +.RS +.RE +.TP +.B \-\-extractor\-descriptions +Output descriptions of all supported extractors +.RS +.RE +.TP +.B \-\-force\-generic\-extractor +Force extraction to use the generic extractor +.RS +.RE +.TP +.B \-\-default\-search \f[I]PREFIX\f[] +Use this prefix for unqualified URLs. +For example "gvsearch2:" downloads two videos from google videos for +youtube\-dl "large apple". +Use the value "auto" to let youtube\-dl guess ("auto_warning" to emit a +warning when guessing). +"error" just throws an error. +The default value "fixup_error" repairs broken URLs, but emits an error +if this is not possible instead of searching. +.RS +.RE +.TP +.B \-\-ignore\-config +Do not read configuration files. +When given in the global configuration file /etc/youtube\-dl.conf: Do +not read the user configuration in ~/.config/youtube\- dl/config +(%APPDATA%/youtube\-dl/config.txt on Windows) +.RS +.RE +.TP +.B \-\-config\-location \f[I]PATH\f[] +Location of the configuration file; either the path to the config or its +containing directory. +.RS +.RE +.TP +.B \-\-flat\-playlist +Do not extract the videos of a playlist, only list them. +.RS +.RE +.TP +.B \-\-mark\-watched +Mark videos watched (YouTube only) +.RS +.RE +.TP +.B \-\-no\-mark\-watched +Do not mark videos watched (YouTube only) +.RS +.RE +.TP +.B \-\-no\-color +Do not emit color codes in output +.RS +.RE +.SS Network Options: +.TP +.B \-\-proxy \f[I]URL\f[] +Use the specified HTTP/HTTPS/SOCKS proxy. +To enable experimental SOCKS proxy, specify a proper scheme. +For example socks5://127.0.0.1:1080/. +Pass in an empty string (\-\-proxy "") for direct connection +.RS +.RE +.TP +.B \-\-socket\-timeout \f[I]SECONDS\f[] +Time to wait before giving up, in seconds +.RS +.RE +.TP +.B \-\-source\-address \f[I]IP\f[] +Client\-side IP address to bind to +.RS +.RE +.TP +.B \-4, \-\-force\-ipv4 +Make all connections via IPv4 +.RS +.RE +.TP +.B \-6, \-\-force\-ipv6 +Make all connections via IPv6 +.RS +.RE +.TP +.B \-\-geo\-verification\-proxy \f[I]URL\f[] +Use this proxy to verify the IP address for some geo\-restricted sites. +The default proxy specified by \-\-proxy (or none, if the options is not +present) is used for the actual downloading. +.RS +.RE +.SS Video Selection: +.TP +.B \-\-playlist\-start \f[I]NUMBER\f[] +Playlist video to start at (default is 1) +.RS +.RE +.TP +.B \-\-playlist\-end \f[I]NUMBER\f[] +Playlist video to end at (default is last) +.RS +.RE +.TP +.B \-\-playlist\-items \f[I]ITEM_SPEC\f[] +Playlist video items to download. +Specify indices of the videos in the playlist separated by commas like: +"\-\-playlist\-items 1,2,5,8" if you want to download videos indexed 1, +2, 5, 8 in the playlist. +You can specify range: "\-\-playlist\-items 1\-3,7,10\-13", it will +download the videos at index 1, 2, 3, 7, 10, 11, 12 and 13. +.RS +.RE +.TP +.B \-\-match\-title \f[I]REGEX\f[] +Download only matching titles (regex or caseless sub\-string) +.RS +.RE +.TP +.B \-\-reject\-title \f[I]REGEX\f[] +Skip download for matching titles (regex or caseless sub\-string) +.RS +.RE +.TP +.B \-\-max\-downloads \f[I]NUMBER\f[] +Abort after downloading NUMBER files +.RS +.RE +.TP +.B \-\-min\-filesize \f[I]SIZE\f[] +Do not download any videos smaller than SIZE (e.g. +50k or 44.6m) +.RS +.RE +.TP +.B \-\-max\-filesize \f[I]SIZE\f[] +Do not download any videos larger than SIZE (e.g. +50k or 44.6m) +.RS +.RE +.TP +.B \-\-date \f[I]DATE\f[] +Download only videos uploaded in this date +.RS +.RE +.TP +.B \-\-datebefore \f[I]DATE\f[] +Download only videos uploaded on or before this date (i.e. +inclusive) +.RS +.RE +.TP +.B \-\-dateafter \f[I]DATE\f[] +Download only videos uploaded on or after this date (i.e. +inclusive) +.RS +.RE +.TP +.B \-\-min\-views \f[I]COUNT\f[] +Do not download any videos with less than COUNT views +.RS +.RE +.TP +.B \-\-max\-views \f[I]COUNT\f[] +Do not download any videos with more than COUNT views +.RS +.RE +.TP +.B \-\-match\-filter \f[I]FILTER\f[] +Generic video filter. +Specify any key (see help for \-o for a list of available keys) to match +if the key is present, !key to check if the key is not present,key > +NUMBER (like "comment_count > 12", also works with >=, <, <=, !=, =) to +compare against a number, and & to require multiple matches. +Values which are not known are excluded unless you put a question mark +(?) after the operator.For example, to only match videos that have been +liked more than 100 times and disliked less than 50 times (or the +dislike functionality is not available at the given service), but who +also have a description, use \-\-match\-filter "like_count > 100 & +dislike_count <? +50 & description" . +.RS +.RE +.TP +.B \-\-no\-playlist +Download only the video, if the URL refers to a video and a playlist. +.RS +.RE +.TP +.B \-\-yes\-playlist +Download the playlist, if the URL refers to a video and a playlist. +.RS +.RE +.TP +.B \-\-age\-limit \f[I]YEARS\f[] +Download only videos suitable for the given age +.RS +.RE +.TP +.B \-\-download\-archive \f[I]FILE\f[] +Download only videos not listed in the archive file. +Record the IDs of all downloaded videos in it. +.RS +.RE +.TP +.B \-\-include\-ads +Download advertisements as well (experimental) +.RS +.RE +.SS Download Options: +.TP +.B \-r, \-\-limit\-rate \f[I]RATE\f[] +Maximum download rate in bytes per second (e.g. +50K or 4.2M) +.RS +.RE +.TP +.B \-R, \-\-retries \f[I]RETRIES\f[] +Number of retries (default is 10), or "infinite". +.RS +.RE +.TP +.B \-\-fragment\-retries \f[I]RETRIES\f[] +Number of retries for a fragment (default is 10), or "infinite" (DASH +and hlsnative only) +.RS +.RE +.TP +.B \-\-skip\-unavailable\-fragments +Skip unavailable fragments (DASH and hlsnative only) +.RS +.RE +.TP +.B \-\-abort\-on\-unavailable\-fragment +Abort downloading when some fragment is not available +.RS +.RE +.TP +.B \-\-buffer\-size \f[I]SIZE\f[] +Size of download buffer (e.g. +1024 or 16K) (default is 1024) +.RS +.RE +.TP +.B \-\-no\-resize\-buffer +Do not automatically adjust the buffer size. +By default, the buffer size is automatically resized from an initial +value of SIZE. +.RS +.RE +.TP +.B \-\-playlist\-reverse +Download playlist videos in reverse order +.RS +.RE +.TP +.B \-\-playlist\-random +Download playlist videos in random order +.RS +.RE +.TP +.B \-\-xattr\-set\-filesize +Set file xattribute ytdl.filesize with expected file size (experimental) +.RS +.RE +.TP +.B \-\-hls\-prefer\-native +Use the native HLS downloader instead of ffmpeg +.RS +.RE +.TP +.B \-\-hls\-prefer\-ffmpeg +Use ffmpeg instead of the native HLS downloader +.RS +.RE +.TP +.B \-\-hls\-use\-mpegts +Use the mpegts container for HLS videos, allowing to play the video +while downloading (some players may not be able to play it) +.RS +.RE +.TP +.B \-\-external\-downloader \f[I]COMMAND\f[] +Use the specified external downloader. +Currently supports aria2c,avconv,axel,curl,ffmpeg,httpie,wget +.RS +.RE +.TP +.B \-\-external\-downloader\-args \f[I]ARGS\f[] +Give these arguments to the external downloader +.RS +.RE +.SS Filesystem Options: +.TP +.B \-a, \-\-batch\-file \f[I]FILE\f[] +File containing URLs to download (\[aq]\-\[aq] for stdin) +.RS +.RE +.TP +.B \-\-id +Use only video ID in file name +.RS +.RE +.TP +.B \-o, \-\-output \f[I]TEMPLATE\f[] +Output filename template, see the "OUTPUT TEMPLATE" for all the info +.RS +.RE +.TP +.B \-\-autonumber\-size \f[I]NUMBER\f[] +Specify the number of digits in %(autonumber)s when it is present in +output filename template or \-\-auto\-number option is given (default is +5) +.RS +.RE +.TP +.B \-\-autonumber\-start \f[I]NUMBER\f[] +Specify the start value for %(autonumber)s (default is 1) +.RS +.RE +.TP +.B \-\-restrict\-filenames +Restrict filenames to only ASCII characters, and avoid "&" and spaces in +filenames +.RS +.RE +.TP +.B \-A, \-\-auto\-number +[deprecated; use \-o "%(autonumber)s\-%(title)s.%(ext)s" ] Number +downloaded files starting from 00000 +.RS +.RE +.TP +.B \-t, \-\-title +[deprecated] Use title in file name (default) +.RS +.RE +.TP +.B \-l, \-\-literal +[deprecated] Alias of \-\-title +.RS +.RE +.TP +.B \-w, \-\-no\-overwrites +Do not overwrite files +.RS +.RE +.TP +.B \-c, \-\-continue +Force resume of partially downloaded files. +By default, youtube\-dl will resume downloads if possible. +.RS +.RE +.TP +.B \-\-no\-continue +Do not resume partially downloaded files (restart from beginning) +.RS +.RE +.TP +.B \-\-no\-part +Do not use .part files \- write directly into output file +.RS +.RE +.TP +.B \-\-no\-mtime +Do not use the Last\-modified header to set the file modification time +.RS +.RE +.TP +.B \-\-write\-description +Write video description to a .description file +.RS +.RE +.TP +.B \-\-write\-info\-json +Write video metadata to a .info.json file +.RS +.RE +.TP +.B \-\-write\-annotations +Write video annotations to a .annotations.xml file +.RS +.RE +.TP +.B \-\-load\-info\-json \f[I]FILE\f[] +JSON file containing the video information (created with the +"\-\-write\-info\-json" option) +.RS +.RE +.TP +.B \-\-cookies \f[I]FILE\f[] +File to read cookies from and dump cookie jar in +.RS +.RE +.TP +.B \-\-cache\-dir \f[I]DIR\f[] +Location in the filesystem where youtube\-dl can store some downloaded +information permanently. +By default $XDG_CACHE_HOME/youtube\-dl or ~/.cache/youtube\-dl . +At the moment, only YouTube player files (for videos with obfuscated +signatures) are cached, but that may change. +.RS +.RE +.TP +.B \-\-no\-cache\-dir +Disable filesystem caching +.RS +.RE +.TP +.B \-\-rm\-cache\-dir +Delete all filesystem cache files +.RS +.RE +.SS Thumbnail images: +.TP +.B \-\-write\-thumbnail +Write thumbnail image to disk +.RS +.RE +.TP +.B \-\-write\-all\-thumbnails +Write all thumbnail image formats to disk +.RS +.RE +.TP +.B \-\-list\-thumbnails +Simulate and list all available thumbnail formats +.RS +.RE +.SS Verbosity / Simulation Options: +.TP +.B \-q, \-\-quiet +Activate quiet mode +.RS +.RE +.TP +.B \-\-no\-warnings +Ignore warnings +.RS +.RE +.TP +.B \-s, \-\-simulate +Do not download the video and do not write anything to disk +.RS +.RE +.TP +.B \-\-skip\-download +Do not download the video +.RS +.RE +.TP +.B \-g, \-\-get\-url +Simulate, quiet but print URL +.RS +.RE +.TP +.B \-e, \-\-get\-title +Simulate, quiet but print title +.RS +.RE +.TP +.B \-\-get\-id +Simulate, quiet but print id +.RS +.RE +.TP +.B \-\-get\-thumbnail +Simulate, quiet but print thumbnail URL +.RS +.RE +.TP +.B \-\-get\-description +Simulate, quiet but print video description +.RS +.RE +.TP +.B \-\-get\-duration +Simulate, quiet but print video length +.RS +.RE +.TP +.B \-\-get\-filename +Simulate, quiet but print output filename +.RS +.RE +.TP +.B \-\-get\-format +Simulate, quiet but print output format +.RS +.RE +.TP +.B \-j, \-\-dump\-json +Simulate, quiet but print JSON information. +See \-\-output for a description of available keys. +.RS +.RE +.TP +.B \-J, \-\-dump\-single\-json +Simulate, quiet but print JSON information for each command\-line +argument. +If the URL refers to a playlist, dump the whole playlist information in +a single line. +.RS +.RE +.TP +.B \-\-print\-json +Be quiet and print the video information as JSON (video is still being +downloaded). +.RS +.RE +.TP +.B \-\-newline +Output progress bar as new lines +.RS +.RE +.TP +.B \-\-no\-progress +Do not print progress bar +.RS +.RE +.TP +.B \-\-console\-title +Display progress in console titlebar +.RS +.RE +.TP +.B \-v, \-\-verbose +Print various debugging information +.RS +.RE +.TP +.B \-\-dump\-pages +Print downloaded pages encoded using base64 to debug problems (very +verbose) +.RS +.RE +.TP +.B \-\-write\-pages +Write downloaded intermediary pages to files in the current directory to +debug problems +.RS +.RE +.TP +.B \-\-print\-traffic +Display sent and read HTTP traffic +.RS +.RE +.TP +.B \-C, \-\-call\-home +Contact the youtube\-dl server for debugging +.RS +.RE +.TP +.B \-\-no\-call\-home +Do NOT contact the youtube\-dl server for debugging +.RS +.RE +.SS Workarounds: +.TP +.B \-\-encoding \f[I]ENCODING\f[] +Force the specified encoding (experimental) +.RS +.RE +.TP +.B \-\-no\-check\-certificate +Suppress HTTPS certificate validation +.RS +.RE +.TP +.B \-\-prefer\-insecure +Use an unencrypted connection to retrieve information about the video. +(Currently supported only for YouTube) +.RS +.RE +.TP +.B \-\-user\-agent \f[I]UA\f[] +Specify a custom user agent +.RS +.RE +.TP +.B \-\-referer \f[I]URL\f[] +Specify a custom referer, use if the video access is restricted to one +domain +.RS +.RE +.TP +.B \-\-add\-header \f[I]FIELD:VALUE\f[] +Specify a custom HTTP header and its value, separated by a colon +\[aq]:\[aq]. +You can use this option multiple times +.RS +.RE +.TP +.B \-\-bidi\-workaround +Work around terminals that lack bidirectional text support. +Requires bidiv or fribidi executable in PATH +.RS +.RE +.TP +.B \-\-sleep\-interval \f[I]SECONDS\f[] +Number of seconds to sleep before each download when used alone or a +lower bound of a range for randomized sleep before each download +(minimum possible number of seconds to sleep) when used along with +\-\-max\-sleep\-interval. +.RS +.RE +.TP +.B \-\-max\-sleep\-interval \f[I]SECONDS\f[] +Upper bound of a range for randomized sleep before each download +(maximum possible number of seconds to sleep). +Must only be used along with \-\-min\-sleep\-interval. +.RS +.RE +.SS Video Format Options: +.TP +.B \-f, \-\-format \f[I]FORMAT\f[] +Video format code, see the "FORMAT SELECTION" for all the info +.RS +.RE +.TP +.B \-\-all\-formats +Download all available video formats +.RS +.RE +.TP +.B \-\-prefer\-free\-formats +Prefer free video formats unless a specific one is requested +.RS +.RE +.TP +.B \-F, \-\-list\-formats +List all available formats of requested videos +.RS +.RE +.TP +.B \-\-youtube\-skip\-dash\-manifest +Do not download the DASH manifests and related data on YouTube videos +.RS +.RE +.TP +.B \-\-merge\-output\-format \f[I]FORMAT\f[] +If a merge is required (e.g. +bestvideo+bestaudio), output to given container format. +One of mkv, mp4, ogg, webm, flv. +Ignored if no merge is required +.RS +.RE +.SS Subtitle Options: +.TP +.B \-\-write\-sub +Write subtitle file +.RS +.RE +.TP +.B \-\-write\-auto\-sub +Write automatically generated subtitle file (YouTube only) +.RS +.RE +.TP +.B \-\-all\-subs +Download all the available subtitles of the video +.RS +.RE +.TP +.B \-\-list\-subs +List all available subtitles for the video +.RS +.RE +.TP +.B \-\-sub\-format \f[I]FORMAT\f[] +Subtitle format, accepts formats preference, for example: "srt" or +"ass/srt/best" +.RS +.RE +.TP +.B \-\-sub\-lang \f[I]LANGS\f[] +Languages of the subtitles to download (optional) separated by commas, +use \-\-list\- subs for available language tags +.RS +.RE +.SS Authentication Options: +.TP +.B \-u, \-\-username \f[I]USERNAME\f[] +Login with this account ID +.RS +.RE +.TP +.B \-p, \-\-password \f[I]PASSWORD\f[] +Account password. +If this option is left out, youtube\-dl will ask interactively. +.RS +.RE +.TP +.B \-2, \-\-twofactor \f[I]TWOFACTOR\f[] +Two\-factor authentication code +.RS +.RE +.TP +.B \-n, \-\-netrc +Use .netrc authentication data +.RS +.RE +.TP +.B \-\-video\-password \f[I]PASSWORD\f[] +Video password (vimeo, smotri, youku) +.RS +.RE +.SS Adobe Pass Options: +.TP +.B \-\-ap\-mso \f[I]MSO\f[] +Adobe Pass multiple\-system operator (TV provider) identifier, use +\-\-ap\-list\-mso for a list of available MSOs +.RS +.RE +.TP +.B \-\-ap\-username \f[I]USERNAME\f[] +Multiple\-system operator account login +.RS +.RE +.TP +.B \-\-ap\-password \f[I]PASSWORD\f[] +Multiple\-system operator account password. +If this option is left out, youtube\-dl will ask interactively. +.RS +.RE +.TP +.B \-\-ap\-list\-mso +List all supported multiple\-system operators +.RS +.RE +.SS Post\-processing Options: +.TP +.B \-x, \-\-extract\-audio +Convert video files to audio\-only files (requires ffmpeg or avconv and +ffprobe or avprobe) +.RS +.RE +.TP +.B \-\-audio\-format \f[I]FORMAT\f[] +Specify audio format: "best", "aac", "vorbis", "mp3", "m4a", "opus", or +"wav"; "best" by default; No effect without \-x +.RS +.RE +.TP +.B \-\-audio\-quality \f[I]QUALITY\f[] +Specify ffmpeg/avconv audio quality, insert a value between 0 (better) +and 9 (worse) for VBR or a specific bitrate like 128K (default 5) +.RS +.RE +.TP +.B \-\-recode\-video \f[I]FORMAT\f[] +Encode the video to another format if necessary (currently supported: +mp4|flv|ogg|webm|mkv|avi) +.RS +.RE +.TP +.B \-\-postprocessor\-args \f[I]ARGS\f[] +Give these arguments to the postprocessor +.RS +.RE +.TP +.B \-k, \-\-keep\-video +Keep the video file on disk after the post\- processing; the video is +erased by default +.RS +.RE +.TP +.B \-\-no\-post\-overwrites +Do not overwrite post\-processed files; the post\-processed files are +overwritten by default +.RS +.RE +.TP +.B \-\-embed\-subs +Embed subtitles in the video (only for mp4, webm and mkv videos) +.RS +.RE +.TP +.B \-\-embed\-thumbnail +Embed thumbnail in the audio as cover art +.RS +.RE +.TP +.B \-\-add\-metadata +Write metadata to the video file +.RS +.RE +.TP +.B \-\-metadata\-from\-title \f[I]FORMAT\f[] +Parse additional metadata like song title / artist from the video title. +The format syntax is the same as \-\-output, the parsed parameters +replace existing values. +Additional templates: %(album)s, %(artist)s. +Example: \-\-metadata\-from\-title "%(artist)s \- %(title)s" matches a +title like "Coldplay \- Paradise" +.RS +.RE +.TP +.B \-\-xattrs +Write metadata to the video file\[aq]s xattrs (using dublin core and xdg +standards) +.RS +.RE +.TP +.B \-\-fixup \f[I]POLICY\f[] +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) +.RS +.RE +.TP +.B \-\-prefer\-avconv +Prefer avconv over ffmpeg for running the postprocessors (default) +.RS +.RE +.TP +.B \-\-prefer\-ffmpeg +Prefer ffmpeg over avconv for running the postprocessors +.RS +.RE +.TP +.B \-\-ffmpeg\-location \f[I]PATH\f[] +Location of the ffmpeg/avconv binary; either the path to the binary or +its containing directory. +.RS +.RE +.TP +.B \-\-exec \f[I]CMD\f[] +Execute a command on the file after downloading, similar to find\[aq]s +\-exec syntax. +Example: \-\-exec \[aq]adb push {} /sdcard/Music/ && rm {}\[aq] +.RS +.RE +.TP +.B \-\-convert\-subs \f[I]FORMAT\f[] +Convert the subtitles to other format (currently supported: srt|ass|vtt) +.RS +.RE +.SH CONFIGURATION +.PP +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 +\f[C]/etc/youtube\-dl.conf\f[] and the user wide configuration file at +\f[C]~/.config/youtube\-dl/config\f[]. +On Windows, the user wide configuration file locations are +\f[C]%APPDATA%\\youtube\-dl\\config.txt\f[] or +\f[C]C:\\Users\\<user\ name>\\youtube\-dl.conf\f[]. +Note that by default configuration file may not exist so you may need to +create it yourself. +.PP +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 \f[C]Movies\f[] directory in your home directory: +.IP +.nf +\f[C] +#\ Lines\ starting\ with\ #\ are\ comments + +#\ Always\ extract\ audio +\-x + +#\ Do\ not\ copy\ the\ mtime +\-\-no\-mtime + +#\ Use\ this\ proxy +\-\-proxy\ 127.0.0.1:3128 + +#\ Save\ all\ videos\ under\ Movies\ directory\ in\ your\ home\ directory +\-o\ ~/Movies/%(title)s.%(ext)s +\f[] +.fi +.PP +Note that options in configuration file are just the same options aka +switches used in regular command line calls thus there \f[B]must be no +whitespace\f[] after \f[C]\-\f[] or \f[C]\-\-\f[], e.g. +\f[C]\-o\f[] or \f[C]\-\-proxy\f[] but not \f[C]\-\ o\f[] or +\f[C]\-\-\ proxy\f[]. +.PP +You can use \f[C]\-\-ignore\-config\f[] if you want to disable the +configuration file for a particular youtube\-dl run. +.PP +You can also use \f[C]\-\-config\-location\f[] if you want to use custom +configuration file for a particular youtube\-dl run. +.SS Authentication with \f[C]\&.netrc\f[] file +.PP +You may also want to configure automatic credentials storage for +extractors that support authentication (by providing login and password +with \f[C]\-\-username\f[] and \f[C]\-\-password\f[]) in order not to +pass credentials as command line arguments on every youtube\-dl +execution and prevent tracking plain text passwords in the shell command +history. +You can achieve this using a \f[C]\&.netrc\f[] +file (http://stackoverflow.com/tags/.netrc/info) on a per extractor +basis. +For that you will need to create a \f[C]\&.netrc\f[] file in your +\f[C]$HOME\f[] and restrict permissions to read/write by only you: +.IP +.nf +\f[C] +touch\ $HOME/.netrc +chmod\ a\-rwx,u+rw\ $HOME/.netrc +\f[] +.fi +.PP +After that you can add credentials for an extractor in the following +format, where \f[I]extractor\f[] is the name of the extractor in +lowercase: +.IP +.nf +\f[C] +machine\ <extractor>\ login\ <login>\ password\ <password> +\f[] +.fi +.PP +For example: +.IP +.nf +\f[C] +machine\ youtube\ login\ myaccount\@gmail.com\ password\ my_youtube_password +machine\ twitch\ login\ my_twitch_account_name\ password\ my_twitch_password +\f[] +.fi +.PP +To activate authentication with the \f[C]\&.netrc\f[] file you should +pass \f[C]\-\-netrc\f[] to youtube\-dl or place it in the configuration +file (#configuration). +.PP +On Windows you may also need to setup the \f[C]%HOME%\f[] environment +variable manually. +.SH OUTPUT TEMPLATE +.PP +The \f[C]\-o\f[] option allows users to indicate a template for the +output file names. +.PP +\f[B]tl;dr:\f[] navigate me to examples (#output-template-examples). +.PP +The basic usage is not to set any template arguments when downloading a +single file, like in +\f[C]youtube\-dl\ \-o\ funny_video.flv\ "http://some/video"\f[]. +However, it may contain special sequences that will be replaced when +downloading each video. +The special sequences have the format \f[C]%(NAME)s\f[]. +To clarify, that is a percent symbol followed by a name in parentheses, +followed by a lowercase S. +Allowed names are: +.IP \[bu] 2 +\f[C]id\f[]: Video identifier +.IP \[bu] 2 +\f[C]title\f[]: Video title +.IP \[bu] 2 +\f[C]url\f[]: Video URL +.IP \[bu] 2 +\f[C]ext\f[]: Video filename extension +.IP \[bu] 2 +\f[C]alt_title\f[]: A secondary title of the video +.IP \[bu] 2 +\f[C]display_id\f[]: An alternative identifier for the video +.IP \[bu] 2 +\f[C]uploader\f[]: Full name of the video uploader +.IP \[bu] 2 +\f[C]license\f[]: License name the video is licensed under +.IP \[bu] 2 +\f[C]creator\f[]: The creator of the video +.IP \[bu] 2 +\f[C]release_date\f[]: The date (YYYYMMDD) when the video was released +.IP \[bu] 2 +\f[C]timestamp\f[]: UNIX timestamp of the moment the video became +available +.IP \[bu] 2 +\f[C]upload_date\f[]: Video upload date (YYYYMMDD) +.IP \[bu] 2 +\f[C]uploader_id\f[]: Nickname or id of the video uploader +.IP \[bu] 2 +\f[C]location\f[]: Physical location where the video was filmed +.IP \[bu] 2 +\f[C]duration\f[]: Length of the video in seconds +.IP \[bu] 2 +\f[C]view_count\f[]: How many users have watched the video on the +platform +.IP \[bu] 2 +\f[C]like_count\f[]: Number of positive ratings of the video +.IP \[bu] 2 +\f[C]dislike_count\f[]: Number of negative ratings of the video +.IP \[bu] 2 +\f[C]repost_count\f[]: Number of reposts of the video +.IP \[bu] 2 +\f[C]average_rating\f[]: Average rating give by users, the scale used +depends on the webpage +.IP \[bu] 2 +\f[C]comment_count\f[]: Number of comments on the video +.IP \[bu] 2 +\f[C]age_limit\f[]: Age restriction for the video (years) +.IP \[bu] 2 +\f[C]format\f[]: A human\-readable description of the format +.IP \[bu] 2 +\f[C]format_id\f[]: Format code specified by \f[C]\-\-format\f[] +.IP \[bu] 2 +\f[C]format_note\f[]: Additional info about the format +.IP \[bu] 2 +\f[C]width\f[]: Width of the video +.IP \[bu] 2 +\f[C]height\f[]: Height of the video +.IP \[bu] 2 +\f[C]resolution\f[]: Textual description of width and height +.IP \[bu] 2 +\f[C]tbr\f[]: Average bitrate of audio and video in KBit/s +.IP \[bu] 2 +\f[C]abr\f[]: Average audio bitrate in KBit/s +.IP \[bu] 2 +\f[C]acodec\f[]: Name of the audio codec in use +.IP \[bu] 2 +\f[C]asr\f[]: Audio sampling rate in Hertz +.IP \[bu] 2 +\f[C]vbr\f[]: Average video bitrate in KBit/s +.IP \[bu] 2 +\f[C]fps\f[]: Frame rate +.IP \[bu] 2 +\f[C]vcodec\f[]: Name of the video codec in use +.IP \[bu] 2 +\f[C]container\f[]: Name of the container format +.IP \[bu] 2 +\f[C]filesize\f[]: The number of bytes, if known in advance +.IP \[bu] 2 +\f[C]filesize_approx\f[]: An estimate for the number of bytes +.IP \[bu] 2 +\f[C]protocol\f[]: The protocol that will be used for the actual +download +.IP \[bu] 2 +\f[C]extractor\f[]: Name of the extractor +.IP \[bu] 2 +\f[C]extractor_key\f[]: Key name of the extractor +.IP \[bu] 2 +\f[C]epoch\f[]: Unix epoch when creating the file +.IP \[bu] 2 +\f[C]autonumber\f[]: Five\-digit number that will be increased with each +download, starting at zero +.IP \[bu] 2 +\f[C]playlist\f[]: Name or id of the playlist that contains the video +.IP \[bu] 2 +\f[C]playlist_index\f[]: Index of the video in the playlist padded with +leading zeros according to the total length of the playlist +.IP \[bu] 2 +\f[C]playlist_id\f[]: Playlist identifier +.IP \[bu] 2 +\f[C]playlist_title\f[]: Playlist title +.PP +Available for the video that belongs to some logical chapter or section: +\- \f[C]chapter\f[]: Name or title of the chapter the video belongs to +\- \f[C]chapter_number\f[]: Number of the chapter the video belongs to +\- \f[C]chapter_id\f[]: Id of the chapter the video belongs to +.PP +Available for the video that is an episode of some series or programme: +\- \f[C]series\f[]: Title of the series or programme the video episode +belongs to \- \f[C]season\f[]: Title of the season the video episode +belongs to \- \f[C]season_number\f[]: Number of the season the video +episode belongs to \- \f[C]season_id\f[]: Id of the season the video +episode belongs to \- \f[C]episode\f[]: Title of the video episode \- +\f[C]episode_number\f[]: Number of the video episode within a season \- +\f[C]episode_id\f[]: Id of the video episode +.PP +Available for the media that is a track or a part of a music album: \- +\f[C]track\f[]: Title of the track \- \f[C]track_number\f[]: Number of +the track within an album or a disc \- \f[C]track_id\f[]: Id of the +track \- \f[C]artist\f[]: Artist(s) of the track \- \f[C]genre\f[]: +Genre(s) of the track \- \f[C]album\f[]: Title of the album the track +belongs to \- \f[C]album_type\f[]: Type of the album \- +\f[C]album_artist\f[]: List of all artists appeared on the album \- +\f[C]disc_number\f[]: Number of the disc or other physical medium the +track belongs to \- \f[C]release_year\f[]: Year (YYYY) when the album +was released +.PP +Each aforementioned sequence when referenced in an output template will +be replaced by the actual value corresponding to the sequence name. +Note that some of the sequences are not guaranteed to be present since +they depend on the metadata obtained by a particular extractor. +Such sequences will be replaced with \f[C]NA\f[]. +.PP +For example for \f[C]\-o\ %(title)s\-%(id)s.%(ext)s\f[] and an mp4 video +with title \f[C]youtube\-dl\ test\ video\f[] and id +\f[C]BaW_jenozKcj\f[], this will result in a +\f[C]youtube\-dl\ test\ video\-BaW_jenozKcj.mp4\f[] file created in the +current directory. +.PP +Output templates can also contain arbitrary hierarchical path, e.g. +\f[C]\-o\ \[aq]%(playlist)s/%(playlist_index)s\ \-\ %(title)s.%(ext)s\[aq]\f[] +which will result in downloading each video in a directory corresponding +to this path template. +Any missing directory will be automatically created for you. +.PP +To use percent literals in an output template use \f[C]%%\f[]. +To output to stdout use \f[C]\-o\ \-\f[]. +.PP +The current default template is \f[C]%(title)s\-%(id)s.%(ext)s\f[]. +.PP +In some cases, you don\[aq]t want special characters such as 中, spaces, +or &, such as when transferring the downloaded filename to a Windows +system or the filename through an 8bit\-unsafe channel. +In these cases, add the \f[C]\-\-restrict\-filenames\f[] flag to get a +shorter title: +.SS Output template and Windows batch files +.PP +If you are using an output template inside a Windows batch file then you +must escape plain percent characters (\f[C]%\f[]) by doubling, so that +\f[C]\-o\ "%(title)s\-%(id)s.%(ext)s"\f[] should become +\f[C]\-o\ "%%(title)s\-%%(id)s.%%(ext)s"\f[]. +However you should not touch \f[C]%\f[]\[aq]s that are not plain +characters, e.g. +environment variables for expansion should stay intact: +\f[C]\-o\ "C:\\%HOMEPATH%\\Desktop\\%%(title)s.%%(ext)s"\f[]. +.SS Output template examples +.PP +Note on Windows you may need to use double quotes instead of single. +.IP +.nf +\f[C] +$\ youtube\-dl\ \-\-get\-filename\ \-o\ \[aq]%(title)s.%(ext)s\[aq]\ BaW_jenozKc +youtube\-dl\ test\ video\ \[aq]\[aq]_ä↭𝕐.mp4\ \ \ \ #\ All\ kinds\ of\ weird\ characters + +$\ youtube\-dl\ \-\-get\-filename\ \-o\ \[aq]%(title)s.%(ext)s\[aq]\ BaW_jenozKc\ \-\-restrict\-filenames +youtube\-dl_test_video_.mp4\ \ \ \ \ \ \ \ \ \ #\ A\ simple\ file\ name + +#\ Download\ YouTube\ playlist\ videos\ in\ separate\ directory\ indexed\ by\ video\ order\ in\ a\ playlist +$\ youtube\-dl\ \-o\ \[aq]%(playlist)s/%(playlist_index)s\ \-\ %(title)s.%(ext)s\[aq]\ https://www.youtube.com/playlist?list=PLwiyx1dc3P2JR9N8gQaQN_BCvlSlap7re + +#\ Download\ all\ playlists\ of\ YouTube\ channel/user\ keeping\ each\ playlist\ in\ separate\ directory: +$\ youtube\-dl\ \-o\ \[aq]%(uploader)s/%(playlist)s/%(playlist_index)s\ \-\ %(title)s.%(ext)s\[aq]\ https://www.youtube.com/user/TheLinuxFoundation/playlists + +#\ Download\ Udemy\ course\ keeping\ each\ chapter\ in\ separate\ directory\ under\ MyVideos\ directory\ in\ your\ home +$\ youtube\-dl\ \-u\ user\ \-p\ password\ \-o\ \[aq]~/MyVideos/%(playlist)s/%(chapter_number)s\ \-\ %(chapter)s/%(title)s.%(ext)s\[aq]\ https://www.udemy.com/java\-tutorial/ + +#\ Download\ entire\ series\ season\ keeping\ each\ series\ and\ each\ season\ in\ separate\ directory\ under\ C:/MyVideos +$\ youtube\-dl\ \-o\ "C:/MyVideos/%(series)s/%(season_number)s\ \-\ %(season)s/%(episode_number)s\ \-\ %(episode)s.%(ext)s"\ http://videomore.ru/kino_v_detalayah/5_sezon/367617 + +#\ Stream\ the\ video\ being\ downloaded\ to\ stdout +$\ youtube\-dl\ \-o\ \-\ BaW_jenozKc +\f[] +.fi +.SH FORMAT SELECTION +.PP +By default youtube\-dl tries to download the best available quality, +i.e. +if you want the best quality you \f[B]don\[aq]t need\f[] to pass any +special options, youtube\-dl will guess it for you by \f[B]default\f[]. +.PP +But sometimes you may want to download in a different format, for +example when you are on a slow or intermittent connection. +The key mechanism for achieving this is so\-called \f[I]format +selection\f[] based on which you can explicitly specify desired format, +select formats based on some criterion or criteria, setup precedence and +much more. +.PP +The general syntax for format selection is \f[C]\-\-format\ FORMAT\f[] +or shorter \f[C]\-f\ FORMAT\f[] where \f[C]FORMAT\f[] is a \f[I]selector +expression\f[], i.e. +an expression that describes format or formats you would like to +download. +.PP +\f[B]tl;dr:\f[] navigate me to examples (#format-selection-examples). +.PP +The simplest case is requesting a specific format, for example with +\f[C]\-f\ 22\f[] you can download the format with format code equal to +22. +You can get the list of available format codes for particular video +using \f[C]\-\-list\-formats\f[] or \f[C]\-F\f[]. +Note that these format codes are extractor specific. +.PP +You can also use a file extension (currently \f[C]3gp\f[], \f[C]aac\f[], +\f[C]flv\f[], \f[C]m4a\f[], \f[C]mp3\f[], \f[C]mp4\f[], \f[C]ogg\f[], +\f[C]wav\f[], \f[C]webm\f[] are supported) to download the best quality +format of a particular file extension served as a single file, e.g. +\f[C]\-f\ webm\f[] will download the best quality format with the +\f[C]webm\f[] extension served as a single file. +.PP +You can also use special names to select particular edge case formats: +\- \f[C]best\f[]: Select the best quality format represented by a single +file with video and audio. +\- \f[C]worst\f[]: Select the worst quality format represented by a +single file with video and audio. +\- \f[C]bestvideo\f[]: Select the best quality video\-only format (e.g. +DASH video). +May not be available. +\- \f[C]worstvideo\f[]: Select the worst quality video\-only format. +May not be available. +\- \f[C]bestaudio\f[]: Select the best quality audio only\-format. +May not be available. +\- \f[C]worstaudio\f[]: Select the worst quality audio only\-format. +May not be available. +.PP +For example, to download the worst quality video\-only format you can +use \f[C]\-f\ worstvideo\f[]. +.PP +If you want to download multiple videos and they don\[aq]t have the same +formats available, you can specify the order of preference using +slashes. +Note that slash is left\-associative, i.e. +formats on the left hand side are preferred, for example +\f[C]\-f\ 22/17/18\f[] will download format 22 if it\[aq]s available, +otherwise it will download format 17 if it\[aq]s available, otherwise it +will download format 18 if it\[aq]s available, otherwise it will +complain that no suitable formats are available for download. +.PP +If you want to download several formats of the same video use a comma as +a separator, e.g. +\f[C]\-f\ 22,17,18\f[] will download all these three formats, of course +if they are available. +Or a more sophisticated example combined with the precedence feature: +\f[C]\-f\ 136/137/mp4/bestvideo,140/m4a/bestaudio\f[]. +.PP +You can also filter the video formats by putting a condition in +brackets, as in \f[C]\-f\ "best[height=720]"\f[] (or +\f[C]\-f\ "[filesize>10M]"\f[]). +.PP +The following numeric meta fields can be used with comparisons +\f[C]<\f[], \f[C]<=\f[], \f[C]>\f[], \f[C]>=\f[], \f[C]=\f[] (equals), +\f[C]!=\f[] (not equals): \- \f[C]filesize\f[]: The number of bytes, if +known in advance \- \f[C]width\f[]: Width of the video, if known \- +\f[C]height\f[]: Height of the video, if known \- \f[C]tbr\f[]: Average +bitrate of audio and video in KBit/s \- \f[C]abr\f[]: Average audio +bitrate in KBit/s \- \f[C]vbr\f[]: Average video bitrate in KBit/s \- +\f[C]asr\f[]: Audio sampling rate in Hertz \- \f[C]fps\f[]: Frame rate +.PP +Also filtering work for comparisons \f[C]=\f[] (equals), \f[C]!=\f[] +(not equals), \f[C]^=\f[] (begins with), \f[C]$=\f[] (ends with), +\f[C]*=\f[] (contains) and following string meta fields: \- +\f[C]ext\f[]: File extension \- \f[C]acodec\f[]: Name of the audio codec +in use \- \f[C]vcodec\f[]: Name of the video codec in use \- +\f[C]container\f[]: Name of the container format \- \f[C]protocol\f[]: +The protocol that will be used for the actual download, lower\-case +(\f[C]http\f[], \f[C]https\f[], \f[C]rtsp\f[], \f[C]rtmp\f[], +\f[C]rtmpe\f[], \f[C]mms\f[], \f[C]f4m\f[], \f[C]ism\f[], \f[C]m3u8\f[], +or \f[C]m3u8_native\f[]) \- \f[C]format_id\f[]: A short description of +the format +.PP +Note that none of the aforementioned meta fields are guaranteed to be +present since this solely depends on the metadata obtained by particular +extractor, i.e. +the metadata offered by the video hoster. +.PP +Formats for which the value is not known are excluded unless you put a +question mark (\f[C]?\f[]) after the operator. +You can combine format filters, so +\f[C]\-f\ "[height\ <=?\ 720][tbr>500]"\f[] selects up to 720p videos +(or videos where the height is not known) with a bitrate of at least 500 +KBit/s. +.PP +You can merge the video and audio of two formats into a single file +using \f[C]\-f\ <video\-format>+<audio\-format>\f[] (requires ffmpeg or +avconv installed), for example \f[C]\-f\ bestvideo+bestaudio\f[] will +download the best video\-only format, the best audio\-only format and +mux them together with ffmpeg/avconv. +.PP +Format selectors can also be grouped using parentheses, for example if +you want to download the best mp4 and webm formats with a height lower +than 480 you can use \f[C]\-f\ \[aq](mp4,webm)[height<480]\[aq]\f[]. +.PP +Since the end of April 2015 and version 2015.04.26, youtube\-dl uses +\f[C]\-f\ bestvideo+bestaudio/best\f[] as the default format selection +(see #5447 (https://github.com/rg3/youtube-dl/issues/5447), +#5456 (https://github.com/rg3/youtube-dl/issues/5456)). +If ffmpeg or avconv are installed this results in downloading +\f[C]bestvideo\f[] and \f[C]bestaudio\f[] separately and muxing them +together into a single file giving the best overall quality available. +Otherwise it falls back to \f[C]best\f[] and results in downloading the +best available quality served as a single file. +\f[C]best\f[] is also needed for videos that don\[aq]t come from YouTube +because they don\[aq]t provide the audio and video in two different +files. +If you want to only download some DASH formats (for example if you are +not interested in getting videos with a resolution higher than 1080p), +you can add \f[C]\-f\ bestvideo[height<=?1080]+bestaudio/best\f[] to +your configuration file. +Note that if you use youtube\-dl to stream to \f[C]stdout\f[] (and most +likely to pipe it to your media player then), i.e. +you explicitly specify output template as \f[C]\-o\ \-\f[], youtube\-dl +still uses \f[C]\-f\ best\f[] format selection in order to start content +delivery immediately to your player and not to wait until +\f[C]bestvideo\f[] and \f[C]bestaudio\f[] are downloaded and muxed. +.PP +If you want to preserve the old format selection behavior (prior to +youtube\-dl 2015.04.26), i.e. +you want to download the best available quality media served as a single +file, you should explicitly specify your choice with \f[C]\-f\ best\f[]. +You may want to add it to the configuration file (#configuration) in +order not to type it every time you run youtube\-dl. +.SS Format selection examples +.PP +Note on Windows you may need to use double quotes instead of single. +.IP +.nf +\f[C] +#\ Download\ best\ mp4\ format\ available\ or\ any\ other\ best\ if\ no\ mp4\ available +$\ youtube\-dl\ \-f\ \[aq]bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]/best\[aq] + +#\ Download\ best\ format\ available\ but\ not\ better\ that\ 480p +$\ youtube\-dl\ \-f\ \[aq]bestvideo[height<=480]+bestaudio/best[height<=480]\[aq] + +#\ Download\ best\ video\ only\ format\ but\ no\ bigger\ than\ 50\ MB +$\ youtube\-dl\ \-f\ \[aq]best[filesize<50M]\[aq] + +#\ Download\ best\ format\ available\ via\ direct\ link\ over\ HTTP/HTTPS\ protocol +$\ youtube\-dl\ \-f\ \[aq](bestvideo+bestaudio/best)[protocol^=http]\[aq] + +#\ Download\ the\ best\ video\ format\ and\ the\ best\ audio\ format\ without\ merging\ them +$\ youtube\-dl\ \-f\ \[aq]bestvideo,bestaudio\[aq]\ \-o\ \[aq]%(title)s.f%(format_id)s.%(ext)s\[aq] +\f[] +.fi +.PP +Note that in the last example, an output template is recommended as +bestvideo and bestaudio may have the same file name. +.SH VIDEO SELECTION +.PP +Videos can be filtered by their upload date using the options +\f[C]\-\-date\f[], \f[C]\-\-datebefore\f[] or \f[C]\-\-dateafter\f[]. +They accept dates in two formats: +.IP \[bu] 2 +Absolute dates: Dates in the format \f[C]YYYYMMDD\f[]. +.IP \[bu] 2 +Relative dates: Dates in the format +\f[C](now|today)[+\-][0\-9](day|week|month|year)(s)?\f[] +.PP +Examples: +.IP +.nf +\f[C] +#\ Download\ only\ the\ videos\ uploaded\ in\ the\ last\ 6\ months +$\ youtube\-dl\ \-\-dateafter\ now\-6months + +#\ Download\ only\ the\ videos\ uploaded\ on\ January\ 1,\ 1970 +$\ youtube\-dl\ \-\-date\ 19700101 + +$\ #\ Download\ only\ the\ videos\ uploaded\ in\ the\ 200x\ decade +$\ youtube\-dl\ \-\-dateafter\ 20000101\ \-\-datebefore\ 20091231 +\f[] +.fi +.SH FAQ +.SS How do I update youtube\-dl? +.PP +If you\[aq]ve followed our manual installation +instructions (http://rg3.github.io/youtube-dl/download.html), you can +simply run \f[C]youtube\-dl\ \-U\f[] (or, on Linux, +\f[C]sudo\ youtube\-dl\ \-U\f[]). +.PP +If you have used pip, a simple +\f[C]sudo\ pip\ install\ \-U\ youtube\-dl\f[] is sufficient to update. +.PP +If you have installed youtube\-dl using a package manager like +\f[I]apt\-get\f[] or \f[I]yum\f[], use the standard system update +mechanism to update. +Note that distribution packages are often outdated. +As a rule of thumb, youtube\-dl releases at least once a month, and +often weekly or even daily. +Simply go to http://yt\-dl.org/ to find out the current version. +Unfortunately, there is nothing we youtube\-dl developers can do if your +distribution serves a really outdated version. +You can (and should) complain to your distribution in their bugtracker +or support forum. +.PP +As a last resort, you can also uninstall the version installed by your +package manager and follow our manual installation instructions. +For that, remove the distribution\[aq]s package, with a line like +.IP +.nf +\f[C] +sudo\ apt\-get\ remove\ \-y\ youtube\-dl +\f[] +.fi +.PP +Afterwards, simply follow our manual installation +instructions (http://rg3.github.io/youtube-dl/download.html): +.IP +.nf +\f[C] +sudo\ wget\ https://yt\-dl.org/latest/youtube\-dl\ \-O\ /usr/local/bin/youtube\-dl +sudo\ chmod\ a+x\ /usr/local/bin/youtube\-dl +hash\ \-r +\f[] +.fi +.PP +Again, from then on you\[aq]ll be able to update with +\f[C]sudo\ youtube\-dl\ \-U\f[]. +.SS youtube\-dl is extremely slow to start on Windows +.PP +Add a file exclusion for \f[C]youtube\-dl.exe\f[] in Windows Defender +settings. +.SS I\[aq]m getting an error +\f[C]Unable\ to\ extract\ OpenGraph\ title\f[] on YouTube playlists +.PP +YouTube changed their playlist format in March 2014 and later on, so +you\[aq]ll need at least youtube\-dl 2014.07.25 to download all YouTube +videos. +.PP +If you have installed youtube\-dl with a package manager, pip, setup.py +or a tarball, please use that to update. +Note that Ubuntu packages do not seem to get updated anymore. +Since we are not affiliated with Ubuntu, there is little we can do. +Feel free to report +bugs (https://bugs.launchpad.net/ubuntu/+source/youtube-dl/+filebug) to +the Ubuntu packaging +people (mailto:ubuntu-motu@lists.ubuntu.com?subject=outdated%20version%20of%20youtube-dl) +\- all they have to do is update the package to a somewhat recent +version. +See above for a way to update. +.SS I\[aq]m getting an error when trying to use output template: +\f[C]error:\ using\ output\ template\ conflicts\ with\ using\ title,\ video\ ID\ or\ auto\ number\f[] +.PP +Make sure you are not using \f[C]\-o\f[] with any of these options +\f[C]\-t\f[], \f[C]\-\-title\f[], \f[C]\-\-id\f[], \f[C]\-A\f[] or +\f[C]\-\-auto\-number\f[] set in command line or in a configuration +file. +Remove the latter if any. +.SS Do I always have to pass \f[C]\-citw\f[]? +.PP +By default, youtube\-dl intends to have the best options (incidentally, +if you have a convincing case that these should be different, please +file an issue where you explain that (https://yt-dl.org/bug)). +Therefore, it is unnecessary and sometimes harmful to copy long option +strings from webpages. +In particular, the only option out of \f[C]\-citw\f[] that is regularly +useful is \f[C]\-i\f[]. +.SS Can you please put the \f[C]\-b\f[] option back? +.PP +Most people asking this question are not aware that youtube\-dl now +defaults to downloading the highest available quality as reported by +YouTube, which will be 1080p or 720p in some cases, so you no longer +need the \f[C]\-b\f[] option. +For some specific videos, maybe YouTube does not report them to be +available in a specific high quality format you\[aq]re interested in. +In that case, simply request it with the \f[C]\-f\f[] option and +youtube\-dl will try to download it. +.SS I get HTTP error 402 when trying to download a video. What\[aq]s +this? +.PP +Apparently YouTube requires you to pass a CAPTCHA test if you download +too much. +We\[aq]re considering to provide a way to let you solve the +CAPTCHA (https://github.com/rg3/youtube-dl/issues/154), but at the +moment, your best course of action is pointing a web browser to the +youtube URL, solving the CAPTCHA, and restart youtube\-dl. +.SS Do I need any other programs? +.PP +youtube\-dl works fine on its own on most sites. +However, if you want to convert video/audio, you\[aq]ll need +avconv (https://libav.org/) or ffmpeg (https://www.ffmpeg.org/). +On some sites \- most notably YouTube \- videos can be retrieved in a +higher quality format without sound. +youtube\-dl will detect whether avconv/ffmpeg is present and +automatically pick the best option. +.PP +Videos or video formats streamed via RTMP protocol can only be +downloaded when rtmpdump (https://rtmpdump.mplayerhq.hu/) is installed. +Downloading MMS and RTSP videos requires either +mplayer (http://mplayerhq.hu/) or mpv (https://mpv.io/) to be installed. +.SS I have downloaded a video but how can I play it? +.PP +Once the video is fully downloaded, use any video player, such as +mpv (https://mpv.io/), vlc (http://www.videolan.org/) or +mplayer (http://www.mplayerhq.hu/). +.SS I extracted a video URL with \f[C]\-g\f[], but it does not play on +another machine / in my web browser. +.PP +It depends a lot on the service. +In many cases, requests for the video (to download/play it) must come +from the same IP address and with the same cookies and/or HTTP headers. +Use the \f[C]\-\-cookies\f[] option to write the required cookies into a +file, and advise your downloader to read cookies from that file. +Some sites also require a common user agent to be used, use +\f[C]\-\-dump\-user\-agent\f[] to see the one in use by youtube\-dl. +You can also get necessary cookies and HTTP headers from JSON output +obtained with \f[C]\-\-dump\-json\f[]. +.PP +It may be beneficial to use IPv6; in some cases, the restrictions are +only applied to IPv4. +Some services (sometimes only for a subset of videos) do not restrict +the video URL by IP address, cookie, or user\-agent, but these are the +exception rather than the rule. +.PP +Please bear in mind that some URL protocols are \f[B]not\f[] supported +by browsers out of the box, including RTMP. +If you are using \f[C]\-g\f[], your own downloader must support these as +well. +.PP +If you want to play the video on a machine that is not running +youtube\-dl, you can relay the video content from the machine that runs +youtube\-dl. +You can use \f[C]\-o\ \-\f[] to let youtube\-dl stream a video to +stdout, or simply allow the player to download the files written by +youtube\-dl in turn. +.SS ERROR: no fmt_url_map or conn information found in video info +.PP +YouTube has switched to a new video info format in July 2011 which is +not supported by old versions of youtube\-dl. +See above (#how-do-i-update-youtube-dl) for how to update youtube\-dl. +.SS ERROR: unable to download video +.PP +YouTube requires an additional signature since September 2012 which is +not supported by old versions of youtube\-dl. +See above (#how-do-i-update-youtube-dl) for how to update youtube\-dl. +.SS Video URL contains an ampersand and I\[aq]m getting some strange +output \f[C][1]\ 2839\f[] or +\f[C]\[aq]v\[aq]\ is\ not\ recognized\ as\ an\ internal\ or\ external\ command\f[] +.PP +That\[aq]s actually the output from your shell. +Since ampersand is one of the special shell characters it\[aq]s +interpreted by the shell preventing you from passing the whole URL to +youtube\-dl. +To disable your shell from interpreting the ampersands (or any other +special characters) you have to either put the whole URL in quotes or +escape them with a backslash (which approach will work depends on your +shell). +.PP +For example if your URL is +https://www.youtube.com/watch?t=4&v=BaW_jenozKc you should end up with +following command: +.PP +\f[C]youtube\-dl\ \[aq]https://www.youtube.com/watch?t=4&v=BaW_jenozKc\[aq]\f[] +.PP +or +.PP +\f[C]youtube\-dl\ https://www.youtube.com/watch?t=4\\&v=BaW_jenozKc\f[] +.PP +For Windows you have to use the double quotes: +.PP +\f[C]youtube\-dl\ "https://www.youtube.com/watch?t=4&v=BaW_jenozKc"\f[] +.SS ExtractorError: Could not find JS function u\[aq]OF\[aq] +.PP +In February 2015, the new YouTube player contained a character sequence +in a string that was misinterpreted by old versions of youtube\-dl. +See above (#how-do-i-update-youtube-dl) for how to update youtube\-dl. +.SS HTTP Error 429: Too Many Requests or 402: Payment Required +.PP +These two error codes indicate that the service is blocking your IP +address because of overuse. +Contact the service and ask them to unblock your IP address, or \- if +you have acquired a whitelisted IP address already \- use the +\f[C]\-\-proxy\f[] or \f[C]\-\-source\-address\f[] +options (#network-options) to select another IP address. +.SS SyntaxError: Non\-ASCII character +.PP +The error +.IP +.nf +\f[C] +File\ "youtube\-dl",\ line\ 2 +SyntaxError:\ Non\-ASCII\ character\ \[aq]\\x93\[aq]\ ... +\f[] +.fi +.PP +means you\[aq]re using an outdated version of Python. +Please update to Python 2.6 or 2.7. +.SS What is this binary file? Where has the code gone? +.PP +Since June 2012 (#342 (https://github.com/rg3/youtube-dl/issues/342)) +youtube\-dl is packed as an executable zipfile, simply unzip it (might +need renaming to \f[C]youtube\-dl.zip\f[] first on some systems) or +clone the git repository, as laid out above. +If you modify the code, you can run it by executing the +\f[C]__main__.py\f[] file. +To recompile the executable, run \f[C]make\ youtube\-dl\f[]. +.SS The exe throws an error due to missing \f[C]MSVCR100.dll\f[] +.PP +To run the exe you need to install first the Microsoft Visual C++ 2010 +Redistributable Package +(x86) (https://www.microsoft.com/en-US/download/details.aspx?id=5555). +.SS On Windows, how should I set up ffmpeg and youtube\-dl? Where should +I put the exe files? +.PP +If you put youtube\-dl and ffmpeg in the same directory that you\[aq]re +running the command from, it will work, but that\[aq]s rather +cumbersome. +.PP +To make a different directory work \- either for ffmpeg, or for +youtube\-dl, or for both \- simply create the directory (say, +\f[C]C:\\bin\f[], or \f[C]C:\\Users\\<User\ name>\\bin\f[]), put all the +executables directly in there, and then set your PATH environment +variable (https://www.java.com/en/download/help/path.xml) to include +that directory. +.PP +From then on, after restarting your shell, you will be able to access +both youtube\-dl and ffmpeg (and youtube\-dl will be able to find +ffmpeg) by simply typing \f[C]youtube\-dl\f[] or \f[C]ffmpeg\f[], no +matter what directory you\[aq]re in. +.SS How do I put downloads into a specific folder? +.PP +Use the \f[C]\-o\f[] to specify an output template (#output-template), +for example \f[C]\-o\ "/home/user/videos/%(title)s\-%(id)s.%(ext)s"\f[]. +If you want this for all of your downloads, put the option into your +configuration file (#configuration). +.SS How do I download a video starting with a \f[C]\-\f[]? +.PP +Either prepend \f[C]http://www.youtube.com/watch?v=\f[] or separate the +ID from the options with \f[C]\-\-\f[]: +.IP +.nf +\f[C] +youtube\-dl\ \-\-\ \-wNyEUrxzFU +youtube\-dl\ "http://www.youtube.com/watch?v=\-wNyEUrxzFU" +\f[] +.fi +.SS How do I pass cookies to youtube\-dl? +.PP +Use the \f[C]\-\-cookies\f[] option, for example +\f[C]\-\-cookies\ /path/to/cookies/file.txt\f[]. +.PP +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). +.PP +Note that the cookies file must be in Mozilla/Netscape format and the +first line of the cookies file must be either +\f[C]#\ HTTP\ Cookie\ File\f[] or +\f[C]#\ Netscape\ HTTP\ Cookie\ File\f[]. +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 +\f[C]CRLF\f[] (\f[C]\\r\\n\f[]) for Windows and \f[C]LF\f[] +(\f[C]\\n\f[]) for Unix and Unix\-like systems (Linux, Mac OS, etc.). +\f[C]HTTP\ Error\ 400:\ Bad\ Request\f[] when using \f[C]\-\-cookies\f[] +is a good sign of invalid newline format. +.PP +Passing cookies to youtube\-dl is a good way to workaround login when a +particular extractor does not implement it explicitly. +Another use case is working around +CAPTCHA (https://en.wikipedia.org/wiki/CAPTCHA) some websites require +you to solve in particular cases in order to get access (e.g. +YouTube, CloudFlare). +.SS How do I stream directly to media player? +.PP +You will first need to tell youtube\-dl to stream media to stdout with +\f[C]\-o\ \-\f[], and also tell your media player to read from stdin (it +must be capable of this for streaming) and then pipe former to latter. +For example, streaming to vlc (http://www.videolan.org/) can be achieved +with: +.IP +.nf +\f[C] +youtube\-dl\ \-o\ \-\ "http://www.youtube.com/watch?v=BaW_jenozKcj"\ |\ vlc\ \- +\f[] +.fi +.SS How do I download only new videos from a playlist? +.PP +Use download\-archive feature. +With this feature you should initially download the complete playlist +with \f[C]\-\-download\-archive\ /path/to/download/archive/file.txt\f[] +that will record identifiers of all the videos in a special file. +Each subsequent run with the same \f[C]\-\-download\-archive\f[] will +download only new videos and skip all videos that have been downloaded +before. +Note that only successful downloads are recorded in the file. +.PP +For example, at first, +.IP +.nf +\f[C] +youtube\-dl\ \-\-download\-archive\ archive.txt\ "https://www.youtube.com/playlist?list=PLwiyx1dc3P2JR9N8gQaQN_BCvlSlap7re" +\f[] +.fi +.PP +will download the complete \f[C]PLwiyx1dc3P2JR9N8gQaQN_BCvlSlap7re\f[] +playlist and create a file \f[C]archive.txt\f[]. +Each subsequent run will only download new videos if any: +.IP +.nf +\f[C] +youtube\-dl\ \-\-download\-archive\ archive.txt\ "https://www.youtube.com/playlist?list=PLwiyx1dc3P2JR9N8gQaQN_BCvlSlap7re" +\f[] +.fi +.SS Should I add \f[C]\-\-hls\-prefer\-native\f[] into my config? +.PP +When youtube\-dl detects an HLS video, it can download it either with +the built\-in downloader or ffmpeg. +Since many HLS streams are slightly invalid and ffmpeg/youtube\-dl each +handle some invalid cases better than the other, there is an option to +switch the downloader if needed. +.PP +When youtube\-dl knows that one particular downloader works better for a +given website, that downloader will be picked. +Otherwise, youtube\-dl will pick the best downloader for general +compatibility, which at the moment happens to be ffmpeg. +This choice may change in future versions of youtube\-dl, with +improvements of the built\-in downloader and/or ffmpeg. +.PP +In particular, the generic extractor (used when your website is not in +the list of supported sites by +youtube\-dl (http://rg3.github.io/youtube-dl/supportedsites.html) cannot +mandate one specific downloader. +.PP +If you put either \f[C]\-\-hls\-prefer\-native\f[] or +\f[C]\-\-hls\-prefer\-ffmpeg\f[] into your configuration, a different +subset of videos will fail to download correctly. +Instead, it is much better to file an issue (https://yt-dl.org/bug) or a +pull request which details why the native or the ffmpeg HLS downloader +is a better choice for your use case. +.SS Can you add support for this anime video site, or site which shows +current movies for free? +.PP +As a matter of policy (as well as legality), youtube\-dl does not +include support for services that specialize in infringing copyright. +As a rule of thumb, if you cannot easily find a video that the service +is quite obviously allowed to distribute (i.e. +that has been uploaded by the creator, the creator\[aq]s distributor, or +is published under a free license), the service is probably unfit for +inclusion to youtube\-dl. +.PP +A note on the service that they don\[aq]t host the infringing content, +but just link to those who do, is evidence that the service should +\f[B]not\f[] be included into youtube\-dl. +The same goes for any DMCA note when the whole front page of the service +is filled with videos they are not allowed to distribute. +A "fair use" note is equally unconvincing if the service shows +copyright\-protected videos in full without authorization. +.PP +Support requests for services that \f[B]do\f[] purchase the rights to +distribute their content are perfectly fine though. +If in doubt, you can simply include a source that mentions the +legitimate purchase of content. +.SS How can I speed up work on my issue? +.PP +(Also known as: Help, my important issue not being solved!) The +youtube\-dl core developer team is quite small. +While we do our best to solve as many issues as possible, sometimes that +can take quite a while. +To speed up your issue, here\[aq]s what you can do: +.PP +First of all, please do report the issue at our issue +tracker (https://yt-dl.org/bugs). +That allows us to coordinate all efforts by users and developers, and +serves as a unified point. +Unfortunately, the youtube\-dl project has grown too large to use +personal email as an effective communication channel. +.PP +Please read the bug reporting instructions (#bugs) below. +A lot of bugs lack all the necessary information. +If you can, offer proxy, VPN, or shell access to the youtube\-dl +developers. +If you are able to, test the issue from multiple computers in multiple +countries to exclude local censorship or misconfiguration issues. +.PP +If nobody is interested in solving your issue, you are welcome to take +matters into your own hands and submit a pull request (or coerce/pay +somebody else to do so). +.PP +Feel free to bump the issue from time to time by writing a small comment +("Issue is still present in youtube\-dl version ...from France, but +fixed from Belgium"), but please not more than once a month. +Please do not declare your issue as \f[C]important\f[] or +\f[C]urgent\f[]. +.SS How can I detect whether a given URL is supported by youtube\-dl? +.PP +For one, have a look at the list of supported +sites (docs/supportedsites.md). +Note that it can sometimes happen that the site changes its URL scheme +(say, from http://example.com/video/1234567 to +http://example.com/v/1234567 ) and youtube\-dl reports an URL of a +service in that list as unsupported. +In that case, simply report a bug. +.PP +It is \f[I]not\f[] possible to detect whether a URL is supported or not. +That\[aq]s because youtube\-dl contains a generic extractor which +matches \f[B]all\f[] URLs. +You may be tempted to disable, exclude, or remove the generic extractor, +but the generic extractor not only allows users to extract videos from +lots of websites that embed a video from another service, but may also +be used to extract video from a service that it\[aq]s hosting itself. +Therefore, we neither recommend nor support disabling, excluding, or +removing the generic extractor. +.PP +If you want to find out whether a given URL is supported, simply call +youtube\-dl with it. +If you get no videos back, chances are the URL is either not referring +to a video or unsupported. +You can find out which by examining the output (if you run youtube\-dl +on the console) or catching an \f[C]UnsupportedError\f[] exception if +you run it from a Python program. +.SH Why do I need to go through that much red tape when filing bugs? +.PP +Before we had the issue template, despite our extensive bug reporting +instructions (#bugs), about 80% of the issue reports we got were +useless, for instance because people used ancient versions hundreds of +releases old, because of simple syntactic errors (not in youtube\-dl but +in general shell usage), because the problem was already reported +multiple times before, because people did not actually read an error +message, even if it said "please install ffmpeg", because people did not +mention the URL they were trying to download and many more simple, +easy\-to\-avoid problems, many of whom were totally unrelated to +youtube\-dl. +.PP +youtube\-dl is an open\-source project manned by too few volunteers, so +we\[aq]d rather spend time fixing bugs where we are certain none of +those simple problems apply, and where we can be reasonably confident to +be able to reproduce the issue without asking the reporter repeatedly. +As such, the output of \f[C]youtube\-dl\ \-v\ YOUR_URL_HERE\f[] is +really all that\[aq]s required to file an issue. +The issue template also guides you through some basic steps you can do, +such as checking that your version of youtube\-dl is current. +.SH DEVELOPER INSTRUCTIONS +.PP +Most users do not need to build youtube\-dl and can download the +builds (http://rg3.github.io/youtube-dl/download.html) or get them from +their distribution. +.PP +To run youtube\-dl as a developer, you don\[aq]t need to build anything +either. +Simply execute +.IP +.nf +\f[C] +python\ \-m\ youtube_dl +\f[] +.fi +.PP +To run the test, simply invoke your favorite test runner, or execute a +test file directly; any of the following work: +.IP +.nf +\f[C] +python\ \-m\ unittest\ discover +python\ test/test_download.py +nosetests +\f[] +.fi +.PP +If you want to create a build of youtube\-dl yourself, you\[aq]ll need +.IP \[bu] 2 +python +.IP \[bu] 2 +make (only GNU make is supported) +.IP \[bu] 2 +pandoc +.IP \[bu] 2 +zip +.IP \[bu] 2 +nosetests +.SS Adding support for a new site +.PP +If you want to add support for a new site, first of all \f[B]make +sure\f[] this site is \f[B]not dedicated to copyright +infringement (README.md#can-you-add-support-for-this-anime-video-site-or-site-which-shows-current-movies-for-free)\f[]. +youtube\-dl does \f[B]not support\f[] such sites thus pull requests +adding support for them \f[B]will be rejected\f[]. +.PP +After you have ensured this site is distributing its content legally, +you can follow this quick list (assuming your service is called +\f[C]yourextractor\f[]): +.IP " 1." 4 +Fork this repository (https://github.com/rg3/youtube-dl/fork) +.IP " 2." 4 +Check out the source code with: +.RS 4 +.IP +.nf +\f[C] +git\ clone\ git\@github.com:YOUR_GITHUB_USERNAME/youtube\-dl.git +\f[] +.fi +.RE +.IP " 3." 4 +Start a new git branch with +.RS 4 +.IP +.nf +\f[C] +cd\ youtube\-dl +git\ checkout\ \-b\ yourextractor +\f[] +.fi +.RE +.IP " 4." 4 +Start with this simple template and save it to +\f[C]youtube_dl/extractor/yourextractor.py\f[]: +.RS 4 +.IP +.nf +\f[C] +#\ coding:\ utf\-8 +from\ __future__\ import\ unicode_literals + +from\ .common\ import\ InfoExtractor + + +class\ YourExtractorIE(InfoExtractor): +\ \ \ \ _VALID_URL\ =\ r\[aq]https?://(?:www\\.)?yourextractor\\.com/watch/(?P<id>[0\-9]+)\[aq] +\ \ \ \ _TEST\ =\ { +\ \ \ \ \ \ \ \ \[aq]url\[aq]:\ \[aq]http://yourextractor.com/watch/42\[aq], +\ \ \ \ \ \ \ \ \[aq]md5\[aq]:\ \[aq]TODO:\ md5\ sum\ of\ the\ first\ 10241\ bytes\ of\ the\ video\ file\ (use\ \-\-test)\[aq], +\ \ \ \ \ \ \ \ \[aq]info_dict\[aq]:\ { +\ \ \ \ \ \ \ \ \ \ \ \ \[aq]id\[aq]:\ \[aq]42\[aq], +\ \ \ \ \ \ \ \ \ \ \ \ \[aq]ext\[aq]:\ \[aq]mp4\[aq], +\ \ \ \ \ \ \ \ \ \ \ \ \[aq]title\[aq]:\ \[aq]Video\ title\ goes\ here\[aq], +\ \ \ \ \ \ \ \ \ \ \ \ \[aq]thumbnail\[aq]:\ r\[aq]re:^https?://.*\\.jpg$\[aq], +\ \ \ \ \ \ \ \ \ \ \ \ #\ TODO\ more\ properties,\ either\ as: +\ \ \ \ \ \ \ \ \ \ \ \ #\ *\ A\ value +\ \ \ \ \ \ \ \ \ \ \ \ #\ *\ MD5\ checksum;\ start\ the\ string\ with\ md5: +\ \ \ \ \ \ \ \ \ \ \ \ #\ *\ A\ regular\ expression;\ start\ the\ string\ with\ re: +\ \ \ \ \ \ \ \ \ \ \ \ #\ *\ Any\ Python\ type\ (for\ example\ int\ or\ float) +\ \ \ \ \ \ \ \ } +\ \ \ \ } + +\ \ \ \ def\ _real_extract(self,\ url): +\ \ \ \ \ \ \ \ video_id\ =\ self._match_id(url) +\ \ \ \ \ \ \ \ webpage\ =\ self._download_webpage(url,\ video_id) + +\ \ \ \ \ \ \ \ #\ TODO\ more\ code\ goes\ here,\ for\ example\ ... +\ \ \ \ \ \ \ \ title\ =\ self._html_search_regex(r\[aq]<h1>(.+?)</h1>\[aq],\ webpage,\ \[aq]title\[aq]) + +\ \ \ \ \ \ \ \ return\ { +\ \ \ \ \ \ \ \ \ \ \ \ \[aq]id\[aq]:\ video_id, +\ \ \ \ \ \ \ \ \ \ \ \ \[aq]title\[aq]:\ title, +\ \ \ \ \ \ \ \ \ \ \ \ \[aq]description\[aq]:\ self._og_search_description(webpage), +\ \ \ \ \ \ \ \ \ \ \ \ \[aq]uploader\[aq]:\ self._search_regex(r\[aq]<div[^>]+id="uploader"[^>]*>([^<]+)<\[aq],\ webpage,\ \[aq]uploader\[aq],\ fatal=False), +\ \ \ \ \ \ \ \ \ \ \ \ #\ TODO\ more\ properties\ (see\ youtube_dl/extractor/common.py) +\ \ \ \ \ \ \ \ } +\f[] +.fi +.RE +.IP " 5." 4 +Add an import in +\f[C]youtube_dl/extractor/extractors.py\f[] (https://github.com/rg3/youtube-dl/blob/master/youtube_dl/extractor/extractors.py). +.IP " 6." 4 +Run +\f[C]python\ test/test_download.py\ TestDownload.test_YourExtractor\f[]. +This \f[I]should fail\f[] at first, but you can continually re\-run it +until you\[aq]re done. +If you decide to add more than one test, then rename \f[C]_TEST\f[] to +\f[C]_TESTS\f[] and make it into a list of dictionaries. +The tests will then be named \f[C]TestDownload.test_YourExtractor\f[], +\f[C]TestDownload.test_YourExtractor_1\f[], +\f[C]TestDownload.test_YourExtractor_2\f[], etc. +.IP " 7." 4 +Have a look at +\f[C]youtube_dl/extractor/common.py\f[] (https://github.com/rg3/youtube-dl/blob/master/youtube_dl/extractor/common.py) +for possible helper methods and a detailed description of what your +extractor should and may +return (https://github.com/rg3/youtube-dl/blob/master/youtube_dl/extractor/common.py#L74-L252). +Add tests and code for as many as you want. +.IP " 8." 4 +Make sure your code follows youtube\-dl coding +conventions (#youtube-dl-coding-conventions) and check the code with +flake8 (https://pypi.python.org/pypi/flake8). +Also make sure your code works under all Python (http://www.python.org/) +versions claimed supported by youtube\-dl, namely 2.6, 2.7, and 3.2+. +.IP " 9." 4 +When the tests pass, add (http://git-scm.com/docs/git-add) the new files +and commit (http://git-scm.com/docs/git-commit) them and +push (http://git-scm.com/docs/git-push) the result, like this: +.RS 4 +.IP +.nf +\f[C] +$\ git\ add\ youtube_dl/extractor/extractors.py +$\ git\ add\ youtube_dl/extractor/yourextractor.py +$\ git\ commit\ \-m\ \[aq][yourextractor]\ Add\ new\ extractor\[aq] +$\ git\ push\ origin\ yourextractor +\f[] +.fi +.RE +.IP "10." 4 +Finally, create a pull +request (https://help.github.com/articles/creating-a-pull-request). +We\[aq]ll then review and merge it. +.PP +In any case, thank you very much for your contributions! +.SS youtube\-dl coding conventions +.PP +This section introduces a guide lines for writing idiomatic, robust and +future\-proof extractor code. +.PP +Extractors are very fragile by nature since they depend on the layout of +the source data provided by 3rd party media hosters out of your control +and this layout tends to change. +As an extractor implementer your task is not only to write code that +will extract media links and metadata correctly but also to minimize +dependency on the source\[aq]s layout and even to make the code foresee +potential future changes and be ready for that. +This is important because it will allow the extractor not to break on +minor layout changes thus keeping old youtube\-dl versions working. +Even though this breakage issue is easily fixed by emitting a new +version of youtube\-dl with a fix incorporated, all the previous +versions become broken in all repositories and distros\[aq] packages +that may not be so prompt in fetching the update from us. +Needless to say, some non rolling release distros may never receive an +update at all. +.SS Mandatory and optional metafields +.PP +For extraction to work youtube\-dl relies on metadata your extractor +extracts and provides to youtube\-dl expressed by an information +dictionary (https://github.com/rg3/youtube-dl/blob/master/youtube_dl/extractor/common.py#L75-L257) +or simply \f[I]info dict\f[]. +Only the following meta fields in the \f[I]info dict\f[] are considered +mandatory for a successful extraction process by youtube\-dl: +.IP \[bu] 2 +\f[C]id\f[] (media identifier) +.IP \[bu] 2 +\f[C]title\f[] (media title) +.IP \[bu] 2 +\f[C]url\f[] (media download URL) or \f[C]formats\f[] +.PP +In fact only the last option is technically mandatory (i.e. +if you can\[aq]t figure out the download location of the media the +extraction does not make any sense). +But by convention youtube\-dl also treats \f[C]id\f[] and \f[C]title\f[] +as mandatory. +Thus the aforementioned metafields are the critical data that the +extraction does not make any sense without and if any of them fail to be +extracted then the extractor is considered completely broken. +.PP +Any +field (https://github.com/rg3/youtube-dl/blob/master/youtube_dl/extractor/common.py#L149-L257) +apart from the aforementioned ones are considered \f[B]optional\f[]. +That means that extraction should be \f[B]tolerant\f[] to situations +when sources for these fields can potentially be unavailable (even if +they are always available at the moment) and \f[B]future\-proof\f[] in +order not to break the extraction of general purpose mandatory fields. +.SS Example +.PP +Say you have some source dictionary \f[C]meta\f[] that you\[aq]ve +fetched as JSON with HTTP request and it has a key \f[C]summary\f[]: +.IP +.nf +\f[C] +meta\ =\ self._download_json(url,\ video_id) +\f[] +.fi +.PP +Assume at this point \f[C]meta\f[]\[aq]s layout is: +.IP +.nf +\f[C] +{ +\ \ \ \ ... +\ \ \ \ "summary":\ "some\ fancy\ summary\ text", +\ \ \ \ ... +} +\f[] +.fi +.PP +Assume you want to extract \f[C]summary\f[] and put it into the +resulting info dict as \f[C]description\f[]. +Since \f[C]description\f[] is an optional meta field you should be ready +that this key may be missing from the \f[C]meta\f[] dict, so that you +should extract it like: +.IP +.nf +\f[C] +description\ =\ meta.get(\[aq]summary\[aq])\ \ #\ correct +\f[] +.fi +.PP +and not like: +.IP +.nf +\f[C] +description\ =\ meta[\[aq]summary\[aq]]\ \ #\ incorrect +\f[] +.fi +.PP +The latter will break extraction process with \f[C]KeyError\f[] if +\f[C]summary\f[] disappears from \f[C]meta\f[] at some later time but +with the former approach extraction will just go ahead with +\f[C]description\f[] set to \f[C]None\f[] which is perfectly fine +(remember \f[C]None\f[] is equivalent to the absence of data). +.PP +Similarly, you should pass \f[C]fatal=False\f[] when extracting optional +data from a webpage with \f[C]_search_regex\f[], +\f[C]_html_search_regex\f[] or similar methods, for instance: +.IP +.nf +\f[C] +description\ =\ self._search_regex( +\ \ \ \ r\[aq]<span[^>]+id="title"[^>]*>([^<]+)<\[aq], +\ \ \ \ webpage,\ \[aq]description\[aq],\ fatal=False) +\f[] +.fi +.PP +With \f[C]fatal\f[] set to \f[C]False\f[] if \f[C]_search_regex\f[] +fails to extract \f[C]description\f[] it will emit a warning and +continue extraction. +.PP +You can also pass \f[C]default=<some\ fallback\ value>\f[], for example: +.IP +.nf +\f[C] +description\ =\ self._search_regex( +\ \ \ \ r\[aq]<span[^>]+id="title"[^>]*>([^<]+)<\[aq], +\ \ \ \ webpage,\ \[aq]description\[aq],\ default=None) +\f[] +.fi +.PP +On failure this code will silently continue the extraction with +\f[C]description\f[] set to \f[C]None\f[]. +That is useful for metafields that may or may not be present. +.SS Provide fallbacks +.PP +When extracting metadata try to do so from multiple sources. +For example if \f[C]title\f[] is present in several places, try +extracting from at least some of them. +This makes it more future\-proof in case some of the sources become +unavailable. +.SS Example +.PP +Say \f[C]meta\f[] from the previous example has a \f[C]title\f[] and you +are about to extract it. +Since \f[C]title\f[] is a mandatory meta field you should end up with +something like: +.IP +.nf +\f[C] +title\ =\ meta[\[aq]title\[aq]] +\f[] +.fi +.PP +If \f[C]title\f[] disappears from \f[C]meta\f[] in future due to some +changes on the hoster\[aq]s side the extraction would fail since +\f[C]title\f[] is mandatory. +That\[aq]s expected. +.PP +Assume that you have some another source you can extract \f[C]title\f[] +from, for example \f[C]og:title\f[] HTML meta of a \f[C]webpage\f[]. +In this case you can provide a fallback scenario: +.IP +.nf +\f[C] +title\ =\ meta.get(\[aq]title\[aq])\ or\ self._og_search_title(webpage) +\f[] +.fi +.PP +This code will try to extract from \f[C]meta\f[] first and if it fails +it will try extracting \f[C]og:title\f[] from a \f[C]webpage\f[]. +.SS Make regular expressions flexible +.PP +When using regular expressions try to write them fuzzy and flexible. +.SS Example +.PP +Say you need to extract \f[C]title\f[] from the following HTML code: +.IP +.nf +\f[C] +<span\ style="position:\ absolute;\ left:\ 910px;\ width:\ 90px;\ float:\ right;\ z\-index:\ 9999;"\ class="title">some\ fancy\ title</span> +\f[] +.fi +.PP +The code for that task should look similar to: +.IP +.nf +\f[C] +title\ =\ self._search_regex( +\ \ \ \ r\[aq]<span[^>]+class="title"[^>]*>([^<]+)\[aq],\ webpage,\ \[aq]title\[aq]) +\f[] +.fi +.PP +Or even better: +.IP +.nf +\f[C] +title\ =\ self._search_regex( +\ \ \ \ r\[aq]<span[^>]+class=(["\\\[aq]])title\\1[^>]*>(?P<title>[^<]+)\[aq], +\ \ \ \ webpage,\ \[aq]title\[aq],\ group=\[aq]title\[aq]) +\f[] +.fi +.PP +Note how you tolerate potential changes in the \f[C]style\f[] +attribute\[aq]s value or switch from using double quotes to single for +\f[C]class\f[] attribute: +.PP +The code definitely should not look like: +.IP +.nf +\f[C] +title\ =\ self._search_regex( +\ \ \ \ r\[aq]<span\ style="position:\ absolute;\ left:\ 910px;\ width:\ 90px;\ float:\ right;\ z\-index:\ 9999;"\ class="title">(.*?)</span>\[aq], +\ \ \ \ webpage,\ \[aq]title\[aq],\ group=\[aq]title\[aq]) +\f[] +.fi +.SS Use safe conversion functions +.PP +Wrap all extracted numeric data into safe functions from \f[C]utils\f[]: +\f[C]int_or_none\f[], \f[C]float_or_none\f[]. +Use them for string to number conversions as well. +.SH EMBEDDING YOUTUBE\-DL +.PP +youtube\-dl makes the best effort to be a good command\-line program, +and thus should be callable from any programming language. +If you encounter any problems parsing its output, feel free to create a +report (https://github.com/rg3/youtube-dl/issues/new). +.PP +From a Python program, you can embed youtube\-dl in a more powerful +fashion, like this: +.IP +.nf +\f[C] +from\ __future__\ import\ unicode_literals +import\ youtube_dl + +ydl_opts\ =\ {} +with\ youtube_dl.YoutubeDL(ydl_opts)\ as\ ydl: +\ \ \ \ ydl.download([\[aq]http://www.youtube.com/watch?v=BaW_jenozKc\[aq]]) +\f[] +.fi +.PP +Most likely, you\[aq]ll want to use various options. +For a list of options available, have a look at +\f[C]youtube_dl/YoutubeDL.py\f[] (https://github.com/rg3/youtube-dl/blob/master/youtube_dl/YoutubeDL.py#L129-L279). +For a start, if you want to intercept youtube\-dl\[aq]s output, set a +\f[C]logger\f[] object. +.PP +Here\[aq]s a more complete example of a program that outputs only errors +(and a short message after the download is finished), and +downloads/converts the video to an mp3 file: +.IP +.nf +\f[C] +from\ __future__\ import\ unicode_literals +import\ youtube_dl + + +class\ MyLogger(object): +\ \ \ \ def\ debug(self,\ msg): +\ \ \ \ \ \ \ \ pass + +\ \ \ \ def\ warning(self,\ msg): +\ \ \ \ \ \ \ \ pass + +\ \ \ \ def\ error(self,\ msg): +\ \ \ \ \ \ \ \ print(msg) + + +def\ my_hook(d): +\ \ \ \ if\ d[\[aq]status\[aq]]\ ==\ \[aq]finished\[aq]: +\ \ \ \ \ \ \ \ print(\[aq]Done\ downloading,\ now\ converting\ ...\[aq]) + + +ydl_opts\ =\ { +\ \ \ \ \[aq]format\[aq]:\ \[aq]bestaudio/best\[aq], +\ \ \ \ \[aq]postprocessors\[aq]:\ [{ +\ \ \ \ \ \ \ \ \[aq]key\[aq]:\ \[aq]FFmpegExtractAudio\[aq], +\ \ \ \ \ \ \ \ \[aq]preferredcodec\[aq]:\ \[aq]mp3\[aq], +\ \ \ \ \ \ \ \ \[aq]preferredquality\[aq]:\ \[aq]192\[aq], +\ \ \ \ }], +\ \ \ \ \[aq]logger\[aq]:\ MyLogger(), +\ \ \ \ \[aq]progress_hooks\[aq]:\ [my_hook], +} +with\ youtube_dl.YoutubeDL(ydl_opts)\ as\ ydl: +\ \ \ \ ydl.download([\[aq]http://www.youtube.com/watch?v=BaW_jenozKc\[aq]]) +\f[] +.fi +.SH BUGS +.PP +Bugs and suggestions should be reported at: +<https://github.com/rg3/youtube-dl/issues>. +Unless you were prompted to or there is another pertinent reason (e.g. +GitHub fails to accept the bug report), please do not send bug reports +via personal email. +For discussions, join us in the IRC channel +#youtube\-dl (irc://chat.freenode.net/#youtube-dl) on freenode +(webchat (http://webchat.freenode.net/?randomnick=1&channels=youtube-dl)). +.PP +\f[B]Please include the full output of youtube\-dl when run with +\f[C]\-v\f[]\f[], i.e. +\f[B]add\f[] \f[C]\-v\f[] flag to \f[B]your command line\f[], copy the +\f[B]whole\f[] output and post it in the issue body wrapped in ``` for +better formatting. +It should look similar to this: +.IP +.nf +\f[C] +$\ youtube\-dl\ \-v\ <your\ command\ line> +[debug]\ System\ config:\ [] +[debug]\ User\ config:\ [] +[debug]\ Command\-line\ args:\ [u\[aq]\-v\[aq],\ u\[aq]http://www.youtube.com/watch?v=BaW_jenozKcj\[aq]] +[debug]\ Encodings:\ locale\ cp1251,\ fs\ mbcs,\ out\ cp866,\ pref\ cp1251 +[debug]\ youtube\-dl\ version\ 2015.12.06 +[debug]\ Git\ HEAD:\ 135392e +[debug]\ Python\ version\ 2.6.6\ \-\ Windows\-2003Server\-5.2.3790\-SP2 +[debug]\ exe\ versions:\ ffmpeg\ N\-75573\-g1d0487f,\ ffprobe\ N\-75573\-g1d0487f,\ rtmpdump\ 2.4 +[debug]\ Proxy\ map:\ {} +\&... +\f[] +.fi +.PP +\f[B]Do not post screenshots of verbose logs; only plain text is +acceptable.\f[] +.PP +The output (including the first lines) contains important debugging +information. +Issues without the full output are often not reproducible and therefore +do not get solved in short order, if ever. +.PP +Please re\-read your issue once again to avoid a couple of common +mistakes (you can and should use this as a checklist): +.SS Is the description of the issue itself sufficient? +.PP +We often get issue reports that we cannot really decipher. +While in most cases we eventually get the required information after +asking back multiple times, this poses an unnecessary drain on our +resources. +Many contributors, including myself, are also not native speakers, so we +may misread some parts. +.PP +So please elaborate on what feature you are requesting, or what bug you +want to be fixed. +Make sure that it\[aq]s obvious +.IP \[bu] 2 +What the problem is +.IP \[bu] 2 +How it could be fixed +.IP \[bu] 2 +How your proposed solution would look like +.PP +If your report is shorter than two lines, it is almost certainly missing +some of these, which makes it hard for us to respond to it. +We\[aq]re often too polite to close the issue outright, but the missing +info makes misinterpretation likely. +As a committer myself, I often get frustrated by these issues, since the +only possible way for me to move forward on them is to ask for +clarification over and over. +.PP +For bug reports, this means that your report should contain the +\f[I]complete\f[] output of youtube\-dl when called with the +\f[C]\-v\f[] flag. +The error message you get for (most) bugs even says so, but you would +not believe how many of our bug reports do not contain this information. +.PP +If your server has multiple IPs or you suspect censorship, adding +\f[C]\-\-call\-home\f[] may be a good idea to get more diagnostics. +If the error is \f[C]ERROR:\ Unable\ to\ extract\ ...\f[] and you cannot +reproduce it from multiple countries, add \f[C]\-\-dump\-pages\f[] +(warning: this will yield a rather large output, redirect it to the file +\f[C]log.txt\f[] by adding \f[C]>log.txt\ 2>&1\f[] to your +command\-line) or upload the \f[C]\&.dump\f[] files you get when you add +\f[C]\-\-write\-pages\f[] somewhere (https://gist.github.com/). +.PP +\f[B]Site support requests must contain an example URL\f[]. +An example URL is a URL you might want to download, like +\f[C]http://www.youtube.com/watch?v=BaW_jenozKc\f[]. +There should be an obvious video present. +Except under very special circumstances, the main page of a video +service (e.g. +\f[C]http://www.youtube.com/\f[]) is \f[I]not\f[] an example URL. +.SS Are you using the latest version? +.PP +Before reporting any issue, type \f[C]youtube\-dl\ \-U\f[]. +This should report that you\[aq]re up\-to\-date. +About 20% of the reports we receive are already fixed, but people are +using outdated versions. +This goes for feature requests as well. +.SS Is the issue already documented? +.PP +Make sure that someone has not already opened the issue you\[aq]re +trying to open. +Search at the top of the window or browse the GitHub +Issues (https://github.com/rg3/youtube-dl/search?type=Issues) of this +repository. +If there is an issue, feel free to write something along the lines of +"This affects me as well, with version 2015.01.01. +Here is some more information on the issue: ...". +While some issues may be old, a new post into them often spurs rapid +activity. +.SS Why are existing options not enough? +.PP +Before requesting a new feature, please have a quick peek at the list of +supported +options (https://github.com/rg3/youtube-dl/blob/master/README.md#options). +Many feature requests are for features that actually exist already! +Please, absolutely do show off your work in the issue report and detail +how the existing similar options do \f[I]not\f[] solve your problem. +.SS Is there enough context in your bug report? +.PP +People want to solve problems, and often think they do us a favor by +breaking down their larger problems (e.g. +wanting to skip already downloaded files) to a specific request (e.g. +requesting us to look whether the file exists before downloading the +info page). +However, what often happens is that they break down the problem into two +steps: One simple, and one impossible (or extremely complicated one). +.PP +We are then presented with a very complicated request when the original +problem could be solved far easier, e.g. +by recording the downloaded video IDs in a separate file. +To avoid this, you must include the greater context where it is +non\-obvious. +In particular, every feature request that does not consist of adding +support for a new site should contain a use case scenario that explains +in what situation the missing feature would be useful. +.SS Does the issue involve one problem, and one problem only? +.PP +Some of our users seem to think there is a limit of issues they can or +should open. +There is no limit of issues they can or should open. +While it may seem appealing to be able to dump all your issues into one +ticket, that means that someone who solves one of your issues cannot +mark the issue as closed. +Typically, reporting a bunch of issues leads to the ticket lingering +since nobody wants to attack that behemoth, until someone mercifully +splits the issue into multiple ones. +.PP +In particular, every site support request issue should only pertain to +services at one site (generally under a common domain, but always using +the same backend technology). +Do not request support for vimeo user videos, White house podcasts, and +Google Plus pages in the same issue. +Also, make sure that you don\[aq]t post bug reports alongside feature +requests. +As a rule of thumb, a feature request does not include outputs of +youtube\-dl that are not immediately related to the feature at hand. +Do not post reports of a network error alongside the request for a new +video service. +.SS Is anyone going to need the feature? +.PP +Only post features that you (or an incapacitated friend you can +personally talk to) require. +Do not post features because they seem like a good idea. +If they are really useful, they will be requested by someone who +requires them. +.SS Is your question about youtube\-dl? +.PP +It may sound strange, but some bug reports we receive are completely +unrelated to youtube\-dl and relate to a different, or even the +reporter\[aq]s own, application. +Please make sure that you are actually using youtube\-dl. +If you are using a UI for youtube\-dl, report the bug to the maintainer +of the actual application providing the UI. +On the other hand, if your UI for youtube\-dl fails in some way you +believe is related to youtube\-dl, by all means, go ahead and report the +bug. +.SH COPYRIGHT +.PP +youtube\-dl is released into the public domain by the copyright holders. +.PP +This README file was originally written by Daniel +Bolton (https://github.com/dbbolton) and is likewise released into the +public domain. diff --git a/youtube-dl.bash-completion b/youtube-dl.bash-completion new file mode 100644 index 0000000..b9e0d2e --- /dev/null +++ b/youtube-dl.bash-completion @@ -0,0 +1,29 @@ +__youtube_dl() +{ + local cur prev opts fileopts diropts keywords + COMPREPLY=() + cur="${COMP_WORDS[COMP_CWORD]}" + prev="${COMP_WORDS[COMP_CWORD-1]}" + opts="--help --version --update --ignore-errors --abort-on-error --dump-user-agent --list-extractors --extractor-descriptions --force-generic-extractor --default-search --ignore-config --config-location --flat-playlist --mark-watched --no-mark-watched --no-color --proxy --socket-timeout --source-address --force-ipv4 --force-ipv6 --geo-verification-proxy --cn-verification-proxy --playlist-start --playlist-end --playlist-items --match-title --reject-title --max-downloads --min-filesize --max-filesize --date --datebefore --dateafter --min-views --max-views --match-filter --no-playlist --yes-playlist --age-limit --download-archive --include-ads --limit-rate --retries --fragment-retries --skip-unavailable-fragments --abort-on-unavailable-fragment --buffer-size --no-resize-buffer --test --playlist-reverse --playlist-random --xattr-set-filesize --hls-prefer-native --hls-prefer-ffmpeg --hls-use-mpegts --external-downloader --external-downloader-args --batch-file --id --output --autonumber-size --autonumber-start --restrict-filenames --auto-number --title --literal --no-overwrites --continue --no-continue --no-part --no-mtime --write-description --write-info-json --write-annotations --load-info-json --cookies --cache-dir --no-cache-dir --rm-cache-dir --write-thumbnail --write-all-thumbnails --list-thumbnails --quiet --no-warnings --simulate --skip-download --get-url --get-title --get-id --get-thumbnail --get-description --get-duration --get-filename --get-format --dump-json --dump-single-json --print-json --newline --no-progress --console-title --verbose --dump-pages --write-pages --youtube-print-sig-code --print-traffic --call-home --no-call-home --encoding --no-check-certificate --prefer-insecure --user-agent --referer --add-header --bidi-workaround --sleep-interval --max-sleep-interval --format --all-formats --prefer-free-formats --list-formats --youtube-include-dash-manifest --youtube-skip-dash-manifest --merge-output-format --write-sub --write-auto-sub --all-subs --list-subs --sub-format --sub-lang --username --password --twofactor --netrc --video-password --ap-mso --ap-username --ap-password --ap-list-mso --extract-audio --audio-format --audio-quality --recode-video --postprocessor-args --keep-video --no-post-overwrites --embed-subs --embed-thumbnail --add-metadata --metadata-from-title --xattrs --fixup --prefer-avconv --prefer-ffmpeg --ffmpeg-location --exec --convert-subs" + keywords=":ytfavorites :ytrecommended :ytsubscriptions :ytwatchlater :ythistory" + fileopts="-a|--batch-file|--download-archive|--cookies|--load-info" + diropts="--cache-dir" + + if [[ ${prev} =~ ${fileopts} ]]; then + COMPREPLY=( $(compgen -f -- ${cur}) ) + return 0 + elif [[ ${prev} =~ ${diropts} ]]; then + COMPREPLY=( $(compgen -d -- ${cur}) ) + return 0 + fi + + if [[ ${cur} =~ : ]]; then + COMPREPLY=( $(compgen -W "${keywords}" -- ${cur}) ) + return 0 + elif [[ ${cur} == * ]] ; then + COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) ) + return 0 + fi +} + +complete -F __youtube_dl youtube-dl diff --git a/youtube-dl.fish b/youtube-dl.fish new file mode 100644 index 0000000..067680f --- /dev/null +++ b/youtube-dl.fish @@ -0,0 +1,161 @@ + +complete --command youtube-dl --long-option help --short-option h --description 'Print this help text and exit' +complete --command youtube-dl --long-option version --description 'Print program version and exit' +complete --command youtube-dl --long-option update --short-option U --description 'Update this program to latest version. Make sure that you have sufficient permissions (run with sudo if needed)' +complete --command youtube-dl --long-option ignore-errors --short-option i --description 'Continue on download errors, for example to skip unavailable videos in a playlist' +complete --command youtube-dl --long-option abort-on-error --description 'Abort downloading of further videos (in the playlist or the command line) if an error occurs' +complete --command youtube-dl --long-option dump-user-agent --description 'Display the current browser identification' +complete --command youtube-dl --long-option list-extractors --description 'List all supported extractors' +complete --command youtube-dl --long-option extractor-descriptions --description 'Output descriptions of all supported extractors' +complete --command youtube-dl --long-option force-generic-extractor --description 'Force extraction to use the generic extractor' +complete --command youtube-dl --long-option default-search --description 'Use this prefix for unqualified URLs. For example "gvsearch2:" downloads two videos from google videos for youtube-dl "large apple". Use the value "auto" to let youtube-dl guess ("auto_warning" to emit a warning when guessing). "error" just throws an error. The default value "fixup_error" repairs broken URLs, but emits an error if this is not possible instead of searching.' +complete --command youtube-dl --long-option ignore-config --description 'Do not read configuration files. When given in the global configuration file /etc/youtube-dl.conf: Do not read the user configuration in ~/.config/youtube-dl/config (%APPDATA%/youtube-dl/config.txt on Windows)' +complete --command youtube-dl --long-option config-location --description 'Location of the configuration file; either the path to the config or its containing directory.' +complete --command youtube-dl --long-option flat-playlist --description 'Do not extract the videos of a playlist, only list them.' +complete --command youtube-dl --long-option mark-watched --description 'Mark videos watched (YouTube only)' +complete --command youtube-dl --long-option no-mark-watched --description 'Do not mark videos watched (YouTube only)' +complete --command youtube-dl --long-option no-color --description 'Do not emit color codes in output' +complete --command youtube-dl --long-option proxy --description 'Use the specified HTTP/HTTPS/SOCKS proxy. To enable experimental SOCKS proxy, specify a proper scheme. For example socks5://127.0.0.1:1080/. Pass in an empty string (--proxy "") for direct connection' +complete --command youtube-dl --long-option socket-timeout --description 'Time to wait before giving up, in seconds' +complete --command youtube-dl --long-option source-address --description 'Client-side IP address to bind to' +complete --command youtube-dl --long-option force-ipv4 --short-option 4 --description 'Make all connections via IPv4' +complete --command youtube-dl --long-option force-ipv6 --short-option 6 --description 'Make all connections via IPv6' +complete --command youtube-dl --long-option geo-verification-proxy --description 'Use this proxy to verify the IP address for some geo-restricted sites. The default proxy specified by --proxy (or none, if the options is not present) is used for the actual downloading.' +complete --command youtube-dl --long-option cn-verification-proxy +complete --command youtube-dl --long-option playlist-start --description 'Playlist video to start at (default is %default)' +complete --command youtube-dl --long-option playlist-end --description 'Playlist video to end at (default is last)' +complete --command youtube-dl --long-option playlist-items --description 'Playlist video items to download. Specify indices of the videos in the playlist separated by commas like: "--playlist-items 1,2,5,8" if you want to download videos indexed 1, 2, 5, 8 in the playlist. You can specify range: "--playlist-items 1-3,7,10-13", it will download the videos at index 1, 2, 3, 7, 10, 11, 12 and 13.' +complete --command youtube-dl --long-option match-title --description 'Download only matching titles (regex or caseless sub-string)' +complete --command youtube-dl --long-option reject-title --description 'Skip download for matching titles (regex or caseless sub-string)' +complete --command youtube-dl --long-option max-downloads --description 'Abort after downloading NUMBER files' +complete --command youtube-dl --long-option min-filesize --description 'Do not download any videos smaller than SIZE (e.g. 50k or 44.6m)' +complete --command youtube-dl --long-option max-filesize --description 'Do not download any videos larger than SIZE (e.g. 50k or 44.6m)' +complete --command youtube-dl --long-option date --description 'Download only videos uploaded in this date' +complete --command youtube-dl --long-option datebefore --description 'Download only videos uploaded on or before this date (i.e. inclusive)' +complete --command youtube-dl --long-option dateafter --description 'Download only videos uploaded on or after this date (i.e. inclusive)' +complete --command youtube-dl --long-option min-views --description 'Do not download any videos with less than COUNT views' +complete --command youtube-dl --long-option max-views --description 'Do not download any videos with more than COUNT views' +complete --command youtube-dl --long-option match-filter --description 'Generic video filter. Specify any key (see help for -o for a list of available keys) to match if the key is present, !key to check if the key is not present,key > NUMBER (like "comment_count > 12", also works with >=, <, <=, !=, =) to compare against a number, and & to require multiple matches. Values which are not known are excluded unless you put a question mark (?) after the operator.For example, to only match videos that have been liked more than 100 times and disliked less than 50 times (or the dislike functionality is not available at the given service), but who also have a description, use --match-filter "like_count > 100 & dislike_count <? 50 & description" .' +complete --command youtube-dl --long-option no-playlist --description 'Download only the video, if the URL refers to a video and a playlist.' +complete --command youtube-dl --long-option yes-playlist --description 'Download the playlist, if the URL refers to a video and a playlist.' +complete --command youtube-dl --long-option age-limit --description 'Download only videos suitable for the given age' +complete --command youtube-dl --long-option download-archive --description 'Download only videos not listed in the archive file. Record the IDs of all downloaded videos in it.' --require-parameter +complete --command youtube-dl --long-option include-ads --description 'Download advertisements as well (experimental)' +complete --command youtube-dl --long-option limit-rate --short-option r --description 'Maximum download rate in bytes per second (e.g. 50K or 4.2M)' +complete --command youtube-dl --long-option retries --short-option R --description 'Number of retries (default is %default), or "infinite".' +complete --command youtube-dl --long-option fragment-retries --description 'Number of retries for a fragment (default is %default), or "infinite" (DASH and hlsnative only)' +complete --command youtube-dl --long-option skip-unavailable-fragments --description 'Skip unavailable fragments (DASH and hlsnative only)' +complete --command youtube-dl --long-option abort-on-unavailable-fragment --description 'Abort downloading when some fragment is not available' +complete --command youtube-dl --long-option buffer-size --description 'Size of download buffer (e.g. 1024 or 16K) (default is %default)' +complete --command youtube-dl --long-option no-resize-buffer --description 'Do not automatically adjust the buffer size. By default, the buffer size is automatically resized from an initial value of SIZE.' +complete --command youtube-dl --long-option test +complete --command youtube-dl --long-option playlist-reverse --description 'Download playlist videos in reverse order' +complete --command youtube-dl --long-option playlist-random --description 'Download playlist videos in random order' +complete --command youtube-dl --long-option xattr-set-filesize --description 'Set file xattribute ytdl.filesize with expected file size (experimental)' +complete --command youtube-dl --long-option hls-prefer-native --description 'Use the native HLS downloader instead of ffmpeg' +complete --command youtube-dl --long-option hls-prefer-ffmpeg --description 'Use ffmpeg instead of the native HLS downloader' +complete --command youtube-dl --long-option hls-use-mpegts --description 'Use the mpegts container for HLS videos, allowing to play the video while downloading (some players may not be able to play it)' +complete --command youtube-dl --long-option external-downloader --description 'Use the specified external downloader. Currently supports aria2c,avconv,axel,curl,ffmpeg,httpie,wget' +complete --command youtube-dl --long-option external-downloader-args --description 'Give these arguments to the external downloader' +complete --command youtube-dl --long-option batch-file --short-option a --description 'File containing URLs to download ('"'"'-'"'"' for stdin)' --require-parameter +complete --command youtube-dl --long-option id --description 'Use only video ID in file name' +complete --command youtube-dl --long-option output --short-option o --description 'Output filename template, see the "OUTPUT TEMPLATE" for all the info' +complete --command youtube-dl --long-option autonumber-size --description 'Specify the number of digits in %(autonumber)s when it is present in output filename template or --auto-number option is given (default is %default)' +complete --command youtube-dl --long-option autonumber-start --description 'Specify the start value for %(autonumber)s (default is %default)' +complete --command youtube-dl --long-option restrict-filenames --description 'Restrict filenames to only ASCII characters, and avoid "&" and spaces in filenames' +complete --command youtube-dl --long-option auto-number --short-option A --description '[deprecated; use -o "%(autonumber)s-%(title)s.%(ext)s" ] Number downloaded files starting from 00000' +complete --command youtube-dl --long-option title --short-option t --description '[deprecated] Use title in file name (default)' +complete --command youtube-dl --long-option literal --short-option l --description '[deprecated] Alias of --title' +complete --command youtube-dl --long-option no-overwrites --short-option w --description 'Do not overwrite files' +complete --command youtube-dl --long-option continue --short-option c --description 'Force resume of partially downloaded files. By default, youtube-dl will resume downloads if possible.' +complete --command youtube-dl --long-option no-continue --description 'Do not resume partially downloaded files (restart from beginning)' +complete --command youtube-dl --long-option no-part --description 'Do not use .part files - write directly into output file' +complete --command youtube-dl --long-option no-mtime --description 'Do not use the Last-modified header to set the file modification time' +complete --command youtube-dl --long-option write-description --description 'Write video description to a .description file' +complete --command youtube-dl --long-option write-info-json --description 'Write video metadata to a .info.json file' +complete --command youtube-dl --long-option write-annotations --description 'Write video annotations to a .annotations.xml file' +complete --command youtube-dl --long-option load-info-json --description 'JSON file containing the video information (created with the "--write-info-json" option)' +complete --command youtube-dl --long-option cookies --description 'File to read cookies from and dump cookie jar in' --require-parameter +complete --command youtube-dl --long-option cache-dir --description 'Location in the filesystem where youtube-dl can store some downloaded information permanently. By default $XDG_CACHE_HOME/youtube-dl or ~/.cache/youtube-dl . At the moment, only YouTube player files (for videos with obfuscated signatures) are cached, but that may change.' +complete --command youtube-dl --long-option no-cache-dir --description 'Disable filesystem caching' +complete --command youtube-dl --long-option rm-cache-dir --description 'Delete all filesystem cache files' +complete --command youtube-dl --long-option write-thumbnail --description 'Write thumbnail image to disk' +complete --command youtube-dl --long-option write-all-thumbnails --description 'Write all thumbnail image formats to disk' +complete --command youtube-dl --long-option list-thumbnails --description 'Simulate and list all available thumbnail formats' +complete --command youtube-dl --long-option quiet --short-option q --description 'Activate quiet mode' +complete --command youtube-dl --long-option no-warnings --description 'Ignore warnings' +complete --command youtube-dl --long-option simulate --short-option s --description 'Do not download the video and do not write anything to disk' +complete --command youtube-dl --long-option skip-download --description 'Do not download the video' +complete --command youtube-dl --long-option get-url --short-option g --description 'Simulate, quiet but print URL' +complete --command youtube-dl --long-option get-title --short-option e --description 'Simulate, quiet but print title' +complete --command youtube-dl --long-option get-id --description 'Simulate, quiet but print id' +complete --command youtube-dl --long-option get-thumbnail --description 'Simulate, quiet but print thumbnail URL' +complete --command youtube-dl --long-option get-description --description 'Simulate, quiet but print video description' +complete --command youtube-dl --long-option get-duration --description 'Simulate, quiet but print video length' +complete --command youtube-dl --long-option get-filename --description 'Simulate, quiet but print output filename' +complete --command youtube-dl --long-option get-format --description 'Simulate, quiet but print output format' +complete --command youtube-dl --long-option dump-json --short-option j --description 'Simulate, quiet but print JSON information. See --output for a description of available keys.' +complete --command youtube-dl --long-option dump-single-json --short-option J --description 'Simulate, quiet but print JSON information for each command-line argument. If the URL refers to a playlist, dump the whole playlist information in a single line.' +complete --command youtube-dl --long-option print-json --description 'Be quiet and print the video information as JSON (video is still being downloaded).' +complete --command youtube-dl --long-option newline --description 'Output progress bar as new lines' +complete --command youtube-dl --long-option no-progress --description 'Do not print progress bar' +complete --command youtube-dl --long-option console-title --description 'Display progress in console titlebar' +complete --command youtube-dl --long-option verbose --short-option v --description 'Print various debugging information' +complete --command youtube-dl --long-option dump-pages --description 'Print downloaded pages encoded using base64 to debug problems (very verbose)' +complete --command youtube-dl --long-option write-pages --description 'Write downloaded intermediary pages to files in the current directory to debug problems' +complete --command youtube-dl --long-option youtube-print-sig-code +complete --command youtube-dl --long-option print-traffic --description 'Display sent and read HTTP traffic' +complete --command youtube-dl --long-option call-home --short-option C --description 'Contact the youtube-dl server for debugging' +complete --command youtube-dl --long-option no-call-home --description 'Do NOT contact the youtube-dl server for debugging' +complete --command youtube-dl --long-option encoding --description 'Force the specified encoding (experimental)' +complete --command youtube-dl --long-option no-check-certificate --description 'Suppress HTTPS certificate validation' +complete --command youtube-dl --long-option prefer-insecure --description 'Use an unencrypted connection to retrieve information about the video. (Currently supported only for YouTube)' +complete --command youtube-dl --long-option user-agent --description 'Specify a custom user agent' +complete --command youtube-dl --long-option referer --description 'Specify a custom referer, use if the video access is restricted to one domain' +complete --command youtube-dl --long-option add-header --description 'Specify a custom HTTP header and its value, separated by a colon '"'"':'"'"'. You can use this option multiple times' +complete --command youtube-dl --long-option bidi-workaround --description 'Work around terminals that lack bidirectional text support. Requires bidiv or fribidi executable in PATH' +complete --command youtube-dl --long-option sleep-interval --description 'Number of seconds to sleep before each download when used alone or a lower bound of a range for randomized sleep before each download (minimum possible number of seconds to sleep) when used along with --max-sleep-interval.' +complete --command youtube-dl --long-option max-sleep-interval --description 'Upper bound of a range for randomized sleep before each download (maximum possible number of seconds to sleep). Must only be used along with --min-sleep-interval.' +complete --command youtube-dl --long-option format --short-option f --description 'Video format code, see the "FORMAT SELECTION" for all the info' +complete --command youtube-dl --long-option all-formats --description 'Download all available video formats' +complete --command youtube-dl --long-option prefer-free-formats --description 'Prefer free video formats unless a specific one is requested' +complete --command youtube-dl --long-option list-formats --short-option F --description 'List all available formats of requested videos' +complete --command youtube-dl --long-option youtube-include-dash-manifest +complete --command youtube-dl --long-option youtube-skip-dash-manifest --description 'Do not download the DASH manifests and related data on YouTube videos' +complete --command youtube-dl --long-option merge-output-format --description 'If a merge is required (e.g. bestvideo+bestaudio), output to given container format. One of mkv, mp4, ogg, webm, flv. Ignored if no merge is required' +complete --command youtube-dl --long-option write-sub --description 'Write subtitle file' +complete --command youtube-dl --long-option write-auto-sub --description 'Write automatically generated subtitle file (YouTube only)' +complete --command youtube-dl --long-option all-subs --description 'Download all the available subtitles of the video' +complete --command youtube-dl --long-option list-subs --description 'List all available subtitles for the video' +complete --command youtube-dl --long-option sub-format --description 'Subtitle format, accepts formats preference, for example: "srt" or "ass/srt/best"' +complete --command youtube-dl --long-option sub-lang --description 'Languages of the subtitles to download (optional) separated by commas, use --list-subs for available language tags' +complete --command youtube-dl --long-option username --short-option u --description 'Login with this account ID' +complete --command youtube-dl --long-option password --short-option p --description 'Account password. If this option is left out, youtube-dl will ask interactively.' +complete --command youtube-dl --long-option twofactor --short-option 2 --description 'Two-factor authentication code' +complete --command youtube-dl --long-option netrc --short-option n --description 'Use .netrc authentication data' +complete --command youtube-dl --long-option video-password --description 'Video password (vimeo, smotri, youku)' +complete --command youtube-dl --long-option ap-mso --description 'Adobe Pass multiple-system operator (TV provider) identifier, use --ap-list-mso for a list of available MSOs' +complete --command youtube-dl --long-option ap-username --description 'Multiple-system operator account login' +complete --command youtube-dl --long-option ap-password --description 'Multiple-system operator account password. If this option is left out, youtube-dl will ask interactively.' +complete --command youtube-dl --long-option ap-list-mso --description 'List all supported multiple-system operators' +complete --command youtube-dl --long-option extract-audio --short-option x --description 'Convert video files to audio-only files (requires ffmpeg or avconv and ffprobe or avprobe)' +complete --command youtube-dl --long-option audio-format --description 'Specify audio format: "best", "aac", "vorbis", "mp3", "m4a", "opus", or "wav"; "%default" by default; No effect without -x' +complete --command youtube-dl --long-option audio-quality --description 'Specify ffmpeg/avconv audio quality, insert a value between 0 (better) and 9 (worse) for VBR or a specific bitrate like 128K (default %default)' +complete --command youtube-dl --long-option recode-video --description 'Encode the video to another format if necessary (currently supported: mp4|flv|ogg|webm|mkv|avi)' --arguments 'mp4 flv ogg webm mkv' --exclusive +complete --command youtube-dl --long-option postprocessor-args --description 'Give these arguments to the postprocessor' +complete --command youtube-dl --long-option keep-video --short-option k --description 'Keep the video file on disk after the post-processing; the video is erased by default' +complete --command youtube-dl --long-option no-post-overwrites --description 'Do not overwrite post-processed files; the post-processed files are overwritten by default' +complete --command youtube-dl --long-option embed-subs --description 'Embed subtitles in the video (only for mp4, webm and mkv videos)' +complete --command youtube-dl --long-option embed-thumbnail --description 'Embed thumbnail in the audio as cover art' +complete --command youtube-dl --long-option add-metadata --description 'Write metadata to the video file' +complete --command youtube-dl --long-option metadata-from-title --description 'Parse additional metadata like song title / artist from the video title. The format syntax is the same as --output, the parsed parameters replace existing values. Additional templates: %(album)s, %(artist)s. Example: --metadata-from-title "%(artist)s - %(title)s" matches a title like "Coldplay - Paradise"' +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 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)' + + +complete --command youtube-dl --arguments ":ytfavorites :ytrecommended :ytsubscriptions :ytwatchlater :ythistory" diff --git a/youtube-dl.plugin.zsh b/youtube-dl.plugin.zsh deleted file mode 100644 index 4edab52..0000000 --- a/youtube-dl.plugin.zsh +++ /dev/null @@ -1,24 +0,0 @@ -# This allows the youtube-dl command to be installed in ZSH using antigen. -# Antigen is a bundle manager. It allows you to enhance the functionality of -# your zsh session by installing bundles and themes easily. - -# Antigen documentation: -# http://antigen.sharats.me/ -# https://github.com/zsh-users/antigen - -# Install youtube-dl: -# antigen bundle rg3/youtube-dl -# Bundles installed by antigen are available for use immediately. - -# Update youtube-dl (and all other antigen bundles): -# antigen update - -# The antigen command will download the git repository to a folder and then -# execute an enabling script (this file). The complete process for loading the -# code is documented here: -# https://github.com/zsh-users/antigen#notes-on-writing-plugins - -# This specific script just aliases youtube-dl to the python script that this -# library provides. This requires updating the PYTHONPATH to ensure that the -# full set of code can be located. -alias youtube-dl="PYTHONPATH=$(dirname $0) $(dirname $0)/bin/youtube-dl" diff --git a/youtube-dl.zsh b/youtube-dl.zsh new file mode 100644 index 0000000..a0fe383 --- /dev/null +++ b/youtube-dl.zsh @@ -0,0 +1,28 @@ +#compdef youtube-dl + +__youtube_dl() { + local curcontext="$curcontext" fileopts diropts cur prev + typeset -A opt_args + fileopts="--download-archive|-a|--batch-file|--load-info-json|--load-info|--cookies" + diropts="--cache-dir" + cur=$words[CURRENT] + case $cur in + :) + _arguments '*: :(::ytfavorites ::ytrecommended ::ytsubscriptions ::ytwatchlater ::ythistory)' + ;; + *) + prev=$words[CURRENT-1] + if [[ ${prev} =~ ${fileopts} ]]; then + _path_files + elif [[ ${prev} =~ ${diropts} ]]; then + _path_files -/ + elif [[ ${prev} == "--recode-video" ]]; then + _arguments '*: :(mp4 flv ogg webm mkv)' + else + _arguments '*: :(--help --version --update --ignore-errors --abort-on-error --dump-user-agent --list-extractors --extractor-descriptions --force-generic-extractor --default-search --ignore-config --config-location --flat-playlist --mark-watched --no-mark-watched --no-color --proxy --socket-timeout --source-address --force-ipv4 --force-ipv6 --geo-verification-proxy --cn-verification-proxy --playlist-start --playlist-end --playlist-items --match-title --reject-title --max-downloads --min-filesize --max-filesize --date --datebefore --dateafter --min-views --max-views --match-filter --no-playlist --yes-playlist --age-limit --download-archive --include-ads --limit-rate --retries --fragment-retries --skip-unavailable-fragments --abort-on-unavailable-fragment --buffer-size --no-resize-buffer --test --playlist-reverse --playlist-random --xattr-set-filesize --hls-prefer-native --hls-prefer-ffmpeg --hls-use-mpegts --external-downloader --external-downloader-args --batch-file --id --output --autonumber-size --autonumber-start --restrict-filenames --auto-number --title --literal --no-overwrites --continue --no-continue --no-part --no-mtime --write-description --write-info-json --write-annotations --load-info-json --cookies --cache-dir --no-cache-dir --rm-cache-dir --write-thumbnail --write-all-thumbnails --list-thumbnails --quiet --no-warnings --simulate --skip-download --get-url --get-title --get-id --get-thumbnail --get-description --get-duration --get-filename --get-format --dump-json --dump-single-json --print-json --newline --no-progress --console-title --verbose --dump-pages --write-pages --youtube-print-sig-code --print-traffic --call-home --no-call-home --encoding --no-check-certificate --prefer-insecure --user-agent --referer --add-header --bidi-workaround --sleep-interval --max-sleep-interval --format --all-formats --prefer-free-formats --list-formats --youtube-include-dash-manifest --youtube-skip-dash-manifest --merge-output-format --write-sub --write-auto-sub --all-subs --list-subs --sub-format --sub-lang --username --password --twofactor --netrc --video-password --ap-mso --ap-username --ap-password --ap-list-mso --extract-audio --audio-format --audio-quality --recode-video --postprocessor-args --keep-video --no-post-overwrites --embed-subs --embed-thumbnail --add-metadata --metadata-from-title --xattrs --fixup --prefer-avconv --prefer-ffmpeg --ffmpeg-location --exec --convert-subs)' + fi + ;; + esac +} + +__youtube_dl \ No newline at end of file diff --git a/youtube_dl/YoutubeDL.py b/youtube_dl/YoutubeDL.py index 53f20ac..a7bf5a1 100755 --- a/youtube_dl/YoutubeDL.py +++ b/youtube_dl/YoutubeDL.py @@ -24,6 +24,7 @@ import sys import time import tokenize import traceback +import random from .compat import ( compat_basestring, @@ -159,6 +160,7 @@ class YoutubeDL(object): playlistend: Playlist item to end at. playlist_items: Specific indices of playlist to download. playlistreverse: Download playlist items in reverse order. + playlistrandom: Download playlist items in random order. matchtitle: Download only matching titles. rejecttitle: Reject downloads for matching titles. logger: Log messages to a logging.Logger instance. @@ -584,7 +586,7 @@ class YoutubeDL(object): if autonumber_size is None: autonumber_size = 5 autonumber_templ = '%0' + str(autonumber_size) + 'd' - template_dict['autonumber'] = autonumber_templ % self._num_downloads + template_dict['autonumber'] = autonumber_templ % (self.params.get('autonumber_start', 1) - 1 + self._num_downloads) if template_dict.get('playlist_index') is not None: template_dict['playlist_index'] = '%0*d' % (len(str(template_dict['n_entries'])), template_dict['playlist_index']) if template_dict.get('resolution') is None: @@ -842,6 +844,9 @@ class YoutubeDL(object): if self.params.get('playlistreverse', False): entries = entries[::-1] + if self.params.get('playlistrandom', False): + random.shuffle(entries) + for i, entry in enumerate(entries, 1): self.to_screen('[download] Downloading video %s of %s' % (i, n_entries)) extra = { @@ -1339,7 +1344,7 @@ class YoutubeDL(object): format['format_id'] = compat_str(i) else: # Sanitize format_id from characters used in format selector expression - format['format_id'] = re.sub('[\s,/+\[\]()]', '_', format['format_id']) + format['format_id'] = re.sub(r'[\s,/+\[\]()]', '_', format['format_id']) format_id = format['format_id'] if format_id not in formats_dict: formats_dict[format_id] = [] @@ -1363,7 +1368,7 @@ class YoutubeDL(object): format['ext'] = determine_ext(format['url']).lower() # Automatically determine protocol if missing (useful for format # selection purposes) - if 'protocol' not in format: + if format.get('protocol') is None: format['protocol'] = determine_protocol(format) # Add HTTP headers, so that external programs can use them from the # json output diff --git a/youtube_dl/__init__.py b/youtube_dl/__init__.py index 6850d95..5c5b809 100644 --- a/youtube_dl/__init__.py +++ b/youtube_dl/__init__.py @@ -133,6 +133,12 @@ def _real_main(argv=None): parser.error('TV Provider account username missing\n') if opts.outtmpl is not None and (opts.usetitle or opts.autonumber or opts.useid): parser.error('using output template conflicts with using title, video ID or auto number') + if opts.autonumber_size is not None: + if opts.autonumber_size <= 0: + parser.error('auto number size must be positive') + if opts.autonumber_start is not None: + if opts.autonumber_start < 0: + parser.error('auto number start must be positive or 0') if opts.usetitle and opts.useid: parser.error('using title conflicts with using video ID') if opts.username is not None and opts.password is None: @@ -321,6 +327,7 @@ def _real_main(argv=None): 'listformats': opts.listformats, 'outtmpl': outtmpl, 'autonumber_size': opts.autonumber_size, + 'autonumber_start': opts.autonumber_start, 'restrictfilenames': opts.restrictfilenames, 'ignoreerrors': opts.ignoreerrors, 'force_generic_extractor': opts.force_generic_extractor, @@ -337,6 +344,7 @@ def _real_main(argv=None): 'playliststart': opts.playliststart, 'playlistend': opts.playlistend, 'playlistreverse': opts.playlist_reverse, + 'playlistrandom': opts.playlist_random, 'noplaylist': opts.noplaylist, 'logtostderr': opts.outtmpl == '-', 'consoletitle': opts.consoletitle, @@ -405,7 +413,7 @@ def _real_main(argv=None): 'postprocessor_args': postprocessor_args, 'cn_verification_proxy': opts.cn_verification_proxy, 'geo_verification_proxy': opts.geo_verification_proxy, - + 'config_location': opts.config_location, } with YoutubeDL(ydl_opts) as ydl: diff --git a/youtube_dl/compat.py b/youtube_dl/compat.py index 83ee7e2..7189020 100644 --- a/youtube_dl/compat.py +++ b/youtube_dl/compat.py @@ -2344,7 +2344,7 @@ try: from urllib.parse import unquote_plus as compat_urllib_parse_unquote_plus except ImportError: # Python 2 _asciire = (compat_urllib_parse._asciire if hasattr(compat_urllib_parse, '_asciire') - else re.compile('([\x00-\x7f]+)')) + else re.compile(r'([\x00-\x7f]+)')) # HACK: The following are the correct unquote_to_bytes, unquote and unquote_plus # implementations from cpython 3.4.3's stdlib. Python 2's version @@ -2529,6 +2529,24 @@ else: el.text = el.text.decode('utf-8') return doc +if hasattr(etree, 'register_namespace'): + compat_etree_register_namespace = etree.register_namespace +else: + def compat_etree_register_namespace(prefix, uri): + """Register a namespace prefix. + The registry is global, and any existing mapping for either the + given prefix or the namespace URI will be removed. + *prefix* is the namespace prefix, *uri* is a namespace uri. Tags and + attributes in this namespace will be serialized with prefix if possible. + ValueError is raised if prefix is reserved or is invalid. + """ + if re.match(r"ns\d+$", prefix): + raise ValueError("Prefix format reserved for internal use") + for k, v in list(etree._namespace_map.items()): + if k == uri or v == prefix: + del etree._namespace_map[k] + etree._namespace_map[uri] = prefix + if sys.version_info < (2, 7): # Here comes the crazy part: In 2.6, if the xpath is a unicode, # .//node does not match if a node is a direct child of . ! @@ -2865,6 +2883,7 @@ __all__ = [ 'compat_cookiejar', 'compat_cookies', 'compat_etree_fromstring', + 'compat_etree_register_namespace', 'compat_expanduser', 'compat_get_terminal_size', 'compat_getenv', diff --git a/youtube_dl/downloader/external.py b/youtube_dl/downloader/external.py index 5d3e5d8..41e3726 100644 --- a/youtube_dl/downloader/external.py +++ b/youtube_dl/downloader/external.py @@ -17,6 +17,7 @@ from ..utils import ( encodeArgument, handle_youtubedl_headers, check_executable, + is_outdated_version, ) @@ -198,6 +199,15 @@ class FFmpegFD(ExternalFD): args = [ffpp.executable, '-y'] + seekable = info_dict.get('_seekable') + if seekable is not None: + # setting -seekable prevents ffmpeg from guessing if the server + # supports seeking(by adding the header `Range: bytes=0-`), which + # can cause problems in some cases + # https://github.com/rg3/youtube-dl/issues/11800#issuecomment-275037127 + # http://trac.ffmpeg.org/ticket/6125#comment:10 + args += ['-seekable', '1' if seekable else '0'] + args += self._configuration_args() # start_time = info_dict.get('start_time') or 0 @@ -264,7 +274,9 @@ class FFmpegFD(ExternalFD): if self.params.get('hls_use_mpegts', False) or tmpfilename == '-': args += ['-f', 'mpegts'] else: - args += ['-f', 'mp4', '-bsf:a', 'aac_adtstoasc'] + args += ['-f', 'mp4'] + if (ffpp.basename == 'ffmpeg' and is_outdated_version(ffpp._versions['ffmpeg'], '3.2')) and (not info_dict.get('acodec') or info_dict['acodec'].split('.')[0] in ('aac', 'mp4a')): + args += ['-bsf:a', 'aac_adtstoasc'] elif protocol == 'rtmp': args += ['-f', 'flv'] else: diff --git a/youtube_dl/downloader/fragment.py b/youtube_dl/downloader/fragment.py index 60df627..56f9752 100644 --- a/youtube_dl/downloader/fragment.py +++ b/youtube_dl/downloader/fragment.py @@ -61,6 +61,7 @@ class FragmentFD(FileDownloader): 'noprogress': True, 'ratelimit': self.params.get('ratelimit'), 'retries': self.params.get('retries', 0), + 'nopart': self.params.get('nopart', False), 'test': self.params.get('test', False), } ) diff --git a/youtube_dl/downloader/hls.py b/youtube_dl/downloader/hls.py index 7373ec0..4989abc 100644 --- a/youtube_dl/downloader/hls.py +++ b/youtube_dl/downloader/hls.py @@ -65,6 +65,9 @@ class HlsFD(FragmentFD): s = manifest.decode('utf-8', 'ignore') if not self.can_download(s, info_dict): + if info_dict.get('extra_param_to_segment_url'): + self.report_error('pycrypto not found. Please install it.') + return False self.report_warning( 'hlsnative has detected features it does not support, ' 'extraction will be delegated to ffmpeg') diff --git a/youtube_dl/extractor/abcnews.py b/youtube_dl/extractor/abcnews.py index 6ae5d9a..4f56c4c 100644 --- a/youtube_dl/extractor/abcnews.py +++ b/youtube_dl/extractor/abcnews.py @@ -23,7 +23,7 @@ class AbcNewsVideoIE(AMPIE): 'title': '\'This Week\' Exclusive: Iran\'s Foreign Minister Zarif', 'description': 'George Stephanopoulos goes one-on-one with Iranian Foreign Minister Dr. Javad Zarif.', 'duration': 180, - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', }, 'params': { # m3u8 download @@ -59,7 +59,7 @@ class AbcNewsIE(InfoExtractor): 'display_id': 'dramatic-video-rare-death-job-america', 'title': 'Occupational Hazards', 'description': 'Nightline investigates the dangers that lurk at various jobs.', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'upload_date': '20100428', 'timestamp': 1272412800, }, diff --git a/youtube_dl/extractor/abcotvs.py b/youtube_dl/extractor/abcotvs.py index 054bb05..76e9813 100644 --- a/youtube_dl/extractor/abcotvs.py +++ b/youtube_dl/extractor/abcotvs.py @@ -23,7 +23,7 @@ class ABCOTVSIE(InfoExtractor): 'ext': 'mp4', 'title': 'East Bay museum celebrates vintage synthesizers', 'description': 'md5:a4f10fb2f2a02565c1749d4adbab4b10', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'timestamp': 1421123075, 'upload_date': '20150113', 'uploader': 'Jonathan Bloom', diff --git a/youtube_dl/extractor/acast.py b/youtube_dl/extractor/acast.py index 94ce88c..6dace30 100644 --- a/youtube_dl/extractor/acast.py +++ b/youtube_dl/extractor/acast.py @@ -8,6 +8,7 @@ from .common import InfoExtractor from ..compat import compat_str from ..utils import ( int_or_none, + parse_iso8601, OnDemandPagedList, ) @@ -15,18 +16,33 @@ from ..utils import ( class ACastIE(InfoExtractor): IE_NAME = 'acast' _VALID_URL = r'https?://(?:www\.)?acast\.com/(?P<channel>[^/]+)/(?P<id>[^/#?]+)' - _TEST = { + _TESTS = [{ + # test with one bling 'url': 'https://www.acast.com/condenasttraveler/-where-are-you-taipei-101-taiwan', 'md5': 'ada3de5a1e3a2a381327d749854788bb', 'info_dict': { 'id': '57de3baa-4bb0-487e-9418-2692c1277a34', 'ext': 'mp3', 'title': '"Where Are You?": Taipei 101, Taiwan', - 'timestamp': 1196172000000, + 'timestamp': 1196172000, + 'upload_date': '20071127', 'description': 'md5:a0b4ef3634e63866b542e5b1199a1a0e', 'duration': 211, } - } + }, { + # test with multiple blings + 'url': 'https://www.acast.com/sparpodcast/2.raggarmordet-rosterurdetforflutna', + 'md5': '55c0097badd7095f494c99a172f86501', + 'info_dict': { + 'id': '2a92b283-1a75-4ad8-8396-499c641de0d9', + 'ext': 'mp3', + 'title': '2. Raggarmordet - Röster ur det förflutna', + 'timestamp': 1477346700, + 'upload_date': '20161024', + 'description': 'md5:4f81f6d8cf2e12ee21a321d8bca32db4', + 'duration': 2797, + } + }] def _real_extract(self, url): channel, display_id = re.match(self._VALID_URL, url).groups() @@ -35,11 +51,11 @@ class ACastIE(InfoExtractor): return { 'id': compat_str(cast_data['id']), 'display_id': display_id, - 'url': cast_data['blings'][0]['audio'], + 'url': [b['audio'] for b in cast_data['blings'] if b['type'] == 'BlingAudio'][0], 'title': cast_data['name'], 'description': cast_data.get('description'), 'thumbnail': cast_data.get('image'), - 'timestamp': int_or_none(cast_data.get('publishingDate')), + 'timestamp': parse_iso8601(cast_data.get('publishingDate')), 'duration': int_or_none(cast_data.get('duration')), } diff --git a/youtube_dl/extractor/adobetv.py b/youtube_dl/extractor/adobetv.py index 5ae16fa..008c98e 100644 --- a/youtube_dl/extractor/adobetv.py +++ b/youtube_dl/extractor/adobetv.py @@ -30,7 +30,7 @@ class AdobeTVIE(AdobeTVBaseIE): 'ext': 'mp4', 'title': 'Quick Tip - How to Draw a Circle Around an Object in Photoshop', 'description': 'md5:99ec318dc909d7ba2a1f2b038f7d2311', - 'thumbnail': 're:https?://.*\.jpg$', + 'thumbnail': r're:https?://.*\.jpg$', 'upload_date': '20110914', 'duration': 60, 'view_count': int, diff --git a/youtube_dl/extractor/aenetworks.py b/youtube_dl/extractor/aenetworks.py index 6adb6d8..c973174 100644 --- a/youtube_dl/extractor/aenetworks.py +++ b/youtube_dl/extractor/aenetworks.py @@ -26,7 +26,7 @@ class AENetworksIE(AENetworksBaseIE): _VALID_URL = r'https?://(?:www\.)?(?P<domain>(?:history|aetv|mylifetime)\.com|fyi\.tv)/(?:shows/(?P<show_path>[^/]+(?:/[^/]+){0,2})|movies/(?P<movie_display_id>[^/]+)/full-movie)' _TESTS = [{ 'url': 'http://www.history.com/shows/mountain-men/season-1/episode-1', - 'md5': '8ff93eb073449f151d6b90c0ae1ef0c7', + 'md5': 'a97a65f7e823ae10e9244bc5433d5fe6', 'info_dict': { 'id': '22253814', 'ext': 'mp4', @@ -87,7 +87,7 @@ class AENetworksIE(AENetworksBaseIE): self._html_search_meta('aetn:SeriesTitle', webpage)) elif url_parts_len == 2: entries = [] - for episode_item in re.findall(r'(?s)<div[^>]+class="[^"]*episode-item[^"]*"[^>]*>', webpage): + for episode_item in re.findall(r'(?s)<[^>]+class="[^"]*(?:episode|program)-item[^"]*"[^>]*>', webpage): episode_attributes = extract_attributes(episode_item) episode_url = compat_urlparse.urljoin( url, episode_attributes['data-canonical']) @@ -99,7 +99,7 @@ class AENetworksIE(AENetworksBaseIE): query = { 'mbr': 'true', - 'assetTypes': 'medium_video_s3' + 'assetTypes': 'high_video_s3' } video_id = self._html_search_meta('aetn:VideoID', webpage) media_url = self._search_regex( @@ -155,7 +155,7 @@ class HistoryTopicIE(AENetworksBaseIE): 'id': 'world-war-i-history', 'title': 'World War I History', }, - 'playlist_mincount': 24, + 'playlist_mincount': 23, }, { 'url': 'http://www.history.com/topics/world-war-i-history/videos', 'only_matching': True, @@ -193,7 +193,8 @@ class HistoryTopicIE(AENetworksBaseIE): return self.theplatform_url_result( release_url, video_id, { 'mbr': 'true', - 'switch': 'hls' + 'switch': 'hls', + 'assetTypes': 'high_video_ak', }) else: webpage = self._download_webpage(url, topic_id) @@ -203,6 +204,7 @@ class HistoryTopicIE(AENetworksBaseIE): entries.append(self.theplatform_url_result( video_attributes['data-release-url'], video_attributes['data-id'], { 'mbr': 'true', - 'switch': 'hls' + 'switch': 'hls', + 'assetTypes': 'high_video_ak', })) return self.playlist_result(entries, topic_id, get_element_by_attribute('class', 'show-title', webpage)) diff --git a/youtube_dl/extractor/afreecatv.py b/youtube_dl/extractor/afreecatv.py index 75b3669..e0a0f7c 100644 --- a/youtube_dl/extractor/afreecatv.py +++ b/youtube_dl/extractor/afreecatv.py @@ -18,6 +18,7 @@ from ..utils import ( class AfreecaTVIE(InfoExtractor): + IE_NAME = 'afreecatv' IE_DESC = 'afreecatv.com' _VALID_URL = r'''(?x) https?:// @@ -143,3 +144,107 @@ class AfreecaTVIE(InfoExtractor): expected=True) return info + + +class AfreecaTVGlobalIE(AfreecaTVIE): + IE_NAME = 'afreecatv:global' + _VALID_URL = r'https?://(?:www\.)?afreeca\.tv/(?P<channel_id>\d+)(?:/v/(?P<video_id>\d+))?' + _TESTS = [{ + 'url': 'http://afreeca.tv/36853014/v/58301', + 'info_dict': { + 'id': '58301', + 'title': 'tryhard top100', + 'uploader_id': '36853014', + 'uploader': 'makgi Hearthstone Live!', + }, + 'playlist_count': 3, + }] + + def _real_extract(self, url): + channel_id, video_id = re.match(self._VALID_URL, url).groups() + video_type = 'video' if video_id else 'live' + query = { + 'pt': 'view', + 'bid': channel_id, + } + if video_id: + query['vno'] = video_id + video_data = self._download_json( + 'http://api.afreeca.tv/%s/view_%s.php' % (video_type, video_type), + video_id or channel_id, query=query)['channel'] + + if video_data.get('result') != 1: + raise ExtractorError('%s said: %s' % (self.IE_NAME, video_data['remsg'])) + + title = video_data['title'] + + info = { + 'thumbnail': video_data.get('thumb'), + 'view_count': int_or_none(video_data.get('vcnt')), + 'age_limit': int_or_none(video_data.get('grade')), + 'uploader_id': channel_id, + 'uploader': video_data.get('cname'), + } + + if video_id: + entries = [] + for i, f in enumerate(video_data.get('flist', [])): + video_key = self.parse_video_key(f.get('key', '')) + f_url = f.get('file') + if not video_key or not f_url: + continue + entries.append({ + 'id': '%s_%s' % (video_id, video_key.get('part', i + 1)), + 'title': title, + 'upload_date': video_key.get('upload_date'), + 'duration': int_or_none(f.get('length')), + 'url': f_url, + 'protocol': 'm3u8_native', + 'ext': 'mp4', + }) + + info.update({ + 'id': video_id, + 'title': title, + 'duration': int_or_none(video_data.get('length')), + }) + if len(entries) > 1: + info['_type'] = 'multi_video' + info['entries'] = entries + elif len(entries) == 1: + i = entries[0].copy() + i.update(info) + info = i + else: + formats = [] + for s in video_data.get('strm', []): + s_url = s.get('purl') + if not s_url: + continue + stype = s.get('stype') + if stype == 'HLS': + formats.extend(self._extract_m3u8_formats( + s_url, channel_id, 'mp4', m3u8_id=stype, fatal=False)) + elif stype == 'RTMP': + format_id = [stype] + label = s.get('label') + if label: + format_id.append(label) + formats.append({ + 'format_id': '-'.join(format_id), + 'url': s_url, + 'tbr': int_or_none(s.get('bps')), + 'height': int_or_none(s.get('brt')), + 'ext': 'flv', + 'rtmp_live': True, + }) + self._sort_formats(formats) + + info.update({ + 'id': channel_id, + 'title': self._live_title(title), + 'is_live': True, + 'formats': formats, + }) + + return info diff --git a/youtube_dl/extractor/airmozilla.py b/youtube_dl/extractor/airmozilla.py index f8e70f4..0e06918 100644 --- a/youtube_dl/extractor/airmozilla.py +++ b/youtube_dl/extractor/airmozilla.py @@ -20,7 +20,7 @@ class AirMozillaIE(InfoExtractor): 'id': '6x4q2w', 'ext': 'mp4', 'title': 'Privacy Lab - a meetup for privacy minded people in San Francisco', - 'thumbnail': 're:https?://vid\.ly/(?P<id>[0-9a-z-]+)/poster', + 'thumbnail': r're:https?://vid\.ly/(?P<id>[0-9a-z-]+)/poster', 'description': 'Brings together privacy professionals and others interested in privacy at for-profits, non-profits, and NGOs in an effort to contribute to the state of the ecosystem...', 'timestamp': 1422487800, 'upload_date': '20150128', diff --git a/youtube_dl/extractor/allocine.py b/youtube_dl/extractor/allocine.py index 517b06d..90f11d3 100644 --- a/youtube_dl/extractor/allocine.py +++ b/youtube_dl/extractor/allocine.py @@ -21,7 +21,7 @@ class AllocineIE(InfoExtractor): 'ext': 'mp4', 'title': 'Astérix - Le Domaine des Dieux Teaser VF', 'description': 'md5:4a754271d9c6f16c72629a8a993ee884', - 'thumbnail': 're:http://.*\.jpg', + 'thumbnail': r're:http://.*\.jpg', }, }, { 'url': 'http://www.allocine.fr/video/player_gen_cmedia=19540403&cfilm=222257.html', @@ -32,7 +32,7 @@ class AllocineIE(InfoExtractor): 'ext': 'mp4', 'title': 'Planes 2 Bande-annonce VF', 'description': 'Regardez la bande annonce du film Planes 2 (Planes 2 Bande-annonce VF). Planes 2, un film de Roberts Gannaway', - 'thumbnail': 're:http://.*\.jpg', + 'thumbnail': r're:http://.*\.jpg', }, }, { 'url': 'http://www.allocine.fr/video/player_gen_cmedia=19544709&cfilm=181290.html', @@ -43,7 +43,7 @@ class AllocineIE(InfoExtractor): 'ext': 'mp4', 'title': 'Dragons 2 - Bande annonce finale VF', 'description': 'md5:6cdd2d7c2687d4c6aafe80a35e17267a', - 'thumbnail': 're:http://.*\.jpg', + 'thumbnail': r're:http://.*\.jpg', }, }, { 'url': 'http://www.allocine.fr/video/video-19550147/', @@ -53,7 +53,7 @@ class AllocineIE(InfoExtractor): 'ext': 'mp4', 'title': 'Faux Raccord N°123 - Les gaffes de Cliffhanger', 'description': 'md5:bc734b83ffa2d8a12188d9eb48bb6354', - 'thumbnail': 're:http://.*\.jpg', + 'thumbnail': r're:http://.*\.jpg', }, }] diff --git a/youtube_dl/extractor/alphaporno.py b/youtube_dl/extractor/alphaporno.py index c34719d..3a6d99f 100644 --- a/youtube_dl/extractor/alphaporno.py +++ b/youtube_dl/extractor/alphaporno.py @@ -19,7 +19,7 @@ class AlphaPornoIE(InfoExtractor): 'display_id': 'sensual-striptease-porn-with-samantha-alexandra', 'ext': 'mp4', 'title': 'Sensual striptease porn with Samantha Alexandra', - 'thumbnail': 're:https?://.*\.jpg$', + 'thumbnail': r're:https?://.*\.jpg$', 'timestamp': 1418694611, 'upload_date': '20141216', 'duration': 387, diff --git a/youtube_dl/extractor/aol.py b/youtube_dl/extractor/aol.py index 2cdee33..b50f454 100644 --- a/youtube_dl/extractor/aol.py +++ b/youtube_dl/extractor/aol.py @@ -12,7 +12,7 @@ from ..utils import ( class AolIE(InfoExtractor): IE_NAME = 'on.aol.com' - _VALID_URL = r'(?:aol-video:|https?://on\.aol\.com/(?:[^/]+/)*(?:[^/?#&]+-)?)(?P<id>[^/?#&]+)' + _VALID_URL = r'(?:aol-video:|https?://(?:(?:www|on)\.)?aol\.com/(?:[^/]+/)*(?:[^/?#&]+-)?)(?P<id>[^/?#&]+)' _TESTS = [{ # video with 5min ID @@ -33,7 +33,7 @@ class AolIE(InfoExtractor): } }, { # video with vidible ID - 'url': 'http://on.aol.com/video/netflix-is-raising-rates-5707d6b8e4b090497b04f706?context=PC:homepage:PL1944:1460189336183', + 'url': 'http://www.aol.com/video/view/netflix-is-raising-rates/5707d6b8e4b090497b04f706/', 'info_dict': { 'id': '5707d6b8e4b090497b04f706', 'ext': 'mp4', @@ -108,30 +108,3 @@ class AolIE(InfoExtractor): 'uploader': video_data.get('videoOwner'), 'formats': formats, } - - -class AolFeaturesIE(InfoExtractor): - IE_NAME = 'features.aol.com' - _VALID_URL = r'https?://features\.aol\.com/video/(?P<id>[^/?#]+)' - - _TESTS = [{ - 'url': 'http://features.aol.com/video/behind-secret-second-careers-late-night-talk-show-hosts', - 'md5': '7db483bb0c09c85e241f84a34238cc75', - 'info_dict': { - 'id': '519507715', - 'ext': 'mp4', - 'title': 'What To Watch - February 17, 2016', - }, - 'add_ie': ['FiveMin'], - 'params': { - # encrypted m3u8 download - 'skip_download': True, - }, - }] - - def _real_extract(self, url): - display_id = self._match_id(url) - webpage = self._download_webpage(url, display_id) - return self.url_result(self._search_regex( - r'<script type="text/javascript" src="(https?://[^/]*?5min\.com/Scripts/PlayerSeed\.js[^"]+)"', - webpage, '5min embed url'), 'FiveMin') diff --git a/youtube_dl/extractor/ard.py b/youtube_dl/extractor/ard.py index 35f3656..2d55994 100644 --- a/youtube_dl/extractor/ard.py +++ b/youtube_dl/extractor/ard.py @@ -253,7 +253,7 @@ class ARDIE(InfoExtractor): 'duration': 2600, 'title': 'Die Story im Ersten: Mission unter falscher Flagge', 'upload_date': '20140804', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', }, 'skip': 'HTTP Error 404: Not Found', } diff --git a/youtube_dl/extractor/arkena.py b/youtube_dl/extractor/arkena.py index d45cae3..50ffb44 100644 --- a/youtube_dl/extractor/arkena.py +++ b/youtube_dl/extractor/arkena.py @@ -4,8 +4,10 @@ from __future__ import unicode_literals import re from .common import InfoExtractor +from ..compat import compat_urlparse from ..utils import ( determine_ext, + ExtractorError, float_or_none, int_or_none, mimetype2ext, @@ -15,7 +17,13 @@ from ..utils import ( class ArkenaIE(InfoExtractor): - _VALID_URL = r'https?://play\.arkena\.com/(?:config|embed)/avp/v\d/player/media/(?P<id>[^/]+)/[^/]+/(?P<account_id>\d+)' + _VALID_URL = r'''(?x) + https?:// + (?: + video\.arkena\.com/play2/embed/player\?| + play\.arkena\.com/(?:config|embed)/avp/v\d/player/media/(?P<id>[^/]+)/[^/]+/(?P<account_id>\d+) + ) + ''' _TESTS = [{ 'url': 'https://play.arkena.com/embed/avp/v2/player/media/b41dda37-d8e7-4d3f-b1b5-9a9db578bdfe/1/129411', 'md5': 'b96f2f71b359a8ecd05ce4e1daa72365', @@ -37,6 +45,9 @@ class ArkenaIE(InfoExtractor): }, { 'url': 'http://play.arkena.com/embed/avp/v1/player/media/327336/darkmatter/131064/', 'only_matching': True, + }, { + 'url': 'http://video.arkena.com/play2/embed/player?accountId=472718&mediaId=35763b3b-00090078-bf604299&pageStyling=styled', + 'only_matching': True, }] @staticmethod @@ -53,6 +64,14 @@ class ArkenaIE(InfoExtractor): video_id = mobj.group('id') account_id = mobj.group('account_id') + # Handle http://video.arkena.com/play2/embed/player URL + if not video_id: + qs = compat_urlparse.parse_qs(compat_urlparse.urlparse(url).query) + video_id = qs.get('mediaId', [None])[0] + account_id = qs.get('accountId', [None])[0] + if not video_id or not account_id: + raise ExtractorError('Invalid URL', expected=True) + playlist = self._download_json( 'https://play.arkena.com/config/avp/v2/player/media/%s/0/%s/?callbackMethod=_' % (video_id, account_id), diff --git a/youtube_dl/extractor/atresplayer.py b/youtube_dl/extractor/atresplayer.py index d2f3889..e3c6698 100644 --- a/youtube_dl/extractor/atresplayer.py +++ b/youtube_dl/extractor/atresplayer.py @@ -30,7 +30,7 @@ class AtresPlayerIE(InfoExtractor): 'title': 'Especial Solidario de Nochebuena', 'description': 'md5:e2d52ff12214fa937107d21064075bf1', 'duration': 5527.6, - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', }, 'skip': 'This video is only available for registered users' }, @@ -43,7 +43,7 @@ class AtresPlayerIE(InfoExtractor): 'title': 'David Bustamante', 'description': 'md5:f33f1c0a05be57f6708d4dd83a3b81c6', 'duration': 1439.0, - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', }, }, { diff --git a/youtube_dl/extractor/atttechchannel.py b/youtube_dl/extractor/atttechchannel.py index b01d35b..8f93fb3 100644 --- a/youtube_dl/extractor/atttechchannel.py +++ b/youtube_dl/extractor/atttechchannel.py @@ -14,7 +14,7 @@ class ATTTechChannelIE(InfoExtractor): 'ext': 'flv', 'title': 'AT&T Archives : The UNIX System: Making Computers Easier to Use', 'description': 'A 1982 film about UNIX is the foundation for software in use around Bell Labs and AT&T.', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'upload_date': '20140127', }, 'params': { diff --git a/youtube_dl/extractor/audioboom.py b/youtube_dl/extractor/audioboom.py index d7d1c63..8fc5f65 100644 --- a/youtube_dl/extractor/audioboom.py +++ b/youtube_dl/extractor/audioboom.py @@ -17,7 +17,7 @@ class AudioBoomIE(InfoExtractor): 'description': 'Guest: Nate Davis - NFL free agency, Guest: Stan Gans', 'duration': 2245.72, 'uploader': 'Steve Czaban', - 'uploader_url': 're:https?://(?:www\.)?audioboom\.com/channel/steveczabanyahoosportsradio', + 'uploader_url': r're:https?://(?:www\.)?audioboom\.com/channel/steveczabanyahoosportsradio', } }, { 'url': 'https://audioboom.com/posts/4279833-3-09-2016-czaban-hour-3?t=0', diff --git a/youtube_dl/extractor/azmedien.py b/youtube_dl/extractor/azmedien.py new file mode 100644 index 0000000..cbc3ed5 --- /dev/null +++ b/youtube_dl/extractor/azmedien.py @@ -0,0 +1,172 @@ +from __future__ import unicode_literals + +import re + +from .common import InfoExtractor +from .kaltura import KalturaIE +from ..utils import ( + get_element_by_id, + strip_or_none, + urljoin, +) + + +class AZMedienBaseIE(InfoExtractor): + def _kaltura_video(self, partner_id, entry_id): + return self.url_result( + 'kaltura:%s:%s' % (partner_id, entry_id), ie=KalturaIE.ie_key(), + video_id=entry_id) + + +class AZMedienIE(AZMedienBaseIE): + IE_DESC = 'AZ Medien videos' + _VALID_URL = r'''(?x) + https?:// + (?:www\.)? + (?: + telezueri\.ch| + telebaern\.tv| + telem1\.ch + )/ + [0-9]+-show-[^/\#]+ + (?: + /[0-9]+-episode-[^/\#]+ + (?: + /[0-9]+-segment-(?:[^/\#]+\#)?| + \# + )| + \# + ) + (?P<id>[^\#]+) + ''' + + _TESTS = [{ + # URL with 'segment' + 'url': 'http://www.telezueri.ch/62-show-zuerinews/13772-episode-sonntag-18-dezember-2016/32419-segment-massenabweisungen-beim-hiltl-club-wegen-pelzboom', + 'info_dict': { + 'id': '1_2444peh4', + 'ext': 'mov', + 'title': 'Massenabweisungen beim Hiltl Club wegen Pelzboom', + 'description': 'md5:9ea9dd1b159ad65b36ddcf7f0d7c76a8', + 'uploader_id': 'TeleZ?ri', + 'upload_date': '20161218', + 'timestamp': 1482084490, + }, + 'params': { + 'skip_download': True, + }, + }, { + # URL with 'segment' and fragment: + 'url': 'http://www.telebaern.tv/118-show-news/14240-episode-dienstag-17-januar-2017/33666-segment-achtung-gefahr#zu-wenig-pflegerinnen-und-pfleger', + 'only_matching': True + }, { + # URL with 'episode' and fragment: + 'url': 'http://www.telem1.ch/47-show-sonntalk/13986-episode-soldaten-fuer-grenzschutz-energiestrategie-obama-bilanz#soldaten-fuer-grenzschutz-energiestrategie-obama-bilanz', + 'only_matching': True + }, { + # URL with 'show' and fragment: + 'url': 'http://www.telezueri.ch/66-show-sonntalk#burka-plakate-trump-putin-china-besuch', + 'only_matching': True + }] + + def _real_extract(self, url): + video_id = self._match_id(url) + + webpage = self._download_webpage(url, video_id) + + partner_id = self._search_regex( + r'<script[^>]+src=["\'](?:https?:)?//(?:[^/]+\.)?kaltura\.com(?:/[^/]+)*/(?:p|partner_id)/([0-9]+)', + webpage, 'kaltura partner id') + entry_id = self._html_search_regex( + r'<a[^>]+data-id=(["\'])(?P<id>(?:(?!\1).)+)\1[^>]+data-slug=["\']%s' + % re.escape(video_id), webpage, 'kaltura entry id', group='id') + + return self._kaltura_video(partner_id, entry_id) + + +class AZMedienPlaylistIE(AZMedienBaseIE): + IE_DESC = 'AZ Medien playlists' + _VALID_URL = r'''(?x) + https?:// + (?:www\.)? + (?: + telezueri\.ch| + telebaern\.tv| + telem1\.ch + )/ + (?P<id>[0-9]+- + (?: + show| + topic| + themen + )-[^/\#]+ + (?: + /[0-9]+-episode-[^/\#]+ + )? + )$ + ''' + + _TESTS = [{ + # URL with 'episode' + 'url': 'http://www.telebaern.tv/118-show-news/13735-episode-donnerstag-15-dezember-2016', + 'info_dict': { + 'id': '118-show-news/13735-episode-donnerstag-15-dezember-2016', + 'title': 'News - Donnerstag, 15. Dezember 2016', + }, + 'playlist_count': 9, + }, { + # URL with 'themen' + 'url': 'http://www.telem1.ch/258-themen-tele-m1-classics', + 'info_dict': { + 'id': '258-themen-tele-m1-classics', + 'title': 'Tele M1 Classics', + }, + 'playlist_mincount': 15, + }, { + # URL with 'topic', contains nested playlists + 'url': 'http://www.telezueri.ch/219-topic-aera-trump-hat-offiziell-begonnen', + 'only_matching': True, + }, { + # URL with 'show' only + 'url': 'http://www.telezueri.ch/86-show-talktaeglich', + 'only_matching': True + }] + + def _real_extract(self, url): + show_id = self._match_id(url) + webpage = self._download_webpage(url, show_id) + + entries = [] + + partner_id = self._search_regex( + r'src=["\'](?:https?:)?//(?:[^/]+\.)kaltura\.com/(?:[^/]+/)*(?:p|partner_id)/(\d+)', + webpage, 'kaltura partner id', default=None) + + if partner_id: + entries = [ + self._kaltura_video(partner_id, m.group('id')) + for m in re.finditer( + r'data-id=(["\'])(?P<id>(?:(?!\1).)+)\1', webpage)] + + if not entries: + entries = [ + self.url_result(m.group('url'), ie=AZMedienIE.ie_key()) + for m in re.finditer( + r'<a[^>]+data-real=(["\'])(?P<url>http.+?)\1', webpage)] + + if not entries: + entries = [ + # May contain nested playlists (e.g. [1]) thus no explicit + # ie_key + # 1. http://www.telezueri.ch/219-topic-aera-trump-hat-offiziell-begonnen) + self.url_result(urljoin(url, m.group('url'))) + for m in re.finditer( + r'<a[^>]+name=[^>]+href=(["\'])(?P<url>/.+?)\1', webpage)] + + title = self._search_regex( + r'episodeShareTitle\s*=\s*(["\'])(?P<title>(?:(?!\1).)+)\1', + webpage, 'title', + default=strip_or_none(get_element_by_id( + 'video-title', webpage)), group='title') + + return self.playlist_result(entries, show_id, title) diff --git a/youtube_dl/extractor/azubu.py b/youtube_dl/extractor/azubu.py index 1eebf5d..3ba2f00 100644 --- a/youtube_dl/extractor/azubu.py +++ b/youtube_dl/extractor/azubu.py @@ -21,7 +21,7 @@ class AzubuIE(InfoExtractor): 'ext': 'mp4', 'title': '2014 HOT6 CUP LAST BIG MATCH Ro8 Day 1', 'description': 'md5:d06bdea27b8cc4388a90ad35b5c66c01', - 'thumbnail': 're:^https?://.*\.jpe?g', + 'thumbnail': r're:^https?://.*\.jpe?g', 'timestamp': 1417523507.334, 'upload_date': '20141202', 'duration': 9988.7, @@ -38,7 +38,7 @@ class AzubuIE(InfoExtractor): 'ext': 'mp4', 'title': 'Fnatic at Worlds 2014: Toyz - "I love Rekkles, he has amazing mechanics"', 'description': 'md5:4a649737b5f6c8b5c5be543e88dc62af', - 'thumbnail': 're:^https?://.*\.jpe?g', + 'thumbnail': r're:^https?://.*\.jpe?g', 'timestamp': 1410530893.320, 'upload_date': '20140912', 'duration': 172.385, diff --git a/youtube_dl/extractor/bandcamp.py b/youtube_dl/extractor/bandcamp.py index 88c590e..056e063 100644 --- a/youtube_dl/extractor/bandcamp.py +++ b/youtube_dl/extractor/bandcamp.py @@ -209,6 +209,15 @@ class BandcampAlbumIE(InfoExtractor): 'id': 'entropy-ep', }, 'playlist_mincount': 3, + }, { + # not all tracks have songs + 'url': 'https://insulters.bandcamp.com/album/we-are-the-plague', + 'info_dict': { + 'id': 'we-are-the-plague', + 'title': 'WE ARE THE PLAGUE', + 'uploader_id': 'insulters', + }, + 'playlist_count': 2, }] def _real_extract(self, url): @@ -217,12 +226,16 @@ class BandcampAlbumIE(InfoExtractor): album_id = mobj.group('album_id') playlist_id = album_id or uploader_id webpage = self._download_webpage(url, playlist_id) - tracks_paths = re.findall(r'<a href="(.*?)" itemprop="url">', webpage) - if not tracks_paths: + track_elements = re.findall( + r'(?s)<div[^>]*>(.*?<a[^>]+href="([^"]+?)"[^>]+itemprop="url"[^>]*>.*?)</div>', webpage) + if not track_elements: raise ExtractorError('The page doesn\'t contain any tracks') + # Only tracks with duration info have songs entries = [ self.url_result(compat_urlparse.urljoin(url, t_path), ie=BandcampIE.ie_key()) - for t_path in tracks_paths] + for elem_content, t_path in track_elements + if self._html_search_meta('duration', elem_content, default=None)] + title = self._html_search_regex( r'album_title\s*:\s*"((?:\\.|[^"\\])+?)"', webpage, 'title', fatal=False) diff --git a/youtube_dl/extractor/beampro.py b/youtube_dl/extractor/beampro.py new file mode 100644 index 0000000..f3a9e32 --- /dev/null +++ b/youtube_dl/extractor/beampro.py @@ -0,0 +1,73 @@ +# coding: utf-8 +from __future__ import unicode_literals + +from .common import InfoExtractor +from ..utils import ( + ExtractorError, + clean_html, + compat_str, + int_or_none, + parse_iso8601, + try_get, +) + + +class BeamProLiveIE(InfoExtractor): + IE_NAME = 'Beam:live' + _VALID_URL = r'https?://(?:\w+\.)?beam\.pro/(?P<id>[^/?#&]+)' + _RATINGS = {'family': 0, 'teen': 13, '18+': 18} + _TEST = { + 'url': 'http://www.beam.pro/niterhayven', + 'info_dict': { + 'id': '261562', + 'ext': 'mp4', + 'title': 'Introducing The Witcher 3 // The Grind Starts Now!', + 'description': 'md5:0b161ac080f15fe05d18a07adb44a74d', + 'thumbnail': r're:https://.*\.jpg$', + 'timestamp': 1483477281, + 'upload_date': '20170103', + 'uploader': 'niterhayven', + 'uploader_id': '373396', + 'age_limit': 18, + 'is_live': True, + 'view_count': int, + }, + 'skip': 'niterhayven is offline', + 'params': { + 'skip_download': True, + }, + } + + def _real_extract(self, url): + channel_name = self._match_id(url) + + chan = self._download_json( + 'https://beam.pro/api/v1/channels/%s' % channel_name, channel_name) + + if chan.get('online') is False: + raise ExtractorError( + '{0} is offline'.format(channel_name), expected=True) + + channel_id = chan['id'] + + formats = self._extract_m3u8_formats( + 'https://beam.pro/api/v1/channels/%s/manifest.m3u8' % channel_id, + channel_name, ext='mp4', m3u8_id='hls', fatal=False) + self._sort_formats(formats) + + user_id = chan.get('userId') or try_get(chan, lambda x: x['user']['id']) + + return { + 'id': compat_str(chan.get('id') or channel_name), + 'title': self._live_title(chan.get('name') or channel_name), + 'description': clean_html(chan.get('description')), + 'thumbnail': try_get(chan, lambda x: x['thumbnail']['url'], compat_str), + 'timestamp': parse_iso8601(chan.get('updatedAt')), + 'uploader': chan.get('token') or try_get( + chan, lambda x: x['user']['username'], compat_str), + 'uploader_id': compat_str(user_id) if user_id else None, + 'age_limit': self._RATINGS.get(chan.get('audience')), + 'is_live': True, + 'view_count': int_or_none(chan.get('viewersTotal')), + 'formats': formats, + } diff --git a/youtube_dl/extractor/bet.py b/youtube_dl/extractor/bet.py index 1f8ef03..d7ceaa8 100644 --- a/youtube_dl/extractor/bet.py +++ b/youtube_dl/extractor/bet.py @@ -17,7 +17,7 @@ class BetIE(MTVServicesInfoExtractor): 'description': 'President Obama urges persistence in confronting racism and bias.', 'duration': 1534, 'upload_date': '20141208', - 'thumbnail': 're:(?i)^https?://.*\.jpg$', + 'thumbnail': r're:(?i)^https?://.*\.jpg$', 'subtitles': { 'en': 'mincount:2', } @@ -37,7 +37,7 @@ class BetIE(MTVServicesInfoExtractor): 'description': 'A BET News special.', 'duration': 1696, 'upload_date': '20141125', - 'thumbnail': 're:(?i)^https?://.*\.jpg$', + 'thumbnail': r're:(?i)^https?://.*\.jpg$', 'subtitles': { 'en': 'mincount:2', } diff --git a/youtube_dl/extractor/bild.py b/youtube_dl/extractor/bild.py index 1a01848..b8dfbd4 100644 --- a/youtube_dl/extractor/bild.py +++ b/youtube_dl/extractor/bild.py @@ -19,7 +19,7 @@ class BildIE(InfoExtractor): 'ext': 'mp4', 'title': 'Das können die neuen iPads', 'description': 'md5:a4058c4fa2a804ab59c00d7244bbf62f', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'duration': 196, } } diff --git a/youtube_dl/extractor/bilibili.py b/youtube_dl/extractor/bilibili.py index 2d174e6..80dd838 100644 --- a/youtube_dl/extractor/bilibili.py +++ b/youtube_dl/extractor/bilibili.py @@ -5,19 +5,27 @@ import hashlib import re from .common import InfoExtractor -from ..compat import compat_parse_qs +from ..compat import ( + compat_parse_qs, + compat_urlparse, +) from ..utils import ( + ExtractorError, int_or_none, float_or_none, + parse_iso8601, + smuggle_url, + strip_jsonp, unified_timestamp, + unsmuggle_url, urlencode_postdata, ) class BiliBiliIE(InfoExtractor): - _VALID_URL = r'https?://(?:www\.|bangumi\.|)bilibili\.(?:tv|com)/(?:video/av|anime/v/)(?P<id>\d+)' + _VALID_URL = r'https?://(?:www\.|bangumi\.|)bilibili\.(?:tv|com)/(?:video/av|anime/(?P<anime_id>\d+)/play#)(?P<id>\d+)' - _TEST = { + _TESTS = [{ 'url': 'http://www.bilibili.tv/video/av1074402/', 'md5': '9fa226fe2b8a9a4d5a69b4c6a183417e', 'info_dict': { @@ -28,29 +36,65 @@ class BiliBiliIE(InfoExtractor): 'duration': 308.315, 'timestamp': 1398012660, 'upload_date': '20140420', - 'thumbnail': 're:^https?://.+\.jpg', + 'thumbnail': r're:^https?://.+\.jpg', 'uploader': '菊子桑', 'uploader_id': '156160', }, - } + }, { + # Tested in BiliBiliBangumiIE + 'url': 'http://bangumi.bilibili.com/anime/1869/play#40062', + 'only_matching': True, + }, { + 'url': 'http://bangumi.bilibili.com/anime/5802/play#100643', + 'md5': '3f721ad1e75030cc06faf73587cfec57', + 'info_dict': { + 'id': '100643', + 'ext': 'mp4', + 'title': 'CHAOS;CHILD', + 'description': '如果你是神明,并且能够让妄想成为现实。那你会进行怎么样的妄想?是淫靡的世界?独裁社会?毁灭性的制裁?还是……2015年,涩谷。从6年前发生的大灾害“涩谷地震”之后复兴了的这个街区里新设立的私立高中...', + }, + 'skip': 'Geo-restricted to China', + }] + + _APP_KEY = '84956560bc028eb7' + _BILIBILI_KEY = '94aba54af9065f71de72f5508f1cd42e' - _APP_KEY = '6f90a59ac58a4123' - _BILIBILI_KEY = '0bfd84cc3940035173f35e6777508326' + def _report_error(self, result): + if 'message' in result: + raise ExtractorError('%s said: %s' % (self.IE_NAME, result['message']), expected=True) + elif 'code' in result: + raise ExtractorError('%s returns error %d' % (self.IE_NAME, result['code']), expected=True) + else: + raise ExtractorError('Can\'t extract Bangumi episode ID') def _real_extract(self, url): - video_id = self._match_id(url) + url, smuggled_data = unsmuggle_url(url, {}) + + mobj = re.match(self._VALID_URL, url) + video_id = mobj.group('id') + anime_id = mobj.group('anime_id') webpage = self._download_webpage(url, video_id) - if 'anime/v' not in url: + if 'anime/' not in url: cid = compat_parse_qs(self._search_regex( [r'EmbedPlayer\([^)]+,\s*"([^"]+)"\)', r'<iframe[^>]+src="https://secure\.bilibili\.com/secure,([^"]+)"'], webpage, 'player parameters'))['cid'][0] else: + if 'no_bangumi_tip' not in smuggled_data: + self.to_screen('Downloading episode %s. To download all videos in anime %s, re-run youtube-dl with %s' % ( + video_id, anime_id, compat_urlparse.urljoin(url, '//bangumi.bilibili.com/anime/%s' % anime_id))) + headers = { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8', + } + headers.update(self.geo_verification_headers()) + js = self._download_json( 'http://bangumi.bilibili.com/web_api/get_source', video_id, data=urlencode_postdata({'episode_id': video_id}), - headers={'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'}) + headers=headers) + if 'result' not in js: + self._report_error(js) cid = js['result']['cid'] payload = 'appkey=%s&cid=%s&otype=json&quality=2&type=mp4' % (self._APP_KEY, cid) @@ -58,7 +102,11 @@ class BiliBiliIE(InfoExtractor): video_info = self._download_json( 'http://interface.bilibili.com/playurl?%s&sign=%s' % (payload, sign), - video_id, note='Downloading video info page') + video_id, note='Downloading video info page', + headers=self.geo_verification_headers()) + + if 'durl' not in video_info: + self._report_error(video_info) entries = [] @@ -85,7 +133,7 @@ class BiliBiliIE(InfoExtractor): title = self._html_search_regex('<h1[^>]+title="([^"]+)">', webpage, 'title') description = self._html_search_meta('description', webpage) timestamp = unified_timestamp(self._html_search_regex( - r'<time[^>]+datetime="([^"]+)"', webpage, 'upload time', fatal=False)) + r'<time[^>]+datetime="([^"]+)"', webpage, 'upload time', default=None)) thumbnail = self._html_search_meta(['og:image', 'thumbnailUrl'], webpage) # TODO 'view_count' requires deobfuscating Javascript @@ -99,7 +147,7 @@ class BiliBiliIE(InfoExtractor): } uploader_mobj = re.search( - r'<a[^>]+href="https?://space\.bilibili\.com/(?P<id>\d+)"[^>]+title="(?P<name>[^"]+)"', + r'<a[^>]+href="(?:https?:)?//space\.bilibili\.com/(?P<id>\d+)"[^>]+title="(?P<name>[^"]+)"', webpage) if uploader_mobj: info.update({ @@ -123,3 +171,70 @@ class BiliBiliIE(InfoExtractor): 'description': description, 'entries': entries, } + + +class BiliBiliBangumiIE(InfoExtractor): + _VALID_URL = r'https?://bangumi\.bilibili\.com/anime/(?P<id>\d+)' + + IE_NAME = 'bangumi.bilibili.com' + IE_DESC = 'BiliBili番剧' + + _TESTS = [{ + 'url': 'http://bangumi.bilibili.com/anime/1869', + 'info_dict': { + 'id': '1869', + 'title': '混沌武士', + 'description': 'md5:6a9622b911565794c11f25f81d6a97d2', + }, + 'playlist_count': 26, + }, { + 'url': 'http://bangumi.bilibili.com/anime/1869', + 'info_dict': { + 'id': '1869', + 'title': '混沌武士', + 'description': 'md5:6a9622b911565794c11f25f81d6a97d2', + }, + 'playlist': [{ + 'md5': '91da8621454dd58316851c27c68b0c13', + 'info_dict': { + 'id': '40062', + 'ext': 'mp4', + 'title': '混沌武士', + 'description': '故事发生在日本的江户时代。风是一个小酒馆的打工女。一日,酒馆里来了一群恶霸,虽然他们的举动令风十分不满,但是毕竟风只是一届女流,无法对他们采取什么行动,只能在心里嘟哝。这时,酒家里又进来了个“不良份子...', + 'timestamp': 1414538739, + 'upload_date': '20141028', + 'episode': '疾风怒涛 Tempestuous Temperaments', + 'episode_number': 1, + }, + }], + 'params': { + 'playlist_items': '1', + }, + }] + + @classmethod + def suitable(cls, url): + return False if BiliBiliIE.suitable(url) else super(BiliBiliBangumiIE, cls).suitable(url) + + def _real_extract(self, url): + bangumi_id = self._match_id(url) + + # Sometimes this API returns a JSONP response + season_info = self._download_json( + 'http://bangumi.bilibili.com/jsonp/seasoninfo/%s.ver' % bangumi_id, + bangumi_id, transform_source=strip_jsonp)['result'] + + entries = [{ + '_type': 'url_transparent', + 'url': smuggle_url(episode['webplay_url'], {'no_bangumi_tip': 1}), + 'ie_key': BiliBiliIE.ie_key(), + 'timestamp': parse_iso8601(episode.get('update_time'), delimiter=' '), + 'episode': episode.get('index_title'), + 'episode_number': int_or_none(episode.get('index')), + } for episode in season_info['episodes']] + + entries = sorted(entries, key=lambda entry: entry.get('episode_number')) + + return self.playlist_result( + entries, bangumi_id, + season_info.get('bangumi_title'), season_info.get('evaluate')) diff --git a/youtube_dl/extractor/biobiochiletv.py b/youtube_dl/extractor/biobiochiletv.py index 7608c0a..b92031c 100644 --- a/youtube_dl/extractor/biobiochiletv.py +++ b/youtube_dl/extractor/biobiochiletv.py @@ -19,7 +19,7 @@ class BioBioChileTVIE(InfoExtractor): 'id': 'sobre-camaras-y-camarillas-parlamentarias', 'ext': 'mp4', 'title': 'Sobre Cámaras y camarillas parlamentarias', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'uploader': 'Fernando Atria', }, 'skip': 'URL expired and redirected to http://www.biobiochile.cl/portada/bbtv/index.html', @@ -31,7 +31,7 @@ class BioBioChileTVIE(InfoExtractor): 'id': 'natalia-valdebenito-repasa-a-diputado-hasbun-paso-a-la-categoria-de-hablar-brutalidades', 'ext': 'mp4', 'title': 'Natalia Valdebenito repasa a diputado Hasbún: Pasó a la categoría de hablar brutalidades', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'uploader': 'Piangella Obrador', }, 'params': { diff --git a/youtube_dl/extractor/bloomberg.py b/youtube_dl/extractor/bloomberg.py index 2a8cd64..c5e11e8 100644 --- a/youtube_dl/extractor/bloomberg.py +++ b/youtube_dl/extractor/bloomberg.py @@ -45,7 +45,8 @@ class BloombergIE(InfoExtractor): name = self._match_id(url) webpage = self._download_webpage(url, name) video_id = self._search_regex( - r'["\']bmmrId["\']\s*:\s*(["\'])(?P<url>.+?)\1', + (r'["\']bmmrId["\']\s*:\s*(["\'])(?P<url>(?:(?!\1).)+)\1', + r'videoId\s*:\s*(["\'])(?P<url>(?:(?!\1).)+)\1'), webpage, 'id', group='url', default=None) if not video_id: bplayer_data = self._parse_json(self._search_regex( diff --git a/youtube_dl/extractor/breakcom.py b/youtube_dl/extractor/breakcom.py index 725859b..5a87c26 100644 --- a/youtube_dl/extractor/breakcom.py +++ b/youtube_dl/extractor/breakcom.py @@ -1,9 +1,9 @@ from __future__ import unicode_literals import re -import json from .common import InfoExtractor +from ..compat import compat_str from ..utils import ( int_or_none, parse_age_limit, @@ -11,7 +11,7 @@ from ..utils import ( class BreakIE(InfoExtractor): - _VALID_URL = r'https?://(?:www\.)?break\.com/video/(?:[^/]+/)*.+-(?P<id>\d+)' + _VALID_URL = r'https?://(?:www\.)?(?P<site>break|screenjunkies)\.com/video/(?P<display_id>[^/]+?)(?:-(?P<id>\d+))?(?:[/?#&]|$)' _TESTS = [{ 'url': 'http://www.break.com/video/when-girls-act-like-guys-2468056', 'info_dict': { @@ -20,45 +20,124 @@ class BreakIE(InfoExtractor): 'title': 'When Girls Act Like D-Bags', 'age_limit': 13, } + }, { + 'url': 'http://www.screenjunkies.com/video/best-quentin-tarantino-movie-2841915', + 'md5': '5c2b686bec3d43de42bde9ec047536b0', + 'info_dict': { + 'id': '2841915', + 'display_id': 'best-quentin-tarantino-movie', + 'ext': 'mp4', + 'title': 'Best Quentin Tarantino Movie', + 'thumbnail': r're:^https?://.*\.jpg', + 'duration': 3671, + 'age_limit': 13, + 'tags': list, + }, + }, { + 'url': 'http://www.screenjunkies.com/video/honest-trailers-the-dark-knight', + 'info_dict': { + 'id': '2348808', + 'display_id': 'honest-trailers-the-dark-knight', + 'ext': 'mp4', + 'title': 'Honest Trailers - The Dark Knight', + 'thumbnail': r're:^https?://.*\.(?:jpg|png)', + 'age_limit': 10, + 'tags': list, + }, + }, { + # requires subscription but worked around + 'url': 'http://www.screenjunkies.com/video/knocking-dead-ep-1-the-show-so-far-3003285', + 'info_dict': { + 'id': '3003285', + 'display_id': 'knocking-dead-ep-1-the-show-so-far', + 'ext': 'mp4', + 'title': 'State of The Dead Recap: Knocking Dead Pilot', + 'thumbnail': r're:^https?://.*\.jpg', + 'duration': 3307, + 'age_limit': 13, + 'tags': list, + }, }, { 'url': 'http://www.break.com/video/ugc/baby-flex-2773063', 'only_matching': True, }] + _DEFAULT_BITRATES = (48, 150, 320, 496, 864, 2240, 3264) + def _real_extract(self, url): - video_id = self._match_id(url) + site, display_id, video_id = re.match(self._VALID_URL, url).groups() + + if not video_id: + webpage = self._download_webpage(url, display_id) + video_id = self._search_regex( + (r'src=["\']/embed/(\d+)', r'data-video-content-id=["\'](\d+)'), + webpage, 'video id') + webpage = self._download_webpage( - 'http://www.break.com/embed/%s' % video_id, video_id) - info = json.loads(self._search_regex( - r'var embedVars = ({.*})\s*?</script>', - webpage, 'info json', flags=re.DOTALL)) + 'http://www.%s.com/embed/%s' % (site, video_id), + display_id, 'Downloading video embed page') + embed_vars = self._parse_json( + self._search_regex( + r'(?s)embedVars\s*=\s*({.+?})\s*</script>', webpage, 'embed vars'), + display_id) - youtube_id = info.get('youtubeId') + youtube_id = embed_vars.get('youtubeId') if youtube_id: return self.url_result(youtube_id, 'Youtube') - formats = [{ - 'url': media['uri'] + '?' + info['AuthToken'], - 'tbr': media['bitRate'], - 'width': media['width'], - 'height': media['height'], - } for media in info['media'] if media.get('mediaPurpose') == 'play'] + title = embed_vars['contentName'] - if not formats: + formats = [] + bitrates = [] + for f in embed_vars.get('media', []): + if not f.get('uri') or f.get('mediaPurpose') != 'play': + continue + bitrate = int_or_none(f.get('bitRate')) + if bitrate: + bitrates.append(bitrate) formats.append({ - 'url': info['videoUri'] + 'url': f['uri'], + 'format_id': 'http-%d' % bitrate if bitrate else 'http', + 'width': int_or_none(f.get('width')), + 'height': int_or_none(f.get('height')), + 'tbr': bitrate, + 'format': 'mp4', }) - self._sort_formats(formats) + if not bitrates: + # When subscriptionLevel > 0, i.e. plus subscription is required + # media list will be empty. However, hds and hls uris are still + # available. We can grab them assuming bitrates to be default. + bitrates = self._DEFAULT_BITRATES + + auth_token = embed_vars.get('AuthToken') - duration = int_or_none(info.get('videoLengthInSeconds')) - age_limit = parse_age_limit(info.get('audienceRating')) + def construct_manifest_url(base_url, ext): + pieces = [base_url] + pieces.extend([compat_str(b) for b in bitrates]) + pieces.append('_kbps.mp4.%s?%s' % (ext, auth_token)) + return ','.join(pieces) + + if bitrates and auth_token: + hds_url = embed_vars.get('hdsUri') + if hds_url: + formats.extend(self._extract_f4m_formats( + construct_manifest_url(hds_url, 'f4m'), + display_id, f4m_id='hds', fatal=False)) + hls_url = embed_vars.get('hlsUri') + if hls_url: + formats.extend(self._extract_m3u8_formats( + construct_manifest_url(hls_url, 'm3u8'), + display_id, 'mp4', entry_protocol='m3u8_native', m3u8_id='hls', fatal=False)) + self._sort_formats(formats) return { 'id': video_id, - 'title': info['contentName'], - 'thumbnail': info['thumbUri'], - 'duration': duration, - 'age_limit': age_limit, + 'display_id': display_id, + 'title': title, + 'thumbnail': embed_vars.get('thumbUri'), + 'duration': int_or_none(embed_vars.get('videoLengthInSeconds')) or None, + 'age_limit': parse_age_limit(embed_vars.get('audienceRating')), + 'tags': embed_vars.get('tags', '').split(','), 'formats': formats, } diff --git a/youtube_dl/extractor/brightcove.py b/youtube_dl/extractor/brightcove.py index 945cf19..5c6e99d 100644 --- a/youtube_dl/extractor/brightcove.py +++ b/youtube_dl/extractor/brightcove.py @@ -179,7 +179,7 @@ class BrightcoveLegacyIE(InfoExtractor): params = {} - playerID = find_param('playerID') + playerID = find_param('playerID') or find_param('playerId') if playerID is None: raise ExtractorError('Cannot find player ID') params['playerID'] = playerID @@ -204,7 +204,7 @@ class BrightcoveLegacyIE(InfoExtractor): # // build Brightcove <object /> XML # } m = re.search( - r'''(?x)customBC.\createVideo\( + r'''(?x)customBC\.createVideo\( .*? # skipping width and height ["\'](?P<playerID>\d+)["\']\s*,\s* # playerID ["\'](?P<playerKey>AQ[^"\']{48})[^"\']*["\']\s*,\s* # playerKey begins with AQ and is 50 characters @@ -232,13 +232,16 @@ class BrightcoveLegacyIE(InfoExtractor): """Return a list of all Brightcove URLs from the webpage """ url_m = re.search( - r'<meta\s+property=[\'"]og:video[\'"]\s+content=[\'"](https?://(?:secure|c)\.brightcove.com/[^\'"]+)[\'"]', - webpage) + r'''(?x) + <meta\s+ + (?:property|itemprop)=([\'"])(?:og:video|embedURL)\1[^>]+ + content=([\'"])(?P<url>https?://(?:secure|c)\.brightcove.com/(?:(?!\2).)+)\2 + ''', webpage) if url_m: - url = unescapeHTML(url_m.group(1)) + url = unescapeHTML(url_m.group('url')) # Some sites don't add it, we can't download with this url, for example: # http://www.ktvu.com/videos/news/raw-video-caltrain-releases-video-of-man-almost/vCTZdY/ - if 'playerKey' in url or 'videoId' in url: + if 'playerKey' in url or 'videoId' in url or 'idVideo' in url: return [url] matches = re.findall( @@ -259,7 +262,7 @@ class BrightcoveLegacyIE(InfoExtractor): url, smuggled_data = unsmuggle_url(url, {}) # Change the 'videoId' and others field to '@videoPlayer' - url = re.sub(r'(?<=[?&])(videoI(d|D)|bctid)', '%40videoPlayer', url) + url = re.sub(r'(?<=[?&])(videoI(d|D)|idVideo|bctid)', '%40videoPlayer', url) # Change bckey (used by bcove.me urls) to playerKey url = re.sub(r'(?<=[?&])bckey', 'playerKey', url) mobj = re.match(self._VALID_URL, url) @@ -548,7 +551,7 @@ class BrightcoveNewIE(InfoExtractor): container = source.get('container') ext = mimetype2ext(source.get('type')) src = source.get('src') - if ext == 'ism': + if ext == 'ism' or container == 'WVM': continue elif ext == 'm3u8' or container == 'M2TS': if not src: diff --git a/youtube_dl/extractor/byutv.py b/youtube_dl/extractor/byutv.py index 4be175d..8ef0896 100644 --- a/youtube_dl/extractor/byutv.py +++ b/youtube_dl/extractor/byutv.py @@ -16,7 +16,7 @@ class BYUtvIE(InfoExtractor): 'ext': 'mp4', 'title': 'Season 5 Episode 5', 'description': 'md5:e07269172baff037f8e8bf9956bc9747', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'duration': 1486.486, }, 'params': { diff --git a/youtube_dl/extractor/camdemy.py b/youtube_dl/extractor/camdemy.py index d4e6fbd..8f0c6c5 100644 --- a/youtube_dl/extractor/camdemy.py +++ b/youtube_dl/extractor/camdemy.py @@ -26,7 +26,7 @@ class CamdemyIE(InfoExtractor): 'id': '5181', 'ext': 'mp4', 'title': 'Ch1-1 Introduction, Signals (02-23-2012)', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'creator': 'ss11spring', 'duration': 1591, 'upload_date': '20130114', @@ -41,7 +41,7 @@ class CamdemyIE(InfoExtractor): 'id': '13885', 'ext': 'mp4', 'title': 'EverCam + Camdemy QuickStart', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'description': 'md5:2a9f989c2b153a2342acee579c6e7db6', 'creator': 'evercam', 'duration': 318, diff --git a/youtube_dl/extractor/canalplus.py b/youtube_dl/extractor/canalplus.py index 1c3c41d..4b9fa2d 100644 --- a/youtube_dl/extractor/canalplus.py +++ b/youtube_dl/extractor/canalplus.py @@ -27,6 +27,7 @@ class CanalplusIE(InfoExtractor): (?:www\.)?d8\.tv| (?:www\.)?c8\.fr| (?:www\.)?d17\.tv| + (?:(?:football|www)\.)?cstar\.fr| (?:www\.)?itele\.fr )/(?:(?:[^/]+/)*(?P<display_id>[^/?#&]+))?(?:\?.*\bvid=(?P<vid>\d+))?| player\.canalplus\.fr/#/(?P<id>\d+) @@ -40,6 +41,7 @@ class CanalplusIE(InfoExtractor): 'd8': 'd8', 'c8': 'd8', 'd17': 'd17', + 'cstar': 'd17', 'itele': 'itele', } @@ -86,6 +88,19 @@ class CanalplusIE(InfoExtractor): 'description': 'Chaque matin du lundi au vendredi, Michaël Darmon reçoit un invité politique à 8h25.', 'upload_date': '20161014', }, + }, { + 'url': 'http://football.cstar.fr/cstar-minisite-foot/pid7566-feminines-videos.html?vid=1416769', + 'info_dict': { + 'id': '1416769', + 'display_id': 'pid7566-feminines-videos', + 'ext': 'mp4', + 'title': 'France - Albanie : les temps forts de la soirée - 20/09/2016', + 'description': 'md5:c3f30f2aaac294c1c969b3294de6904e', + 'upload_date': '20160921', + }, + 'params': { + 'skip_download': True, + }, }, { 'url': 'http://m.canalplus.fr/?vid=1398231', 'only_matching': True, @@ -105,8 +120,9 @@ class CanalplusIE(InfoExtractor): webpage = self._download_webpage(url, display_id) video_id = self._search_regex( [r'<canal:player[^>]+?videoId=(["\'])(?P<id>\d+)', - r'id=["\']canal_video_player(?P<id>\d+)'], - webpage, 'video id', group='id') + r'id=["\']canal_video_player(?P<id>\d+)', + r'data-video=["\'](?P<id>\d+)'], + webpage, 'video id', default=mobj.group('vid'), group='id') info_url = self._VIDEO_INFO_TEMPLATE % (site_id, video_id) video_data = self._download_json(info_url, video_id, 'Downloading video JSON') diff --git a/youtube_dl/extractor/canvas.py b/youtube_dl/extractor/canvas.py index d183d5d..544c665 100644 --- a/youtube_dl/extractor/canvas.py +++ b/youtube_dl/extractor/canvas.py @@ -17,7 +17,7 @@ class CanvasIE(InfoExtractor): 'ext': 'mp4', 'title': 'De afspraak veilt voor de Warmste Week', 'description': 'md5:24cb860c320dc2be7358e0e5aa317ba6', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'duration': 49.02, } }, { @@ -29,7 +29,7 @@ class CanvasIE(InfoExtractor): 'ext': 'mp4', 'title': 'Pieter 0167', 'description': 'md5:943cd30f48a5d29ba02c3a104dc4ec4e', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'duration': 2553.08, 'subtitles': { 'nl': [{ @@ -48,7 +48,7 @@ class CanvasIE(InfoExtractor): 'ext': 'mp4', 'title': 'Herbekijk Sorry voor alles', 'description': 'md5:8bb2805df8164e5eb95d6a7a29dc0dd3', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'duration': 3788.06, }, 'params': { @@ -89,6 +89,9 @@ class CanvasIE(InfoExtractor): elif format_type == 'HDS': formats.extend(self._extract_f4m_formats( format_url, display_id, f4m_id=format_type, fatal=False)) + elif format_type == 'MPEG_DASH': + formats.extend(self._extract_mpd_formats( + format_url, display_id, mpd_id=format_type, fatal=False)) else: formats.append({ 'format_id': format_type, diff --git a/youtube_dl/extractor/carambatv.py b/youtube_dl/extractor/carambatv.py index 66c0f90..9ba909a 100644 --- a/youtube_dl/extractor/carambatv.py +++ b/youtube_dl/extractor/carambatv.py @@ -21,7 +21,7 @@ class CarambaTVIE(InfoExtractor): 'id': '191910501', 'ext': 'mp4', 'title': '[BadComedian] - Разборка в Маниле (Абсолютный обзор)', - 'thumbnail': 're:^https?://.*\.jpg', + 'thumbnail': r're:^https?://.*\.jpg', 'duration': 2678.31, }, }, { @@ -69,7 +69,7 @@ class CarambaTVPageIE(InfoExtractor): 'id': '475222', 'ext': 'flv', 'title': '[BadComedian] - Разборка в Маниле (Абсолютный обзор)', - 'thumbnail': 're:^https?://.*\.jpg', + 'thumbnail': r're:^https?://.*\.jpg', # duration reported by videomore is incorrect 'duration': int, }, diff --git a/youtube_dl/extractor/cbc.py b/youtube_dl/extractor/cbc.py index d71fddf..cf678e7 100644 --- a/youtube_dl/extractor/cbc.py +++ b/youtube_dl/extractor/cbc.py @@ -90,36 +90,49 @@ class CBCIE(InfoExtractor): }, }], 'skip': 'Geo-restricted to Canada', + }, { + # multiple CBC.APP.Caffeine.initInstance(...) + 'url': 'http://www.cbc.ca/news/canada/calgary/dog-indoor-exercise-winter-1.3928238', + 'info_dict': { + 'title': 'Keep Rover active during the deep freeze with doggie pushups and other fun indoor tasks', + 'id': 'dog-indoor-exercise-winter-1.3928238', + }, + 'playlist_mincount': 6, }] @classmethod def suitable(cls, url): return False if CBCPlayerIE.suitable(url) else super(CBCIE, cls).suitable(url) + def _extract_player_init(self, player_init, display_id): + player_info = self._parse_json(player_init, display_id, js_to_json) + media_id = player_info.get('mediaId') + if not media_id: + clip_id = player_info['clipId'] + feed = self._download_json( + 'http://tpfeed.cbc.ca/f/ExhSPC/vms_5akSXx4Ng_Zn?byCustomValue={:mpsReleases}{%s}' % clip_id, + clip_id, fatal=False) + if feed: + media_id = try_get(feed, lambda x: x['entries'][0]['guid'], compat_str) + if not media_id: + media_id = self._download_json( + 'http://feed.theplatform.com/f/h9dtGB/punlNGjMlc1F?fields=id&byContent=byReleases%3DbyId%253D' + clip_id, + clip_id)['entries'][0]['id'].split('/')[-1] + return self.url_result('cbcplayer:%s' % media_id, 'CBCPlayer', media_id) + def _real_extract(self, url): display_id = self._match_id(url) webpage = self._download_webpage(url, display_id) - player_init = self._search_regex( - r'CBC\.APP\.Caffeine\.initInstance\(({.+?})\);', webpage, 'player init', - default=None) - if player_init: - player_info = self._parse_json(player_init, display_id, js_to_json) - media_id = player_info.get('mediaId') - if not media_id: - clip_id = player_info['clipId'] - feed = self._download_json( - 'http://tpfeed.cbc.ca/f/ExhSPC/vms_5akSXx4Ng_Zn?byCustomValue={:mpsReleases}{%s}' % clip_id, - clip_id, fatal=False) - if feed: - media_id = try_get(feed, lambda x: x['entries'][0]['guid'], compat_str) - if not media_id: - media_id = self._download_json( - 'http://feed.theplatform.com/f/h9dtGB/punlNGjMlc1F?fields=id&byContent=byReleases%3DbyId%253D' + clip_id, - clip_id)['entries'][0]['id'].split('/')[-1] - return self.url_result('cbcplayer:%s' % media_id, 'CBCPlayer', media_id) - else: - entries = [self.url_result('cbcplayer:%s' % media_id, 'CBCPlayer', media_id) for media_id in re.findall(r'<iframe[^>]+src="[^"]+?mediaId=(\d+)"', webpage)] - return self.playlist_result(entries) + entries = [ + self._extract_player_init(player_init, display_id) + for player_init in re.findall(r'CBC\.APP\.Caffeine\.initInstance\(({.+?})\);', webpage)] + entries.extend([ + self.url_result('cbcplayer:%s' % media_id, 'CBCPlayer', media_id) + for media_id in re.findall(r'<iframe[^>]+src="[^"]+?mediaId=(\d+)"', webpage)]) + return self.playlist_result( + entries, display_id, + self._og_search_title(webpage, fatal=False), + self._og_search_description(webpage)) class CBCPlayerIE(InfoExtractor): @@ -283,11 +296,12 @@ class CBCWatchVideoIE(CBCWatchBaseIE): formats = self._extract_m3u8_formats(re.sub(r'/([^/]+)/[^/?]+\.m3u8', r'/\1/\1.m3u8', m3u8_url), video_id, 'mp4', fatal=False) if len(formats) < 2: formats = self._extract_m3u8_formats(m3u8_url, video_id, 'mp4') - # Despite metadata in m3u8 all video+audio formats are - # actually video-only (no audio) for f in formats: - if f.get('acodec') != 'none' and f.get('vcodec') != 'none': - f['acodec'] = 'none' + format_id = f.get('format_id') + if format_id.startswith('AAC'): + f['acodec'] = 'aac' + elif format_id.startswith('AC3'): + f['acodec'] = 'ac-3' self._sort_formats(formats) info = { diff --git a/youtube_dl/extractor/cbsnews.py b/youtube_dl/extractor/cbsnews.py index 91b0f5f..17bb9af 100644 --- a/youtube_dl/extractor/cbsnews.py +++ b/youtube_dl/extractor/cbsnews.py @@ -39,7 +39,7 @@ class CBSNewsIE(CBSIE): 'upload_date': '20140404', 'timestamp': 1396650660, 'uploader': 'CBSI-NEW', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'duration': 205, 'subtitles': { 'en': [{ diff --git a/youtube_dl/extractor/ccc.py b/youtube_dl/extractor/ccc.py index 8f7f09e..7347021 100644 --- a/youtube_dl/extractor/ccc.py +++ b/youtube_dl/extractor/ccc.py @@ -19,7 +19,7 @@ class CCCIE(InfoExtractor): 'ext': 'mp4', 'title': 'Introduction to Processor Design', 'description': 'md5:df55f6d073d4ceae55aae6f2fd98a0ac', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'upload_date': '20131228', 'timestamp': 1388188800, 'duration': 3710, @@ -32,7 +32,7 @@ class CCCIE(InfoExtractor): def _real_extract(self, url): display_id = self._match_id(url) webpage = self._download_webpage(url, display_id) - event_id = self._search_regex("data-id='(\d+)'", webpage, 'event id') + event_id = self._search_regex(r"data-id='(\d+)'", webpage, 'event id') event_data = self._download_json('https://media.ccc.de/public/events/%s' % event_id, event_id) formats = [] diff --git a/youtube_dl/extractor/ccma.py b/youtube_dl/extractor/ccma.py new file mode 100644 index 0000000..39938c9 --- /dev/null +++ b/youtube_dl/extractor/ccma.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, + parse_duration, + parse_iso8601, + clean_html, +) + + +class CCMAIE(InfoExtractor): + _VALID_URL = r'https?://(?:www\.)?ccma\.cat/(?:[^/]+/)*?(?P<type>video|audio)/(?P<id>\d+)' + _TESTS = [{ + 'url': 'http://www.ccma.cat/tv3/alacarta/lespot-de-la-marato-de-tv3/lespot-de-la-marato-de-tv3/video/5630208/', + 'md5': '7296ca43977c8ea4469e719c609b0871', + 'info_dict': { + 'id': '5630208', + 'ext': 'mp4', + 'title': 'L\'espot de La Marató de TV3', + 'description': 'md5:f12987f320e2f6e988e9908e4fe97765', + 'timestamp': 1470918540, + 'upload_date': '20160811', + } + }, { + 'url': 'http://www.ccma.cat/catradio/alacarta/programa/el-consell-de-savis-analitza-el-derbi/audio/943685/', + 'md5': 'fa3e38f269329a278271276330261425', + 'info_dict': { + 'id': '943685', + 'ext': 'mp3', + 'title': 'El Consell de Savis analitza el derbi', + 'description': 'md5:e2a3648145f3241cb9c6b4b624033e53', + 'upload_date': '20171205', + 'timestamp': 1512507300, + } + }] + + def _real_extract(self, url): + media_type, media_id = re.match(self._VALID_URL, url).groups() + media_data = {} + formats = [] + profiles = ['pc'] if media_type == 'audio' else ['mobil', 'pc'] + for i, profile in enumerate(profiles): + md = self._download_json('http://dinamics.ccma.cat/pvideo/media.jsp', media_id, query={ + 'media': media_type, + 'idint': media_id, + 'profile': profile, + }, fatal=False) + if md: + media_data = md + media_url = media_data.get('media', {}).get('url') + if media_url: + formats.append({ + 'format_id': profile, + 'url': media_url, + 'quality': i, + }) + self._sort_formats(formats) + + informacio = media_data['informacio'] + title = informacio['titol'] + durada = informacio.get('durada', {}) + duration = int_or_none(durada.get('milisegons'), 1000) or parse_duration(durada.get('text')) + timestamp = parse_iso8601(informacio.get('data_emissio', {}).get('utc')) + + subtitles = {} + subtitols = media_data.get('subtitols', {}) + if subtitols: + sub_url = subtitols.get('url') + if sub_url: + subtitles.setdefault( + subtitols.get('iso') or subtitols.get('text') or 'ca', []).append({ + 'url': sub_url, + }) + + thumbnails = [] + imatges = media_data.get('imatges', {}) + if imatges: + thumbnail_url = imatges.get('url') + if thumbnail_url: + thumbnails = [{ + 'url': thumbnail_url, + 'width': int_or_none(imatges.get('amplada')), + 'height': int_or_none(imatges.get('alcada')), + }] + + return { + 'id': media_id, + 'title': title, + 'description': clean_html(informacio.get('descripcio')), + 'duration': duration, + 'timestamp': timestamp, + 'thumnails': thumbnails, + 'subtitles': subtitles, + 'formats': formats, + } diff --git a/youtube_dl/extractor/cctv.py b/youtube_dl/extractor/cctv.py index 72a72cb..c76f361 100644 --- a/youtube_dl/extractor/cctv.py +++ b/youtube_dl/extractor/cctv.py @@ -4,50 +4,188 @@ from __future__ import unicode_literals import re from .common import InfoExtractor -from ..utils import float_or_none +from ..compat import compat_str +from ..utils import ( + float_or_none, + try_get, + unified_timestamp, +) class CCTVIE(InfoExtractor): - _VALID_URL = r'''(?x)https?://(?:.+?\.)? - (?: - cctv\.(?:com|cn)| - cntv\.cn - )/ - (?: - video/[^/]+/(?P<id>[0-9a-f]{32})| - \d{4}/\d{2}/\d{2}/(?P<display_id>VID[0-9A-Za-z]+) - )''' + IE_DESC = '央视网' + _VALID_URL = r'https?://(?:(?:[^/]+)\.(?:cntv|cctv)\.(?:com|cn)|(?:www\.)?ncpa-classic\.com)/(?:[^/]+/)*?(?P<id>[^/?#&]+?)(?:/index)?(?:\.s?html|[?#&]|$)' _TESTS = [{ - 'url': 'http://english.cntv.cn/2016/09/03/VIDEhnkB5y9AgHyIEVphCEz1160903.shtml', - 'md5': '819c7b49fc3927d529fb4cd555621823', + # fo.addVariable("videoCenterId","id") + 'url': 'http://sports.cntv.cn/2016/02/12/ARTIaBRxv4rTT1yWf1frW2wi160212.shtml', + 'md5': 'd61ec00a493e09da810bf406a078f691', 'info_dict': { - 'id': '454368eb19ad44a1925bf1eb96140a61', + 'id': '5ecdbeab623f4973b40ff25f18b174e8', 'ext': 'mp4', - 'title': 'Portrait of Real Current Life 09/03/2016 Modern Inventors Part 1', - } + 'title': '[NBA]二少联手砍下46分 雷霆主场击败鹈鹕(快讯)', + 'description': 'md5:7e14a5328dc5eb3d1cd6afbbe0574e95', + 'duration': 98, + 'uploader': 'songjunjie', + 'timestamp': 1455279956, + 'upload_date': '20160212', + }, + }, { + # var guid = "id" + 'url': 'http://tv.cctv.com/2016/02/05/VIDEUS7apq3lKrHG9Dncm03B160205.shtml', + 'info_dict': { + 'id': 'efc5d49e5b3b4ab2b34f3a502b73d3ae', + 'ext': 'mp4', + 'title': '[赛车]“车王”舒马赫恢复情况成谜(快讯)', + 'description': '2月4日,蒙特泽莫罗透露了关于“车王”舒马赫恢复情况,但情况是否属实遭到了质疑。', + 'duration': 37, + 'uploader': 'shujun', + 'timestamp': 1454677291, + 'upload_date': '20160205', + }, + 'params': { + 'skip_download': True, + }, + }, { + # changePlayer('id') + 'url': 'http://english.cntv.cn/special/four_comprehensives/index.shtml', + 'info_dict': { + 'id': '4bb9bb4db7a6471ba85fdeda5af0381e', + 'ext': 'mp4', + 'title': 'NHnews008 ANNUAL POLITICAL SEASON', + 'description': 'Four Comprehensives', + 'duration': 60, + 'uploader': 'zhangyunlei', + 'timestamp': 1425385521, + 'upload_date': '20150303', + }, + 'params': { + 'skip_download': True, + }, + }, { + # loadvideo('id') + 'url': 'http://cctv.cntv.cn/lm/tvseries_russian/yilugesanghua/index.shtml', + 'info_dict': { + 'id': 'b15f009ff45c43968b9af583fc2e04b2', + 'ext': 'mp4', + 'title': 'Путь,усыпанный космеями Серия 1', + 'description': 'Путь, усыпанный космеями', + 'duration': 2645, + 'uploader': 'renxue', + 'timestamp': 1477479241, + 'upload_date': '20161026', + }, + 'params': { + 'skip_download': True, + }, + }, { + # var initMyAray = 'id' + 'url': 'http://www.ncpa-classic.com/2013/05/22/VIDE1369219508996867.shtml', + 'info_dict': { + 'id': 'a194cfa7f18c426b823d876668325946', + 'ext': 'mp4', + 'title': '小泽征尔音乐塾 音乐梦想无国界', + 'duration': 2173, + 'timestamp': 1369248264, + 'upload_date': '20130522', + }, + 'params': { + 'skip_download': True, + }, + }, { + # var ids = ["id"] + 'url': 'http://www.ncpa-classic.com/clt/more/416/index.shtml', + 'info_dict': { + 'id': 'a8606119a4884588a79d81c02abecc16', + 'ext': 'mp3', + 'title': '来自维也纳的新年贺礼', + 'description': 'md5:f13764ae8dd484e84dd4b39d5bcba2a7', + 'duration': 1578, + 'uploader': 'djy', + 'timestamp': 1482942419, + 'upload_date': '20161228', + }, + 'params': { + 'skip_download': True, + }, + 'expected_warnings': ['Failed to download m3u8 information'], + }, { + 'url': 'http://ent.cntv.cn/2016/01/18/ARTIjprSSJH8DryTVr5Bx8Wb160118.shtml', + 'only_matching': True, + }, { + 'url': 'http://tv.cntv.cn/video/C39296/e0210d949f113ddfb38d31f00a4e5c44', + 'only_matching': True, + }, { + 'url': 'http://english.cntv.cn/2016/09/03/VIDEhnkB5y9AgHyIEVphCEz1160903.shtml', + 'only_matching': True, }, { 'url': 'http://tv.cctv.com/2016/09/07/VIDE5C1FnlX5bUywlrjhxXOV160907.shtml', 'only_matching': True, }, { 'url': 'http://tv.cntv.cn/video/C39296/95cfac44cabd3ddc4a9438780a4e5c44', - 'only_matching': True + 'only_matching': True, }] def _real_extract(self, url): - video_id, display_id = re.match(self._VALID_URL, url).groups() - if not video_id: - webpage = self._download_webpage(url, display_id) - video_id = self._search_regex( - r'(?:fo\.addVariable\("videoCenterId",\s*|guid\s*=\s*)"([0-9a-f]{32})', - webpage, 'video_id') - api_data = self._download_json( - 'http://vdn.apps.cntv.cn/api/getHttpVideoInfo.do?pid=' + video_id, video_id) - m3u8_url = re.sub(r'maxbr=\d+&?', '', api_data['hls_url']) + video_id = self._match_id(url) + webpage = self._download_webpage(url, video_id) + + video_id = self._search_regex( + [r'var\s+guid\s*=\s*["\']([\da-fA-F]+)', + r'videoCenterId["\']\s*,\s*["\']([\da-fA-F]+)', + r'changePlayer\s*\(\s*["\']([\da-fA-F]+)', + r'load[Vv]ideo\s*\(\s*["\']([\da-fA-F]+)', + r'var\s+initMyAray\s*=\s*["\']([\da-fA-F]+)', + r'var\s+ids\s*=\s*\[["\']([\da-fA-F]+)'], + webpage, 'video id') + + data = self._download_json( + 'http://vdn.apps.cntv.cn/api/getHttpVideoInfo.do', video_id, + query={ + 'pid': video_id, + 'url': url, + 'idl': 32, + 'idlr': 32, + 'modifyed': 'false', + }) + + title = data['title'] + + formats = [] + + video = data.get('video') + if isinstance(video, dict): + for quality, chapters_key in enumerate(('lowChapters', 'chapters')): + video_url = try_get( + video, lambda x: x[chapters_key][0]['url'], compat_str) + if video_url: + formats.append({ + 'url': video_url, + 'format_id': 'http', + 'quality': quality, + 'preference': -1, + }) + + hls_url = try_get(data, lambda x: x['hls_url'], compat_str) + if hls_url: + hls_url = re.sub(r'maxbr=\d+&?', '', hls_url) + formats.extend(self._extract_m3u8_formats( + hls_url, video_id, 'mp4', entry_protocol='m3u8_native', + m3u8_id='hls', fatal=False)) + + self._sort_formats(formats) + + uploader = data.get('editer_name') + description = self._html_search_meta( + 'description', webpage, default=None) + timestamp = unified_timestamp(data.get('f_pgmtime')) + duration = float_or_none(try_get(video, lambda x: x['totalLength'])) return { 'id': video_id, - 'title': api_data['title'], - 'formats': self._extract_m3u8_formats( - m3u8_url, video_id, 'mp4', 'm3u8_native', fatal=False), - 'duration': float_or_none(api_data.get('video', {}).get('totalLength')), + 'title': title, + 'description': description, + 'uploader': uploader, + 'timestamp': timestamp, + 'duration': duration, + 'formats': formats, } diff --git a/youtube_dl/extractor/cda.py b/youtube_dl/extractor/cda.py index e00bdaf..ae7af2f 100755 --- a/youtube_dl/extractor/cda.py +++ b/youtube_dl/extractor/cda.py @@ -24,7 +24,7 @@ class CDAIE(InfoExtractor): 'height': 720, 'title': 'Oto dlaczego przed zakrętem należy zwolnić.', 'description': 'md5:269ccd135d550da90d1662651fcb9772', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'average_rating': float, 'duration': 39 } @@ -36,7 +36,7 @@ class CDAIE(InfoExtractor): 'ext': 'mp4', 'title': 'Lądowanie na lotnisku na Maderze', 'description': 'md5:60d76b71186dcce4e0ba6d4bbdb13e1a', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'uploader': 'crash404', 'view_count': int, 'average_rating': float, diff --git a/youtube_dl/extractor/ceskatelevize.py b/youtube_dl/extractor/ceskatelevize.py index 4ec79d1..4f88c31 100644 --- a/youtube_dl/extractor/ceskatelevize.py +++ b/youtube_dl/extractor/ceskatelevize.py @@ -25,7 +25,7 @@ class CeskaTelevizeIE(InfoExtractor): 'ext': 'mp4', 'title': 'Hyde Park Civilizace', 'description': 'md5:fe93f6eda372d150759d11644ebbfb4a', - 'thumbnail': 're:^https?://.*\.jpg', + 'thumbnail': r're:^https?://.*\.jpg', 'duration': 3350, }, 'params': { @@ -39,7 +39,7 @@ class CeskaTelevizeIE(InfoExtractor): 'ext': 'mp4', 'title': 'Hyde Park Civilizace: Bonus 01 - En', 'description': 'English Subtittles', - 'thumbnail': 're:^https?://.*\.jpg', + 'thumbnail': r're:^https?://.*\.jpg', 'duration': 81.3, }, 'params': { @@ -52,7 +52,7 @@ class CeskaTelevizeIE(InfoExtractor): 'info_dict': { 'id': 402, 'ext': 'mp4', - 'title': 're:^ČT Sport \d{4}-\d{2}-\d{2} \d{2}:\d{2}$', + 'title': r're:^ČT Sport \d{4}-\d{2}-\d{2} \d{2}:\d{2}$', 'is_live': True, }, 'params': { @@ -80,7 +80,7 @@ class CeskaTelevizeIE(InfoExtractor): 'id': '61924494877068022', 'ext': 'mp4', 'title': 'Queer: Bogotart (Queer)', - 'thumbnail': 're:^https?://.*\.jpg', + 'thumbnail': r're:^https?://.*\.jpg', 'duration': 1558.3, }, }], diff --git a/youtube_dl/extractor/channel9.py b/youtube_dl/extractor/channel9.py index 34d4e61..865dbca 100644 --- a/youtube_dl/extractor/channel9.py +++ b/youtube_dl/extractor/channel9.py @@ -31,7 +31,7 @@ class Channel9IE(InfoExtractor): 'title': 'Developer Kick-Off Session: Stuff We Love', 'description': 'md5:c08d72240b7c87fcecafe2692f80e35f', 'duration': 4576, - 'thumbnail': 're:http://.*\.jpg', + 'thumbnail': r're:http://.*\.jpg', 'session_code': 'KOS002', 'session_day': 'Day 1', 'session_room': 'Arena 1A', @@ -47,7 +47,7 @@ class Channel9IE(InfoExtractor): 'title': 'Self-service BI with Power BI - nuclear testing', 'description': 'md5:d1e6ecaafa7fb52a2cacdf9599829f5b', 'duration': 1540, - 'thumbnail': 're:http://.*\.jpg', + 'thumbnail': r're:http://.*\.jpg', 'authors': ['Mike Wilmot'], }, }, { @@ -59,7 +59,7 @@ class Channel9IE(InfoExtractor): 'title': 'Ranges for the Standard Library', 'description': 'md5:2e6b4917677af3728c5f6d63784c4c5d', 'duration': 5646, - 'thumbnail': 're:http://.*\.jpg', + 'thumbnail': r're:http://.*\.jpg', }, 'params': { 'skip_download': True, diff --git a/youtube_dl/extractor/charlierose.py b/youtube_dl/extractor/charlierose.py index 4bf2cf7..2d517f2 100644 --- a/youtube_dl/extractor/charlierose.py +++ b/youtube_dl/extractor/charlierose.py @@ -13,7 +13,7 @@ class CharlieRoseIE(InfoExtractor): 'id': '27996', 'ext': 'mp4', 'title': 'Remembering Zaha Hadid', - 'thumbnail': 're:^https?://.*\.jpg\?\d+', + 'thumbnail': r're:^https?://.*\.jpg\?\d+', 'description': 'We revisit past conversations with Zaha Hadid, in memory of the world renowned Iraqi architect.', 'subtitles': { 'en': [{ diff --git a/youtube_dl/extractor/chaturbate.py b/youtube_dl/extractor/chaturbate.py index 29a8820..8fbc91c 100644 --- a/youtube_dl/extractor/chaturbate.py +++ b/youtube_dl/extractor/chaturbate.py @@ -1,5 +1,7 @@ from __future__ import unicode_literals +import re + from .common import InfoExtractor from ..utils import ExtractorError @@ -31,30 +33,35 @@ class ChaturbateIE(InfoExtractor): webpage = self._download_webpage(url, video_id) - m3u8_url = self._search_regex( - r'src=(["\'])(?P<url>http.+?\.m3u8.*?)\1', webpage, - 'playlist', default=None, group='url') + m3u8_formats = [(m.group('id').lower(), m.group('url')) for m in re.finditer( + r'hlsSource(?P<id>.+?)\s*=\s*(?P<q>["\'])(?P<url>http.+?)(?P=q)', webpage)] - if not m3u8_url: + if not m3u8_formats: error = self._search_regex( [r'<span[^>]+class=(["\'])desc_span\1[^>]*>(?P<error>[^<]+)</span>', r'<div[^>]+id=(["\'])defchat\1[^>]*>\s*<p><strong>(?P<error>[^<]+)<'], webpage, 'error', group='error', default=None) if not error: - if any(p not in webpage for p in ( + if any(p in webpage for p in ( self._ROOM_OFFLINE, 'offline_tipping', 'tip_offline')): error = self._ROOM_OFFLINE if error: raise ExtractorError(error, expected=True) raise ExtractorError('Unable to find stream URL') - formats = self._extract_m3u8_formats(m3u8_url, video_id, ext='mp4') + formats = [] + for m3u8_id, m3u8_url in m3u8_formats: + formats.extend(self._extract_m3u8_formats( + m3u8_url, video_id, ext='mp4', + # ffmpeg skips segments for fast m3u8 + preference=-10 if m3u8_id == 'fast' else None, + m3u8_id=m3u8_id, fatal=False, live=True)) self._sort_formats(formats) return { 'id': video_id, 'title': self._live_title(video_id), - 'thumbnail': 'https://cdn-s.highwebmedia.com/uHK3McUtGCG3SMFcd4ZJsRv8/roomimage/%s.jpg' % video_id, + 'thumbnail': 'https://roomimg.stream.highwebmedia.com/ri/%s.jpg' % video_id, 'age_limit': self._rta_search(webpage), 'is_live': True, 'formats': formats, diff --git a/youtube_dl/extractor/chirbit.py b/youtube_dl/extractor/chirbit.py index f35df14..4815b34 100644 --- a/youtube_dl/extractor/chirbit.py +++ b/youtube_dl/extractor/chirbit.py @@ -19,6 +19,7 @@ class ChirbitIE(InfoExtractor): 'title': 'md5:f542ea253f5255240be4da375c6a5d7e', 'description': 'md5:f24a4e22a71763e32da5fed59e47c770', 'duration': 306, + 'uploader': 'Gerryaudio', }, 'params': { 'skip_download': True, @@ -54,6 +55,9 @@ class ChirbitIE(InfoExtractor): duration = parse_duration(self._search_regex( r'class=["\']c-length["\'][^>]*>([^<]+)', webpage, 'duration', fatal=False)) + uploader = self._search_regex( + r'id=["\']chirbit-username["\'][^>]*>([^<]+)', + webpage, 'uploader', fatal=False) return { 'id': audio_id, @@ -61,6 +65,7 @@ class ChirbitIE(InfoExtractor): 'title': title, 'description': description, 'duration': duration, + 'uploader': uploader, } diff --git a/youtube_dl/extractor/cliphunter.py b/youtube_dl/extractor/cliphunter.py index 252c2e8..ab651d1 100644 --- a/youtube_dl/extractor/cliphunter.py +++ b/youtube_dl/extractor/cliphunter.py @@ -30,7 +30,7 @@ class CliphunterIE(InfoExtractor): 'id': '1012420', 'ext': 'flv', 'title': 'Fun Jynx Maze solo', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'age_limit': 18, }, 'skip': 'Video gone', @@ -41,7 +41,7 @@ class CliphunterIE(InfoExtractor): 'id': '2019449', 'ext': 'mp4', 'title': 'ShesNew - My booty girlfriend, Victoria Paradice\'s pussy filled with jizz', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'age_limit': 18, }, }] diff --git a/youtube_dl/extractor/clipsyndicate.py b/youtube_dl/extractor/clipsyndicate.py index 0b6ad89..6cdb42f 100644 --- a/youtube_dl/extractor/clipsyndicate.py +++ b/youtube_dl/extractor/clipsyndicate.py @@ -18,7 +18,7 @@ class ClipsyndicateIE(InfoExtractor): 'ext': 'mp4', 'title': 'Brick Briscoe', 'duration': 612, - 'thumbnail': 're:^https?://.+\.jpg', + 'thumbnail': r're:^https?://.+\.jpg', }, }, { 'url': 'http://chic.clipsyndicate.com/video/play/5844117/shark_attack', diff --git a/youtube_dl/extractor/clubic.py b/youtube_dl/extractor/clubic.py index f7ee3a8..98f9cb5 100644 --- a/youtube_dl/extractor/clubic.py +++ b/youtube_dl/extractor/clubic.py @@ -19,7 +19,7 @@ class ClubicIE(InfoExtractor): 'ext': 'mp4', 'title': 'Clubic Week 2.0 : le FBI se lance dans la photo d\u0092identité', 'description': 're:Gueule de bois chez Nokia. Le constructeur a indiqué cette.*', - 'thumbnail': 're:^http://img\.clubic\.com/.*\.jpg$', + 'thumbnail': r're:^http://img\.clubic\.com/.*\.jpg$', } }, { 'url': 'http://www.clubic.com/video/video-clubic-week-2-0-apple-iphone-6s-et-plus-mais-surtout-le-pencil-469792.html', diff --git a/youtube_dl/extractor/cmt.py b/youtube_dl/extractor/cmt.py index 7d3e9b0..e701fbe 100644 --- a/youtube_dl/extractor/cmt.py +++ b/youtube_dl/extractor/cmt.py @@ -1,13 +1,11 @@ from __future__ import unicode_literals from .mtv import MTVIE -from ..utils import ExtractorError class CMTIE(MTVIE): IE_NAME = 'cmt.com' - _VALID_URL = r'https?://(?:www\.)?cmt\.com/(?:videos|shows)/(?:[^/]+/)*(?P<videoid>\d+)' - _FEED_URL = 'http://www.cmt.com/sitewide/apps/player/embed/rss/' + _VALID_URL = r'https?://(?:www\.)?cmt\.com/(?:videos|shows|(?:full-)?episodes|video-clips)/(?P<id>[^/]+)' _TESTS = [{ 'url': 'http://www.cmt.com/videos/garth-brooks/989124/the-call-featuring-trisha-yearwood.jhtml#artist=30061', @@ -33,17 +31,24 @@ class CMTIE(MTVIE): }, { 'url': 'http://www.cmt.com/shows/party-down-south/party-down-south-ep-407-gone-girl/1738172/playlist/#id=1738172', 'only_matching': True, + }, { + 'url': 'http://www.cmt.com/full-episodes/537qb3/nashville-the-wayfaring-stranger-season-5-ep-501', + 'only_matching': True, + }, { + 'url': 'http://www.cmt.com/video-clips/t9e4ci/nashville-juliette-in-2-minutes', + 'only_matching': True, }] - @classmethod - def _transform_rtmp_url(cls, rtmp_video_url): - if 'error_not_available.swf' in rtmp_video_url: - raise ExtractorError( - '%s said: video is not available' % cls.IE_NAME, expected=True) - - return super(CMTIE, cls)._transform_rtmp_url(rtmp_video_url) - def _extract_mgid(self, webpage): - return self._search_regex( + mgid = self._search_regex( r'MTVN\.VIDEO\.contentUri\s*=\s*([\'"])(?P<mgid>.+?)\1', - webpage, 'mgid', group='mgid') + webpage, 'mgid', group='mgid', default=None) + if not mgid: + mgid = self._extract_triforce_mgid(webpage) + return mgid + + def _real_extract(self, url): + video_id = self._match_id(url) + webpage = self._download_webpage(url, video_id) + mgid = self._extract_mgid(webpage) + return self.url_result('http://media.mtvnservices.com/embed/%s' % mgid) diff --git a/youtube_dl/extractor/collegerama.py b/youtube_dl/extractor/collegerama.py index f9e8419..18c7347 100644 --- a/youtube_dl/extractor/collegerama.py +++ b/youtube_dl/extractor/collegerama.py @@ -21,7 +21,7 @@ class CollegeRamaIE(InfoExtractor): 'ext': 'mp4', 'title': 'Een nieuwe wereld: waarden, bewustzijn en techniek van de mensheid 2.0.', 'description': '', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'duration': 7713.088, 'timestamp': 1413309600, 'upload_date': '20141014', diff --git a/youtube_dl/extractor/comedycentral.py b/youtube_dl/extractor/comedycentral.py index 0239dfd..4cac294 100644 --- a/youtube_dl/extractor/comedycentral.py +++ b/youtube_dl/extractor/comedycentral.py @@ -48,15 +48,7 @@ class ComedyCentralFullEpisodesIE(MTVServicesInfoExtractor): def _real_extract(self, url): playlist_id = self._match_id(url) webpage = self._download_webpage(url, playlist_id) - - feed_json = self._search_regex(r'var triforceManifestFeed\s*=\s*(\{.+?\});\n', webpage, 'triforce feeed') - feed = self._parse_json(feed_json, playlist_id) - zones = feed['manifest']['zones'] - - video_zone = zones['t2_lc_promo1'] - feed = self._download_json(video_zone['feed'], playlist_id) - mgid = feed['result']['data']['id'] - + mgid = self._extract_triforce_mgid(webpage, data_zone='t2_lc_promo1') videos_info = self._get_videos_info(mgid) return videos_info @@ -79,7 +71,7 @@ class ToshIE(MTVServicesInfoExtractor): 'ext': 'mp4', 'title': 'Tosh.0|June 9, 2077|2|211|Twitter Users Share Summer Plans', 'description': 'Tosh asked fans to share their summer plans.', - 'thumbnail': 're:^https?://.*\.jpg', + 'thumbnail': r're:^https?://.*\.jpg', # It's really reported to be published on year 2077 'upload_date': '20770610', 'timestamp': 3390510600, @@ -93,12 +85,6 @@ class ToshIE(MTVServicesInfoExtractor): 'only_matching': True, }] - @classmethod - def _transform_rtmp_url(cls, rtmp_video_url): - new_urls = super(ToshIE, cls)._transform_rtmp_url(rtmp_video_url) - new_urls['rtmp'] = rtmp_video_url.replace('viacomccstrm', 'viacommtvstrm') - return new_urls - class ComedyCentralTVIE(MTVServicesInfoExtractor): _VALID_URL = r'https?://(?:www\.)?comedycentral\.tv/(?:staffeln|shows)/(?P<id>[^/?#&]+)' diff --git a/youtube_dl/extractor/common.py b/youtube_dl/extractor/common.py index 05c51fa..0b4e2ac 100644 --- a/youtube_dl/extractor/common.py +++ b/youtube_dl/extractor/common.py @@ -59,6 +59,7 @@ from ..utils import ( parse_m3u8_attributes, extract_attributes, parse_codecs, + urljoin, ) @@ -120,9 +121,19 @@ class InfoExtractor(object): download, lower-case. "http", "https", "rtsp", "rtmp", "rtmpe", "m3u8", "m3u8_native" or "http_dash_segments". - * fragments A list of fragments of the fragmented media, - with the following entries: - * "url" (mandatory) - fragment's URL + * fragment_base_url + Base URL for fragments. Each fragment's path + value (if present) will be relative to + this URL. + * fragments A list of fragments of a fragmented media. + Each fragment entry must contain either an url + or a path. If an url is present it should be + considered by a client. Otherwise both path and + fragment_base_url must be present. Here is + the list of all potential fields: + * "url" - fragment's URL + * "path" - fragment's path relative to + fragment_base_url * "duration" (optional, int or float) * "filesize" (optional, int) * preference Order number of this format. If this field is @@ -188,9 +199,10 @@ class InfoExtractor(object): uploader_url: Full URL to a personal webpage of the video uploader. location: Physical location where the video was filmed. subtitles: The available subtitles as a dictionary in the format - {language: subformats}. "subformats" is a list sorted from - lower to higher preference, each element is a dictionary - with the "ext" entry and one of: + {tag: subformats}. "tag" is usually a language code, and + "subformats" is a list sorted from lower to higher + preference, each element is a dictionary with the "ext" + entry and one of: * "data": The subtitles file contents * "url": A URL pointing to the subtitles file "ext" will be calculated from URL if missing @@ -1013,13 +1025,13 @@ class InfoExtractor(object): unique_formats.append(f) formats[:] = unique_formats - def _is_valid_url(self, url, video_id, item='video'): + def _is_valid_url(self, url, video_id, item='video', headers={}): url = self._proto_relative_url(url, scheme='http:') # For now assume non HTTP(S) URLs always valid if not (url.startswith('http://') or url.startswith('https://')): return True try: - self._request_webpage(url, video_id, 'Checking %s URL' % item) + self._request_webpage(url, video_id, 'Checking %s URL' % item, headers=headers) return True except ExtractorError as e: if isinstance(e.cause, compat_urllib_error.URLError): @@ -1224,6 +1236,7 @@ class InfoExtractor(object): 'protocol': entry_protocol, 'preference': preference, }] + audio_in_video_stream = {} last_info = {} last_media = {} for line in m3u8_doc.splitlines(): @@ -1233,25 +1246,32 @@ class InfoExtractor(object): media = parse_m3u8_attributes(line) media_type = media.get('TYPE') if media_type in ('VIDEO', 'AUDIO'): + group_id = media.get('GROUP-ID') media_url = media.get('URI') if media_url: format_id = [] - for v in (media.get('GROUP-ID'), media.get('NAME')): + for v in (group_id, media.get('NAME')): if v: format_id.append(v) - formats.append({ + f = { 'format_id': '-'.join(format_id), 'url': format_url(media_url), 'language': media.get('LANGUAGE'), - 'vcodec': 'none' if media_type == 'AUDIO' else None, 'ext': ext, 'protocol': entry_protocol, 'preference': preference, - }) + } + if media_type == 'AUDIO': + f['vcodec'] = 'none' + if group_id and not audio_in_video_stream.get(group_id): + audio_in_video_stream[group_id] = False + formats.append(f) else: # When there is no URI in EXT-X-MEDIA let this tag's # data be used by regular URI lines below last_media = media + if media_type == 'AUDIO' and group_id: + audio_in_video_stream[group_id] = True elif line.startswith('#') or not line.strip(): continue else: @@ -1295,6 +1315,9 @@ class InfoExtractor(object): 'abr': abr, }) f.update(parse_codecs(last_info.get('CODECS'))) + if audio_in_video_stream.get(last_info.get('AUDIO')) is False and f['vcodec'] != 'none': + # TODO: update acodec for audio only formats with the same GROUP-ID + f['acodec'] = 'none' formats.append(f) last_info = {} last_media = {} @@ -1614,21 +1637,16 @@ class InfoExtractor(object): segment_template = element.find(_add_ns('SegmentTemplate')) if segment_template is not None: extract_common(segment_template) - media_template = segment_template.get('media') - if media_template: - ms_info['media_template'] = media_template + media = segment_template.get('media') + if media: + ms_info['media'] = media initialization = segment_template.get('initialization') if initialization: - ms_info['initialization_url'] = initialization + ms_info['initialization'] = initialization else: extract_Initialization(segment_template) return ms_info - def combine_url(base_url, target_url): - if re.match(r'^https?://', target_url): - return target_url - return '%s%s%s' % (base_url, '' if base_url.endswith('/') else '/', target_url) - mpd_duration = parse_duration(mpd_doc.get('mediaPresentationDuration')) formats = [] for period in mpd_doc.findall(_add_ns('Period')): @@ -1668,6 +1686,7 @@ class InfoExtractor(object): lang = representation_attrib.get('lang') url_el = representation.find(_add_ns('BaseURL')) filesize = int_or_none(url_el.attrib.get('{http://youtube.com/yt/2012/10/10}contentLength') if url_el is not None else None) + bandwidth = int_or_none(representation_attrib.get('bandwidth')) f = { 'format_id': '%s-%s' % (mpd_id, representation_id) if mpd_id else representation_id, 'url': base_url, @@ -1675,23 +1694,41 @@ class InfoExtractor(object): 'ext': mimetype2ext(mime_type), 'width': int_or_none(representation_attrib.get('width')), 'height': int_or_none(representation_attrib.get('height')), - 'tbr': int_or_none(representation_attrib.get('bandwidth'), 1000), + 'tbr': int_or_none(bandwidth, 1000), 'asr': int_or_none(representation_attrib.get('audioSamplingRate')), 'fps': int_or_none(representation_attrib.get('frameRate')), - 'vcodec': 'none' if content_type == 'audio' else representation_attrib.get('codecs'), - 'acodec': 'none' if content_type == 'video' else representation_attrib.get('codecs'), 'language': lang if lang not in ('mul', 'und', 'zxx', 'mis') else None, 'format_note': 'DASH %s' % content_type, 'filesize': filesize, } + f.update(parse_codecs(representation_attrib.get('codecs'))) representation_ms_info = extract_multisegment_info(representation, adaption_set_ms_info) - if 'segment_urls' not in representation_ms_info and 'media_template' in representation_ms_info: - media_template = representation_ms_info['media_template'] - media_template = media_template.replace('$RepresentationID$', representation_id) - media_template = re.sub(r'\$(Number|Bandwidth|Time)\$', r'%(\1)d', media_template) - media_template = re.sub(r'\$(Number|Bandwidth|Time)%([^$]+)\$', r'%(\1)\2', media_template) - media_template.replace('$$', '$') + def prepare_template(template_name, identifiers): + t = representation_ms_info[template_name] + 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) + t.replace('$$', '$') + return t + + # @initialization is a regular template like @media one + # so it should be handled just the same way (see + # https://github.com/rg3/youtube-dl/issues/11605) + if 'initialization' in representation_ms_info: + initialization_template = prepare_template( + 'initialization', + # As per [1, 5.3.9.4.2, Table 15, page 54] $Number$ and + # $Time$ shall not be included for @initialization thus + # only $Bandwidth$ remains + ('Bandwidth', )) + representation_ms_info['initialization_url'] = initialization_template % { + 'Bandwidth': bandwidth, + } + + if 'segment_urls' not in representation_ms_info and 'media' in representation_ms_info: + + media_template = prepare_template('media', ('Number', 'Bandwidth', 'Time')) # As per [1, 5.3.9.4.4, Table 16, page 55] $Number$ and $Time$ # can't be used at the same time @@ -1703,7 +1740,7 @@ class InfoExtractor(object): representation_ms_info['fragments'] = [{ 'url': media_template % { 'Number': segment_number, - 'Bandwidth': int_or_none(representation_attrib.get('bandwidth')), + 'Bandwidth': bandwidth, }, 'duration': segment_duration, } for segment_number in range( @@ -1721,7 +1758,7 @@ class InfoExtractor(object): def add_segment_url(): segment_url = media_template % { 'Time': segment_time, - 'Bandwidth': int_or_none(representation_attrib.get('bandwidth')), + 'Bandwidth': bandwidth, 'Number': segment_number, } representation_ms_info['fragments'].append({ @@ -1744,14 +1781,16 @@ class InfoExtractor(object): # Example: https://www.youtube.com/watch?v=iXZV5uAYMJI # or any YouTube dashsegments video fragments = [] - s_num = 0 - for segment_url in representation_ms_info['segment_urls']: - s = representation_ms_info['s'][s_num] + segment_index = 0 + timescale = representation_ms_info['timescale'] + for s in representation_ms_info['s']: + duration = float_or_none(s['d'], timescale) for r in range(s.get('r', 0) + 1): fragments.append({ - 'url': segment_url, - 'duration': float_or_none(s['d'], representation_ms_info['timescale']), + 'url': representation_ms_info['segment_urls'][segment_index], + 'duration': duration, }) + segment_index += 1 representation_ms_info['fragments'] = fragments # NB: MPD manifest may contain direct URLs to unfragmented media. # No fragments key is present in this case. @@ -1761,13 +1800,13 @@ class InfoExtractor(object): 'protocol': 'http_dash_segments', }) if 'initialization_url' in representation_ms_info: - initialization_url = representation_ms_info['initialization_url'].replace('$RepresentationID$', representation_id) + initialization_url = representation_ms_info['initialization_url'] if not f.get('url'): f['url'] = initialization_url f['fragments'].append({'url': initialization_url}) f['fragments'].extend(representation_ms_info['fragments']) for fragment in f['fragments']: - fragment['url'] = combine_url(base_url, fragment['url']) + fragment['url'] = urljoin(base_url, fragment['url']) try: existing_format = next( fo for fo in formats @@ -1881,7 +1920,7 @@ class InfoExtractor(object): }) return formats - def _parse_html5_media_entries(self, base_url, webpage, video_id, m3u8_id=None, m3u8_entry_protocol='m3u8'): + def _parse_html5_media_entries(self, base_url, webpage, video_id, m3u8_id=None, m3u8_entry_protocol='m3u8', mpd_id=None): def absolute_url(video_url): return compat_urlparse.urljoin(base_url, video_url) @@ -1898,11 +1937,16 @@ class InfoExtractor(object): def _media_formats(src, cur_media_type): full_url = absolute_url(src) - if determine_ext(full_url) == 'm3u8': + ext = determine_ext(full_url) + if ext == 'm3u8': is_plain_url = False formats = self._extract_m3u8_formats( full_url, video_id, ext='mp4', entry_protocol=m3u8_entry_protocol, m3u8_id=m3u8_id) + elif ext == 'mpd': + is_plain_url = False + formats = self._extract_mpd_formats( + full_url, video_id, mpd_id=mpd_id) else: is_plain_url = True formats = [{ @@ -1915,7 +1959,12 @@ class InfoExtractor(object): media_tags = [(media_tag, media_type, '') for media_tag, media_type in re.findall(r'(?s)(<(video|audio)[^>]*/>)', webpage)] - media_tags.extend(re.findall(r'(?s)(<(?P<tag>video|audio)[^>]*>)(.*?)</(?P=tag)>', webpage)) + media_tags.extend(re.findall( + # We only allow video|audio followed by a whitespace or '>'. + # Allowing more characters may end up in significant slow down (see + # https://github.com/rg3/youtube-dl/issues/11979, example URL: + # http://www.porntrex.com/maps/videositemap.xml). + r'(?s)(<(?P<tag>video|audio)(?:\s+[^>]*)?>)(.*?)</(?P=tag)>', webpage)) for media_tag, media_type, media_content in media_tags: media_info = { 'formats': [], @@ -1955,10 +2004,13 @@ class InfoExtractor(object): entries.append(media_info) return entries - def _extract_akamai_formats(self, manifest_url, video_id): + def _extract_akamai_formats(self, manifest_url, video_id, hosts={}): formats = [] hdcore_sign = 'hdcore=3.7.0' - f4m_url = re.sub(r'(https?://.+?)/i/', r'\1/z/', manifest_url).replace('/master.m3u8', '/manifest.f4m') + f4m_url = re.sub(r'(https?://[^/+])/i/', r'\1/z/', manifest_url).replace('/master.m3u8', '/manifest.f4m') + hds_host = hosts.get('hds') + if hds_host: + f4m_url = re.sub(r'(https?://)[^/]+', r'\1' + hds_host, f4m_url) if 'hdcore=' not in f4m_url: f4m_url += ('&' if '?' in f4m_url else '?') + hdcore_sign f4m_formats = self._extract_f4m_formats( @@ -1966,7 +2018,10 @@ class InfoExtractor(object): for entry in f4m_formats: entry.update({'extra_param_to_segment_url': hdcore_sign}) formats.extend(f4m_formats) - m3u8_url = re.sub(r'(https?://.+?)/z/', r'\1/i/', manifest_url).replace('/manifest.f4m', '/master.m3u8') + m3u8_url = re.sub(r'(https?://[^/]+)/z/', r'\1/i/', manifest_url).replace('/manifest.f4m', '/master.m3u8') + hls_host = hosts.get('hls') + if hls_host: + m3u8_url = re.sub(r'(https?://)[^/]+', r'\1' + hls_host, m3u8_url) formats.extend(self._extract_m3u8_formats( m3u8_url, video_id, 'mp4', 'm3u8_native', m3u8_id='hls', fatal=False)) diff --git a/youtube_dl/extractor/coub.py b/youtube_dl/extractor/coub.py index a901b8d..5fa1f00 100644 --- a/youtube_dl/extractor/coub.py +++ b/youtube_dl/extractor/coub.py @@ -20,7 +20,7 @@ class CoubIE(InfoExtractor): 'id': '5u5n1', 'ext': 'mp4', 'title': 'The Matrix Moonwalk', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'duration': 4.6, 'timestamp': 1428527772, 'upload_date': '20150408', diff --git a/youtube_dl/extractor/crackle.py b/youtube_dl/extractor/crackle.py index cc68f1c..377fb45 100644 --- a/youtube_dl/extractor/crackle.py +++ b/youtube_dl/extractor/crackle.py @@ -6,7 +6,7 @@ from ..utils import int_or_none class CrackleIE(InfoExtractor): - _VALID_URL = r'(?:crackle:|https?://(?:www\.)?crackle\.com/(?:playlist/\d+/|(?:[^/]+/)+))(?P<id>\d+)' + _VALID_URL = r'(?:crackle:|https?://(?:(?:www|m)\.)?crackle\.com/(?:playlist/\d+/|(?:[^/]+/)+))(?P<id>\d+)' _TEST = { 'url': 'http://www.crackle.com/comedians-in-cars-getting-coffee/2498934', 'info_dict': { @@ -14,7 +14,7 @@ class CrackleIE(InfoExtractor): 'ext': 'mp4', 'title': 'Everybody Respects A Bloody Nose', 'description': 'Jerry is kaffeeklatsching in L.A. with funnyman J.B. Smoove (Saturday Night Live, Real Husbands of Hollywood). They’re headed for brew at 10 Speed Coffee in a 1964 Studebaker Avanti.', - 'thumbnail': 're:^https?://.*\.jpg', + 'thumbnail': r're:^https?://.*\.jpg', 'duration': 906, 'series': 'Comedians In Cars Getting Coffee', 'season_number': 8, @@ -31,8 +31,32 @@ class CrackleIE(InfoExtractor): } } + _THUMBNAIL_RES = [ + (120, 90), + (208, 156), + (220, 124), + (220, 220), + (240, 180), + (250, 141), + (315, 236), + (320, 180), + (360, 203), + (400, 300), + (421, 316), + (460, 330), + (460, 460), + (462, 260), + (480, 270), + (587, 330), + (640, 480), + (700, 330), + (700, 394), + (854, 480), + (1024, 1024), + (1920, 1080), + ] + # extracted from http://legacyweb-us.crackle.com/flash/ReferrerRedirect.ashx - _THUMBNAIL_TEMPLATE = 'http://images-us-am.crackle.com/%stnl_1920x1080.jpg?ts=20140107233116?c=635333335057637614' _MEDIA_FILE_SLOTS = { 'c544.flv': { 'width': 544, @@ -61,17 +85,25 @@ class CrackleIE(InfoExtractor): item = self._download_xml( 'http://legacyweb-us.crackle.com/app/revamp/vidwallcache.aspx?flags=-1&fm=%s' % video_id, - video_id).find('i') + video_id, headers=self.geo_verification_headers()).find('i') title = item.attrib['t'] subtitles = {} formats = self._extract_m3u8_formats( 'http://content.uplynk.com/ext/%s/%s.m3u8' % (config_doc.attrib['strUplynkOwnerId'], video_id), video_id, 'mp4', m3u8_id='hls', fatal=None) - thumbnail = None + thumbnails = [] path = item.attrib.get('p') if path: - thumbnail = self._THUMBNAIL_TEMPLATE % path + for width, height in self._THUMBNAIL_RES: + res = '%dx%d' % (width, height) + thumbnails.append({ + 'id': res, + 'url': 'http://images-us-am.crackle.com/%stnl_%s.jpg' % (path, res), + 'width': width, + 'height': height, + 'resolution': res, + }) http_base_url = 'http://ahttp.crackle.com/' + path for mfs_path, mfs_info in self._MEDIA_FILE_SLOTS.items(): formats.append({ @@ -86,10 +118,11 @@ class CrackleIE(InfoExtractor): if locale and v: if locale not in subtitles: subtitles[locale] = [] - subtitles[locale] = [{ - 'url': '%s/%s%s_%s.xml' % (config_doc.attrib['strSubtitleServer'], path, locale, v), - 'ext': 'ttml', - }] + for url_ext, ext in (('vtt', 'vtt'), ('xml', 'tt')): + subtitles.setdefault(locale, []).append({ + 'url': '%s/%s%s_%s.%s' % (config_doc.attrib['strSubtitleServer'], path, locale, v, url_ext), + 'ext': ext, + }) self._sort_formats(formats, ('width', 'height', 'tbr', 'format_id')) return { @@ -100,7 +133,7 @@ class CrackleIE(InfoExtractor): 'series': item.attrib.get('sn'), 'season_number': int_or_none(item.attrib.get('se')), 'episode_number': int_or_none(item.attrib.get('ep')), - 'thumbnail': thumbnail, + 'thumbnails': thumbnails, 'subtitles': subtitles, 'formats': formats, } diff --git a/youtube_dl/extractor/criterion.py b/youtube_dl/extractor/criterion.py index cf6a5d6..f7815b9 100644 --- a/youtube_dl/extractor/criterion.py +++ b/youtube_dl/extractor/criterion.py @@ -14,7 +14,7 @@ class CriterionIE(InfoExtractor): 'ext': 'mp4', 'title': 'Le Samouraï', 'description': 'md5:a2b4b116326558149bef81f76dcbb93f', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', } } diff --git a/youtube_dl/extractor/crooksandliars.py b/youtube_dl/extractor/crooksandliars.py index 443eb76..7fb782d 100644 --- a/youtube_dl/extractor/crooksandliars.py +++ b/youtube_dl/extractor/crooksandliars.py @@ -16,7 +16,7 @@ class CrooksAndLiarsIE(InfoExtractor): 'ext': 'mp4', 'title': 'Fox & Friends Says Protecting Atheists From Discrimination Is Anti-Christian!', 'description': 'md5:e1a46ad1650e3a5ec7196d432799127f', - 'thumbnail': 're:^https?://.*\.jpg', + 'thumbnail': r're:^https?://.*\.jpg', 'timestamp': 1428207000, 'upload_date': '20150405', 'uploader': 'Heather', diff --git a/youtube_dl/extractor/crunchyroll.py b/youtube_dl/extractor/crunchyroll.py index 8d5b69f..109d1c5 100644 --- a/youtube_dl/extractor/crunchyroll.py +++ b/youtube_dl/extractor/crunchyroll.py @@ -142,7 +142,7 @@ class CrunchyrollIE(CrunchyrollBaseIE): 'ext': 'flv', 'title': 'Culture Japan Episode 1 – Rebuilding Japan after the 3.11', 'description': 'md5:2fbc01f90b87e8e9137296f37b461c12', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'uploader': 'Danny Choo Network', 'upload_date': '20120213', }, @@ -158,7 +158,7 @@ class CrunchyrollIE(CrunchyrollBaseIE): 'ext': 'mp4', 'title': 'Re:ZERO -Starting Life in Another World- Episode 5 – The Morning of Our Promise Is Still Distant', 'description': 'md5:97664de1ab24bbf77a9c01918cb7dca9', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'uploader': 'TV TOKYO', 'upload_date': '20160508', }, @@ -166,6 +166,25 @@ class CrunchyrollIE(CrunchyrollBaseIE): # m3u8 download 'skip_download': True, }, + }, { + 'url': 'http://www.crunchyroll.com/konosuba-gods-blessing-on-this-wonderful-world/episode-1-give-me-deliverance-from-this-judicial-injustice-727589', + 'info_dict': { + 'id': '727589', + 'ext': 'mp4', + 'title': "KONOSUBA -God's blessing on this wonderful world! 2 Episode 1 – Give Me Deliverance from this Judicial Injustice!", + 'description': 'md5:cbcf05e528124b0f3a0a419fc805ea7d', + 'thumbnail': r're:^https?://.*\.jpg$', + 'uploader': 'Kadokawa Pictures Inc.', + 'upload_date': '20170118', + 'series': "KONOSUBA -God's blessing on this wonderful world!", + 'season_number': 2, + 'episode': 'Give Me Deliverance from this Judicial Injustice!', + 'episode_number': 1, + }, + 'params': { + # m3u8 download + 'skip_download': True, + }, }, { 'url': 'http://www.crunchyroll.fr/girl-friend-beta/episode-11-goodbye-la-mode-661697', 'only_matching': True, @@ -236,8 +255,7 @@ class CrunchyrollIE(CrunchyrollBaseIE): output += 'WrapStyle: %s\n' % sub_root.attrib['wrap_style'] output += 'PlayResX: %s\n' % sub_root.attrib['play_res_x'] output += 'PlayResY: %s\n' % sub_root.attrib['play_res_y'] - output += """ScaledBorderAndShadow: no - + output += """ [V4+ Styles] Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding """ @@ -439,6 +457,18 @@ Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text subtitles = self.extract_subtitles(video_id, webpage) + # webpage provide more accurate data than series_title from XML + series = self._html_search_regex( + r'id=["\']showmedia_about_episode_num[^>]+>\s*<a[^>]+>([^<]+)', + webpage, 'series', default=xpath_text(metadata, 'series_title')) + + episode = xpath_text(metadata, 'episode_title') + episode_number = int_or_none(xpath_text(metadata, 'episode_number')) + + season_number = int_or_none(self._search_regex( + r'(?s)<h4[^>]+id=["\']showmedia_about_episode_num[^>]+>.+?</h4>\s*<h4>\s*Season (\d+)', + webpage, 'season number', default=None)) + return { 'id': video_id, 'title': video_title, @@ -446,9 +476,10 @@ Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text 'thumbnail': xpath_text(metadata, 'episode_image_url'), 'uploader': video_uploader, 'upload_date': video_upload_date, - 'series': xpath_text(metadata, 'series_title'), - 'episode': xpath_text(metadata, 'episode_title'), - 'episode_number': int_or_none(xpath_text(metadata, 'episode_number')), + 'series': series, + 'season_number': season_number, + 'episode': episode, + 'episode_number': episode_number, 'subtitles': subtitles, 'formats': formats, } diff --git a/youtube_dl/extractor/cspan.py b/youtube_dl/extractor/cspan.py index 7e5d4f2..d457616 100644 --- a/youtube_dl/extractor/cspan.py +++ b/youtube_dl/extractor/cspan.py @@ -12,6 +12,7 @@ from ..utils import ( ExtractorError, ) from .senateisvp import SenateISVPIE +from .ustream import UstreamIE class CSpanIE(InfoExtractor): @@ -22,14 +23,13 @@ class CSpanIE(InfoExtractor): 'md5': '94b29a4f131ff03d23471dd6f60b6a1d', 'info_dict': { 'id': '315139', - 'ext': 'mp4', 'title': 'Attorney General Eric Holder on Voting Rights Act Decision', - 'description': 'Attorney General Eric Holder speaks to reporters following the Supreme Court decision in [Shelby County v. Holder], in which the court ruled that the preclearance provisions of the Voting Rights Act could not be enforced.', }, + 'playlist_mincount': 2, 'skip': 'Regularly fails on travis, for unknown reasons', }, { 'url': 'http://www.c-span.org/video/?c4486943/cspan-international-health-care-models', - 'md5': '8e5fbfabe6ad0f89f3012a7943c1287b', + # md5 is unstable 'info_dict': { 'id': 'c4486943', 'ext': 'mp4', @@ -38,14 +38,11 @@ class CSpanIE(InfoExtractor): } }, { 'url': 'http://www.c-span.org/video/?318608-1/gm-ignition-switch-recall', - 'md5': '2ae5051559169baadba13fc35345ae74', 'info_dict': { 'id': '342759', - 'ext': 'mp4', 'title': 'General Motors Ignition Switch Recall', - 'duration': 14848, - 'description': 'md5:118081aedd24bf1d3b68b3803344e7f3' }, + 'playlist_mincount': 6, }, { # Video from senate.gov 'url': 'http://www.c-span.org/video/?104517-1/immigration-reforms-needed-protect-skilled-american-workers', @@ -57,12 +54,30 @@ class CSpanIE(InfoExtractor): 'params': { 'skip_download': True, # m3u8 downloads } + }, { + # Ustream embedded video + 'url': 'https://www.c-span.org/video/?114917-1/armed-services', + 'info_dict': { + 'id': '58428542', + 'ext': 'flv', + 'title': 'USHR07 Armed Services Committee', + 'description': 'hsas00-2118-20150204-1000et-07\n\n\nUSHR07 Armed Services Committee', + 'timestamp': 1423060374, + 'upload_date': '20150204', + 'uploader': 'HouseCommittee', + 'uploader_id': '12987475', + }, }] def _real_extract(self, url): video_id = self._match_id(url) video_type = None webpage = self._download_webpage(url, video_id) + + ustream_url = UstreamIE._extract_url(webpage) + if ustream_url: + return self.url_result(ustream_url, UstreamIE.ie_key()) + # We first look for clipid, because clipprog always appears before patterns = [r'id=\'clip(%s)\'\s*value=\'([0-9]+)\'' % t for t in ('id', 'prog')] results = list(filter(None, (re.search(p, webpage) for p in patterns))) diff --git a/youtube_dl/extractor/ctsnews.py b/youtube_dl/extractor/ctsnews.py index 83ca90c..d565335 100644 --- a/youtube_dl/extractor/ctsnews.py +++ b/youtube_dl/extractor/ctsnews.py @@ -28,7 +28,7 @@ class CtsNewsIE(InfoExtractor): 'ext': 'mp4', 'title': '韓國31歲童顏男 貌如十多歲小孩', 'description': '越有年紀的人,越希望看起來年輕一點,而南韓卻有一位31歲的男子,看起來像是11、12歲的小孩,身...', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'timestamp': 1378205880, 'upload_date': '20130903', } @@ -41,7 +41,7 @@ class CtsNewsIE(InfoExtractor): 'ext': 'mp4', 'title': 'iPhone6熱銷 蘋果財報亮眼', 'description': 'md5:f395d4f485487bb0f992ed2c4b07aa7d', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'upload_date': '20150128', 'uploader_id': 'TBSCTS', 'uploader': '中華電視公司', diff --git a/youtube_dl/extractor/ctvnews.py b/youtube_dl/extractor/ctvnews.py index 1023b61..55a127b 100644 --- a/youtube_dl/extractor/ctvnews.py +++ b/youtube_dl/extractor/ctvnews.py @@ -8,7 +8,7 @@ from ..utils import orderedSet class CTVNewsIE(InfoExtractor): - _VALID_URL = r'https?://(?:www\.)?ctvnews\.ca/(?:video\?(?:clip|playlist|bin)Id=|.*?)(?P<id>[0-9.]+)' + _VALID_URL = r'https?://(?:.+?\.)?ctvnews\.ca/(?:video\?(?:clip|playlist|bin)Id=|.*?)(?P<id>[0-9.]+)' _TESTS = [{ 'url': 'http://www.ctvnews.ca/video?clipId=901995', 'md5': '10deb320dc0ccb8d01d34d12fc2ea672', @@ -40,6 +40,9 @@ class CTVNewsIE(InfoExtractor): }, { 'url': 'http://www.ctvnews.ca/canadiens-send-p-k-subban-to-nashville-in-blockbuster-trade-1.2967231', 'only_matching': True, + }, { + 'url': 'http://vancouverisland.ctvnews.ca/video?clipId=761241', + 'only_matching': True, }] def _real_extract(self, url): diff --git a/youtube_dl/extractor/cultureunplugged.py b/youtube_dl/extractor/cultureunplugged.py index 9f26fa5..bcdf273 100644 --- a/youtube_dl/extractor/cultureunplugged.py +++ b/youtube_dl/extractor/cultureunplugged.py @@ -21,7 +21,7 @@ class CultureUnpluggedIE(InfoExtractor): 'ext': 'mp4', 'title': 'The Next, Best West', 'description': 'md5:0423cd00833dea1519cf014e9d0903b1', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'creator': 'Coldstream Creative', 'duration': 2203, 'view_count': int, diff --git a/youtube_dl/extractor/dailymotion.py b/youtube_dl/extractor/dailymotion.py index 4a3314e..31bf5fa 100644 --- a/youtube_dl/extractor/dailymotion.py +++ b/youtube_dl/extractor/dailymotion.py @@ -58,7 +58,7 @@ class DailymotionIE(DailymotionBaseInfoExtractor): 'ext': 'mp4', 'title': 'Steam Machine Models, Pricing Listed on Steam Store - IGN News', 'description': 'Several come bundled with the Steam Controller.', - 'thumbnail': 're:^https?:.*\.(?:jpg|png)$', + 'thumbnail': r're:^https?:.*\.(?:jpg|png)$', 'duration': 74, 'timestamp': 1425657362, 'upload_date': '20150306', diff --git a/youtube_dl/extractor/daum.py b/youtube_dl/extractor/daum.py index 732b436..76f0218 100644 --- a/youtube_dl/extractor/daum.py +++ b/youtube_dl/extractor/daum.py @@ -32,7 +32,7 @@ class DaumIE(InfoExtractor): 'title': '마크 헌트 vs 안토니오 실바', 'description': 'Mark Hunt vs Antonio Silva', 'upload_date': '20131217', - 'thumbnail': 're:^https?://.*\.(?:jpg|png)', + 'thumbnail': r're:^https?://.*\.(?:jpg|png)', 'duration': 2117, 'view_count': int, 'comment_count': int, @@ -45,7 +45,7 @@ class DaumIE(InfoExtractor): 'title': '1297회, \'아빠 아들로 태어나길 잘 했어\' 민수, 감동의 눈물[아빠 어디가] 20150118', 'description': 'md5:79794514261164ff27e36a21ad229fc5', 'upload_date': '20150604', - 'thumbnail': 're:^https?://.*\.(?:jpg|png)', + 'thumbnail': r're:^https?://.*\.(?:jpg|png)', 'duration': 154, 'view_count': int, 'comment_count': int, @@ -61,7 +61,7 @@ class DaumIE(InfoExtractor): 'title': '01-Korean War ( Trouble on the horizon )', 'description': '\nKorean War 01\nTrouble on the horizon\n전쟁의 먹구름', 'upload_date': '20080223', - 'thumbnail': 're:^https?://.*\.(?:jpg|png)', + 'thumbnail': r're:^https?://.*\.(?:jpg|png)', 'duration': 249, 'view_count': int, 'comment_count': int, @@ -139,7 +139,7 @@ class DaumClipIE(InfoExtractor): 'title': 'DOTA 2GETHER 시즌2 6회 - 2부', 'description': 'DOTA 2GETHER 시즌2 6회 - 2부', 'upload_date': '20130831', - 'thumbnail': 're:^https?://.*\.(?:jpg|png)', + 'thumbnail': r're:^https?://.*\.(?:jpg|png)', 'duration': 3868, 'view_count': int, }, diff --git a/youtube_dl/extractor/dbtv.py b/youtube_dl/extractor/dbtv.py index 6d880d4..f232f0d 100644 --- a/youtube_dl/extractor/dbtv.py +++ b/youtube_dl/extractor/dbtv.py @@ -17,7 +17,7 @@ class DBTVIE(InfoExtractor): 'ext': 'mp4', 'title': 'Skulle teste ut fornøyelsespark, men kollegaen var bare opptatt av bikinikroppen', 'description': 'md5:1504a54606c4dde3e4e61fc97aa857e0', - 'thumbnail': 're:https?://.*\.jpg', + 'thumbnail': r're:https?://.*\.jpg', 'timestamp': 1404039863, 'upload_date': '20140629', 'duration': 69.544, diff --git a/youtube_dl/extractor/dctp.py b/youtube_dl/extractor/dctp.py index 14ba887..00fbbff 100644 --- a/youtube_dl/extractor/dctp.py +++ b/youtube_dl/extractor/dctp.py @@ -17,7 +17,7 @@ class DctpTvIE(InfoExtractor): 'title': 'Videoinstallation für eine Kaufhausfassade', 'description': 'Kurzfilm', 'upload_date': '20110407', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', }, } diff --git a/youtube_dl/extractor/deezer.py b/youtube_dl/extractor/deezer.py index 7a07f32..ec87b94 100644 --- a/youtube_dl/extractor/deezer.py +++ b/youtube_dl/extractor/deezer.py @@ -19,7 +19,7 @@ class DeezerPlaylistIE(InfoExtractor): 'id': '176747451', 'title': 'Best!', 'uploader': 'Anonymous', - 'thumbnail': 're:^https?://cdn-images.deezer.com/images/cover/.*\.jpg$', + 'thumbnail': r're:^https?://cdn-images.deezer.com/images/cover/.*\.jpg$', }, 'playlist_count': 30, 'skip': 'Only available in .de', diff --git a/youtube_dl/extractor/dhm.py b/youtube_dl/extractor/dhm.py index 44e0c5d..aee72a6 100644 --- a/youtube_dl/extractor/dhm.py +++ b/youtube_dl/extractor/dhm.py @@ -17,7 +17,7 @@ class DHMIE(InfoExtractor): 'title': 'MARSHALL PLAN AT WORK IN WESTERN GERMANY, THE', 'description': 'md5:1fabd480c153f97b07add61c44407c82', 'duration': 660, - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', }, }, { 'url': 'http://www.dhm.de/filmarchiv/02-mapping-the-wall/peter-g/rolle-1/', @@ -26,7 +26,7 @@ class DHMIE(InfoExtractor): 'id': 'rolle-1', 'ext': 'flv', 'title': 'ROLLE 1', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', }, }] diff --git a/youtube_dl/extractor/digiteka.py b/youtube_dl/extractor/digiteka.py index 7bb79ff..3dfde0d 100644 --- a/youtube_dl/extractor/digiteka.py +++ b/youtube_dl/extractor/digiteka.py @@ -36,7 +36,7 @@ class DigitekaIE(InfoExtractor): 'id': 's8uk0r', 'ext': 'mp4', 'title': 'Loi sur la fin de vie: le texte prévoit un renforcement des directives anticipées', - 'thumbnail': 're:^https?://.*\.jpg', + 'thumbnail': r're:^https?://.*\.jpg', 'duration': 74, 'upload_date': '20150317', 'timestamp': 1426604939, @@ -50,7 +50,7 @@ class DigitekaIE(InfoExtractor): 'id': 'xvpfp8', 'ext': 'mp4', 'title': 'Two - C\'est La Vie (clip)', - 'thumbnail': 're:^https?://.*\.jpg', + 'thumbnail': r're:^https?://.*\.jpg', 'duration': 233, 'upload_date': '20150224', 'timestamp': 1424760500, diff --git a/youtube_dl/extractor/discoverygo.py b/youtube_dl/extractor/discoverygo.py index c4e83b2..2042493 100644 --- a/youtube_dl/extractor/discoverygo.py +++ b/youtube_dl/extractor/discoverygo.py @@ -6,7 +6,6 @@ from ..utils import ( extract_attributes, int_or_none, parse_age_limit, - unescapeHTML, ExtractorError, ) @@ -49,7 +48,7 @@ class DiscoveryGoIE(InfoExtractor): webpage, 'video container')) video = self._parse_json( - unescapeHTML(container.get('data-video') or container.get('data-json')), + container.get('data-video') or container.get('data-json'), display_id) title = video['name'] diff --git a/youtube_dl/extractor/disney.py b/youtube_dl/extractor/disney.py new file mode 100644 index 0000000..396873c --- /dev/null +++ b/youtube_dl/extractor/disney.py @@ -0,0 +1,115 @@ +# coding: utf-8 +from __future__ import unicode_literals + +import re + +from .common import InfoExtractor +from ..utils import ( + int_or_none, + unified_strdate, + compat_str, + determine_ext, +) + + +class DisneyIE(InfoExtractor): + _VALID_URL = r'''(?x) + https?://(?P<domain>(?:[^/]+\.)?(?:disney\.[a-z]{2,3}(?:\.[a-z]{2})?|disney(?:(?:me|latino)\.com|turkiye\.com\.tr)|starwars\.com))/(?:embed/|(?:[^/]+/)+[\w-]+-)(?P<id>[a-z0-9]{24})''' + _TESTS = [{ + 'url': 'http://video.disney.com/watch/moana-trailer-545ed1857afee5a0ec239977', + 'info_dict': { + 'id': '545ed1857afee5a0ec239977', + 'ext': 'mp4', + 'title': 'Moana - Trailer', + 'description': 'A fun adventure for the entire Family! Bring home Moana on Digital HD Feb 21 & Blu-ray March 7', + 'upload_date': '20170112', + }, + 'params': { + # m3u8 download + 'skip_download': True, + } + }, { + 'url': 'http://videos.disneylatino.com/ver/spider-man-de-regreso-a-casa-primer-adelanto-543a33a1850bdcfcca13bae2', + 'only_matching': True, + }, { + 'url': 'http://video.en.disneyme.com/watch/future-worm/robo-carp-2001-544b66002aa7353cdd3f5114', + 'only_matching': True, + }, { + 'url': 'http://video.disneyturkiye.com.tr/izle/7c-7-cuceler/kimin-sesi-zaten-5456f3d015f6b36c8afdd0e2', + 'only_matching': True, + }, { + 'url': 'http://disneyjunior.disney.com/embed/546a4798ddba3d1612e4005d', + 'only_matching': True, + }, { + 'url': 'http://www.starwars.com/embed/54690d1e6c42e5f09a0fb097', + 'only_matching': True, + }] + + def _real_extract(self, url): + domain, video_id = re.match(self._VALID_URL, url).groups() + webpage = self._download_webpage( + 'http://%s/embed/%s' % (domain, video_id), video_id) + video_data = self._parse_json(self._search_regex( + r'Disney\.EmbedVideo=({.+});', webpage, 'embed data'), video_id)['video'] + + for external in video_data.get('externals', []): + if external.get('source') == 'vevo': + return self.url_result('vevo:' + external['data_id'], 'Vevo') + + title = video_data['title'] + + formats = [] + for flavor in video_data.get('flavors', []): + flavor_format = flavor.get('format') + flavor_url = flavor.get('url') + if not flavor_url or not re.match(r'https?://', flavor_url): + continue + tbr = int_or_none(flavor.get('bitrate')) + if tbr == 99999: + formats.extend(self._extract_m3u8_formats( + flavor_url, video_id, 'mp4', m3u8_id=flavor_format, fatal=False)) + continue + format_id = [] + if flavor_format: + format_id.append(flavor_format) + if tbr: + format_id.append(compat_str(tbr)) + ext = determine_ext(flavor_url) + if flavor_format == 'applehttp' or ext == 'm3u8': + ext = 'mp4' + width = int_or_none(flavor.get('width')) + height = int_or_none(flavor.get('height')) + formats.append({ + 'format_id': '-'.join(format_id), + 'url': flavor_url, + 'width': width, + 'height': height, + 'tbr': tbr, + 'ext': ext, + 'vcodec': 'none' if (width == 0 and height == 0) else None, + }) + self._sort_formats(formats) + + subtitles = {} + for caption in video_data.get('captions', []): + caption_url = caption.get('url') + caption_format = caption.get('format') + if not caption_url or caption_format.startswith('unknown'): + continue + subtitles.setdefault(caption.get('language', 'en'), []).append({ + 'url': caption_url, + 'ext': { + 'webvtt': 'vtt', + }.get(caption_format, caption_format), + }) + + return { + 'id': video_id, + 'title': title, + 'description': video_data.get('description') or video_data.get('short_desc'), + 'thumbnail': video_data.get('thumb') or video_data.get('thumb_secure'), + 'duration': int_or_none(video_data.get('duration_sec')), + 'upload_date': unified_strdate(video_data.get('publish_date')), + 'formats': formats, + 'subtitles': subtitles, + } diff --git a/youtube_dl/extractor/douyutv.py b/youtube_dl/extractor/douyutv.py index e366e17..9115944 100644 --- a/youtube_dl/extractor/douyutv.py +++ b/youtube_dl/extractor/douyutv.py @@ -18,7 +18,7 @@ from ..utils import ( class DouyuTVIE(InfoExtractor): IE_DESC = '斗鱼' - _VALID_URL = r'https?://(?:www\.)?douyu(?:tv)?\.com/(?P<id>[A-Za-z0-9]+)' + _VALID_URL = r'https?://(?:www\.)?douyu(?:tv)?\.com/(?:[^/]+/)*(?P<id>[A-Za-z0-9]+)' _TESTS = [{ 'url': 'http://www.douyutv.com/iseven', 'info_dict': { @@ -26,8 +26,8 @@ class DouyuTVIE(InfoExtractor): 'display_id': 'iseven', 'ext': 'flv', 'title': 're:^清晨醒脑!T-ara根本停不下来! [0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}$', - 'description': 're:.*m7show@163\.com.*', - 'thumbnail': 're:^https?://.*\.jpg$', + 'description': r're:.*m7show@163\.com.*', + 'thumbnail': r're:^https?://.*\.jpg$', 'uploader': '7师傅', 'is_live': True, }, @@ -42,7 +42,7 @@ class DouyuTVIE(InfoExtractor): 'ext': 'flv', 'title': 're:^小漠从零单排记!——CSOL2躲猫猫 [0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}$', 'description': 'md5:746a2f7a253966a06755a912f0acc0d2', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'uploader': 'douyu小漠', 'is_live': True, }, @@ -57,8 +57,8 @@ class DouyuTVIE(InfoExtractor): 'display_id': '17732', 'ext': 'flv', 'title': 're:^清晨醒脑!T-ara根本停不下来! [0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}$', - 'description': 're:.*m7show@163\.com.*', - 'thumbnail': 're:^https?://.*\.jpg$', + 'description': r're:.*m7show@163\.com.*', + 'thumbnail': r're:^https?://.*\.jpg$', 'uploader': '7师傅', 'is_live': True, }, @@ -68,6 +68,10 @@ class DouyuTVIE(InfoExtractor): }, { 'url': 'http://www.douyu.com/xiaocang', 'only_matching': True, + }, { + # \"room_id\" + 'url': 'http://www.douyu.com/t/lpl', + 'only_matching': True, }] # Decompile core.swf in webpage by ffdec "Search SWFs in memory". core.swf @@ -82,7 +86,7 @@ class DouyuTVIE(InfoExtractor): else: page = self._download_webpage(url, video_id) room_id = self._html_search_regex( - r'"room_id"\s*:\s*(\d+),', page, 'room id') + r'"room_id\\?"\s*:\s*(\d+),', page, 'room id') room = self._download_json( 'http://m.douyu.com/html5/live?roomId=%s' % room_id, video_id, diff --git a/youtube_dl/extractor/dplay.py b/youtube_dl/extractor/dplay.py index 5790553..32028bc 100644 --- a/youtube_dl/extractor/dplay.py +++ b/youtube_dl/extractor/dplay.py @@ -8,6 +8,7 @@ import time from .common import InfoExtractor from ..compat import compat_urlparse from ..utils import ( + USER_AGENTS, int_or_none, update_url_query, ) @@ -102,10 +103,16 @@ class DPlayIE(InfoExtractor): manifest_url, video_id, ext='mp4', entry_protocol='m3u8_native', m3u8_id=protocol, fatal=False) # Sometimes final URLs inside m3u8 are unsigned, let's fix this - # ourselves + # ourselves. Also fragments' URLs are only served signed for + # Safari user agent. query = compat_urlparse.parse_qs(compat_urlparse.urlparse(manifest_url).query) for m3u8_format in m3u8_formats: - m3u8_format['url'] = update_url_query(m3u8_format['url'], query) + m3u8_format.update({ + 'url': update_url_query(m3u8_format['url'], query), + 'http_headers': { + 'User-Agent': USER_AGENTS['Safari'], + }, + }) formats.extend(m3u8_formats) elif protocol == 'hds': formats.extend(self._extract_f4m_formats( diff --git a/youtube_dl/extractor/dramafever.py b/youtube_dl/extractor/dramafever.py index c115956..bcd9fe2 100644 --- a/youtube_dl/extractor/dramafever.py +++ b/youtube_dl/extractor/dramafever.py @@ -66,7 +66,7 @@ class DramaFeverBaseIE(AMPIE): class DramaFeverIE(DramaFeverBaseIE): IE_NAME = 'dramafever' - _VALID_URL = r'https?://(?:www\.)?dramafever\.com/drama/(?P<id>[0-9]+/[0-9]+)(?:/|$)' + _VALID_URL = r'https?://(?:www\.)?dramafever\.com/(?:[^/]+/)?drama/(?P<id>[0-9]+/[0-9]+)(?:/|$)' _TESTS = [{ 'url': 'http://www.dramafever.com/drama/4512/1/Cooking_with_Shin/', 'info_dict': { @@ -76,7 +76,7 @@ class DramaFeverIE(DramaFeverBaseIE): 'description': 'md5:a8eec7942e1664a6896fcd5e1287bfd0', 'episode': 'Episode 1', 'episode_number': 1, - 'thumbnail': 're:^https?://.*\.jpg', + 'thumbnail': r're:^https?://.*\.jpg', 'timestamp': 1404336058, 'upload_date': '20140702', 'duration': 343, @@ -94,7 +94,7 @@ class DramaFeverIE(DramaFeverBaseIE): 'description': 'md5:3ff2ee8fedaef86e076791c909cf2e91', 'episode': 'Mnet Asian Music Awards 2015 - Part 3', 'episode_number': 4, - 'thumbnail': 're:^https?://.*\.jpg', + 'thumbnail': r're:^https?://.*\.jpg', 'timestamp': 1450213200, 'upload_date': '20151215', 'duration': 5602, @@ -103,6 +103,9 @@ class DramaFeverIE(DramaFeverBaseIE): # m3u8 download 'skip_download': True, }, + }, { + 'url': 'https://www.dramafever.com/zh-cn/drama/4972/15/Doctor_Romantic/', + 'only_matching': True, }] def _real_extract(self, url): @@ -148,7 +151,7 @@ class DramaFeverIE(DramaFeverBaseIE): class DramaFeverSeriesIE(DramaFeverBaseIE): IE_NAME = 'dramafever:series' - _VALID_URL = r'https?://(?:www\.)?dramafever\.com/drama/(?P<id>[0-9]+)(?:/(?:(?!\d+(?:/|$)).+)?)?$' + _VALID_URL = r'https?://(?:www\.)?dramafever\.com/(?:[^/]+/)?drama/(?P<id>[0-9]+)(?:/(?:(?!\d+(?:/|$)).+)?)?$' _TESTS = [{ 'url': 'http://www.dramafever.com/drama/4512/Cooking_with_Shin/', 'info_dict': { diff --git a/youtube_dl/extractor/drbonanza.py b/youtube_dl/extractor/drbonanza.py index 01271f8..79ec212 100644 --- a/youtube_dl/extractor/drbonanza.py +++ b/youtube_dl/extractor/drbonanza.py @@ -20,7 +20,7 @@ class DRBonanzaIE(InfoExtractor): 'ext': 'mp4', 'title': 'Talkshowet - Leonard Cohen', 'description': 'md5:8f34194fb30cd8c8a30ad8b27b70c0ca', - 'thumbnail': 're:^https?://.*\.(?:gif|jpg)$', + 'thumbnail': r're:^https?://.*\.(?:gif|jpg)$', 'timestamp': 1295537932, 'upload_date': '20110120', 'duration': 3664, @@ -36,7 +36,7 @@ class DRBonanzaIE(InfoExtractor): 'ext': 'mp3', 'title': 'EM fodbold 1992 Danmark - Tyskland finale Transmission', 'description': 'md5:501e5a195749480552e214fbbed16c4e', - 'thumbnail': 're:^https?://.*\.(?:gif|jpg)$', + 'thumbnail': r're:^https?://.*\.(?:gif|jpg)$', 'timestamp': 1223274900, 'upload_date': '20081006', 'duration': 7369, diff --git a/youtube_dl/extractor/dreisat.py b/youtube_dl/extractor/dreisat.py index 908c9e5..f138025 100644 --- a/youtube_dl/extractor/dreisat.py +++ b/youtube_dl/extractor/dreisat.py @@ -2,10 +2,19 @@ from __future__ import unicode_literals import re -from .zdf import ZDFIE +from .common import InfoExtractor +from ..utils import ( + int_or_none, + unified_strdate, + xpath_text, + determine_ext, + qualities, + float_or_none, + ExtractorError, +) -class DreiSatIE(ZDFIE): +class DreiSatIE(InfoExtractor): IE_NAME = '3sat' _VALID_URL = r'(?:https?://)?(?:www\.)?3sat\.de/mediathek/(?:index\.php|mediathek\.php)?\?(?:(?:mode|display)=[^&]+&)*obj=(?P<id>[0-9]+)$' _TESTS = [ @@ -31,6 +40,163 @@ class DreiSatIE(ZDFIE): }, ] + def _parse_smil_formats(self, smil, smil_url, video_id, namespace=None, f4m_params=None, transform_rtmp_url=None): + param_groups = {} + for param_group in smil.findall(self._xpath_ns('./head/paramGroup', namespace)): + group_id = param_group.attrib.get(self._xpath_ns('id', 'http://www.w3.org/XML/1998/namespace')) + params = {} + for param in param_group: + params[param.get('name')] = param.get('value') + param_groups[group_id] = params + + formats = [] + for video in smil.findall(self._xpath_ns('.//video', namespace)): + src = video.get('src') + if not src: + continue + bitrate = float_or_none(video.get('system-bitrate') or video.get('systemBitrate'), 1000) + group_id = video.get('paramGroup') + param_group = param_groups[group_id] + for proto in param_group['protocols'].split(','): + formats.append({ + 'url': '%s://%s' % (proto, param_group['host']), + 'app': param_group['app'], + 'play_path': src, + 'ext': 'flv', + 'format_id': '%s-%d' % (proto, bitrate), + 'tbr': bitrate, + }) + self._sort_formats(formats) + return formats + + def extract_from_xml_url(self, video_id, xml_url): + doc = self._download_xml( + xml_url, video_id, + note='Downloading video info', + errnote='Failed to download video info') + + status_code = doc.find('./status/statuscode') + if status_code is not None and status_code.text != 'ok': + code = status_code.text + if code == 'notVisibleAnymore': + message = 'Video %s is not available' % video_id + else: + message = '%s returned error: %s' % (self.IE_NAME, code) + raise ExtractorError(message, expected=True) + + title = doc.find('.//information/title').text + description = xpath_text(doc, './/information/detail', 'description') + duration = int_or_none(xpath_text(doc, './/details/lengthSec', 'duration')) + uploader = xpath_text(doc, './/details/originChannelTitle', 'uploader') + uploader_id = xpath_text(doc, './/details/originChannelId', 'uploader id') + upload_date = unified_strdate(xpath_text(doc, './/details/airtime', 'upload date')) + + def xml_to_thumbnails(fnode): + thumbnails = [] + for node in fnode: + thumbnail_url = node.text + if not thumbnail_url: + continue + thumbnail = { + 'url': thumbnail_url, + } + if 'key' in node.attrib: + m = re.match('^([0-9]+)x([0-9]+)$', node.attrib['key']) + if m: + thumbnail['width'] = int(m.group(1)) + thumbnail['height'] = int(m.group(2)) + thumbnails.append(thumbnail) + return thumbnails + + thumbnails = xml_to_thumbnails(doc.findall('.//teaserimages/teaserimage')) + + format_nodes = doc.findall('.//formitaeten/formitaet') + quality = qualities(['veryhigh', 'high', 'med', 'low']) + + def get_quality(elem): + return quality(xpath_text(elem, 'quality')) + format_nodes.sort(key=get_quality) + format_ids = [] + formats = [] + for fnode in format_nodes: + video_url = fnode.find('url').text + is_available = 'http://www.metafilegenerator' not in video_url + if not is_available: + continue + format_id = fnode.attrib['basetype'] + quality = xpath_text(fnode, './quality', 'quality') + format_m = re.match(r'''(?x) + (?P<vcodec>[^_]+)_(?P<acodec>[^_]+)_(?P<container>[^_]+)_ + (?P<proto>[^_]+)_(?P<index>[^_]+)_(?P<indexproto>[^_]+) + ''', format_id) + + ext = determine_ext(video_url, None) or format_m.group('container') + if ext not in ('smil', 'f4m', 'm3u8'): + format_id = format_id + '-' + quality + if format_id in format_ids: + continue + + if ext == 'meta': + continue + elif ext == 'smil': + formats.extend(self._extract_smil_formats( + video_url, video_id, fatal=False)) + elif ext == 'm3u8': + # the certificates are misconfigured (see + # https://github.com/rg3/youtube-dl/issues/8665) + if video_url.startswith('https://'): + continue + formats.extend(self._extract_m3u8_formats( + video_url, video_id, 'mp4', m3u8_id=format_id, fatal=False)) + elif ext == 'f4m': + formats.extend(self._extract_f4m_formats( + video_url, video_id, f4m_id=format_id, fatal=False)) + else: + proto = format_m.group('proto').lower() + + abr = int_or_none(xpath_text(fnode, './audioBitrate', 'abr'), 1000) + vbr = int_or_none(xpath_text(fnode, './videoBitrate', 'vbr'), 1000) + + width = int_or_none(xpath_text(fnode, './width', 'width')) + height = int_or_none(xpath_text(fnode, './height', 'height')) + + filesize = int_or_none(xpath_text(fnode, './filesize', 'filesize')) + + format_note = '' + if not format_note: + format_note = None + + formats.append({ + 'format_id': format_id, + 'url': video_url, + 'ext': ext, + 'acodec': format_m.group('acodec'), + 'vcodec': format_m.group('vcodec'), + 'abr': abr, + 'vbr': vbr, + 'width': width, + 'height': height, + 'filesize': filesize, + 'format_note': format_note, + 'protocol': proto, + '_available': is_available, + }) + format_ids.append(format_id) + + self._sort_formats(formats) + + return { + 'id': video_id, + 'title': title, + 'description': description, + 'duration': duration, + 'thumbnails': thumbnails, + 'uploader': uploader, + 'uploader_id': uploader_id, + 'upload_date': upload_date, + 'formats': formats, + } + def _real_extract(self, url): mobj = re.match(self._VALID_URL, url) video_id = mobj.group('id') diff --git a/youtube_dl/extractor/drtuber.py b/youtube_dl/extractor/drtuber.py index 22da8e4..1eca82b 100644 --- a/youtube_dl/extractor/drtuber.py +++ b/youtube_dl/extractor/drtuber.py @@ -22,7 +22,7 @@ class DrTuberIE(InfoExtractor): 'like_count': int, 'comment_count': int, 'categories': ['Babe', 'Blonde', 'Erotic', 'Outdoor', 'Softcore', 'Solo'], - 'thumbnail': 're:https?://.*\.jpg$', + 'thumbnail': r're:https?://.*\.jpg$', 'age_limit': 18, } }, { diff --git a/youtube_dl/extractor/drtv.py b/youtube_dl/extractor/drtv.py index 88d096b..e966d74 100644 --- a/youtube_dl/extractor/drtv.py +++ b/youtube_dl/extractor/drtv.py @@ -9,12 +9,13 @@ from ..utils import ( mimetype2ext, parse_iso8601, remove_end, + update_url_query, ) class DRTVIE(InfoExtractor): - _VALID_URL = r'https?://(?:www\.)?dr\.dk/(?:tv/se|nyheder)/(?:[^/]+/)*(?P<id>[\da-z-]+)(?:[/#?]|$)' - + _VALID_URL = r'https?://(?:www\.)?dr\.dk/(?:tv/se|nyheder|radio/ondemand)/(?:[^/]+/)*(?P<id>[\da-z-]+)(?:[/#?]|$)' + IE_NAME = 'drtv' _TESTS = [{ 'url': 'https://www.dr.dk/tv/se/boern/ultra/klassen-ultra/klassen-darlig-taber-10', 'md5': '25e659cccc9a2ed956110a299fdf5983', @@ -79,9 +80,10 @@ class DRTVIE(InfoExtractor): subtitles = {} for asset in data['Assets']: - if asset.get('Kind') == 'Image': + kind = asset.get('Kind') + if kind == 'Image': thumbnail = asset.get('Uri') - elif asset.get('Kind') == 'VideoResource': + elif kind in ('VideoResource', 'AudioResource'): duration = float_or_none(asset.get('DurationInMilliseconds'), 1000) restricted_to_denmark = asset.get('RestrictedToDenmark') spoken_subtitles = asset.get('Target') == 'SpokenSubtitles' @@ -96,9 +98,13 @@ class DRTVIE(InfoExtractor): preference = -1 format_id += '-spoken-subtitles' if target == 'HDS': - formats.extend(self._extract_f4m_formats( + f4m_formats = self._extract_f4m_formats( uri + '?hdcore=3.3.0&plugin=aasp-3.3.0.99.43', - video_id, preference, f4m_id=format_id)) + video_id, preference, f4m_id=format_id) + if kind == 'AudioResource': + for f in f4m_formats: + f['vcodec'] = 'none' + formats.extend(f4m_formats) elif target == 'HLS': formats.extend(self._extract_m3u8_formats( uri, video_id, 'mp4', entry_protocol='m3u8_native', @@ -112,6 +118,7 @@ class DRTVIE(InfoExtractor): 'format_id': format_id, 'tbr': int_or_none(bitrate), 'ext': link.get('FileFormat'), + 'vcodec': 'none' if kind == 'AudioResource' else None, }) subtitles_list = asset.get('SubtitlesList') if isinstance(subtitles_list, list): @@ -144,3 +151,58 @@ class DRTVIE(InfoExtractor): 'formats': formats, 'subtitles': subtitles, } + + +class DRTVLiveIE(InfoExtractor): + IE_NAME = 'drtv:live' + _VALID_URL = r'https?://(?:www\.)?dr\.dk/(?:tv|TV)/live/(?P<id>[\da-z-]+)' + _TEST = { + 'url': 'https://www.dr.dk/tv/live/dr1', + 'info_dict': { + 'id': 'dr1', + 'ext': 'mp4', + 'title': 're:^DR1 [0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}$', + }, + 'params': { + # m3u8 download + 'skip_download': True, + }, + } + + def _real_extract(self, url): + channel_id = self._match_id(url) + channel_data = self._download_json( + 'https://www.dr.dk/mu-online/api/1.0/channel/' + channel_id, + channel_id) + title = self._live_title(channel_data['Title']) + + formats = [] + for streaming_server in channel_data.get('StreamingServers', []): + server = streaming_server.get('Server') + if not server: + continue + link_type = streaming_server.get('LinkType') + for quality in streaming_server.get('Qualities', []): + for stream in quality.get('Streams', []): + stream_path = stream.get('Stream') + if not stream_path: + continue + stream_url = update_url_query( + '%s/%s' % (server, stream_path), {'b': ''}) + if link_type == 'HLS': + formats.extend(self._extract_m3u8_formats( + stream_url, channel_id, 'mp4', + m3u8_id=link_type, fatal=False, live=True)) + elif link_type == 'HDS': + formats.extend(self._extract_f4m_formats(update_url_query( + '%s/%s' % (server, stream_path), {'hdcore': '3.7.0'}), + channel_id, f4m_id=link_type, fatal=False)) + self._sort_formats(formats) + + return { + 'id': channel_id, + 'title': title, + 'thumbnail': channel_data.get('PrimaryImageUri'), + 'formats': formats, + 'is_live': True, + } diff --git a/youtube_dl/extractor/dumpert.py b/youtube_dl/extractor/dumpert.py index e5aadcd..c9fc9b5 100644 --- a/youtube_dl/extractor/dumpert.py +++ b/youtube_dl/extractor/dumpert.py @@ -21,7 +21,7 @@ class DumpertIE(InfoExtractor): 'ext': 'mp4', 'title': 'Ik heb nieuws voor je', 'description': 'Niet schrikken hoor', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', } }, { 'url': 'http://www.dumpert.nl/embed/6675421/dc440fe7/', diff --git a/youtube_dl/extractor/eagleplatform.py b/youtube_dl/extractor/eagleplatform.py index c2f593e..76d39ad 100644 --- a/youtube_dl/extractor/eagleplatform.py +++ b/youtube_dl/extractor/eagleplatform.py @@ -31,7 +31,7 @@ class EaglePlatformIE(InfoExtractor): 'ext': 'mp4', 'title': 'Навальный вышел на свободу', 'description': 'md5:d97861ac9ae77377f3f20eaf9d04b4f5', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'duration': 87, 'view_count': int, 'age_limit': 0, @@ -45,7 +45,7 @@ class EaglePlatformIE(InfoExtractor): 'id': '12820', 'ext': 'mp4', 'title': "'O Sole Mio", - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'duration': 216, 'view_count': int, }, diff --git a/youtube_dl/extractor/egghead.py b/youtube_dl/extractor/egghead.py new file mode 100644 index 0000000..db92146 --- /dev/null +++ b/youtube_dl/extractor/egghead.py @@ -0,0 +1,39 @@ +# coding: utf-8 +from __future__ import unicode_literals + +import re + +from .common import InfoExtractor + + +class EggheadCourseIE(InfoExtractor): + IE_DESC = 'egghead.io course' + IE_NAME = 'egghead:course' + _VALID_URL = r'https://egghead\.io/courses/(?P<id>[a-zA-Z_0-9-]+)' + _TEST = { + 'url': 'https://egghead.io/courses/professor-frisby-introduces-composable-functional-javascript', + 'playlist_count': 29, + 'info_dict': { + 'id': 'professor-frisby-introduces-composable-functional-javascript', + 'title': 'Professor Frisby Introduces Composable Functional JavaScript', + 'description': 're:(?s)^This course teaches the ubiquitous.*You\'ll start composing functionality before you know it.$', + }, + } + + def _real_extract(self, url): + playlist_id = self._match_id(url) + webpage = self._download_webpage(url, playlist_id) + + title = self._html_search_regex(r'<h1 class="title">([^<]+)</h1>', webpage, 'title') + ul = self._search_regex(r'(?s)<ul class="series-lessons-list">(.*?)</ul>', webpage, 'session list') + + found = re.findall(r'(?s)<a class="[^"]*"\s*href="([^"]+)">\s*<li class="item', ul) + entries = [self.url_result(m) for m in found] + + return { + '_type': 'playlist', + 'id': playlist_id, + 'title': title, + 'description': self._og_search_description(webpage), + 'entries': entries, + } diff --git a/youtube_dl/extractor/einthusan.py b/youtube_dl/extractor/einthusan.py index 443865a..6ca07a1 100644 --- a/youtube_dl/extractor/einthusan.py +++ b/youtube_dl/extractor/einthusan.py @@ -19,7 +19,7 @@ class EinthusanIE(InfoExtractor): 'id': '2447', 'ext': 'mp4', 'title': 'Ek Villain', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'description': 'md5:9d29fc91a7abadd4591fb862fa560d93', } }, @@ -30,7 +30,7 @@ class EinthusanIE(InfoExtractor): 'id': '1671', 'ext': 'mp4', 'title': 'Soodhu Kavvuum', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'description': 'md5:b40f2bf7320b4f9414f3780817b2af8c', } }, diff --git a/youtube_dl/extractor/elpais.py b/youtube_dl/extractor/elpais.py index 8c725a4..99e00cf 100644 --- a/youtube_dl/extractor/elpais.py +++ b/youtube_dl/extractor/elpais.py @@ -2,7 +2,7 @@ from __future__ import unicode_literals from .common import InfoExtractor -from ..utils import unified_strdate +from ..utils import strip_jsonp, unified_strdate class ElPaisIE(InfoExtractor): @@ -29,6 +29,16 @@ class ElPaisIE(InfoExtractor): 'description': 'Que sí, que las cápsulas son cómodas. Pero si le pides algo más a la vida, quizá deberías aprender a usar bien la cafetera italiana. No tienes más que ver este vídeo y seguir sus siete normas básicas.', 'upload_date': '20160303', } + }, { + 'url': 'http://elpais.com/elpais/2017/01/26/ciencia/1485456786_417876.html', + 'md5': '9c79923a118a067e1a45789e1e0b0f9c', + 'info_dict': { + 'id': '1485456786_417876', + 'ext': 'mp4', + 'title': 'Hallado un barco de la antigua Roma que naufragó en Baleares hace 1.800 años', + 'description': 'La nave portaba cientos de ánforas y se hundió cerca de la isla de Cabrera por razones desconocidas', + 'upload_date': '20170127', + }, }] def _real_extract(self, url): @@ -37,8 +47,15 @@ class ElPaisIE(InfoExtractor): prefix = self._html_search_regex( r'var\s+url_cache\s*=\s*"([^"]+)";', webpage, 'URL prefix') - video_suffix = self._search_regex( - r"(?:URLMediaFile|urlVideo_\d+)\s*=\s*url_cache\s*\+\s*'([^']+)'", webpage, 'video URL') + id_multimedia = self._search_regex( + r"id_multimedia\s*=\s*'([^']+)'", webpage, 'ID multimedia', default=None) + if id_multimedia: + url_info = self._download_json( + 'http://elpais.com/vdpep/1/?pepid=' + id_multimedia, video_id, transform_source=strip_jsonp) + video_suffix = url_info['mp4'] + else: + video_suffix = self._search_regex( + r"(?:URLMediaFile|urlVideo_\d+)\s*=\s*url_cache\s*\+\s*'([^']+)'", webpage, 'video URL') video_url = prefix + video_suffix thumbnail_suffix = self._search_regex( r"(?:URLMediaStill|urlFotogramaFijo_\d+)\s*=\s*url_cache\s*\+\s*'([^']+)'", diff --git a/youtube_dl/extractor/eroprofile.py b/youtube_dl/extractor/eroprofile.py index 297f8a6..c08643a 100644 --- a/youtube_dl/extractor/eroprofile.py +++ b/youtube_dl/extractor/eroprofile.py @@ -22,7 +22,7 @@ class EroProfileIE(InfoExtractor): 'display_id': 'sexy-babe-softcore', 'ext': 'm4v', 'title': 'sexy babe softcore', - 'thumbnail': 're:https?://.*\.jpg', + 'thumbnail': r're:https?://.*\.jpg', 'age_limit': 18, } }, { @@ -32,7 +32,7 @@ class EroProfileIE(InfoExtractor): 'id': '1133519', 'ext': 'm4v', 'title': 'Try It On Pee_cut_2.wmv - 4shared.com - file sharing - download movie file', - 'thumbnail': 're:https?://.*\.jpg', + 'thumbnail': r're:https?://.*\.jpg', 'age_limit': 18, }, 'skip': 'Requires login', diff --git a/youtube_dl/extractor/escapist.py b/youtube_dl/extractor/escapist.py index a3d7bbb..4d8a3c1 100644 --- a/youtube_dl/extractor/escapist.py +++ b/youtube_dl/extractor/escapist.py @@ -45,7 +45,7 @@ class EscapistIE(InfoExtractor): 'ext': 'mp4', 'description': "Baldur's Gate: Original, Modded or Enhanced Edition? I'll break down what you can expect from the new Baldur's Gate: Enhanced Edition.", 'title': "Breaking Down Baldur's Gate", - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'duration': 264, 'uploader': 'The Escapist', } @@ -57,7 +57,7 @@ class EscapistIE(InfoExtractor): 'ext': 'mp4', 'description': 'This week, Zero Punctuation reviews Evolve.', 'title': 'Evolve - One vs Multiplayer', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'duration': 304, 'uploader': 'The Escapist', } diff --git a/youtube_dl/extractor/esri.py b/youtube_dl/extractor/esri.py index d4205d7..e9dcaeb 100644 --- a/youtube_dl/extractor/esri.py +++ b/youtube_dl/extractor/esri.py @@ -22,7 +22,7 @@ class EsriVideoIE(InfoExtractor): 'ext': 'mp4', 'title': 'ArcGIS Online - Developing Applications', 'description': 'Jeremy Bartley demonstrates how to develop applications with ArcGIS Online.', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'duration': 185, 'upload_date': '20120419', } diff --git a/youtube_dl/extractor/europa.py b/youtube_dl/extractor/europa.py index adc4391..1efc0b2 100644 --- a/youtube_dl/extractor/europa.py +++ b/youtube_dl/extractor/europa.py @@ -23,7 +23,7 @@ class EuropaIE(InfoExtractor): 'ext': 'mp4', 'title': 'TRADE - Wikileaks on TTIP', 'description': 'NEW LIVE EC Midday press briefing of 11/08/2015', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'upload_date': '20150811', 'duration': 34, 'view_count': int, diff --git a/youtube_dl/extractor/expotv.py b/youtube_dl/extractor/expotv.py index ef11962..95a8977 100644 --- a/youtube_dl/extractor/expotv.py +++ b/youtube_dl/extractor/expotv.py @@ -17,7 +17,7 @@ class ExpoTVIE(InfoExtractor): 'ext': 'mp4', 'title': 'NYX Butter Lipstick Little Susie', 'description': 'Goes on like butter, but looks better!', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'uploader': 'Stephanie S.', 'upload_date': '20150520', 'view_count': int, diff --git a/youtube_dl/extractor/extractors.py b/youtube_dl/extractor/extractors.py index 46d007b..12cda36 100644 --- a/youtube_dl/extractor/extractors.py +++ b/youtube_dl/extractor/extractors.py @@ -30,7 +30,10 @@ from .aenetworks import ( AENetworksIE, HistoryTopicIE, ) -from .afreecatv import AfreecaTVIE +from .afreecatv import ( + AfreecaTVIE, + AfreecaTVGlobalIE, +) from .airmozilla import AirMozillaIE from .aljazeera import AlJazeeraIE from .alphaporno import AlphaPornoIE @@ -38,10 +41,7 @@ from .amcnetworks import AMCNetworksIE from .animeondemand import AnimeOnDemandIE from .anitube import AnitubeIE from .anysex import AnySexIE -from .aol import ( - AolIE, - AolFeaturesIE, -) +from .aol import AolIE from .allocine import AllocineIE from .aparat import AparatIE from .appleconnect import AppleConnectIE @@ -80,6 +80,10 @@ from .awaan import ( AWAANLiveIE, AWAANSeasonIE, ) +from .azmedien import ( + AZMedienIE, + AZMedienPlaylistIE, +) from .azubu import AzubuIE, AzubuLiveIE from .baidu import BaiduVideoIE from .bambuser import BambuserIE, BambuserChannelIE @@ -91,6 +95,7 @@ from .bbc import ( BBCCoUkPlaylistIE, BBCIE, ) +from .beampro import BeamProLiveIE from .beeg import BeegIE from .behindkink import BehindKinkIE from .bellmedia import BellMediaIE @@ -98,7 +103,10 @@ from .beatport import BeatportIE from .bet import BetIE from .bigflix import BigflixIE from .bild import BildIE -from .bilibili import BiliBiliIE +from .bilibili import ( + BiliBiliIE, + BiliBiliBangumiIE, +) from .biobiochiletv import BioBioChileTVIE from .biqle import BIQLEIE from .bleacherreport import ( @@ -150,6 +158,7 @@ from .cbsnews import ( ) from .cbssports import CBSSportsIE from .ccc import CCCIE +from .ccma import CCMAIE from .cctv import CCTVIE from .cda import CDAIE from .ceskatelevize import CeskaTelevizeIE @@ -239,12 +248,16 @@ from .dramafever import ( from .dreisat import DreiSatIE from .drbonanza import DRBonanzaIE from .drtuber import DrTuberIE -from .drtv import DRTVIE +from .drtv import ( + DRTVIE, + DRTVLiveIE, +) from .dvtv import DVTVIE from .dumpert import DumpertIE from .defense import DefenseGouvFrIE from .discovery import DiscoveryIE from .discoverygo import DiscoveryGoIE +from .disney import DisneyIE from .dispeak import DigitallySpeakingIE from .dropbox import DropboxIE from .dw import ( @@ -254,6 +267,7 @@ from .dw import ( from .eagleplatform import EaglePlatformIE from .ebaumsworld import EbaumsWorldIE from .echomsk import EchoMskIE +from .egghead import EggheadCourseIE from .ehow import EHowIE from .eighttracks import EightTracksIE from .einthusan import EinthusanIE @@ -288,6 +302,10 @@ from .fc2 import ( FC2EmbedIE, ) from .fczenit import FczenitIE +from .filmon import ( + FilmOnIE, + FilmOnChannelIE, +) from .firstpost import FirstpostIE from .firsttv import FirstTVIE from .fivemin import FiveMinIE @@ -319,7 +337,6 @@ from .francetv import ( ) from .freesound import FreesoundIE from .freespeech import FreespeechIE -from .freevideo import FreeVideoIE from .funimation import FunimationIE from .funnyordie import FunnyOrDieIE from .fusion import FusionIE @@ -332,6 +349,7 @@ from .gameone import ( from .gamersyde import GamersydeIE from .gamespot import GameSpotIE from .gamestar import GameStarIE +from .gaskrank import GaskrankIE from .gazeta import GazetaIE from .gdcvault import GDCVaultIE from .generic import GenericIE @@ -369,6 +387,7 @@ from .hgtv import ( ) from .historicfilms import HistoricFilmsIE from .hitbox import HitboxIE, HitboxLiveIE +from .hitrecord import HitRecordIE from .hornbunny import HornBunnyIE from .hotnewhiphop import HotNewHipHopIE from .hotstar import HotStarIE @@ -396,6 +415,7 @@ from .imgur import ( ImgurAlbumIE, ) from .ina import InaIE +from .inc import IncIE from .indavideo import ( IndavideoIE, IndavideoEmbedIE, @@ -406,6 +426,7 @@ from .internetvideoarchive import InternetVideoArchiveIE from .iprima import IPrimaIE from .iqiyi import IqiyiIE from .ir90tv import Ir90TvIE +from .itv import ITVIE from .ivi import ( IviIE, IviCompilationIE @@ -446,7 +467,10 @@ from .kuwo import ( KuwoMvIE, ) from .la7 import LA7IE -from .laola1tv import Laola1TvIE +from .laola1tv import ( + Laola1TvEmbedIE, + Laola1TvIE, +) from .lci import LCIIE from .lcp import ( LcpPlayIE, @@ -498,6 +522,8 @@ from .mangomolo import ( ) from .matchtv import MatchTVIE from .mdr import MDRIE +from .meipai import MeipaiIE +from .melonvod import MelonVODIE from .meta import METAIE from .metacafe import MetacafeIE from .metacritic import MetacriticIE @@ -539,6 +565,7 @@ from .mtv import ( MTVVideoIE, MTVServicesEmbeddedIE, MTVDEIE, + MTV81IE, ) from .muenchentv import MuenchenTVIE from .musicplayon import MusicPlayOnIE @@ -588,6 +615,7 @@ from .nextmedia import ( NextMediaIE, NextMediaActionNewsIE, AppleDailyIE, + NextTVIE, ) from .nfb import NFBIE from .nfl import NFLIE @@ -649,6 +677,9 @@ from .nrk import ( NRKPlaylistIE, NRKSkoleIE, NRKTVIE, + NRKTVDirekteIE, + NRKTVEpisodesIE, + NRKTVSeriesIE, ) from .ntvde import NTVDeIE from .ntvru import NTVRuIE @@ -661,6 +692,7 @@ from .nzz import NZZIE from .odatv import OdaTVIE from .odnoklassniki import OdnoklassnikiIE from .oktoberfesttv import OktoberfestTVIE +from .ondemandkorea import OnDemandKoreaIE from .onet import ( OnetIE, OnetChannelIE, @@ -691,6 +723,7 @@ from .periscope import ( from .philharmoniedeparis import PhilharmonieDeParisIE from .phoenix import PhoenixIE from .photobucket import PhotobucketIE +from .piksel import PikselIE from .pinkbike import PinkbikeIE from .pladform import PladformIE from .playfm import PlayFMIE @@ -710,6 +743,7 @@ from .polskieradio import ( ) from .porn91 import Porn91IE from .porncom import PornComIE +from .pornflip import PornFlipIE from .pornhd import PornHdIE from .pornhub import ( PornHubIE, @@ -804,7 +838,6 @@ from .sbs import SBSIE from .scivee import SciVeeIE from .screencast import ScreencastIE from .screencastomatic import ScreencastOMaticIE -from .screenjunkies import ScreenJunkiesIE from .seeker import SeekerIE from .senateisvp import SenateISVPIE from .sendtonews import SendtoNewsIE @@ -815,7 +848,7 @@ from .shared import ( SharedIE, VivoIE, ) -from .sharesix import ShareSixIE +from .showroomlive import ShowRoomLiveIE from .sina import SinaIE from .sixplay import SixPlayIE from .skynewsarabia import ( @@ -859,10 +892,7 @@ from .spiegeltv import SpiegeltvIE from .spike import SpikeIE from .stitcher import StitcherIE from .sport5 import Sport5IE -from .sportbox import ( - SportBoxIE, - SportBoxEmbedIE, -) +from .sportbox import SportBoxEmbedIE from .sportdeutschland import SportDeutschlandIE from .sportschau import SportschauIE from .srgssr import ( @@ -966,6 +996,7 @@ from .tv2 import ( ) from .tv3 import TV3IE from .tv4 import TV4IE +from .tva import TVAIE from .tvanouvelles import ( TVANouvellesIE, TVANouvellesArticleIE, @@ -998,7 +1029,10 @@ from .twitch import ( TwitchChapterIE, TwitchVodIE, TwitchProfileIE, + TwitchAllVideosIE, + TwitchUploadsIE, TwitchPastBroadcastsIE, + TwitchHighlightsIE, TwitchStreamIE, TwitchClipsIE, ) @@ -1012,6 +1046,7 @@ from .udemy import ( UdemyCourseIE ) from .udn import UDNEmbedIE +from .uktvplay import UKTVPlayIE from .digiteka import DigitekaIE from .unistra import UnistraIE from .uol import UOLIE @@ -1051,6 +1086,7 @@ from .vice import ( from .viceland import VicelandIE from .vidbit import VidbitIE from .viddler import ViddlerIE +from .videa import VideaIE from .videodetective import VideoDetectiveIE from .videofyme import VideofyMeIE from .videomega import VideoMegaIE @@ -1060,7 +1096,7 @@ from .videomore import ( VideomoreSeasonIE, ) from .videopremium import VideoPremiumIE -from .videott import VideoTtIE +from .videopress import VideoPressIE from .vidio import VidioIE from .vidme import ( VidmeIE, @@ -1095,12 +1131,20 @@ from .viki import ( VikiIE, VikiChannelIE, ) +from .viu import ( + ViuIE, + ViuPlaylistIE, + ViuOTTIE, +) from .vk import ( VKIE, VKUserVideosIE, VKWallPostIE, ) -from .vlive import VLiveIE +from .vlive import ( + VLiveIE, + VLiveChannelIE +) from .vodlocker import VodlockerIE from .vodplatform import VODPlatformIE from .voicerepublic import VoiceRepublicIE @@ -1109,6 +1153,7 @@ from .vporn import VpornIE from .vrt import VRTIE from .vube import VubeIE from .vuclip import VuClipIE +from .vvvvid import VVVVIDIE from .vyborymos import VyboryMosIE from .vzaar import VzaarIE from .walla import WallaIE diff --git a/youtube_dl/extractor/facebook.py b/youtube_dl/extractor/facebook.py index b4d38e5..b325c82 100644 --- a/youtube_dl/extractor/facebook.py +++ b/youtube_dl/extractor/facebook.py @@ -12,14 +12,16 @@ from ..compat import ( compat_urllib_parse_unquote_plus, ) from ..utils import ( + clean_html, error_to_compat_str, ExtractorError, + get_element_by_id, int_or_none, + js_to_json, limit_length, sanitized_Request, + try_get, urlencode_postdata, - get_element_by_id, - clean_html, ) @@ -27,7 +29,7 @@ class FacebookIE(InfoExtractor): _VALID_URL = r'''(?x) (?: https?:// - (?:[\w-]+\.)?facebook\.com/ + (?:[\w-]+\.)?(?:facebook\.com|facebookcorewwwi\.onion)/ (?:[^#]*?\#!/)? (?: (?: @@ -71,7 +73,7 @@ class FacebookIE(InfoExtractor): 'info_dict': { 'id': '274175099429670', 'ext': 'mp4', - 'title': 'Facebook video #274175099429670', + 'title': 'Asif Nawab Butt posted a video to his Timeline.', 'uploader': 'Asif Nawab Butt', 'upload_date': '20140506', 'timestamp': 1399398998, @@ -150,6 +152,9 @@ class FacebookIE(InfoExtractor): }, { 'url': 'https://zh-hk.facebook.com/peoplespower/videos/1135894589806027/', 'only_matching': True, + }, { + 'url': 'https://www.facebookcorewwwi.onion/video.php?v=274175099429670', + 'only_matching': True, }] @staticmethod @@ -240,12 +245,30 @@ class FacebookIE(InfoExtractor): video_data = None + def extract_video_data(instances): + for item in instances: + if item[1][0] == 'VideoConfig': + video_item = item[2][0] + if video_item.get('video_id') == video_id: + return video_item['videoData'] + server_js_data = self._parse_json(self._search_regex( - r'handleServerJS\(({.+})(?:\);|,")', webpage, 'server js data', default='{}'), video_id) - for item in server_js_data.get('instances', []): - if item[1][0] == 'VideoConfig': - video_data = item[2][0]['videoData'] - break + r'handleServerJS\(({.+})(?:\);|,")', webpage, + 'server js data', default='{}'), video_id, fatal=False) + + if server_js_data: + video_data = extract_video_data(server_js_data.get('instances', [])) + + if not video_data: + server_js_data = self._parse_json( + self._search_regex( + r'bigPipe\.onPageletArrive\(({.+?})\)\s*;\s*}\s*\)\s*,\s*["\']onPageletArrive\s+stream_pagelet', + webpage, 'js data', default='{}'), + video_id, transform_source=js_to_json, fatal=False) + if server_js_data: + video_data = extract_video_data(try_get( + server_js_data, lambda x: x['jsmods']['instances'], + list) or []) if not video_data: if not fatal_if_no_video: @@ -255,6 +278,8 @@ class FacebookIE(InfoExtractor): raise ExtractorError( 'The video is not available, Facebook said: "%s"' % m_msg.group(1), expected=True) + elif '>You must log in to continue' in webpage: + self.raise_login_required() else: raise ExtractorError('Cannot parse data') @@ -293,10 +318,16 @@ class FacebookIE(InfoExtractor): video_title = self._html_search_regex( r'(?s)<span class="fbPhotosPhotoCaption".*?id="fbPhotoPageCaption"><span class="hasCaption">(.*?)</span>', webpage, 'alternative title', default=None) - video_title = limit_length(video_title, 80) if not video_title: + video_title = self._html_search_meta( + 'description', webpage, 'title') + if video_title: + video_title = limit_length(video_title, 80) + else: video_title = 'Facebook video #%s' % video_id - uploader = clean_html(get_element_by_id('fbPhotoPageAuthorName', webpage)) + uploader = clean_html(get_element_by_id( + 'fbPhotoPageAuthorName', webpage)) or self._search_regex( + r'ownerName\s*:\s*"([^"]+)"', webpage, 'uploader', fatal=False) timestamp = int_or_none(self._search_regex( r'<abbr[^>]+data-utime=["\'](\d+)', webpage, 'timestamp', default=None)) diff --git a/youtube_dl/extractor/fc2.py b/youtube_dl/extractor/fc2.py index c032d4d..448647d 100644 --- a/youtube_dl/extractor/fc2.py +++ b/youtube_dl/extractor/fc2.py @@ -133,7 +133,7 @@ class FC2EmbedIE(InfoExtractor): 'id': '201403223kCqB3Ez', 'ext': 'flv', 'title': 'プリズン・ブレイク S1-01 マイケル 【吹替】', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', }, } diff --git a/youtube_dl/extractor/filmon.py b/youtube_dl/extractor/filmon.py new file mode 100644 index 0000000..f775fe0 --- /dev/null +++ b/youtube_dl/extractor/filmon.py @@ -0,0 +1,178 @@ +# coding: utf-8 +from __future__ import unicode_literals + +from .common import InfoExtractor +from ..compat import ( + compat_str, + compat_HTTPError, +) +from ..utils import ( + qualities, + strip_or_none, + int_or_none, + ExtractorError, +) + + +class FilmOnIE(InfoExtractor): + IE_NAME = 'filmon' + _VALID_URL = r'(?:https?://(?:www\.)?filmon\.com/vod/view/|filmon:)(?P<id>\d+)' + _TESTS = [{ + 'url': 'https://www.filmon.com/vod/view/24869-0-plan-9-from-outer-space', + 'info_dict': { + 'id': '24869', + 'ext': 'mp4', + 'title': 'Plan 9 From Outer Space', + 'description': 'Dead human, zombies and vampires', + }, + }, { + 'url': 'https://www.filmon.com/vod/view/2825-1-popeye-series-1', + 'info_dict': { + 'id': '2825', + 'title': 'Popeye Series 1', + 'description': 'The original series of Popeye.', + }, + 'playlist_mincount': 8, + }] + + def _real_extract(self, url): + video_id = self._match_id(url) + + try: + response = self._download_json( + 'https://www.filmon.com/api/vod/movie?id=%s' % video_id, + video_id)['response'] + except ExtractorError as e: + if isinstance(e.cause, compat_HTTPError): + errmsg = self._parse_json(e.cause.read().decode(), video_id)['reason'] + raise ExtractorError('%s said: %s' % (self.IE_NAME, errmsg), expected=True) + raise + + title = response['title'] + description = strip_or_none(response.get('description')) + + if response.get('type_id') == 1: + entries = [self.url_result('filmon:' + episode_id) for episode_id in response.get('episodes', [])] + return self.playlist_result(entries, video_id, title, description) + + QUALITY = qualities(('low', 'high')) + formats = [] + for format_id, stream in response.get('streams', {}).items(): + stream_url = stream.get('url') + if not stream_url: + continue + formats.append({ + 'format_id': format_id, + 'url': stream_url, + 'ext': 'mp4', + 'quality': QUALITY(stream.get('quality')), + 'protocol': 'm3u8_native', + }) + self._sort_formats(formats) + + thumbnails = [] + poster = response.get('poster', {}) + thumbs = poster.get('thumbs', {}) + thumbs['poster'] = poster + for thumb_id, thumb in thumbs.items(): + thumb_url = thumb.get('url') + if not thumb_url: + continue + thumbnails.append({ + 'id': thumb_id, + 'url': thumb_url, + 'width': int_or_none(thumb.get('width')), + 'height': int_or_none(thumb.get('height')), + }) + + return { + 'id': video_id, + 'title': title, + 'formats': formats, + 'description': description, + 'thumbnails': thumbnails, + } + + +class FilmOnChannelIE(InfoExtractor): + IE_NAME = 'filmon:channel' + _VALID_URL = r'https?://(?:www\.)?filmon\.com/(?:tv|channel)/(?P<id>[a-z0-9-]+)' + _TESTS = [{ + # VOD + 'url': 'http://www.filmon.com/tv/sports-haters', + 'info_dict': { + 'id': '4190', + 'ext': 'mp4', + 'title': 'Sports Haters', + 'description': 'md5:dabcb4c1d9cfc77085612f1a85f8275d', + }, + }, { + # LIVE + 'url': 'https://www.filmon.com/channel/filmon-sports', + 'only_matching': True, + }, { + 'url': 'https://www.filmon.com/tv/2894', + 'only_matching': True, + }] + + _THUMBNAIL_RES = [ + ('logo', 56, 28), + ('big_logo', 106, 106), + ('extra_big_logo', 300, 300), + ] + + def _real_extract(self, url): + channel_id = self._match_id(url) + + try: + channel_data = self._download_json( + 'http://www.filmon.com/api-v2/channel/' + channel_id, channel_id)['data'] + except ExtractorError as e: + if isinstance(e.cause, compat_HTTPError): + errmsg = self._parse_json(e.cause.read().decode(), channel_id)['message'] + raise ExtractorError('%s said: %s' % (self.IE_NAME, errmsg), expected=True) + raise + + channel_id = compat_str(channel_data['id']) + is_live = not channel_data.get('is_vod') and not channel_data.get('is_vox') + title = channel_data['title'] + + QUALITY = qualities(('low', 'high')) + formats = [] + for stream in channel_data.get('streams', []): + stream_url = stream.get('url') + if not stream_url: + continue + if not is_live: + formats.extend(self._extract_wowza_formats( + stream_url, channel_id, skip_protocols=['dash', 'rtmp', 'rtsp'])) + continue + quality = stream.get('quality') + formats.append({ + 'format_id': quality, + # this is an m3u8 stream, but we are deliberately not using _extract_m3u8_formats + # because it doesn't have bitrate variants anyway + 'url': stream_url, + 'ext': 'mp4', + 'quality': QUALITY(quality), + }) + self._sort_formats(formats) + + thumbnails = [] + for name, width, height in self._THUMBNAIL_RES: + thumbnails.append({ + 'id': name, + 'url': 'http://static.filmon.com/assets/channels/%s/%s.png' % (channel_id, name), + 'width': width, + 'height': height, + }) + + return { + 'id': channel_id, + 'display_id': channel_data.get('alias'), + 'title': self._live_title(title) if is_live else title, + 'description': channel_data.get('description'), + 'thumbnails': thumbnails, + 'formats': formats, + 'is_live': is_live, + } diff --git a/youtube_dl/extractor/firsttv.py b/youtube_dl/extractor/firsttv.py index 6b662cc..081c718 100644 --- a/youtube_dl/extractor/firsttv.py +++ b/youtube_dl/extractor/firsttv.py @@ -2,7 +2,10 @@ from __future__ import unicode_literals from .common import InfoExtractor -from ..compat import compat_urlparse +from ..compat import ( + compat_str, + compat_urlparse, +) from ..utils import ( int_or_none, qualities, @@ -22,9 +25,8 @@ class FirstTVIE(InfoExtractor): 'info_dict': { 'id': '40049', 'ext': 'mp4', - 'title': 'Гость Людмила Сенчина. Наедине со всеми. Выпуск от 12.02.2015', - 'description': 'md5:36a39c1d19618fec57d12efe212a8370', - 'thumbnail': 're:^https?://.*\.(?:jpg|JPG)$', + 'title': 'Гость Людмила Сенчина. Наедине со всеми. Выпуск от 12.02.2015', + 'thumbnail': r're:^https?://.*\.(?:jpg|JPG)$', 'upload_date': '20150212', 'duration': 2694, }, @@ -34,9 +36,8 @@ class FirstTVIE(InfoExtractor): 'info_dict': { 'id': '364746', 'ext': 'mp4', - 'title': 'Весенняя аллергия. Доброе утро. Фрагмент выпуска от 07.04.2016', - 'description': 'md5:a242eea0031fd180a4497d52640a9572', - 'thumbnail': 're:^https?://.*\.(?:jpg|JPG)$', + 'title': 'Весенняя аллергия. Доброе утро. Фрагмент выпуска от 07.04.2016', + 'thumbnail': r're:^https?://.*\.(?:jpg|JPG)$', 'upload_date': '20160407', 'duration': 179, 'formats': 'mincount:3', @@ -44,6 +45,17 @@ class FirstTVIE(InfoExtractor): 'params': { 'skip_download': True, }, + }, { + 'url': 'http://www.1tv.ru/news/issue/2016-12-01/14:00', + 'info_dict': { + 'id': '14:00', + 'title': 'Выпуск новостей в 14:00 1 декабря 2016 года. Новости. Первый канал', + 'description': 'md5:2e921b948f8c1ff93901da78ebdb1dfd', + }, + 'playlist_count': 13, + }, { + 'url': 'http://www.1tv.ru/shows/tochvtoch-supersezon/vystupleniya/evgeniy-dyatlov-vladimir-vysockiy-koni-priveredlivye-toch-v-toch-supersezon-fragment-vypuska-ot-06-11-2016', + 'only_matching': True, }] def _real_extract(self, url): @@ -51,43 +63,91 @@ class FirstTVIE(InfoExtractor): webpage = self._download_webpage(url, display_id) playlist_url = compat_urlparse.urljoin(url, self._search_regex( - r'data-playlist-url="([^"]+)', webpage, 'playlist url')) + r'data-playlist-url=(["\'])(?P<url>(?:(?!\1).)+)\1', + webpage, 'playlist url', group='url')) + + parsed_url = compat_urlparse.urlparse(playlist_url) + qs = compat_urlparse.parse_qs(parsed_url.query) + item_ids = qs.get('videos_ids[]') or qs.get('news_ids[]') + + items = self._download_json(playlist_url, display_id) + + if item_ids: + items = [ + item for item in items + if item.get('uid') and compat_str(item['uid']) in item_ids] + else: + items = [items[0]] + + entries = [] + QUALITIES = ('ld', 'sd', 'hd', ) + + for item in items: + title = item['title'] + quality = qualities(QUALITIES) + formats = [] + path = None + for f in item.get('mbr', []): + src = f.get('src') + if not src or not isinstance(src, compat_str): + continue + tbr = int_or_none(self._search_regex( + r'_(\d{3,})\.mp4', src, 'tbr', default=None)) + if not path: + path = self._search_regex( + r'//[^/]+/(.+?)_\d+\.mp4', src, + 'm3u8 path', default=None) + formats.append({ + 'url': src, + 'format_id': f.get('name'), + 'tbr': tbr, + 'source_preference': quality(f.get('name')), + }) + # m3u8 URL format is reverse engineered from [1] (search for + # master.m3u8). dashEdges (that is currently balancer-vod.1tv.ru) + # is taken from [2]. + # 1. http://static.1tv.ru/player/eump1tv-current/eump-1tv.all.min.js?rnd=9097422834:formatted + # 2. http://static.1tv.ru/player/eump1tv-config/config-main.js?rnd=9097422834 + if not path and len(formats) == 1: + path = self._search_regex( + r'//[^/]+/(.+?$)', formats[0]['url'], + 'm3u8 path', default=None) + if path: + if len(formats) == 1: + m3u8_path = ',' + else: + tbrs = [compat_str(t) for t in sorted(f['tbr'] for f in formats)] + m3u8_path = '_,%s,%s' % (','.join(tbrs), '.mp4') + formats.extend(self._extract_m3u8_formats( + 'http://balancer-vod.1tv.ru/%s%s.urlset/master.m3u8' + % (path, m3u8_path), + display_id, 'mp4', + entry_protocol='m3u8_native', m3u8_id='hls', fatal=False)) + self._sort_formats(formats) + + thumbnail = item.get('poster') or self._og_search_thumbnail(webpage) + duration = int_or_none(item.get('duration') or self._html_search_meta( + 'video:duration', webpage, 'video duration', fatal=False)) + upload_date = unified_strdate(self._html_search_meta( + 'ya:ovs:upload_date', webpage, 'upload date', default=None)) - item = self._download_json(playlist_url, display_id)[0] - video_id = item['id'] - quality = qualities(('ld', 'sd', 'hd', )) - formats = [] - for f in item.get('mbr', []): - src = f.get('src') - if not src: - continue - fname = f.get('name') - formats.append({ - 'url': src, - 'format_id': fname, - 'quality': quality(fname), + entries.append({ + 'id': compat_str(item.get('id') or item['uid']), + 'thumbnail': thumbnail, + 'title': title, + 'upload_date': upload_date, + 'duration': int_or_none(duration), + 'formats': formats }) - self._sort_formats(formats) title = self._html_search_regex( (r'<div class="tv_translation">\s*<h1><a href="[^"]+">([^<]*)</a>', r"'title'\s*:\s*'([^']+)'"), - webpage, 'title', default=None) or item['title'] + webpage, 'title', default=None) or self._og_search_title( + webpage, default=None) description = self._html_search_regex( r'<div class="descr">\s*<div> </div>\s*<p>([^<]*)</p></div>', webpage, 'description', default=None) or self._html_search_meta( - 'description', webpage, 'description') - duration = int_or_none(self._html_search_meta( - 'video:duration', webpage, 'video duration', fatal=False)) - upload_date = unified_strdate(self._html_search_meta( - 'ya:ovs:upload_date', webpage, 'upload date', fatal=False)) + 'description', webpage, 'description', default=None) - return { - 'id': video_id, - 'thumbnail': item.get('poster') or self._og_search_thumbnail(webpage), - 'title': title, - 'description': description, - 'upload_date': upload_date, - 'duration': int_or_none(duration), - 'formats': formats - } + return self.playlist_result(entries, display_id, title, description) diff --git a/youtube_dl/extractor/fivetv.py b/youtube_dl/extractor/fivetv.py index 13fbc4d..15736c9 100644 --- a/youtube_dl/extractor/fivetv.py +++ b/youtube_dl/extractor/fivetv.py @@ -25,7 +25,7 @@ class FiveTVIE(InfoExtractor): 'ext': 'mp4', 'title': 'Россияне выбрали имя для общенациональной платежной системы', 'description': 'md5:a8aa13e2b7ad36789e9f77a74b6de660', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'duration': 180, }, }, { @@ -35,7 +35,7 @@ class FiveTVIE(InfoExtractor): 'ext': 'mp4', 'title': '3D принтер', 'description': 'md5:d76c736d29ef7ec5c0cf7d7c65ffcb41', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'duration': 180, }, }, { @@ -44,7 +44,7 @@ class FiveTVIE(InfoExtractor): 'id': 'glavnoe', 'ext': 'mp4', 'title': 'Итоги недели с 8 по 14 июня 2015 года', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', }, }, { 'url': 'http://www.5-tv.ru/glavnoe/broadcasts/508645/', diff --git a/youtube_dl/extractor/fktv.py b/youtube_dl/extractor/fktv.py index a3a2915..2958452 100644 --- a/youtube_dl/extractor/fktv.py +++ b/youtube_dl/extractor/fktv.py @@ -19,7 +19,7 @@ class FKTVIE(InfoExtractor): 'id': '1', 'ext': 'mp4', 'title': 'Folge 1 vom 10. April 2007', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', }, } diff --git a/youtube_dl/extractor/flipagram.py b/youtube_dl/extractor/flipagram.py index 1902a23..b7be40f 100644 --- a/youtube_dl/extractor/flipagram.py +++ b/youtube_dl/extractor/flipagram.py @@ -81,7 +81,7 @@ class FlipagramIE(InfoExtractor): 'filesize': int_or_none(cover.get('size')), } for cover in flipagram.get('covers', []) if cover.get('url')] - # Note that this only retrieves comments that are initally loaded. + # Note that this only retrieves comments that are initially loaded. # For videos with large amounts of comments, most won't be retrieved. comments = [] for comment in video_data.get('comments', {}).get(video_id, {}).get('items', []): diff --git a/youtube_dl/extractor/foxgay.py b/youtube_dl/extractor/foxgay.py index 39174fc..e887ae4 100644 --- a/youtube_dl/extractor/foxgay.py +++ b/youtube_dl/extractor/foxgay.py @@ -20,7 +20,7 @@ class FoxgayIE(InfoExtractor): 'title': 'Fuck Turkish-style', 'description': 'md5:6ae2d9486921891efe89231ace13ffdf', 'age_limit': 18, - 'thumbnail': 're:https?://.*\.jpg$', + 'thumbnail': r're:https?://.*\.jpg$', }, } diff --git a/youtube_dl/extractor/foxnews.py b/youtube_dl/extractor/foxnews.py index 229bcb1..dc0662f 100644 --- a/youtube_dl/extractor/foxnews.py +++ b/youtube_dl/extractor/foxnews.py @@ -22,7 +22,7 @@ class FoxNewsIE(AMPIE): 'duration': 265, 'timestamp': 1304411491, 'upload_date': '20110503', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', }, }, { @@ -36,7 +36,7 @@ class FoxNewsIE(AMPIE): 'duration': 292, 'timestamp': 1417662047, 'upload_date': '20141204', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', }, 'params': { # m3u8 download @@ -111,7 +111,7 @@ class FoxNewsInsiderIE(InfoExtractor): 'description': 'Is campus censorship getting out of control?', 'timestamp': 1472168725, 'upload_date': '20160825', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', }, 'params': { # m3u8 download diff --git a/youtube_dl/extractor/franceculture.py b/youtube_dl/extractor/franceculture.py index 56048ff..b98da69 100644 --- a/youtube_dl/extractor/franceculture.py +++ b/youtube_dl/extractor/franceculture.py @@ -17,7 +17,7 @@ class FranceCultureIE(InfoExtractor): 'display_id': 'rendez-vous-au-pays-des-geeks', 'ext': 'mp3', 'title': 'Rendez-vous au pays des geeks', - 'thumbnail': 're:^https?://.*\\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'upload_date': '20140301', 'vcodec': 'none', } diff --git a/youtube_dl/extractor/francetv.py b/youtube_dl/extractor/francetv.py index e7068d1..48d43ae 100644 --- a/youtube_dl/extractor/francetv.py +++ b/youtube_dl/extractor/francetv.py @@ -168,7 +168,7 @@ class FranceTvInfoIE(FranceTVBaseInfoExtractor): 'id': 'NI_173343', 'ext': 'mp4', 'title': 'Les entreprises familiales : le secret de la réussite', - 'thumbnail': 're:^https?://.*\.jpe?g$', + 'thumbnail': r're:^https?://.*\.jpe?g$', 'timestamp': 1433273139, 'upload_date': '20150602', }, @@ -184,7 +184,7 @@ class FranceTvInfoIE(FranceTVBaseInfoExtractor): 'ext': 'mp4', 'title': 'Olivier Monthus, réalisateur de "Bretagne, le choix de l’Armor"', 'description': 'md5:a3264114c9d29aeca11ced113c37b16c', - 'thumbnail': 're:^https?://.*\.jpe?g$', + 'thumbnail': r're:^https?://.*\.jpe?g$', 'timestamp': 1458300695, 'upload_date': '20160318', }, diff --git a/youtube_dl/extractor/freesound.py b/youtube_dl/extractor/freesound.py index 5ff62af..138b6bc 100644 --- a/youtube_dl/extractor/freesound.py +++ b/youtube_dl/extractor/freesound.py @@ -3,10 +3,16 @@ from __future__ import unicode_literals import re from .common import InfoExtractor +from ..utils import ( + float_or_none, + get_element_by_class, + get_element_by_id, + unified_strdate, +) class FreesoundIE(InfoExtractor): - _VALID_URL = r'https?://(?:www\.)?freesound\.org/people/([^/]+)/sounds/(?P<id>[^/]+)' + _VALID_URL = r'https?://(?:www\.)?freesound\.org/people/[^/]+/sounds/(?P<id>[^/]+)' _TEST = { 'url': 'http://www.freesound.org/people/miklovan/sounds/194503/', 'md5': '12280ceb42c81f19a515c745eae07650', @@ -14,26 +20,60 @@ class FreesoundIE(InfoExtractor): 'id': '194503', 'ext': 'mp3', 'title': 'gulls in the city.wav', - 'uploader': 'miklovan', 'description': 'the sounds of seagulls in the city', + 'duration': 130.233, + 'uploader': 'miklovan', + 'upload_date': '20130715', + 'tags': list, } } def _real_extract(self, url): - mobj = re.match(self._VALID_URL, url) - music_id = mobj.group('id') - webpage = self._download_webpage(url, music_id) - title = self._html_search_regex( - r'<div id="single_sample_header">.*?<a href="#">(.+?)</a>', - webpage, 'music title', flags=re.DOTALL) + audio_id = self._match_id(url) + + webpage = self._download_webpage(url, audio_id) + + audio_url = self._og_search_property('audio', webpage, 'song url') + title = self._og_search_property('audio:title', webpage, 'song title') + description = self._html_search_regex( - r'<div id="sound_description">(.*?)</div>', webpage, 'description', - fatal=False, flags=re.DOTALL) + r'(?s)id=["\']sound_description["\'][^>]*>(.+?)</div>', + webpage, 'description', fatal=False) + + duration = float_or_none( + get_element_by_class('duration', webpage), scale=1000) + + upload_date = unified_strdate(get_element_by_id('sound_date', webpage)) + uploader = self._og_search_property( + 'audio:artist', webpage, 'uploader', fatal=False) + + channels = self._html_search_regex( + r'Channels</dt><dd>(.+?)</dd>', webpage, + 'channels info', fatal=False) + + tags_str = get_element_by_class('tags', webpage) + tags = re.findall(r'<a[^>]+>([^<]+)', tags_str) if tags_str else None + + audio_urls = [audio_url] + + LQ_FORMAT = '-lq.mp3' + if LQ_FORMAT in audio_url: + audio_urls.append(audio_url.replace(LQ_FORMAT, '-hq.mp3')) + + formats = [{ + 'url': format_url, + 'format_note': channels, + 'quality': quality, + } for quality, format_url in enumerate(audio_urls)] + self._sort_formats(formats) return { - 'id': music_id, + 'id': audio_id, 'title': title, - 'url': self._og_search_property('audio', webpage, 'music url'), - 'uploader': self._og_search_property('audio:artist', webpage, 'music uploader'), 'description': description, + 'duration': duration, + 'uploader': uploader, + 'upload_date': upload_date, + 'tags': tags, + 'formats': formats, } diff --git a/youtube_dl/extractor/freevideo.py b/youtube_dl/extractor/freevideo.py deleted file mode 100644 index cd8423a..0000000 --- a/youtube_dl/extractor/freevideo.py +++ /dev/null @@ -1,38 +0,0 @@ -from __future__ import unicode_literals - -from .common import InfoExtractor -from ..utils import ExtractorError - - -class FreeVideoIE(InfoExtractor): - _VALID_URL = r'^https?://www.freevideo.cz/vase-videa/(?P<id>[^.]+)\.html(?:$|[?#])' - - _TEST = { - 'url': 'http://www.freevideo.cz/vase-videa/vysukany-zadecek-22033.html', - 'info_dict': { - 'id': 'vysukany-zadecek-22033', - 'ext': 'mp4', - 'title': 'vysukany-zadecek-22033', - 'age_limit': 18, - }, - 'skip': 'Blocked outside .cz', - } - - def _real_extract(self, url): - video_id = self._match_id(url) - webpage, handle = self._download_webpage_handle(url, video_id) - if '//www.czechav.com/' in handle.geturl(): - raise ExtractorError( - 'Access to freevideo is blocked from your location', - expected=True) - - video_url = self._search_regex( - r'\s+url: "(http://[a-z0-9-]+.cdn.freevideo.cz/stream/.*?/video.mp4)"', - webpage, 'video URL') - - return { - 'id': video_id, - 'url': video_url, - 'title': video_id, - 'age_limit': 18, - } diff --git a/youtube_dl/extractor/funimation.py b/youtube_dl/extractor/funimation.py index 0ad0d9b..eba00cd 100644 --- a/youtube_dl/extractor/funimation.py +++ b/youtube_dl/extractor/funimation.py @@ -29,7 +29,7 @@ class FunimationIE(InfoExtractor): 'ext': 'mp4', 'title': 'Air - 1 - Breeze', 'description': 'md5:1769f43cd5fc130ace8fd87232207892', - 'thumbnail': 're:https?://.*\.jpg', + 'thumbnail': r're:https?://.*\.jpg', }, 'skip': 'Access without user interaction is forbidden by CloudFlare, and video removed', }, { @@ -40,7 +40,7 @@ class FunimationIE(InfoExtractor): 'ext': 'mp4', 'title': '.hack//SIGN - 1 - Role Play', 'description': 'md5:b602bdc15eef4c9bbb201bb6e6a4a2dd', - 'thumbnail': 're:https?://.*\.jpg', + 'thumbnail': r're:https?://.*\.jpg', }, 'skip': 'Access without user interaction is forbidden by CloudFlare', }, { @@ -51,7 +51,7 @@ class FunimationIE(InfoExtractor): 'ext': 'mp4', 'title': 'Attack on Titan: Junior High - Broadcast Dub Preview', 'description': 'md5:f8ec49c0aff702a7832cd81b8a44f803', - 'thumbnail': 're:https?://.*\.(?:jpg|png)', + 'thumbnail': r're:https?://.*\.(?:jpg|png)', }, 'skip': 'Access without user interaction is forbidden by CloudFlare', }] diff --git a/youtube_dl/extractor/funnyordie.py b/youtube_dl/extractor/funnyordie.py index f2928b5..81c0ce9 100644 --- a/youtube_dl/extractor/funnyordie.py +++ b/youtube_dl/extractor/funnyordie.py @@ -17,7 +17,7 @@ class FunnyOrDieIE(InfoExtractor): 'ext': 'mp4', 'title': 'Heart-Shaped Box: Literal Video Version', 'description': 'md5:ea09a01bc9a1c46d9ab696c01747c338', - 'thumbnail': 're:^http:.*\.jpg$', + 'thumbnail': r're:^http:.*\.jpg$', }, }, { 'url': 'http://www.funnyordie.com/embed/e402820827', @@ -26,7 +26,7 @@ class FunnyOrDieIE(InfoExtractor): 'ext': 'mp4', 'title': 'Please Use This Song (Jon Lajoie)', 'description': 'Please use this to sell something. www.jonlajoie.com', - 'thumbnail': 're:^http:.*\.jpg$', + 'thumbnail': r're:^http:.*\.jpg$', }, 'params': { 'skip_download': True, diff --git a/youtube_dl/extractor/fusion.py b/youtube_dl/extractor/fusion.py index b4ab4cb..ede729b 100644 --- a/youtube_dl/extractor/fusion.py +++ b/youtube_dl/extractor/fusion.py @@ -29,7 +29,7 @@ class FusionIE(InfoExtractor): webpage = self._download_webpage(url, display_id) ooyala_code = self._search_regex( - r'data-video-id=(["\'])(?P<code>.+?)\1', + r'data-ooyala-id=(["\'])(?P<code>(?:(?!\1).)+)\1', webpage, 'ooyala code', group='code') return OoyalaIE._build_url_result(ooyala_code) diff --git a/youtube_dl/extractor/gamersyde.py b/youtube_dl/extractor/gamersyde.py index d545e01..a218a69 100644 --- a/youtube_dl/extractor/gamersyde.py +++ b/youtube_dl/extractor/gamersyde.py @@ -20,7 +20,7 @@ class GamersydeIE(InfoExtractor): 'ext': 'mp4', 'duration': 372, 'title': 'Bloodborne - Birth of a hero', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', } } diff --git a/youtube_dl/extractor/gamespot.py b/youtube_dl/extractor/gamespot.py index 4e859e0..682c49e 100644 --- a/youtube_dl/extractor/gamespot.py +++ b/youtube_dl/extractor/gamespot.py @@ -63,7 +63,7 @@ class GameSpotIE(OnceIE): streams, ('progressive_hd', 'progressive_high', 'progressive_low')) if progressive_url and manifest_url: qualities_basename = self._search_regex( - '/([^/]+)\.csmil/', + r'/([^/]+)\.csmil/', manifest_url, 'qualities basename', default=None) if qualities_basename: QUALITIES_RE = r'((,\d+)+,?)' diff --git a/youtube_dl/extractor/gamestar.py b/youtube_dl/extractor/gamestar.py index 55a3460..e607d6a 100644 --- a/youtube_dl/extractor/gamestar.py +++ b/youtube_dl/extractor/gamestar.py @@ -18,7 +18,7 @@ class GameStarIE(InfoExtractor): 'ext': 'mp4', 'title': 'Hobbit 3: Die Schlacht der Fünf Heere - Teaser-Trailer zum dritten Teil', 'description': 'Der Teaser-Trailer zu Hobbit 3: Die Schlacht der Fünf Heere zeigt einige Szenen aus dem dritten Teil der Saga und kündigt den...', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'timestamp': 1406542020, 'upload_date': '20140728', 'duration': 17 diff --git a/youtube_dl/extractor/gaskrank.py b/youtube_dl/extractor/gaskrank.py new file mode 100644 index 0000000..36ba7d8 --- /dev/null +++ b/youtube_dl/extractor/gaskrank.py @@ -0,0 +1,123 @@ +# coding: utf-8 +from __future__ import unicode_literals + +import re +from .common import InfoExtractor +from ..utils import ( + float_or_none, + int_or_none, + js_to_json, + unified_strdate, +) + + +class GaskrankIE(InfoExtractor): + """InfoExtractor for gaskrank.tv""" + _VALID_URL = r'https?://(?:www\.)?gaskrank\.tv/tv/(?P<categories>[^/]+)/(?P<id>[^/]+)\.html?' + _TESTS = [ + { + 'url': 'http://www.gaskrank.tv/tv/motorrad-fun/strike-einparken-durch-anfaenger-crash-mit-groesserem-flurschaden.htm', + 'md5': '1ae88dbac97887d85ebd1157a95fc4f9', + 'info_dict': { + 'id': '201601/26955', + 'ext': 'mp4', + 'title': 'Strike! Einparken können nur Männer - Flurschaden hält sich in Grenzen *lol*', + 'thumbnail': r're:^https?://.*\.jpg$', + 'categories': ['motorrad-fun'], + 'display_id': 'strike-einparken-durch-anfaenger-crash-mit-groesserem-flurschaden', + 'uploader_id': 'Bikefun', + 'upload_date': '20170110', + 'uploader_url': None, + } + }, + { + 'url': 'http://www.gaskrank.tv/tv/racing/isle-of-man-tt-2011-michael-du-15920.htm', + 'md5': 'c33ee32c711bc6c8224bfcbe62b23095', + 'info_dict': { + 'id': '201106/15920', + 'ext': 'mp4', + 'title': 'Isle of Man - Michael Dunlop vs Guy Martin - schwindelig kucken', + 'thumbnail': r're:^https?://.*\.jpg$', + 'categories': ['racing'], + 'display_id': 'isle-of-man-tt-2011-michael-du-15920', + 'uploader_id': 'IOM', + 'upload_date': '20160506', + 'uploader_url': 'www.iomtt.com', + } + } + ] + + def _real_extract(self, url): + """extract information from gaskrank.tv""" + def fix_json(code): + """Removes trailing comma in json: {{},} --> {{}}""" + return re.sub(r',\s*}', r'}', js_to_json(code)) + + display_id = self._match_id(url) + webpage = self._download_webpage(url, display_id) + categories = [re.match(self._VALID_URL, url).group('categories')] + title = self._search_regex( + r'movieName\s*:\s*\'([^\']*)\'', + webpage, 'title') + thumbnail = self._search_regex( + r'poster\s*:\s*\'([^\']*)\'', + webpage, 'thumbnail', default=None) + + mobj = re.search( + r'Video von:\s*(?P<uploader_id>[^|]*?)\s*\|\s*vom:\s*(?P<upload_date>[0-9][0-9]\.[0-9][0-9]\.[0-9][0-9][0-9][0-9])', + webpage) + if mobj is not None: + uploader_id = mobj.groupdict().get('uploader_id') + upload_date = unified_strdate(mobj.groupdict().get('upload_date')) + + uploader_url = self._search_regex( + r'Homepage:\s*<[^>]*>(?P<uploader_url>[^<]*)', + webpage, 'uploader_url', default=None) + tags = re.findall( + r'/tv/tags/[^/]+/"\s*>(?P<tag>[^<]*?)<', + webpage) + + view_count = self._search_regex( + r'class\s*=\s*"gkRight"(?:[^>]*>\s*<[^>]*)*icon-eye-open(?:[^>]*>\s*<[^>]*)*>\s*(?P<view_count>[0-9\.]*)', + webpage, 'view_count', default=None) + if view_count: + view_count = int_or_none(view_count.replace('.', '')) + + average_rating = self._search_regex( + r'itemprop\s*=\s*"ratingValue"[^>]*>\s*(?P<average_rating>[0-9,]+)', + webpage, 'average_rating') + if average_rating: + average_rating = float_or_none(average_rating.replace(',', '.')) + + playlist = self._parse_json( + self._search_regex( + r'playlist\s*:\s*\[([^\]]*)\]', + webpage, 'playlist', default='{}'), + display_id, transform_source=fix_json, fatal=False) + + video_id = self._search_regex( + r'https?://movies\.gaskrank\.tv/([^-]*?)(-[^\.]*)?\.mp4', + playlist.get('0').get('src'), 'video id') + + formats = [] + for key in playlist: + formats.append({ + 'url': playlist[key]['src'], + 'format_id': key, + 'quality': playlist[key].get('quality')}) + self._sort_formats(formats, field_preference=['format_id']) + + return { + 'id': video_id, + 'title': title, + 'formats': formats, + 'thumbnail': thumbnail, + 'categories': categories, + 'display_id': display_id, + 'uploader_id': uploader_id, + 'upload_date': upload_date, + 'uploader_url': uploader_url, + 'tags': tags, + 'view_count': view_count, + 'average_rating': average_rating, + } diff --git a/youtube_dl/extractor/gazeta.py b/youtube_dl/extractor/gazeta.py index 18ef5c2..57c67a4 100644 --- a/youtube_dl/extractor/gazeta.py +++ b/youtube_dl/extractor/gazeta.py @@ -16,7 +16,7 @@ class GazetaIE(InfoExtractor): 'ext': 'mp4', 'title': '«70–80 процентов гражданских в Донецке на грани голода»', 'description': 'md5:38617526050bd17b234728e7f9620a71', - 'thumbnail': 're:^https?://.*\.jpg', + 'thumbnail': r're:^https?://.*\.jpg', }, 'skip': 'video not found', }, { diff --git a/youtube_dl/extractor/generic.py b/youtube_dl/extractor/generic.py index 3949c8b..1c233f0 100644 --- a/youtube_dl/extractor/generic.py +++ b/youtube_dl/extractor/generic.py @@ -29,6 +29,7 @@ from ..utils import ( UnsupportedError, xpath_text, ) +from .commonprotocols import RtmpIE from .brightcove import ( BrightcoveLegacyIE, BrightcoveNewIE, @@ -73,8 +74,15 @@ from .kaltura import KalturaIE from .eagleplatform import EaglePlatformIE from .facebook import FacebookIE from .soundcloud import SoundcloudIE +from .tunein import TuneInBaseIE from .vbox7 import Vbox7IE from .dbtv import DBTVIE +from .piksel import PikselIE +from .videa import VideaIE +from .twentymin import TwentyMinutenIE +from .ustream import UstreamIE +from .openload import OpenloadIE +from .videopress import VideoPressIE class GenericIE(InfoExtractor): @@ -236,7 +244,7 @@ class GenericIE(InfoExtractor): 'ext': 'mp4', 'title': 'Tikibad ontruimd wegens brand', 'description': 'md5:05ca046ff47b931f9b04855015e163a4', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'duration': 33, }, 'params': { @@ -297,7 +305,7 @@ class GenericIE(InfoExtractor): 'ext': 'mp4', 'upload_date': '20130224', 'uploader_id': 'TheVerge', - 'description': 're:^Chris Ziegler takes a look at the\.*', + 'description': r're:^Chris Ziegler takes a look at the\.*', 'uploader': 'The Verge', 'title': 'First Firefox OS phones side-by-side', }, @@ -343,10 +351,10 @@ class GenericIE(InfoExtractor): }, 'skip': 'There is a limit of 200 free downloads / month for the test song', }, - # embedded brightcove video - # it also tests brightcove videos that need to set the 'Referer' in the - # http requests { + # embedded brightcove video + # it also tests brightcove videos that need to set the 'Referer' + # in the http requests 'add_ie': ['BrightcoveLegacy'], 'url': 'http://www.bfmtv.com/video/bfmbusiness/cours-bourse/cours-bourse-l-analyse-technique-154522/', 'info_dict': { @@ -360,6 +368,24 @@ class GenericIE(InfoExtractor): 'skip_download': True, }, }, + { + # embedded with itemprop embedURL and video id spelled as `idVideo` + 'add_id': ['BrightcoveLegacy'], + 'url': 'http://bfmbusiness.bfmtv.com/mediaplayer/chroniques/olivier-delamarche/', + 'info_dict': { + 'id': '5255628253001', + 'ext': 'mp4', + 'title': 'md5:37c519b1128915607601e75a87995fc0', + 'description': 'md5:37f7f888b434bb8f8cc8dbd4f7a4cf26', + 'uploader': 'BFM BUSINESS', + 'uploader_id': '876450612001', + 'timestamp': 1482255315, + 'upload_date': '20161220', + }, + 'params': { + 'skip_download': True, + }, + }, { # https://github.com/rg3/youtube-dl/issues/2253 'url': 'http://bcove.me/i6nfkrc3', @@ -401,6 +427,26 @@ class GenericIE(InfoExtractor): 'skip_download': True, # m3u8 download }, }, + { + # Brightcove with alternative playerID key + 'url': 'http://www.nature.com/nmeth/journal/v9/n7/fig_tab/nmeth.2062_SV1.html', + 'info_dict': { + 'id': 'nmeth.2062_SV1', + 'title': 'Simultaneous multiview imaging of the Drosophila syncytial blastoderm : Quantitative high-speed imaging of entire developing embryos with simultaneous multiview light-sheet microscopy : Nature Methods : Nature Research', + }, + 'playlist': [{ + 'info_dict': { + 'id': '2228375078001', + 'ext': 'mp4', + 'title': 'nmeth.2062-sv1', + 'description': 'nmeth.2062-sv1', + 'timestamp': 1363357591, + 'upload_date': '20130315', + 'uploader': 'Nature Publishing Group', + 'uploader_id': '1964492299001', + }, + }], + }, # ooyala video { 'url': 'http://www.rollingstone.com/music/videos/norwegian-dj-cashmere-cat-goes-spartan-on-with-me-premiere-20131219', @@ -518,7 +564,7 @@ class GenericIE(InfoExtractor): 'id': 'f4dafcad-ff21-423d-89b5-146cfd89fa1e', 'ext': 'mp4', 'title': 'Ужастики, русский трейлер (2015)', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'duration': 153, } }, @@ -546,17 +592,6 @@ class GenericIE(InfoExtractor): 'description': 'md5:8145d19d320ff3e52f28401f4c4283b9', } }, - # Embedded Ustream video - { - 'url': 'http://www.american.edu/spa/pti/nsa-privacy-janus-2014.cfm', - 'md5': '27b99cdb639c9b12a79bca876a073417', - 'info_dict': { - 'id': '45734260', - 'ext': 'flv', - 'uploader': 'AU SPA: The NSA and Privacy', - 'title': 'NSA and Privacy Forum Debate featuring General Hayden and Barton Gellman' - } - }, # nowvideo embed hidden behind percent encoding { 'url': 'http://www.waoanime.tv/the-super-dimension-fortress-macross-episode-1/', @@ -738,7 +773,7 @@ class GenericIE(InfoExtractor): 'duration': 48, 'timestamp': 1401537900, 'upload_date': '20140531', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', }, }, # Wistia embed @@ -808,6 +843,21 @@ class GenericIE(InfoExtractor): }, 'playlist_mincount': 7, }, + # TuneIn station embed + { + 'url': 'http://radiocnrv.com/promouvoir-radio-cnrv/', + 'info_dict': { + 'id': '204146', + 'ext': 'mp3', + 'title': 'CNRV', + 'location': 'Paris, France', + 'is_live': True, + }, + 'params': { + # Live stream + 'skip_download': True, + }, + }, # Livestream embed { 'url': 'http://www.esa.int/Our_Activities/Space_Science/Rosetta/Philae_comet_touch-down_webcast', @@ -898,6 +948,19 @@ class GenericIE(InfoExtractor): 'title': 'Webinar: Using Discovery, The National Archives’ online catalogue', }, }, + # jwplayer rtmp + { + 'url': 'http://www.suffolk.edu/sjc/', + 'info_dict': { + 'id': 'sjclive', + 'ext': 'flv', + 'title': 'Massachusetts Supreme Judicial Court Oral Arguments', + 'uploader': 'www.suffolk.edu', + }, + 'params': { + 'skip_download': True, + } + }, # rtl.nl embed { 'url': 'http://www.rtlnieuws.nl/nieuws/buitenland/aanslagen-kopenhagen', @@ -972,6 +1035,20 @@ class GenericIE(InfoExtractor): 'skip_download': True, } }, + { + # Kaltura embedded, some fileExt broken (#11480) + 'url': 'http://www.cornell.edu/video/nima-arkani-hamed-standard-models-of-particle-physics', + 'info_dict': { + 'id': '1_sgtvehim', + 'ext': 'mp4', + 'title': 'Our "Standard Models" of particle physics and cosmology', + 'description': 'md5:67ea74807b8c4fea92a6f38d6d323861', + 'timestamp': 1321158993, + 'upload_date': '20111113', + 'uploader_id': 'kps1', + }, + 'add_ie': ['Kaltura'], + }, # Eagle.Platform embed (generic URL) { 'url': 'http://lenta.ru/news/2015/03/06/navalny/', @@ -981,7 +1058,7 @@ class GenericIE(InfoExtractor): 'ext': 'mp4', 'title': 'Навальный вышел на свободу', 'description': 'md5:d97861ac9ae77377f3f20eaf9d04b4f5', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'duration': 87, 'view_count': int, 'age_limit': 0, @@ -995,7 +1072,7 @@ class GenericIE(InfoExtractor): 'id': '12820', 'ext': 'mp4', 'title': "'O Sole Mio", - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'duration': 216, 'view_count': int, }, @@ -1008,7 +1085,7 @@ class GenericIE(InfoExtractor): 'ext': 'mp4', 'title': 'Тайны перевала Дятлова • 1 серия 2 часть', 'description': 'Документальный сериал-расследование одной из самых жутких тайн ХХ века', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'duration': 694, 'age_limit': 0, }, @@ -1020,7 +1097,7 @@ class GenericIE(InfoExtractor): 'id': '3519514', 'ext': 'mp4', 'title': 'Joe Dirt 2 Beautiful Loser Teaser Trailer', - 'thumbnail': 're:^https?://.*\.png$', + 'thumbnail': r're:^https?://.*\.png$', 'duration': 45.115, }, }, @@ -1103,7 +1180,7 @@ class GenericIE(InfoExtractor): 'id': '300346', 'ext': 'mp4', 'title': '中一中男師變性 全校師生力挺', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', }, 'params': { # m3u8 download @@ -1149,7 +1226,7 @@ class GenericIE(InfoExtractor): 'ext': 'mp4', 'title': 'Sauvons les abeilles ! - Le débat', 'description': 'md5:d9082128b1c5277987825d684939ca26', - 'thumbnail': 're:^https?://.*\.jpe?g$', + 'thumbnail': r're:^https?://.*\.jpe?g$', 'timestamp': 1434970506, 'upload_date': '20150622', 'uploader': 'Public Sénat', @@ -1163,7 +1240,7 @@ class GenericIE(InfoExtractor): 'id': '2855', 'ext': 'mp4', 'title': 'Don’t Understand Bitcoin? This Man Will Mumble An Explanation At You', - 'thumbnail': 're:^https?://.*\.jpe?g$', + 'thumbnail': r're:^https?://.*\.jpe?g$', 'uploader': 'ClickHole', 'uploader_id': 'clickhole', } @@ -1389,6 +1466,44 @@ class GenericIE(InfoExtractor): }, 'playlist_mincount': 3, }, + { + # Videa embeds + 'url': 'http://forum.dvdtalk.com/movie-talk/623756-deleted-magic-star-wars-ot-deleted-alt-scenes-docu-style.html', + 'info_dict': { + 'id': '623756-deleted-magic-star-wars-ot-deleted-alt-scenes-docu-style', + 'title': 'Deleted Magic - Star Wars: OT Deleted / Alt. Scenes Docu. Style - DVD Talk Forum', + }, + 'playlist_mincount': 2, + }, + { + # 20 minuten embed + 'url': 'http://www.20min.ch/schweiz/news/story/So-kommen-Sie-bei-Eis-und-Schnee-sicher-an-27032552', + 'info_dict': { + 'id': '523629', + 'ext': 'mp4', + 'title': 'So kommen Sie bei Eis und Schnee sicher an', + 'description': 'md5:117c212f64b25e3d95747e5276863f7d', + }, + 'params': { + 'skip_download': True, + }, + 'add_ie': [TwentyMinutenIE.ie_key()], + }, + { + # VideoPress embed + 'url': 'https://en.support.wordpress.com/videopress/', + 'info_dict': { + 'id': 'OcobLTqC', + 'ext': 'm4v', + 'title': 'IMG_5786', + 'timestamp': 1435711927, + 'upload_date': '20150701', + }, + 'params': { + 'skip_download': True, + }, + 'add_ie': [VideoPressIE.ie_key()], + } # { # # TODO: find another test # # http://schema.org/VideoObject @@ -1880,7 +1995,14 @@ class GenericIE(InfoExtractor): re.search(r'SBN\.VideoLinkset\.ooyala\([\'"](?P<ec>.{32})[\'"]\)', webpage) or re.search(r'data-ooyala-video-id\s*=\s*[\'"](?P<ec>.{32})[\'"]', webpage)) if mobj is not None: - return OoyalaIE._build_url_result(smuggle_url(mobj.group('ec'), {'domain': url})) + embed_token = self._search_regex( + r'embedToken[\'"]?\s*:\s*[\'"]([^\'"]+)', + webpage, 'ooyala embed token', default=None) + return OoyalaIE._build_url_result(smuggle_url( + mobj.group('ec'), { + 'domain': url, + 'embed_token': embed_token, + })) # Look for multiple Ooyala embeds on SBN network websites mobj = re.search(r'SBN\.VideoLinkset\.entryGroup\((\[.*?\])', webpage) @@ -2011,10 +2133,9 @@ class GenericIE(InfoExtractor): return self.url_result(mobj.group('url'), 'TED') # Look for embedded Ustream videos - mobj = re.search( - r'<iframe[^>]+?src=(["\'])(?P<url>http://www\.ustream\.tv/embed/.+?)\1', webpage) - if mobj is not None: - return self.url_result(mobj.group('url'), 'Ustream') + ustream_url = UstreamIE._extract_url(webpage) + if ustream_url: + return self.url_result(ustream_url, UstreamIE.ie_key()) # Look for embedded arte.tv player mobj = re.search( @@ -2045,6 +2166,11 @@ class GenericIE(InfoExtractor): if soundcloud_urls: return _playlist_from_matches(soundcloud_urls, getter=unescapeHTML, ie=SoundcloudIE.ie_key()) + # Look for tunein player + tunein_urls = TuneInBaseIE._extract_urls(webpage) + if tunein_urls: + return _playlist_from_matches(tunein_urls) + # Look for embedded mtvservices player mtvservices_url = MTVServicesEmbeddedIE._extract_url(webpage) if mtvservices_url: @@ -2211,6 +2337,11 @@ class GenericIE(InfoExtractor): if arkena_url: return self.url_result(arkena_url, ArkenaIE.ie_key()) + # Look for Piksel embeds + piksel_url = PikselIE._extract_url(webpage) + if piksel_url: + return self.url_result(piksel_url, PikselIE.ie_key()) + # Look for Limelight embeds mobj = re.search(r'LimelightPlayer\.doLoad(Media|Channel|ChannelList)\(["\'](?P<id>[a-z0-9]{32})', webpage) if mobj: @@ -2320,6 +2451,29 @@ class GenericIE(InfoExtractor): if dbtv_urls: return _playlist_from_matches(dbtv_urls, ie=DBTVIE.ie_key()) + # Look for Videa embeds + videa_urls = VideaIE._extract_urls(webpage) + if videa_urls: + return _playlist_from_matches(videa_urls, ie=VideaIE.ie_key()) + + # Look for 20 minuten embeds + twentymin_urls = TwentyMinutenIE._extract_urls(webpage) + if twentymin_urls: + return _playlist_from_matches( + twentymin_urls, ie=TwentyMinutenIE.ie_key()) + + # Look for Openload embeds + openload_urls = OpenloadIE._extract_urls(webpage) + if openload_urls: + return _playlist_from_matches( + openload_urls, ie=OpenloadIE.ie_key()) + + # Look for VideoPress embeds + videopress_urls = VideoPressIE._extract_urls(webpage) + if videopress_urls: + return _playlist_from_matches( + videopress_urls, ie=VideoPressIE.ie_key()) + # Looking for http://schema.org/VideoObject json_ld = self._search_json_ld( webpage, video_id, default={}, expected_type='VideoObject') @@ -2347,6 +2501,8 @@ class GenericIE(InfoExtractor): def check_video(vurl): if YoutubeIE.suitable(vurl): return True + if RtmpIE.suitable(vurl): + return True vpath = compat_urlparse.urlparse(vurl).path vext = determine_ext(vpath) return '.' in vpath and vext not in ('swf', 'png', 'jpg', 'srt', 'sbv', 'sub', 'vtt', 'ttml', 'js') @@ -2454,6 +2610,15 @@ class GenericIE(InfoExtractor): 'age_limit': age_limit, } + if RtmpIE.suitable(video_url): + entry_info_dict.update({ + '_type': 'url_transparent', + 'ie_key': RtmpIE.ie_key(), + 'url': video_url, + }) + entries.append(entry_info_dict) + continue + ext = determine_ext(video_url) if ext == 'smil': entry_info_dict['formats'] = self._extract_smil_formats(video_url, video_id) diff --git a/youtube_dl/extractor/giantbomb.py b/youtube_dl/extractor/giantbomb.py index 87cd191..29b684d 100644 --- a/youtube_dl/extractor/giantbomb.py +++ b/youtube_dl/extractor/giantbomb.py @@ -23,7 +23,7 @@ class GiantBombIE(InfoExtractor): 'title': 'Quick Look: Destiny: The Dark Below', 'description': 'md5:0aa3aaf2772a41b91d44c63f30dfad24', 'duration': 2399, - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', } } diff --git a/youtube_dl/extractor/giga.py b/youtube_dl/extractor/giga.py index 28eb733..5a9992a 100644 --- a/youtube_dl/extractor/giga.py +++ b/youtube_dl/extractor/giga.py @@ -24,7 +24,7 @@ class GigaIE(InfoExtractor): 'ext': 'mp4', 'title': 'Anime Awesome: Chihiros Reise ins Zauberland – Das Beste kommt zum Schluss', 'description': 'md5:afdf5862241aded4718a30dff6a57baf', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'duration': 578, 'timestamp': 1414749706, 'upload_date': '20141031', diff --git a/youtube_dl/extractor/glide.py b/youtube_dl/extractor/glide.py index f0d9513..d94dfbf 100644 --- a/youtube_dl/extractor/glide.py +++ b/youtube_dl/extractor/glide.py @@ -14,7 +14,7 @@ class GlideIE(InfoExtractor): 'id': 'UZF8zlmuQbe4mr+7dCiQ0w==', 'ext': 'mp4', 'title': "Damon's Glide message", - 'thumbnail': 're:^https?://.*?\.cloudfront\.net/.*\.jpg$', + 'thumbnail': r're:^https?://.*?\.cloudfront\.net/.*\.jpg$', } } diff --git a/youtube_dl/extractor/go.py b/youtube_dl/extractor/go.py index c7776b1..a34779b 100644 --- a/youtube_dl/extractor/go.py +++ b/youtube_dl/extractor/go.py @@ -43,7 +43,10 @@ class GoIE(InfoExtractor): sub_domain, video_id, display_id = re.match(self._VALID_URL, url).groups() if not video_id: webpage = self._download_webpage(url, display_id) - video_id = self._search_regex(r'data-video-id=["\']VDKA(\w+)', webpage, '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') brand = self._BRANDS[sub_domain] video_data = self._download_json( 'http://api.contents.watchabc.go.com/vp2/ws/contents/3000/videos/%s/001/-1/-1/-1/%s/-1/-1.json' % (brand, video_id), diff --git a/youtube_dl/extractor/godtube.py b/youtube_dl/extractor/godtube.py index 363dc66..92efd16 100644 --- a/youtube_dl/extractor/godtube.py +++ b/youtube_dl/extractor/godtube.py @@ -23,7 +23,7 @@ class GodTubeIE(InfoExtractor): 'timestamp': 1205712000, 'uploader': 'beverlybmusic', 'upload_date': '20080317', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', }, }, ] diff --git a/youtube_dl/extractor/googledrive.py b/youtube_dl/extractor/googledrive.py index 766fc26..fec36cb 100644 --- a/youtube_dl/extractor/googledrive.py +++ b/youtube_dl/extractor/googledrive.py @@ -6,6 +6,7 @@ from .common import InfoExtractor from ..utils import ( ExtractorError, int_or_none, + lowercase_escape, ) @@ -13,12 +14,12 @@ class GoogleDriveIE(InfoExtractor): _VALID_URL = r'https?://(?:(?:docs|drive)\.google\.com/(?:uc\?.*?id=|file/d/)|video\.google\.com/get_player\?.*?docid=)(?P<id>[a-zA-Z0-9_-]{28,})' _TESTS = [{ 'url': 'https://drive.google.com/file/d/0ByeS4oOUV-49Zzh4R1J6R09zazQ/edit?pli=1', - 'md5': '881f7700aec4f538571fa1e0eed4a7b6', + 'md5': 'd109872761f7e7ecf353fa108c0dbe1e', 'info_dict': { 'id': '0ByeS4oOUV-49Zzh4R1J6R09zazQ', 'ext': 'mp4', 'title': 'Big Buck Bunny.mp4', - 'duration': 46, + 'duration': 45, } }, { # video id is longer than 28 characters @@ -55,7 +56,7 @@ class GoogleDriveIE(InfoExtractor): def _real_extract(self, url): video_id = self._match_id(url) webpage = self._download_webpage( - 'http://docs.google.com/file/d/%s' % video_id, video_id, encoding='unicode_escape') + 'http://docs.google.com/file/d/%s' % video_id, video_id) reason = self._search_regex(r'"reason"\s*,\s*"([^"]+)', webpage, 'reason', default=None) if reason: @@ -74,7 +75,7 @@ class GoogleDriveIE(InfoExtractor): resolution = fmt.split('/')[1] width, height = resolution.split('x') formats.append({ - 'url': fmt_url, + 'url': lowercase_escape(fmt_url), 'format_id': fmt_id, 'resolution': resolution, 'width': int_or_none(width), diff --git a/youtube_dl/extractor/goshgay.py b/youtube_dl/extractor/goshgay.py index 74e1720..377981d 100644 --- a/youtube_dl/extractor/goshgay.py +++ b/youtube_dl/extractor/goshgay.py @@ -19,7 +19,7 @@ class GoshgayIE(InfoExtractor): 'id': '299069', 'ext': 'flv', 'title': 'DIESEL SFW XXX Video', - 'thumbnail': 're:^http://.*\.jpg$', + 'thumbnail': r're:^http://.*\.jpg$', 'duration': 80, 'age_limit': 18, } diff --git a/youtube_dl/extractor/hbo.py b/youtube_dl/extractor/hbo.py index cbf7743..8116ad9 100644 --- a/youtube_dl/extractor/hbo.py +++ b/youtube_dl/extractor/hbo.py @@ -120,7 +120,7 @@ class HBOIE(HBOBaseIE): 'id': '1437839', 'ext': 'mp4', 'title': 'Ep. 64 Clip: Encryption', - 'thumbnail': 're:https?://.*\.jpg$', + 'thumbnail': r're:https?://.*\.jpg$', 'duration': 1072, } } @@ -141,7 +141,7 @@ class HBOEpisodeIE(HBOBaseIE): 'display_id': 'ep-52-inside-the-episode', 'ext': 'mp4', 'title': 'Ep. 52: Inside the Episode', - 'thumbnail': 're:https?://.*\.jpg$', + 'thumbnail': r're:https?://.*\.jpg$', 'duration': 240, }, }, { diff --git a/youtube_dl/extractor/hearthisat.py b/youtube_dl/extractor/hearthisat.py index 2564538..18c2520 100644 --- a/youtube_dl/extractor/hearthisat.py +++ b/youtube_dl/extractor/hearthisat.py @@ -25,7 +25,7 @@ class HearThisAtIE(InfoExtractor): 'id': '150939', 'ext': 'wav', 'title': 'Moofi - Dr. Kreep', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'timestamp': 1421564134, 'description': 'Listen to Dr. Kreep by Moofi on hearthis.at - Modular, Eurorack, Mutable Intruments Braids, Valhalla-DSP', 'upload_date': '20150118', @@ -46,7 +46,7 @@ class HearThisAtIE(InfoExtractor): 'description': 'Listen to DJ Jim Hopkins - Totally Bitchin\' 80\'s Dance Mix! by TwitchSF on hearthis.at - Dance', 'upload_date': '20160328', 'timestamp': 1459186146, - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'comment_count': int, 'view_count': int, 'like_count': int, diff --git a/youtube_dl/extractor/heise.py b/youtube_dl/extractor/heise.py index 278d9f5..1629cdb 100644 --- a/youtube_dl/extractor/heise.py +++ b/youtube_dl/extractor/heise.py @@ -29,7 +29,7 @@ class HeiseIE(InfoExtractor): 'timestamp': 1411812600, 'upload_date': '20140927', 'description': 'In uplink-Episode 3.3 geht es darum, wie man sich von Cloud-Anbietern emanzipieren kann, worauf man beim Kauf einer Tastatur achten sollte und was Smartphones über uns verraten.', - 'thumbnail': 're:^https?://.*\.jpe?g$', + 'thumbnail': r're:^https?://.*\.jpe?g$', } } diff --git a/youtube_dl/extractor/hellporno.py b/youtube_dl/extractor/hellporno.py index 10da140..0ee8ea7 100644 --- a/youtube_dl/extractor/hellporno.py +++ b/youtube_dl/extractor/hellporno.py @@ -20,7 +20,7 @@ class HellPornoIE(InfoExtractor): 'display_id': 'dixie-is-posing-with-naked-ass-very-erotic', 'ext': 'mp4', 'title': 'Dixie is posing with naked ass very erotic', - 'thumbnail': 're:https?://.*\.jpg$', + 'thumbnail': r're:https?://.*\.jpg$', 'age_limit': 18, } }, { diff --git a/youtube_dl/extractor/historicfilms.py b/youtube_dl/extractor/historicfilms.py index 6a36933..56343e9 100644 --- a/youtube_dl/extractor/historicfilms.py +++ b/youtube_dl/extractor/historicfilms.py @@ -14,7 +14,7 @@ class HistoricFilmsIE(InfoExtractor): 'ext': 'mov', 'title': 'Historic Films: GP-7', 'description': 'md5:1a86a0f3ac54024e419aba97210d959a', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'duration': 2096, }, } diff --git a/youtube_dl/extractor/hitbox.py b/youtube_dl/extractor/hitbox.py index ff79743..e21ebb8 100644 --- a/youtube_dl/extractor/hitbox.py +++ b/youtube_dl/extractor/hitbox.py @@ -25,7 +25,7 @@ class HitboxIE(InfoExtractor): 'alt_title': 'hitboxlive - Aug 9th #6', 'description': '', 'ext': 'mp4', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'duration': 215.1666, 'resolution': 'HD 720p', 'uploader': 'hitboxlive', @@ -163,7 +163,7 @@ class HitboxLiveIE(HitboxIE): if cdn.get('rtmpSubscribe') is True: continue base_url = cdn.get('netConnectionUrl') - host = re.search('.+\.([^\.]+\.[^\./]+)/.+', base_url).group(1) + host = re.search(r'.+\.([^\.]+\.[^\./]+)/.+', base_url).group(1) if base_url not in servers: servers.append(base_url) for stream in cdn.get('bitrates'): diff --git a/youtube_dl/extractor/hitrecord.py b/youtube_dl/extractor/hitrecord.py new file mode 100644 index 0000000..01a6946 --- /dev/null +++ b/youtube_dl/extractor/hitrecord.py @@ -0,0 +1,68 @@ +from __future__ import unicode_literals + +from .common import InfoExtractor +from ..compat import compat_str +from ..utils import ( + clean_html, + float_or_none, + int_or_none, + try_get, +) + + +class HitRecordIE(InfoExtractor): + _VALID_URL = r'https?://(?:www\.)?hitrecord\.org/records/(?P<id>\d+)' + _TEST = { + 'url': 'https://hitrecord.org/records/2954362', + 'md5': 'fe1cdc2023bce0bbb95c39c57426aa71', + 'info_dict': { + 'id': '2954362', + 'ext': 'mp4', + 'title': 'A Very Different World (HITRECORD x ACLU)', + 'description': 'md5:e62defaffab5075a5277736bead95a3d', + 'duration': 139.327, + 'timestamp': 1471557582, + 'upload_date': '20160818', + 'uploader': 'Zuzi.C12', + 'uploader_id': '362811', + 'view_count': int, + 'like_count': int, + 'comment_count': int, + 'tags': list, + } + } + + def _real_extract(self, url): + video_id = self._match_id(url) + + video = self._download_json( + 'https://hitrecord.org/api/web/records/%s' % video_id, video_id) + + title = video['title'] + video_url = video['source_url']['mp4_url'] + + tags = None + tags_list = try_get(video, lambda x: x['tags'], list) + if tags_list: + tags = [ + t['text'] + for t in tags_list + if isinstance(t, dict) and t.get('text') and + isinstance(t['text'], compat_str)] + + return { + 'id': video_id, + 'url': video_url, + 'title': title, + 'description': clean_html(video.get('body')), + 'duration': float_or_none(video.get('duration'), 1000), + 'timestamp': int_or_none(video.get('created_at_i')), + 'uploader': try_get( + video, lambda x: x['user']['username'], compat_str), + 'uploader_id': try_get( + video, lambda x: compat_str(x['user']['id'])), + 'view_count': int_or_none(video.get('total_views_count')), + 'like_count': int_or_none(video.get('hearts_count')), + 'comment_count': int_or_none(video.get('comments_count')), + 'tags': tags, + } diff --git a/youtube_dl/extractor/hornbunny.py b/youtube_dl/extractor/hornbunny.py index 0615f06..c458a95 100644 --- a/youtube_dl/extractor/hornbunny.py +++ b/youtube_dl/extractor/hornbunny.py @@ -20,7 +20,7 @@ class HornBunnyIE(InfoExtractor): 'duration': 550, 'age_limit': 18, 'view_count': int, - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', } } diff --git a/youtube_dl/extractor/howstuffworks.py b/youtube_dl/extractor/howstuffworks.py index 65ba2a4..2be68ab 100644 --- a/youtube_dl/extractor/howstuffworks.py +++ b/youtube_dl/extractor/howstuffworks.py @@ -21,7 +21,7 @@ class HowStuffWorksIE(InfoExtractor): 'title': 'Cool Jobs - Iditarod Musher', 'description': 'Cold sleds, freezing temps and warm dog breath... an Iditarod musher\'s dream. Kasey-Dee Gardner jumps on a sled to find out what the big deal is.', 'display_id': 'cool-jobs-iditarod-musher', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'duration': 161, }, 'skip': 'Video broken', @@ -34,7 +34,7 @@ class HowStuffWorksIE(InfoExtractor): 'title': 'Survival Zone: Food and Water In the Savanna', 'description': 'Learn how to find both food and water while trekking in the African savannah. In this video from the Discovery Channel.', 'display_id': 'survival-zone-food-and-water-in-the-savanna', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', }, }, { @@ -45,7 +45,7 @@ class HowStuffWorksIE(InfoExtractor): 'title': 'Sword Swallowing #1 by Dan Meyer', 'description': 'Video footage (1 of 3) used by permission of the owner Dan Meyer through Sword Swallowers Association International <www.swordswallow.org>', 'display_id': 'sword-swallowing-1-by-dan-meyer', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', }, }, { diff --git a/youtube_dl/extractor/huajiao.py b/youtube_dl/extractor/huajiao.py index cec0df0..4ca275d 100644 --- a/youtube_dl/extractor/huajiao.py +++ b/youtube_dl/extractor/huajiao.py @@ -20,7 +20,7 @@ class HuajiaoIE(InfoExtractor): 'title': '#新人求关注#', 'description': 're:.*', 'duration': 2424.0, - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'timestamp': 1475866459, 'upload_date': '20161007', 'uploader': 'Penny_余姿昀', diff --git a/youtube_dl/extractor/huffpost.py b/youtube_dl/extractor/huffpost.py index 0590737..97e36f0 100644 --- a/youtube_dl/extractor/huffpost.py +++ b/youtube_dl/extractor/huffpost.py @@ -52,7 +52,7 @@ class HuffPostIE(InfoExtractor): thumbnails = [] for url in filter(None, data['images'].values()): - m = re.match('.*-([0-9]+x[0-9]+)\.', url) + m = re.match(r'.*-([0-9]+x[0-9]+)\.', url) if not m: continue thumbnails.append({ diff --git a/youtube_dl/extractor/imdb.py b/youtube_dl/extractor/imdb.py index f0fc8d4..f95c00c 100644 --- a/youtube_dl/extractor/imdb.py +++ b/youtube_dl/extractor/imdb.py @@ -13,7 +13,7 @@ from ..utils import ( class ImdbIE(InfoExtractor): IE_NAME = 'imdb' IE_DESC = 'Internet Movie Database trailers' - _VALID_URL = r'https?://(?:www|m)\.imdb\.com/(?:video/[^/]+/|title/tt\d+.*?#lb-)vi(?P<id>\d+)' + _VALID_URL = r'https?://(?:www|m)\.imdb\.com/(?:video/[^/]+/|title/tt\d+.*?#lb-|videoplayer/)vi(?P<id>\d+)' _TESTS = [{ 'url': 'http://www.imdb.com/video/imdb/vi2524815897', @@ -32,6 +32,9 @@ class ImdbIE(InfoExtractor): }, { 'url': 'http://www.imdb.com/title/tt1667889/#lb-vi2524815897', 'only_matching': True, + }, { + 'url': 'http://www.imdb.com/videoplayer/vi1562949145', + 'only_matching': True, }] def _real_extract(self, url): diff --git a/youtube_dl/extractor/inc.py b/youtube_dl/extractor/inc.py new file mode 100644 index 0000000..241ec83 --- /dev/null +++ b/youtube_dl/extractor/inc.py @@ -0,0 +1,41 @@ +from __future__ import unicode_literals + +from .common import InfoExtractor +from .kaltura import KalturaIE + + +class IncIE(InfoExtractor): + _VALID_URL = r'https?://(?:www\.)?inc\.com/(?:[^/]+/)+(?P<id>[^.]+).html' + _TESTS = [{ + 'url': 'http://www.inc.com/tip-sheet/bill-gates-says-these-5-books-will-make-you-smarter.html', + 'md5': '7416739c9c16438c09fa35619d6ba5cb', + 'info_dict': { + 'id': '1_wqig47aq', + 'ext': 'mov', + 'title': 'Bill Gates Says These 5 Books Will Make You Smarter', + 'description': 'md5:bea7ff6cce100886fc1995acb743237e', + 'timestamp': 1474414430, + 'upload_date': '20160920', + 'uploader_id': 'video@inc.com', + }, + 'params': { + 'skip_download': True, + }, + }, { + 'url': 'http://www.inc.com/video/david-whitford/founders-forum-tripadvisor-steve-kaufer-most-enjoyable-moment-for-entrepreneur.html', + 'only_matching': True, + }] + + def _real_extract(self, url): + display_id = self._match_id(url) + webpage = self._download_webpage(url, display_id) + + partner_id = self._search_regex( + r'var\s+_?bizo_data_partner_id\s*=\s*["\'](\d+)', webpage, 'partner id') + + kaltura_id = self._parse_json(self._search_regex( + r'pageInfo\.videos\s*=\s*\[(.+)\];', webpage, 'kaltura id'), + display_id)['vid_kaltura_id'] + + return self.url_result( + 'kaltura:%s:%s' % (partner_id, kaltura_id), KalturaIE.ie_key()) diff --git a/youtube_dl/extractor/indavideo.py b/youtube_dl/extractor/indavideo.py index c6f0804..11cf3c6 100644 --- a/youtube_dl/extractor/indavideo.py +++ b/youtube_dl/extractor/indavideo.py @@ -19,7 +19,7 @@ class IndavideoEmbedIE(InfoExtractor): 'ext': 'mp4', 'title': 'Cicatánc', 'description': '', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'uploader': 'cukiajanlo', 'uploader_id': '83729', 'timestamp': 1439193826, @@ -102,7 +102,7 @@ class IndavideoIE(InfoExtractor): 'ext': 'mp4', 'title': 'Vicces cica', 'description': 'Játszik a tablettel. :D', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'uploader': 'Jet_Pack', 'uploader_id': '491217', 'timestamp': 1390821212, diff --git a/youtube_dl/extractor/infoq.py b/youtube_dl/extractor/infoq.py index cca0b8a..9fb71e8 100644 --- a/youtube_dl/extractor/infoq.py +++ b/youtube_dl/extractor/infoq.py @@ -4,7 +4,10 @@ from __future__ import unicode_literals import base64 -from ..compat import compat_urllib_parse_unquote +from ..compat import ( + compat_urllib_parse_unquote, + compat_urlparse, +) from ..utils import determine_ext from .bokecc import BokeCCBaseIE @@ -33,9 +36,21 @@ class InfoQIE(BokeCCBaseIE): 'ext': 'flv', 'description': 'md5:308d981fb28fa42f49f9568322c683ff', }, + }, { + 'url': 'https://www.infoq.com/presentations/Simple-Made-Easy', + 'md5': '0e34642d4d9ef44bf86f66f6399672db', + 'info_dict': { + 'id': 'Simple-Made-Easy', + 'title': 'Simple Made Easy', + 'ext': 'mp3', + 'description': 'md5:3e0e213a8bbd074796ef89ea35ada25b', + }, + 'params': { + 'format': 'bestaudio', + }, }] - def _extract_rtmp_videos(self, webpage): + def _extract_rtmp_video(self, webpage): # The server URL is hardcoded video_url = 'rtmpe://video.infoq.com/cfx/st/' @@ -47,28 +62,53 @@ class InfoQIE(BokeCCBaseIE): playpath = 'mp4:' + real_id return [{ - 'format_id': 'rtmp', + 'format_id': 'rtmp_video', 'url': video_url, 'ext': determine_ext(playpath), 'play_path': playpath, }] - def _extract_http_videos(self, webpage): - http_video_url = self._search_regex(r'P\.s\s*=\s*\'([^\']+)\'', webpage, 'video URL') - + def _extract_cookies(self, webpage): policy = self._search_regex(r'InfoQConstants.scp\s*=\s*\'([^\']+)\'', webpage, 'policy') signature = self._search_regex(r'InfoQConstants.scs\s*=\s*\'([^\']+)\'', webpage, 'signature') key_pair_id = self._search_regex(r'InfoQConstants.sck\s*=\s*\'([^\']+)\'', webpage, 'key-pair-id') + return 'CloudFront-Policy=%s; CloudFront-Signature=%s; CloudFront-Key-Pair-Id=%s' % ( + policy, signature, key_pair_id) + def _extract_http_video(self, webpage): + http_video_url = self._search_regex(r'P\.s\s*=\s*\'([^\']+)\'', webpage, 'video URL') return [{ - 'format_id': 'http', + 'format_id': 'http_video', 'url': http_video_url, 'http_headers': { - 'Cookie': 'CloudFront-Policy=%s; CloudFront-Signature=%s; CloudFront-Key-Pair-Id=%s' % ( - policy, signature, key_pair_id), + 'Cookie': self._extract_cookies(webpage) }, }] + def _extract_http_audio(self, webpage, video_id): + fields = self._hidden_inputs(webpage) + http_audio_url = fields['filename'] + if http_audio_url is None: + return [] + + cookies_header = {'Cookie': self._extract_cookies(webpage)} + + # base URL is found in the Location header in the response returned by + # GET https://www.infoq.com/mp3download.action?filename=... when logged in. + http_audio_url = compat_urlparse.urljoin('http://res.infoq.com/downloads/mp3downloads/', http_audio_url) + + # audio file seem to be missing some times even if there is a download link + # so probe URL to make sure + if not self._is_valid_url(http_audio_url, video_id, headers=cookies_header): + return [] + + return [{ + 'format_id': 'http_audio', + 'url': http_audio_url, + 'vcodec': 'none', + 'http_headers': cookies_header, + }] + def _real_extract(self, url): video_id = self._match_id(url) webpage = self._download_webpage(url, video_id) @@ -80,7 +120,10 @@ class InfoQIE(BokeCCBaseIE): # for China videos, HTTP video URL exists but always fails with 403 formats = self._extract_bokecc_formats(webpage, video_id) else: - formats = self._extract_rtmp_videos(webpage) + self._extract_http_videos(webpage) + formats = ( + self._extract_rtmp_video(webpage) + + self._extract_http_video(webpage) + + self._extract_http_audio(webpage, video_id)) self._sort_formats(formats) diff --git a/youtube_dl/extractor/instagram.py b/youtube_dl/extractor/instagram.py index 196407b..98f408c 100644 --- a/youtube_dl/extractor/instagram.py +++ b/youtube_dl/extractor/instagram.py @@ -22,7 +22,7 @@ class InstagramIE(InfoExtractor): 'ext': 'mp4', 'title': 'Video by naomipq', 'description': 'md5:1f17f0ab29bd6fe2bfad705f58de3cb8', - 'thumbnail': 're:^https?://.*\.jpg', + 'thumbnail': r're:^https?://.*\.jpg', 'timestamp': 1371748545, 'upload_date': '20130620', 'uploader_id': 'naomipq', @@ -38,7 +38,7 @@ class InstagramIE(InfoExtractor): 'id': 'BA-pQFBG8HZ', 'ext': 'mp4', 'title': 'Video by britneyspears', - 'thumbnail': 're:^https?://.*\.jpg', + 'thumbnail': r're:^https?://.*\.jpg', 'timestamp': 1453760977, 'upload_date': '20160125', 'uploader_id': 'britneyspears', @@ -169,7 +169,7 @@ class InstagramUserIE(InfoExtractor): 'id': '614605558512799803_462752227', 'ext': 'mp4', 'title': '#Porsche Intelligent Performance.', - 'thumbnail': 're:^https?://.*\.jpg', + 'thumbnail': r're:^https?://.*\.jpg', 'uploader': 'Porsche', 'uploader_id': 'porsche', 'timestamp': 1387486713, diff --git a/youtube_dl/extractor/iprima.py b/youtube_dl/extractor/iprima.py index da2cdc6..0fe5768 100644 --- a/youtube_dl/extractor/iprima.py +++ b/youtube_dl/extractor/iprima.py @@ -65,7 +65,7 @@ class IPrimaIE(InfoExtractor): options = self._parse_json( self._search_regex( - r'(?s)var\s+playerOptions\s*=\s*({.+?});', + r'(?s)(?:TDIPlayerOptions|playerOptions)\s*=\s*({.+?});\s*\]\]', playerpage, 'player options', default='{}'), video_id, transform_source=js_to_json, fatal=False) if options: diff --git a/youtube_dl/extractor/ir90tv.py b/youtube_dl/extractor/ir90tv.py index 214bcd5..d5a3f6f 100644 --- a/youtube_dl/extractor/ir90tv.py +++ b/youtube_dl/extractor/ir90tv.py @@ -14,7 +14,7 @@ class Ir90TvIE(InfoExtractor): 'id': '95719', 'ext': 'mp4', 'title': 'شایعات نقل و انتقالات مهم فوتبال اروپا 94/02/18', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', } }, { 'url': 'http://www.90tv.ir/video/95719/%D8%B4%D8%A7%DB%8C%D8%B9%D8%A7%D8%AA-%D9%86%D9%82%D9%84-%D9%88-%D8%A7%D9%86%D8%AA%D9%82%D8%A7%D9%84%D8%A7%D8%AA-%D9%85%D9%87%D9%85-%D9%81%D9%88%D8%AA%D8%A8%D8%A7%D9%84-%D8%A7%D8%B1%D9%88%D9%BE%D8%A7-940218', diff --git a/youtube_dl/extractor/itv.py b/youtube_dl/extractor/itv.py new file mode 100644 index 0000000..b0d8604 --- /dev/null +++ b/youtube_dl/extractor/itv.py @@ -0,0 +1,196 @@ +# coding: utf-8 +from __future__ import unicode_literals + +import uuid +import xml.etree.ElementTree as etree +import json + +from .common import InfoExtractor +from ..compat import ( + compat_str, + compat_etree_register_namespace, +) +from ..utils import ( + extract_attributes, + xpath_with_ns, + xpath_element, + xpath_text, + int_or_none, + parse_duration, + ExtractorError, + determine_ext, +) + + +class ITVIE(InfoExtractor): + _VALID_URL = r'https?://(?:www\.)?itv\.com/hub/[^/]+/(?P<id>[0-9a-zA-Z]+)' + _TEST = { + 'url': 'http://www.itv.com/hub/mr-bean-animated-series/2a2936a0053', + 'info_dict': { + 'id': '2a2936a0053', + 'ext': 'flv', + 'title': 'Home Movie', + }, + 'params': { + # rtmp download + 'skip_download': True, + }, + } + + def _real_extract(self, url): + video_id = self._match_id(url) + webpage = self._download_webpage(url, video_id) + params = extract_attributes(self._search_regex( + r'(?s)(<[^>]+id="video"[^>]*>)', webpage, 'params')) + + ns_map = { + 'soapenv': 'http://schemas.xmlsoap.org/soap/envelope/', + 'tem': 'http://tempuri.org/', + 'itv': 'http://schemas.datacontract.org/2004/07/Itv.BB.Mercury.Common.Types', + 'com': 'http://schemas.itv.com/2009/05/Common', + } + for ns, full_ns in ns_map.items(): + compat_etree_register_namespace(ns, full_ns) + + def _add_ns(name): + return xpath_with_ns(name, ns_map) + + def _add_sub_element(element, name): + return etree.SubElement(element, _add_ns(name)) + + req_env = etree.Element(_add_ns('soapenv:Envelope')) + _add_sub_element(req_env, 'soapenv:Header') + body = _add_sub_element(req_env, 'soapenv:Body') + get_playlist = _add_sub_element(body, ('tem:GetPlaylist')) + request = _add_sub_element(get_playlist, 'tem:request') + _add_sub_element(request, 'itv:ProductionId').text = params['data-video-id'] + _add_sub_element(request, 'itv:RequestGuid').text = compat_str(uuid.uuid4()).upper() + vodcrid = _add_sub_element(request, 'itv:Vodcrid') + _add_sub_element(vodcrid, 'com:Id') + _add_sub_element(request, 'itv:Partition') + user_info = _add_sub_element(get_playlist, 'tem:userInfo') + _add_sub_element(user_info, 'itv:Broadcaster').text = 'Itv' + _add_sub_element(user_info, 'itv:DM') + _add_sub_element(user_info, 'itv:RevenueScienceValue') + _add_sub_element(user_info, 'itv:SessionId') + _add_sub_element(user_info, 'itv:SsoToken') + _add_sub_element(user_info, 'itv:UserToken') + site_info = _add_sub_element(get_playlist, 'tem:siteInfo') + _add_sub_element(site_info, 'itv:AdvertisingRestriction').text = 'None' + _add_sub_element(site_info, 'itv:AdvertisingSite').text = 'ITV' + _add_sub_element(site_info, 'itv:AdvertisingType').text = 'Any' + _add_sub_element(site_info, 'itv:Area').text = 'ITVPLAYER.VIDEO' + _add_sub_element(site_info, 'itv:Category') + _add_sub_element(site_info, 'itv:Platform').text = 'DotCom' + _add_sub_element(site_info, 'itv:Site').text = 'ItvCom' + device_info = _add_sub_element(get_playlist, 'tem:deviceInfo') + _add_sub_element(device_info, 'itv:ScreenSize').text = 'Big' + player_info = _add_sub_element(get_playlist, 'tem:playerInfo') + _add_sub_element(player_info, 'itv:Version').text = '2' + + headers = self.geo_verification_headers() + headers.update({ + 'Content-Type': 'text/xml; charset=utf-8', + 'SOAPAction': 'http://tempuri.org/PlaylistService/GetPlaylist', + }) + 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_string = xpath_text(resp_env, './/faultstring') + raise ExtractorError('%s said: %s' % (self.IE_NAME, fault_string)) + title = xpath_text(playlist, 'EpisodeTitle', fatal=True) + video_element = xpath_element(playlist, 'VideoEntries/Video', fatal=True) + media_files = xpath_element(video_element, 'MediaFiles', fatal=True) + rtmp_url = media_files.attrib['base'] + + formats = [] + 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) + formats.append({ + 'format_id': 'rtmp' + ('-%d' % tbr if tbr else ''), + 'url': rtmp_url, + 'play_path': play_path, + 'tbr': tbr, + 'ext': 'flv', + }) + + ios_playlist_url = params.get('data-video-playlist') + hmac = params.get('data-video-hmac') + if ios_playlist_url and hmac: + headers = self.geo_verification_headers() + headers.update({ + 'Accept': 'application/vnd.itv.vod.playlist.v2+json', + 'Content-Type': 'application/json', + 'hmac': hmac.upper(), + }) + ios_playlist = self._download_json( + ios_playlist_url, video_id, data=json.dumps({ + 'user': { + 'itvUserId': '', + 'entitlements': [], + 'token': '' + }, + 'device': { + 'manufacturer': 'Apple', + 'model': 'iPad', + 'os': { + 'name': 'iPhone OS', + 'version': '9.3', + 'type': 'ios' + } + }, + 'client': { + 'version': '4.1', + 'id': 'browser' + }, + 'variantAvailability': { + 'featureset': { + 'min': ['hls', 'aes'], + 'max': ['hls', 'aes'] + }, + 'platformTag': 'mobile' + } + }).encode(), headers=headers, fatal=False) + if ios_playlist: + video_data = ios_playlist.get('Playlist', {}).get('Video', {}) + ios_base_url = video_data.get('Base') + for media_file in video_data.get('MediaFiles', []): + href = media_file.get('Href') + if not href: + continue + if ios_base_url: + href = ios_base_url + href + ext = determine_ext(href) + if ext == 'm3u8': + formats.extend(self._extract_m3u8_formats(href, video_id, 'mp4', m3u8_id='hls', fatal=False)) + else: + formats.append({ + 'url': href, + }) + self._sort_formats(formats) + + subtitles = {} + for caption_url in video_element.findall('ClosedCaptioningURIs/URL'): + if not caption_url.text: + continue + ext = determine_ext(caption_url.text, 'ttml') + subtitles.setdefault('en', []).append({ + 'url': caption_url.text, + 'ext': 'ttml' if ext == 'xml' else ext, + }) + + return { + 'id': video_id, + 'title': title, + 'formats': formats, + 'subtitles': subtitles, + 'episode_title': title, + 'episode_number': int_or_none(xpath_text(playlist, 'EpisodeNumber')), + 'series': xpath_text(playlist, 'ProgrammeTitle'), + 'duartion': parse_duration(xpath_text(playlist, 'Duration')), + } diff --git a/youtube_dl/extractor/ivi.py b/youtube_dl/extractor/ivi.py index 7c8cb21..3d3c150 100644 --- a/youtube_dl/extractor/ivi.py +++ b/youtube_dl/extractor/ivi.py @@ -28,7 +28,7 @@ class IviIE(InfoExtractor): 'title': 'Иван Васильевич меняет профессию', 'description': 'md5:b924063ea1677c8fe343d8a72ac2195f', 'duration': 5498, - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', }, 'skip': 'Only works from Russia', }, @@ -46,7 +46,7 @@ class IviIE(InfoExtractor): 'episode': 'Дело Гольдберга (1 часть)', 'episode_number': 1, 'duration': 2655, - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', }, 'skip': 'Only works from Russia', }, @@ -60,7 +60,7 @@ class IviIE(InfoExtractor): 'title': 'Кукла', 'description': 'md5:ffca9372399976a2d260a407cc74cce6', 'duration': 5599, - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', }, 'skip': 'Only works from Russia', } diff --git a/youtube_dl/extractor/iwara.py b/youtube_dl/extractor/iwara.py index 8d7e7f4..a7514fc 100644 --- a/youtube_dl/extractor/iwara.py +++ b/youtube_dl/extractor/iwara.py @@ -3,14 +3,18 @@ from __future__ import unicode_literals from .common import InfoExtractor from ..compat import compat_urllib_parse_urlparse -from ..utils import remove_end +from ..utils import ( + int_or_none, + mimetype2ext, + remove_end, +) class IwaraIE(InfoExtractor): _VALID_URL = r'https?://(?:www\.|ecchi\.)?iwara\.tv/videos/(?P<id>[a-zA-Z0-9]+)' _TESTS = [{ 'url': 'http://iwara.tv/videos/amVwUl1EHpAD9RD', - 'md5': '1d53866b2c514b23ed69e4352fdc9839', + # md5 is unstable 'info_dict': { 'id': 'amVwUl1EHpAD9RD', 'ext': 'mp4', @@ -23,17 +27,17 @@ class IwaraIE(InfoExtractor): 'info_dict': { 'id': '0B1LvuHnL-sRFNXB1WHNqbGw4SXc', 'ext': 'mp4', - 'title': '[3D Hentai] Kyonyu Ã\x97 Genkai Ã\x97 Emaki Shinobi Girls.mp4', + 'title': '[3D Hentai] Kyonyu × Genkai × Emaki Shinobi Girls.mp4', 'age_limit': 18, }, 'add_ie': ['GoogleDrive'], }, { 'url': 'http://www.iwara.tv/videos/nawkaumd6ilezzgq', - 'md5': '1d85f1e5217d2791626cff5ec83bb189', + # md5 is unstable 'info_dict': { 'id': '6liAP9s2Ojc', 'ext': 'mp4', - 'age_limit': 0, + 'age_limit': 18, 'title': '[MMD] Do It Again Ver.2 [1080p 60FPS] (Motion,Camera,Wav+DL)', 'description': 'md5:590c12c0df1443d833fbebe05da8c47a', 'upload_date': '20160910', @@ -52,9 +56,9 @@ class IwaraIE(InfoExtractor): # ecchi is 'sexy' in Japanese age_limit = 18 if hostname.split('.')[0] == 'ecchi' else 0 - entries = self._parse_html5_media_entries(url, webpage, video_id) + video_data = self._download_json('http://www.iwara.tv/api/video/%s' % video_id, video_id) - if not entries: + if not video_data: iframe_url = self._html_search_regex( r'<iframe[^>]+src=([\'"])(?P<url>[^\'"]+)\1', webpage, 'iframe URL', group='url') @@ -67,11 +71,25 @@ class IwaraIE(InfoExtractor): title = remove_end(self._html_search_regex( r'<title>([^<]+)', webpage, 'title'), ' | Iwara') - info_dict = entries[0] - info_dict.update({ + formats = [] + for a_format in video_data: + 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'], + 'format_id': format_id, + 'ext': mimetype2ext(a_format.get('mime')) or 'mp4', + 'height': height, + 'width': int_or_none(height / 9.0 * 16.0 if height else None), + 'quality': 1 if format_id == 'Source' else 0, + }) + + self._sort_formats(formats) + + return { 'id': video_id, 'title': title, 'age_limit': age_limit, - }) - - return info_dict + 'formats': formats, + } diff --git a/youtube_dl/extractor/izlesene.py b/youtube_dl/extractor/izlesene.py index aa0728a..b1d7217 100644 --- a/youtube_dl/extractor/izlesene.py +++ b/youtube_dl/extractor/izlesene.py @@ -29,7 +29,7 @@ class IzleseneIE(InfoExtractor): 'ext': 'mp4', 'title': 'Sevinçten Çıldırtan Doğum Günü Hediyesi', 'description': 'md5:253753e2655dde93f59f74b572454f6d', - 'thumbnail': 're:^https?://.*\.jpg', + 'thumbnail': r're:^https?://.*\.jpg', 'uploader_id': 'pelikzzle', 'timestamp': int, 'upload_date': '20140702', @@ -44,7 +44,7 @@ class IzleseneIE(InfoExtractor): 'id': '17997', 'ext': 'mp4', 'title': 'Tarkan Dortmund 2006 Konseri', - 'thumbnail': 're:^https://.*\.jpg', + 'thumbnail': r're:^https://.*\.jpg', 'uploader_id': 'parlayankiz', 'timestamp': int, 'upload_date': '20061112', diff --git a/youtube_dl/extractor/jamendo.py b/youtube_dl/extractor/jamendo.py index ee9acac..595d7a5 100644 --- a/youtube_dl/extractor/jamendo.py +++ b/youtube_dl/extractor/jamendo.py @@ -5,9 +5,27 @@ import re from ..compat import compat_urlparse from .common import InfoExtractor - - -class JamendoIE(InfoExtractor): +from ..utils import parse_duration + + +class JamendoBaseIE(InfoExtractor): + def _extract_meta(self, webpage, fatal=True): + title = self._og_search_title( + webpage, default=None) or self._search_regex( + r'([^<]+)', webpage, + 'title', default=None) + if title: + title = self._search_regex( + r'(.+?)\s*\|\s*Jamendo Music', title, 'title', default=None) + if not title: + title = self._html_search_meta( + 'name', webpage, 'title', fatal=fatal) + mobj = re.search(r'(.+) - (.+)', title or '') + artist, second = mobj.groups() if mobj else [None] * 2 + return title, artist, second + + +class JamendoIE(JamendoBaseIE): _VALID_URL = r'https?://(?:www\.)?jamendo\.com/track/(?P<id>[0-9]+)/(?P<display_id>[^/?#&]+)' _TEST = { 'url': 'https://www.jamendo.com/track/196219/stories-from-emona-i', @@ -16,8 +34,11 @@ class JamendoIE(InfoExtractor): 'id': '196219', 'display_id': 'stories-from-emona-i', 'ext': 'flac', - 'title': 'Stories from Emona I', - 'thumbnail': 're:^https?://.*\.jpg' + 'title': 'Maya Filipič - Stories from Emona I', + 'artist': 'Maya Filipič', + 'track': 'Stories from Emona I', + 'duration': 210, + 'thumbnail': r're:^https?://.*\.jpg' } } @@ -28,7 +49,7 @@ class JamendoIE(InfoExtractor): webpage = self._download_webpage(url, display_id) - title = self._html_search_meta('name', webpage, 'title') + title, artist, track = self._extract_meta(webpage) formats = [{ 'url': 'https://%s.jamendo.com/?trackid=%s&format=%s&from=app-97dab294' @@ -46,37 +67,47 @@ class JamendoIE(InfoExtractor): thumbnail = self._html_search_meta( 'image', webpage, 'thumbnail', fatal=False) + duration = parse_duration(self._search_regex( + r'<span[^>]+itemprop=["\']duration["\'][^>]+content=["\'](.+?)["\']', + webpage, 'duration', fatal=False)) return { 'id': track_id, 'display_id': display_id, 'thumbnail': thumbnail, 'title': title, + 'duration': duration, + 'artist': artist, + 'track': track, 'formats': formats } -class JamendoAlbumIE(InfoExtractor): +class JamendoAlbumIE(JamendoBaseIE): _VALID_URL = r'https?://(?:www\.)?jamendo\.com/album/(?P<id>[0-9]+)/(?P<display_id>[\w-]+)' _TEST = { 'url': 'https://www.jamendo.com/album/121486/duck-on-cover', 'info_dict': { 'id': '121486', - 'title': 'Duck On Cover' + 'title': 'Shearer - Duck On Cover' }, 'playlist': [{ 'md5': 'e1a2fcb42bda30dfac990212924149a8', 'info_dict': { 'id': '1032333', 'ext': 'flac', - 'title': 'Warmachine' + 'title': 'Shearer - Warmachine', + 'artist': 'Shearer', + 'track': 'Warmachine', } }, { 'md5': '1f358d7b2f98edfe90fd55dac0799d50', 'info_dict': { 'id': '1032330', 'ext': 'flac', - 'title': 'Without Your Ghost' + 'title': 'Shearer - Without Your Ghost', + 'artist': 'Shearer', + 'track': 'Without Your Ghost', } }], 'params': { @@ -90,18 +121,18 @@ class JamendoAlbumIE(InfoExtractor): webpage = self._download_webpage(url, mobj.group('display_id')) - title = self._html_search_meta('name', webpage, 'title') - - entries = [ - self.url_result( - compat_urlparse.urljoin(url, m.group('path')), - ie=JamendoIE.ie_key(), - video_id=self._search_regex( - r'/track/(\d+)', m.group('path'), - 'track id', default=None)) - for m in re.finditer( - r'<a[^>]+href=(["\'])(?P<path>(?:(?!\1).)+)\1[^>]+class=["\'][^>]*js-trackrow-albumpage-link', - webpage) - ] + title, artist, album = self._extract_meta(webpage, fatal=False) + + entries = [{ + '_type': 'url_transparent', + 'url': compat_urlparse.urljoin(url, m.group('path')), + 'ie_key': JamendoIE.ie_key(), + 'id': self._search_regex( + r'/track/(\d+)', m.group('path'), 'track id', default=None), + 'artist': artist, + 'album': album, + } for m in re.finditer( + r'<a[^>]+href=(["\'])(?P<path>(?:(?!\1).)+)\1[^>]+class=["\'][^>]*js-trackrow-albumpage-link', + webpage)] return self.playlist_result(entries, album_id, title) diff --git a/youtube_dl/extractor/jove.py b/youtube_dl/extractor/jove.py index cf73cd7..f9a034b 100644 --- a/youtube_dl/extractor/jove.py +++ b/youtube_dl/extractor/jove.py @@ -21,7 +21,7 @@ class JoveIE(InfoExtractor): 'ext': 'mp4', 'title': 'Electrode Positioning and Montage in Transcranial Direct Current Stimulation', 'description': 'md5:015dd4509649c0908bc27f049e0262c6', - 'thumbnail': 're:^https?://.*\.png$', + 'thumbnail': r're:^https?://.*\.png$', 'upload_date': '20110523', } }, @@ -33,7 +33,7 @@ class JoveIE(InfoExtractor): 'ext': 'mp4', 'title': 'Culturing Caenorhabditis elegans in Axenic Liquid Media and Creation of Transgenic Worms by Microparticle Bombardment', 'description': 'md5:35ff029261900583970c4023b70f1dc9', - 'thumbnail': 're:^https?://.*\.png$', + 'thumbnail': r're:^https?://.*\.png$', 'upload_date': '20140802', } }, diff --git a/youtube_dl/extractor/jwplatform.py b/youtube_dl/extractor/jwplatform.py index 5d56e0a..aff7ab4 100644 --- a/youtube_dl/extractor/jwplatform.py +++ b/youtube_dl/extractor/jwplatform.py @@ -11,6 +11,7 @@ from ..utils import ( int_or_none, js_to_json, mimetype2ext, + urljoin, ) @@ -110,10 +111,14 @@ class JWPlatformBaseIE(InfoExtractor): tracks = video_data.get('tracks') if tracks and isinstance(tracks, list): for track in tracks: - if track.get('file') and track.get('kind') == 'captions': - subtitles.setdefault(track.get('label') or 'en', []).append({ - 'url': self._proto_relative_url(track['file']) - }) + if track.get('kind') != 'captions': + continue + track_url = urljoin(base_url, track.get('file')) + if not track_url: + continue + subtitles.setdefault(track.get('label') or 'en', []).append({ + 'url': self._proto_relative_url(track_url) + }) entries.append({ 'id': this_video_id, @@ -121,7 +126,7 @@ class JWPlatformBaseIE(InfoExtractor): 'description': video_data.get('description'), 'thumbnail': self._proto_relative_url(video_data.get('image')), 'timestamp': int_or_none(video_data.get('pubdate')), - 'duration': float_or_none(jwplayer_data.get('duration')), + 'duration': float_or_none(jwplayer_data.get('duration') or video_data.get('duration')), 'subtitles': subtitles, 'formats': formats, }) diff --git a/youtube_dl/extractor/kaltura.py b/youtube_dl/extractor/kaltura.py index 91bc3a0..5ef382f 100644 --- a/youtube_dl/extractor/kaltura.py +++ b/youtube_dl/extractor/kaltura.py @@ -107,7 +107,7 @@ class KalturaIE(InfoExtractor): (?P<q1>['\"])wid(?P=q1)\s*:\s* (?P<q2>['\"])_?(?P<partner_id>(?:(?!(?P=q2)).)+)(?P=q2),.*? (?P<q3>['\"])entry_?[Ii]d(?P=q3)\s*:\s* - (?P<q4>['\"])(?P<id>(?:(?!(?P=q4)).)+)(?P=q4), + (?P<q4>['\"])(?P<id>(?:(?!(?P=q4)).)+)(?P=q4)(?:,|\s*\}) """, webpage) or re.search( r'''(?xs) @@ -266,6 +266,12 @@ class KalturaIE(InfoExtractor): # skip for now. if f.get('fileExt') == 'chun': continue + if not f.get('fileExt'): + # QT indicates QuickTime; some videos have broken fileExt + if f.get('containerFormat') == 'qt': + f['fileExt'] = 'mov' + else: + f['fileExt'] = 'mp4' video_url = sign_url( '%s/flavorId/%s' % (data_url, f['id'])) # audio-only has no videoCodecId (e.g. kaltura:1926081:0_c03e1b5g @@ -316,6 +322,6 @@ class KalturaIE(InfoExtractor): 'thumbnail': info.get('thumbnailUrl'), 'duration': info.get('duration'), 'timestamp': info.get('createdAt'), - 'uploader_id': info.get('userId'), + 'uploader_id': info.get('userId') if info.get('userId') != 'None' else None, 'view_count': info.get('plays'), } diff --git a/youtube_dl/extractor/karrierevideos.py b/youtube_dl/extractor/karrierevideos.py index c05263e..4e9eb67 100644 --- a/youtube_dl/extractor/karrierevideos.py +++ b/youtube_dl/extractor/karrierevideos.py @@ -20,7 +20,7 @@ class KarriereVideosIE(InfoExtractor): 'ext': 'flv', 'title': 'AltenpflegerIn', 'description': 'md5:dbadd1259fde2159a9b28667cb664ae2', - 'thumbnail': 're:^http://.*\.png', + 'thumbnail': r're:^http://.*\.png', }, 'params': { # rtmp download @@ -34,7 +34,7 @@ class KarriereVideosIE(InfoExtractor): 'ext': 'flv', 'title': 'Väterkarenz und neue Chancen für Mütter - "Baby - was nun?"', 'description': 'md5:97092c6ad1fd7d38e9d6a5fdeb2bcc33', - 'thumbnail': 're:^http://.*\.png', + 'thumbnail': r're:^http://.*\.png', }, 'params': { # rtmp download diff --git a/youtube_dl/extractor/keezmovies.py b/youtube_dl/extractor/keezmovies.py index 588a4d0..e83115e 100644 --- a/youtube_dl/extractor/keezmovies.py +++ b/youtube_dl/extractor/keezmovies.py @@ -27,7 +27,7 @@ class KeezMoviesIE(InfoExtractor): 'display_id': 'petite-asian-lady-mai-playing-in-bathtub', 'ext': 'mp4', 'title': 'Petite Asian Lady Mai Playing In Bathtub', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'view_count': int, 'age_limit': 18, } diff --git a/youtube_dl/extractor/ketnet.py b/youtube_dl/extractor/ketnet.py index eb0a160..fb9c2db 100644 --- a/youtube_dl/extractor/ketnet.py +++ b/youtube_dl/extractor/ketnet.py @@ -13,7 +13,7 @@ class KetnetIE(InfoExtractor): 'ext': 'mp4', 'title': 'Gluur mee op de filmset en op Pennenzakkenrock', 'description': 'Gluur mee met Ghost Rockers op de filmset', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', } }, { 'url': 'https://www.ketnet.be/kijken/karrewiet/uitzending-8-september-2016', diff --git a/youtube_dl/extractor/konserthusetplay.py b/youtube_dl/extractor/konserthusetplay.py index 55291c6..c11cbcf 100644 --- a/youtube_dl/extractor/konserthusetplay.py +++ b/youtube_dl/extractor/konserthusetplay.py @@ -2,29 +2,31 @@ 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, ) class KonserthusetPlayIE(InfoExtractor): - _VALID_URL = r'https?://(?:www\.)?konserthusetplay\.se/\?.*\bm=(?P<id>[^&]+)' - _TEST = { + _VALID_URL = r'https?://(?:www\.)?(?:konserthusetplay|rspoplay)\.se/\?.*\bm=(?P<id>[^&]+)' + _TESTS = [{ 'url': 'http://www.konserthusetplay.se/?m=CKDDnlCY-dhWAAqiMERd-A', + 'md5': 'e3fd47bf44e864bd23c08e487abe1967', 'info_dict': { 'id': 'CKDDnlCY-dhWAAqiMERd-A', - 'ext': 'flv', + 'ext': 'mp4', 'title': 'Orkesterns instrument: Valthornen', 'description': 'md5:f10e1f0030202020396a4d712d2fa827', 'thumbnail': 're:^https?://.*$', - 'duration': 398.8, + 'duration': 398.76, }, - 'params': { - # rtmp download - 'skip_download': True, - }, - } + }, { + 'url': 'http://rspoplay.se/?m=elWuEH34SMKvaO4wO_cHBw', + 'only_matching': True, + }] def _real_extract(self, url): video_id = self._match_id(url) @@ -42,12 +44,18 @@ class KonserthusetPlayIE(InfoExtractor): player_config = media['playerconfig'] playlist = player_config['playlist'] - source = next(f for f in playlist if f.get('bitrates')) + source = next(f for f in playlist if f.get('bitrates') or f.get('provider')) FORMAT_ID_REGEX = r'_([^_]+)_h264m\.mp4' formats = [] + m3u8_url = source.get('url') + if m3u8_url and determine_ext(m3u8_url) == 'm3u8': + formats.extend(self._extract_m3u8_formats( + m3u8_url, video_id, 'mp4', entry_protocol='m3u8_native', + m3u8_id='hls', fatal=False)) + fallback_url = source.get('fallbackUrl') fallback_format_id = None if fallback_url: @@ -97,6 +105,13 @@ class KonserthusetPlayIE(InfoExtractor): thumbnail = media.get('image') duration = float_or_none(media.get('duration'), 1000) + subtitles = {} + captions = source.get('captionsAvailableLanguages') + if isinstance(captions, dict): + for lang, subtitle_url in captions.items(): + if lang != 'none' and isinstance(subtitle_url, compat_str): + subtitles.setdefault(lang, []).append({'url': subtitle_url}) + return { 'id': video_id, 'title': title, @@ -104,4 +119,5 @@ class KonserthusetPlayIE(InfoExtractor): 'thumbnail': thumbnail, 'duration': duration, 'formats': formats, + 'subtitles': subtitles, } diff --git a/youtube_dl/extractor/krasview.py b/youtube_dl/extractor/krasview.py index cf8876f..d27d052 100644 --- a/youtube_dl/extractor/krasview.py +++ b/youtube_dl/extractor/krasview.py @@ -23,7 +23,7 @@ class KrasViewIE(InfoExtractor): 'title': 'Снег, лёд, заносы', 'description': 'Снято в городе Нягань, в Ханты-Мансийском автономном округе.', 'duration': 27, - 'thumbnail': 're:^https?://.*\.jpg', + 'thumbnail': r're:^https?://.*\.jpg', }, 'params': { 'skip_download': 'Not accessible from Travis CI server', diff --git a/youtube_dl/extractor/kusi.py b/youtube_dl/extractor/kusi.py index 2e66e8c..6a7e3ba 100644 --- a/youtube_dl/extractor/kusi.py +++ b/youtube_dl/extractor/kusi.py @@ -27,7 +27,7 @@ class KUSIIE(InfoExtractor): 'duration': 223.586, 'upload_date': '20160826', 'timestamp': 1472233118, - 'thumbnail': 're:^https?://.*\.jpg$' + 'thumbnail': r're:^https?://.*\.jpg$' }, }, { 'url': 'http://kusi.com/video?clipId=12203019', diff --git a/youtube_dl/extractor/laola1tv.py b/youtube_dl/extractor/laola1tv.py index 2fab380..3190b18 100644 --- a/youtube_dl/extractor/laola1tv.py +++ b/youtube_dl/extractor/laola1tv.py @@ -1,25 +1,115 @@ # coding: utf-8 from __future__ import unicode_literals -import re - from .common import InfoExtractor -from ..compat import ( - compat_urllib_parse_urlencode, - compat_urlparse, -) from ..utils import ( ExtractorError, - sanitized_Request, unified_strdate, urlencode_postdata, xpath_element, xpath_text, + urljoin, + update_url_query, ) +class Laola1TvEmbedIE(InfoExtractor): + IE_NAME = 'laola1tv:embed' + _VALID_URL = r'https?://(?:www\.)?laola1\.tv/titanplayer\.php\?.*?\bvideoid=(?P<id>\d+)' + _TEST = { + # flashvars.premium = "false"; + 'url': 'https://www.laola1.tv/titanplayer.php?videoid=708065&type=V&lang=en&portal=int&customer=1024', + 'info_dict': { + 'id': '708065', + 'ext': 'mp4', + 'title': 'MA Long CHN - FAN Zhendong CHN', + 'uploader': 'ITTF - International Table Tennis Federation', + 'upload_date': '20161211', + }, + } + + def _real_extract(self, url): + video_id = self._match_id(url) + webpage = self._download_webpage(url, video_id) + flash_vars = self._search_regex( + r'(?s)flashvars\s*=\s*({.+?});', webpage, 'flash vars') + + def get_flashvar(x, *args, **kwargs): + flash_var = self._search_regex( + r'%s\s*:\s*"([^"]+)"' % x, + flash_vars, x, default=None) + if not flash_var: + flash_var = self._search_regex([ + r'flashvars\.%s\s*=\s*"([^"]+)"' % x, + r'%s\s*=\s*"([^"]+)"' % x], + webpage, x, *args, **kwargs) + return flash_var + + hd_doc = self._download_xml( + 'http://www.laola1.tv/server/hd_video.php', video_id, query={ + 'play': get_flashvar('streamid'), + 'partner': get_flashvar('partnerid'), + 'portal': get_flashvar('portalid'), + 'lang': get_flashvar('sprache'), + 'v5ident': '', + }) + + _v = lambda x, **k: xpath_text(hd_doc, './/video/' + x, **k) + title = _v('title', fatal=True) + + token_url = None + premium = get_flashvar('premium', default=None) + if premium: + token_url = update_url_query( + _v('url', fatal=True), { + 'timestamp': get_flashvar('timestamp'), + 'auth': get_flashvar('auth'), + }) + else: + data_abo = urlencode_postdata( + dict((i, v) for i, v in enumerate(_v('req_liga_abos').split(',')))) + token_url = self._download_json( + 'https://club.laola1.tv/sp/laola1/api/v3/user/session/premium/player/stream-access', + video_id, query={ + 'videoId': _v('id'), + 'target': self._search_regex(r'vs_target = (\d+);', webpage, 'vs target'), + 'label': _v('label'), + 'area': _v('area'), + }, data=data_abo)['data']['stream-access'][0] + + token_doc = self._download_xml( + token_url, video_id, 'Downloading token', + headers=self.geo_verification_headers()) + + token_attrib = xpath_element(token_doc, './/token').attrib + + if token_attrib['status'] != '0': + raise ExtractorError( + 'Token error: %s' % token_attrib['comment'], expected=True) + + formats = self._extract_akamai_formats( + '%s?hdnea=%s' % (token_attrib['url'], token_attrib['auth']), + video_id) + self._sort_formats(formats) + + categories_str = _v('meta_sports') + categories = categories_str.split(',') if categories_str else [] + is_live = _v('islive') == 'true' + + return { + 'id': video_id, + 'title': self._live_title(title) if is_live else title, + 'upload_date': unified_strdate(_v('time_date')), + 'uploader': _v('meta_organisation'), + 'categories': categories, + 'is_live': is_live, + 'formats': formats, + } + + class Laola1TvIE(InfoExtractor): - _VALID_URL = r'https?://(?:www\.)?laola1\.tv/(?P<lang>[a-z]+)-(?P<portal>[a-z]+)/(?P<kind>[^/]+)/(?P<slug>[^/?#&]+)' + IE_NAME = 'laola1tv' + _VALID_URL = r'https?://(?:www\.)?laola1\.tv/[a-z]+-[a-z]+/[^/]+/(?P<id>[^/?#&]+)' _TESTS = [{ 'url': 'http://www.laola1.tv/de-de/video/straubing-tigers-koelner-haie/227883.html', 'info_dict': { @@ -67,85 +157,20 @@ class Laola1TvIE(InfoExtractor): }] def _real_extract(self, url): - mobj = re.match(self._VALID_URL, url) - display_id = mobj.group('slug') - kind = mobj.group('kind') - lang = mobj.group('lang') - portal = mobj.group('portal') + display_id = self._match_id(url) webpage = self._download_webpage(url, display_id) if 'Dieser Livestream ist bereits beendet.' in webpage: raise ExtractorError('This live stream has already finished.', expected=True) - iframe_url = self._search_regex( + iframe_url = urljoin(url, self._search_regex( r'<iframe[^>]*?id="videoplayer"[^>]*?src="([^"]+)"', - webpage, 'iframe url') - - video_id = self._search_regex( - r'videoid=(\d+)', iframe_url, 'video id') - - iframe = self._download_webpage(compat_urlparse.urljoin( - url, iframe_url), display_id, 'Downloading iframe') - - partner_id = self._search_regex( - r'partnerid\s*:\s*(["\'])(?P<partner_id>.+?)\1', - iframe, 'partner id', group='partner_id') - - hd_doc = self._download_xml( - 'http://www.laola1.tv/server/hd_video.php?%s' - % compat_urllib_parse_urlencode({ - 'play': video_id, - 'partner': partner_id, - 'portal': portal, - 'lang': lang, - 'v5ident': '', - }), display_id) - - _v = lambda x, **k: xpath_text(hd_doc, './/video/' + x, **k) - title = _v('title', fatal=True) - - VS_TARGETS = { - 'video': '2', - 'livestream': '17', - } - - req = sanitized_Request( - 'https://club.laola1.tv/sp/laola1/api/v3/user/session/premium/player/stream-access?%s' % - compat_urllib_parse_urlencode({ - 'videoId': video_id, - 'target': VS_TARGETS.get(kind, '2'), - 'label': _v('label'), - 'area': _v('area'), - }), - urlencode_postdata( - dict((i, v) for i, v in enumerate(_v('req_liga_abos').split(','))))) - - token_url = self._download_json(req, display_id)['data']['stream-access'][0] - token_doc = self._download_xml(token_url, display_id, 'Downloading token') - - token_attrib = xpath_element(token_doc, './/token').attrib - token_auth = token_attrib['auth'] - - if token_auth in ('blocked', 'restricted', 'error'): - raise ExtractorError( - 'Token error: %s' % token_attrib['comment'], expected=True) - - formats = self._extract_f4m_formats( - '%s?hdnea=%s&hdcore=3.2.0' % (token_attrib['url'], token_auth), - video_id, f4m_id='hds') - self._sort_formats(formats) - - categories_str = _v('meta_sports') - categories = categories_str.split(',') if categories_str else [] + webpage, 'iframe url')) return { - 'id': video_id, + '_type': 'url', 'display_id': display_id, - 'title': title, - 'upload_date': unified_strdate(_v('time_date')), - 'uploader': _v('meta_organisation'), - 'categories': categories, - 'is_live': _v('islive') == 'true', - 'formats': formats, + 'url': iframe_url, + 'ie_key': 'Laola1TvEmbed', } diff --git a/youtube_dl/extractor/leeco.py b/youtube_dl/extractor/leeco.py index c48a5aa..4321f90 100644 --- a/youtube_dl/extractor/leeco.py +++ b/youtube_dl/extractor/leeco.py @@ -386,8 +386,8 @@ class LetvCloudIE(InfoExtractor): return formats def _real_extract(self, url): - uu_mobj = re.search('uu=([\w]+)', url) - vu_mobj = re.search('vu=([\w]+)', url) + uu_mobj = re.search(r'uu=([\w]+)', url) + vu_mobj = re.search(r'vu=([\w]+)', url) if not uu_mobj or not vu_mobj: raise ExtractorError('Invalid URL: %s' % url, expected=True) diff --git a/youtube_dl/extractor/lemonde.py b/youtube_dl/extractor/lemonde.py index be66fff..42568f3 100644 --- a/youtube_dl/extractor/lemonde.py +++ b/youtube_dl/extractor/lemonde.py @@ -12,7 +12,7 @@ class LemondeIE(InfoExtractor): 'id': 'lqm3kl', 'ext': 'mp4', 'title': "Comprendre l'affaire Bygmalion en 5 minutes", - 'thumbnail': 're:^https?://.*\.jpg', + 'thumbnail': r're:^https?://.*\.jpg', 'duration': 320, 'upload_date': '20160119', 'timestamp': 1453194778, diff --git a/youtube_dl/extractor/libraryofcongress.py b/youtube_dl/extractor/libraryofcongress.py index 0a94366..40295a3 100644 --- a/youtube_dl/extractor/libraryofcongress.py +++ b/youtube_dl/extractor/libraryofcongress.py @@ -25,7 +25,7 @@ class LibraryOfCongressIE(InfoExtractor): 'id': '90716351', 'ext': 'mp4', 'title': "Pa's trip to Mars", - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'duration': 0, 'view_count': int, }, diff --git a/youtube_dl/extractor/libsyn.py b/youtube_dl/extractor/libsyn.py index d375695..4750b03 100644 --- a/youtube_dl/extractor/libsyn.py +++ b/youtube_dl/extractor/libsyn.py @@ -41,7 +41,7 @@ class LibsynIE(InfoExtractor): formats = [{ 'url': media_url, - } for media_url in set(re.findall('var\s+mediaURL(?:Libsyn)?\s*=\s*"([^"]+)"', webpage))] + } for media_url in set(re.findall(r'var\s+mediaURL(?:Libsyn)?\s*=\s*"([^"]+)"', webpage))] podcast_title = self._search_regex( r'<h2>([^<]+)</h2>', webpage, 'podcast title', default=None) diff --git a/youtube_dl/extractor/lifenews.py b/youtube_dl/extractor/lifenews.py index afce201..42e263b 100644 --- a/youtube_dl/extractor/lifenews.py +++ b/youtube_dl/extractor/lifenews.py @@ -176,7 +176,7 @@ class LifeEmbedIE(InfoExtractor): 'id': 'e50c2dec2867350528e2574c899b8291', 'ext': 'mp4', 'title': 'e50c2dec2867350528e2574c899b8291', - 'thumbnail': 're:http://.*\.jpg', + 'thumbnail': r're:http://.*\.jpg', } }, { # with 1080p diff --git a/youtube_dl/extractor/limelight.py b/youtube_dl/extractor/limelight.py index b7bfa7a..e635f3c 100644 --- a/youtube_dl/extractor/limelight.py +++ b/youtube_dl/extractor/limelight.py @@ -59,14 +59,26 @@ class LimelightBaseIE(InfoExtractor): format_id = 'rtmp' if stream.get('videoBitRate'): format_id += '-%d' % int_or_none(stream['videoBitRate']) - http_url = 'http://cpl.delvenetworks.com/' + rtmp.group('playpath')[4:] - urls.append(http_url) - http_fmt = fmt.copy() - http_fmt.update({ - 'url': http_url, - 'format_id': format_id.replace('rtmp', 'http'), - }) - formats.append(http_fmt) + http_format_id = format_id.replace('rtmp', 'http') + + CDN_HOSTS = ( + ('delvenetworks.com', 'cpl.delvenetworks.com'), + ('video.llnw.net', 's2.content.video.llnw.net'), + ) + for cdn_host, http_host in CDN_HOSTS: + if cdn_host not in rtmp.group('host').lower(): + continue + http_url = 'http://%s/%s' % (http_host, rtmp.group('playpath')[4:]) + urls.append(http_url) + if self._is_valid_url(http_url, video_id, http_format_id): + http_fmt = fmt.copy() + http_fmt.update({ + 'url': http_url, + 'format_id': http_format_id, + }) + formats.append(http_fmt) + break + fmt.update({ 'url': rtmp.group('url'), 'play_path': rtmp.group('playpath'), @@ -164,7 +176,7 @@ class LimelightMediaIE(LimelightBaseIE): 'ext': 'mp4', 'title': 'HaP and the HB Prince Trailer', 'description': 'md5:8005b944181778e313d95c1237ddb640', - 'thumbnail': 're:^https?://.*\.jpeg$', + 'thumbnail': r're:^https?://.*\.jpeg$', 'duration': 144.23, 'timestamp': 1244136834, 'upload_date': '20090604', @@ -181,7 +193,7 @@ class LimelightMediaIE(LimelightBaseIE): 'id': 'a3e00274d4564ec4a9b29b9466432335', 'ext': 'mp4', 'title': '3Play Media Overview Video', - 'thumbnail': 're:^https?://.*\.jpeg$', + 'thumbnail': r're:^https?://.*\.jpeg$', 'duration': 78.101, 'timestamp': 1338929955, 'upload_date': '20120605', diff --git a/youtube_dl/extractor/litv.py b/youtube_dl/extractor/litv.py index ded717c..337b1b1 100644 --- a/youtube_dl/extractor/litv.py +++ b/youtube_dl/extractor/litv.py @@ -31,7 +31,7 @@ class LiTVIE(InfoExtractor): 'id': 'VOD00041610', 'ext': 'mp4', 'title': '花千骨第1集', - 'thumbnail': 're:https?://.*\.jpg$', + 'thumbnail': r're:https?://.*\.jpg$', 'description': 'md5:c7017aa144c87467c4fb2909c4b05d6f', 'episode_number': 1, }, @@ -80,7 +80,7 @@ class LiTVIE(InfoExtractor): webpage = self._download_webpage(url, video_id) program_info = self._parse_json(self._search_regex( - 'var\s+programInfo\s*=\s*([^;]+)', webpage, 'VOD data', default='{}'), + r'var\s+programInfo\s*=\s*([^;]+)', webpage, 'VOD data', default='{}'), video_id) season_list = list(program_info.get('seasonList', {}).values()) diff --git a/youtube_dl/extractor/liveleak.py b/youtube_dl/extractor/liveleak.py index b84e4dd..c7de653 100644 --- a/youtube_dl/extractor/liveleak.py +++ b/youtube_dl/extractor/liveleak.py @@ -18,7 +18,7 @@ class LiveLeakIE(InfoExtractor): 'description': 'extremely bad day for this guy..!', 'uploader': 'ljfriel2', 'title': 'Most unlucky car accident', - 'thumbnail': 're:^https?://.*\.jpg$' + 'thumbnail': r're:^https?://.*\.jpg$' } }, { 'url': 'http://www.liveleak.com/view?i=f93_1390833151', @@ -29,7 +29,7 @@ class LiveLeakIE(InfoExtractor): 'description': 'German Television Channel NDR does an exclusive interview with Edward Snowden.\r\nUploaded on LiveLeak cause German Television thinks the rest of the world isn\'t intereseted in Edward Snowden.', 'uploader': 'ARD_Stinkt', 'title': 'German Television does first Edward Snowden Interview (ENGLISH)', - 'thumbnail': 're:^https?://.*\.jpg$' + 'thumbnail': r're:^https?://.*\.jpg$' } }, { 'url': 'http://www.liveleak.com/view?i=4f7_1392687779', @@ -52,7 +52,7 @@ class LiveLeakIE(InfoExtractor): 'description': 'Happened on 27.7.2014. \r\nAt 0:53 you can see people still swimming at near beach.', 'uploader': 'bony333', 'title': 'Crazy Hungarian tourist films close call waterspout in Croatia', - 'thumbnail': 're:^https?://.*\.jpg$' + 'thumbnail': r're:^https?://.*\.jpg$' } }, { # Covers https://github.com/rg3/youtube-dl/pull/10664#issuecomment-247439521 diff --git a/youtube_dl/extractor/livestream.py b/youtube_dl/extractor/livestream.py index bc7894b..c863413 100644 --- a/youtube_dl/extractor/livestream.py +++ b/youtube_dl/extractor/livestream.py @@ -37,7 +37,7 @@ class LivestreamIE(InfoExtractor): 'duration': 5968.0, 'like_count': int, 'view_count': int, - 'thumbnail': 're:^http://.*\.jpg$' + 'thumbnail': r're:^http://.*\.jpg$' } }, { 'url': 'http://new.livestream.com/tedx/cityenglish', diff --git a/youtube_dl/extractor/lnkgo.py b/youtube_dl/extractor/lnkgo.py index fd23b0b..068378c 100644 --- a/youtube_dl/extractor/lnkgo.py +++ b/youtube_dl/extractor/lnkgo.py @@ -22,7 +22,7 @@ class LnkGoIE(InfoExtractor): 'description': 'md5:d82a5e36b775b7048617f263a0e3475e', 'age_limit': 7, 'duration': 3019, - 'thumbnail': 're:^https?://.*\.jpg$' + 'thumbnail': r're:^https?://.*\.jpg$' }, 'params': { 'skip_download': True, # HLS download @@ -37,7 +37,7 @@ class LnkGoIE(InfoExtractor): 'description': 'md5:7352d113a242a808676ff17e69db6a69', 'age_limit': 18, 'duration': 346, - 'thumbnail': 're:^https?://.*\.jpg$' + 'thumbnail': r're:^https?://.*\.jpg$' }, 'params': { 'skip_download': True, # HLS download diff --git a/youtube_dl/extractor/lynda.py b/youtube_dl/extractor/lynda.py index f4dcfd9..da94eab 100644 --- a/youtube_dl/extractor/lynda.py +++ b/youtube_dl/extractor/lynda.py @@ -73,7 +73,7 @@ class LyndaBaseIE(InfoExtractor): # Already logged in if any(re.search(p, signin_page) for p in ( - 'isLoggedIn\s*:\s*true', r'logout\.aspx', r'>Log out<')): + r'isLoggedIn\s*:\s*true', r'logout\.aspx', r'>Log out<')): return # Step 2: submit email diff --git a/youtube_dl/extractor/matchtv.py b/youtube_dl/extractor/matchtv.py index 33b0b53..bc9933a 100644 --- a/youtube_dl/extractor/matchtv.py +++ b/youtube_dl/extractor/matchtv.py @@ -14,7 +14,7 @@ class MatchTVIE(InfoExtractor): 'info_dict': { 'id': 'matchtv-live', 'ext': 'flv', - 'title': 're:^Матч ТВ - Прямой эфир \d{4}-\d{2}-\d{2} \d{2}:\d{2}$', + 'title': r're:^Матч ТВ - Прямой эфир \d{4}-\d{2}-\d{2} \d{2}:\d{2}$', 'is_live': True, }, 'params': { diff --git a/youtube_dl/extractor/mdr.py b/youtube_dl/extractor/mdr.py index 2100583..6e4290a 100644 --- a/youtube_dl/extractor/mdr.py +++ b/youtube_dl/extractor/mdr.py @@ -72,7 +72,7 @@ class MDRIE(InfoExtractor): data_url = self._search_regex( r'(?:dataURL|playerXml(?:["\'])?)\s*:\s*(["\'])(?P<url>.+/(?:video|audio)-?[0-9]+-avCustom\.xml)\1', - webpage, 'data url', group='url').replace('\/', '/') + webpage, 'data url', group='url').replace(r'\/', '/') doc = self._download_xml( compat_urlparse.urljoin(url, data_url), video_id) diff --git a/youtube_dl/extractor/meipai.py b/youtube_dl/extractor/meipai.py new file mode 100644 index 0000000..c8eacb4 --- /dev/null +++ b/youtube_dl/extractor/meipai.py @@ -0,0 +1,104 @@ +# coding: utf-8 +from __future__ import unicode_literals + +from .common import InfoExtractor +from ..utils import ( + int_or_none, + parse_duration, + unified_timestamp, +) + + +class MeipaiIE(InfoExtractor): + IE_DESC = '美拍' + _VALID_URL = r'https?://(?:www\.)?meipai.com/media/(?P<id>[0-9]+)' + _TESTS = [{ + # regular uploaded video + 'url': 'http://www.meipai.com/media/531697625', + 'md5': 'e3e9600f9e55a302daecc90825854b4f', + 'info_dict': { + 'id': '531697625', + 'ext': 'mp4', + 'title': '#葉子##阿桑##余姿昀##超級女聲#', + 'description': '#葉子##阿桑##余姿昀##超級女聲#', + 'thumbnail': r're:^https?://.*\.jpg$', + 'duration': 152, + 'timestamp': 1465492420, + 'upload_date': '20160609', + 'view_count': 35511, + 'creator': '她她-TATA', + 'tags': ['葉子', '阿桑', '余姿昀', '超級女聲'], + } + }, { + # record of live streaming + 'url': 'http://www.meipai.com/media/585526361', + 'md5': 'ff7d6afdbc6143342408223d4f5fb99a', + 'info_dict': { + 'id': '585526361', + 'ext': 'mp4', + 'title': '姿昀和善願 練歌練琴啦😁😁😁', + 'description': '姿昀和善願 練歌練琴啦😁😁😁', + 'thumbnail': r're:^https?://.*\.jpg$', + 'duration': 5975, + 'timestamp': 1474311799, + 'upload_date': '20160919', + 'view_count': 1215, + 'creator': '她她-TATA', + } + }] + + def _real_extract(self, url): + video_id = self._match_id(url) + webpage = self._download_webpage(url, video_id) + + title = self._og_search_title( + webpage, default=None) or self._html_search_regex( + r'<title[^>]*>([^<]+)', webpage, 'title') + + formats = [] + + # recorded playback of live streaming + m3u8_url = self._html_search_regex( + r'file:\s*encodeURIComponent\((["\'])(?P(?:(?!\1).)+)\1\)', + webpage, 'm3u8 url', group='url', default=None) + if m3u8_url: + formats.extend(self._extract_m3u8_formats( + m3u8_url, video_id, 'mp4', entry_protocol='m3u8_native', + m3u8_id='hls', fatal=False)) + + if not formats: + # regular uploaded video + video_url = self._search_regex( + r'data-video=(["\'])(?P(?:(?!\1).)+)\1', webpage, 'video url', + group='url', default=None) + if video_url: + formats.append({ + 'url': video_url, + 'format_id': 'http', + }) + + timestamp = unified_timestamp(self._og_search_property( + 'video:release_date', webpage, 'release date', fatal=False)) + + tags = self._og_search_property( + 'video:tag', webpage, 'tags', default='').split(',') + + view_count = int_or_none(self._html_search_meta( + 'interactionCount', webpage, 'view count')) + duration = parse_duration(self._html_search_meta( + 'duration', webpage, 'duration')) + creator = self._og_search_property( + 'video:director', webpage, 'creator', fatal=False) + + return { + 'id': video_id, + 'title': title, + 'description': self._og_search_description(webpage), + 'thumbnail': self._og_search_thumbnail(webpage), + 'duration': duration, + 'timestamp': timestamp, + 'view_count': view_count, + 'creator': creator, + 'tags': tags, + 'formats': formats, + } diff --git a/youtube_dl/extractor/melonvod.py b/youtube_dl/extractor/melonvod.py new file mode 100644 index 0000000..bd8cf13 --- /dev/null +++ b/youtube_dl/extractor/melonvod.py @@ -0,0 +1,72 @@ +# coding: utf-8 +from __future__ import unicode_literals + +from .common import InfoExtractor +from ..utils import ( + int_or_none, + urljoin, +) + + +class MelonVODIE(InfoExtractor): + _VALID_URL = r'https?://vod\.melon\.com/video/detail2\.html?\?.*?mvId=(?P[0-9]+)' + _TEST = { + 'url': 'http://vod.melon.com/video/detail2.htm?mvId=50158734', + 'info_dict': { + 'id': '50158734', + 'ext': 'mp4', + 'title': "Jessica 'Wonderland' MV Making Film", + 'thumbnail': r're:^https?://.*\.jpg$', + 'artist': 'Jessica (제시카)', + 'upload_date': '20161212', + 'duration': 203, + }, + 'params': { + 'skip_download': 'm3u8 download', + } + } + + def _real_extract(self, url): + video_id = self._match_id(url) + + play_info = self._download_json( + 'http://vod.melon.com/video/playerInfo.json', video_id, + note='Downloading player info JSON', query={'mvId': video_id}) + + title = play_info['mvInfo']['MVTITLE'] + + info = self._download_json( + 'http://vod.melon.com/delivery/streamingInfo.json', video_id, + note='Downloading streaming info JSON', + query={ + 'contsId': video_id, + 'contsType': 'VIDEO', + }) + + stream_info = info['streamingInfo'] + + formats = self._extract_m3u8_formats( + stream_info['encUrl'], video_id, 'mp4', m3u8_id='hls') + self._sort_formats(formats) + + artist_list = play_info.get('artistList') + artist = None + if isinstance(artist_list, list): + artist = ', '.join( + [a['ARTISTNAMEWEBLIST'] + for a in artist_list if a.get('ARTISTNAMEWEBLIST')]) + + thumbnail = urljoin(info.get('staticDomain'), stream_info.get('imgPath')) + + duration = int_or_none(stream_info.get('playTime')) + upload_date = stream_info.get('mvSvcOpenDt', '')[:8] or None + + return { + 'id': video_id, + 'title': title, + 'artist': artist, + 'thumbnail': thumbnail, + 'upload_date': upload_date, + 'duration': duration, + 'formats': formats + } diff --git a/youtube_dl/extractor/metacafe.py b/youtube_dl/extractor/metacafe.py index e6e7659..9880924 100644 --- a/youtube_dl/extractor/metacafe.py +++ b/youtube_dl/extractor/metacafe.py @@ -133,7 +133,7 @@ class MetacafeIE(InfoExtractor): video_id, display_id = re.match(self._VALID_URL, url).groups() # the video may come from an external site - m_external = re.match('^(\w{2})-(.*)$', video_id) + m_external = re.match(r'^(\w{2})-(.*)$', video_id) if m_external is not None: prefix, ext_id = m_external.groups() # Check if video comes from YouTube diff --git a/youtube_dl/extractor/mgoon.py b/youtube_dl/extractor/mgoon.py index 94bc87b..7bb4739 100644 --- a/youtube_dl/extractor/mgoon.py +++ b/youtube_dl/extractor/mgoon.py @@ -27,7 +27,7 @@ class MgoonIE(InfoExtractor): 'upload_date': '20131220', 'ext': 'mp4', 'title': 'md5:543aa4c27a4931d371c3f433e8cebebc', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', } }, { diff --git a/youtube_dl/extractor/mgtv.py b/youtube_dl/extractor/mgtv.py index e0bb5d2..659ede8 100644 --- a/youtube_dl/extractor/mgtv.py +++ b/youtube_dl/extractor/mgtv.py @@ -18,7 +18,7 @@ class MGTVIE(InfoExtractor): 'title': '我是歌手第四季双年巅峰会:韩红李玟“双王”领军对抗', 'description': '我是歌手第四季双年巅峰会', 'duration': 7461, - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', }, }, { # no tbr extracted from stream_url diff --git a/youtube_dl/extractor/minhateca.py b/youtube_dl/extractor/minhateca.py index e6730b7..dccc542 100644 --- a/youtube_dl/extractor/minhateca.py +++ b/youtube_dl/extractor/minhateca.py @@ -19,7 +19,7 @@ class MinhatecaIE(InfoExtractor): 'id': '125848331', 'ext': 'mp4', 'title': 'youtube-dl test video', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'filesize_approx': 1530000, 'duration': 9, 'view_count': int, diff --git a/youtube_dl/extractor/ministrygrid.py b/youtube_dl/extractor/ministrygrid.py index 10190d5..8ad9239 100644 --- a/youtube_dl/extractor/ministrygrid.py +++ b/youtube_dl/extractor/ministrygrid.py @@ -17,7 +17,7 @@ class MinistryGridIE(InfoExtractor): 'id': '3453494717001', 'ext': 'mp4', 'title': 'The Gospel by Numbers', - 'thumbnail': 're:^https?://.*\.jpg', + 'thumbnail': r're:^https?://.*\.jpg', 'upload_date': '20140410', 'description': 'Coming soon from T4G 2014!', 'uploader_id': '2034960640001', diff --git a/youtube_dl/extractor/mitele.py b/youtube_dl/extractor/mitele.py index f577836..79e0b8a 100644 --- a/youtube_dl/extractor/mitele.py +++ b/youtube_dl/extractor/mitele.py @@ -90,7 +90,7 @@ class MiTeleIE(InfoExtractor): 'season_id': 'diario_de_t14_11981', 'episode': 'Programa 144', 'episode_number': 3, - 'thumbnail': 're:(?i)^https?://.*\.jpg$', + 'thumbnail': r're:(?i)^https?://.*\.jpg$', 'duration': 2913, }, 'add_ie': ['Ooyala'], @@ -108,7 +108,7 @@ class MiTeleIE(InfoExtractor): 'season_id': 'cuarto_milenio_t06_12715', 'episode': 'Programa 226', 'episode_number': 24, - 'thumbnail': 're:(?i)^https?://.*\.jpg$', + 'thumbnail': r're:(?i)^https?://.*\.jpg$', 'duration': 7313, }, 'params': { @@ -190,7 +190,7 @@ class MiTeleIE(InfoExtractor): return { '_type': 'url_transparent', # for some reason only HLS is supported - 'url': smuggle_url('ooyala:' + embedCode, {'supportedformats': 'm3u8'}), + 'url': smuggle_url('ooyala:' + embedCode, {'supportedformats': 'm3u8,dash'}), 'id': video_id, 'title': title, 'description': description, diff --git a/youtube_dl/extractor/mixcloud.py b/youtube_dl/extractor/mixcloud.py index 560fe18..a24b316 100644 --- a/youtube_dl/extractor/mixcloud.py +++ b/youtube_dl/extractor/mixcloud.py @@ -16,13 +16,12 @@ from ..utils import ( clean_html, ExtractorError, OnDemandPagedList, - parse_count, str_to_int, ) class MixcloudIE(InfoExtractor): - _VALID_URL = r'^(?:https?://)?(?:www\.)?mixcloud\.com/([^/]+)/(?!stream|uploads|favorites|listens|playlists)([^/]+)' + _VALID_URL = r'https?://(?:(?:www|beta|m)\.)?mixcloud\.com/([^/]+)/(?!stream|uploads|favorites|listens|playlists)([^/]+)' IE_NAME = 'mixcloud' _TESTS = [{ @@ -34,9 +33,8 @@ class MixcloudIE(InfoExtractor): 'description': 'After quite a long silence from myself, finally another Drum\'n\'Bass mix with my favourite current dance floor bangers.', 'uploader': 'Daniel Holbach', 'uploader_id': 'dholbach', - 'thumbnail': 're:https?://.*\.jpg', + 'thumbnail': r're:https?://.*\.jpg', 'view_count': int, - 'like_count': int, }, }, { 'url': 'http://www.mixcloud.com/gillespeterson/caribou-7-inch-vinyl-mix-chat/', @@ -49,8 +47,10 @@ class MixcloudIE(InfoExtractor): 'uploader_id': 'gillespeterson', 'thumbnail': 're:https?://.*', 'view_count': int, - 'like_count': int, }, + }, { + 'url': 'https://beta.mixcloud.com/RedLightRadio/nosedrip-15-red-light-radio-01-18-2016/', + 'only_matching': True, }] # See https://www.mixcloud.com/media/js2/www_js_2.9e23256562c080482435196ca3975ab5.js @@ -86,26 +86,18 @@ class MixcloudIE(InfoExtractor): song_url = play_info['stream_url'] - PREFIX = ( - r'm-play-on-spacebar[^>]+' - r'(?:\s+[a-zA-Z0-9-]+(?:="[^"]+")?)*?\s+') - title = self._html_search_regex( - PREFIX + r'm-title="([^"]+)"', webpage, 'title') + title = self._html_search_regex(r'm-title="([^"]+)"', webpage, 'title') thumbnail = self._proto_relative_url(self._html_search_regex( - PREFIX + r'm-thumbnail-url="([^"]+)"', webpage, 'thumbnail', - fatal=False)) + r'm-thumbnail-url="([^"]+)"', webpage, 'thumbnail', fatal=False)) uploader = self._html_search_regex( - PREFIX + r'm-owner-name="([^"]+)"', - webpage, 'uploader', fatal=False) + r'm-owner-name="([^"]+)"', webpage, 'uploader', fatal=False) uploader_id = self._search_regex( r'\s+"profile": "([^"]+)",', webpage, 'uploader id', fatal=False) description = self._og_search_description(webpage) - like_count = parse_count(self._search_regex( - r'\bbutton-favorite[^>]+>.*?]+class=["\']toggle-number[^>]+>\s*([^<]+)', - webpage, 'like count', default=None)) view_count = str_to_int(self._search_regex( [r'([0-9,.]+)'], + r'/listeners/?">([0-9,.]+)', + r'm-tooltip=["\']([\d,.]+) plays'], webpage, 'play count', default=None)) return { @@ -117,7 +109,6 @@ class MixcloudIE(InfoExtractor): 'uploader': uploader, 'uploader_id': uploader_id, 'view_count': view_count, - 'like_count': like_count, } diff --git a/youtube_dl/extractor/mlb.py b/youtube_dl/extractor/mlb.py index e242b89..59cd4b8 100644 --- a/youtube_dl/extractor/mlb.py +++ b/youtube_dl/extractor/mlb.py @@ -37,7 +37,7 @@ class MLBIE(InfoExtractor): 'duration': 66, 'timestamp': 1405980600, 'upload_date': '20140721', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', }, }, { @@ -51,7 +51,7 @@ class MLBIE(InfoExtractor): 'duration': 46, 'timestamp': 1405105800, 'upload_date': '20140711', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', }, }, { @@ -65,7 +65,7 @@ class MLBIE(InfoExtractor): 'duration': 488, 'timestamp': 1405399936, 'upload_date': '20140715', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', }, }, { @@ -79,7 +79,7 @@ class MLBIE(InfoExtractor): 'duration': 52, 'timestamp': 1405390722, 'upload_date': '20140715', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', }, }, { diff --git a/youtube_dl/extractor/mnet.py b/youtube_dl/extractor/mnet.py index e3f42e7..6a85dcb 100644 --- a/youtube_dl/extractor/mnet.py +++ b/youtube_dl/extractor/mnet.py @@ -22,7 +22,7 @@ class MnetIE(InfoExtractor): 'timestamp': 1451564040, 'age_limit': 0, 'thumbnails': 'mincount:5', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'ext': 'flv', }, 'params': { diff --git a/youtube_dl/extractor/moevideo.py b/youtube_dl/extractor/moevideo.py index 91ee9c4..44bcc49 100644 --- a/youtube_dl/extractor/moevideo.py +++ b/youtube_dl/extractor/moevideo.py @@ -30,7 +30,7 @@ class MoeVideoIE(InfoExtractor): 'ext': 'flv', 'title': 'Sink cut out machine', 'description': 'md5:f29ff97b663aefa760bf7ca63c8ca8a8', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'width': 540, 'height': 360, 'duration': 179, @@ -46,7 +46,7 @@ class MoeVideoIE(InfoExtractor): 'ext': 'flv', 'title': 'Operacion Condor.', 'description': 'md5:7e68cb2fcda66833d5081c542491a9a3', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'width': 480, 'height': 296, 'duration': 6027, diff --git a/youtube_dl/extractor/mofosex.py b/youtube_dl/extractor/mofosex.py index e3bbe5a..54716f5 100644 --- a/youtube_dl/extractor/mofosex.py +++ b/youtube_dl/extractor/mofosex.py @@ -18,7 +18,7 @@ class MofosexIE(KeezMoviesIE): 'display_id': 'amateur-teen-playing-and-masturbating-318131', 'ext': 'mp4', 'title': 'amateur teen playing and masturbating', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'upload_date': '20121114', 'view_count': int, 'like_count': int, diff --git a/youtube_dl/extractor/mojvideo.py b/youtube_dl/extractor/mojvideo.py index 0ba435d..165e658 100644 --- a/youtube_dl/extractor/mojvideo.py +++ b/youtube_dl/extractor/mojvideo.py @@ -20,7 +20,7 @@ class MojvideoIE(InfoExtractor): 'display_id': 'v-avtu-pred-mano-rdecelaska-alfi-nipic', 'ext': 'mp4', 'title': 'V avtu pred mano rdečelaska - Alfi Nipič', - 'thumbnail': 're:^http://.*\.jpg$', + 'thumbnail': r're:^http://.*\.jpg$', 'duration': 242, } } diff --git a/youtube_dl/extractor/motherless.py b/youtube_dl/extractor/motherless.py index 5e1a8a7..6fe3b60 100644 --- a/youtube_dl/extractor/motherless.py +++ b/youtube_dl/extractor/motherless.py @@ -23,7 +23,7 @@ class MotherlessIE(InfoExtractor): 'categories': ['Gaming', 'anal', 'reluctant', 'rough', 'Wife'], 'upload_date': '20100913', 'uploader_id': 'famouslyfuckedup', - 'thumbnail': 're:http://.*\.jpg', + 'thumbnail': r're:http://.*\.jpg', 'age_limit': 18, } }, { @@ -37,7 +37,7 @@ class MotherlessIE(InfoExtractor): 'game', 'hairy'], 'upload_date': '20140622', 'uploader_id': 'Sulivana7x', - 'thumbnail': 're:http://.*\.jpg', + 'thumbnail': r're:http://.*\.jpg', 'age_limit': 18, }, 'skip': '404', @@ -51,7 +51,7 @@ class MotherlessIE(InfoExtractor): 'categories': ['superheroine heroine superher'], 'upload_date': '20140827', 'uploader_id': 'shade0230', - 'thumbnail': 're:http://.*\.jpg', + 'thumbnail': r're:http://.*\.jpg', 'age_limit': 18, } }, { diff --git a/youtube_dl/extractor/movieclips.py b/youtube_dl/extractor/movieclips.py index 30c206f..5453da1 100644 --- a/youtube_dl/extractor/movieclips.py +++ b/youtube_dl/extractor/movieclips.py @@ -20,7 +20,7 @@ class MovieClipsIE(InfoExtractor): 'ext': 'mp4', 'title': 'Warcraft Trailer 1', 'description': 'Watch Trailer 1 from Warcraft (2016). Legendary’s WARCRAFT is a 3D epic adventure of world-colliding conflict based.', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'timestamp': 1446843055, 'upload_date': '20151106', 'uploader': 'Movieclips', diff --git a/youtube_dl/extractor/moviezine.py b/youtube_dl/extractor/moviezine.py index 478e399..85cc6e2 100644 --- a/youtube_dl/extractor/moviezine.py +++ b/youtube_dl/extractor/moviezine.py @@ -16,7 +16,7 @@ class MoviezineIE(InfoExtractor): 'ext': 'mp4', 'title': 'Oculus - Trailer 1', 'description': 'md5:40cc6790fc81d931850ca9249b40e8a4', - 'thumbnail': 're:http://.*\.jpg', + 'thumbnail': r're:http://.*\.jpg', }, } diff --git a/youtube_dl/extractor/movingimage.py b/youtube_dl/extractor/movingimage.py index bb789c3..4f62d62 100644 --- a/youtube_dl/extractor/movingimage.py +++ b/youtube_dl/extractor/movingimage.py @@ -18,7 +18,7 @@ class MovingImageIE(InfoExtractor): 'title': 'SHETLAND WOOL', 'description': 'md5:c5afca6871ad59b4271e7704fe50ab04', 'duration': 900, - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', }, } diff --git a/youtube_dl/extractor/msn.py b/youtube_dl/extractor/msn.py index d75ce8b..1473bcf 100644 --- a/youtube_dl/extractor/msn.py +++ b/youtube_dl/extractor/msn.py @@ -78,11 +78,6 @@ class MSNIE(InfoExtractor): m3u8_formats = self._extract_m3u8_formats( format_url, display_id, 'mp4', m3u8_id='hls', fatal=False) - # Despite metadata in m3u8 all video+audio formats are - # actually video-only (no audio) - for f in m3u8_formats: - if f.get('acodec') != 'none' and f.get('vcodec') != 'none': - f['acodec'] = 'none' formats.extend(m3u8_formats) else: formats.append({ diff --git a/youtube_dl/extractor/mtv.py b/youtube_dl/extractor/mtv.py index 0335191..8acea14 100644 --- a/youtube_dl/extractor/mtv.py +++ b/youtube_dl/extractor/mtv.py @@ -13,11 +13,11 @@ from ..utils import ( fix_xml_ampersands, float_or_none, HEADRequest, - NO_DEFAULT, RegexNotFoundError, sanitized_Request, strip_or_none, timeconvert, + try_get, unescapeHTML, update_url_query, url_basename, @@ -42,15 +42,6 @@ class MTVServicesInfoExtractor(InfoExtractor): # Remove the templates, like &device={device} return re.sub(r'&[^=]*?={.*?}(?=(&|$))', '', url) - # This was originally implemented for ComedyCentral, but it also works here - @classmethod - def _transform_rtmp_url(cls, rtmp_video_url): - m = re.match(r'^rtmpe?://.*?/(?Pgsp\..+?/.*)$', rtmp_video_url) - if not m: - return {'rtmp': rtmp_video_url} - base = 'http://viacommtvstrmfs.fplive.net/' - return {'http': base + m.group('finalid')} - def _get_feed_url(self, uri): return self._FEED_URL @@ -77,7 +68,7 @@ class MTVServicesInfoExtractor(InfoExtractor): url = re.sub(r'.+pxE=mp4', 'http://mtvnmobile.vo.llnwd.net/kip0/_pxn=0+_pxK=18639+_pxE=mp4', url, 1) return [{'url': url, 'ext': 'mp4'}] - def _extract_video_formats(self, mdoc, mtvn_id): + def _extract_video_formats(self, mdoc, mtvn_id, video_id): if re.match(r'.*/(error_country_block\.swf|geoblock\.mp4|copyright_error\.flv(?:\?geo\b.+?)?)$', mdoc.find('.//src').text) is not None: if mtvn_id is not None and self._MOBILE_TEMPLATE is not None: self.to_screen('The normal version is not available from your ' @@ -88,21 +79,33 @@ class MTVServicesInfoExtractor(InfoExtractor): formats = [] for rendition in mdoc.findall('.//rendition'): - try: - _, _, ext = rendition.attrib['type'].partition('/') - rtmp_video_url = rendition.find('./src').text - if rtmp_video_url.endswith('siteunavail.png'): - continue - new_urls = self._transform_rtmp_url(rtmp_video_url) - formats.extend([{ - 'ext': 'flv' if new_url.startswith('rtmp') else ext, - 'url': new_url, - 'format_id': '-'.join(filter(None, [kind, rendition.get('bitrate')])), - 'width': int(rendition.get('width')), - 'height': int(rendition.get('height')), - } for kind, new_url in new_urls.items()]) - except (KeyError, TypeError): - raise ExtractorError('Invalid rendition field.') + if rendition.get('method') == 'hls': + hls_url = rendition.find('./src').text + formats.extend(self._extract_m3u8_formats( + hls_url, video_id, ext='mp4', entry_protocol='m3u8_native', + m3u8_id='hls')) + else: + # fms + try: + _, _, ext = rendition.attrib['type'].partition('/') + rtmp_video_url = rendition.find('./src').text + if 'error_not_available.swf' in rtmp_video_url: + raise ExtractorError( + '%s said: video is not available' % self.IE_NAME, + expected=True) + if rtmp_video_url.endswith('siteunavail.png'): + continue + formats.extend([{ + 'ext': 'flv' if rtmp_video_url.startswith('rtmp') else ext, + 'url': rtmp_video_url, + 'format_id': '-'.join(filter(None, [ + 'rtmp' if rtmp_video_url.startswith('rtmp') else None, + rendition.get('bitrate')])), + 'width': int(rendition.get('width')), + 'height': int(rendition.get('height')), + }]) + except (KeyError, TypeError): + raise ExtractorError('Invalid rendition field.') self._sort_formats(formats) return formats @@ -118,15 +121,17 @@ class MTVServicesInfoExtractor(InfoExtractor): } for typographic in transcript.findall('./typographic')] return subtitles - def _get_video_info(self, itemdoc): + def _get_video_info(self, itemdoc, use_hls=True): uri = itemdoc.find('guid').text video_id = self._id_from_uri(uri) self.report_extraction(video_id) content_el = itemdoc.find('%s/%s' % (_media_xml_tag('group'), _media_xml_tag('content'))) mediagen_url = self._remove_template_parameter(content_el.attrib['url']) + mediagen_url = mediagen_url.replace('device={device}', '') if 'acceptMethods' not in mediagen_url: mediagen_url += '&' if '?' in mediagen_url else '?' - mediagen_url += 'acceptMethods=fms' + mediagen_url += 'acceptMethods=' + mediagen_url += 'hls' if use_hls else 'fms' mediagen_doc = self._download_xml(mediagen_url, video_id, 'Downloading video urls') @@ -167,9 +172,11 @@ class MTVServicesInfoExtractor(InfoExtractor): if mtvn_id_node is not None: mtvn_id = mtvn_id_node.text + formats = self._extract_video_formats(mediagen_doc, mtvn_id, video_id) + return { 'title': title, - 'formats': self._extract_video_formats(mediagen_doc, mtvn_id), + 'formats': formats, 'subtitles': self._extract_subtitles(mediagen_doc, mtvn_id), 'id': video_id, 'thumbnail': self._get_thumbnail_url(uri, itemdoc), @@ -184,13 +191,13 @@ class MTVServicesInfoExtractor(InfoExtractor): data['lang'] = self._LANG return data - def _get_videos_info(self, uri): + def _get_videos_info(self, uri, use_hls=True): video_id = self._id_from_uri(uri) feed_url = self._get_feed_url(uri) info_url = update_url_query(feed_url, self._get_feed_query(uri)) - return self._get_videos_info_from_url(info_url, video_id) + return self._get_videos_info_from_url(info_url, video_id, use_hls) - def _get_videos_info_from_url(self, url, video_id): + def _get_videos_info_from_url(self, url, video_id, use_hls=True): idoc = self._download_xml( url, video_id, 'Downloading info', transform_source=fix_xml_ampersands) @@ -199,10 +206,31 @@ class MTVServicesInfoExtractor(InfoExtractor): description = xpath_text(idoc, './channel/description') return self.playlist_result( - [self._get_video_info(item) for item in idoc.findall('.//item')], + [self._get_video_info(item, use_hls) for item in idoc.findall('.//item')], playlist_title=title, playlist_description=description) - def _extract_mgid(self, webpage, default=NO_DEFAULT): + def _extract_triforce_mgid(self, webpage, data_zone=None, video_id=None): + triforce_feed = self._parse_json(self._search_regex( + r'triforceManifestFeed\s*=\s*({.+?})\s*;\s*\n', webpage, + 'triforce feed', default='{}'), video_id, fatal=False) + + data_zone = self._search_regex( + r'data-zone=(["\'])(?P.+?_lc_promo.*?)\1', webpage, + 'data zone', default=data_zone, group='zone') + + feed_url = try_get( + triforce_feed, lambda x: x['manifest']['zones'][data_zone]['feed'], + compat_str) + if not feed_url: + return + + feed = self._download_json(feed_url, video_id, fatal=False) + if not feed: + return + + return try_get(feed, lambda x: x['result']['data']['id'], compat_str) + + def _extract_mgid(self, webpage): try: # the url can be http://media.mtvnservices.com/fb/{mgid}.swf # or http://media.mtvnservices.com/{mgid} @@ -222,7 +250,11 @@ class MTVServicesInfoExtractor(InfoExtractor): sm4_embed = self._html_search_meta( 'sm4:video:embed', webpage, 'sm4 embed', default='') mgid = self._search_regex( - r'embed/(mgid:.+?)["\'&?/]', sm4_embed, 'mgid', default=default) + r'embed/(mgid:.+?)["\'&?/]', sm4_embed, 'mgid', default=None) + + if not mgid: + mgid = self._extract_triforce_mgid(webpage) + return mgid def _real_extract(self, url): @@ -272,7 +304,7 @@ class MTVServicesEmbeddedIE(MTVServicesInfoExtractor): class MTVIE(MTVServicesInfoExtractor): IE_NAME = 'mtv' - _VALID_URL = r'https?://(?:www\.)?mtv\.com/(?:video-clips|full-episodes)/(?P[^/?#.]+)' + _VALID_URL = r'https?://(?:www\.)?mtv\.com/(?:video-clips|(?:full-)?episodes)/(?P[^/?#.]+)' _FEED_URL = 'http://www.mtv.com/feeds/mrss/' _TESTS = [{ @@ -289,9 +321,41 @@ class MTVIE(MTVServicesInfoExtractor): }, { 'url': 'http://www.mtv.com/full-episodes/94tujl/unlocking-the-truth-gates-of-hell-season-1-ep-101', 'only_matching': True, + }, { + 'url': 'http://www.mtv.com/episodes/g8xu7q/teen-mom-2-breaking-the-wall-season-7-ep-713', + 'only_matching': True, }] +class MTV81IE(InfoExtractor): + IE_NAME = 'mtv81' + _VALID_URL = r'https?://(?:www\.)?mtv81\.com/videos/(?P[^/?#.]+)' + + _TEST = { + 'url': 'http://www.mtv81.com/videos/artist-to-watch/the-godfather-of-japanese-hip-hop-segment-1/', + 'md5': '1edbcdf1e7628e414a8c5dcebca3d32b', + 'info_dict': { + 'id': '5e14040d-18a4-47c4-a582-43ff602de88e', + 'ext': 'mp4', + 'title': 'Unlocking The Truth|July 18, 2016|1|101|Trailer', + 'description': '"Unlocking the Truth" premieres August 17th at 11/10c.', + 'timestamp': 1468846800, + 'upload_date': '20160718', + }, + } + + def _extract_mgid(self, webpage): + return self._search_regex( + r'getTheVideo\((["\'])(?Pmgid:.+?)\1', webpage, + 'mgid', group='id') + + def _real_extract(self, url): + video_id = self._match_id(url) + webpage = self._download_webpage(url, video_id) + mgid = self._extract_mgid(webpage) + return self.url_result('http://media.mtvnservices.com/embed/%s' % mgid) + + class MTVVideoIE(MTVServicesInfoExtractor): IE_NAME = 'mtv:video' _VALID_URL = r'''(?x)^https?:// diff --git a/youtube_dl/extractor/muenchentv.py b/youtube_dl/extractor/muenchentv.py index d9f1761..2cc2bf2 100644 --- a/youtube_dl/extractor/muenchentv.py +++ b/youtube_dl/extractor/muenchentv.py @@ -22,7 +22,7 @@ class MuenchenTVIE(InfoExtractor): 'ext': 'mp4', 'title': 're:^münchen.tv-Livestream [0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}$', 'is_live': True, - 'thumbnail': 're:^https?://.*\.jpg$' + 'thumbnail': r're:^https?://.*\.jpg$' }, 'params': { 'skip_download': True, diff --git a/youtube_dl/extractor/mwave.py b/youtube_dl/extractor/mwave.py index fea1caf..a672765 100644 --- a/youtube_dl/extractor/mwave.py +++ b/youtube_dl/extractor/mwave.py @@ -18,7 +18,7 @@ class MwaveIE(InfoExtractor): 'id': '168859', 'ext': 'flv', 'title': '[M COUNTDOWN] SISTAR - SHAKE IT', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'uploader': 'M COUNTDOWN', 'duration': 206, 'view_count': int, @@ -70,7 +70,7 @@ class MwaveMeetGreetIE(InfoExtractor): 'id': '173294', 'ext': 'flv', 'title': '[MEET&GREET] Park BoRam', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'uploader': 'Mwave', 'duration': 3634, 'view_count': int, diff --git a/youtube_dl/extractor/myspace.py b/youtube_dl/extractor/myspace.py index ab32e63..f281238 100644 --- a/youtube_dl/extractor/myspace.py +++ b/youtube_dl/extractor/myspace.py @@ -17,9 +17,10 @@ class MySpaceIE(InfoExtractor): _TESTS = [ { 'url': 'https://myspace.com/fiveminutestothestage/video/little-big-town/109594919', + 'md5': '9c1483c106f4a695c47d2911feed50a7', 'info_dict': { 'id': '109594919', - 'ext': 'flv', + 'ext': 'mp4', 'title': 'Little Big Town', 'description': 'This country quartet was all smiles while playing a sold out show at the Pacific Amphitheatre in Orange County, California.', 'uploader': 'Five Minutes to the Stage', @@ -27,37 +28,30 @@ class MySpaceIE(InfoExtractor): 'timestamp': 1414108751, 'upload_date': '20141023', }, - 'params': { - # rtmp download - 'skip_download': True, - }, }, # songs { 'url': 'https://myspace.com/killsorrow/music/song/of-weakened-soul...-93388656-103880681', + 'md5': '1d7ee4604a3da226dd69a123f748b262', 'info_dict': { 'id': '93388656', - 'ext': 'flv', + 'ext': 'm4a', 'title': 'Of weakened soul...', 'uploader': 'Killsorrow', 'uploader_id': 'killsorrow', }, - 'params': { - # rtmp download - 'skip_download': True, - }, }, { - 'add_ie': ['Vevo'], + 'add_ie': ['Youtube'], 'url': 'https://myspace.com/threedaysgrace/music/song/animal-i-have-become-28400208-28218041', 'info_dict': { - 'id': 'USZM20600099', - 'ext': 'mp4', - 'title': 'Animal I Have Become', - 'uploader': 'Three Days Grace', - 'timestamp': int, - 'upload_date': '20060502', + 'id': 'xqds0B_meys', + 'ext': 'webm', + 'title': 'Three Days Grace - Animal I Have Become', + 'description': 'md5:8bd86b3693e72a077cf863a8530c54bb', + 'uploader': 'ThreeDaysGraceVEVO', + 'uploader_id': 'ThreeDaysGraceVEVO', + 'upload_date': '20091002', }, - 'skip': 'VEVO is only available in some countries', }, { 'add_ie': ['Youtube'], 'url': 'https://myspace.com/starset2/music/song/first-light-95799905-106964426', @@ -76,24 +70,46 @@ class MySpaceIE(InfoExtractor): def _real_extract(self, url): mobj = re.match(self._VALID_URL, url) video_id = mobj.group('id') + is_song = mobj.group('mediatype').startswith('music/song') webpage = self._download_webpage(url, video_id) player_url = self._search_regex( - r'playerSwf":"([^"?]*)', webpage, 'player URL') + r'videoSwf":"([^"?]*)', webpage, 'player URL', fatal=False) - def rtmp_format_from_stream_url(stream_url, width=None, height=None): - rtmp_url, play_path = stream_url.split(';', 1) - return { - 'format_id': 'rtmp', - 'url': rtmp_url, - 'play_path': play_path, - 'player_url': player_url, - 'protocol': 'rtmp', - 'ext': 'flv', - 'width': width, - 'height': height, - } + def formats_from_stream_urls(stream_url, hls_stream_url, http_stream_url, width=None, height=None): + formats = [] + vcodec = 'none' if is_song else None + if hls_stream_url: + formats.append({ + 'format_id': 'hls', + 'url': hls_stream_url, + 'protocol': 'm3u8_native', + 'ext': 'm4a' if is_song else 'mp4', + 'vcodec': vcodec, + }) + if stream_url and player_url: + rtmp_url, play_path = stream_url.split(';', 1) + formats.append({ + 'format_id': 'rtmp', + 'url': rtmp_url, + 'play_path': play_path, + 'player_url': player_url, + 'protocol': 'rtmp', + 'ext': 'flv', + 'width': width, + 'height': height, + 'vcodec': vcodec, + }) + if http_stream_url: + formats.append({ + 'format_id': 'http', + 'url': http_stream_url, + 'width': width, + 'height': height, + 'vcodec': vcodec, + }) + return formats - if mobj.group('mediatype').startswith('music/song'): + if is_song: # songs don't store any useful info in the 'context' variable song_data = self._search_regex( r'''.*?)\1''' % name, song_data, name, default='', group='data') - stream_url = search_data('stream-url') - if not stream_url: + formats = formats_from_stream_urls( + search_data('stream-url'), search_data('hls-stream-url'), + search_data('http-stream-url')) + if not formats: vevo_id = search_data('vevo-id') youtube_id = search_data('youtube-id') if vevo_id: @@ -121,6 +139,7 @@ class MySpaceIE(InfoExtractor): else: raise ExtractorError( 'Found song but don\'t know how to download it') + self._sort_formats(formats) return { 'id': video_id, 'title': self._og_search_title(webpage), @@ -128,27 +147,16 @@ class MySpaceIE(InfoExtractor): 'uploader_id': search_data('artist-username'), 'thumbnail': self._og_search_thumbnail(webpage), 'duration': int_or_none(search_data('duration')), - 'formats': [rtmp_format_from_stream_url(stream_url)] + 'formats': formats, } else: video = self._parse_json(self._search_regex( r'context = ({.*?});', webpage, 'context'), video_id)['video'] - formats = [] - hls_stream_url = video.get('hlsStreamUrl') - if hls_stream_url: - formats.append({ - 'format_id': 'hls', - 'url': hls_stream_url, - 'protocol': 'm3u8_native', - 'ext': 'mp4', - }) - stream_url = video.get('streamUrl') - if stream_url: - formats.append(rtmp_format_from_stream_url( - stream_url, - int_or_none(video.get('width')), - int_or_none(video.get('height')))) + formats = formats_from_stream_urls( + video.get('streamUrl'), video.get('hlsStreamUrl'), + video.get('mp4StreamUrl'), int_or_none(video.get('width')), + int_or_none(video.get('height'))) self._sort_formats(formats) return { 'id': video_id, diff --git a/youtube_dl/extractor/myvi.py b/youtube_dl/extractor/myvi.py index 4c65be1..621ae74 100644 --- a/youtube_dl/extractor/myvi.py +++ b/youtube_dl/extractor/myvi.py @@ -27,7 +27,7 @@ class MyviIE(SprutoBaseIE): 'id': 'f16b2bbd-cde8-481c-a981-7cd48605df43', 'ext': 'mp4', 'title': 'хозяин жизни', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'duration': 25, }, }, { diff --git a/youtube_dl/extractor/myvideo.py b/youtube_dl/extractor/myvideo.py index 6d447a4..6bb64eb 100644 --- a/youtube_dl/extractor/myvideo.py +++ b/youtube_dl/extractor/myvideo.py @@ -160,7 +160,7 @@ class MyVideoIE(InfoExtractor): else: video_playpath = '' - video_swfobj = self._search_regex('swfobject.embedSWF\(\'(.+?)\'', webpage, 'swfobj') + video_swfobj = self._search_regex(r'swfobject.embedSWF\(\'(.+?)\'', webpage, 'swfobj') video_swfobj = compat_urllib_parse_unquote(video_swfobj) video_title = self._html_search_regex("(.*?)", diff --git a/youtube_dl/extractor/naver.py b/youtube_dl/extractor/naver.py index 055070f..e813133 100644 --- a/youtube_dl/extractor/naver.py +++ b/youtube_dl/extractor/naver.py @@ -12,10 +12,10 @@ from ..utils import ( class NaverIE(InfoExtractor): - _VALID_URL = r'https?://(?:m\.)?tvcast\.naver\.com/v/(?P\d+)' + _VALID_URL = r'https?://(?:m\.)?tv(?:cast)?\.naver\.com/v/(?P\d+)' _TESTS = [{ - 'url': 'http://tvcast.naver.com/v/81652', + 'url': 'http://tv.naver.com/v/81652', 'info_dict': { 'id': '81652', 'ext': 'mp4', @@ -24,7 +24,7 @@ class NaverIE(InfoExtractor): 'upload_date': '20130903', }, }, { - 'url': 'http://tvcast.naver.com/v/395837', + 'url': 'http://tv.naver.com/v/395837', 'md5': '638ed4c12012c458fefcddfd01f173cd', 'info_dict': { 'id': '395837', @@ -34,6 +34,9 @@ class NaverIE(InfoExtractor): 'upload_date': '20150519', }, 'skip': 'Georestricted', + }, { + 'url': 'http://tvcast.naver.com/v/81652', + 'only_matching': True, }] def _real_extract(self, url): diff --git a/youtube_dl/extractor/nbc.py b/youtube_dl/extractor/nbc.py index 7f1bd92..434a94d 100644 --- a/youtube_dl/extractor/nbc.py +++ b/youtube_dl/extractor/nbc.py @@ -9,6 +9,7 @@ from ..utils import ( lowercase_escape, smuggle_url, unescapeHTML, + update_url_query, ) @@ -208,7 +209,7 @@ class NBCNewsIE(ThePlatformIE): 'url': 'http://www.nbcnews.com/watch/nbcnews-com/how-twitter-reacted-to-the-snowden-interview-269389891880', 'md5': 'af1adfa51312291a017720403826bb64', 'info_dict': { - 'id': '269389891880', + 'id': 'p_tweet_snow_140529', 'ext': 'mp4', 'title': 'How Twitter Reacted To The Snowden Interview', 'description': 'md5:65a0bd5d76fe114f3c2727aa3a81fe64', @@ -232,7 +233,7 @@ class NBCNewsIE(ThePlatformIE): 'url': 'http://www.nbcnews.com/nightly-news/video/nightly-news-with-brian-williams-full-broadcast-february-4-394064451844', 'md5': '73135a2e0ef819107bbb55a5a9b2a802', 'info_dict': { - 'id': '394064451844', + 'id': 'nn_netcast_150204', 'ext': 'mp4', 'title': 'Nightly News with Brian Williams Full Broadcast (February 4)', 'description': 'md5:1c10c1eccbe84a26e5debb4381e2d3c5', @@ -245,7 +246,7 @@ class NBCNewsIE(ThePlatformIE): 'url': 'http://www.nbcnews.com/business/autos/volkswagen-11-million-vehicles-could-have-suspect-software-emissions-scandal-n431456', 'md5': 'a49e173825e5fcd15c13fc297fced39d', 'info_dict': { - 'id': '529953347624', + 'id': 'x_lon_vwhorn_150922', 'ext': 'mp4', 'title': 'Volkswagen U.S. Chief:\xa0 We Have Totally Screwed Up', 'description': 'md5:c8be487b2d80ff0594c005add88d8351', @@ -258,7 +259,7 @@ class NBCNewsIE(ThePlatformIE): 'url': 'http://www.today.com/video/see-the-aurora-borealis-from-space-in-stunning-new-nasa-video-669831235788', 'md5': '118d7ca3f0bea6534f119c68ef539f71', 'info_dict': { - 'id': '669831235788', + 'id': 'tdy_al_space_160420', 'ext': 'mp4', 'title': 'See the aurora borealis from space in stunning new NASA video', 'description': 'md5:74752b7358afb99939c5f8bb2d1d04b1', @@ -271,15 +272,14 @@ class NBCNewsIE(ThePlatformIE): 'url': 'http://www.msnbc.com/all-in-with-chris-hayes/watch/the-chaotic-gop-immigration-vote-314487875924', 'md5': '6d236bf4f3dddc226633ce6e2c3f814d', 'info_dict': { - 'id': '314487875924', + 'id': 'n_hayes_Aimm_140801_272214', 'ext': 'mp4', 'title': 'The chaotic GOP immigration vote', 'description': 'The Republican House votes on a border bill that has no chance of getting through the Senate or signed by the President and is drawing criticism from all sides.', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'timestamp': 1406937606, 'upload_date': '20140802', 'uploader': 'NBCU-NEWS', - 'categories': ['MSNBC/Topics/Franchise/Best of last night', 'MSNBC/Topics/General/Congress'], }, }, { @@ -311,28 +311,41 @@ class NBCNewsIE(ThePlatformIE): else: # "feature" and "nightly-news" pages use theplatform.com video_id = mobj.group('mpx_id') - if not video_id.isdigit(): - webpage = self._download_webpage(url, video_id) - info = None - bootstrap_json = self._search_regex( - [r'(?m)(?:var\s+(?:bootstrapJson|playlistData)|NEWS\.videoObj)\s*=\s*({.+});?\s*$', - r'videoObj\s*:\s*({.+})', r'data-video="([^"]+)"'], - webpage, 'bootstrap json', default=None) + webpage = self._download_webpage(url, video_id) + + filter_param = 'byId' + bootstrap_json = self._search_regex( + [r'(?m)(?:var\s+(?:bootstrapJson|playlistData)|NEWS\.videoObj)\s*=\s*({.+});?\s*$', + r'videoObj\s*:\s*({.+})', r'data-video="([^"]+)"', + r'jQuery\.extend\(Drupal\.settings\s*,\s*({.+?})\);'], + webpage, 'bootstrap json', default=None) + if bootstrap_json: bootstrap = self._parse_json( bootstrap_json, video_id, transform_source=unescapeHTML) + + info = None if 'results' in bootstrap: info = bootstrap['results'][0]['video'] elif 'video' in bootstrap: info = bootstrap['video'] + elif 'msnbcVideoInfo' in bootstrap: + info = bootstrap['msnbcVideoInfo']['meta'] + elif 'msnbcThePlatform' in bootstrap: + info = bootstrap['msnbcThePlatform']['videoPlayer']['video'] else: info = bootstrap - video_id = info['mpxId'] + + if 'guid' in info: + video_id = info['guid'] + filter_param = 'byGuid' + elif 'mpxId' in info: + video_id = info['mpxId'] return { '_type': 'url_transparent', 'id': video_id, # http://feed.theplatform.com/f/2E2eJC/nbcnews also works - 'url': 'http://feed.theplatform.com/f/2E2eJC/nnd_NBCNews?byId=%s' % video_id, + 'url': update_url_query('http://feed.theplatform.com/f/2E2eJC/nnd_NBCNews', {filter_param: video_id}), 'ie_key': 'ThePlatformFeed', } diff --git a/youtube_dl/extractor/ndr.py b/youtube_dl/extractor/ndr.py index e3b0da2..07528d1 100644 --- a/youtube_dl/extractor/ndr.py +++ b/youtube_dl/extractor/ndr.py @@ -302,7 +302,7 @@ class NDREmbedIE(NDREmbedBaseIE): 'info_dict': { 'id': 'livestream217', 'ext': 'flv', - 'title': 're:^NDR Fernsehen Niedersachsen \d{4}-\d{2}-\d{2} \d{2}:\d{2}$', + 'title': r're:^NDR Fernsehen Niedersachsen \d{4}-\d{2}-\d{2} \d{2}:\d{2}$', 'is_live': True, 'upload_date': '20150910', }, @@ -367,7 +367,7 @@ class NJoyEmbedIE(NDREmbedBaseIE): 'info_dict': { 'id': 'webradioweltweit100', 'ext': 'mp3', - 'title': 're:^N-JOY Weltweit \d{4}-\d{2}-\d{2} \d{2}:\d{2}$', + 'title': r're:^N-JOY Weltweit \d{4}-\d{2}-\d{2} \d{2}:\d{2}$', 'is_live': True, 'uploader': 'njoy', 'upload_date': '20150810', diff --git a/youtube_dl/extractor/ndtv.py b/youtube_dl/extractor/ndtv.py index 96528f6..255f608 100644 --- a/youtube_dl/extractor/ndtv.py +++ b/youtube_dl/extractor/ndtv.py @@ -21,7 +21,7 @@ class NDTVIE(InfoExtractor): 'description': 'md5:ab2d4b4a6056c5cb4caa6d729deabf02', 'upload_date': '20131208', 'duration': 1327, - 'thumbnail': 're:https?://.*\.jpg', + 'thumbnail': r're:https?://.*\.jpg', }, } diff --git a/youtube_dl/extractor/netzkino.py b/youtube_dl/extractor/netzkino.py index 0d165a8..aec3026 100644 --- a/youtube_dl/extractor/netzkino.py +++ b/youtube_dl/extractor/netzkino.py @@ -25,7 +25,7 @@ class NetzkinoIE(InfoExtractor): 'comments': 'mincount:3', 'description': 'md5:1eddeacc7e62d5a25a2d1a7290c64a28', 'upload_date': '20120813', - 'thumbnail': 're:https?://.*\.jpg$', + 'thumbnail': r're:https?://.*\.jpg$', 'timestamp': 1344858571, 'age_limit': 12, }, diff --git a/youtube_dl/extractor/nextmedia.py b/youtube_dl/extractor/nextmedia.py index dee9056..680f03a 100644 --- a/youtube_dl/extractor/nextmedia.py +++ b/youtube_dl/extractor/nextmedia.py @@ -2,7 +2,15 @@ from __future__ import unicode_literals from .common import InfoExtractor -from ..utils import parse_iso8601 +from ..compat import compat_urlparse +from ..utils import ( + clean_html, + get_element_by_class, + int_or_none, + parse_iso8601, + remove_start, + unified_timestamp, +) class NextMediaIE(InfoExtractor): @@ -15,7 +23,7 @@ class NextMediaIE(InfoExtractor): 'id': '53109199', 'ext': 'mp4', 'title': '【佔領金鐘】50外國領事議員撐場 讚學生勇敢香港有希望', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'description': 'md5:28222b9912b6665a21011b034c70fcc7', 'timestamp': 1415456273, 'upload_date': '20141108', @@ -30,6 +38,12 @@ class NextMediaIE(InfoExtractor): return self._extract_from_nextmedia_page(news_id, url, page) def _extract_from_nextmedia_page(self, news_id, url, page): + redirection_url = self._search_regex( + r'window\.location\.href\s*=\s*([\'"])(?P(?!\1).+)\1', + page, 'redirection URL', default=None, group='url') + if redirection_url: + return self.url_result(compat_urlparse.urljoin(url, redirection_url)) + title = self._fetch_title(page) video_url = self._search_regex(self._URL_PATTERN, page, 'video url') @@ -76,7 +90,7 @@ class NextMediaActionNewsIE(NextMediaIE): 'id': '19009428', 'ext': 'mp4', 'title': '【壹週刊】細10年男友偷食 50歲邵美琪再失戀', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'description': 'md5:cd802fad1f40fd9ea178c1e2af02d659', 'timestamp': 1421791200, 'upload_date': '20150120', @@ -93,7 +107,7 @@ class NextMediaActionNewsIE(NextMediaIE): class AppleDailyIE(NextMediaIE): IE_DESC = '臺灣蘋果日報' - _VALID_URL = r'https?://(www|ent)\.appledaily\.com\.tw/(?:animation|appledaily|enews|realtimenews|actionnews)/[^/]+/[^/]+/(?P\d+)/(?P\d+)(/.*)?' + _VALID_URL = r'https?://(www|ent)\.appledaily\.com\.tw/[^/]+/[^/]+/[^/]+/(?P\d+)/(?P\d+)(/.*)?' _TESTS = [{ 'url': 'http://ent.appledaily.com.tw/enews/article/entertainment/20150128/36354694', 'md5': 'a843ab23d150977cc55ef94f1e2c1e4d', @@ -101,7 +115,7 @@ class AppleDailyIE(NextMediaIE): 'id': '36354694', 'ext': 'mp4', 'title': '周亭羽走過摩鐵陰霾2男陪吃 九把刀孤寒看醫生', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'description': 'md5:2acd430e59956dc47cd7f67cb3c003f4', 'upload_date': '20150128', } @@ -112,7 +126,7 @@ class AppleDailyIE(NextMediaIE): 'id': '550549', 'ext': 'mp4', 'title': '不滿被踩腳 山東兩大媽一路打下車', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'description': 'md5:175b4260c1d7c085993474217e4ab1b4', 'upload_date': '20150128', } @@ -123,7 +137,7 @@ class AppleDailyIE(NextMediaIE): 'id': '5003671', 'ext': 'mp4', 'title': '20正妹熱舞 《刀龍傳說Online》火辣上市', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'description': 'md5:23c0aac567dc08c9c16a3161a2c2e3cd', 'upload_date': '20150128', }, @@ -150,13 +164,17 @@ class AppleDailyIE(NextMediaIE): 'id': '35770334', 'ext': 'mp4', 'title': '咖啡占卜測 XU裝熟指數', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'description': 'md5:7b859991a6a4fedbdf3dd3b66545c748', 'upload_date': '20140417', }, }, { 'url': 'http://www.appledaily.com.tw/actionnews/appledaily/7/20161003/960588/', 'only_matching': True, + }, { + # Redirected from http://ent.appledaily.com.tw/enews/article/entertainment/20150128/36354694 + 'url': 'http://ent.appledaily.com.tw/section/article/headline/20150128/36354694', + 'only_matching': True, }] _URL_PATTERN = r'\{url: \'(.+)\'\}' @@ -173,3 +191,48 @@ class AppleDailyIE(NextMediaIE): def _fetch_description(self, page): return self._html_search_meta('description', page, 'news description') + + +class NextTVIE(InfoExtractor): + IE_DESC = '壹電視' + _VALID_URL = r'https?://(?:www\.)?nexttv\.com\.tw/(?:[^/]+/)+(?P\d+)' + + _TEST = { + 'url': 'http://www.nexttv.com.tw/news/realtime/politics/11779671', + 'info_dict': { + 'id': '11779671', + 'ext': 'mp4', + 'title': '「超收稅」近4千億! 藍議員籲發消費券', + 'thumbnail': r're:^https?://.*\.jpg$', + 'timestamp': 1484825400, + 'upload_date': '20170119', + 'view_count': int, + }, + } + + def _real_extract(self, url): + video_id = self._match_id(url) + + webpage = self._download_webpage(url, video_id) + + title = self._html_search_regex( + r']*>([^<]+)', webpage, 'title') + + data = self._hidden_inputs(webpage) + + video_url = data['ntt-vod-src-detailview'] + + date_str = get_element_by_class('date', webpage) + timestamp = unified_timestamp(date_str + '+0800') if date_str else None + + view_count = int_or_none(remove_start( + clean_html(get_element_by_class('click', webpage)), '點閱:')) + + return { + 'id': video_id, + 'title': title, + 'url': video_url, + 'thumbnail': data.get('ntt-vod-img-src'), + 'timestamp': timestamp, + 'view_count': view_count, + } diff --git a/youtube_dl/extractor/nfl.py b/youtube_dl/extractor/nfl.py index 3930d16..460deb1 100644 --- a/youtube_dl/extractor/nfl.py +++ b/youtube_dl/extractor/nfl.py @@ -72,7 +72,7 @@ class NFLIE(InfoExtractor): 'description': 'md5:56323bfb0ac4ee5ab24bd05fdf3bf478', 'upload_date': '20140921', 'timestamp': 1411337580, - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', } }, { 'url': 'http://prod.www.steelers.clubs.nfl.com/video-and-audio/videos/LIVE_Post_Game_vs_Browns/9d72f26a-9e2b-4718-84d3-09fb4046c266', @@ -84,7 +84,7 @@ class NFLIE(InfoExtractor): 'description': 'md5:6a97f7e5ebeb4c0e69a418a89e0636e8', 'upload_date': '20131229', 'timestamp': 1388354455, - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', } }, { 'url': 'http://www.nfl.com/news/story/0ap3000000467586/article/patriots-seahawks-involved-in-lategame-skirmish', diff --git a/youtube_dl/extractor/nick.py b/youtube_dl/extractor/nick.py index 7672845..08a7592 100644 --- a/youtube_dl/extractor/nick.py +++ b/youtube_dl/extractor/nick.py @@ -10,7 +10,7 @@ from ..utils import update_url_query class NickIE(MTVServicesInfoExtractor): # None of videos on the website are still alive? IE_NAME = 'nick.com' - _VALID_URL = r'https?://(?:www\.)?nick(?:jr)?\.com/(?:videos/clip|[^/]+/videos)/(?P[^/?#.]+)' + _VALID_URL = r'https?://(?:(?:www|beta)\.)?nick(?:jr)?\.com/(?:[^/]+/)?(?:videos/clip|[^/]+/videos)/(?P[^/?#.]+)' _FEED_URL = 'http://udat.mtvnservices.com/service1/dispatch.htm' _TESTS = [{ 'url': 'http://www.nick.com/videos/clip/alvinnn-and-the-chipmunks-112-full-episode.html', @@ -57,6 +57,9 @@ class NickIE(MTVServicesInfoExtractor): }, { 'url': 'http://www.nickjr.com/paw-patrol/videos/pups-save-a-goldrush-s3-ep302-full-episode/', 'only_matching': True, + }, { + 'url': 'http://beta.nick.com/nicky-ricky-dicky-and-dawn/videos/nicky-ricky-dicky-dawn-301-full-episode/', + 'only_matching': True, }] def _get_feed_query(self, uri): diff --git a/youtube_dl/extractor/niconico.py b/youtube_dl/extractor/niconico.py index a104e33..8baac23 100644 --- a/youtube_dl/extractor/niconico.py +++ b/youtube_dl/extractor/niconico.py @@ -7,7 +7,6 @@ import datetime from .common import InfoExtractor from ..compat import ( - compat_urllib_parse_urlencode, compat_urlparse, ) from ..utils import ( @@ -40,6 +39,7 @@ class NiconicoIE(InfoExtractor): 'description': '(c) copyright 2008, Blender Foundation / www.bigbuckbunny.org', 'duration': 33, }, + 'skip': 'Requires an account', }, { # File downloaded with and without credentials are different, so omit # the md5 field @@ -55,6 +55,7 @@ class NiconicoIE(InfoExtractor): 'timestamp': 1304065916, 'duration': 209, }, + 'skip': 'Requires an account', }, { # 'video exists but is marked as "deleted" # md5 is unstable @@ -65,9 +66,10 @@ class NiconicoIE(InfoExtractor): 'description': 'deleted', 'title': 'ドラえもんエターナル第3話「決戦第3新東京市」<前編>', 'upload_date': '20071224', - 'timestamp': 1198527840, # timestamp field has different value if logged in + 'timestamp': int, # timestamp field has different value if logged in 'duration': 304, }, + 'skip': 'Requires an account', }, { 'url': 'http://www.nicovideo.jp/watch/so22543406', 'info_dict': { @@ -79,13 +81,12 @@ class NiconicoIE(InfoExtractor): 'upload_date': '20140104', 'uploader': 'アニメロチャンネル', 'uploader_id': '312', - } + }, + 'skip': 'The viewing period of the video you were searching for has expired.', }] _VALID_URL = r'https?://(?:www\.|secure\.)?nicovideo\.jp/watch/(?P(?:[a-z]{2})?[0-9]+)' _NETRC_MACHINE = 'niconico' - # Determine whether the downloader used authentication to download video - _AUTHENTICATED = False def _real_initialize(self): self._login() @@ -109,8 +110,6 @@ class NiconicoIE(InfoExtractor): if re.search(r'(?i)

Log in error

', login_results) is not None: self._downloader.report_warning('unable to log in: bad username or password') return False - # Successful login - self._AUTHENTICATED = True return True def _real_extract(self, url): @@ -128,35 +127,19 @@ class NiconicoIE(InfoExtractor): 'http://ext.nicovideo.jp/api/getthumbinfo/' + video_id, video_id, note='Downloading video info page') - if self._AUTHENTICATED: - # Get flv info - flv_info_webpage = self._download_webpage( - 'http://flapi.nicovideo.jp/api/getflv/' + video_id + '?as3=1', - video_id, 'Downloading flv info') - else: - # Get external player info - ext_player_info = self._download_webpage( - 'http://ext.nicovideo.jp/thumb_watch/' + video_id, video_id) - thumb_play_key = self._search_regex( - r'\'thumbPlayKey\'\s*:\s*\'(.*?)\'', ext_player_info, 'thumbPlayKey') - - # Get flv info - flv_info_data = compat_urllib_parse_urlencode({ - 'k': thumb_play_key, - 'v': video_id - }) - flv_info_request = sanitized_Request( - 'http://ext.nicovideo.jp/thumb_watch', flv_info_data, - {'Content-Type': 'application/x-www-form-urlencoded'}) - flv_info_webpage = self._download_webpage( - flv_info_request, video_id, - note='Downloading flv info', errnote='Unable to download flv info') + # Get flv info + flv_info_webpage = self._download_webpage( + 'http://flapi.nicovideo.jp/api/getflv/' + video_id + '?as3=1', + video_id, 'Downloading flv info') flv_info = compat_urlparse.parse_qs(flv_info_webpage) if 'url' not in flv_info: if 'deleted' in flv_info: raise ExtractorError('The video has been deleted.', expected=True) + elif 'closed' in flv_info: + raise ExtractorError('Niconico videos now require logging in', + expected=True) else: raise ExtractorError('Unable to find video URL') diff --git a/youtube_dl/extractor/nosvideo.py b/youtube_dl/extractor/nosvideo.py index eab816e..53c500c 100644 --- a/youtube_dl/extractor/nosvideo.py +++ b/youtube_dl/extractor/nosvideo.py @@ -17,7 +17,7 @@ _x = lambda p: xpath_with_ns(p, {'xspf': 'http://xspf.org/ns/0/'}) class NosVideoIE(InfoExtractor): _VALID_URL = r'https?://(?:www\.)?nosvideo\.com/' + \ - '(?:embed/|\?v=)(?P[A-Za-z0-9]{12})/?' + r'(?:embed/|\?v=)(?P[A-Za-z0-9]{12})/?' _PLAYLIST_URL = 'http://nosvideo.com/xml/{xml_id:s}.xml' _FILE_DELETED_REGEX = r'File Not Found' _TEST = { @@ -27,7 +27,7 @@ class NosVideoIE(InfoExtractor): 'id': 'mu8fle7g7rpq', 'ext': 'mp4', 'title': 'big_buck_bunny_480p_surround-fix.avi.mp4', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', } } diff --git a/youtube_dl/extractor/nova.py b/youtube_dl/extractor/nova.py index 1039523..06cb8cb 100644 --- a/youtube_dl/extractor/nova.py +++ b/youtube_dl/extractor/nova.py @@ -21,7 +21,7 @@ class NovaIE(InfoExtractor): 'ext': 'flv', 'title': 'Duel: Michal Hrdlička a Petr Suchoň', 'description': 'md5:d0cc509858eee1b1374111c588c6f5d5', - 'thumbnail': 're:^https?://.*\.(?:jpg)', + 'thumbnail': r're:^https?://.*\.(?:jpg)', }, 'params': { # rtmp download @@ -36,7 +36,7 @@ class NovaIE(InfoExtractor): 'ext': 'mp4', 'title': 'Podzemní nemocnice v pražské Krči', 'description': 'md5:f0a42dd239c26f61c28f19e62d20ef53', - 'thumbnail': 're:^https?://.*\.(?:jpg)', + 'thumbnail': r're:^https?://.*\.(?:jpg)', } }, { 'url': 'http://novaplus.nova.cz/porad/policie-modrava/video/5591-policie-modrava-15-dil-blondynka-na-hrbitove', @@ -46,7 +46,7 @@ class NovaIE(InfoExtractor): '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': 're:^https?://.*\.(?:jpg)', + 'thumbnail': r're:^https?://.*\.(?:jpg)', }, 'params': { # rtmp download @@ -58,7 +58,7 @@ class NovaIE(InfoExtractor): 'id': '1756858', 'ext': 'flv', 'title': 'Televizní noviny - 30. 5. 2015', - 'thumbnail': 're:^https?://.*\.(?:jpg)', + 'thumbnail': r're:^https?://.*\.(?:jpg)', 'upload_date': '20150530', }, 'params': { @@ -72,7 +72,7 @@ class NovaIE(InfoExtractor): 'ext': 'mp4', 'title': 'Zaklínač 3: Divoký hon', 'description': 're:.*Pokud se stejně jako my nemůžete.*', - 'thumbnail': 're:https?://.*\.jpg(\?.*)?', + 'thumbnail': r're:https?://.*\.jpg(\?.*)?', 'upload_date': '20150521', }, 'params': { diff --git a/youtube_dl/extractor/novamov.py b/youtube_dl/extractor/novamov.py index 3bbd473..829c719 100644 --- a/youtube_dl/extractor/novamov.py +++ b/youtube_dl/extractor/novamov.py @@ -24,7 +24,7 @@ class NovaMovIE(InfoExtractor): ) (?P[a-z\d]{13}) ''' - _VALID_URL = _VALID_URL_TEMPLATE % {'host': 'novamov\.com'} + _VALID_URL = _VALID_URL_TEMPLATE % {'host': r'novamov\.com'} _HOST = 'www.novamov.com' @@ -104,7 +104,7 @@ class WholeCloudIE(NovaMovIE): IE_NAME = 'wholecloud' IE_DESC = 'WholeCloud' - _VALID_URL = NovaMovIE._VALID_URL_TEMPLATE % {'host': '(?:wholecloud\.net|movshare\.(?:net|sx|ag))'} + _VALID_URL = NovaMovIE._VALID_URL_TEMPLATE % {'host': r'(?:wholecloud\.net|movshare\.(?:net|sx|ag))'} _HOST = 'www.wholecloud.net' @@ -128,7 +128,7 @@ class NowVideoIE(NovaMovIE): IE_NAME = 'nowvideo' IE_DESC = 'NowVideo' - _VALID_URL = NovaMovIE._VALID_URL_TEMPLATE % {'host': 'nowvideo\.(?:to|ch|ec|sx|eu|at|ag|co|li)'} + _VALID_URL = NovaMovIE._VALID_URL_TEMPLATE % {'host': r'nowvideo\.(?:to|ch|ec|sx|eu|at|ag|co|li)'} _HOST = 'www.nowvideo.to' @@ -152,7 +152,7 @@ class VideoWeedIE(NovaMovIE): IE_NAME = 'videoweed' IE_DESC = 'VideoWeed' - _VALID_URL = NovaMovIE._VALID_URL_TEMPLATE % {'host': 'videoweed\.(?:es|com)'} + _VALID_URL = NovaMovIE._VALID_URL_TEMPLATE % {'host': r'videoweed\.(?:es|com)'} _HOST = 'www.videoweed.es' @@ -176,7 +176,7 @@ class CloudTimeIE(NovaMovIE): IE_NAME = 'cloudtime' IE_DESC = 'CloudTime' - _VALID_URL = NovaMovIE._VALID_URL_TEMPLATE % {'host': 'cloudtime\.to'} + _VALID_URL = NovaMovIE._VALID_URL_TEMPLATE % {'host': r'cloudtime\.to'} _HOST = 'www.cloudtime.to' @@ -190,7 +190,7 @@ class AuroraVidIE(NovaMovIE): IE_NAME = 'auroravid' IE_DESC = 'AuroraVid' - _VALID_URL = NovaMovIE._VALID_URL_TEMPLATE % {'host': 'auroravid\.to'} + _VALID_URL = NovaMovIE._VALID_URL_TEMPLATE % {'host': r'auroravid\.to'} _HOST = 'www.auroravid.to' diff --git a/youtube_dl/extractor/nowness.py b/youtube_dl/extractor/nowness.py index 7e53463..b6c5ee6 100644 --- a/youtube_dl/extractor/nowness.py +++ b/youtube_dl/extractor/nowness.py @@ -62,7 +62,7 @@ class NownessIE(NownessBaseIE): 'ext': 'mp4', 'title': 'Candor: The Art of Gesticulation', 'description': 'Candor: The Art of Gesticulation', - 'thumbnail': 're:^https?://.*\.jpg', + 'thumbnail': r're:^https?://.*\.jpg', 'timestamp': 1446745676, 'upload_date': '20151105', 'uploader_id': '2385340575001', @@ -76,7 +76,7 @@ class NownessIE(NownessBaseIE): 'ext': 'mp4', 'title': 'Kasper Bjørke ft. Jaakko Eino Kalevi: TNR', 'description': 'Kasper Bjørke ft. Jaakko Eino Kalevi: TNR', - 'thumbnail': 're:^https?://.*\.jpg', + 'thumbnail': r're:^https?://.*\.jpg', 'timestamp': 1407315371, 'upload_date': '20140806', 'uploader_id': '2385340575001', @@ -91,7 +91,7 @@ class NownessIE(NownessBaseIE): 'ext': 'mp4', 'title': 'Bleu, Blanc, Rouge - A Godard Supercut', 'description': 'md5:f0ea5f1857dffca02dbd37875d742cec', - 'thumbnail': 're:^https?://.*\.jpg', + 'thumbnail': r're:^https?://.*\.jpg', 'upload_date': '20150607', 'uploader': 'Cinema Sem Lei', 'uploader_id': 'cinemasemlei', diff --git a/youtube_dl/extractor/nowtv.py b/youtube_dl/extractor/nowtv.py index 916a102..e43b371 100644 --- a/youtube_dl/extractor/nowtv.py +++ b/youtube_dl/extractor/nowtv.py @@ -83,7 +83,7 @@ class NowTVIE(NowTVBaseIE): 'ext': 'flv', 'title': 'Inka Bause stellt die neuen Bauern vor', 'description': 'md5:e234e1ed6d63cf06be5c070442612e7e', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'timestamp': 1432580700, 'upload_date': '20150525', 'duration': 2786, @@ -101,7 +101,7 @@ class NowTVIE(NowTVBaseIE): 'ext': 'flv', 'title': 'Berlin - Tag & Nacht (Folge 934)', 'description': 'md5:c85e88c2e36c552dfe63433bc9506dd0', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'timestamp': 1432666800, 'upload_date': '20150526', 'duration': 2641, @@ -119,7 +119,7 @@ class NowTVIE(NowTVBaseIE): 'ext': 'flv', 'title': 'Hals- und Beinbruch', 'description': 'md5:b50d248efffe244e6f56737f0911ca57', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'timestamp': 1432415400, 'upload_date': '20150523', 'duration': 2742, @@ -137,7 +137,7 @@ class NowTVIE(NowTVBaseIE): 'ext': 'flv', 'title': 'Angst!', 'description': 'md5:30cbc4c0b73ec98bcd73c9f2a8c17c4e', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'timestamp': 1222632900, 'upload_date': '20080928', 'duration': 3025, @@ -155,7 +155,7 @@ class NowTVIE(NowTVBaseIE): 'ext': 'flv', 'title': 'Thema u.a.: Der erste Blick: Die Apple Watch', 'description': 'md5:4312b6c9d839ffe7d8caf03865a531af', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'timestamp': 1432751700, 'upload_date': '20150527', 'duration': 1083, @@ -173,7 +173,7 @@ class NowTVIE(NowTVBaseIE): 'ext': 'flv', 'title': "Büro-Fall / Chihuahua 'Joel'", 'description': 'md5:e62cb6bf7c3cc669179d4f1eb279ad8d', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'timestamp': 1432408200, 'upload_date': '20150523', 'duration': 3092, diff --git a/youtube_dl/extractor/noz.py b/youtube_dl/extractor/noz.py index c47a33d..ccafd77 100644 --- a/youtube_dl/extractor/noz.py +++ b/youtube_dl/extractor/noz.py @@ -24,7 +24,7 @@ class NozIE(InfoExtractor): 'duration': 215, 'title': '3:2 - Deutschland gewinnt Badminton-Länderspiel in Melle', 'description': 'Vor rund 370 Zuschauern gewinnt die deutsche Badminton-Nationalmannschaft am Donnerstag ein EM-Vorbereitungsspiel gegen Frankreich in Melle. Video Moritz Frankenberg.', - 'thumbnail': 're:^http://.*\.jpg', + 'thumbnail': r're:^http://.*\.jpg', }, }] diff --git a/youtube_dl/extractor/npo.py b/youtube_dl/extractor/npo.py index c91f584..9624371 100644 --- a/youtube_dl/extractor/npo.py +++ b/youtube_dl/extractor/npo.py @@ -241,7 +241,7 @@ class NPOIE(NPOBaseIE): if metadata.get('tt888') == 'ja': subtitles['nl'] = [{ 'ext': 'vtt', - 'url': 'http://e.omroep.nl/tt888/%s' % video_id, + 'url': 'http://tt888.omroep.nl/tt888/%s' % video_id, }] return { diff --git a/youtube_dl/extractor/nrk.py b/youtube_dl/extractor/nrk.py index c89aac6..fc3c0cd 100644 --- a/youtube_dl/extractor/nrk.py +++ b/youtube_dl/extractor/nrk.py @@ -48,6 +48,13 @@ class NRKBaseIE(InfoExtractor): entries = [] + conviva = data.get('convivaStatistics') or {} + live = (data.get('mediaElementType') == 'Live' or + data.get('isLive') is True or conviva.get('isLive')) + + def make_title(t): + return self._live_title(t) if live else t + media_assets = data.get('mediaAssets') if media_assets and isinstance(media_assets, list): def video_id_and_title(idx): @@ -61,6 +68,13 @@ class NRKBaseIE(InfoExtractor): if not formats: continue self._sort_formats(formats) + + # Some f4m streams may not work with hdcore in fragments' URLs + for f in formats: + extra_param = f.get('extra_param_to_segment_url') + if extra_param and 'hdcore' in extra_param: + del f['extra_param_to_segment_url'] + entry_id, entry_title = video_id_and_title(num) duration = parse_duration(asset.get('duration')) subtitles = {} @@ -72,7 +86,7 @@ class NRKBaseIE(InfoExtractor): }) entries.append({ 'id': asset.get('carrierId') or entry_id, - 'title': entry_title, + 'title': make_title(entry_title), 'duration': duration, 'subtitles': subtitles, 'formats': formats, @@ -87,7 +101,7 @@ class NRKBaseIE(InfoExtractor): duration = parse_duration(data.get('duration')) entries = [{ 'id': video_id, - 'title': title, + 'title': make_title(title), 'duration': duration, 'formats': formats, }] @@ -111,10 +125,25 @@ class NRKBaseIE(InfoExtractor): message_type, message_type)), expected=True) - conviva = data.get('convivaStatistics') or {} series = conviva.get('seriesName') or data.get('seriesTitle') episode = conviva.get('episodeName') or data.get('episodeNumberOrDate') + season_number = None + episode_number = None + if data.get('mediaElementType') == 'Episode': + _season_episode = data.get('scoresStatistics', {}).get('springStreamStream') or \ + data.get('relativeOriginUrl', '') + EPISODENUM_RE = [ + r'/s(?P\d{,2})e(?P\d{,2})\.', + r'/sesong-(?P\d{,2})/episode-(?P\d{,2})', + ] + season_number = int_or_none(self._search_regex( + EPISODENUM_RE, _season_episode, 'season number', + default=None, group='season')) + episode_number = int_or_none(self._search_regex( + EPISODENUM_RE, _season_episode, 'episode number', + default=None, group='episode')) + thumbnails = None images = data.get('images') if images and isinstance(images, dict): @@ -127,11 +156,15 @@ class NRKBaseIE(InfoExtractor): } for image in web_images if image.get('imageUrl')] description = data.get('description') + category = data.get('mediaAnalytics', {}).get('category') common_info = { 'description': description, 'series': series, 'episode': episode, + 'season_number': season_number, + 'episode_number': episode_number, + 'categories': [category] if category else None, 'age_limit': parse_age_limit(data.get('legalAge')), 'thumbnails': thumbnails, } @@ -194,7 +227,15 @@ class NRKIE(NRKBaseIE): class NRKTVIE(NRKBaseIE): IE_DESC = 'NRK TV and NRK Radio' - _VALID_URL = r'https?://(?:tv|radio)\.nrk(?:super)?\.no/(?:serie/[^/]+|program)/(?P[a-zA-Z]{4}\d{8})(?:/\d{2}-\d{2}-\d{4})?(?:#del=(?P\d+))?' + _EPISODE_RE = r'(?P[a-zA-Z]{4}\d{8})' + _VALID_URL = r'''(?x) + https?:// + (?:tv|radio)\.nrk(?:super)?\.no/ + (?:serie/[^/]+|program)/ + (?![Ee]pisodes)%s + (?:/\d{2}-\d{2}-\d{4})? + (?:\#del=(?P\d+))? + ''' % _EPISODE_RE _API_HOST = 'psapi-we.nrk.no' _TESTS = [{ @@ -206,63 +247,145 @@ class NRKTVIE(NRKBaseIE): 'title': '20 spørsmål 23.05.2014', 'description': 'md5:bdea103bc35494c143c6a9acdd84887a', 'duration': 1741, + 'series': '20 spørsmål - TV', + 'episode': '23.05.2014', }, }, { 'url': 'https://tv.nrk.no/program/mdfp15000514', - 'md5': '43d0be26663d380603a9cf0c24366531', 'info_dict': { 'id': 'MDFP15000514CA', 'ext': 'mp4', 'title': 'Grunnlovsjubiléet - Stor ståhei for ingenting 24.05.2014', 'description': 'md5:89290c5ccde1b3a24bb8050ab67fe1db', 'duration': 4605, + 'series': 'Kunnskapskanalen', + 'episode': '24.05.2014', + }, + 'params': { + 'skip_download': True, }, }, { # single playlist video 'url': 'https://tv.nrk.no/serie/tour-de-ski/MSPO40010515/06-01-2015#del=2', - 'md5': 'adbd1dbd813edaf532b0a253780719c2', 'info_dict': { 'id': 'MSPO40010515-part2', 'ext': 'flv', 'title': 'Tour de Ski: Sprint fri teknikk, kvinner og menn 06.01.2015 (del 2:2)', 'description': 'md5:238b67b97a4ac7d7b4bf0edf8cc57d26', }, - 'skip': 'Only works from Norway', + 'params': { + 'skip_download': True, + }, + 'expected_warnings': ['Video is geo restricted'], + 'skip': 'particular part is not supported currently', }, { 'url': 'https://tv.nrk.no/serie/tour-de-ski/MSPO40010515/06-01-2015', 'playlist': [{ - 'md5': '9480285eff92d64f06e02a5367970a7a', 'info_dict': { - 'id': 'MSPO40010515-part1', - 'ext': 'flv', - 'title': 'Tour de Ski: Sprint fri teknikk, kvinner og menn 06.01.2015 (del 1:2)', - 'description': 'md5:238b67b97a4ac7d7b4bf0edf8cc57d26', + 'id': 'MSPO40010515AH', + 'ext': 'mp4', + 'title': 'Sprint fri teknikk, kvinner og menn 06.01.2015 (Part 1)', + 'description': 'md5:c03aba1e917561eface5214020551b7a', + 'duration': 772, + 'series': 'Tour de Ski', + 'episode': '06.01.2015', + }, + 'params': { + 'skip_download': True, }, }, { - 'md5': 'adbd1dbd813edaf532b0a253780719c2', 'info_dict': { - 'id': 'MSPO40010515-part2', - 'ext': 'flv', - 'title': 'Tour de Ski: Sprint fri teknikk, kvinner og menn 06.01.2015 (del 2:2)', - 'description': 'md5:238b67b97a4ac7d7b4bf0edf8cc57d26', + 'id': 'MSPO40010515BH', + 'ext': 'mp4', + 'title': 'Sprint fri teknikk, kvinner og menn 06.01.2015 (Part 2)', + 'description': 'md5:c03aba1e917561eface5214020551b7a', + 'duration': 6175, + 'series': 'Tour de Ski', + 'episode': '06.01.2015', + }, + 'params': { + 'skip_download': True, }, }], 'info_dict': { 'id': 'MSPO40010515', - 'title': 'Tour de Ski: Sprint fri teknikk, kvinner og menn', - 'description': 'md5:238b67b97a4ac7d7b4bf0edf8cc57d26', - 'duration': 6947.52, + 'title': 'Sprint fri teknikk, kvinner og menn 06.01.2015', + 'description': 'md5:c03aba1e917561eface5214020551b7a', + }, + 'expected_warnings': ['Video is geo restricted'], + }, { + 'url': 'https://tv.nrk.no/serie/anno/KMTE50001317/sesong-3/episode-13', + 'info_dict': { + 'id': 'KMTE50001317AA', + 'ext': 'mp4', + 'title': 'Anno 13:30', + 'description': 'md5:11d9613661a8dbe6f9bef54e3a4cbbfa', + 'duration': 2340, + 'series': 'Anno', + 'episode': '13:30', + 'season_number': 3, + 'episode_number': 13, + }, + 'params': { + 'skip_download': True, + }, + }, { + 'url': 'https://tv.nrk.no/serie/nytt-paa-nytt/MUHH46000317/27-01-2017', + 'info_dict': { + 'id': 'MUHH46000317AA', + 'ext': 'mp4', + 'title': 'Nytt på Nytt 27.01.2017', + 'description': 'md5:5358d6388fba0ea6f0b6d11c48b9eb4b', + 'duration': 1796, + 'series': 'Nytt på nytt', + 'episode': '27.01.2017', + }, + 'params': { + 'skip_download': True, }, - 'skip': 'Only works from Norway', }, { 'url': 'https://radio.nrk.no/serie/dagsnytt/NPUB21019315/12-07-2015#', 'only_matching': True, }] -class NRKPlaylistIE(InfoExtractor): - _VALID_URL = r'https?://(?:www\.)?nrk\.no/(?!video|skole)(?:[^/]+/)+(?P[^/]+)' +class NRKTVDirekteIE(NRKTVIE): + IE_DESC = 'NRK TV Direkte and NRK Radio Direkte' + _VALID_URL = r'https?://(?:tv|radio)\.nrk\.no/direkte/(?P[^/?#&]+)' + + _TESTS = [{ + 'url': 'https://tv.nrk.no/direkte/nrk1', + 'only_matching': True, + }, { + 'url': 'https://radio.nrk.no/direkte/p1_oslo_akershus', + 'only_matching': True, + }] + + +class NRKPlaylistBaseIE(InfoExtractor): + def _extract_description(self, webpage): + pass + + def _real_extract(self, url): + playlist_id = self._match_id(url) + + webpage = self._download_webpage(url, playlist_id) + + entries = [ + self.url_result('nrk:%s' % video_id, NRKIE.ie_key()) + for video_id in re.findall(self._ITEM_RE, webpage) + ] + + playlist_title = self. _extract_title(webpage) + playlist_description = self._extract_description(webpage) + + return self.playlist_result( + entries, playlist_id, playlist_title, playlist_description) + +class NRKPlaylistIE(NRKPlaylistBaseIE): + _VALID_URL = r'https?://(?:www\.)?nrk\.no/(?!video|skole)(?:[^/]+/)+(?P[^/]+)' + _ITEM_RE = r'class="[^"]*\brich\b[^"]*"[^>]+data-video-id="([^"]+)"' _TESTS = [{ 'url': 'http://www.nrk.no/troms/gjenopplev-den-historiske-solformorkelsen-1.12270763', 'info_dict': { @@ -281,23 +404,86 @@ class NRKPlaylistIE(InfoExtractor): 'playlist_count': 5, }] + def _extract_title(self, webpage): + return self._og_search_title(webpage, fatal=False) + + def _extract_description(self, webpage): + return self._og_search_description(webpage) + + +class NRKTVEpisodesIE(NRKPlaylistBaseIE): + _VALID_URL = r'https?://tv\.nrk\.no/program/[Ee]pisodes/[^/]+/(?P\d+)' + _ITEM_RE = r'data-episode=["\']%s' % NRKTVIE._EPISODE_RE + _TESTS = [{ + 'url': 'https://tv.nrk.no/program/episodes/nytt-paa-nytt/69031', + 'info_dict': { + 'id': '69031', + 'title': 'Nytt på nytt, sesong: 201210', + }, + 'playlist_count': 4, + }] + + def _extract_title(self, webpage): + return self._html_search_regex( + r'

([^<]+)

', webpage, 'title', fatal=False) + + +class NRKTVSeriesIE(InfoExtractor): + _VALID_URL = r'https?://(?:tv|radio)\.nrk(?:super)?\.no/serie/(?P[^/]+)' + _ITEM_RE = r'(?:data-season=["\']|id=["\']season-)(?P\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): - playlist_id = self._match_id(url) + series_id = self._match_id(url) - webpage = self._download_webpage(url, playlist_id) + webpage = self._download_webpage(url, series_id) entries = [ - self.url_result('nrk:%s' % video_id, 'NRK') - for video_id in re.findall( - r'class="[^"]*\brich\b[^"]*"[^>]+data-video-id="([^"]+)"', - webpage) + 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) ] - playlist_title = self._og_search_title(webpage) - playlist_description = self._og_search_description(webpage) + title = self._html_search_meta( + 'seriestitle', webpage, + 'title', default=None) or self._og_search_title( + webpage, fatal=False) - return self.playlist_result( - entries, playlist_id, playlist_title, playlist_description) + 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): diff --git a/youtube_dl/extractor/ntvde.py b/youtube_dl/extractor/ntvde.py index d28a815..101a537 100644 --- a/youtube_dl/extractor/ntvde.py +++ b/youtube_dl/extractor/ntvde.py @@ -22,7 +22,7 @@ class NTVDeIE(InfoExtractor): 'info_dict': { 'id': '14438086', 'ext': 'mp4', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'title': 'Schnee und Glätte führen zu zahlreichen Unfällen und Staus', 'alt_title': 'Winterchaos auf deutschen Straßen', 'description': 'Schnee und Glätte sorgen deutschlandweit für einen chaotischen Start in die Woche: Auf den Straßen kommt es zu kilometerlangen Staus und Dutzenden Glätteunfällen. In Düsseldorf und München wirbelt der Schnee zudem den Flugplan durcheinander. Dutzende Flüge landen zu spät, einige fallen ganz aus.', diff --git a/youtube_dl/extractor/ntvru.py b/youtube_dl/extractor/ntvru.py index 7d7a785..4f9cedb 100644 --- a/youtube_dl/extractor/ntvru.py +++ b/youtube_dl/extractor/ntvru.py @@ -21,7 +21,7 @@ class NTVRuIE(InfoExtractor): 'ext': 'mp4', 'title': 'Командующий Черноморским флотом провел переговоры в штабе ВМС Украины', 'description': 'Командующий Черноморским флотом провел переговоры в штабе ВМС Украины', - 'thumbnail': 're:^http://.*\.jpg', + 'thumbnail': r're:^http://.*\.jpg', 'duration': 136, }, }, { @@ -32,7 +32,7 @@ class NTVRuIE(InfoExtractor): 'ext': 'mp4', 'title': 'Родные пассажиров пропавшего Boeing не верят в трагический исход', 'description': 'Родные пассажиров пропавшего Boeing не верят в трагический исход', - 'thumbnail': 're:^http://.*\.jpg', + 'thumbnail': r're:^http://.*\.jpg', 'duration': 172, }, }, { @@ -43,7 +43,7 @@ class NTVRuIE(InfoExtractor): 'ext': 'mp4', 'title': '«Сегодня». 21 марта 2014 года. 16:00', 'description': '«Сегодня». 21 марта 2014 года. 16:00', - 'thumbnail': 're:^http://.*\.jpg', + 'thumbnail': r're:^http://.*\.jpg', 'duration': 1496, }, }, { @@ -54,7 +54,7 @@ class NTVRuIE(InfoExtractor): 'ext': 'mp4', 'title': 'Остросюжетный фильм «Кома»', 'description': 'Остросюжетный фильм «Кома»', - 'thumbnail': 're:^http://.*\.jpg', + 'thumbnail': r're:^http://.*\.jpg', 'duration': 5592, }, }, { @@ -65,7 +65,7 @@ class NTVRuIE(InfoExtractor): 'ext': 'mp4', 'title': '«Дело врачей»: «Деревце жизни»', 'description': '«Дело врачей»: «Деревце жизни»', - 'thumbnail': 're:^http://.*\.jpg', + 'thumbnail': r're:^http://.*\.jpg', 'duration': 2590, }, }] diff --git a/youtube_dl/extractor/oktoberfesttv.py b/youtube_dl/extractor/oktoberfesttv.py index 50fbbc7..a914068 100644 --- a/youtube_dl/extractor/oktoberfesttv.py +++ b/youtube_dl/extractor/oktoberfesttv.py @@ -13,7 +13,7 @@ class OktoberfestTVIE(InfoExtractor): 'id': 'hb-zelt', 'ext': 'mp4', 'title': 're:^Live-Kamera: Hofbräuzelt [0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}$', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'is_live': True, }, 'params': { diff --git a/youtube_dl/extractor/ondemandkorea.py b/youtube_dl/extractor/ondemandkorea.py new file mode 100644 index 0000000..de1d6b0 --- /dev/null +++ b/youtube_dl/extractor/ondemandkorea.py @@ -0,0 +1,60 @@ +# coding: utf-8 +from __future__ import unicode_literals + +from .jwplatform import JWPlatformBaseIE +from ..utils import ( + ExtractorError, + js_to_json, +) + + +class OnDemandKoreaIE(JWPlatformBaseIE): + _VALID_URL = r'https?://(?:www\.)?ondemandkorea\.com/(?P[^/]+)\.html' + _TEST = { + 'url': 'http://www.ondemandkorea.com/ask-us-anything-e43.html', + 'info_dict': { + 'id': 'ask-us-anything-e43', + 'ext': 'mp4', + 'title': 'Ask Us Anything : E43', + 'thumbnail': r're:^https?://.*\.jpg$', + }, + 'params': { + 'skip_download': 'm3u8 download' + } + } + + def _real_extract(self, url): + video_id = self._match_id(url) + webpage = self._download_webpage(url, video_id, fatal=False) + + if not webpage: + # Page sometimes returns captcha page with HTTP 403 + raise ExtractorError( + 'Unable to access page. You may have been blocked.', + expected=True) + + if 'msg_block_01.png' in webpage: + self.raise_geo_restricted( + 'This content is not available in your region') + + if 'This video is only available to ODK PLUS members.' in webpage: + raise ExtractorError( + 'This video is only available to ODK PLUS members.', + expected=True) + + title = self._og_search_title(webpage) + + jw_config = self._parse_json( + self._search_regex( + r'(?s)jwplayer\(([\'"])(?:(?!\1).)+\1\)\.setup\s*\((?P.+?)\);', + webpage, 'jw config', group='options'), + video_id, transform_source=js_to_json) + info = self._parse_jwplayer_data( + jw_config, video_id, require_title=False, m3u8_id='hls', + base_url=url) + + info.update({ + 'title': title, + 'thumbnail': self._og_search_thumbnail(webpage), + }) + return info diff --git a/youtube_dl/extractor/onionstudios.py b/youtube_dl/extractor/onionstudios.py index 6fb1a3f..1d336cf 100644 --- a/youtube_dl/extractor/onionstudios.py +++ b/youtube_dl/extractor/onionstudios.py @@ -22,7 +22,7 @@ class OnionStudiosIE(InfoExtractor): 'id': '2937', 'ext': 'mp4', 'title': 'Hannibal charges forward, stops for a cocktail', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'uploader': 'The A.V. Club', 'uploader_id': 'the-av-club', }, diff --git a/youtube_dl/extractor/ooyala.py b/youtube_dl/extractor/ooyala.py index c2807d0..84be2b1 100644 --- a/youtube_dl/extractor/ooyala.py +++ b/youtube_dl/extractor/ooyala.py @@ -18,7 +18,7 @@ class OoyalaBaseIE(InfoExtractor): _CONTENT_TREE_BASE = _PLAYER_BASE + 'player_api/v1/content_tree/' _AUTHORIZATION_URL_TEMPLATE = _PLAYER_BASE + 'sas/player_api/v2/authorization/embed_code/%s/%s?' - def _extract(self, content_tree_url, video_id, domain='example.org', supportedformats=None): + def _extract(self, content_tree_url, video_id, domain='example.org', supportedformats=None, embed_token=None): content_tree = self._download_json(content_tree_url, video_id)['content_tree'] metadata = content_tree[list(content_tree)[0]] embed_code = metadata['embed_code'] @@ -29,7 +29,8 @@ class OoyalaBaseIE(InfoExtractor): self._AUTHORIZATION_URL_TEMPLATE % (pcode, embed_code) + compat_urllib_parse_urlencode({ 'domain': domain, - 'supportedFormats': supportedformats or 'mp4,rtmp,m3u8,hds', + 'supportedFormats': supportedformats or 'mp4,rtmp,m3u8,hds,dash,smooth', + 'embedToken': embed_token, }), video_id) cur_auth_data = auth_data['authorization_data'][embed_code] @@ -52,6 +53,12 @@ class OoyalaBaseIE(InfoExtractor): elif delivery_type == 'hds' or ext == 'f4m': formats.extend(self._extract_f4m_formats( s_url + '?hdcore=3.7.0', embed_code, f4m_id='hds', fatal=False)) + elif delivery_type == 'dash' or ext == 'mpd': + formats.extend(self._extract_mpd_formats( + s_url, embed_code, mpd_id='dash', fatal=False)) + elif delivery_type == 'smooth': + self._extract_ism_formats( + s_url, embed_code, ism_id='mss', fatal=False) elif ext == 'smil': formats.extend(self._extract_smil_formats( s_url, embed_code, fatal=False)) @@ -146,8 +153,9 @@ class OoyalaIE(OoyalaBaseIE): embed_code = self._match_id(url) domain = smuggled_data.get('domain') supportedformats = smuggled_data.get('supportedformats') + embed_token = smuggled_data.get('embed_token') content_tree_url = self._CONTENT_TREE_BASE + 'embed_code/%s/%s' % (embed_code, embed_code) - return self._extract(content_tree_url, embed_code, domain, supportedformats) + return self._extract(content_tree_url, embed_code, domain, supportedformats, embed_token) class OoyalaExternalIE(OoyalaBaseIE): diff --git a/youtube_dl/extractor/openload.py b/youtube_dl/extractor/openload.py index 7f19b1b..32289d8 100644 --- a/youtube_dl/extractor/openload.py +++ b/youtube_dl/extractor/openload.py @@ -1,25 +1,18 @@ # coding: utf-8 -from __future__ import unicode_literals, division +from __future__ import unicode_literals import re from .common import InfoExtractor -from ..compat import ( - compat_chr, - compat_ord, -) +from ..compat import compat_chr from ..utils import ( determine_ext, ExtractorError, ) -from ..jsinterp import ( - JSInterpreter, - _NAME_RE -) class OpenloadIE(InfoExtractor): - _VALID_URL = r'https?://openload\.(?:co|io)/(?:f|embed)/(?P[a-zA-Z0-9-_]+)' + _VALID_URL = r'https?://(?:openload\.(?:co|io)|oload\.tv)/(?:f|embed)/(?P[a-zA-Z0-9-_]+)' _TESTS = [{ 'url': 'https://openload.co/f/kUEfGclsU9o', @@ -28,7 +21,7 @@ class OpenloadIE(InfoExtractor): 'id': 'kUEfGclsU9o', 'ext': 'mp4', 'title': 'skyrim_no-audio_1080.mp4', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', }, }, { 'url': 'https://openload.co/embed/rjC09fkPLYs', @@ -36,7 +29,7 @@ class OpenloadIE(InfoExtractor): 'id': 'rjC09fkPLYs', 'ext': 'mp4', 'title': 'movie.mp4', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'subtitles': { 'en': [{ 'ext': 'vtt', @@ -60,45 +53,16 @@ class OpenloadIE(InfoExtractor): # for title and ext 'url': 'https://openload.co/embed/Sxz5sADo82g/', 'only_matching': True, + }, { + 'url': 'https://oload.tv/embed/KnG-kKZdcfY/', + 'only_matching': True, }] - def openload_decode(self, txt): - symbol_dict = { - '(゚Д゚) [゚Θ゚]': '_', - '(゚Д゚) [゚ω゚ノ]': 'a', - '(゚Д゚) [゚Θ゚ノ]': 'b', - '(゚Д゚) [\'c\']': 'c', - '(゚Д゚) [゚ー゚ノ]': 'd', - '(゚Д゚) [゚Д゚ノ]': 'e', - '(゚Д゚) [1]': 'f', - '(゚Д゚) [\'o\']': 'o', - '(o゚ー゚o)': 'u', - '(゚Д゚) [\'c\']': 'c', - '((゚ー゚) + (o^_^o))': '7', - '((o^_^o) +(o^_^o) +(c^_^o))': '6', - '((゚ー゚) + (゚Θ゚))': '5', - '(-~3)': '4', - '(-~-~1)': '3', - '(-~1)': '2', - '(-~0)': '1', - '((c^_^o)-(c^_^o))': '0', - } - delim = '(゚Д゚)[゚ε゚]+' - end_token = '(゚Д゚)[゚o゚]' - symbols = '|'.join(map(re.escape, symbol_dict.keys())) - txt = re.sub('(%s)\+\s?' % symbols, lambda m: symbol_dict[m.group(1)], txt) - ret = '' - for aacode in re.findall(r'{0}\+\s?{1}(.*?){0}'.format(re.escape(end_token), re.escape(delim)), txt): - for aachar in aacode.split(delim): - if aachar.isdigit(): - ret += compat_chr(int(aachar, 8)) - else: - m = re.match(r'^u([\da-f]{4})$', aachar) - if m: - ret += compat_chr(int(m.group(1), 16)) - else: - self.report_warning("Cannot decode: %s" % aachar) - return ret + @staticmethod + def _extract_urls(webpage): + return re.findall( + r']+src=["\']((?:https?://)?(?:openload\.(?:co|io)|oload\.tv)/embed/[a-zA-Z0-9-_]+)', + webpage) def _real_extract(self, url): video_id = self._match_id(url) @@ -107,36 +71,21 @@ class OpenloadIE(InfoExtractor): if 'File not found' in webpage or 'deleted by the owner' in webpage: raise ExtractorError('File not found', expected=True) - # The following decryption algorithm is written by @yokrysty and - # declared to be freely used in youtube-dl - # See https://github.com/rg3/youtube-dl/issues/10408 - enc_data = self._html_search_regex( - r']*>([^<]+)\s*]*>[^<]+\s*]+id="streamurl"', - webpage, 'encrypted data') + ol_id = self._search_regex( + ']+id="[^"]+"[^>]*>([0-9]+)', + webpage, 'openload ID') - enc_code = self._html_search_regex(r']+>(゚ω゚[^<]+)', - webpage, 'encrypted code') + first_three_chars = int(float(ol_id[0:][:3])) + fifth_char = int(float(ol_id[3:5])) + urlcode = '' + num = 5 - js_code = self.openload_decode(enc_code) - jsi = JSInterpreter(js_code) + while num < len(ol_id): + urlcode += compat_chr(int(float(ol_id[num:][:3])) + + first_three_chars - fifth_char * int(float(ol_id[num + 3:][:2]))) + num += 5 - m_offset_fun = self._search_regex(r'slice\(0\s*-\s*(%s)\(\)' % _NAME_RE, js_code, 'javascript offset function') - m_diff_fun = self._search_regex(r'charCodeAt\(0\)\s*\+\s*(%s)\(\)' % _NAME_RE, js_code, 'javascript diff function') - - offset = jsi.call_function(m_offset_fun) - diff = jsi.call_function(m_diff_fun) - - video_url_chars = [] - - for idx, c in enumerate(enc_data): - j = compat_ord(c) - if j >= 33 and j <= 126: - j = ((j + 14) % 94) + 33 - if idx == len(enc_data) - offset: - j += diff - video_url_chars += compat_chr(j) - - video_url = 'https://openload.co/stream/%s?mime=true' % ''.join(video_url_chars) + video_url = 'https://openload.co/stream/' + urlcode title = self._og_search_title(webpage, default=None) or self._search_regex( r']+class=["\']title["\'][^>]*>([^<]+)', webpage, @@ -152,8 +101,7 @@ class OpenloadIE(InfoExtractor): 'thumbnail': self._og_search_thumbnail(webpage, default=None), 'url': video_url, # Seems all videos have extensions in their titles - 'ext': determine_ext(title), + 'ext': determine_ext(title, 'mp4'), 'subtitles': subtitles, } - return info_dict diff --git a/youtube_dl/extractor/orf.py b/youtube_dl/extractor/orf.py index b4cce7e..1e2c54e 100644 --- a/youtube_dl/extractor/orf.py +++ b/youtube_dl/extractor/orf.py @@ -247,7 +247,7 @@ class ORFIPTVIE(InfoExtractor): 'title': 'Weitere Evakuierungen um Vulkan Calbuco', 'description': 'md5:d689c959bdbcf04efeddedbf2299d633', 'duration': 68.197, - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'upload_date': '20150425', }, } diff --git a/youtube_dl/extractor/pandoratv.py b/youtube_dl/extractor/pandoratv.py index 2b07958..89c95ff 100644 --- a/youtube_dl/extractor/pandoratv.py +++ b/youtube_dl/extractor/pandoratv.py @@ -11,6 +11,7 @@ from ..utils import ( float_or_none, parse_duration, str_to_int, + urlencode_postdata, ) @@ -25,7 +26,7 @@ class PandoraTVIE(InfoExtractor): 'ext': 'flv', 'title': '頭を撫でてくれる?', 'description': '頭を撫でてくれる?', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'duration': 39, 'upload_date': '20151218', 'uploader': 'カワイイ動物まとめ', @@ -56,6 +57,22 @@ class PandoraTVIE(InfoExtractor): r'^v(\d+)[Uu]rl$', format_id, 'height', default=None) if not height: continue + + play_url = self._download_json( + 'http://m.pandora.tv/?c=api&m=play_url', video_id, + data=urlencode_postdata({ + 'prgid': video_id, + 'runtime': info.get('runtime'), + 'vod_url': format_url, + }), + headers={ + 'Origin': url, + 'Content-Type': 'application/x-www-form-urlencoded', + }) + format_url = play_url.get('url') + if not format_url: + continue + formats.append({ 'format_id': '%sp' % height, 'url': format_url, diff --git a/youtube_dl/extractor/pbs.py b/youtube_dl/extractor/pbs.py index b490ef7..6baed77 100644 --- a/youtube_dl/extractor/pbs.py +++ b/youtube_dl/extractor/pbs.py @@ -236,7 +236,7 @@ class PBSIE(InfoExtractor): 'title': 'Great Performances - Dudamel Conducts Verdi Requiem at the Hollywood Bowl - Full', 'description': 'md5:657897370e09e2bc6bf0f8d2cd313c6b', 'duration': 6559, - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', }, }, { @@ -249,7 +249,7 @@ class PBSIE(InfoExtractor): 'description': 'md5:c741d14e979fc53228c575894094f157', 'title': 'NOVA - Killer Typhoon', 'duration': 3172, - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'upload_date': '20140122', 'age_limit': 10, }, @@ -270,7 +270,7 @@ class PBSIE(InfoExtractor): 'title': 'American Experience - Death and the Civil War, Chapter 1', 'description': 'md5:67fa89a9402e2ee7d08f53b920674c18', 'duration': 682, - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', }, 'params': { 'skip_download': True, # requires ffmpeg @@ -286,7 +286,7 @@ class PBSIE(InfoExtractor): 'title': 'FRONTLINE - United States of Secrets (Part One)', 'description': 'md5:55756bd5c551519cc4b7703e373e217e', 'duration': 6851, - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', }, }, { @@ -302,7 +302,7 @@ class PBSIE(InfoExtractor): 'title': "A Chef's Life - Season 3, Ep. 5: Prickly Business", 'description': 'md5:c0ff7475a4b70261c7e58f493c2792a5', 'duration': 1480, - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', }, }, { @@ -315,7 +315,7 @@ class PBSIE(InfoExtractor): 'title': 'FRONTLINE - The Atomic Artists', 'description': 'md5:f677e4520cfacb4a5ce1471e31b57800', 'duration': 723, - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', }, 'params': { 'skip_download': True, # requires ffmpeg @@ -330,7 +330,7 @@ class PBSIE(InfoExtractor): 'ext': 'mp4', 'title': 'FRONTLINE - Netanyahu at War', 'duration': 6852, - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'formats': 'mincount:8', }, }, @@ -350,6 +350,15 @@ class PBSIE(InfoExtractor): 410: 'This video has expired and is no longer available for online streaming.', } + def _real_initialize(self): + cookie = (self._download_json( + 'http://localization.services.pbs.org/localize/auto/cookie/', + None, headers=self.geo_verification_headers(), fatal=False) or {}).get('cookie') + if cookie: + station = self._search_regex(r'#?s=\["([^"]+)"', cookie, 'station') + if station: + self._set_cookie('.pbs.org', 'pbsol.station', station) + def _extract_webpage(self, url): mobj = re.match(self._VALID_URL, url) @@ -476,7 +485,8 @@ class PBSIE(InfoExtractor): redirect_info = self._download_json( '%s?format=json' % redirect['url'], display_id, - 'Downloading %s video url info' % (redirect_id or num)) + 'Downloading %s video url info' % (redirect_id or num), + headers=self.geo_verification_headers()) if redirect_info['status'] == 'error': raise ExtractorError( @@ -558,7 +568,7 @@ class PBSIE(InfoExtractor): # Try turning it to 'program - title' naming scheme if possible alt_title = info.get('program', {}).get('title') if alt_title: - info['title'] = alt_title + ' - ' + re.sub(r'^' + alt_title + '[\s\-:]+', '', info['title']) + info['title'] = alt_title + ' - ' + re.sub(r'^' + alt_title + r'[\s\-:]+', '', info['title']) description = info.get('description') or info.get( 'program', {}).get('description') or description diff --git a/youtube_dl/extractor/people.py b/youtube_dl/extractor/people.py index 9ecdbc1..6ca9571 100644 --- a/youtube_dl/extractor/people.py +++ b/youtube_dl/extractor/people.py @@ -14,7 +14,7 @@ class PeopleIE(InfoExtractor): 'ext': 'mp4', 'title': 'Astronaut Love Triangle Victim Speaks Out: “The Crime in 2007 Hasn’t Defined Us”', 'description': 'Colleen Shipman speaks to PEOPLE for the first time about life after the attack', - 'thumbnail': 're:^https?://.*\.jpg', + 'thumbnail': r're:^https?://.*\.jpg', 'duration': 246.318, 'timestamp': 1458720585, 'upload_date': '20160323', diff --git a/youtube_dl/extractor/phoenix.py b/youtube_dl/extractor/phoenix.py index ac009f6..e435c28 100644 --- a/youtube_dl/extractor/phoenix.py +++ b/youtube_dl/extractor/phoenix.py @@ -1,9 +1,9 @@ from __future__ import unicode_literals -from .zdf import ZDFIE +from .dreisat import DreiSatIE -class PhoenixIE(ZDFIE): +class PhoenixIE(DreiSatIE): IE_NAME = 'phoenix.de' _VALID_URL = r'''(?x)https?://(?:www\.)?phoenix\.de/content/ (?: diff --git a/youtube_dl/extractor/piksel.py b/youtube_dl/extractor/piksel.py new file mode 100644 index 0000000..c0c276a --- /dev/null +++ b/youtube_dl/extractor/piksel.py @@ -0,0 +1,123 @@ +# coding: utf-8 +from __future__ import unicode_literals + +import re + +from .common import InfoExtractor +from ..compat import compat_str +from ..utils import ( + ExtractorError, + dict_get, + int_or_none, + unescapeHTML, + parse_iso8601, +) + + +class PikselIE(InfoExtractor): + _VALID_URL = r'https?://player\.piksel\.com/v/(?P[a-z0-9]+)' + _TESTS = [ + { + 'url': 'http://player.piksel.com/v/nv60p12f', + 'md5': 'd9c17bbe9c3386344f9cfd32fad8d235', + 'info_dict': { + 'id': 'nv60p12f', + 'ext': 'mp4', + 'title': 'فن الحياة - الحلقة 1', + 'description': 'احدث برامج الداعية الاسلامي " مصطفي حسني " فى رمضان 2016علي النهار نور', + 'timestamp': 1465231790, + 'upload_date': '20160606', + } + }, + { + # Original source: http://www.uscourts.gov/cameras-courts/state-washington-vs-donald-j-trump-et-al + 'url': 'https://player.piksel.com/v/v80kqp41', + 'md5': '753ddcd8cc8e4fa2dda4b7be0e77744d', + 'info_dict': { + 'id': 'v80kqp41', + 'ext': 'mp4', + 'title': 'WAW- State of Washington vs. Donald J. Trump, et al', + 'description': 'State of Washington vs. Donald J. Trump, et al, Case Number 17-CV-00141-JLR, TRO Hearing, Civil Rights Case, 02/3/2017, 1:00 PM (PST), Seattle Federal Courthouse, Seattle, WA, Judge James L. Robart presiding.', + 'timestamp': 1486171129, + 'upload_date': '20170204', + } + } + ] + + @staticmethod + def _extract_url(webpage): + mobj = re.search( + r']+src=["\'](?P(?:https?:)?//player\.piksel\.com/v/[a-z0-9]+)', + webpage) + if mobj: + return mobj.group('url') + + def _real_extract(self, url): + video_id = self._match_id(url) + webpage = self._download_webpage(url, video_id) + app_token = self._search_regex([ + r'clientAPI\s*:\s*"([^"]+)"', + r'data-de-api-key\s*=\s*"([^"]+)"' + ], webpage, 'app token') + response = self._download_json( + 'http://player.piksel.com/ws/ws_program/api/%s/mode/json/apiv/5' % app_token, + video_id, query={ + 'v': video_id + })['response'] + failure = response.get('failure') + if failure: + raise ExtractorError(response['failure']['reason'], expected=True) + video_data = response['WsProgramResponse']['program']['asset'] + title = video_data['title'] + + formats = [] + + m3u8_url = dict_get(video_data, [ + 'm3u8iPadURL', + 'ipadM3u8Url', + 'm3u8AndroidURL', + 'm3u8iPhoneURL', + 'iphoneM3u8Url']) + if m3u8_url: + formats.extend(self._extract_m3u8_formats( + m3u8_url, video_id, 'mp4', 'm3u8_native', + m3u8_id='hls', fatal=False)) + + asset_type = dict_get(video_data, ['assetType', 'asset_type']) + for asset_file in video_data.get('assetFiles', []): + # TODO: extract rtmp formats + http_url = asset_file.get('http_url') + if not http_url: + continue + tbr = None + vbr = int_or_none(asset_file.get('videoBitrate'), 1024) + abr = int_or_none(asset_file.get('audioBitrate'), 1024) + if asset_type == 'video': + tbr = vbr + abr + elif asset_type == 'audio': + tbr = abr + + format_id = ['http'] + if tbr: + format_id.append(compat_str(tbr)) + + formats.append({ + 'format_id': '-'.join(format_id), + 'url': unescapeHTML(http_url), + 'vbr': vbr, + 'abr': abr, + 'width': int_or_none(asset_file.get('videoWidth')), + 'height': int_or_none(asset_file.get('videoHeight')), + 'filesize': int_or_none(asset_file.get('filesize')), + 'tbr': tbr, + }) + self._sort_formats(formats) + + return { + 'id': video_id, + 'title': title, + 'description': video_data.get('description'), + 'thumbnail': video_data.get('thumbnailUrl'), + 'timestamp': parse_iso8601(video_data.get('dateadd')), + 'formats': formats, + } diff --git a/youtube_dl/extractor/pinkbike.py b/youtube_dl/extractor/pinkbike.py index a52210f..6a4580d 100644 --- a/youtube_dl/extractor/pinkbike.py +++ b/youtube_dl/extractor/pinkbike.py @@ -23,7 +23,7 @@ class PinkbikeIE(InfoExtractor): 'ext': 'mp4', 'title': 'Brandon Semenuk - RAW 100', 'description': 'Official release: www.redbull.ca/rupertwalker', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'duration': 100, 'upload_date': '20150406', 'uploader': 'revelco', diff --git a/youtube_dl/extractor/pladform.py b/youtube_dl/extractor/pladform.py index 77e1211..e38c761 100644 --- a/youtube_dl/extractor/pladform.py +++ b/youtube_dl/extractor/pladform.py @@ -34,7 +34,7 @@ class PladformIE(InfoExtractor): 'ext': 'mp4', 'title': 'Тайны перевала Дятлова • 1 серия 2 часть', 'description': 'Документальный сериал-расследование одной из самых жутких тайн ХХ века', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'duration': 694, 'age_limit': 0, }, diff --git a/youtube_dl/extractor/playtvak.py b/youtube_dl/extractor/playtvak.py index 1e8096a..391e1bd 100644 --- a/youtube_dl/extractor/playtvak.py +++ b/youtube_dl/extractor/playtvak.py @@ -25,7 +25,7 @@ class PlaytvakIE(InfoExtractor): 'ext': 'mp4', 'title': 'Vyžeňte vosy a sršně ze zahrady', 'description': 'md5:f93d398691044d303bc4a3de62f3e976', - 'thumbnail': 're:(?i)^https?://.*\.(?:jpg|png)$', + 'thumbnail': r're:(?i)^https?://.*\.(?:jpg|png)$', 'duration': 279, 'timestamp': 1438732860, 'upload_date': '20150805', @@ -38,7 +38,7 @@ class PlaytvakIE(InfoExtractor): 'ext': 'flv', 'title': 're:^Přímý přenos iDNES.cz [0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}$', 'description': 'Sledujte provoz na ranveji Letiště Václava Havla v Praze', - 'thumbnail': 're:(?i)^https?://.*\.(?:jpg|png)$', + 'thumbnail': r're:(?i)^https?://.*\.(?:jpg|png)$', 'is_live': True, }, 'params': { @@ -52,7 +52,7 @@ class PlaytvakIE(InfoExtractor): 'ext': 'mp4', 'title': 'Zavřeli jsme mraženou pizzu do auta. Upekla se', 'description': 'md5:01e73f02329e2e5760bd5eed4d42e3c2', - 'thumbnail': 're:(?i)^https?://.*\.(?:jpg|png)$', + 'thumbnail': r're:(?i)^https?://.*\.(?:jpg|png)$', 'duration': 39, 'timestamp': 1438969140, 'upload_date': '20150807', @@ -66,7 +66,7 @@ class PlaytvakIE(InfoExtractor): 'ext': 'mp4', 'title': 'Táhni! Demonstrace proti imigrantům budila emoce', 'description': 'md5:97c81d589a9491fbfa323c9fa3cca72c', - 'thumbnail': 're:(?i)^https?://.*\.(?:jpg|png)$', + 'thumbnail': r're:(?i)^https?://.*\.(?:jpg|png)$', 'timestamp': 1439052180, 'upload_date': '20150808', 'is_live': False, @@ -79,7 +79,7 @@ class PlaytvakIE(InfoExtractor): 'ext': 'mp4', 'title': 'Recesisté udělali z billboardu kolotoč', 'description': 'md5:7369926049588c3989a66c9c1a043c4c', - 'thumbnail': 're:(?i)^https?://.*\.(?:jpg|png)$', + 'thumbnail': r're:(?i)^https?://.*\.(?:jpg|png)$', 'timestamp': 1415725500, 'upload_date': '20141111', 'is_live': False, diff --git a/youtube_dl/extractor/playvid.py b/youtube_dl/extractor/playvid.py index 79c2db0..4aef186 100644 --- a/youtube_dl/extractor/playvid.py +++ b/youtube_dl/extractor/playvid.py @@ -34,7 +34,7 @@ class PlayvidIE(InfoExtractor): 'ext': 'mp4', 'title': 'Ellen Euro Cutie Blond Takes a Sexy Survey Get Facial in The Park', 'age_limit': 18, - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', }, }] diff --git a/youtube_dl/extractor/playwire.py b/youtube_dl/extractor/playwire.py index 0bc7431..4d96a10 100644 --- a/youtube_dl/extractor/playwire.py +++ b/youtube_dl/extractor/playwire.py @@ -18,7 +18,7 @@ class PlaywireIE(InfoExtractor): 'id': '3353705', 'ext': 'mp4', 'title': 'S04_RM_UCL_Rus', - 'thumbnail': 're:^https?://.*\.png$', + 'thumbnail': r're:^https?://.*\.png$', 'duration': 145.94, }, }, { diff --git a/youtube_dl/extractor/pluralsight.py b/youtube_dl/extractor/pluralsight.py index 0ffd41e..5c798e8 100644 --- a/youtube_dl/extractor/pluralsight.py +++ b/youtube_dl/extractor/pluralsight.py @@ -157,13 +157,10 @@ class PluralsightIE(PluralsightBaseIE): display_id = '%s-%s' % (name, clip_id) - parsed_url = compat_urlparse.urlparse(url) - - payload_url = compat_urlparse.urlunparse(parsed_url._replace( - netloc='app.pluralsight.com', path='player/api/v1/payload')) - course = self._download_json( - payload_url, display_id, headers={'Referer': url})['payload']['course'] + 'https://app.pluralsight.com/player/user/api/v1/player/payload', + display_id, data=urlencode_postdata({'courseId': course_name}), + headers={'Referer': url}) collection = course['modules'] diff --git a/youtube_dl/extractor/polskieradio.py b/youtube_dl/extractor/polskieradio.py index 5ff1737..2ac1fcb 100644 --- a/youtube_dl/extractor/polskieradio.py +++ b/youtube_dl/extractor/polskieradio.py @@ -36,7 +36,7 @@ class PolskieRadioIE(InfoExtractor): 'timestamp': 1456594200, 'upload_date': '20160227', 'duration': 2364, - 'thumbnail': 're:^https?://static\.prsa\.pl/images/.*\.jpg$' + 'thumbnail': r're:^https?://static\.prsa\.pl/images/.*\.jpg$' }, }], }, { diff --git a/youtube_dl/extractor/porncom.py b/youtube_dl/extractor/porncom.py index d85e029..8218c7d 100644 --- a/youtube_dl/extractor/porncom.py +++ b/youtube_dl/extractor/porncom.py @@ -22,7 +22,7 @@ class PornComIE(InfoExtractor): 'display_id': 'teen-grabs-a-dildo-and-fucks-her-pussy-live-on-1hottie-i-rec', 'ext': 'mp4', 'title': 'Teen grabs a dildo and fucks her pussy live on 1hottie, I rec', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'duration': 551, 'view_count': int, 'age_limit': 18, diff --git a/youtube_dl/extractor/pornflip.py b/youtube_dl/extractor/pornflip.py new file mode 100644 index 0000000..a4a5d39 --- /dev/null +++ b/youtube_dl/extractor/pornflip.py @@ -0,0 +1,92 @@ +# coding: utf-8 +from __future__ import unicode_literals + +from .common import InfoExtractor +from ..compat import ( + compat_parse_qs, + compat_str, +) +from ..utils import ( + int_or_none, + try_get, + unified_timestamp, +) + + +class PornFlipIE(InfoExtractor): + _VALID_URL = r'https?://(?:www\.)?pornflip\.com/(?:v|embed)/(?P[0-9A-Za-z]{11})' + _TESTS = [{ + 'url': 'https://www.pornflip.com/v/wz7DfNhMmep', + 'md5': '98c46639849145ae1fd77af532a9278c', + 'info_dict': { + 'id': 'wz7DfNhMmep', + 'ext': 'mp4', + 'title': '2 Amateurs swallow make his dream cumshots true', + 'thumbnail': r're:^https?://.*\.jpg$', + 'duration': 112, + 'timestamp': 1481655502, + 'upload_date': '20161213', + 'uploader_id': '106786', + 'uploader': 'figifoto', + 'view_count': int, + 'age_limit': 18, + } + }, { + 'url': 'https://www.pornflip.com/embed/wz7DfNhMmep', + 'only_matching': True, + }] + + def _real_extract(self, url): + video_id = self._match_id(url) + + webpage = self._download_webpage( + 'https://www.pornflip.com/v/%s' % video_id, video_id) + + flashvars = compat_parse_qs(self._search_regex( + r']+flashvars=(["\'])(?P(?:(?!\1).)+)\1', + webpage, 'flashvars', group='flashvars')) + + title = flashvars['video_vars[title]'][0] + + def flashvar(kind): + return try_get( + flashvars, lambda x: x['video_vars[%s]' % kind][0], compat_str) + + formats = [] + for key, value in flashvars.items(): + if not (value and isinstance(value, list)): + continue + format_url = value[0] + if key == 'video_vars[hds_manifest]': + formats.extend(self._extract_mpd_formats( + format_url, video_id, mpd_id='dash', fatal=False)) + continue + height = self._search_regex( + r'video_vars\[video_urls\]\[(\d+)', key, 'height', default=None) + if not height: + continue + formats.append({ + 'url': format_url, + 'format_id': 'http-%s' % height, + 'height': int_or_none(height), + }) + self._sort_formats(formats) + + uploader = self._html_search_regex( + (r']+class="name"[^>]*>\s*]+>\s*(?P[^<]+)', + r']+content=(["\'])[^>]*\buploaded by (?P.+?)\1'), + webpage, 'uploader', fatal=False, group='uploader') + + return { + 'id': video_id, + 'formats': formats, + 'title': title, + 'thumbnail': flashvar('big_thumb'), + 'duration': int_or_none(flashvar('duration')), + 'timestamp': unified_timestamp(self._html_search_meta( + 'uploadDate', webpage, 'timestamp')), + 'uploader_id': flashvar('author_id'), + 'uploader': uploader, + 'view_count': int_or_none(flashvar('views')), + 'age_limit': 18, + } diff --git a/youtube_dl/extractor/pornhd.py b/youtube_dl/extractor/pornhd.py index 8df12ee..842317e 100644 --- a/youtube_dl/extractor/pornhd.py +++ b/youtube_dl/extractor/pornhd.py @@ -21,7 +21,7 @@ class PornHdIE(InfoExtractor): 'ext': 'mp4', 'title': 'Restroom selfie masturbation', 'description': 'md5:3748420395e03e31ac96857a8f125b2b', - 'thumbnail': 're:^https?://.*\.jpg', + 'thumbnail': r're:^https?://.*\.jpg', 'view_count': int, 'age_limit': 18, } @@ -35,7 +35,7 @@ class PornHdIE(InfoExtractor): 'ext': 'mp4', 'title': 'Sierra loves doing laundry', 'description': 'md5:8ff0523848ac2b8f9b065ba781ccf294', - 'thumbnail': 're:^https?://.*\.jpg', + 'thumbnail': r're:^https?://.*\.jpg', 'view_count': int, 'age_limit': 18, }, diff --git a/youtube_dl/extractor/pornhub.py b/youtube_dl/extractor/pornhub.py index 40dbe69..017f6c5 100644 --- a/youtube_dl/extractor/pornhub.py +++ b/youtube_dl/extractor/pornhub.py @@ -156,7 +156,12 @@ class PornHubIE(InfoExtractor): comment_count = self._extract_count( r'All Comments\s*\(([\d,.]+)\)', webpage, 'comment') - video_urls = list(map(compat_urllib_parse_unquote, re.findall(r"player_quality_[0-9]{3}p\s*=\s*'([^']+)'", webpage))) + video_urls = [] + for quote, video_url in re.findall( + r'player_quality_[0-9]{3,4}p\s*=\s*(["\'])(.+?)\1;', webpage): + video_urls.append(compat_urllib_parse_unquote(re.sub( + r'{0}\s*\+\s*{0}'.format(quote), '', video_url))) + if webpage.find('"encrypted":true') != -1: password = compat_urllib_parse_unquote_plus( self._search_regex(r'"video_title":"([^"]+)', webpage, 'password')) @@ -229,7 +234,14 @@ class PornHubPlaylistBaseIE(InfoExtractor): webpage = self._download_webpage(url, playlist_id) - entries = self._extract_entries(webpage) + # Only process container div with main playlist content skipping + # drop-down menu that uses similar pattern for videos (see + # https://github.com/rg3/youtube-dl/issues/11594). + container = self._search_regex( + r'(?s)(]+class=["\']container.+)', webpage, + 'container', default=webpage) + + entries = self._extract_entries(container) playlist = self._parse_json( self._search_regex( @@ -243,12 +255,12 @@ class PornHubPlaylistBaseIE(InfoExtractor): class PornHubPlaylistIE(PornHubPlaylistBaseIE): _VALID_URL = r'https?://(?:www\.)?pornhub\.com/playlist/(?P\d+)' _TESTS = [{ - 'url': 'http://www.pornhub.com/playlist/6201671', + 'url': 'http://www.pornhub.com/playlist/4667351', 'info_dict': { - 'id': '6201671', - 'title': 'P0p4', + 'id': '4667351', + 'title': 'Nataly Hot', }, - 'playlist_mincount': 35, + 'playlist_mincount': 2, }] diff --git a/youtube_dl/extractor/pornotube.py b/youtube_dl/extractor/pornotube.py index 63816c3..1b5b9a3 100644 --- a/youtube_dl/extractor/pornotube.py +++ b/youtube_dl/extractor/pornotube.py @@ -19,7 +19,7 @@ class PornotubeIE(InfoExtractor): 'description': 'md5:a8304bef7ef06cb4ab476ca6029b01b0', 'categories': ['Adult Humor', 'Blondes'], 'uploader': 'Alpha Blue Archives', - 'thumbnail': 're:^https?://.*\\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'timestamp': 1417582800, 'age_limit': 18, } diff --git a/youtube_dl/extractor/pornovoisines.py b/youtube_dl/extractor/pornovoisines.py index 58f557e..b6b7106 100644 --- a/youtube_dl/extractor/pornovoisines.py +++ b/youtube_dl/extractor/pornovoisines.py @@ -23,7 +23,7 @@ class PornoVoisinesIE(InfoExtractor): 'ext': 'mp4', 'title': 'Recherche appartement', 'description': 'md5:fe10cb92ae2dd3ed94bb4080d11ff493', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'upload_date': '20140925', 'duration': 120, 'view_count': int, diff --git a/youtube_dl/extractor/pornoxo.py b/youtube_dl/extractor/pornoxo.py index 3c9087f..1a0cce7 100644 --- a/youtube_dl/extractor/pornoxo.py +++ b/youtube_dl/extractor/pornoxo.py @@ -20,7 +20,7 @@ class PornoXOIE(JWPlatformBaseIE): 'display_id': 'striptease-from-sexy-secretary', 'description': 'md5:0ee35252b685b3883f4a1d38332f9980', 'categories': list, # NSFW - 'thumbnail': 're:https?://.*\.jpg$', + 'thumbnail': r're:https?://.*\.jpg$', 'age_limit': 18, } } diff --git a/youtube_dl/extractor/presstv.py b/youtube_dl/extractor/presstv.py index 2da93ed..b5c2792 100644 --- a/youtube_dl/extractor/presstv.py +++ b/youtube_dl/extractor/presstv.py @@ -19,7 +19,7 @@ class PressTVIE(InfoExtractor): 'ext': 'mp4', 'title': 'Organic mattresses used to clean waste water', 'upload_date': '20160409', - 'thumbnail': 're:^https?://.*\.jpg', + 'thumbnail': r're:^https?://.*\.jpg', 'description': 'md5:20002e654bbafb6908395a5c0cfcd125' } } diff --git a/youtube_dl/extractor/promptfile.py b/youtube_dl/extractor/promptfile.py index d40cca0..23ac93d 100644 --- a/youtube_dl/extractor/promptfile.py +++ b/youtube_dl/extractor/promptfile.py @@ -20,7 +20,7 @@ class PromptFileIE(InfoExtractor): 'id': '86D1CE8462-576CAAE416', 'ext': 'mp4', 'title': 'oceans.mp4', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', } } diff --git a/youtube_dl/extractor/prosiebensat1.py b/youtube_dl/extractor/prosiebensat1.py index 7cc07a2..5091d84 100644 --- a/youtube_dl/extractor/prosiebensat1.py +++ b/youtube_dl/extractor/prosiebensat1.py @@ -85,6 +85,9 @@ class ProSiebenSat1BaseIE(InfoExtractor): formats.extend(self._extract_m3u8_formats( source_url, clip_id, 'mp4', 'm3u8_native', m3u8_id='hls', fatal=False)) + elif mimetype == 'application/dash+xml': + formats.extend(self._extract_mpd_formats( + source_url, clip_id, mpd_id='dash', fatal=False)) else: tbr = fix_bitrate(source['bitrate']) if protocol in ('rtmp', 'rtmpe'): @@ -144,16 +147,12 @@ class ProSiebenSat1IE(ProSiebenSat1BaseIE): 'url': 'http://www.prosieben.de/tv/circus-halligalli/videos/218-staffel-2-episode-18-jahresrueckblick-ganze-folge', 'info_dict': { 'id': '2104602', - 'ext': 'flv', + 'ext': 'mp4', 'title': 'Episode 18 - Staffel 2', 'description': 'md5:8733c81b702ea472e069bc48bb658fc1', 'upload_date': '20131231', 'duration': 5845.04, }, - 'params': { - # rtmp download - 'skip_download': True, - }, }, { 'url': 'http://www.prosieben.de/videokatalog/Gesellschaft/Leben/Trends/video-Lady-Umstyling-f%C3%BCr-Audrina-Rebekka-Audrina-Fergen-billig-aussehen-Battal-Modica-700544.html', @@ -255,7 +254,7 @@ class ProSiebenSat1IE(ProSiebenSat1BaseIE): 'url': 'http://www.the-voice-of-germany.de/video/31-andreas-kuemmert-rocket-man-clip', 'info_dict': { 'id': '2572814', - 'ext': 'flv', + 'ext': 'mp4', 'title': 'Andreas Kümmert: Rocket Man', 'description': 'md5:6ddb02b0781c6adf778afea606652e38', 'upload_date': '20131017', @@ -269,7 +268,7 @@ class ProSiebenSat1IE(ProSiebenSat1BaseIE): 'url': 'http://www.fem.com/wellness/videos/wellness-video-clip-kurztripps-zum-valentinstag.html', 'info_dict': { 'id': '2156342', - 'ext': 'flv', + 'ext': 'mp4', 'title': 'Kurztrips zum Valentinstag', 'description': 'Romantischer Kurztrip zum Valentinstag? Nina Heinemann verrät, was sich hier wirklich lohnt.', 'duration': 307.24, @@ -286,12 +285,13 @@ class ProSiebenSat1IE(ProSiebenSat1BaseIE): 'description': 'md5:63b8963e71f481782aeea877658dec84', }, 'playlist_count': 2, + 'skip': 'This video is unavailable', }, { 'url': 'http://www.7tv.de/circus-halligalli/615-best-of-circus-halligalli-ganze-folge', 'info_dict': { 'id': '4187506', - 'ext': 'flv', + 'ext': 'mp4', 'title': 'Best of Circus HalliGalli', 'description': 'md5:8849752efd90b9772c9db6fdf87fb9e9', 'upload_date': '20151229', @@ -372,7 +372,9 @@ class ProSiebenSat1IE(ProSiebenSat1BaseIE): title = self._html_search_regex(self._TITLE_REGEXES, webpage, 'title') info = self._extract_video_info(url, clip_id) description = self._html_search_regex( - self._DESCRIPTION_REGEXES, webpage, 'description', fatal=False) + self._DESCRIPTION_REGEXES, webpage, 'description', default=None) + if description is None: + description = self._og_search_description(webpage) thumbnail = self._og_search_thumbnail(webpage) upload_date = unified_strdate(self._html_search_regex( self._UPLOAD_DATE_REGEXES, webpage, 'upload date', default=None)) @@ -391,7 +393,7 @@ class ProSiebenSat1IE(ProSiebenSat1BaseIE): self._PLAYLIST_ID_REGEXES, webpage, 'playlist id') playlist = self._parse_json( self._search_regex( - 'var\s+contentResources\s*=\s*(\[.+?\]);\s*rtmp://[^/]+/[^/]+)/(?P[^?]+)(?P\?.+)', f_url) + if mobj: + f.update({ + 'url': mobj.group('url') + mobj.group('auth'), + 'play_path': mobj.group('playpath'), + }) + formats.append(f) if protocol == 'rtsp': base_url = self._search_regex( r'rtsp://([^?]+)', f_url, 'base url', default=None) diff --git a/youtube_dl/extractor/radiode.py b/youtube_dl/extractor/radiode.py index aa5f6f8..2c06c8b 100644 --- a/youtube_dl/extractor/radiode.py +++ b/youtube_dl/extractor/radiode.py @@ -13,7 +13,7 @@ class RadioDeIE(InfoExtractor): 'ext': 'mp3', 'title': 're:^NDR 2 [0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}$', 'description': 'md5:591c49c702db1a33751625ebfb67f273', - 'thumbnail': 're:^https?://.*\.png', + 'thumbnail': r're:^https?://.*\.png', 'is_live': True, }, 'params': { diff --git a/youtube_dl/extractor/radiojavan.py b/youtube_dl/extractor/radiojavan.py index ec4fa6e..a53ad97 100644 --- a/youtube_dl/extractor/radiojavan.py +++ b/youtube_dl/extractor/radiojavan.py @@ -18,7 +18,7 @@ class RadioJavanIE(InfoExtractor): 'id': 'chaartaar-ashoobam', 'ext': 'mp4', 'title': 'Chaartaar - Ashoobam', - 'thumbnail': 're:^https?://.*\.jpe?g$', + 'thumbnail': r're:^https?://.*\.jpe?g$', 'upload_date': '20150215', 'view_count': int, 'like_count': int, diff --git a/youtube_dl/extractor/rai.py b/youtube_dl/extractor/rai.py index dc640b1..41afbd9 100644 --- a/youtube_dl/extractor/rai.py +++ b/youtube_dl/extractor/rai.py @@ -120,7 +120,7 @@ class RaiTVIE(RaiBaseIE): 'description': 'md5:f27c544694cacb46a078db84ec35d2d9', 'upload_date': '20140407', 'duration': 6160, - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', } }, { @@ -133,7 +133,7 @@ class RaiTVIE(RaiBaseIE): 'title': 'TG PRIMO TEMPO', 'upload_date': '20140612', 'duration': 1758, - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', }, 'skip': 'Geo-restricted to Italy', }, @@ -169,7 +169,7 @@ class RaiTVIE(RaiBaseIE): 'description': 'md5:364b604f7db50594678f483353164fb8', 'upload_date': '20140923', 'duration': 386, - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', } }, ] diff --git a/youtube_dl/extractor/rbmaradio.py b/youtube_dl/extractor/rbmaradio.py index 471928e..53b82fb 100644 --- a/youtube_dl/extractor/rbmaradio.py +++ b/youtube_dl/extractor/rbmaradio.py @@ -22,7 +22,7 @@ class RBMARadioIE(InfoExtractor): 'ext': 'mp3', 'title': 'Main Stage - Ford & Lopatin', 'description': 'md5:4f340fb48426423530af5a9d87bd7b91', - 'thumbnail': 're:^https?://.*\.jpg', + 'thumbnail': r're:^https?://.*\.jpg', 'duration': 2452, 'timestamp': 1307103164, 'upload_date': '20110603', diff --git a/youtube_dl/extractor/reuters.py b/youtube_dl/extractor/reuters.py index 961d504..9dc482d 100644 --- a/youtube_dl/extractor/reuters.py +++ b/youtube_dl/extractor/reuters.py @@ -32,7 +32,7 @@ class ReutersIE(InfoExtractor): webpage, 'video data')) def get_json_value(key, fatal=False): - return self._search_regex('"%s"\s*:\s*"([^"]+)"' % key, video_data, key, fatal=fatal) + return self._search_regex(r'"%s"\s*:\s*"([^"]+)"' % key, video_data, key, fatal=fatal) title = unescapeHTML(get_json_value('title', fatal=True)) mmid, fid = re.search(r',/(\d+)\?f=(\d+)', get_json_value('flv', fatal=True)).groups() diff --git a/youtube_dl/extractor/reverbnation.py b/youtube_dl/extractor/reverbnation.py index 4875009..4cb99c2 100644 --- a/youtube_dl/extractor/reverbnation.py +++ b/youtube_dl/extractor/reverbnation.py @@ -18,7 +18,7 @@ class ReverbNationIE(InfoExtractor): 'title': 'MONA LISA', 'uploader': 'ALKILADOS', 'uploader_id': '216429', - 'thumbnail': 're:^https?://.*\.jpg', + 'thumbnail': r're:^https?://.*\.jpg', }, }] diff --git a/youtube_dl/extractor/ro220.py b/youtube_dl/extractor/ro220.py index 962b524..69934ef 100644 --- a/youtube_dl/extractor/ro220.py +++ b/youtube_dl/extractor/ro220.py @@ -14,7 +14,7 @@ class Ro220IE(InfoExtractor): 'id': 'LYV6doKo7f', 'ext': 'mp4', 'title': 'Luati-le Banii sez 4 ep 1', - 'description': 're:^Iata-ne reveniti dupa o binemeritata vacanta\. +Va astept si pe Facebook cu pareri si comentarii.$', + 'description': r're:^Iata-ne reveniti dupa o binemeritata vacanta\. +Va astept si pe Facebook cu pareri si comentarii.$', } } diff --git a/youtube_dl/extractor/rockstargames.py b/youtube_dl/extractor/rockstargames.py index 48128e2..cd6904b 100644 --- a/youtube_dl/extractor/rockstargames.py +++ b/youtube_dl/extractor/rockstargames.py @@ -18,7 +18,7 @@ class RockstarGamesIE(InfoExtractor): 'ext': 'mp4', 'title': 'Further Adventures in Finance and Felony Trailer', 'description': 'md5:6d31f55f30cb101b5476c4a379e324a3', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'timestamp': 1464876000, 'upload_date': '20160602', } diff --git a/youtube_dl/extractor/roosterteeth.py b/youtube_dl/extractor/roosterteeth.py index f5b2f56..46dfc78 100644 --- a/youtube_dl/extractor/roosterteeth.py +++ b/youtube_dl/extractor/roosterteeth.py @@ -26,7 +26,7 @@ class RoosterTeethIE(InfoExtractor): 'ext': 'mp4', 'title': 'Million Dollars, But...: Million Dollars, But... The Game Announcement', 'description': 'md5:0cc3b21986d54ed815f5faeccd9a9ca5', - 'thumbnail': 're:^https?://.*\.png$', + 'thumbnail': r're:^https?://.*\.png$', 'series': 'Million Dollars, But...', 'episode': 'Million Dollars, But... The Game Announcement', 'comment_count': int, diff --git a/youtube_dl/extractor/rottentomatoes.py b/youtube_dl/extractor/rottentomatoes.py index 1d404d2..14c8e82 100644 --- a/youtube_dl/extractor/rottentomatoes.py +++ b/youtube_dl/extractor/rottentomatoes.py @@ -14,7 +14,7 @@ class RottenTomatoesIE(InfoExtractor): 'ext': 'mp4', 'title': 'Toy Story 3', 'description': 'From the creators of the beloved TOY STORY films, comes a story that will reunite the gang in a whole new way.', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', }, } diff --git a/youtube_dl/extractor/rte.py b/youtube_dl/extractor/rte.py index ebe563e..a6fac6c 100644 --- a/youtube_dl/extractor/rte.py +++ b/youtube_dl/extractor/rte.py @@ -4,118 +4,31 @@ from __future__ import unicode_literals import re from .common import InfoExtractor +from ..compat import compat_HTTPError from ..utils import ( float_or_none, parse_iso8601, unescapeHTML, + ExtractorError, ) -class RteIE(InfoExtractor): - IE_NAME = 'rte' - IE_DESC = 'Raidió Teilifís Éireann TV' - _VALID_URL = r'https?://(?:www\.)?rte\.ie/player/[^/]{2,3}/show/[^/]+/(?P[0-9]+)' - _TEST = { - 'url': 'http://www.rte.ie/player/ie/show/iwitness-862/10478715/', - 'info_dict': { - 'id': '10478715', - 'ext': 'flv', - 'title': 'Watch iWitness online', - 'thumbnail': 're:^https?://.*\.jpg$', - 'description': 'iWitness : The spirit of Ireland, one voice and one minute at a time.', - 'duration': 60.046, - }, - 'params': { - 'skip_download': 'f4m fails with --test atm' - } - } - - def _real_extract(self, url): - video_id = self._match_id(url) - webpage = self._download_webpage(url, video_id) - - title = self._og_search_title(webpage) - description = self._html_search_meta('description', webpage, 'description') - duration = float_or_none(self._html_search_meta( - 'duration', webpage, 'duration', fatal=False), 1000) - - thumbnail = None - thumbnail_meta = self._html_search_meta('thumbnail', webpage) - if thumbnail_meta: - thumbnail_id = self._search_regex( - r'uri:irus:(.+)', thumbnail_meta, - 'thumbnail id', fatal=False) - if thumbnail_id: - thumbnail = 'http://img.rasset.ie/%s.jpg' % thumbnail_id - - feeds_url = self._html_search_meta('feeds-prefix', webpage, 'feeds url') + video_id - json_string = self._download_json(feeds_url, video_id) - - # f4m_url = server + relative_url - f4m_url = json_string['shows'][0]['media:group'][0]['rte:server'] + json_string['shows'][0]['media:group'][0]['url'] - f4m_formats = self._extract_f4m_formats(f4m_url, video_id) - self._sort_formats(f4m_formats) - - return { - 'id': video_id, - 'title': title, - 'formats': f4m_formats, - 'description': description, - 'thumbnail': thumbnail, - 'duration': duration, - } - - -class RteRadioIE(InfoExtractor): - IE_NAME = 'rte:radio' - IE_DESC = 'Raidió Teilifís Éireann radio' - # Radioplayer URLs have two distinct specifier formats, - # the old format #!rii=:::: - # the new format #!rii=b____ - # where the IDs are int/empty, the date is DD-MM-YYYY, and the specifier may be truncated. - # An uniquely defines an individual recording, and is the only part we require. - _VALID_URL = r'https?://(?:www\.)?rte\.ie/radio/utils/radioplayer/rteradioweb\.html#!rii=(?:b?[0-9]*)(?:%3A|:|%5F|_)(?P[0-9]+)' - - _TESTS = [{ - # Old-style player URL; HLS and RTMPE formats - 'url': 'http://www.rte.ie/radio/utils/radioplayer/rteradioweb.html#!rii=16:10507902:2414:27-12-2015:', - 'info_dict': { - 'id': '10507902', - 'ext': 'mp4', - 'title': 'Gloria', - 'thumbnail': 're:^https?://.*\.jpg$', - 'description': 'md5:9ce124a7fb41559ec68f06387cabddf0', - 'timestamp': 1451203200, - 'upload_date': '20151227', - 'duration': 7230.0, - }, - 'params': { - 'skip_download': 'f4m fails with --test atm' - } - }, { - # New-style player URL; RTMPE formats only - 'url': 'http://rte.ie/radio/utils/radioplayer/rteradioweb.html#!rii=b16_3250678_8861_06-04-2012_', - 'info_dict': { - 'id': '3250678', - 'ext': 'flv', - 'title': 'The Lyric Concert with Paul Herriott', - 'thumbnail': 're:^https?://.*\.jpg$', - 'description': '', - 'timestamp': 1333742400, - 'upload_date': '20120406', - 'duration': 7199.016, - }, - 'params': { - 'skip_download': 'f4m fails with --test atm' - } - }] - +class RteBaseIE(InfoExtractor): def _real_extract(self, url): item_id = self._match_id(url) - json_string = self._download_json( - 'http://www.rte.ie/rteavgen/getplaylist/?type=web&format=json&id=' + item_id, - item_id) + try: + json_string = self._download_json( + 'http://www.rte.ie/rteavgen/getplaylist/?type=web&format=json&id=' + item_id, + item_id) + except ExtractorError as ee: + if isinstance(ee.cause, compat_HTTPError) and ee.cause.code == 404: + error_info = self._parse_json(ee.cause.read().decode(), item_id, fatal=False) + if error_info: + raise ExtractorError( + '%s said: %s' % (self.IE_NAME, error_info['message']), + expected=True) + raise # NB the string values in the JSON are stored using XML escaping(!) show = json_string['shows'][0] @@ -163,3 +76,67 @@ class RteRadioIE(InfoExtractor): 'duration': duration, 'formats': formats, } + + +class RteIE(RteBaseIE): + IE_NAME = 'rte' + IE_DESC = 'Raidió Teilifís Éireann TV' + _VALID_URL = r'https?://(?:www\.)?rte\.ie/player/[^/]{2,3}/show/[^/]+/(?P[0-9]+)' + _TEST = { + 'url': 'http://www.rte.ie/player/ie/show/iwitness-862/10478715/', + 'md5': '4a76eb3396d98f697e6e8110563d2604', + 'info_dict': { + 'id': '10478715', + 'ext': 'mp4', + 'title': 'iWitness', + 'thumbnail': r're:^https?://.*\.jpg$', + 'description': 'The spirit of Ireland, one voice and one minute at a time.', + 'duration': 60.046, + 'upload_date': '20151012', + 'timestamp': 1444694160, + }, + } + + +class RteRadioIE(RteBaseIE): + IE_NAME = 'rte:radio' + IE_DESC = 'Raidió Teilifís Éireann radio' + # Radioplayer URLs have two distinct specifier formats, + # the old format #!rii=:::: + # the new format #!rii=b____ + # where the IDs are int/empty, the date is DD-MM-YYYY, and the specifier may be truncated. + # An uniquely defines an individual recording, and is the only part we require. + _VALID_URL = r'https?://(?:www\.)?rte\.ie/radio/utils/radioplayer/rteradioweb\.html#!rii=(?:b?[0-9]*)(?:%3A|:|%5F|_)(?P[0-9]+)' + + _TESTS = [{ + # Old-style player URL; HLS and RTMPE formats + 'url': 'http://www.rte.ie/radio/utils/radioplayer/rteradioweb.html#!rii=16:10507902:2414:27-12-2015:', + 'md5': 'c79ccb2c195998440065456b69760411', + 'info_dict': { + 'id': '10507902', + 'ext': 'mp4', + 'title': 'Gloria', + 'thumbnail': r're:^https?://.*\.jpg$', + 'description': 'md5:9ce124a7fb41559ec68f06387cabddf0', + 'timestamp': 1451203200, + 'upload_date': '20151227', + 'duration': 7230.0, + }, + }, { + # New-style player URL; RTMPE formats only + 'url': 'http://rte.ie/radio/utils/radioplayer/rteradioweb.html#!rii=b16_3250678_8861_06-04-2012_', + 'info_dict': { + 'id': '3250678', + 'ext': 'flv', + 'title': 'The Lyric Concert with Paul Herriott', + 'thumbnail': r're:^https?://.*\.jpg$', + 'description': '', + 'timestamp': 1333742400, + 'upload_date': '20120406', + 'duration': 7199.016, + }, + 'params': { + # rtmp download + 'skip_download': True, + }, + }] diff --git a/youtube_dl/extractor/rtl2.py b/youtube_dl/extractor/rtl2.py index cb4ee88..721ee73 100644 --- a/youtube_dl/extractor/rtl2.py +++ b/youtube_dl/extractor/rtl2.py @@ -2,7 +2,9 @@ from __future__ import unicode_literals import re + from .common import InfoExtractor +from ..utils import int_or_none class RTL2IE(InfoExtractor): @@ -13,7 +15,7 @@ class RTL2IE(InfoExtractor): 'id': 'folge-203-0', 'ext': 'f4v', 'title': 'GRIP sucht den Sommerkönig', - 'description': 'Matthias, Det und Helge treten gegeneinander an.' + 'description': 'md5:e3adbb940fd3c6e76fa341b8748b562f' }, 'params': { # rtmp download @@ -25,7 +27,7 @@ class RTL2IE(InfoExtractor): 'id': '21040-anna-erwischt-alex', 'ext': 'mp4', 'title': 'Anna erwischt Alex!', - 'description': 'Anna ist Alex\' Tochter bei Köln 50667.' + 'description': 'Anna nimmt ihrem Vater nicht ab, dass er nicht spielt. Und tatsächlich erwischt sie ihn auf frischer Tat.' }, 'params': { # rtmp download @@ -52,34 +54,47 @@ class RTL2IE(InfoExtractor): r'vico_id\s*:\s*([0-9]+)', webpage, 'vico_id') vivi_id = self._html_search_regex( r'vivi_id\s*:\s*([0-9]+)', webpage, 'vivi_id') - info_url = 'http://www.rtl2.de/video/php/get_video.php?vico_id=' + vico_id + '&vivi_id=' + vivi_id - info = self._download_json(info_url, video_id) + info = self._download_json( + 'http://www.rtl2.de/sites/default/modules/rtl2/mediathek/php/get_video_jw.php', + video_id, query={ + 'vico_id': vico_id, + 'vivi_id': vivi_id, + }) video_info = info['video'] title = video_info['titel'] - description = video_info.get('beschreibung') - thumbnail = video_info.get('image') - download_url = video_info['streamurl'] - download_url = download_url.replace('\\', '') - stream_url = 'mp4:' + self._html_search_regex(r'ondemand/(.*)', download_url, 'stream URL') - rtmp_conn = ['S:connect', 'O:1', 'NS:pageUrl:' + url, 'NB:fpad:0', 'NN:videoFunction:1', 'O:0'] + formats = [] + + rtmp_url = video_info.get('streamurl') + if rtmp_url: + rtmp_url = rtmp_url.replace('\\', '') + stream_url = 'mp4:' + self._html_search_regex(r'/ondemand/(.+)', rtmp_url, 'stream URL') + rtmp_conn = ['S:connect', 'O:1', 'NS:pageUrl:' + url, 'NB:fpad:0', 'NN:videoFunction:1', 'O:0'] + + formats.append({ + 'format_id': 'rtmp', + 'url': rtmp_url, + 'play_path': stream_url, + 'player_url': 'http://www.rtl2.de/flashplayer/vipo_player.swf', + 'page_url': url, + 'flash_version': 'LNX 11,2,202,429', + 'rtmp_conn': rtmp_conn, + 'no_resume': True, + 'preference': 1, + }) + + m3u8_url = video_info.get('streamurl_hls') + if m3u8_url: + formats.extend(self._extract_akamai_formats(m3u8_url, video_id)) - formats = [{ - 'url': download_url, - 'play_path': stream_url, - 'player_url': 'http://www.rtl2.de/flashplayer/vipo_player.swf', - 'page_url': url, - 'flash_version': 'LNX 11,2,202,429', - 'rtmp_conn': rtmp_conn, - 'no_resume': True, - }] self._sort_formats(formats) return { 'id': video_id, 'title': title, - 'thumbnail': thumbnail, - 'description': description, + 'thumbnail': video_info.get('image'), + 'description': video_info.get('beschreibung'), + 'duration': int_or_none(video_info.get('duration')), 'formats': formats, } diff --git a/youtube_dl/extractor/rtlnl.py b/youtube_dl/extractor/rtlnl.py index f0250af..54076de 100644 --- a/youtube_dl/extractor/rtlnl.py +++ b/youtube_dl/extractor/rtlnl.py @@ -40,7 +40,7 @@ class RtlNlIE(InfoExtractor): 'ext': 'mp4', 'timestamp': 1424039400, 'title': 'RTL Nieuws - Nieuwe beelden Kopenhagen: chaos direct na aanslag', - 'thumbnail': 're:^https?://screenshots\.rtl\.nl/(?:[^/]+/)*sz=[0-9]+x[0-9]+/uuid=84ae5571-ac25-4225-ae0c-ef8d9efb2aed$', + 'thumbnail': r're:^https?://screenshots\.rtl\.nl/(?:[^/]+/)*sz=[0-9]+x[0-9]+/uuid=84ae5571-ac25-4225-ae0c-ef8d9efb2aed$', 'upload_date': '20150215', 'description': 'Er zijn nieuwe beelden vrijgegeven die vlak na de aanslag in Kopenhagen zijn gemaakt. Op de video is goed te zien hoe omstanders zich bekommeren om één van de slachtoffers, terwijl de eerste agenten ter plaatse komen.', } @@ -52,7 +52,7 @@ class RtlNlIE(InfoExtractor): 'id': 'f536aac0-1dc3-4314-920e-3bd1c5b3811a', 'ext': 'mp4', 'title': 'RTL Nieuws - Meer beelden van overval juwelier', - 'thumbnail': 're:^https?://screenshots\.rtl\.nl/(?:[^/]+/)*sz=[0-9]+x[0-9]+/uuid=f536aac0-1dc3-4314-920e-3bd1c5b3811a$', + 'thumbnail': r're:^https?://screenshots\.rtl\.nl/(?:[^/]+/)*sz=[0-9]+x[0-9]+/uuid=f536aac0-1dc3-4314-920e-3bd1c5b3811a$', 'timestamp': 1437233400, 'upload_date': '20150718', 'duration': 30.474, diff --git a/youtube_dl/extractor/rtp.py b/youtube_dl/extractor/rtp.py index 82b323c..533ee27 100644 --- a/youtube_dl/extractor/rtp.py +++ b/youtube_dl/extractor/rtp.py @@ -16,7 +16,7 @@ class RTPIE(InfoExtractor): 'ext': 'mp3', 'title': 'Paixões Cruzadas', 'description': 'As paixões musicais de António Cartaxo e António Macedo', - 'thumbnail': 're:^https?://.*\.jpg', + 'thumbnail': r're:^https?://.*\.jpg', }, 'params': { # rtmp download diff --git a/youtube_dl/extractor/rts.py b/youtube_dl/extractor/rts.py index 3cc3284..48f17b8 100644 --- a/youtube_dl/extractor/rts.py +++ b/youtube_dl/extractor/rts.py @@ -4,27 +4,24 @@ from __future__ import unicode_literals import re from .srgssr import SRGSSRIE -from ..compat import ( - compat_str, - compat_urllib_parse_urlparse, -) +from ..compat import compat_str from ..utils import ( int_or_none, parse_duration, parse_iso8601, unescapeHTML, - xpath_text, + determine_ext, ) class RTSIE(SRGSSRIE): IE_DESC = 'RTS.ch' - _VALID_URL = r'rts:(?P\d+)|https?://(?:www\.)?rts\.ch/(?:[^/]+/){2,}(?P[0-9]+)-(?P.+?)\.html' + _VALID_URL = r'rts:(?P\d+)|https?://(?:.+?\.)?rts\.ch/(?:[^/]+/){2,}(?P[0-9]+)-(?P.+?)\.html' _TESTS = [ { 'url': 'http://www.rts.ch/archives/tv/divers/3449373-les-enfants-terribles.html', - 'md5': 'f254c4b26fb1d3c183793d52bc40d3e7', + 'md5': 'ff7f8450a90cf58dacb64e29707b4a8e', 'info_dict': { 'id': '3449373', 'display_id': 'les-enfants-terribles', @@ -35,38 +32,20 @@ class RTSIE(SRGSSRIE): 'uploader': 'Divers', 'upload_date': '19680921', 'timestamp': -40280400, - 'thumbnail': 're:^https?://.*\.image', + 'thumbnail': r're:^https?://.*\.image', 'view_count': int, }, - 'params': { - # m3u8 download - 'skip_download': True, - } }, { 'url': 'http://www.rts.ch/emissions/passe-moi-les-jumelles/5624067-entre-ciel-et-mer.html', - 'md5': 'f1077ac5af686c76528dc8d7c5df29ba', 'info_dict': { - 'id': '5742494', - 'display_id': '5742494', - 'ext': 'mp4', - 'duration': 3720, - 'title': 'Les yeux dans les cieux - Mon homard au Canada', - 'description': 'md5:d22ee46f5cc5bac0912e5a0c6d44a9f7', - 'uploader': 'Passe-moi les jumelles', - 'upload_date': '20140404', - 'timestamp': 1396635300, - 'thumbnail': 're:^https?://.*\.image', - 'view_count': int, + 'id': '5624065', + 'title': 'Passe-moi les jumelles', }, - 'params': { - # m3u8 download - 'skip_download': True, - } + 'playlist_mincount': 4, }, { 'url': 'http://www.rts.ch/video/sport/hockey/5745975-1-2-kloten-fribourg-5-2-second-but-pour-gotteron-par-kwiatowski.html', - 'md5': 'b4326fecd3eb64a458ba73c73e91299d', 'info_dict': { 'id': '5745975', 'display_id': '1-2-kloten-fribourg-5-2-second-but-pour-gotteron-par-kwiatowski', @@ -77,14 +56,18 @@ class RTSIE(SRGSSRIE): 'uploader': 'Hockey', 'upload_date': '20140403', 'timestamp': 1396556882, - 'thumbnail': 're:^https?://.*\.image', + 'thumbnail': r're:^https?://.*\.image', 'view_count': int, }, + 'params': { + # m3u8 download + 'skip_download': True, + }, 'skip': 'Blocked outside Switzerland', }, { 'url': 'http://www.rts.ch/video/info/journal-continu/5745356-londres-cachee-par-un-epais-smog.html', - 'md5': '9f713382f15322181bb366cc8c3a4ff0', + 'md5': '1bae984fe7b1f78e94abc74e802ed99f', 'info_dict': { 'id': '5745356', 'display_id': 'londres-cachee-par-un-epais-smog', @@ -92,16 +75,12 @@ class RTSIE(SRGSSRIE): 'duration': 33, 'title': 'Londres cachée par un épais smog', 'description': 'Un important voile de smog recouvre Londres depuis mercredi, provoqué par la pollution et du sable du Sahara.', - 'uploader': 'Le Journal en continu', + 'uploader': 'L\'actu en vidéo', 'upload_date': '20140403', 'timestamp': 1396537322, - 'thumbnail': 're:^https?://.*\.image', + 'thumbnail': r're:^https?://.*\.image', 'view_count': int, }, - 'params': { - # m3u8 download - 'skip_download': True, - } }, { 'url': 'http://www.rts.ch/audio/couleur3/programmes/la-belle-video-de-stephane-laurenceau/5706148-urban-hippie-de-damien-krisl-03-04-2014.html', @@ -125,6 +104,10 @@ class RTSIE(SRGSSRIE): 'title': 'Hockey: Davos décroche son 31e titre de champion de Suisse', }, 'playlist_mincount': 5, + }, + { + 'url': 'http://pages.rts.ch/emissions/passe-moi-les-jumelles/5624065-entre-ciel-et-mer.html', + 'only_matching': True, } ] @@ -142,19 +125,32 @@ class RTSIE(SRGSSRIE): # media_id extracted out of URL is not always a real id if 'video' not in all_info and 'audio' not in all_info: - page = self._download_webpage(url, display_id) + entries = [] - # article with videos on rhs - videos = re.findall( - r']+class="content-item"[^>]*>\s*]+data-video-urn="urn:([^"]+)"', - page) - if not videos: + for item in all_info.get('items', []): + item_url = item.get('url') + if not item_url: + continue + entries.append(self.url_result(item_url, 'RTS')) + + if not entries: + page, urlh = self._download_webpage_handle(url, display_id) + if re.match(self._VALID_URL, urlh.geturl()).group('id') != media_id: + return self.url_result(urlh.geturl(), 'RTS') + + # article with videos on rhs videos = re.findall( - r'(?s)]+class="srg-player"[^>]+src="[^"]+urn:([^"]+)"', + r']+class="content-item"[^>]*>\s*]+data-video-urn="urn:([^"]+)"', page) - if videos: - entries = [self.url_result('srgssr:%s' % video_urn, 'SRGSSR') for video_urn in videos] - return self.playlist_result(entries, media_id, self._og_search_title(page)) + if not videos: + videos = re.findall( + r'(?s)]+class="srg-player"[^>]+src="[^"]+urn:([^"]+)"', + page) + if videos: + entries = [self.url_result('srgssr:%s' % video_urn, 'SRGSSR') for video_urn in videos] + + if entries: + return self.playlist_result(entries, media_id, all_info.get('title')) internal_id = self._html_search_regex( r'<(?:video|audio) data-id="([0-9]+)"', page, @@ -168,36 +164,29 @@ class RTSIE(SRGSSRIE): info = all_info['video']['JSONinfo'] if 'video' in all_info else all_info['audio'] - upload_timestamp = parse_iso8601(info.get('broadcast_date')) - duration = info.get('duration') or info.get('cutout') or info.get('cutduration') - if isinstance(duration, compat_str): - duration = parse_duration(duration) - view_count = info.get('plays') - thumbnail = unescapeHTML(info.get('preview_image_url')) + title = info['title'] def extract_bitrate(url): return int_or_none(self._search_regex( r'-([0-9]+)k\.', url, 'bitrate', default=None)) formats = [] - for format_id, format_url in info['streams'].items(): - if format_id == 'hds_sd' and 'hds' in info['streams']: + streams = info.get('streams', {}) + for format_id, format_url in streams.items(): + if format_id == 'hds_sd' and 'hds' in streams: continue - if format_id == 'hls_sd' and 'hls' in info['streams']: + if format_id == 'hls_sd' and 'hls' in streams: continue - if format_url.endswith('.f4m'): - token = self._download_xml( - 'http://tp.srgssr.ch/token/akahd.xml?stream=%s/*' % compat_urllib_parse_urlparse(format_url).path, - media_id, 'Downloading %s token' % format_id) - auth_params = xpath_text(token, './/authparams', 'auth params') - if not auth_params: - continue - formats.extend(self._extract_f4m_formats( - '%s?%s&hdcore=3.4.0&plugin=aasp-3.4.0.132.66' % (format_url, auth_params), - media_id, f4m_id=format_id, fatal=False)) - elif format_url.endswith('.m3u8'): - formats.extend(self._extract_m3u8_formats( - format_url, media_id, 'mp4', 'm3u8_native', m3u8_id=format_id, fatal=False)) + ext = determine_ext(format_url) + if ext in ('m3u8', 'f4m'): + format_url = self._get_tokenized_src(format_url, media_id, format_id) + if ext == 'f4m': + formats.extend(self._extract_f4m_formats( + format_url + ('?' if '?' not in format_url else '&') + 'hdcore=3.4.0', + media_id, f4m_id=format_id, fatal=False)) + else: + formats.extend(self._extract_m3u8_formats( + format_url, media_id, 'mp4', 'm3u8_native', m3u8_id=format_id, fatal=False)) else: formats.append({ 'format_id': format_id, @@ -205,25 +194,37 @@ class RTSIE(SRGSSRIE): 'tbr': extract_bitrate(format_url), }) - if 'media' in info: - formats.extend([{ - 'format_id': '%s-%sk' % (media['ext'], media['rate']), - 'url': 'http://download-video.rts.ch/%s' % media['url'], - 'tbr': media['rate'] or extract_bitrate(media['url']), - } for media in info['media'] if media.get('rate')]) + for media in info.get('media', []): + media_url = media.get('url') + if not media_url or re.match(r'https?://', media_url): + continue + rate = media.get('rate') + ext = media.get('ext') or determine_ext(media_url, 'mp4') + format_id = ext + if rate: + format_id += '-%dk' % rate + formats.append({ + 'format_id': format_id, + 'url': 'http://download-video.rts.ch/' + media_url, + 'tbr': rate or extract_bitrate(media_url), + }) self._check_formats(formats, media_id) self._sort_formats(formats) + duration = info.get('duration') or info.get('cutout') or info.get('cutduration') + if isinstance(duration, compat_str): + duration = parse_duration(duration) + return { 'id': media_id, 'display_id': display_id, 'formats': formats, - 'title': info['title'], + 'title': title, 'description': info.get('intro'), 'duration': duration, - 'view_count': view_count, + 'view_count': int_or_none(info.get('plays')), 'uploader': info.get('programName'), - 'timestamp': upload_timestamp, - 'thumbnail': thumbnail, + 'timestamp': parse_iso8601(info.get('broadcast_date')), + 'thumbnail': unescapeHTML(info.get('preview_image_url')), } diff --git a/youtube_dl/extractor/rtve.py b/youtube_dl/extractor/rtve.py index 6a43b03..746677a 100644 --- a/youtube_dl/extractor/rtve.py +++ b/youtube_dl/extractor/rtve.py @@ -209,7 +209,10 @@ class RTVELiveIE(InfoExtractor): title += ' ' + time.strftime('%Y-%m-%dZ%H%M%S', start_time) vidplayer_id = self._search_regex( - r'playerId=player([0-9]+)', webpage, 'internal video ID') + (r'playerId=player([0-9]+)', + r'class=["\'].*?\blive_mod\b.*?["\'][^>]+data-assetid=["\'](\d+)', + r'data-id=["\'](\d+)'), + webpage, 'internal video ID') png_url = 'http://www.rtve.es/ztnr/movil/thumbnail/amonet/videos/%s.png' % vidplayer_id png = self._download_webpage(png_url, video_id, 'Downloading url information') m3u8_url = _decrypt_url(png) diff --git a/youtube_dl/extractor/rtvnh.py b/youtube_dl/extractor/rtvnh.py index f6454c6..6a00f70 100644 --- a/youtube_dl/extractor/rtvnh.py +++ b/youtube_dl/extractor/rtvnh.py @@ -14,7 +14,7 @@ class RTVNHIE(InfoExtractor): 'id': '131946', 'ext': 'mp4', 'title': 'Grote zoektocht in zee bij Zandvoort naar vermiste vrouw', - 'thumbnail': 're:^https?:.*\.jpg$' + 'thumbnail': r're:^https?:.*\.jpg$' } } diff --git a/youtube_dl/extractor/rudo.py b/youtube_dl/extractor/rudo.py index 9a330c1..3bfe934 100644 --- a/youtube_dl/extractor/rudo.py +++ b/youtube_dl/extractor/rudo.py @@ -28,7 +28,7 @@ class RudoIE(JWPlatformBaseIE): @classmethod def _extract_url(self, webpage): mobj = re.search( - ']+src=(?P[\'"])(?P(?:https?:)?//rudo\.video/vod/[0-9a-zA-Z]+)(?P=q1)', + r']+src=(?P[\'"])(?P(?:https?:)?//rudo\.video/vod/[0-9a-zA-Z]+)(?P=q1)', webpage) if mobj: return mobj.group('url') diff --git a/youtube_dl/extractor/ruhd.py b/youtube_dl/extractor/ruhd.py index ce631b4..2b830cf 100644 --- a/youtube_dl/extractor/ruhd.py +++ b/youtube_dl/extractor/ruhd.py @@ -14,7 +14,7 @@ class RUHDIE(InfoExtractor): 'ext': 'divx', 'title': 'КОТ бааааам', 'description': 'классный кот)', - 'thumbnail': 're:^http://.*\.jpg$', + 'thumbnail': r're:^http://.*\.jpg$', } } diff --git a/youtube_dl/extractor/ruutu.py b/youtube_dl/extractor/ruutu.py index 6db3e3e..20d0175 100644 --- a/youtube_dl/extractor/ruutu.py +++ b/youtube_dl/extractor/ruutu.py @@ -23,7 +23,7 @@ class RuutuIE(InfoExtractor): 'ext': 'mp4', 'title': 'Oletko aina halunnut tietää mitä tapahtuu vain hetki ennen lähetystä? - Nyt se selvisi!', 'description': 'md5:cfc6ccf0e57a814360df464a91ff67d6', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'duration': 114, 'age_limit': 0, }, @@ -36,7 +36,7 @@ class RuutuIE(InfoExtractor): 'ext': 'mp4', 'title': 'Superpesis: katso koko kausi Ruudussa', 'description': 'md5:bfb7336df2a12dc21d18fa696c9f8f23', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'duration': 40, 'age_limit': 0, }, @@ -49,7 +49,7 @@ class RuutuIE(InfoExtractor): 'ext': 'mp4', 'title': 'Osa 1: Mikael Jungner', 'description': 'md5:7d90f358c47542e3072ff65d7b1bcffe', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'age_limit': 0, }, }, @@ -81,6 +81,9 @@ class RuutuIE(InfoExtractor): elif ext == 'f4m': formats.extend(self._extract_f4m_formats( video_url, video_id, f4m_id='hds', fatal=False)) + elif ext == 'mpd': + formats.extend(self._extract_mpd_formats( + video_url, video_id, mpd_id='dash', fatal=False)) else: proto = compat_urllib_parse_urlparse(video_url).scheme if not child.tag.startswith('HTTP') and proto != 'rtmp': diff --git a/youtube_dl/extractor/savefrom.py b/youtube_dl/extractor/savefrom.py index 5b7367b..30f9cf8 100644 --- a/youtube_dl/extractor/savefrom.py +++ b/youtube_dl/extractor/savefrom.py @@ -20,7 +20,7 @@ class SaveFromIE(InfoExtractor): 'upload_date': '20120816', 'uploader': 'Howcast', 'uploader_id': 'Howcast', - 'description': 're:(?s).* Hi, my name is Rene Dreifuss\. And I\'m here to show you some MMA.*', + 'description': r're:(?s).* Hi, my name is Rene Dreifuss\. And I\'m here to show you some MMA.*', }, 'params': { 'skip_download': True diff --git a/youtube_dl/extractor/sbs.py b/youtube_dl/extractor/sbs.py index 43131fb..845712a 100644 --- a/youtube_dl/extractor/sbs.py +++ b/youtube_dl/extractor/sbs.py @@ -22,7 +22,7 @@ class SBSIE(InfoExtractor): 'ext': 'mp4', 'title': 'Dingo Conservation (The Feed)', 'description': 'md5:f250a9856fca50d22dec0b5b8015f8a5', - 'thumbnail': 're:http://.*\.jpg', + 'thumbnail': r're:http://.*\.jpg', 'duration': 308, 'timestamp': 1408613220, 'upload_date': '20140821', diff --git a/youtube_dl/extractor/screencast.py b/youtube_dl/extractor/screencast.py index ed9de96..62a6a83 100644 --- a/youtube_dl/extractor/screencast.py +++ b/youtube_dl/extractor/screencast.py @@ -21,7 +21,7 @@ class ScreencastIE(InfoExtractor): 'ext': 'm4v', 'title': 'Color Measurement with Ocean Optics Spectrometers', 'description': 'md5:240369cde69d8bed61349a199c5fb153', - 'thumbnail': 're:^https?://.*\.(?:gif|jpg)$', + 'thumbnail': r're:^https?://.*\.(?:gif|jpg)$', } }, { 'url': 'http://www.screencast.com/t/V2uXehPJa1ZI', @@ -31,7 +31,7 @@ class ScreencastIE(InfoExtractor): 'ext': 'mov', 'title': 'The Amadeus Spectrometer', 'description': 're:^In this video, our friends at.*To learn more about Amadeus, visit', - 'thumbnail': 're:^https?://.*\.(?:gif|jpg)$', + 'thumbnail': r're:^https?://.*\.(?:gif|jpg)$', } }, { 'url': 'http://www.screencast.com/t/aAB3iowa', @@ -41,7 +41,7 @@ class ScreencastIE(InfoExtractor): 'ext': 'mp4', 'title': 'Google Earth Export', 'description': 'Provides a demo of a CommunityViz export to Google Earth, one of the 3D viewing options.', - 'thumbnail': 're:^https?://.*\.(?:gif|jpg)$', + 'thumbnail': r're:^https?://.*\.(?:gif|jpg)$', } }, { 'url': 'http://www.screencast.com/t/X3ddTrYh', @@ -51,7 +51,7 @@ class ScreencastIE(InfoExtractor): 'ext': 'wmv', 'title': 'Toolkit 6 User Group Webinar (2014-03-04) - Default Judgment and First Impression', 'description': 'md5:7b9f393bc92af02326a5c5889639eab0', - 'thumbnail': 're:^https?://.*\.(?:gif|jpg)$', + 'thumbnail': r're:^https?://.*\.(?:gif|jpg)$', } }, { 'url': 'http://screencast.com/t/aAB3iowa', diff --git a/youtube_dl/extractor/screencastomatic.py b/youtube_dl/extractor/screencastomatic.py index 7a88a42..94a2a37 100644 --- a/youtube_dl/extractor/screencastomatic.py +++ b/youtube_dl/extractor/screencastomatic.py @@ -14,7 +14,7 @@ class ScreencastOMaticIE(JWPlatformBaseIE): 'id': 'c2lD3BeOPl', 'ext': 'mp4', 'title': 'Welcome to 3-4 Philosophy @ DECV!', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'description': 'as the title says! also: some general info re 1) VCE philosophy and 2) distance learning.', 'duration': 369.163, } diff --git a/youtube_dl/extractor/screenjunkies.py b/youtube_dl/extractor/screenjunkies.py deleted file mode 100644 index 02e574c..0000000 --- a/youtube_dl/extractor/screenjunkies.py +++ /dev/null @@ -1,138 +0,0 @@ -from __future__ import unicode_literals - -import re - -from .common import InfoExtractor -from ..compat import compat_str -from ..utils import ( - int_or_none, - parse_age_limit, -) - - -class ScreenJunkiesIE(InfoExtractor): - _VALID_URL = r'https?://(?:www\.)?screenjunkies\.com/video/(?P[^/]+?)(?:-(?P\d+))?(?:[/?#&]|$)' - _TESTS = [{ - 'url': 'http://www.screenjunkies.com/video/best-quentin-tarantino-movie-2841915', - 'md5': '5c2b686bec3d43de42bde9ec047536b0', - 'info_dict': { - 'id': '2841915', - 'display_id': 'best-quentin-tarantino-movie', - 'ext': 'mp4', - 'title': 'Best Quentin Tarantino Movie', - 'thumbnail': 're:^https?://.*\.jpg', - 'duration': 3671, - 'age_limit': 13, - 'tags': list, - }, - }, { - 'url': 'http://www.screenjunkies.com/video/honest-trailers-the-dark-knight', - 'info_dict': { - 'id': '2348808', - 'display_id': 'honest-trailers-the-dark-knight', - 'ext': 'mp4', - 'title': "Honest Trailers: 'The Dark Knight'", - 'thumbnail': 're:^https?://.*\.jpg', - 'age_limit': 10, - 'tags': list, - }, - }, { - # requires subscription but worked around - 'url': 'http://www.screenjunkies.com/video/knocking-dead-ep-1-the-show-so-far-3003285', - 'info_dict': { - 'id': '3003285', - 'display_id': 'knocking-dead-ep-1-the-show-so-far', - 'ext': 'mp4', - 'title': 'Knocking Dead Ep 1: State of The Dead Recap', - 'thumbnail': 're:^https?://.*\.jpg', - 'duration': 3307, - 'age_limit': 13, - 'tags': list, - }, - }] - - _DEFAULT_BITRATES = (48, 150, 496, 864, 2240) - - def _real_extract(self, url): - mobj = re.match(self._VALID_URL, url) - video_id = mobj.group('id') - display_id = mobj.group('display_id') - - if not video_id: - webpage = self._download_webpage(url, display_id) - video_id = self._search_regex( - (r'src=["\']/embed/(\d+)', r'data-video-content-id=["\'](\d+)'), - webpage, 'video id') - - webpage = self._download_webpage( - 'http://www.screenjunkies.com/embed/%s' % video_id, - display_id, 'Downloading video embed page') - embed_vars = self._parse_json( - self._search_regex( - r'(?s)embedVars\s*=\s*({.+?})\s*', webpage, 'embed vars'), - display_id) - - title = embed_vars['contentName'] - - formats = [] - bitrates = [] - for f in embed_vars.get('media', []): - if not f.get('uri') or f.get('mediaPurpose') != 'play': - continue - bitrate = int_or_none(f.get('bitRate')) - if bitrate: - bitrates.append(bitrate) - formats.append({ - 'url': f['uri'], - 'format_id': 'http-%d' % bitrate if bitrate else 'http', - 'width': int_or_none(f.get('width')), - 'height': int_or_none(f.get('height')), - 'tbr': bitrate, - 'format': 'mp4', - }) - - if not bitrates: - # When subscriptionLevel > 0, i.e. plus subscription is required - # media list will be empty. However, hds and hls uris are still - # available. We can grab them assuming bitrates to be default. - bitrates = self._DEFAULT_BITRATES - - auth_token = embed_vars.get('AuthToken') - - def construct_manifest_url(base_url, ext): - pieces = [base_url] - pieces.extend([compat_str(b) for b in bitrates]) - pieces.append('_kbps.mp4.%s?%s' % (ext, auth_token)) - return ','.join(pieces) - - if bitrates and auth_token: - hds_url = embed_vars.get('hdsUri') - if hds_url: - f4m_formats = self._extract_f4m_formats( - construct_manifest_url(hds_url, 'f4m'), - display_id, f4m_id='hds', fatal=False) - if len(f4m_formats) == len(bitrates): - for f, bitrate in zip(f4m_formats, bitrates): - if not f.get('tbr'): - f['format_id'] = 'hds-%d' % bitrate - f['tbr'] = bitrate - # TODO: fix f4m downloader to handle manifests without bitrates if possible - # formats.extend(f4m_formats) - - hls_url = embed_vars.get('hlsUri') - if hls_url: - formats.extend(self._extract_m3u8_formats( - construct_manifest_url(hls_url, 'm3u8'), - display_id, 'mp4', entry_protocol='m3u8_native', m3u8_id='hls', fatal=False)) - self._sort_formats(formats) - - return { - 'id': video_id, - 'display_id': display_id, - 'title': title, - 'thumbnail': embed_vars.get('thumbUri'), - 'duration': int_or_none(embed_vars.get('videoLengthInSeconds')) or None, - 'age_limit': parse_age_limit(embed_vars.get('audienceRating')), - 'tags': embed_vars.get('tags', '').split(','), - 'formats': formats, - } diff --git a/youtube_dl/extractor/senateisvp.py b/youtube_dl/extractor/senateisvp.py index 35540c0..387a4f7 100644 --- a/youtube_dl/extractor/senateisvp.py +++ b/youtube_dl/extractor/senateisvp.py @@ -55,7 +55,7 @@ class SenateISVPIE(InfoExtractor): 'id': 'judiciary031715', 'ext': 'mp4', 'title': 'Integrated Senate Video Player', - 'thumbnail': 're:^https?://.*\.(?:jpg|png)$', + 'thumbnail': r're:^https?://.*\.(?:jpg|png)$', }, 'params': { # m3u8 download diff --git a/youtube_dl/extractor/sendtonews.py b/youtube_dl/extractor/sendtonews.py index 2dbe490..9880a5a 100644 --- a/youtube_dl/extractor/sendtonews.py +++ b/youtube_dl/extractor/sendtonews.py @@ -8,6 +8,9 @@ from ..utils import ( float_or_none, parse_iso8601, update_url_query, + int_or_none, + determine_protocol, + unescapeHTML, ) @@ -20,18 +23,18 @@ class SendtoNewsIE(JWPlatformBaseIE): 'info_dict': { 'id': 'GxfCe0Zo7D-175909-5588' }, - 'playlist_count': 9, + 'playlist_count': 8, # test the first video only to prevent lengthy tests 'playlist': [{ 'info_dict': { - 'id': '198180', + 'id': '240385', 'ext': 'mp4', - 'title': 'Recap: CLE 5, LAA 4', - 'description': '8/14/16: Naquin, Almonte lead Indians in 5-4 win', - 'duration': 57.343, - 'thumbnail': 're:https?://.*\.jpg$', - 'upload_date': '20160815', - 'timestamp': 1471221961, + 'title': 'Indians introduce Encarnacion', + 'description': 'Indians president of baseball operations Chris Antonetti and Edwin Encarnacion discuss the slugger\'s three-year contract with Cleveland', + 'duration': 137.898, + 'thumbnail': r're:https?://.*\.jpg$', + 'upload_date': '20170105', + 'timestamp': 1483649762, }, }], 'params': { @@ -64,7 +67,20 @@ class SendtoNewsIE(JWPlatformBaseIE): for video in playlist_data['playlistData'][0]: info_dict = self._parse_jwplayer_data( video['jwconfiguration'], - require_title=False, rtmp_params={'no_resume': True}) + require_title=False, m3u8_id='hls', rtmp_params={'no_resume': True}) + + for f in info_dict['formats']: + if f.get('tbr'): + continue + tbr = int_or_none(self._search_regex( + r'/(\d+)k/', f['url'], 'bitrate', default=None)) + if not tbr: + continue + f.update({ + 'format_id': '%s-%d' % (determine_protocol(f), tbr), + 'tbr': tbr, + }) + self._sort_formats(info_dict['formats'], ('tbr', 'height', 'width', 'format_id')) thumbnails = [] if video.get('thumbnailUrl'): @@ -78,8 +94,8 @@ class SendtoNewsIE(JWPlatformBaseIE): 'url': video['smThumbnailUrl'], }) info_dict.update({ - 'title': video['S_headLine'], - 'description': video.get('S_fullStory'), + 'title': video['S_headLine'].strip(), + 'description': unescapeHTML(video.get('S_fullStory')), 'thumbnails': thumbnails, 'duration': float_or_none(video.get('SM_length')), 'timestamp': parse_iso8601(video.get('S_sysDate'), delimiter=' '), diff --git a/youtube_dl/extractor/sexu.py b/youtube_dl/extractor/sexu.py index a99b2a8..5e22ea7 100644 --- a/youtube_dl/extractor/sexu.py +++ b/youtube_dl/extractor/sexu.py @@ -14,7 +14,7 @@ class SexuIE(InfoExtractor): 'title': 'md5:4d05a19a5fc049a63dbbaf05fb71d91b', 'description': 'md5:2b75327061310a3afb3fbd7d09e2e403', 'categories': list, # NSFW - 'thumbnail': 're:https?://.*\.jpg$', + 'thumbnail': r're:https?://.*\.jpg$', 'age_limit': 18, } } diff --git a/youtube_dl/extractor/sharesix.py b/youtube_dl/extractor/sharesix.py deleted file mode 100644 index 9cce5ce..0000000 --- a/youtube_dl/extractor/sharesix.py +++ /dev/null @@ -1,91 +0,0 @@ -# coding: utf-8 -from __future__ import unicode_literals - -import re - -from .common import InfoExtractor -from ..utils import ( - parse_duration, - sanitized_Request, - urlencode_postdata, -) - - -class ShareSixIE(InfoExtractor): - _VALID_URL = r'https?://(?:www\.)?sharesix\.com/(?:f/)?(?P[0-9a-zA-Z]+)' - _TESTS = [ - { - 'url': 'http://sharesix.com/f/OXjQ7Y6', - 'md5': '9e8e95d8823942815a7d7c773110cc93', - 'info_dict': { - 'id': 'OXjQ7Y6', - 'ext': 'mp4', - 'title': 'big_buck_bunny_480p_surround-fix.avi', - 'duration': 596, - 'width': 854, - 'height': 480, - }, - }, - { - 'url': 'http://sharesix.com/lfrwoxp35zdd', - 'md5': 'dd19f1435b7cec2d7912c64beeee8185', - 'info_dict': { - 'id': 'lfrwoxp35zdd', - 'ext': 'flv', - 'title': 'WhiteBoard___a_Mac_vs_PC_Parody_Cartoon.mp4.flv', - 'duration': 65, - 'width': 1280, - 'height': 720, - }, - } - ] - - def _real_extract(self, url): - mobj = re.match(self._VALID_URL, url) - video_id = mobj.group('id') - - fields = { - 'method_free': 'Free' - } - post = urlencode_postdata(fields) - req = sanitized_Request(url, post) - req.add_header('Content-type', 'application/x-www-form-urlencoded') - - webpage = self._download_webpage(req, video_id, - 'Downloading video page') - - video_url = self._search_regex( - r"var\slnk1\s=\s'([^']+)'", webpage, 'video URL') - title = self._html_search_regex( - r'(?s)
Filename:
.+?
(.+?)
', webpage, 'title') - duration = parse_duration( - self._search_regex( - r'(?s)
Length:
.+?
(.+?)
', - webpage, - 'duration', - fatal=False - ) - ) - - m = re.search( - r'''(?xs)
Width\sx\sHeight
.+? -
(?P\d+)\sx\s(?P\d+)
''', - webpage - ) - width = height = None - if m: - width, height = int(m.group('width')), int(m.group('height')) - - formats = [{ - 'format_id': 'sd', - 'url': video_url, - 'width': width, - 'height': height, - }] - - return { - 'id': video_id, - 'title': title, - 'duration': duration, - 'formats': formats, - } diff --git a/youtube_dl/extractor/showroomlive.py b/youtube_dl/extractor/showroomlive.py new file mode 100644 index 0000000..efd9d56 --- /dev/null +++ b/youtube_dl/extractor/showroomlive.py @@ -0,0 +1,84 @@ +# coding: utf-8 +from __future__ import unicode_literals + +from .common import InfoExtractor +from ..compat import compat_str +from ..utils import ( + ExtractorError, + int_or_none, + urljoin, +) + + +class ShowRoomLiveIE(InfoExtractor): + _VALID_URL = r'https?://(?:www\.)?showroom-live\.com/(?!onlive|timetable|event|campaign|news|ranking|room)(?P[^/?#&]+)' + _TEST = { + 'url': 'https://www.showroom-live.com/48_Nana_Okada', + 'only_matching': True, + } + + def _real_extract(self, url): + broadcaster_id = self._match_id(url) + + webpage = self._download_webpage(url, broadcaster_id) + + room_id = self._search_regex( + (r'SrGlobal\.roomId\s*=\s*(\d+)', + r'(?:profile|room)\?room_id\=(\d+)'), webpage, 'room_id') + + room = self._download_json( + urljoin(url, '/api/room/profile?room_id=%s' % room_id), + broadcaster_id) + + is_live = room.get('is_onlive') + if is_live is not True: + raise ExtractorError('%s is offline' % broadcaster_id, expected=True) + + uploader = room.get('performer_name') or broadcaster_id + title = room.get('room_name') or room.get('main_name') or uploader + + streaming_url_list = self._download_json( + urljoin(url, '/api/live/streaming_url?room_id=%s' % room_id), + broadcaster_id)['streaming_url_list'] + + formats = [] + for stream in streaming_url_list: + stream_url = stream.get('url') + if not stream_url: + continue + stream_type = stream.get('type') + if stream_type == 'hls': + m3u8_formats = self._extract_m3u8_formats( + stream_url, broadcaster_id, ext='mp4', m3u8_id='hls', + live=True) + for f in m3u8_formats: + f['quality'] = int_or_none(stream.get('quality', 100)) + formats.extend(m3u8_formats) + elif stream_type == 'rtmp': + stream_name = stream.get('stream_name') + if not stream_name: + continue + formats.append({ + 'url': stream_url, + 'play_path': stream_name, + 'page_url': url, + 'player_url': 'https://www.showroom-live.com/assets/swf/v3/ShowRoomLive.swf', + 'rtmp_live': True, + 'ext': 'flv', + 'format_id': 'rtmp', + 'format_note': stream.get('label'), + 'quality': int_or_none(stream.get('quality', 100)), + }) + self._sort_formats(formats) + + return { + 'id': compat_str(room.get('live_id') or broadcaster_id), + 'title': self._live_title(title), + 'description': room.get('description'), + 'timestamp': int_or_none(room.get('current_live_started_at')), + 'uploader': uploader, + 'uploader_id': broadcaster_id, + 'view_count': int_or_none(room.get('view_num')), + 'formats': formats, + 'is_live': True, + } diff --git a/youtube_dl/extractor/skysports.py b/youtube_dl/extractor/skysports.py index 9dc78c7..4ca9f6b 100644 --- a/youtube_dl/extractor/skysports.py +++ b/youtube_dl/extractor/skysports.py @@ -2,18 +2,19 @@ from __future__ import unicode_literals from .common import InfoExtractor +from ..utils import strip_or_none class SkySportsIE(InfoExtractor): _VALID_URL = r'https?://(?:www\.)?skysports\.com/watch/video/(?P[0-9]+)' _TEST = { 'url': 'http://www.skysports.com/watch/video/10328419/bale-its-our-time-to-shine', - 'md5': 'c44a1db29f27daf9a0003e010af82100', + 'md5': '77d59166cddc8d3cb7b13e35eaf0f5ec', 'info_dict': { 'id': '10328419', - 'ext': 'flv', - 'title': 'Bale: Its our time to shine', - 'description': 'md5:9fd1de3614d525f5addda32ac3c482c9', + 'ext': 'mp4', + 'title': 'Bale: It\'s our time to shine', + 'description': 'md5:e88bda94ae15f7720c5cb467e777bb6d', }, 'add_ie': ['Ooyala'], } @@ -28,6 +29,6 @@ class SkySportsIE(InfoExtractor): 'url': 'ooyala:%s' % self._search_regex( r'data-video-id="([^"]+)"', webpage, 'ooyala id'), 'title': self._og_search_title(webpage), - 'description': self._og_search_description(webpage), + 'description': strip_or_none(self._og_search_description(webpage)), 'ie_key': 'Ooyala', } diff --git a/youtube_dl/extractor/slutload.py b/youtube_dl/extractor/slutload.py index 18cc772..7145d28 100644 --- a/youtube_dl/extractor/slutload.py +++ b/youtube_dl/extractor/slutload.py @@ -13,7 +13,7 @@ class SlutloadIE(InfoExtractor): 'ext': 'mp4', 'title': 'virginie baisee en cam', 'age_limit': 18, - 'thumbnail': 're:https?://.*?\.jpg' + 'thumbnail': r're:https?://.*?\.jpg' } } diff --git a/youtube_dl/extractor/smotri.py b/youtube_dl/extractor/smotri.py index def46ab..370fa88 100644 --- a/youtube_dl/extractor/smotri.py +++ b/youtube_dl/extractor/smotri.py @@ -81,7 +81,7 @@ class SmotriIE(InfoExtractor): 'uploader': 'psavari1', 'uploader_id': 'psavari1', 'upload_date': '20081103', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', }, 'params': { 'videopassword': '223322', @@ -117,7 +117,7 @@ class SmotriIE(InfoExtractor): 'uploader': 'вАся', 'uploader_id': 'asya_prosto', 'upload_date': '20081218', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'age_limit': 18, }, 'params': { diff --git a/youtube_dl/extractor/snotr.py b/youtube_dl/extractor/snotr.py index 4819fe5..f773547 100644 --- a/youtube_dl/extractor/snotr.py +++ b/youtube_dl/extractor/snotr.py @@ -22,7 +22,7 @@ class SnotrIE(InfoExtractor): 'duration': 248, 'filesize_approx': 40700000, 'description': 'A drone flying through Fourth of July Fireworks', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', }, 'expected_warnings': ['description'], }, { @@ -34,7 +34,7 @@ class SnotrIE(InfoExtractor): 'duration': 126, 'filesize_approx': 8500000, 'description': 'The top 10 George W. Bush moments, brought to you by David Letterman!', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', } }] diff --git a/youtube_dl/extractor/soundcloud.py b/youtube_dl/extractor/soundcloud.py index 5a201ea..b3aa4ce 100644 --- a/youtube_dl/extractor/soundcloud.py +++ b/youtube_dl/extractor/soundcloud.py @@ -173,46 +173,54 @@ class SoundcloudIE(InfoExtractor): }) # We have to retrieve the url - streams_url = ('http://api.soundcloud.com/i1/tracks/{0}/streams?' - 'client_id={1}&secret_token={2}'.format(track_id, self._IPHONE_CLIENT_ID, secret_token)) format_dict = self._download_json( - streams_url, - track_id, 'Downloading track url') + 'http://api.soundcloud.com/i1/tracks/%s/streams' % track_id, + track_id, 'Downloading track url', query={ + 'client_id': self._CLIENT_ID, + 'secret_token': secret_token, + }) for key, stream_url in format_dict.items(): + abr = int_or_none(self._search_regex( + r'_(\d+)_url', key, 'audio bitrate', default=None)) if key.startswith('http'): - formats.append({ + stream_formats = [{ 'format_id': key, 'ext': ext, 'url': stream_url, - 'vcodec': 'none', - }) + }] elif key.startswith('rtmp'): # The url doesn't have an rtmp app, we have to extract the playpath url, path = stream_url.split('mp3:', 1) - formats.append({ + stream_formats = [{ 'format_id': key, 'url': url, 'play_path': 'mp3:' + path, 'ext': 'flv', - 'vcodec': 'none', - }) - - if not formats: - # We fallback to the stream_url in the original info, this - # cannot be always used, sometimes it can give an HTTP 404 error - formats.append({ - 'format_id': 'fallback', - 'url': info['stream_url'] + '?client_id=' + self._CLIENT_ID, - 'ext': ext, - 'vcodec': 'none', - }) - - for f in formats: - if f['format_id'].startswith('http'): - f['protocol'] = 'http' - if f['format_id'].startswith('rtmp'): - f['protocol'] = 'rtmp' + }] + elif key.startswith('hls'): + stream_formats = self._extract_m3u8_formats( + stream_url, track_id, 'mp3', entry_protocol='m3u8_native', + m3u8_id=key, fatal=False) + else: + continue + + for f in stream_formats: + f['abr'] = abr + + formats.extend(stream_formats) + + if not formats: + # We fallback to the stream_url in the original info, this + # cannot be always used, sometimes it can give an HTTP 404 error + formats.append({ + 'format_id': 'fallback', + 'url': info['stream_url'] + '?client_id=' + self._CLIENT_ID, + 'ext': ext, + }) + + for f in formats: + f['vcodec'] = 'none' self._check_formats(formats, track_id) self._sort_formats(formats) diff --git a/youtube_dl/extractor/soundgasm.py b/youtube_dl/extractor/soundgasm.py index 3a4ddf5..e004e2c 100644 --- a/youtube_dl/extractor/soundgasm.py +++ b/youtube_dl/extractor/soundgasm.py @@ -27,7 +27,7 @@ class SoundgasmIE(InfoExtractor): webpage = self._download_webpage(url, display_id) audio_url = self._html_search_regex( r'(?s)m4a\:\s"([^"]+)"', webpage, 'audio URL') - audio_id = re.split('\/|\.', audio_url)[-2] + audio_id = re.split(r'\/|\.', audio_url)[-2] description = self._html_search_regex( r'(?s)
  • Description:\s(.*?)<\/li>', webpage, 'description', fatal=False) diff --git a/youtube_dl/extractor/southpark.py b/youtube_dl/extractor/southpark.py index 08f8c57..d8ce416 100644 --- a/youtube_dl/extractor/southpark.py +++ b/youtube_dl/extractor/southpark.py @@ -6,7 +6,7 @@ from .mtv import MTVServicesInfoExtractor class SouthParkIE(MTVServicesInfoExtractor): IE_NAME = 'southpark.cc.com' - _VALID_URL = r'https?://(?:www\.)?(?Psouthpark\.cc\.com/(?:clips|full-episodes)/(?P.+?)(\?|#|$))' + _VALID_URL = r'https?://(?:www\.)?(?Psouthpark\.cc\.com/(?:clips|(?:full-)?episodes)/(?P.+?)(\?|#|$))' _FEED_URL = 'http://www.southparkstudios.com/feeds/video-player/mrss' @@ -75,7 +75,7 @@ class SouthParkDeIE(SouthParkIE): class SouthParkNlIE(SouthParkIE): IE_NAME = 'southpark.nl' - _VALID_URL = r'https?://(?:www\.)?(?Psouthpark\.nl/(?:clips|full-episodes)/(?P.+?)(\?|#|$))' + _VALID_URL = r'https?://(?:www\.)?(?Psouthpark\.nl/(?:clips|(?:full-)?episodes)/(?P.+?)(\?|#|$))' _FEED_URL = 'http://www.southpark.nl/feeds/video-player/mrss/' _TESTS = [{ diff --git a/youtube_dl/extractor/spankbang.py b/youtube_dl/extractor/spankbang.py index 186d22b..123c33a 100644 --- a/youtube_dl/extractor/spankbang.py +++ b/youtube_dl/extractor/spankbang.py @@ -15,7 +15,7 @@ class SpankBangIE(InfoExtractor): 'ext': 'mp4', 'title': 'fantasy solo', 'description': 'Watch fantasy solo free HD porn video - 05 minutes - dillion harper masturbates on a bed free adult movies.', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'uploader': 'silly2587', 'age_limit': 18, } diff --git a/youtube_dl/extractor/spankwire.py b/youtube_dl/extractor/spankwire.py index 92a7120..44d8fa5 100644 --- a/youtube_dl/extractor/spankwire.py +++ b/youtube_dl/extractor/spankwire.py @@ -85,7 +85,7 @@ class SpankwireIE(InfoExtractor): r'playerData\.cdnPath([0-9]{3,})\s*=\s*(?:encodeURIComponent\()?["\']([^"\']+)["\']', webpage) heights = [int(video[0]) for video in videos] video_urls = list(map(compat_urllib_parse_unquote, [video[1] for video in videos])) - if webpage.find('flashvars\.encrypted = "true"') != -1: + if webpage.find(r'flashvars\.encrypted = "true"') != -1: password = self._search_regex( r'flashvars\.video_title = "([^"]+)', webpage, 'password').replace('+', ' ') diff --git a/youtube_dl/extractor/spiegeltv.py b/youtube_dl/extractor/spiegeltv.py index 034bd47..e1cfb86 100644 --- a/youtube_dl/extractor/spiegeltv.py +++ b/youtube_dl/extractor/spiegeltv.py @@ -18,7 +18,7 @@ class SpiegeltvIE(InfoExtractor): 'ext': 'm4v', 'title': 'Flug MH370', 'description': 'Das Rätsel um die Boeing 777 der Malaysia-Airlines', - 'thumbnail': 're:http://.*\.jpg$', + 'thumbnail': r're:http://.*\.jpg$', }, 'params': { # m3u8 download diff --git a/youtube_dl/extractor/spike.py b/youtube_dl/extractor/spike.py index abfee3e..c59896a 100644 --- a/youtube_dl/extractor/spike.py +++ b/youtube_dl/extractor/spike.py @@ -46,7 +46,7 @@ class SpikeIE(MTVServicesInfoExtractor): _CUSTOM_URL_REGEX = re.compile(r'spikenetworkapp://([^/]+/[-a-fA-F0-9]+)') def _extract_mgid(self, webpage): - mgid = super(SpikeIE, self)._extract_mgid(webpage, default=None) + mgid = super(SpikeIE, self)._extract_mgid(webpage) if mgid is None: url_parts = self._search_regex(self._CUSTOM_URL_REGEX, webpage, 'episode_id') video_type, episode_id = url_parts.split('/', 1) diff --git a/youtube_dl/extractor/sport5.py b/youtube_dl/extractor/sport5.py index 7e67833..a417b5a 100644 --- a/youtube_dl/extractor/sport5.py +++ b/youtube_dl/extractor/sport5.py @@ -41,7 +41,7 @@ class Sport5IE(InfoExtractor): webpage = self._download_webpage(url, media_id) - video_id = self._html_search_regex('clipId=([\w-]+)', webpage, 'video id') + video_id = self._html_search_regex(r'clipId=([\w-]+)', webpage, 'video id') metadata = self._download_xml( 'http://sport5-metadata-rr-d.nsacdn.com/vod/vod/%s/HDS/metadata.xml' % video_id, diff --git a/youtube_dl/extractor/sportbox.py b/youtube_dl/extractor/sportbox.py index e5c28ae..e7bd5bf 100644 --- a/youtube_dl/extractor/sportbox.py +++ b/youtube_dl/extractor/sportbox.py @@ -4,65 +4,7 @@ from __future__ import unicode_literals import re from .common import InfoExtractor -from ..compat import compat_urlparse -from ..utils import ( - js_to_json, - unified_strdate, -) - - -class SportBoxIE(InfoExtractor): - _VALID_URL = r'https?://news\.sportbox\.ru/(?:[^/]+/)+spbvideo_NI\d+_(?P.+)' - _TESTS = [{ - 'url': 'http://news.sportbox.ru/Vidy_sporta/Avtosport/Rossijskij/spbvideo_NI483529_Gonka-2-zaezd-Obyedinenniy-2000-klassi-Turing-i-S', - 'md5': 'ff56a598c2cf411a9a38a69709e97079', - 'info_dict': { - 'id': '80822', - 'ext': 'mp4', - 'title': 'Гонка 2 заезд ««Объединенный 2000»: классы Туринг и Супер-продакшн', - 'description': 'md5:3d72dc4a006ab6805d82f037fdc637ad', - 'thumbnail': 're:^https?://.*\.jpg$', - 'upload_date': '20140928', - }, - 'params': { - # m3u8 download - 'skip_download': True, - }, - }, { - 'url': 'http://news.sportbox.ru/Vidy_sporta/billiard/spbvideo_NI486287_CHempionat-mira-po-dinamichnoy-piramide-4', - 'only_matching': True, - }, { - 'url': 'http://news.sportbox.ru/video/no_ads/spbvideo_NI536574_V_Novorossijske_proshel_detskij_turnir_Pole_slavy_bojevoj?ci=211355', - 'only_matching': True, - }] - - def _real_extract(self, url): - mobj = re.match(self._VALID_URL, url) - display_id = mobj.group('display_id') - - webpage = self._download_webpage(url, display_id) - - player = self._search_regex( - r'src="/?(vdl/player/[^"]+)"', webpage, 'player') - - title = self._html_search_regex( - [r'"nodetitle"\s*:\s*"([^"]+)"', r'class="node-header_{1,2}title">([^<]+)'], - webpage, 'title') - description = self._og_search_description(webpage) or self._html_search_meta( - 'description', webpage, 'description') - thumbnail = self._og_search_thumbnail(webpage) - upload_date = unified_strdate(self._html_search_meta( - 'dateCreated', webpage, 'upload date')) - - return { - '_type': 'url_transparent', - 'url': compat_urlparse.urljoin(url, '/%s' % player), - 'display_id': display_id, - 'title': title, - 'description': description, - 'thumbnail': thumbnail, - 'upload_date': upload_date, - } +from ..utils import js_to_json class SportBoxEmbedIE(InfoExtractor): @@ -73,7 +15,7 @@ class SportBoxEmbedIE(InfoExtractor): 'id': '211355', 'ext': 'mp4', 'title': 'В Новороссийске прошел детский турнир «Поле славы боевой»', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', }, 'params': { # m3u8 download diff --git a/youtube_dl/extractor/sportdeutschland.py b/youtube_dl/extractor/sportdeutschland.py index a9927f6..a3c35a8 100644 --- a/youtube_dl/extractor/sportdeutschland.py +++ b/youtube_dl/extractor/sportdeutschland.py @@ -20,8 +20,8 @@ class SportDeutschlandIE(InfoExtractor): 'title': 're:Li-Ning Badminton Weltmeisterschaft 2014 Kopenhagen', 'categories': ['Badminton'], 'view_count': int, - 'thumbnail': 're:^https?://.*\.jpg$', - 'description': 're:Die Badminton-WM 2014 aus Kopenhagen bei Sportdeutschland\.TV', + 'thumbnail': r're:^https?://.*\.jpg$', + 'description': r're:Die Badminton-WM 2014 aus Kopenhagen bei Sportdeutschland\.TV', 'timestamp': int, 'upload_date': 're:^201408[23][0-9]$', }, @@ -38,7 +38,7 @@ class SportDeutschlandIE(InfoExtractor): 'timestamp': 1408976060, 'duration': 2732, 'title': 'Li-Ning Badminton Weltmeisterschaft 2014 Kopenhagen: Herren Einzel, Wei Lee vs. Keun Lee', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'view_count': int, 'categories': ['Li-Ning Badminton WM 2014'], diff --git a/youtube_dl/extractor/srgssr.py b/youtube_dl/extractor/srgssr.py index 246970c..319a48a 100644 --- a/youtube_dl/extractor/srgssr.py +++ b/youtube_dl/extractor/srgssr.py @@ -4,6 +4,7 @@ from __future__ import unicode_literals import re from .common import InfoExtractor +from ..compat import compat_urllib_parse_urlparse from ..utils import ( ExtractorError, parse_iso8601, @@ -23,6 +24,16 @@ class SRGSSRIE(InfoExtractor): 'STARTDATE': 'This video is not yet available. Please try again later.', } + def _get_tokenized_src(self, url, video_id, format_id): + sp = compat_urllib_parse_urlparse(url).path.split('/') + token = self._download_json( + 'http://tp.srgssr.ch/akahd/token?acl=/%s/%s/*' % (sp[1], sp[2]), + video_id, 'Downloading %s token' % format_id, fatal=False) or {} + auth_params = token.get('token', {}).get('authparams') + if auth_params: + url += '?' + auth_params + return url + def get_media_data(self, bu, media_type, media_id): media_data = self._download_json( 'http://il.srgssr.ch/integrationlayer/1.0/ue/%s/%s/play/%s.json' % (bu, media_type, media_id), @@ -37,9 +48,6 @@ class SRGSSRIE(InfoExtractor): def _real_extract(self, url): bu, media_type, media_id = re.match(self._VALID_URL, url).groups() - if bu == 'rts': - return self.url_result('rts:%s' % media_id, 'RTS') - media_data = self.get_media_data(bu, media_type, media_id) metadata = media_data['AssetMetadatas']['AssetMetadata'][0] @@ -61,14 +69,16 @@ class SRGSSRIE(InfoExtractor): asset_url = asset['text'] quality = asset['@quality'] format_id = '%s-%s' % (protocol, quality) - if protocol == 'HTTP-HDS': - formats.extend(self._extract_f4m_formats( - asset_url + '?hdcore=3.4.0', media_id, - f4m_id=format_id, fatal=False)) - elif protocol == 'HTTP-HLS': - formats.extend(self._extract_m3u8_formats( - asset_url, media_id, 'mp4', 'm3u8_native', - m3u8_id=format_id, fatal=False)) + if protocol.startswith('HTTP-HDS') or protocol.startswith('HTTP-HLS'): + asset_url = self._get_tokenized_src(asset_url, media_id, format_id) + if protocol.startswith('HTTP-HDS'): + formats.extend(self._extract_f4m_formats( + asset_url + ('?' if '?' not in asset_url else '&') + 'hdcore=3.4.0', + media_id, f4m_id=format_id, fatal=False)) + elif protocol.startswith('HTTP-HLS'): + formats.extend(self._extract_m3u8_formats( + asset_url, media_id, 'mp4', 'm3u8_native', + m3u8_id=format_id, fatal=False)) else: formats.append({ 'format_id': format_id, @@ -94,10 +104,10 @@ class SRGSSRPlayIE(InfoExtractor): _TESTS = [{ 'url': 'http://www.srf.ch/play/tv/10vor10/video/snowden-beantragt-asyl-in-russland?id=28e1a57d-5b76-4399-8ab3-9097f071e6c5', - 'md5': '4cd93523723beff51bb4bee974ee238d', + 'md5': 'da6b5b3ac9fa4761a942331cef20fcb3', 'info_dict': { 'id': '28e1a57d-5b76-4399-8ab3-9097f071e6c5', - 'ext': 'm4v', + 'ext': 'mp4', 'upload_date': '20130701', 'title': 'Snowden beantragt Asyl in Russland', 'timestamp': 1372713995, @@ -140,7 +150,7 @@ class SRGSSRPlayIE(InfoExtractor): 'uploader': '19h30', 'upload_date': '20141201', 'timestamp': 1417458600, - 'thumbnail': 're:^https?://.*\.image', + 'thumbnail': r're:^https?://.*\.image', 'view_count': int, }, 'params': { diff --git a/youtube_dl/extractor/srmediathek.py b/youtube_dl/extractor/srmediathek.py index b03272f..28baf90 100644 --- a/youtube_dl/extractor/srmediathek.py +++ b/youtube_dl/extractor/srmediathek.py @@ -20,7 +20,7 @@ class SRMediathekIE(ARDMediathekIE): 'ext': 'mp4', 'title': 'sportarena (26.10.2014)', 'description': 'Ringen: KSV Köllerbach gegen Aachen-Walheim; Frauen-Fußball: 1. FC Saarbrücken gegen Sindelfingen; Motorsport: Rallye in Losheim; dazu: Interview mit Timo Bernhard; Turnen: TG Saar; Reitsport: Deutscher Voltigier-Pokal; Badminton: Interview mit Michael Fuchs ', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', }, 'skip': 'no longer available', }, { diff --git a/youtube_dl/extractor/stanfordoc.py b/youtube_dl/extractor/stanfordoc.py index 4a3d8bb..cce65fb 100644 --- a/youtube_dl/extractor/stanfordoc.py +++ b/youtube_dl/extractor/stanfordoc.py @@ -66,7 +66,7 @@ class StanfordOpenClassroomIE(InfoExtractor): r'(?s)([^<]+)', coursepage, 'description', fatal=False) - links = orderedSet(re.findall('', coursepage)) + links = orderedSet(re.findall(r'', coursepage)) info['entries'] = [self.url_result( 'http://openclassroom.stanford.edu/MainFolder/%s' % unescapeHTML(l) ) for l in links] @@ -84,7 +84,7 @@ class StanfordOpenClassroomIE(InfoExtractor): rootpage = self._download_webpage(rootURL, info['id'], errnote='Unable to download course info page') - links = orderedSet(re.findall('', rootpage)) + links = orderedSet(re.findall(r'', rootpage)) info['entries'] = [self.url_result( 'http://openclassroom.stanford.edu/MainFolder/%s' % unescapeHTML(l) ) for l in links] diff --git a/youtube_dl/extractor/stitcher.py b/youtube_dl/extractor/stitcher.py index 0f8782d..97d1ff6 100644 --- a/youtube_dl/extractor/stitcher.py +++ b/youtube_dl/extractor/stitcher.py @@ -22,7 +22,7 @@ class StitcherIE(InfoExtractor): 'title': 'Machine Learning Mastery and Cancer Clusters', 'description': 'md5:55163197a44e915a14a1ac3a1de0f2d3', 'duration': 1604, - 'thumbnail': 're:^https?://.*\.jpg', + 'thumbnail': r're:^https?://.*\.jpg', }, }, { 'url': 'http://www.stitcher.com/podcast/panoply/vulture-tv/e/the-rare-hourlong-comedy-plus-40846275?autoplay=true', @@ -33,7 +33,7 @@ class StitcherIE(InfoExtractor): 'title': "The CW's 'Crazy Ex-Girlfriend'", 'description': 'md5:04f1e2f98eb3f5cbb094cea0f9e19b17', 'duration': 2235, - 'thumbnail': 're:^https?://.*\.jpg', + 'thumbnail': r're:^https?://.*\.jpg', }, 'params': { 'skip_download': True, diff --git a/youtube_dl/extractor/streamable.py b/youtube_dl/extractor/streamable.py index 2c26fa6..e973c86 100644 --- a/youtube_dl/extractor/streamable.py +++ b/youtube_dl/extractor/streamable.py @@ -21,7 +21,7 @@ class StreamableIE(InfoExtractor): 'id': 'dnd1', 'ext': 'mp4', 'title': 'Mikel Oiarzabal scores to make it 0-3 for La Real against Espanyol', - 'thumbnail': 're:https?://.*\.jpg$', + 'thumbnail': r're:https?://.*\.jpg$', 'uploader': 'teabaker', 'timestamp': 1454964157.35115, 'upload_date': '20160208', @@ -37,7 +37,7 @@ class StreamableIE(InfoExtractor): 'id': 'moo', 'ext': 'mp4', 'title': '"Please don\'t eat me!"', - 'thumbnail': 're:https?://.*\.jpg$', + 'thumbnail': r're:https?://.*\.jpg$', 'timestamp': 1426115495, 'upload_date': '20150311', 'duration': 12, diff --git a/youtube_dl/extractor/streetvoice.py b/youtube_dl/extractor/streetvoice.py index e529051..91612c7 100644 --- a/youtube_dl/extractor/streetvoice.py +++ b/youtube_dl/extractor/streetvoice.py @@ -16,7 +16,7 @@ class StreetVoiceIE(InfoExtractor): 'ext': 'mp3', 'title': '輸', 'description': 'Crispy脆樂團 - 輸', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'duration': 260, 'upload_date': '20091018', 'uploader': 'Crispy脆樂團', diff --git a/youtube_dl/extractor/sunporno.py b/youtube_dl/extractor/sunporno.py index ef9be79..6805116 100644 --- a/youtube_dl/extractor/sunporno.py +++ b/youtube_dl/extractor/sunporno.py @@ -21,7 +21,7 @@ class SunPornoIE(InfoExtractor): 'ext': 'mp4', 'title': 'md5:0a400058e8105d39e35c35e7c5184164', 'description': 'md5:a31241990e1bd3a64e72ae99afb325fb', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'duration': 302, 'age_limit': 18, } diff --git a/youtube_dl/extractor/svt.py b/youtube_dl/extractor/svt.py index fb0a4b2..10cf808 100644 --- a/youtube_dl/extractor/svt.py +++ b/youtube_dl/extractor/svt.py @@ -129,7 +129,7 @@ class SVTPlayIE(SVTBaseIE): 'ext': 'mp4', 'title': 'Flygplan till Haile Selassie', 'duration': 3527, - 'thumbnail': 're:^https?://.*[\.-]jpg$', + 'thumbnail': r're:^https?://.*[\.-]jpg$', 'age_limit': 0, 'subtitles': { 'sv': [{ diff --git a/youtube_dl/extractor/swrmediathek.py b/youtube_dl/extractor/swrmediathek.py index 6d69f76..0f61597 100644 --- a/youtube_dl/extractor/swrmediathek.py +++ b/youtube_dl/extractor/swrmediathek.py @@ -1,10 +1,12 @@ # coding: utf-8 from __future__ import unicode_literals -import re - from .common import InfoExtractor -from ..utils import parse_duration +from ..utils import ( + parse_duration, + int_or_none, + determine_protocol, +) class SWRMediathekIE(InfoExtractor): @@ -18,7 +20,7 @@ class SWRMediathekIE(InfoExtractor): 'ext': 'mp4', 'title': 'SWR odysso', 'description': 'md5:2012e31baad36162e97ce9eb3f157b8a', - 'thumbnail': 're:^http:.*\.jpg$', + 'thumbnail': r're:^http:.*\.jpg$', 'duration': 2602, 'upload_date': '20140515', 'uploader': 'SWR Fernsehen', @@ -32,12 +34,13 @@ class SWRMediathekIE(InfoExtractor): 'ext': 'mp4', 'title': 'Nachtcafé - Alltagsdroge Alkohol - zwischen Sektempfang und Komasaufen', 'description': 'md5:e0a3adc17e47db2c23aab9ebc36dbee2', - 'thumbnail': 're:http://.*\.jpg', + 'thumbnail': r're:http://.*\.jpg', 'duration': 5305, 'upload_date': '20140516', 'uploader': 'SWR Fernsehen', 'uploader_id': '990030', }, + 'skip': 'redirect to http://swrmediathek.de/index.htm?hinweis=swrlink', }, { 'url': 'http://swrmediathek.de/player.htm?show=bba23e10-cb93-11e3-bf7f-0026b975f2e6', 'md5': '4382e4ef2c9d7ce6852535fa867a0dd3', @@ -46,59 +49,67 @@ class SWRMediathekIE(InfoExtractor): 'ext': 'mp3', 'title': 'SaÅ¡a StaniÅ¡ic: Vor dem Fest', 'description': 'md5:5b792387dc3fbb171eb709060654e8c9', - 'thumbnail': 're:http://.*\.jpg', + 'thumbnail': r're:http://.*\.jpg', 'duration': 3366, 'upload_date': '20140520', 'uploader': 'SWR 2', 'uploader_id': '284670', - } + }, + 'skip': 'redirect to http://swrmediathek.de/index.htm?hinweis=swrlink', }] def _real_extract(self, url): - mobj = re.match(self._VALID_URL, url) - video_id = mobj.group('id') + video_id = self._match_id(url) video = self._download_json( - 'http://swrmediathek.de/AjaxEntry?ekey=%s' % video_id, video_id, 'Downloading video JSON') + 'http://swrmediathek.de/AjaxEntry?ekey=%s' % video_id, + video_id, 'Downloading video JSON') attr = video['attr'] - media_type = attr['entry_etype'] + title = attr['entry_title'] + media_type = attr.get('entry_etype') formats = [] - for entry in video['sub']: - if entry['name'] != 'entry_media': + for entry in video.get('sub', []): + if entry.get('name') != 'entry_media': continue - entry_attr = entry['attr'] - codec = entry_attr['val0'] - quality = int(entry_attr['val1']) - - fmt = { - 'url': entry_attr['val2'], - 'quality': quality, - } - - if media_type == 'Video': - fmt.update({ - 'format_note': ['144p', '288p', '544p', '720p'][quality - 1], - 'vcodec': codec, - }) - elif media_type == 'Audio': - fmt.update({ - 'acodec': codec, + entry_attr = entry.get('attr', {}) + f_url = entry_attr.get('val2') + if not f_url: + continue + codec = entry_attr.get('val0') + if codec == 'm3u8': + formats.extend(self._extract_m3u8_formats( + f_url, video_id, 'mp4', 'm3u8_native', + m3u8_id='hls', fatal=False)) + elif codec == 'f4m': + formats.extend(self._extract_f4m_formats( + f_url + '?hdcore=3.7.0', video_id, + f4m_id='hds', fatal=False)) + else: + formats.append({ + 'format_id': determine_protocol({'url': f_url}), + 'url': f_url, + 'quality': int_or_none(entry_attr.get('val1')), + 'vcodec': codec if media_type == 'Video' else 'none', + 'acodec': codec if media_type == 'Audio' else None, }) - formats.append(fmt) - self._sort_formats(formats) + upload_date = None + entry_pdatet = attr.get('entry_pdatet') + if entry_pdatet: + upload_date = entry_pdatet[:-4] + return { 'id': video_id, - 'title': attr['entry_title'], - 'description': attr['entry_descl'], - 'thumbnail': attr['entry_image_16_9'], - 'duration': parse_duration(attr['entry_durat']), - 'upload_date': attr['entry_pdatet'][:-4], - 'uploader': attr['channel_title'], - 'uploader_id': attr['channel_idkey'], + 'title': title, + 'description': attr.get('entry_descl'), + 'thumbnail': attr.get('entry_image_16_9'), + 'duration': parse_duration(attr.get('entry_durat')), + 'upload_date': upload_date, + 'uploader': attr.get('channel_title'), + 'uploader_id': attr.get('channel_idkey'), 'formats': formats, } diff --git a/youtube_dl/extractor/tagesschau.py b/youtube_dl/extractor/tagesschau.py index 8670cee..c351b75 100644 --- a/youtube_dl/extractor/tagesschau.py +++ b/youtube_dl/extractor/tagesschau.py @@ -23,7 +23,7 @@ class TagesschauPlayerIE(InfoExtractor): 'id': '179517', 'ext': 'mp4', 'title': 'Marie Kristin Boese, ARD Berlin, über den zukünftigen Kurs der AfD', - 'thumbnail': 're:^https?:.*\.jpg$', + 'thumbnail': r're:^https?:.*\.jpg$', 'formats': 'mincount:6', }, }, { @@ -33,7 +33,7 @@ class TagesschauPlayerIE(InfoExtractor): 'id': '29417', 'ext': 'mp3', 'title': 'Trabi - Bye, bye Rennpappe', - 'thumbnail': 're:^https?:.*\.jpg$', + 'thumbnail': r're:^https?:.*\.jpg$', 'formats': 'mincount:2', }, }, { @@ -135,7 +135,7 @@ class TagesschauIE(InfoExtractor): 'ext': 'mp4', 'title': 'Regierungsumbildung in Athen: Neue Minister in Griechenland vereidigt', 'description': '18.07.2015 20:10 Uhr', - 'thumbnail': 're:^https?:.*\.jpg$', + 'thumbnail': r're:^https?:.*\.jpg$', }, }, { 'url': 'http://www.tagesschau.de/multimedia/sendung/ts-5727.html', @@ -145,7 +145,7 @@ class TagesschauIE(InfoExtractor): 'ext': 'mp4', 'title': 'Sendung: tagesschau \t04.12.2014 20:00 Uhr', 'description': 'md5:695c01bfd98b7e313c501386327aea59', - 'thumbnail': 're:^https?:.*\.jpg$', + 'thumbnail': r're:^https?:.*\.jpg$', }, }, { # exclusive audio @@ -156,7 +156,7 @@ class TagesschauIE(InfoExtractor): 'ext': 'mp3', 'title': 'Trabi - Bye, bye Rennpappe', 'description': 'md5:8687dda862cbbe2cfb2df09b56341317', - 'thumbnail': 're:^https?:.*\.jpg$', + 'thumbnail': r're:^https?:.*\.jpg$', }, }, { # audio in article @@ -167,7 +167,7 @@ class TagesschauIE(InfoExtractor): 'ext': 'mp3', 'title': 'Viele Baustellen für neuen BND-Chef', 'description': 'md5:1e69a54be3e1255b2b07cdbce5bcd8b4', - 'thumbnail': 're:^https?:.*\.jpg$', + 'thumbnail': r're:^https?:.*\.jpg$', }, }, { 'url': 'http://www.tagesschau.de/inland/afd-parteitag-135.html', diff --git a/youtube_dl/extractor/tass.py b/youtube_dl/extractor/tass.py index 5293393..6d336da 100644 --- a/youtube_dl/extractor/tass.py +++ b/youtube_dl/extractor/tass.py @@ -21,7 +21,7 @@ class TassIE(InfoExtractor): 'ext': 'mp4', 'title': 'Посетителям московского зоопарка показали красную панду', 'description': 'Приехавшую из Дублина Зейну можно увидеть в павильоне "Кошки тропиков"', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', }, }, { diff --git a/youtube_dl/extractor/tdslifeway.py b/youtube_dl/extractor/tdslifeway.py index 4d1f5c8..101c6ee 100644 --- a/youtube_dl/extractor/tdslifeway.py +++ b/youtube_dl/extractor/tdslifeway.py @@ -13,7 +13,7 @@ class TDSLifewayIE(InfoExtractor): 'id': '3453494717001', 'ext': 'mp4', 'title': 'The Gospel by Numbers', - 'thumbnail': 're:^https?://.*\.jpg', + 'thumbnail': r're:^https?://.*\.jpg', 'upload_date': '20140410', 'description': 'Coming soon from T4G 2014!', 'uploader_id': '2034960640001', diff --git a/youtube_dl/extractor/teachertube.py b/youtube_dl/extractor/teachertube.py index df5d555..f14713a 100644 --- a/youtube_dl/extractor/teachertube.py +++ b/youtube_dl/extractor/teachertube.py @@ -24,7 +24,7 @@ class TeacherTubeIE(InfoExtractor): 'ext': 'mp4', 'title': 'Measures of dispersion from a frequency table', 'description': 'Measures of dispersion from a frequency table', - 'thumbnail': 're:http://.*\.jpg', + 'thumbnail': r're:http://.*\.jpg', }, }, { 'url': 'http://www.teachertube.com/viewVideo.php?video_id=340064', @@ -34,7 +34,7 @@ class TeacherTubeIE(InfoExtractor): 'ext': 'mp4', 'title': 'How to Make Paper Dolls _ Paper Art Projects', 'description': 'Learn how to make paper dolls in this simple', - 'thumbnail': 're:http://.*\.jpg', + 'thumbnail': r're:http://.*\.jpg', }, }, { 'url': 'http://www.teachertube.com/music.php?music_id=8805', diff --git a/youtube_dl/extractor/ted.py b/youtube_dl/extractor/ted.py index 451cde7..1b1afab 100644 --- a/youtube_dl/extractor/ted.py +++ b/youtube_dl/extractor/ted.py @@ -47,7 +47,7 @@ class TEDIE(InfoExtractor): 'id': 'tSVI8ta_P4w', 'ext': 'mp4', 'title': 'Vishal Sikka: The beauty and power of algorithms', - 'thumbnail': 're:^https?://.+\.jpg', + 'thumbnail': r're:^https?://.+\.jpg', 'description': 'md5:6261fdfe3e02f4f579cbbfc00aff73f4', 'upload_date': '20140122', 'uploader_id': 'TEDInstitute', @@ -189,7 +189,7 @@ class TEDIE(InfoExtractor): 'format_id': '%s-%sk' % (format_id, bitrate), 'tbr': bitrate, }) - if re.search('\d+k', h264_url): + if re.search(r'\d+k', h264_url): http_url = h264_url elif format_id == 'rtmp': streamer = talk_info.get('streamer') diff --git a/youtube_dl/extractor/telebruxelles.py b/youtube_dl/extractor/telebruxelles.py index eefecc4..5886e9c 100644 --- a/youtube_dl/extractor/telebruxelles.py +++ b/youtube_dl/extractor/telebruxelles.py @@ -7,33 +7,30 @@ from .common import InfoExtractor class TeleBruxellesIE(InfoExtractor): - _VALID_URL = r'https?://(?:www\.)?(?:telebruxelles|bx1)\.be/(news|sport|dernier-jt)/?(?P[^/#?]+)' + _VALID_URL = r'https?://(?:www\.)?(?:telebruxelles|bx1)\.be/(news|sport|dernier-jt|emission)/?(?P[^/#?]+)' _TESTS = [{ - 'url': 'http://www.telebruxelles.be/news/auditions-devant-parlement-francken-galant-tres-attendus/', - 'md5': '59439e568c9ee42fb77588b2096b214f', + 'url': 'http://bx1.be/news/que-risque-lauteur-dune-fausse-alerte-a-la-bombe/', + 'md5': 'a2a67a5b1c3e8c9d33109b902f474fd9', 'info_dict': { - 'id': '11942', - 'display_id': 'auditions-devant-parlement-francken-galant-tres-attendus', - 'ext': 'flv', - 'title': 'Parlement : Francken et Galant répondent aux interpellations de l’opposition', - 'description': 're:Les auditions des ministres se poursuivent*' - }, - 'params': { - 'skip_download': 'requires rtmpdump' + 'id': '158856', + 'display_id': 'que-risque-lauteur-dune-fausse-alerte-a-la-bombe', + 'ext': 'mp4', + 'title': 'Que risque l’auteur d’une fausse alerte à la bombe ?', + 'description': 'md5:3cf8df235d44ebc5426373050840e466', }, }, { - 'url': 'http://www.telebruxelles.be/sport/basket-brussels-bat-mons-80-74/', - 'md5': '181d3fbdcf20b909309e5aef5c6c6047', + 'url': 'http://bx1.be/sport/futsal-schaerbeek-sincline-5-3-a-thulin/', + 'md5': 'dfe07ecc9c153ceba8582ac912687675', 'info_dict': { - 'id': '10091', - 'display_id': 'basket-brussels-bat-mons-80-74', - 'ext': 'flv', - 'title': 'Basket : le Brussels bat Mons 80-74', - 'description': 're:^Ils l\u2019on fait ! En basket, le B*', - }, - 'params': { - 'skip_download': 'requires rtmpdump' + 'id': '158433', + 'display_id': 'futsal-schaerbeek-sincline-5-3-a-thulin', + 'ext': 'mp4', + 'title': 'Futsal : Schaerbeek s’incline 5-3 à Thulin', + 'description': 'md5:fd013f1488d5e2dceb9cebe39e2d569b', }, + }, { + 'url': 'http://bx1.be/emission/bxenf1-gastronomie/', + 'only_matching': True, }] def _real_extract(self, url): @@ -50,13 +47,13 @@ class TeleBruxellesIE(InfoExtractor): r'file\s*:\s*"(rtmp://[^/]+/vod/mp4:"\s*\+\s*"[^"]+"\s*\+\s*".mp4)"', webpage, 'RTMP url') rtmp_url = re.sub(r'"\s*\+\s*"', '', rtmp_url) + formats = self._extract_wowza_formats(rtmp_url, article_id or display_id) + self._sort_formats(formats) return { 'id': article_id or display_id, 'display_id': display_id, 'title': title, 'description': description, - 'url': rtmp_url, - 'ext': 'flv', - 'rtmp_live': True # if rtmpdump is not called with "--live" argument, the download is blocked and can be completed + 'formats': formats, } diff --git a/youtube_dl/extractor/telegraaf.py b/youtube_dl/extractor/telegraaf.py index 58078c5..0f576c1 100644 --- a/youtube_dl/extractor/telegraaf.py +++ b/youtube_dl/extractor/telegraaf.py @@ -17,7 +17,7 @@ class TelegraafIE(InfoExtractor): 'ext': 'mp4', 'title': 'Tikibad ontruimd wegens brand', 'description': 'md5:05ca046ff47b931f9b04855015e163a4', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'duration': 33, }, 'params': { diff --git a/youtube_dl/extractor/telemb.py b/youtube_dl/extractor/telemb.py index 1bbd0e7..9bcac4e 100644 --- a/youtube_dl/extractor/telemb.py +++ b/youtube_dl/extractor/telemb.py @@ -19,7 +19,7 @@ class TeleMBIE(InfoExtractor): 'ext': 'mp4', 'title': 'Mons - Cook with Danielle : des cours de cuisine en anglais ! - Les reportages', 'description': 'md5:bc5225f47b17c309761c856ad4776265', - 'thumbnail': 're:^http://.*\.(?:jpg|png)$', + 'thumbnail': r're:^http://.*\.(?:jpg|png)$', } }, { @@ -32,7 +32,7 @@ class TeleMBIE(InfoExtractor): 'ext': 'mp4', 'title': 'Havré - Incendie mortel - Les reportages', 'description': 'md5:5e54cb449acb029c2b7734e2d946bd4a', - 'thumbnail': 're:^http://.*\.(?:jpg|png)$', + 'thumbnail': r're:^http://.*\.(?:jpg|png)$', } }, ] diff --git a/youtube_dl/extractor/telewebion.py b/youtube_dl/extractor/telewebion.py index 7786b28..1207b1a 100644 --- a/youtube_dl/extractor/telewebion.py +++ b/youtube_dl/extractor/telewebion.py @@ -13,7 +13,7 @@ class TelewebionIE(InfoExtractor): 'id': '1263668', 'ext': 'mp4', 'title': 'قرعه\u200cکشی لیگ قهرمانان اروپا', - 'thumbnail': 're:^https?://.*\.jpg', + 'thumbnail': r're:^https?://.*\.jpg', 'view_count': int, }, 'params': { diff --git a/youtube_dl/extractor/theplatform.py b/youtube_dl/extractor/theplatform.py index cfbf7f4..192d8fa 100644 --- a/youtube_dl/extractor/theplatform.py +++ b/youtube_dl/extractor/theplatform.py @@ -33,7 +33,9 @@ _x = lambda p: xpath_with_ns(p, {'smil': default_ns}) class ThePlatformBaseIE(OnceIE): 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'}) + 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.'): @@ -154,7 +156,7 @@ class ThePlatformIE(ThePlatformBaseIE, AdobePassIE): 'title': 'iPhone Siri’s sassy response to a math question has people talking', 'description': 'md5:a565d1deadd5086f3331d57298ec6333', 'duration': 83.0, - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'timestamp': 1435752600, 'upload_date': '20150701', 'uploader': 'NBCU-NEWS', @@ -295,7 +297,7 @@ class ThePlatformFeedIE(ThePlatformBaseIE): 'ext': 'mp4', 'title': 'The Biden factor: will Joe run in 2016?', 'description': 'Could Vice President Joe Biden be preparing a 2016 campaign? Mark Halperin and Sam Stein weigh in.', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'upload_date': '20140208', 'timestamp': 1391824260, 'duration': 467.0, diff --git a/youtube_dl/extractor/thisamericanlife.py b/youtube_dl/extractor/thisamericanlife.py index 36493a5..91e45f2 100644 --- a/youtube_dl/extractor/thisamericanlife.py +++ b/youtube_dl/extractor/thisamericanlife.py @@ -13,7 +13,7 @@ class ThisAmericanLifeIE(InfoExtractor): 'ext': 'm4a', 'title': '487: Harper High School, Part One', 'description': 'md5:ee40bdf3fb96174a9027f76dbecea655', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', }, }, { 'url': 'http://www.thisamericanlife.org/play_full.php?play=487', diff --git a/youtube_dl/extractor/thisoldhouse.py b/youtube_dl/extractor/thisoldhouse.py index 7629f0d..197258d 100644 --- a/youtube_dl/extractor/thisoldhouse.py +++ b/youtube_dl/extractor/thisoldhouse.py @@ -5,10 +5,10 @@ from .common import InfoExtractor class ThisOldHouseIE(InfoExtractor): - _VALID_URL = r'https?://(?:www\.)?thisoldhouse\.com/(?:watch|how-to)/(?P[^/?#]+)' + _VALID_URL = r'https?://(?:www\.)?thisoldhouse\.com/(?:watch|how-to|tv-episode)/(?P[^/?#]+)' _TESTS = [{ 'url': 'https://www.thisoldhouse.com/how-to/how-to-build-storage-bench', - 'md5': '568acf9ca25a639f0c4ff905826b662f', + 'md5': '946f05bbaa12a33f9ae35580d2dfcfe3', 'info_dict': { 'id': '2REGtUDQ', 'ext': 'mp4', @@ -20,6 +20,9 @@ class ThisOldHouseIE(InfoExtractor): }, { 'url': 'https://www.thisoldhouse.com/watch/arlington-arts-crafts-arts-and-crafts-class-begins', 'only_matching': True, + }, { + 'url': 'https://www.thisoldhouse.com/tv-episode/ask-toh-shelf-rough-electric', + 'only_matching': True, }] def _real_extract(self, url): diff --git a/youtube_dl/extractor/tinypic.py b/youtube_dl/extractor/tinypic.py index c43cace..bc2def5 100644 --- a/youtube_dl/extractor/tinypic.py +++ b/youtube_dl/extractor/tinypic.py @@ -34,7 +34,7 @@ class TinyPicIE(InfoExtractor): webpage = self._download_webpage(url, video_id, 'Downloading page') mobj = re.search(r'(?m)fo\.addVariable\("file",\s"(?P[\da-z]+)"\);\n' - '\s+fo\.addVariable\("s",\s"(?P\d+)"\);', webpage) + r'\s+fo\.addVariable\("s",\s"(?P\d+)"\);', webpage) if mobj is None: raise ExtractorError('Video %s does not exist' % video_id, expected=True) diff --git a/youtube_dl/extractor/tnaflix.py b/youtube_dl/extractor/tnaflix.py index 77d56b8..7e6ec34 100644 --- a/youtube_dl/extractor/tnaflix.py +++ b/youtube_dl/extractor/tnaflix.py @@ -91,7 +91,7 @@ class TNAFlixNetworkBaseIE(InfoExtractor): formats = [] def extract_video_url(vl): - return re.sub('speed=\d+', 'speed=', unescapeHTML(vl.text)) + return re.sub(r'speed=\d+', 'speed=', unescapeHTML(vl.text)) video_link = cfg_xml.find('./videoLink') if video_link is not None: @@ -174,7 +174,7 @@ class TNAFlixNetworkEmbedIE(TNAFlixNetworkBaseIE): 'display_id': '6538', 'ext': 'mp4', 'title': 'Educational xxx video', - 'thumbnail': 're:https?://.*\.jpg$', + 'thumbnail': r're:https?://.*\.jpg$', 'age_limit': 18, }, 'params': { @@ -209,7 +209,7 @@ class TNAFlixIE(TNAFlixNetworkBaseIE): 'display_id': 'Carmella-Decesare-striptease', 'ext': 'mp4', 'title': 'Carmella Decesare - striptease', - 'thumbnail': 're:https?://.*\.jpg$', + 'thumbnail': r're:https?://.*\.jpg$', 'duration': 91, 'age_limit': 18, 'categories': ['Porn Stars'], @@ -224,7 +224,7 @@ class TNAFlixIE(TNAFlixNetworkBaseIE): 'ext': 'mp4', 'title': 'Educational xxx video', 'description': 'md5:b4fab8f88a8621c8fabd361a173fe5b8', - 'thumbnail': 're:https?://.*\.jpg$', + 'thumbnail': r're:https?://.*\.jpg$', 'duration': 164, 'age_limit': 18, 'uploader': 'bobwhite39', @@ -250,7 +250,7 @@ class EMPFlixIE(TNAFlixNetworkBaseIE): 'ext': 'mp4', 'title': 'Amateur Finger Fuck', 'description': 'Amateur solo finger fucking.', - 'thumbnail': 're:https?://.*\.jpg$', + 'thumbnail': r're:https?://.*\.jpg$', 'duration': 83, 'age_limit': 18, 'uploader': 'cwbike', @@ -280,7 +280,7 @@ class MovieFapIE(TNAFlixNetworkBaseIE): 'ext': 'mp4', 'title': 'Experienced MILF Amazing Handjob', 'description': 'Experienced MILF giving an Amazing Handjob', - 'thumbnail': 're:https?://.*\.jpg$', + 'thumbnail': r're:https?://.*\.jpg$', 'age_limit': 18, 'uploader': 'darvinfred06', 'view_count': int, @@ -298,7 +298,7 @@ class MovieFapIE(TNAFlixNetworkBaseIE): 'ext': 'flv', 'title': 'Jeune Couple Russe', 'description': 'Amateur', - 'thumbnail': 're:https?://.*\.jpg$', + 'thumbnail': r're:https?://.*\.jpg$', 'age_limit': 18, 'uploader': 'whiskeyjar', 'view_count': int, diff --git a/youtube_dl/extractor/tudou.py b/youtube_dl/extractor/tudou.py index bb8b8e2..2aae55e 100644 --- a/youtube_dl/extractor/tudou.py +++ b/youtube_dl/extractor/tudou.py @@ -23,7 +23,7 @@ class TudouIE(InfoExtractor): 'id': '159448201', 'ext': 'f4v', 'title': '卡马乔国足开大脚长传冲吊集锦', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'timestamp': 1372113489000, 'description': '卡马乔卡家军,开大脚先进战术不完全集锦!', 'duration': 289.04, @@ -36,7 +36,7 @@ class TudouIE(InfoExtractor): 'id': '117049447', 'ext': 'f4v', 'title': 'La Sylphide-Bolshoi-Ekaterina Krysanova & Vyacheslav Lopatin 2012', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'timestamp': 1349207518000, 'description': 'md5:294612423894260f2dcd5c6c04fe248b', 'duration': 5478.33, diff --git a/youtube_dl/extractor/tumblr.py b/youtube_dl/extractor/tumblr.py index ebe411e..7861435 100644 --- a/youtube_dl/extractor/tumblr.py +++ b/youtube_dl/extractor/tumblr.py @@ -17,7 +17,7 @@ class TumblrIE(InfoExtractor): 'ext': 'mp4', 'title': 'tatiana maslany news, Orphan Black || DVD extra - behind the scenes ↳...', 'description': 'md5:37db8211e40b50c7c44e95da14f630b7', - 'thumbnail': 're:http://.*\.jpg', + 'thumbnail': r're:http://.*\.jpg', } }, { 'url': 'http://5sostrum.tumblr.com/post/90208453769/yall-forgetting-the-greatest-keek-of-them-all', @@ -27,7 +27,7 @@ class TumblrIE(InfoExtractor): 'ext': 'mp4', 'title': '5SOS STRUM ;]', 'description': 'md5:dba62ac8639482759c8eb10ce474586a', - 'thumbnail': 're:http://.*\.jpg', + 'thumbnail': r're:http://.*\.jpg', } }, { 'url': 'http://hdvideotest.tumblr.com/post/130323439814/test-description-for-my-hd-video', @@ -37,7 +37,7 @@ class TumblrIE(InfoExtractor): 'ext': 'mp4', 'title': 'HD Video Testing \u2014 Test description for my HD video', 'description': 'md5:97cc3ab5fcd27ee4af6356701541319c', - 'thumbnail': 're:http://.*\.jpg', + 'thumbnail': r're:http://.*\.jpg', }, 'params': { 'format': 'hd', @@ -92,7 +92,7 @@ class TumblrIE(InfoExtractor): 'title': 'Video by victoriassecret', 'description': 'Invisibility or flight…which superpower would YOU choose? #VSFashionShow #ThisOrThat', 'uploader_id': 'victoriassecret', - 'thumbnail': 're:^https?://.*\.jpg' + 'thumbnail': r're:^https?://.*\.jpg' }, 'add_ie': ['Instagram'], }] diff --git a/youtube_dl/extractor/tunein.py b/youtube_dl/extractor/tunein.py index ae4cfae..7e51de8 100644 --- a/youtube_dl/extractor/tunein.py +++ b/youtube_dl/extractor/tunein.py @@ -11,6 +11,12 @@ from ..compat import compat_urlparse class TuneInBaseIE(InfoExtractor): _API_BASE_URL = 'http://tunein.com/tuner/tune/' + @staticmethod + def _extract_urls(webpage): + return re.findall( + r']+src=["\'](?P(?:https?://)?tunein\.com/embed/player/[pst]\d+)', + webpage) + def _real_extract(self, url): content_id = self._match_id(url) @@ -69,82 +75,83 @@ class TuneInClipIE(TuneInBaseIE): _VALID_URL = r'https?://(?:www\.)?tunein\.com/station/.*?audioClipId\=(?P\d+)' _API_URL_QUERY = '?tuneType=AudioClip&audioclipId=%s' - _TESTS = [ - { - 'url': 'http://tunein.com/station/?stationId=246119&audioClipId=816', - 'md5': '99f00d772db70efc804385c6b47f4e77', - 'info_dict': { - 'id': '816', - 'title': '32m', - 'ext': 'mp3', - }, + _TESTS = [{ + 'url': 'http://tunein.com/station/?stationId=246119&audioClipId=816', + 'md5': '99f00d772db70efc804385c6b47f4e77', + 'info_dict': { + 'id': '816', + 'title': '32m', + 'ext': 'mp3', }, - ] + }] class TuneInStationIE(TuneInBaseIE): IE_NAME = 'tunein:station' - _VALID_URL = r'https?://(?:www\.)?tunein\.com/(?:radio/.*?-s|station/.*?StationId\=)(?P\d+)' + _VALID_URL = r'https?://(?:www\.)?tunein\.com/(?:radio/.*?-s|station/.*?StationId=|embed/player/s)(?P\d+)' _API_URL_QUERY = '?tuneType=Station&stationId=%s' @classmethod def suitable(cls, url): return False if TuneInClipIE.suitable(url) else super(TuneInStationIE, cls).suitable(url) - _TESTS = [ - { - 'url': 'http://tunein.com/radio/Jazz24-885-s34682/', - 'info_dict': { - 'id': '34682', - 'title': 'Jazz 24 on 88.5 Jazz24 - KPLU-HD2', - 'ext': 'mp3', - 'location': 'Tacoma, WA', - }, - 'params': { - 'skip_download': True, # live stream - }, + _TESTS = [{ + 'url': 'http://tunein.com/radio/Jazz24-885-s34682/', + 'info_dict': { + 'id': '34682', + 'title': 'Jazz 24 on 88.5 Jazz24 - KPLU-HD2', + 'ext': 'mp3', + 'location': 'Tacoma, WA', + }, + 'params': { + 'skip_download': True, # live stream }, - ] + }, { + 'url': 'http://tunein.com/embed/player/s6404/', + 'only_matching': True, + }] class TuneInProgramIE(TuneInBaseIE): IE_NAME = 'tunein:program' - _VALID_URL = r'https?://(?:www\.)?tunein\.com/(?:radio/.*?-p|program/.*?ProgramId\=)(?P\d+)' + _VALID_URL = r'https?://(?:www\.)?tunein\.com/(?:radio/.*?-p|program/.*?ProgramId=|embed/player/p)(?P\d+)' _API_URL_QUERY = '?tuneType=Program&programId=%s' - _TESTS = [ - { - 'url': 'http://tunein.com/radio/Jazz-24-p2506/', - 'info_dict': { - 'id': '2506', - 'title': 'Jazz 24 on 91.3 WUKY-HD3', - 'ext': 'mp3', - 'location': 'Lexington, KY', - }, - 'params': { - 'skip_download': True, # live stream - }, + _TESTS = [{ + 'url': 'http://tunein.com/radio/Jazz-24-p2506/', + 'info_dict': { + 'id': '2506', + 'title': 'Jazz 24 on 91.3 WUKY-HD3', + 'ext': 'mp3', + 'location': 'Lexington, KY', }, - ] + 'params': { + 'skip_download': True, # live stream + }, + }, { + 'url': 'http://tunein.com/embed/player/p191660/', + 'only_matching': True, + }] class TuneInTopicIE(TuneInBaseIE): IE_NAME = 'tunein:topic' - _VALID_URL = r'https?://(?:www\.)?tunein\.com/topic/.*?TopicId\=(?P\d+)' + _VALID_URL = r'https?://(?:www\.)?tunein\.com/(?:topic/.*?TopicId=|embed/player/t)(?P\d+)' _API_URL_QUERY = '?tuneType=Topic&topicId=%s' - _TESTS = [ - { - 'url': 'http://tunein.com/topic/?TopicId=101830576', - 'md5': 'c31a39e6f988d188252eae7af0ef09c9', - 'info_dict': { - 'id': '101830576', - 'title': 'Votez pour moi du 29 octobre 2015 (29/10/15)', - 'ext': 'mp3', - 'location': 'Belgium', - }, + _TESTS = [{ + 'url': 'http://tunein.com/topic/?TopicId=101830576', + 'md5': 'c31a39e6f988d188252eae7af0ef09c9', + 'info_dict': { + 'id': '101830576', + 'title': 'Votez pour moi du 29 octobre 2015 (29/10/15)', + 'ext': 'mp3', + 'location': 'Belgium', }, - ] + }, { + 'url': 'http://tunein.com/embed/player/t101830576/', + 'only_matching': True, + }] class TuneInShortenerIE(InfoExtractor): diff --git a/youtube_dl/extractor/turbo.py b/youtube_dl/extractor/turbo.py index 7ae63a4..25aa9c5 100644 --- a/youtube_dl/extractor/turbo.py +++ b/youtube_dl/extractor/turbo.py @@ -24,7 +24,7 @@ class TurboIE(InfoExtractor): 'duration': 3715, 'title': 'Turbo du 07/09/2014 : Renault Twingo 3, Bentley Continental GT Speed, CES, Guide Achat Dacia... ', 'description': 'Turbo du 07/09/2014 : Renault Twingo 3, Bentley Continental GT Speed, CES, Guide Achat Dacia...', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', } } diff --git a/youtube_dl/extractor/turner.py b/youtube_dl/extractor/turner.py index 57ffedb..1c0be9f 100644 --- a/youtube_dl/extractor/turner.py +++ b/youtube_dl/extractor/turner.py @@ -100,9 +100,13 @@ class TurnerBaseIE(AdobePassIE): formats.extend(self._extract_smil_formats( video_url, video_id, fatal=False)) elif ext == 'm3u8': - formats.extend(self._extract_m3u8_formats( + m3u8_formats = self._extract_m3u8_formats( video_url, video_id, 'mp4', - m3u8_id=format_id or 'hls', fatal=False)) + m3u8_id=format_id or 'hls', fatal=False) + if '/secure/' in video_url and '?hdnea=' in video_url: + for f in m3u8_formats: + f['_seekable'] = False + formats.extend(m3u8_formats) elif ext == 'f4m': formats.extend(self._extract_f4m_formats( update_url_query(video_url, {'hdcore': '3.7.0'}), diff --git a/youtube_dl/extractor/tv2.py b/youtube_dl/extractor/tv2.py index bd28267..d5071e8 100644 --- a/youtube_dl/extractor/tv2.py +++ b/youtube_dl/extractor/tv2.py @@ -126,7 +126,7 @@ class TV2ArticleIE(InfoExtractor): if not assets: # New embed pattern - for v in re.findall('TV2ContentboxVideo\(({.+?})\)', webpage): + for v in re.findall(r'TV2ContentboxVideo\(({.+?})\)', webpage): video = self._parse_json( v, playlist_id, transform_source=js_to_json, fatal=False) if not video: diff --git a/youtube_dl/extractor/tv4.py b/youtube_dl/extractor/tv4.py index 5d2d8f1..ad79db9 100644 --- a/youtube_dl/extractor/tv4.py +++ b/youtube_dl/extractor/tv4.py @@ -4,11 +4,10 @@ from __future__ import unicode_literals from .common import InfoExtractor from ..compat import compat_str from ..utils import ( - ExtractorError, int_or_none, parse_iso8601, try_get, - update_url_query, + determine_ext, ) @@ -28,24 +27,24 @@ class TV4IE(InfoExtractor): _TESTS = [ { 'url': 'http://www.tv4.se/kalla-fakta/klipp/kalla-fakta-5-english-subtitles-2491650', - 'md5': '909d6454b87b10a25aa04c4bdd416a9b', + 'md5': 'cb837212f342d77cec06e6dad190e96d', 'info_dict': { 'id': '2491650', 'ext': 'mp4', 'title': 'Kalla Fakta 5 (english subtitles)', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'timestamp': int, 'upload_date': '20131125', }, }, { 'url': 'http://www.tv4play.se/iframe/video/3054113', - 'md5': '77f851c55139ffe0ebd41b6a5552489b', + 'md5': 'cb837212f342d77cec06e6dad190e96d', 'info_dict': { 'id': '3054113', 'ext': 'mp4', 'title': 'SÃ¥ här jobbar ficktjuvarna - se avslöjande bilder', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'description': 'Unika bilder avslöjar hur turisternas fickor vittjas mitt pÃ¥ Stockholms central. TvÃ¥ experter pÃ¥ ficktjuvarna avslöjar knepen du ska se upp för.', 'timestamp': int, 'upload_date': '20150130', @@ -75,11 +74,10 @@ class TV4IE(InfoExtractor): # If is_geo_restricted is true, it doesn't necessarily mean we can't download it if info.get('is_geo_restricted'): self.report_warning('This content might not be available in your country due to licensing restrictions.') - if info.get('requires_subscription'): - raise ExtractorError('This content requires subscription.', expected=True) title = info['title'] + subtitles = {} formats = [] # http formats are linked with unresolvable host for kind in ('hls', ''): @@ -87,26 +85,41 @@ class TV4IE(InfoExtractor): 'https://prima.tv4play.se/api/web/asset/%s/play.json' % video_id, video_id, 'Downloading sources JSON', query={ 'protocol': kind, - 'videoFormat': 'MP4+WEBVTTS+WEBVTT', + 'videoFormat': 'MP4+WEBVTT', }) - item = try_get(data, lambda x: x['playback']['items']['item'], dict) - manifest_url = item.get('url') - if not isinstance(manifest_url, compat_str): + items = try_get(data, lambda x: x['playback']['items']['item']) + if not items: continue - if kind == 'hls': - formats.extend(self._extract_m3u8_formats( - manifest_url, video_id, 'mp4', entry_protocol='m3u8_native', - m3u8_id=kind, fatal=False)) - else: - formats.extend(self._extract_f4m_formats( - update_url_query(manifest_url, {'hdcore': '3.8.0'}), - video_id, f4m_id='hds', fatal=False)) + if isinstance(items, dict): + items = [items] + for item in items: + manifest_url = item.get('url') + if not isinstance(manifest_url, compat_str): + continue + ext = determine_ext(manifest_url) + if ext == 'm3u8': + formats.extend(self._extract_m3u8_formats( + manifest_url, video_id, 'mp4', entry_protocol='m3u8_native', + m3u8_id=kind, fatal=False)) + elif ext == 'f4m': + formats.extend(self._extract_akamai_formats( + manifest_url, video_id, { + 'hls': 'tv4play-i.akamaihd.net', + })) + elif ext == 'webvtt': + subtitles = self._merge_subtitles( + subtitles, { + 'sv': [{ + 'url': manifest_url, + 'ext': 'vtt', + }]}) self._sort_formats(formats) return { 'id': video_id, 'title': title, 'formats': formats, + 'subtitles': subtitles, 'description': info.get('description'), 'timestamp': parse_iso8601(info.get('broadcast_date_time')), 'duration': int_or_none(info.get('duration')), diff --git a/youtube_dl/extractor/tva.py b/youtube_dl/extractor/tva.py new file mode 100644 index 0000000..3ced098 --- /dev/null +++ b/youtube_dl/extractor/tva.py @@ -0,0 +1,54 @@ +# coding: utf-8 +from __future__ import unicode_literals + +from .common import InfoExtractor +from ..utils import ( + int_or_none, + parse_iso8601, + smuggle_url, +) + + +class TVAIE(InfoExtractor): + _VALID_URL = r'https?://videos\.tva\.ca/episode/(?P\d+)' + _TEST = { + 'url': 'http://videos.tva.ca/episode/85538', + 'info_dict': { + 'id': '85538', + 'ext': 'mp4', + 'title': 'Épisode du 25 janvier 2017', + 'description': 'md5:e9e7fb5532ab37984d2dc87229cadf98', + 'upload_date': '20170126', + 'timestamp': 1485442329, + }, + 'params': { + # m3u8 download + 'skip_download': True, + } + } + + def _real_extract(self, url): + video_id = self._match_id(url) + video_data = self._download_json( + "https://d18jmrhziuoi7p.cloudfront.net/isl/api/v1/dataservice/Items('%s')" % video_id, + video_id, query={ + '$expand': 'Metadata,CustomId', + '$select': 'Metadata,Id,Title,ShortDescription,LongDescription,CreatedDate,CustomId,AverageUserRating,Categories,ShowName', + '$format': 'json', + }) + metadata = video_data.get('Metadata', {}) + + return { + '_type': 'url_transparent', + 'id': video_id, + 'title': video_data['Title'], + 'url': smuggle_url('ooyala:' + video_data['CustomId'], {'supportedformats': 'm3u8,hds'}), + 'description': video_data.get('LongDescription') or video_data.get('ShortDescription'), + 'series': video_data.get('ShowName'), + 'episode': metadata.get('EpisodeTitle'), + 'episode_number': int_or_none(metadata.get('EpisodeNumber')), + 'categories': video_data.get('Categories'), + 'average_rating': video_data.get('AverageUserRating'), + 'timestamp': parse_iso8601(video_data.get('CreatedDate')), + 'ie_key': 'Ooyala', + } diff --git a/youtube_dl/extractor/tvc.py b/youtube_dl/extractor/tvc.py index 4065354..008f64c 100644 --- a/youtube_dl/extractor/tvc.py +++ b/youtube_dl/extractor/tvc.py @@ -19,7 +19,7 @@ class TVCIE(InfoExtractor): 'id': '74622', 'ext': 'mp4', 'title': 'События. "События". Эфир от 22.05.2015 14:30', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'duration': 1122, }, } @@ -72,7 +72,7 @@ class TVCArticleIE(InfoExtractor): 'ext': 'mp4', 'title': 'События. "События". Эфир от 22.05.2015 14:30', 'description': 'md5:ad7aa7db22903f983e687b8a3e98c6dd', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'duration': 1122, }, }, { @@ -82,7 +82,7 @@ class TVCArticleIE(InfoExtractor): 'ext': 'mp4', 'title': 'Эксперты: в столице встал вопрос о максимально безопасных остановках', 'description': 'md5:f2098f71e21f309e89f69b525fd9846e', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'duration': 278, }, }, { @@ -92,7 +92,7 @@ class TVCArticleIE(InfoExtractor): 'ext': 'mp4', 'title': 'Ещё не поздно. Эфир от 03.08.2013', 'description': 'md5:51fae9f3f8cfe67abce014e428e5b027', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'duration': 3316, }, }] diff --git a/youtube_dl/extractor/tweakers.py b/youtube_dl/extractor/tweakers.py index 7a9386c..2b10d9b 100644 --- a/youtube_dl/extractor/tweakers.py +++ b/youtube_dl/extractor/tweakers.py @@ -18,7 +18,7 @@ class TweakersIE(InfoExtractor): 'ext': 'mp4', 'title': 'New Nintendo 3DS XL - Op alle fronten beter', 'description': 'md5:3789b21fed9c0219e9bcaacd43fab280', - 'thumbnail': 're:^https?://.*\.jpe?g$', + 'thumbnail': r're:^https?://.*\.jpe?g$', 'duration': 386, 'uploader_id': 's7JeEm', } diff --git a/youtube_dl/extractor/twentyfourvideo.py b/youtube_dl/extractor/twentyfourvideo.py index af92b71..a983ebf 100644 --- a/youtube_dl/extractor/twentyfourvideo.py +++ b/youtube_dl/extractor/twentyfourvideo.py @@ -12,7 +12,7 @@ from ..utils import ( class TwentyFourVideoIE(InfoExtractor): IE_NAME = '24video' - _VALID_URL = r'https?://(?:www\.)?24video\.(?:net|me|xxx)/(?:video/(?:view|xml)/|player/new24_play\.swf\?id=)(?P\d+)' + _VALID_URL = r'https?://(?:www\.)?24video\.(?:net|me|xxx|sex)/(?:video/(?:view|xml)/|player/new24_play\.swf\?id=)(?P\d+)' _TESTS = [{ 'url': 'http://www.24video.net/video/view/1044982', @@ -22,7 +22,7 @@ class TwentyFourVideoIE(InfoExtractor): 'ext': 'mp4', 'title': 'Эротика каменного века', 'description': 'Как смотрели порно в каменном веке.', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'uploader': 'SUPERTELO', 'duration': 31, 'timestamp': 1275937857, @@ -43,7 +43,7 @@ class TwentyFourVideoIE(InfoExtractor): video_id = self._match_id(url) webpage = self._download_webpage( - 'http://www.24video.net/video/view/%s' % video_id, video_id) + 'http://www.24video.sex/video/view/%s' % video_id, video_id) title = self._og_search_title(webpage) description = self._html_search_regex( @@ -69,11 +69,11 @@ class TwentyFourVideoIE(InfoExtractor): # Sets some cookies self._download_xml( - r'http://www.24video.net/video/xml/%s?mode=init' % video_id, + r'http://www.24video.sex/video/xml/%s?mode=init' % video_id, video_id, 'Downloading init XML') video_xml = self._download_xml( - 'http://www.24video.net/video/xml/%s?mode=play' % video_id, + 'http://www.24video.sex/video/xml/%s?mode=play' % video_id, video_id, 'Downloading video XML') video = xpath_element(video_xml, './/video', 'video', fatal=True) diff --git a/youtube_dl/extractor/twentymin.py b/youtube_dl/extractor/twentymin.py index b721ecb..4fd1aa4 100644 --- a/youtube_dl/extractor/twentymin.py +++ b/youtube_dl/extractor/twentymin.py @@ -4,91 +4,88 @@ from __future__ import unicode_literals import re from .common import InfoExtractor -from ..utils import remove_end +from ..utils import ( + int_or_none, + try_get, +) class TwentyMinutenIE(InfoExtractor): IE_NAME = '20min' - _VALID_URL = r'https?://(?:www\.)?20min\.ch/(?:videotv/*\?.*\bvid=(?P\d+)|(?:[^/]+/)*(?P[^/#?]+))' + _VALID_URL = r'''(?x) + https?:// + (?:www\.)?20min\.ch/ + (?: + videotv/*\?.*?\bvid=| + videoplayer/videoplayer\.html\?.*?\bvideoId@ + ) + (?P\d+) + ''' _TESTS = [{ - # regular video 'url': 'http://www.20min.ch/videotv/?vid=469148&cid=2', - 'md5': 'b52d6bc6ea6398e6a38f12cfd418149c', + 'md5': 'e7264320db31eed8c38364150c12496e', 'info_dict': { 'id': '469148', - 'ext': 'flv', + 'ext': 'mp4', 'title': '85 000 Franken für 15 perfekte Minuten', - 'description': 'Was die Besucher vom Silvesterzauber erwarten können. (Video: Alice Grosjean/Murat Temel)', - 'thumbnail': 'http://thumbnails.20min-tv.ch/server063/469148/frame-72-469148.jpg' - } - }, { - # news article with video - 'url': 'http://www.20min.ch/schweiz/news/story/-Wir-muessen-mutig-nach-vorne-schauen--22050469', - 'md5': 'cd4cbb99b94130cff423e967cd275e5e', - 'info_dict': { - 'id': '469408', - 'display_id': '-Wir-muessen-mutig-nach-vorne-schauen--22050469', - 'ext': 'flv', - 'title': '«Wir müssen mutig nach vorne schauen»', - 'description': 'Kein Land sei innovativer als die Schweiz, sagte Johann Schneider-Ammann in seiner Neujahrsansprache. Das Land müsse aber seine Hausaufgaben machen.', - 'thumbnail': 'http://www.20min.ch/images/content/2/2/0/22050469/10/teaserbreit.jpg' + 'thumbnail': r're:https?://.*\.jpg$', }, - 'skip': '"This video is no longer available" is shown both on the web page and in the downloaded file.', }, { - # YouTube embed - 'url': 'http://www.20min.ch/ro/sports/football/story/Il-marque-une-bicyclette-de-plus-de-30-metres--21115184', - 'md5': 'cec64d59aa01c0ed9dbba9cf639dd82f', + 'url': 'http://www.20min.ch/videoplayer/videoplayer.html?params=client@twentyDE|videoId@523629', 'info_dict': { - 'id': 'ivM7A7SpDOs', + 'id': '523629', 'ext': 'mp4', - 'title': 'GOLAZO DE CHILENA DE JAVI GÓMEZ, FINALISTA AL BALÓN DE CLM 2016', - 'description': 'md5:903c92fbf2b2f66c09de514bc25e9f5a', - 'upload_date': '20160424', - 'uploader': 'RTVCM Castilla-La Mancha', - 'uploader_id': 'RTVCM', + 'title': 'So kommen Sie bei Eis und Schnee sicher an', + 'description': 'md5:117c212f64b25e3d95747e5276863f7d', + 'thumbnail': r're:https?://.*\.jpg$', + }, + 'params': { + 'skip_download': True, }, - 'add_ie': ['Youtube'], }, { 'url': 'http://www.20min.ch/videotv/?cid=44&vid=468738', 'only_matching': True, - }, { - 'url': 'http://www.20min.ch/ro/sortir/cinema/story/Grandir-au-bahut--c-est-dur-18927411', - 'only_matching': True, }] + @staticmethod + def _extract_urls(webpage): + return [m.group('url') for m in re.finditer( + r']+src=(["\'])(?P(?:https?://)?(?:www\.)?20min\.ch/videoplayer/videoplayer.html\?.*?\bvideoId@\d+.*?)\1', + webpage)] + def _real_extract(self, url): - mobj = re.match(self._VALID_URL, url) - video_id = mobj.group('id') - display_id = mobj.group('display_id') or video_id + video_id = self._match_id(url) + + video = self._download_json( + 'http://api.20min.ch/video/%s/show' % video_id, + video_id)['content'] - webpage = self._download_webpage(url, display_id) + title = video['title'] - youtube_url = self._html_search_regex( - r']+src="((?:https?:)?//www\.youtube\.com/embed/[^"]+)"', - webpage, 'YouTube embed URL', default=None) - if youtube_url is not None: - return self.url_result(youtube_url, 'Youtube') + formats = [{ + 'format_id': format_id, + 'url': 'http://podcast.20min-tv.ch/podcast/20min/%s%s.mp4' % (video_id, p), + 'quality': quality, + } for quality, (format_id, p) in enumerate([('sd', ''), ('hd', 'h')])] + self._sort_formats(formats) - title = self._html_search_regex( - r'

    .*?(.+?)

    ', - webpage, 'title', default=None) - if not title: - title = remove_end(re.sub( - r'^20 [Mm]inuten.*? -', '', self._og_search_title(webpage)), ' - News') + description = video.get('lead') + thumbnail = video.get('thumbnail') - if not video_id: - video_id = self._search_regex( - r'"file\d?"\s*,\s*\"(\d+)', webpage, 'video id') + def extract_count(kind): + return try_get( + video, + lambda x: int_or_none(x['communityobject']['thumbs_%s' % kind])) - description = self._html_search_meta( - 'description', webpage, 'description') - thumbnail = self._og_search_thumbnail(webpage) + like_count = extract_count('up') + dislike_count = extract_count('down') return { 'id': video_id, - 'display_id': display_id, - 'url': 'http://speed.20min-tv.ch/%sm.flv' % video_id, 'title': title, 'description': description, 'thumbnail': thumbnail, + 'like_count': like_count, + 'dislike_count': dislike_count, + 'formats': formats, } diff --git a/youtube_dl/extractor/twitch.py b/youtube_dl/extractor/twitch.py index 77414a2..bbba394 100644 --- a/youtube_dl/extractor/twitch.py +++ b/youtube_dl/extractor/twitch.py @@ -22,6 +22,7 @@ from ..utils import ( orderedSet, parse_duration, parse_iso8601, + update_url_query, urlencode_postdata, ) @@ -205,7 +206,14 @@ class TwitchChapterIE(TwitchItemBaseIE): class TwitchVodIE(TwitchItemBaseIE): IE_NAME = 'twitch:vod' - _VALID_URL = r'%s/[^/]+/v/(?P\d+)' % TwitchBaseIE._VALID_URL_BASE + _VALID_URL = r'''(?x) + https?:// + (?: + (?:www\.)?twitch\.tv/(?:[^/]+/v|videos)/| + player\.twitch\.tv/\?.*?\bvideo=v + ) + (?P\d+) + ''' _ITEM_TYPE = 'vod' _ITEM_SHORTCUT = 'v' @@ -215,7 +223,7 @@ class TwitchVodIE(TwitchItemBaseIE): 'id': 'v6528877', 'ext': 'mp4', 'title': 'LCK Summer Split - Week 6 Day 1', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'duration': 17208, 'timestamp': 1435131709, 'upload_date': '20150624', @@ -235,7 +243,7 @@ class TwitchVodIE(TwitchItemBaseIE): 'id': 'v11230755', 'ext': 'mp4', 'title': 'Untitled Broadcast', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'duration': 1638, 'timestamp': 1439746708, 'upload_date': '20150816', @@ -248,6 +256,12 @@ class TwitchVodIE(TwitchItemBaseIE): 'skip_download': True, }, 'skip': 'HTTP Error 404: Not Found', + }, { + 'url': 'http://player.twitch.tv/?t=5m10s&video=v6528877', + 'only_matching': True, + }, { + 'url': 'https://www.twitch.tv/videos/6528877', + 'only_matching': True, }] def _real_extract(self, url): @@ -279,6 +293,18 @@ class TwitchVodIE(TwitchItemBaseIE): if 't' in query: info['start_time'] = parse_duration(query['t'][0]) + if info.get('timestamp') is not None: + info['subtitles'] = { + 'rechat': [{ + 'url': update_url_query( + 'https://rechat.twitch.tv/rechat-messages', { + 'video_id': 'v%s' % item_id, + 'start': info['timestamp'], + }), + 'ext': 'json', + }], + } + return info @@ -300,7 +326,7 @@ class TwitchPlaylistBaseIE(TwitchBaseIE): response = self._call_api( self._PLAYLIST_PATH % (channel_id, offset, limit), channel_id, - 'Downloading %s videos JSON page %s' + 'Downloading %s JSON page %s' % (self._PLAYLIST_TYPE, counter_override or counter)) page_entries = self._extract_playlist_page(response) if not page_entries: @@ -350,25 +376,85 @@ class TwitchProfileIE(TwitchPlaylistBaseIE): } -class TwitchPastBroadcastsIE(TwitchPlaylistBaseIE): - IE_NAME = 'twitch:past_broadcasts' - _VALID_URL = r'%s/(?P[^/]+)/profile/past_broadcasts/?(?:\#.*)?$' % TwitchBaseIE._VALID_URL_BASE - _PLAYLIST_PATH = TwitchPlaylistBaseIE._PLAYLIST_PATH + '&broadcasts=true' +class TwitchVideosBaseIE(TwitchPlaylistBaseIE): + _VALID_URL_VIDEOS_BASE = r'%s/(?P[^/]+)/videos' % TwitchBaseIE._VALID_URL_BASE + _PLAYLIST_PATH = TwitchPlaylistBaseIE._PLAYLIST_PATH + '&broadcast_type=' + + +class TwitchAllVideosIE(TwitchVideosBaseIE): + IE_NAME = 'twitch:videos:all' + _VALID_URL = r'%s/all' % TwitchVideosBaseIE._VALID_URL_VIDEOS_BASE + _PLAYLIST_PATH = TwitchVideosBaseIE._PLAYLIST_PATH + 'archive,upload,highlight' + _PLAYLIST_TYPE = 'all videos' + + _TEST = { + 'url': 'https://www.twitch.tv/spamfish/videos/all', + 'info_dict': { + 'id': 'spamfish', + 'title': 'Spamfish', + }, + 'playlist_mincount': 869, + } + + +class TwitchUploadsIE(TwitchVideosBaseIE): + IE_NAME = 'twitch:videos:uploads' + _VALID_URL = r'%s/uploads' % TwitchVideosBaseIE._VALID_URL_VIDEOS_BASE + _PLAYLIST_PATH = TwitchVideosBaseIE._PLAYLIST_PATH + 'upload' + _PLAYLIST_TYPE = 'uploads' + + _TEST = { + 'url': 'https://www.twitch.tv/spamfish/videos/uploads', + 'info_dict': { + 'id': 'spamfish', + 'title': 'Spamfish', + }, + 'playlist_mincount': 0, + } + + +class TwitchPastBroadcastsIE(TwitchVideosBaseIE): + IE_NAME = 'twitch:videos:past-broadcasts' + _VALID_URL = r'%s/past-broadcasts' % TwitchVideosBaseIE._VALID_URL_VIDEOS_BASE + _PLAYLIST_PATH = TwitchVideosBaseIE._PLAYLIST_PATH + 'archive' _PLAYLIST_TYPE = 'past broadcasts' _TEST = { - 'url': 'http://www.twitch.tv/spamfish/profile/past_broadcasts', + 'url': 'https://www.twitch.tv/spamfish/videos/past-broadcasts', + 'info_dict': { + 'id': 'spamfish', + 'title': 'Spamfish', + }, + 'playlist_mincount': 0, + } + + +class TwitchHighlightsIE(TwitchVideosBaseIE): + IE_NAME = 'twitch:videos:highlights' + _VALID_URL = r'%s/highlights' % TwitchVideosBaseIE._VALID_URL_VIDEOS_BASE + _PLAYLIST_PATH = TwitchVideosBaseIE._PLAYLIST_PATH + 'highlight' + _PLAYLIST_TYPE = 'highlights' + + _TEST = { + 'url': 'https://www.twitch.tv/spamfish/videos/highlights', 'info_dict': { 'id': 'spamfish', 'title': 'Spamfish', }, - 'playlist_mincount': 54, + 'playlist_mincount': 805, } class TwitchStreamIE(TwitchBaseIE): IE_NAME = 'twitch:stream' - _VALID_URL = r'%s/(?P[^/#?]+)/?(?:\#.*)?$' % TwitchBaseIE._VALID_URL_BASE + _VALID_URL = r'''(?x) + https?:// + (?: + (?:www\.)?twitch\.tv/| + player\.twitch\.tv/\?.*?\bchannel= + ) + (?P[^/#?]+) + ''' _TESTS = [{ 'url': 'http://www.twitch.tv/shroomztv', @@ -392,8 +478,25 @@ class TwitchStreamIE(TwitchBaseIE): }, { 'url': 'http://www.twitch.tv/miracle_doto#profile-0', 'only_matching': True, + }, { + 'url': 'https://player.twitch.tv/?channel=lotsofs', + 'only_matching': True, }] + @classmethod + def suitable(cls, url): + return (False + if any(ie.suitable(url) for ie in ( + TwitchVideoIE, + TwitchChapterIE, + TwitchVodIE, + TwitchProfileIE, + TwitchAllVideosIE, + TwitchUploadsIE, + TwitchPastBroadcastsIE, + TwitchHighlightsIE)) + else super(TwitchStreamIE, cls).suitable(url)) + def _real_extract(self, url): channel_id = self._match_id(url) @@ -474,7 +577,7 @@ class TwitchClipsIE(InfoExtractor): 'id': 'AggressiveCobraPoooound', 'ext': 'mp4', 'title': 'EA Play 2016 Live from the Novo Theatre', - 'thumbnail': 're:^https?://.*\.jpg', + 'thumbnail': r're:^https?://.*\.jpg', 'creator': 'EA', 'uploader': 'stereotype_', 'uploader_id': 'stereotype_', diff --git a/youtube_dl/extractor/twitter.py b/youtube_dl/extractor/twitter.py index ac0b221..37e3bc4 100644 --- a/youtube_dl/extractor/twitter.py +++ b/youtube_dl/extractor/twitter.py @@ -34,7 +34,7 @@ class TwitterCardIE(TwitterBaseIE): 'id': '560070183650213889', 'ext': 'mp4', 'title': 'Twitter Card', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'duration': 30.033, } }, @@ -45,7 +45,7 @@ class TwitterCardIE(TwitterBaseIE): 'id': '623160978427936768', 'ext': 'mp4', 'title': 'Twitter Card', - 'thumbnail': 're:^https?://.*\.jpg', + 'thumbnail': r're:^https?://.*\.jpg', 'duration': 80.155, }, }, @@ -82,7 +82,7 @@ class TwitterCardIE(TwitterBaseIE): 'id': '705235433198714880', 'ext': 'mp4', 'title': 'Twitter web player', - 'thumbnail': 're:^https?://.*\.jpg', + 'thumbnail': r're:^https?://.*\.jpg', }, }, { 'url': 'https://twitter.com/i/videos/752274308186120192', @@ -201,7 +201,7 @@ class TwitterIE(InfoExtractor): 'id': '643211948184596480', 'ext': 'mp4', 'title': 'FREE THE NIPPLE - FTN supporters on Hollywood Blvd today!', - 'thumbnail': 're:^https?://.*\.jpg', + 'thumbnail': r're:^https?://.*\.jpg', 'description': 'FREE THE NIPPLE on Twitter: "FTN supporters on Hollywood Blvd today! http://t.co/c7jHH749xJ"', 'uploader': 'FREE THE NIPPLE', 'uploader_id': 'freethenipple', @@ -217,7 +217,7 @@ class TwitterIE(InfoExtractor): 'ext': 'mp4', 'title': 'Gifs - tu vai cai tu vai cai tu nao eh capaz disso tu vai cai', 'description': 'Gifs on Twitter: "tu vai cai tu vai cai tu nao eh capaz disso tu vai cai https://t.co/tM46VHFlO5"', - 'thumbnail': 're:^https?://.*\.png', + 'thumbnail': r're:^https?://.*\.png', 'uploader': 'Gifs', 'uploader_id': 'giphz', }, @@ -257,7 +257,7 @@ class TwitterIE(InfoExtractor): 'ext': 'mp4', 'title': 'JG - BEAT PROD: @suhmeduh #Damndaniel', 'description': 'JG on Twitter: "BEAT PROD: @suhmeduh https://t.co/HBrQ4AfpvZ #Damndaniel https://t.co/byBooq2ejZ"', - 'thumbnail': 're:^https?://.*\.jpg', + 'thumbnail': r're:^https?://.*\.jpg', 'uploader': 'JG', 'uploader_id': 'jaydingeer', }, diff --git a/youtube_dl/extractor/udn.py b/youtube_dl/extractor/udn.py index 57dd73a..daf45d0 100644 --- a/youtube_dl/extractor/udn.py +++ b/youtube_dl/extractor/udn.py @@ -23,7 +23,7 @@ class UDNEmbedIE(InfoExtractor): 'id': '300040', 'ext': 'mp4', 'title': '生物老師男變女 全校挺"做自己"', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', }, 'params': { # m3u8 download diff --git a/youtube_dl/extractor/uktvplay.py b/youtube_dl/extractor/uktvplay.py new file mode 100644 index 0000000..2137502 --- /dev/null +++ b/youtube_dl/extractor/uktvplay.py @@ -0,0 +1,33 @@ +# coding: utf-8 +from __future__ import unicode_literals + +from .common import InfoExtractor + + +class UKTVPlayIE(InfoExtractor): + _VALID_URL = r'https?://uktvplay\.uktv\.co\.uk/.+?\?.*?\bvideo=(?P\d+)' + _TEST = { + 'url': 'https://uktvplay.uktv.co.uk/shows/world-at-war/c/200/watch-online/?video=2117008346001', + 'md5': '', + 'info_dict': { + 'id': '2117008346001', + 'ext': 'mp4', + 'title': 'Pincers', + 'description': 'Pincers', + 'uploader_id': '1242911124001', + 'upload_date': '20130124', + 'timestamp': 1359049267, + }, + 'params': { + # m3u8 download + 'skip_download': True, + }, + 'expected_warnings': ['Failed to download MPD manifest'] + } + BRIGHTCOVE_URL_TEMPLATE = 'http://players.brightcove.net/1242911124001/H1xnMOqP_default/index.html?videoId=%s' + + def _real_extract(self, url): + video_id = self._match_id(url) + return self.url_result( + self.BRIGHTCOVE_URL_TEMPLATE % video_id, + 'BrightcoveNew', video_id) diff --git a/youtube_dl/extractor/uol.py b/youtube_dl/extractor/uol.py index c27c643..e670830 100644 --- a/youtube_dl/extractor/uol.py +++ b/youtube_dl/extractor/uol.py @@ -84,12 +84,27 @@ class UOLIE(InfoExtractor): def _real_extract(self, url): video_id = self._match_id(url) - if not video_id.isdigit(): - embed_page = self._download_webpage('https://jsuol.com.br/c/tv/uol/embed/?params=[embed,%s]' % video_id, video_id) - video_id = self._search_regex(r'mediaId=(\d+)', embed_page, 'media id') + media_id = None + + if video_id.isdigit(): + media_id = video_id + + if not media_id: + embed_page = self._download_webpage( + 'https://jsuol.com.br/c/tv/uol/embed/?params=[embed,%s]' % video_id, + video_id, 'Downloading embed page', fatal=False) + if embed_page: + media_id = self._search_regex( + (r'uol\.com\.br/(\d+)', r'mediaId=(\d+)'), + embed_page, 'media id', default=None) + + if not media_id: + webpage = self._download_webpage(url, video_id) + media_id = self._search_regex(r'mediaId=(\d+)', webpage, 'media id') + video_data = self._download_json( - 'http://mais.uol.com.br/apiuol/v3/player/getMedia/%s.json' % video_id, - video_id)['item'] + 'http://mais.uol.com.br/apiuol/v3/player/getMedia/%s.json' % media_id, + media_id)['item'] title = video_data['title'] query = { @@ -118,7 +133,7 @@ class UOLIE(InfoExtractor): tags.append(tag_description) return { - 'id': video_id, + 'id': media_id, 'title': title, 'description': clean_html(video_data.get('desMedia')), 'thumbnail': video_data.get('thumbnail'), diff --git a/youtube_dl/extractor/uplynk.py b/youtube_dl/extractor/uplynk.py index 2cd22cf..f06bf5b 100644 --- a/youtube_dl/extractor/uplynk.py +++ b/youtube_dl/extractor/uplynk.py @@ -30,7 +30,9 @@ class UplynkIE(InfoExtractor): def _extract_uplynk_info(self, uplynk_content_url): path, external_id, video_id, session_id = re.match(UplynkIE._VALID_URL, uplynk_content_url).groups() display_id = video_id or external_id - formats = self._extract_m3u8_formats('http://content.uplynk.com/%s.m3u8' % path, display_id, 'mp4') + formats = self._extract_m3u8_formats( + 'http://content.uplynk.com/%s.m3u8' % path, + display_id, 'mp4', 'm3u8_native') if session_id: for f in formats: f['extra_param_to_segment_url'] = 'pbs=' + session_id diff --git a/youtube_dl/extractor/urort.py b/youtube_dl/extractor/urort.py index 8872cfc..8f6edab 100644 --- a/youtube_dl/extractor/urort.py +++ b/youtube_dl/extractor/urort.py @@ -21,7 +21,7 @@ class UrortIE(InfoExtractor): 'id': '33124-24', 'ext': 'mp3', 'title': 'The Bomb', - 'thumbnail': 're:^https?://.+\.jpg', + 'thumbnail': r're:^https?://.+\.jpg', 'uploader': 'Gerilja', 'uploader_id': 'Gerilja', 'upload_date': '20100323', diff --git a/youtube_dl/extractor/ustream.py b/youtube_dl/extractor/ustream.py index 0c06bf3..5737d4d 100644 --- a/youtube_dl/extractor/ustream.py +++ b/youtube_dl/extractor/ustream.py @@ -69,6 +69,13 @@ class UstreamIE(InfoExtractor): }, }] + @staticmethod + def _extract_url(webpage): + mobj = re.search( + r']+?src=(["\'])(?Phttp://www\.ustream\.tv/embed/.+?)\1', webpage) + if mobj is not None: + return mobj.group('url') + def _get_stream_info(self, url, video_id, app_id_ver, extra_note=None): def num_to_hex(n): return hex(n)[2:] diff --git a/youtube_dl/extractor/ustudio.py b/youtube_dl/extractor/ustudio.py index 3484a20..56509be 100644 --- a/youtube_dl/extractor/ustudio.py +++ b/youtube_dl/extractor/ustudio.py @@ -22,7 +22,7 @@ class UstudioIE(InfoExtractor): 'ext': 'mp4', 'title': 'San Francisco: Golden Gate Bridge', 'description': 'md5:23925500697f2c6d4830e387ba51a9be', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'upload_date': '20111107', 'uploader': 'Tony Farley', } diff --git a/youtube_dl/extractor/varzesh3.py b/youtube_dl/extractor/varzesh3.py index 8469837..f474ed7 100644 --- a/youtube_dl/extractor/varzesh3.py +++ b/youtube_dl/extractor/varzesh3.py @@ -22,7 +22,7 @@ class Varzesh3IE(InfoExtractor): 'ext': 'mp4', 'title': '۵ واکنش برتر دروازه‌بانان؛هفته ۲۶ بوندسلیگا', 'description': 'فصل ۲۰۱۵-۲۰۱۴', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', }, 'skip': 'HTTP 404 Error', }, { @@ -67,7 +67,7 @@ class Varzesh3IE(InfoExtractor): webpage, display_id, default=None) if video_id is None: video_id = self._search_regex( - 'var\s+VideoId\s*=\s*(\d+);', webpage, 'video id', + r'var\s+VideoId\s*=\s*(\d+);', webpage, 'video id', default=display_id) return { diff --git a/youtube_dl/extractor/vbox7.py b/youtube_dl/extractor/vbox7.py index a1e0851..bef6394 100644 --- a/youtube_dl/extractor/vbox7.py +++ b/youtube_dl/extractor/vbox7.py @@ -4,11 +4,22 @@ from __future__ import unicode_literals import re from .common import InfoExtractor -from ..utils import urlencode_postdata +from ..utils import ExtractorError class Vbox7IE(InfoExtractor): - _VALID_URL = r'https?://(?:www\.)?vbox7\.com/(?:play:|emb/external\.php\?.*?\bvid=)(?P[\da-fA-F]+)' + _VALID_URL = r'''(?x) + https?:// + (?:[^/]+\.)?vbox7\.com/ + (?: + play:| + (?: + emb/external\.php| + player/ext\.swf + )\?.*?\bvid= + ) + (?P[\da-fA-F]+) + ''' _TESTS = [{ 'url': 'http://vbox7.com/play:0946fff23c', 'md5': 'a60f9ab3a3a2f013ef9a967d5f7be5bf', @@ -16,6 +27,14 @@ class Vbox7IE(InfoExtractor): 'id': '0946fff23c', 'ext': 'mp4', 'title': 'Борисов: Притеснен съм за бъдещето на България', + 'description': 'По думите му е опасно страната ни да бъде обявена за "сигурна"', + 'thumbnail': r're:^https?://.*\.jpg$', + 'timestamp': 1470982814, + 'upload_date': '20160812', + 'uploader': 'zdraveibulgaria', + }, + 'params': { + 'proxy': '127.0.0.1:8118', }, }, { 'url': 'http://vbox7.com/play:249bb972c2', @@ -29,12 +48,15 @@ class Vbox7IE(InfoExtractor): }, { 'url': 'http://vbox7.com/emb/external.php?vid=a240d20f9c&autoplay=1', 'only_matching': True, + }, { + 'url': 'http://i49.vbox7.com/player/ext.swf?vid=0946fff23c&autoplay=1', + 'only_matching': True, }] @staticmethod def _extract_url(webpage): mobj = re.search( - ']+src=(?P["\'])(?P(?:https?:)?//vbox7\.com/emb/external\.php.+?)(?P=q)', + r']+src=(?P["\'])(?P(?:https?:)?//vbox7\.com/emb/external\.php.+?)(?P=q)', webpage) if mobj: return mobj.group('url') @@ -42,33 +64,41 @@ class Vbox7IE(InfoExtractor): def _real_extract(self, url): video_id = self._match_id(url) - webpage = self._download_webpage( - 'http://vbox7.com/play:%s' % video_id, video_id) - - title = self._html_search_regex( - r'(.+?)', webpage, 'title').split('/')[0].strip() + response = self._download_json( + 'https://www.vbox7.com/ajax/video/nextvideo.php?vid=%s' % video_id, + video_id) - video_url = self._search_regex( - r'src\s*:\s*(["\'])(?P.+?.mp4.*?)\1', - webpage, 'video url', default=None, group='url') + if 'error' in response: + raise ExtractorError( + '%s said: %s' % (self.IE_NAME, response['error']), expected=True) - thumbnail_url = self._og_search_thumbnail(webpage) + video = response['options'] - if not video_url: - info_response = self._download_webpage( - 'http://vbox7.com/play/magare.do', video_id, - 'Downloading info webpage', - data=urlencode_postdata({'as3': '1', 'vid': video_id}), - headers={'Content-Type': 'application/x-www-form-urlencoded'}) - final_url, thumbnail_url = map( - lambda x: x.split('=')[1], info_response.split('&')) + title = video['title'] + video_url = video['src'] if '/na.mp4' in video_url: self.raise_geo_restricted() - return { + uploader = video.get('uploader') + + webpage = self._download_webpage( + 'http://vbox7.com/play:%s' % video_id, video_id, fatal=None) + + info = {} + + if webpage: + info = self._search_json_ld( + webpage.replace('"/*@context"', '"@context"'), video_id, + fatal=False) + + info.update({ 'id': video_id, - 'url': self._proto_relative_url(video_url, 'http:'), 'title': title, - 'thumbnail': thumbnail_url, - } + 'url': video_url, + 'uploader': uploader, + 'thumbnail': self._proto_relative_url( + info.get('thumbnail') or self._og_search_thumbnail(webpage), + 'http:'), + }) + return info diff --git a/youtube_dl/extractor/vessel.py b/youtube_dl/extractor/vessel.py index 6b9c227..80a643d 100644 --- a/youtube_dl/extractor/vessel.py +++ b/youtube_dl/extractor/vessel.py @@ -24,7 +24,7 @@ class VesselIE(InfoExtractor): 'id': 'HDN7G5UMs', 'ext': 'mp4', 'title': 'Nvidia GeForce GTX Titan X - The Best Video Card on the Market?', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'upload_date': '20150317', 'description': 'Did Nvidia pull out all the stops on the Titan X, or does its performance leave something to be desired?', 'timestamp': int, diff --git a/youtube_dl/extractor/vevo.py b/youtube_dl/extractor/vevo.py index d82261e..c4e37f6 100644 --- a/youtube_dl/extractor/vevo.py +++ b/youtube_dl/extractor/vevo.py @@ -4,9 +4,9 @@ import re from .common import InfoExtractor from ..compat import ( - compat_etree_fromstring, compat_str, compat_urlparse, + compat_HTTPError, ) from ..utils import ( ExtractorError, @@ -140,21 +140,6 @@ class VevoIE(VevoBaseIE): 'url': 'http://www.vevo.com/watch/INS171400764', 'only_matching': True, }] - _SMIL_BASE_URL = 'http://smil.lvl3.vevo.com' - _SOURCE_TYPES = { - 0: 'youtube', - 1: 'brightcove', - 2: 'http', - 3: 'hls_ios', - 4: 'hls', - 5: 'smil', # http - 7: 'f4m_cc', - 8: 'f4m_ak', - 9: 'f4m_l3', - 10: 'ism', - 13: 'smil', # rtmp - 18: 'dash', - } _VERSIONS = { 0: 'youtube', # only in AuthenticateVideo videoVersions 1: 'level3', @@ -163,41 +148,6 @@ class VevoIE(VevoBaseIE): 4: 'amazon', } - def _parse_smil_formats(self, smil, smil_url, video_id, namespace=None, f4m_params=None, transform_rtmp_url=None): - formats = [] - els = smil.findall('.//{http://www.w3.org/2001/SMIL20/Language}video') - for el in els: - src = el.attrib['src'] - m = re.match(r'''(?xi) - (?P[a-z0-9]+): - (?P - [/a-z0-9]+ # The directory and main part of the URL - _(?P[0-9]+)k - _(?P[0-9]+)x(?P[0-9]+) - _(?P[a-z0-9]+) - _(?P[0-9]+) - _(?P[a-z0-9]+) - _(?P[0-9]+) - \.[a-z0-9]+ # File extension - )''', src) - if not m: - continue - - format_url = self._SMIL_BASE_URL + m.group('path') - formats.append({ - 'url': format_url, - 'format_id': 'smil_' + m.group('tbr'), - 'vcodec': m.group('vcodec'), - 'acodec': m.group('acodec'), - 'tbr': int(m.group('tbr')), - 'vbr': int(m.group('vbr')), - 'abr': int(m.group('abr')), - 'ext': m.group('ext'), - 'width': int(m.group('width')), - 'height': int(m.group('height')), - }) - return formats - def _initialize_api(self, video_id): req = sanitized_Request( 'http://www.vevo.com/auth', data=b'') @@ -206,7 +156,7 @@ class VevoIE(VevoBaseIE): note='Retrieving oauth token', errnote='Unable to retrieve oauth token') - if 'THIS PAGE IS CURRENTLY UNAVAILABLE IN YOUR REGION' in webpage: + if re.search(r'(?i)THIS PAGE IS CURRENTLY UNAVAILABLE IN YOUR REGION', webpage): self.raise_geo_restricted( '%s said: This page is currently unavailable in your region' % self.IE_NAME) @@ -214,148 +164,91 @@ class VevoIE(VevoBaseIE): self._api_url_template = self.http_scheme() + '//apiv2.vevo.com/%s?token=' + auth_info['access_token'] def _call_api(self, path, *args, **kwargs): - return self._download_json(self._api_url_template % path, *args, **kwargs) + try: + data = self._download_json(self._api_url_template % path, *args, **kwargs) + except ExtractorError as e: + if isinstance(e.cause, compat_HTTPError): + errors = self._parse_json(e.cause.read().decode(), None)['errors'] + error_message = ', '.join([error['message'] for error in errors]) + raise ExtractorError('%s said: %s' % (self.IE_NAME, error_message), expected=True) + raise + return data def _real_extract(self, url): video_id = self._match_id(url) - json_url = 'http://api.vevo.com/VideoService/AuthenticateVideo?isrc=%s' % video_id - response = self._download_json( - json_url, video_id, 'Downloading video info', - 'Unable to download info', fatal=False) or {} - video_info = response.get('video') or {} + self._initialize_api(video_id) + + video_info = self._call_api( + 'video/%s' % video_id, video_id, 'Downloading api video info', + 'Failed to download video info') + + video_versions = self._call_api( + 'video/%s/streams' % video_id, video_id, + 'Downloading video versions info', + 'Failed to download video versions info', + fatal=False) + + # Some videos are only available via webpage (e.g. + # https://github.com/rg3/youtube-dl/issues/9366) + if not video_versions: + webpage = self._download_webpage(url, video_id) + video_versions = self._extract_json(webpage, video_id, 'streams')[video_id][0] + + uploader = None artist = None featured_artist = None - uploader = None - view_count = None + artists = video_info.get('artists') + for curr_artist in artists: + if curr_artist.get('role') == 'Featured': + featured_artist = curr_artist['name'] + else: + artist = uploader = curr_artist['name'] + formats = [] + for video_version in video_versions: + version = self._VERSIONS.get(video_version['version']) + version_url = video_version.get('url') + if not version_url: + continue - if not video_info: - try: - self._initialize_api(video_id) - except ExtractorError: - ytid = response.get('errorInfo', {}).get('ytid') - if ytid: - self.report_warning( - 'Video is geoblocked, trying with the YouTube video %s' % ytid) - return self.url_result(ytid, 'Youtube', ytid) - - raise - - video_info = self._call_api( - 'video/%s' % video_id, video_id, 'Downloading api video info', - 'Failed to download video info') - - video_versions = self._call_api( - 'video/%s/streams' % video_id, video_id, - 'Downloading video versions info', - 'Failed to download video versions info', - fatal=False) - - # Some videos are only available via webpage (e.g. - # https://github.com/rg3/youtube-dl/issues/9366) - if not video_versions: - webpage = self._download_webpage(url, video_id) - video_versions = self._extract_json(webpage, video_id, 'streams')[video_id][0] - - timestamp = parse_iso8601(video_info.get('releaseDate')) - artists = video_info.get('artists') - for curr_artist in artists: - if curr_artist.get('role') == 'Featured': - featured_artist = curr_artist['name'] - else: - artist = uploader = curr_artist['name'] - view_count = int_or_none(video_info.get('views', {}).get('total')) - - for video_version in video_versions: - version = self._VERSIONS.get(video_version['version']) - version_url = video_version.get('url') - if not version_url: + if '.ism' in version_url: + continue + elif '.mpd' in version_url: + formats.extend(self._extract_mpd_formats( + version_url, video_id, mpd_id='dash-%s' % version, + note='Downloading %s MPD information' % version, + errnote='Failed to download %s MPD information' % version, + fatal=False)) + elif '.m3u8' in version_url: + formats.extend(self._extract_m3u8_formats( + version_url, video_id, 'mp4', 'm3u8_native', + m3u8_id='hls-%s' % version, + note='Downloading %s m3u8 information' % version, + errnote='Failed to download %s m3u8 information' % version, + fatal=False)) + else: + m = re.search(r'''(?xi) + _(?P[0-9]+)x(?P[0-9]+) + _(?P[a-z0-9]+) + _(?P[0-9]+) + _(?P[a-z0-9]+) + _(?P[0-9]+) + \.(?P[a-z0-9]+)''', version_url) + if not m: continue - if '.ism' in version_url: - continue - elif '.mpd' in version_url: - formats.extend(self._extract_mpd_formats( - version_url, video_id, mpd_id='dash-%s' % version, - note='Downloading %s MPD information' % version, - errnote='Failed to download %s MPD information' % version, - fatal=False)) - elif '.m3u8' in version_url: - formats.extend(self._extract_m3u8_formats( - version_url, video_id, 'mp4', 'm3u8_native', - m3u8_id='hls-%s' % version, - note='Downloading %s m3u8 information' % version, - errnote='Failed to download %s m3u8 information' % version, - fatal=False)) - else: - m = re.search(r'''(?xi) - _(?P[0-9]+)x(?P[0-9]+) - _(?P[a-z0-9]+) - _(?P[0-9]+) - _(?P[a-z0-9]+) - _(?P[0-9]+) - \.(?P[a-z0-9]+)''', version_url) - if not m: - continue - - formats.append({ - 'url': version_url, - 'format_id': 'http-%s-%s' % (version, video_version['quality']), - 'vcodec': m.group('vcodec'), - 'acodec': m.group('acodec'), - 'vbr': int(m.group('vbr')), - 'abr': int(m.group('abr')), - 'ext': m.group('ext'), - 'width': int(m.group('width')), - 'height': int(m.group('height')), - }) - else: - timestamp = int_or_none(self._search_regex( - r'/Date\((\d+)\)/', - video_info['releaseDate'], 'release date', fatal=False), - scale=1000) - artists = video_info.get('mainArtists') - if artists: - artist = uploader = artists[0]['artistName'] - - featured_artists = video_info.get('featuredArtists') - if featured_artists: - featured_artist = featured_artists[0]['artistName'] - - smil_parsed = False - for video_version in video_info['videoVersions']: - version = self._VERSIONS.get(video_version['version']) - if version == 'youtube': - continue - else: - source_type = self._SOURCE_TYPES.get(video_version['sourceType']) - renditions = compat_etree_fromstring(video_version['data']) - if source_type == 'http': - for rend in renditions.findall('rendition'): - attr = rend.attrib - formats.append({ - 'url': attr['url'], - 'format_id': 'http-%s-%s' % (version, attr['name']), - 'height': int_or_none(attr.get('frameheight')), - 'width': int_or_none(attr.get('frameWidth')), - 'tbr': int_or_none(attr.get('totalBitrate')), - 'vbr': int_or_none(attr.get('videoBitrate')), - 'abr': int_or_none(attr.get('audioBitrate')), - 'vcodec': attr.get('videoCodec'), - 'acodec': attr.get('audioCodec'), - }) - elif source_type == 'hls': - formats.extend(self._extract_m3u8_formats( - renditions.find('rendition').attrib['url'], video_id, - 'mp4', 'm3u8_native', m3u8_id='hls-%s' % version, - note='Downloading %s m3u8 information' % version, - errnote='Failed to download %s m3u8 information' % version, - fatal=False)) - elif source_type == 'smil' and version == 'level3' and not smil_parsed: - formats.extend(self._extract_smil_formats( - renditions.find('rendition').attrib['url'], video_id, False)) - smil_parsed = True + formats.append({ + 'url': version_url, + 'format_id': 'http-%s-%s' % (version, video_version['quality']), + 'vcodec': m.group('vcodec'), + 'acodec': m.group('acodec'), + 'vbr': int(m.group('vbr')), + 'abr': int(m.group('abr')), + 'ext': m.group('ext'), + 'width': int(m.group('width')), + 'height': int(m.group('height')), + }) self._sort_formats(formats) track = video_info['title'] @@ -376,17 +269,15 @@ class VevoIE(VevoBaseIE): else: age_limit = None - duration = video_info.get('duration') - return { 'id': video_id, 'title': title, 'formats': formats, 'thumbnail': video_info.get('imageUrl') or video_info.get('thumbnailUrl'), - 'timestamp': timestamp, + 'timestamp': parse_iso8601(video_info.get('releaseDate')), 'uploader': uploader, - 'duration': duration, - 'view_count': view_count, + 'duration': int_or_none(video_info.get('duration')), + 'view_count': int_or_none(video_info.get('views', {}).get('total')), 'age_limit': age_limit, 'track': track, 'artist': uploader, diff --git a/youtube_dl/extractor/vgtv.py b/youtube_dl/extractor/vgtv.py index 3b38ac7..8a574bc 100644 --- a/youtube_dl/extractor/vgtv.py +++ b/youtube_dl/extractor/vgtv.py @@ -61,7 +61,7 @@ class VGTVIE(XstreamIE): 'ext': 'mp4', 'title': 'Hevnen er søt: Episode 10 - Abu', 'description': 'md5:e25e4badb5f544b04341e14abdc72234', - 'thumbnail': 're:^https?://.*\.jpg', + 'thumbnail': r're:^https?://.*\.jpg', 'duration': 648.000, 'timestamp': 1404626400, 'upload_date': '20140706', @@ -76,7 +76,7 @@ class VGTVIE(XstreamIE): 'ext': 'flv', 'title': 'OPPTAK: VGTV følger EM-kvalifiseringen', 'description': 'md5:3772d9c0dc2dff92a886b60039a7d4d3', - 'thumbnail': 're:^https?://.*\.jpg', + 'thumbnail': r're:^https?://.*\.jpg', 'duration': 9103.0, 'timestamp': 1410113864, 'upload_date': '20140907', @@ -96,7 +96,7 @@ class VGTVIE(XstreamIE): 'ext': 'mp4', 'title': 'V75 fra Solvalla 30.05.15', 'description': 'md5:b3743425765355855f88e096acc93231', - 'thumbnail': 're:^https?://.*\.jpg', + 'thumbnail': r're:^https?://.*\.jpg', 'duration': 25966, 'timestamp': 1432975582, 'upload_date': '20150530', @@ -200,7 +200,7 @@ class VGTVIE(XstreamIE): format_info = { 'url': mp4_url, } - mobj = re.search('(\d+)_(\d+)_(\d+)', mp4_url) + mobj = re.search(r'(\d+)_(\d+)_(\d+)', mp4_url) if mobj: tbr = int(mobj.group(3)) format_info.update({ @@ -246,7 +246,7 @@ class BTArticleIE(InfoExtractor): 'ext': 'mp4', 'title': 'Alrekstad internat', 'description': 'md5:dc81a9056c874fedb62fc48a300dac58', - 'thumbnail': 're:^https?://.*\.jpg', + 'thumbnail': r're:^https?://.*\.jpg', 'duration': 191, 'timestamp': 1289991323, 'upload_date': '20101117', diff --git a/youtube_dl/extractor/vidbit.py b/youtube_dl/extractor/vidbit.py index e7ac5a8..91f45b7 100644 --- a/youtube_dl/extractor/vidbit.py +++ b/youtube_dl/extractor/vidbit.py @@ -20,7 +20,7 @@ class VidbitIE(InfoExtractor): 'ext': 'mp4', 'title': 'Intro to VidBit', 'description': 'md5:5e0d6142eec00b766cbf114bfd3d16b7', - 'thumbnail': 're:https?://.*\.jpg$', + 'thumbnail': r're:https?://.*\.jpg$', 'upload_date': '20160618', 'view_count': int, 'comment_count': int, diff --git a/youtube_dl/extractor/viddler.py b/youtube_dl/extractor/viddler.py index 8d92aee..67808e7 100644 --- a/youtube_dl/extractor/viddler.py +++ b/youtube_dl/extractor/viddler.py @@ -26,7 +26,7 @@ class ViddlerIE(InfoExtractor): 'timestamp': 1335371429, 'upload_date': '20120425', 'duration': 100.89, - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'view_count': int, 'comment_count': int, 'categories': ['video content', 'high quality video', 'video made easy', 'how to produce video with limited resources', 'viddler'], diff --git a/youtube_dl/extractor/videa.py b/youtube_dl/extractor/videa.py new file mode 100644 index 0000000..311df58 --- /dev/null +++ b/youtube_dl/extractor/videa.py @@ -0,0 +1,97 @@ +# coding: utf-8 +from __future__ import unicode_literals + +import re + +from .common import InfoExtractor +from ..utils import ( + int_or_none, + mimetype2ext, + parse_codecs, + xpath_element, + xpath_text, +) + + +class VideaIE(InfoExtractor): + _VALID_URL = r'''(?x) + https?:// + videa\.hu/ + (?: + videok/(?:[^/]+/)*[^?#&]+-| + player\?.*?\bv=| + player/v/ + ) + (?P[^?#&]+) + ''' + _TESTS = [{ + 'url': 'http://videa.hu/videok/allatok/az-orult-kigyasz-285-kigyot-kigyo-8YfIAjxwWGwT8HVQ', + 'md5': '97a7af41faeaffd9f1fc864a7c7e7603', + 'info_dict': { + 'id': '8YfIAjxwWGwT8HVQ', + 'ext': 'mp4', + 'title': 'Az őrült kígyász 285 kígyót enged szabadon', + 'thumbnail': 'http://videa.hu/static/still/1.4.1.1007274.1204470.3', + 'duration': 21, + }, + }, { + 'url': 'http://videa.hu/videok/origo/jarmuvek/supercars-elozes-jAHDWfWSJH5XuFhH', + 'only_matching': True, + }, { + 'url': 'http://videa.hu/player?v=8YfIAjxwWGwT8HVQ', + 'only_matching': True, + }, { + 'url': 'http://videa.hu/player/v/8YfIAjxwWGwT8HVQ?autoplay=1', + 'only_matching': True, + }] + + @staticmethod + def _extract_urls(webpage): + return [url for _, url in re.findall( + r']+src=(["\'])(?P(?:https?:)?//videa\.hu/player\?.*?\bv=.+?)\1', + webpage)] + + def _real_extract(self, url): + video_id = self._match_id(url) + + info = self._download_xml( + 'http://videa.hu/videaplayer_get_xml.php', video_id, + query={'v': video_id}) + + video = xpath_element(info, './/video', 'video', fatal=True) + sources = xpath_element(info, './/video_sources', 'sources', fatal=True) + + title = xpath_text(video, './title', fatal=True) + + formats = [] + for source in sources.findall('./video_source'): + source_url = source.text + if not source_url: + continue + f = parse_codecs(source.get('codecs')) + f.update({ + 'url': source_url, + 'ext': mimetype2ext(source.get('mimetype')) or 'mp4', + 'format_id': source.get('name'), + 'width': int_or_none(source.get('width')), + 'height': int_or_none(source.get('height')), + }) + formats.append(f) + self._sort_formats(formats) + + thumbnail = xpath_text(video, './poster_src') + duration = int_or_none(xpath_text(video, './duration')) + + age_limit = None + is_adult = xpath_text(video, './is_adult_content', default=None) + if is_adult: + age_limit = 18 if is_adult == '1' else 0 + + return { + 'id': video_id, + 'title': title, + 'thumbnail': thumbnail, + 'duration': duration, + 'age_limit': age_limit, + 'formats': formats, + } diff --git a/youtube_dl/extractor/videomega.py b/youtube_dl/extractor/videomega.py index 4f0dcd1..c02830d 100644 --- a/youtube_dl/extractor/videomega.py +++ b/youtube_dl/extractor/videomega.py @@ -19,7 +19,7 @@ class VideoMegaIE(InfoExtractor): 'id': 'AOSQBJYKIDDIKYJBQSOA', 'ext': 'mp4', 'title': '1254207', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', } }, { 'url': 'http://videomega.tv/cdn.php?ref=AOSQBJYKIDDIKYJBQSOA&width=1070&height=600', diff --git a/youtube_dl/extractor/videomore.py b/youtube_dl/extractor/videomore.py index 7f25665..9b56630 100644 --- a/youtube_dl/extractor/videomore.py +++ b/youtube_dl/extractor/videomore.py @@ -23,7 +23,7 @@ class VideomoreIE(InfoExtractor): 'title': 'Кино в деталях 5 сезон В гостях Алексей Чумаков и Юлия Ковальчук', 'series': 'Кино в деталях', 'episode': 'В гостях Алексей Чумаков и Юлия Ковальчук', - 'thumbnail': 're:^https?://.*\.jpg', + 'thumbnail': r're:^https?://.*\.jpg', 'duration': 2910, 'view_count': int, 'comment_count': int, @@ -37,7 +37,7 @@ class VideomoreIE(InfoExtractor): 'title': 'Молодежка 2 сезон 40 серия', 'series': 'Молодежка', 'episode': '40 серия', - 'thumbnail': 're:^https?://.*\.jpg', + 'thumbnail': r're:^https?://.*\.jpg', 'duration': 2809, 'view_count': int, 'comment_count': int, @@ -53,7 +53,7 @@ class VideomoreIE(InfoExtractor): 'ext': 'flv', 'title': 'Промо Команда проиграла из-за Бакина?', 'episode': 'Команда проиграла из-за Бакина?', - 'thumbnail': 're:^https?://.*\.jpg', + 'thumbnail': r're:^https?://.*\.jpg', 'duration': 29, 'age_limit': 16, 'view_count': int, @@ -145,7 +145,7 @@ class VideomoreVideoIE(InfoExtractor): 'ext': 'flv', 'title': 'Ёлки 3', 'description': '', - 'thumbnail': 're:^https?://.*\.jpg', + 'thumbnail': r're:^https?://.*\.jpg', 'duration': 5579, 'age_limit': 6, 'view_count': int, @@ -168,7 +168,7 @@ class VideomoreVideoIE(InfoExtractor): 'ext': 'flv', 'title': '1 серия. Здравствуй, Аквавилль!', 'description': 'md5:c6003179538b5d353e7bcd5b1372b2d7', - 'thumbnail': 're:^https?://.*\.jpg', + 'thumbnail': r're:^https?://.*\.jpg', 'duration': 754, 'age_limit': 6, 'view_count': int, diff --git a/youtube_dl/extractor/videopress.py b/youtube_dl/extractor/videopress.py new file mode 100644 index 0000000..049db25 --- /dev/null +++ b/youtube_dl/extractor/videopress.py @@ -0,0 +1,99 @@ +# coding: utf-8 +from __future__ import unicode_literals + +import random +import re + +from .common import InfoExtractor +from ..compat import compat_str +from ..utils import ( + determine_ext, + float_or_none, + parse_age_limit, + qualities, + try_get, + unified_timestamp, + urljoin, +) + + +class VideoPressIE(InfoExtractor): + _VALID_URL = r'https?://videopress\.com/embed/(?P[\da-zA-Z]+)' + _TESTS = [{ + 'url': 'https://videopress.com/embed/kUJmAcSf', + 'md5': '706956a6c875873d51010921310e4bc6', + 'info_dict': { + 'id': 'kUJmAcSf', + 'ext': 'mp4', + 'title': 'VideoPress Demo', + 'thumbnail': r're:^https?://.*\.jpg', + 'duration': 634.6, + 'timestamp': 1434983935, + 'upload_date': '20150622', + 'age_limit': 0, + }, + }, { + # 17+, requires birth_* params + 'url': 'https://videopress.com/embed/iH3gstfZ', + 'only_matching': True, + }] + + @staticmethod + def _extract_urls(webpage): + return re.findall( + r']+src=["\']((?:https?://)?videopress\.com/embed/[\da-zA-Z]+)', + webpage) + + def _real_extract(self, url): + video_id = self._match_id(url) + + video = self._download_json( + 'https://public-api.wordpress.com/rest/v1.1/videos/%s' % video_id, + video_id, query={ + 'birth_month': random.randint(1, 12), + 'birth_day': random.randint(1, 31), + 'birth_year': random.randint(1950, 1995), + }) + + title = video['title'] + + def base_url(scheme): + return try_get( + video, lambda x: x['file_url_base'][scheme], compat_str) + + base_url = base_url('https') or base_url('http') + + QUALITIES = ('std', 'dvd', 'hd') + quality = qualities(QUALITIES) + + formats = [] + for format_id, f in video['files'].items(): + if not isinstance(f, dict): + continue + for ext, path in f.items(): + if ext in ('mp4', 'ogg'): + formats.append({ + 'url': urljoin(base_url, path), + 'format_id': '%s-%s' % (format_id, ext), + 'ext': determine_ext(path, ext), + 'quality': quality(format_id), + }) + original_url = try_get(video, lambda x: x['original'], compat_str) + if original_url: + formats.append({ + 'url': original_url, + 'format_id': 'original', + 'quality': len(QUALITIES), + }) + self._sort_formats(formats) + + return { + 'id': video_id, + 'title': title, + 'description': video.get('description'), + 'thumbnail': video.get('poster'), + 'duration': float_or_none(video.get('duration'), 1000), + 'timestamp': unified_timestamp(video.get('upload_date')), + 'age_limit': parse_age_limit(video.get('rating')), + 'formats': formats, + } diff --git a/youtube_dl/extractor/videott.py b/youtube_dl/extractor/videott.py deleted file mode 100644 index 0f79871..0000000 --- a/youtube_dl/extractor/videott.py +++ /dev/null @@ -1,65 +0,0 @@ -from __future__ import unicode_literals - -import re -import base64 - -from .common import InfoExtractor -from ..utils import ( - unified_strdate, - int_or_none, -) - - -class VideoTtIE(InfoExtractor): - _WORKING = False - ID_NAME = 'video.tt' - IE_DESC = 'video.tt - Your True Tube' - _VALID_URL = r'https?://(?:www\.)?video\.tt/(?:(?:video|embed)/|watch_video\.php\?v=)(?P[\da-zA-Z]{9})' - - _TESTS = [{ - 'url': 'http://www.video.tt/watch_video.php?v=amd5YujV8', - 'md5': 'b13aa9e2f267effb5d1094443dff65ba', - 'info_dict': { - 'id': 'amd5YujV8', - 'ext': 'flv', - 'title': 'Motivational video Change your mind in just 2.50 mins', - 'description': '', - 'upload_date': '20130827', - 'uploader': 'joseph313', - } - }, { - 'url': 'http://video.tt/embed/amd5YujV8', - 'only_matching': True, - }] - - def _real_extract(self, url): - mobj = re.match(self._VALID_URL, url) - video_id = mobj.group('id') - - settings = self._download_json( - 'http://www.video.tt/player_control/settings.php?v=%s' % video_id, video_id, - 'Downloading video JSON')['settings'] - - video = settings['video_details']['video'] - - formats = [ - { - 'url': base64.b64decode(res['u'].encode('utf-8')).decode('utf-8'), - 'ext': 'flv', - 'format_id': res['l'], - } for res in settings['res'] if res['u'] - ] - - return { - 'id': video_id, - 'title': video['title'], - 'description': video['description'], - 'thumbnail': settings['config']['thumbnail'], - 'upload_date': unified_strdate(video['added']), - 'uploader': video['owner'], - 'view_count': int_or_none(video['view_count']), - 'comment_count': None if video.get('comment_count') == '--' else int_or_none(video['comment_count']), - 'like_count': int_or_none(video['liked']), - 'dislike_count': int_or_none(video['disliked']), - 'formats': formats, - } diff --git a/youtube_dl/extractor/vidio.py b/youtube_dl/extractor/vidio.py index 6898042..4e4b4e3 100644 --- a/youtube_dl/extractor/vidio.py +++ b/youtube_dl/extractor/vidio.py @@ -18,7 +18,7 @@ class VidioIE(InfoExtractor): 'ext': 'mp4', 'title': 'DJ_AMBRED - Booyah (Live 2015)', 'description': 'md5:27dc15f819b6a78a626490881adbadf8', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'duration': 149, 'like_count': int, }, diff --git a/youtube_dl/extractor/vidme.py b/youtube_dl/extractor/vidme.py index b1156d5..e9ff336 100644 --- a/youtube_dl/extractor/vidme.py +++ b/youtube_dl/extractor/vidme.py @@ -23,7 +23,7 @@ class VidmeIE(InfoExtractor): 'ext': 'mp4', 'title': 'Fishing for piranha - the easy way', 'description': 'source: https://www.facebook.com/photo.php?v=312276045600871', - 'thumbnail': 're:^https?://.*\.jpg', + 'thumbnail': r're:^https?://.*\.jpg', 'timestamp': 1406313244, 'upload_date': '20140725', 'age_limit': 0, @@ -39,7 +39,7 @@ class VidmeIE(InfoExtractor): 'id': 'Gc6M', 'ext': 'mp4', 'title': 'O Mere Dil ke chain - Arnav and Khushi VM', - 'thumbnail': 're:^https?://.*\.jpg', + 'thumbnail': r're:^https?://.*\.jpg', 'timestamp': 1441211642, 'upload_date': '20150902', 'uploader': 'SunshineM', @@ -61,7 +61,7 @@ class VidmeIE(InfoExtractor): 'ext': 'mp4', 'title': 'The Carver', 'description': 'md5:e9c24870018ae8113be936645b93ba3c', - 'thumbnail': 're:^https?://.*\.jpg', + 'thumbnail': r're:^https?://.*\.jpg', 'timestamp': 1433203629, 'upload_date': '20150602', 'uploader': 'Thomas', @@ -82,7 +82,7 @@ class VidmeIE(InfoExtractor): 'id': 'Wmur', 'ext': 'mp4', 'title': 'naked smoking & stretching', - 'thumbnail': 're:^https?://.*\.jpg', + 'thumbnail': r're:^https?://.*\.jpg', 'timestamp': 1430931613, 'upload_date': '20150506', 'uploader': 'naked-yogi', @@ -115,7 +115,7 @@ class VidmeIE(InfoExtractor): 'id': 'e5g', 'ext': 'mp4', 'title': 'Video upload (e5g)', - 'thumbnail': 're:^https?://.*\.jpg', + 'thumbnail': r're:^https?://.*\.jpg', 'timestamp': 1401480195, 'upload_date': '20140530', 'uploader': None, diff --git a/youtube_dl/extractor/viewlift.py b/youtube_dl/extractor/viewlift.py index 19500eb..18735cf 100644 --- a/youtube_dl/extractor/viewlift.py +++ b/youtube_dl/extractor/viewlift.py @@ -14,7 +14,7 @@ from ..utils import ( class ViewLiftBaseIE(InfoExtractor): - _DOMAINS_REGEX = '(?:snagfilms|snagxtreme|funnyforfree|kiddovid|winnersview|monumentalsportsnetwork|vayafilm)\.com|kesari\.tv' + _DOMAINS_REGEX = r'(?:snagfilms|snagxtreme|funnyforfree|kiddovid|winnersview|monumentalsportsnetwork|vayafilm)\.com|kesari\.tv' class ViewLiftEmbedIE(ViewLiftBaseIE): @@ -110,7 +110,7 @@ class ViewLiftIE(ViewLiftBaseIE): 'ext': 'mp4', 'title': 'Lost for Life', 'description': 'md5:fbdacc8bb6b455e464aaf98bc02e1c82', - 'thumbnail': 're:^https?://.*\.jpg', + 'thumbnail': r're:^https?://.*\.jpg', 'duration': 4489, 'categories': ['Documentary', 'Crime', 'Award Winning', 'Festivals'] } @@ -123,7 +123,7 @@ class ViewLiftIE(ViewLiftBaseIE): 'ext': 'mp4', 'title': 'India', 'description': 'md5:5c168c5a8f4719c146aad2e0dfac6f5f', - 'thumbnail': 're:^https?://.*\.jpg', + 'thumbnail': r're:^https?://.*\.jpg', 'duration': 979, 'categories': ['Documentary', 'Sports', 'Politics'] } @@ -160,7 +160,7 @@ class ViewLiftIE(ViewLiftBaseIE): snag = self._parse_json( self._search_regex( - 'Snag\.page\.data\s*=\s*(\[.+?\]);', webpage, 'snag'), + r'Snag\.page\.data\s*=\s*(\[.+?\]);', webpage, 'snag'), display_id) for item in snag: diff --git a/youtube_dl/extractor/viewster.py b/youtube_dl/extractor/viewster.py index a93196a..52dd95e 100644 --- a/youtube_dl/extractor/viewster.py +++ b/youtube_dl/extractor/viewster.py @@ -157,7 +157,7 @@ class ViewsterIE(InfoExtractor): formats.extend(m3u8_formats) else: qualities_basename = self._search_regex( - '/([^/]+)\.csmil/', + r'/([^/]+)\.csmil/', manifest_url, 'qualities basename', default=None) if not qualities_basename: continue diff --git a/youtube_dl/extractor/viidea.py b/youtube_dl/extractor/viidea.py index a4f914d..4adcd18 100644 --- a/youtube_dl/extractor/viidea.py +++ b/youtube_dl/extractor/viidea.py @@ -40,7 +40,7 @@ class ViideaIE(InfoExtractor): 'ext': 'mp4', 'title': 'Automatics, robotics and biocybernetics', 'description': 'md5:815fc1deb6b3a2bff99de2d5325be482', - 'thumbnail': 're:http://.*\.jpg', + 'thumbnail': r're:http://.*\.jpg', 'timestamp': 1372349289, 'upload_date': '20130627', 'duration': 565, @@ -58,7 +58,7 @@ class ViideaIE(InfoExtractor): 'ext': 'flv', 'title': 'NLP at Google', 'description': 'md5:fc7a6d9bf0302d7cc0e53f7ca23747b3', - 'thumbnail': 're:http://.*\.jpg', + 'thumbnail': r're:http://.*\.jpg', 'timestamp': 1284375600, 'upload_date': '20100913', 'duration': 5352, @@ -74,7 +74,7 @@ class ViideaIE(InfoExtractor): 'id': '23181', 'title': 'Deep Learning Summer School, Montreal 2015', 'description': 'md5:0533a85e4bd918df52a01f0e1ebe87b7', - 'thumbnail': 're:http://.*\.jpg', + 'thumbnail': r're:http://.*\.jpg', 'timestamp': 1438560000, }, 'playlist_count': 30, @@ -85,7 +85,7 @@ class ViideaIE(InfoExtractor): 'id': '9737', 'display_id': 'mlss09uk_bishop_ibi', 'title': 'Introduction To Bayesian Inference', - 'thumbnail': 're:http://.*\.jpg', + 'thumbnail': r're:http://.*\.jpg', 'timestamp': 1251622800, }, 'playlist': [{ @@ -94,7 +94,7 @@ class ViideaIE(InfoExtractor): 'display_id': 'mlss09uk_bishop_ibi_part1', 'ext': 'wmv', 'title': 'Introduction To Bayesian Inference (Part 1)', - 'thumbnail': 're:http://.*\.jpg', + 'thumbnail': r're:http://.*\.jpg', 'duration': 4622, 'timestamp': 1251622800, 'upload_date': '20090830', @@ -105,7 +105,7 @@ class ViideaIE(InfoExtractor): 'display_id': 'mlss09uk_bishop_ibi_part2', 'ext': 'wmv', 'title': 'Introduction To Bayesian Inference (Part 2)', - 'thumbnail': 're:http://.*\.jpg', + 'thumbnail': r're:http://.*\.jpg', 'duration': 5641, 'timestamp': 1251622800, 'upload_date': '20090830', diff --git a/youtube_dl/extractor/vimeo.py b/youtube_dl/extractor/vimeo.py index 51c69a8..61cc469 100644 --- a/youtube_dl/extractor/vimeo.py +++ b/youtube_dl/extractor/vimeo.py @@ -21,12 +21,12 @@ from ..utils import ( sanitized_Request, smuggle_url, std_headers, - unified_strdate, + try_get, + unified_timestamp, unsmuggle_url, urlencode_postdata, unescapeHTML, parse_filesize, - try_get, ) @@ -92,29 +92,30 @@ class VimeoBaseInfoExtractor(InfoExtractor): def _vimeo_sort_formats(self, formats): # Bitrates are completely broken. Single m3u8 may contain entries in kbps and bps # at the same time without actual units specified. This lead to wrong sorting. - self._sort_formats(formats, field_preference=('preference', 'height', 'width', 'fps', 'format_id')) + self._sort_formats(formats, field_preference=('preference', 'height', 'width', 'fps', 'tbr', 'format_id')) def _parse_config(self, config, video_id): + video_data = config['video'] # Extract title - video_title = config['video']['title'] + video_title = video_data['title'] # Extract uploader, uploader_url and uploader_id - video_uploader = config['video'].get('owner', {}).get('name') - video_uploader_url = config['video'].get('owner', {}).get('url') + video_uploader = video_data.get('owner', {}).get('name') + video_uploader_url = video_data.get('owner', {}).get('url') video_uploader_id = video_uploader_url.split('/')[-1] if video_uploader_url else None # Extract video thumbnail - video_thumbnail = config['video'].get('thumbnail') + video_thumbnail = video_data.get('thumbnail') if video_thumbnail is None: - video_thumbs = config['video'].get('thumbs') + video_thumbs = video_data.get('thumbs') if video_thumbs and isinstance(video_thumbs, dict): _, video_thumbnail = sorted((int(width if width.isdigit() else 0), t_url) for (width, t_url) in video_thumbs.items())[-1] # Extract video duration - video_duration = int_or_none(config['video'].get('duration')) + video_duration = int_or_none(video_data.get('duration')) formats = [] - config_files = config['video'].get('files') or config['request'].get('files', {}) + config_files = video_data.get('files') or config['request'].get('files', {}) for f in config_files.get('progressive', []): video_url = f.get('url') if not video_url: @@ -127,10 +128,33 @@ class VimeoBaseInfoExtractor(InfoExtractor): 'fps': int_or_none(f.get('fps')), 'tbr': int_or_none(f.get('bitrate')), }) - m3u8_url = config_files.get('hls', {}).get('url') - if m3u8_url: - formats.extend(self._extract_m3u8_formats( - m3u8_url, video_id, 'mp4', 'm3u8_native', m3u8_id='hls', fatal=False)) + + for files_type in ('hls', 'dash'): + for cdn_name, cdn_data in config_files.get(files_type, {}).get('cdns', {}).items(): + manifest_url = cdn_data.get('url') + if not manifest_url: + continue + format_id = '%s-%s' % (files_type, cdn_name) + if files_type == 'hls': + formats.extend(self._extract_m3u8_formats( + manifest_url, video_id, 'mp4', + 'm3u8_native', m3u8_id=format_id, + note='Downloading %s m3u8 information' % cdn_name, + fatal=False)) + elif files_type == 'dash': + mpd_pattern = r'/%s/(?:sep/)?video/' % video_id + mpd_manifest_urls = [] + if re.search(mpd_pattern, manifest_url): + for suffix, repl in (('', 'video'), ('_sep', 'sep/video')): + mpd_manifest_urls.append((format_id + suffix, re.sub( + mpd_pattern, '/%s/%s/' % (video_id, repl), manifest_url))) + else: + mpd_manifest_urls = [(format_id, manifest_url)] + for f_id, m_url in mpd_manifest_urls: + formats.extend(self._extract_mpd_formats( + m_url.replace('/master.json', '/master.mpd'), video_id, f_id, + 'Downloading %s MPD information' % cdn_name, + fatal=False)) subtitles = {} text_tracks = config['request'].get('text_tracks') @@ -189,11 +213,13 @@ class VimeoIE(VimeoBaseInfoExtractor): 'ext': 'mp4', 'title': "youtube-dl test video - \u2605 \" ' \u5e78 / \\ \u00e4 \u21ad \U0001d550", 'description': 'md5:2d3305bad981a06ff79f027f19865021', + 'timestamp': 1355990239, 'upload_date': '20121220', - 'uploader_url': 're:https?://(?:www\.)?vimeo\.com/user7108434', + 'uploader_url': r're:https?://(?:www\.)?vimeo\.com/user7108434', 'uploader_id': 'user7108434', 'uploader': 'Filippo Valsorda', 'duration': 10, + 'license': 'by-sa', }, }, { @@ -203,7 +229,7 @@ class VimeoIE(VimeoBaseInfoExtractor): 'info_dict': { 'id': '68093876', 'ext': 'mp4', - 'uploader_url': 're:https?://(?:www\.)?vimeo\.com/openstreetmapus', + 'uploader_url': r're:https?://(?:www\.)?vimeo\.com/openstreetmapus', 'uploader_id': 'openstreetmapus', 'uploader': 'OpenStreetMap US', 'title': 'Andy Allan - Putting the Carto into OpenStreetMap Cartography', @@ -220,7 +246,7 @@ class VimeoIE(VimeoBaseInfoExtractor): 'ext': 'mp4', 'title': 'Kathy Sierra: Building the minimum Badass User, Business of Software 2012', 'uploader': 'The BLN & Business of Software', - 'uploader_url': 're:https?://(?:www\.)?vimeo\.com/theblnbusinessofsoftware', + 'uploader_url': r're:https?://(?:www\.)?vimeo\.com/theblnbusinessofsoftware', 'uploader_id': 'theblnbusinessofsoftware', 'duration': 3610, 'description': None, @@ -234,12 +260,13 @@ class VimeoIE(VimeoBaseInfoExtractor): 'id': '68375962', 'ext': 'mp4', 'title': 'youtube-dl password protected test video', + 'timestamp': 1371200155, 'upload_date': '20130614', - 'uploader_url': 're:https?://(?:www\.)?vimeo\.com/user18948128', + 'uploader_url': r're:https?://(?:www\.)?vimeo\.com/user18948128', 'uploader_id': 'user18948128', 'uploader': 'Jaime Marquínez Ferrándiz', 'duration': 10, - 'description': 'This is "youtube-dl password protected test video" by on Vimeo, the home for high quality videos and the people who love them.', + 'description': 'md5:dca3ea23adb29ee387127bc4ddfce63f', }, 'params': { 'videopassword': 'youtube-dl', @@ -253,10 +280,11 @@ class VimeoIE(VimeoBaseInfoExtractor): 'ext': 'mp4', 'title': 'Key & Peele: Terrorist Interrogation', 'description': 'md5:8678b246399b070816b12313e8b4eb5c', - 'uploader_url': 're:https?://(?:www\.)?vimeo\.com/atencio', + 'uploader_url': r're:https?://(?:www\.)?vimeo\.com/atencio', 'uploader_id': 'atencio', 'uploader': 'Peter Atencio', - 'upload_date': '20130927', + 'timestamp': 1380339469, + 'upload_date': '20130928', 'duration': 187, }, }, @@ -268,8 +296,9 @@ class VimeoIE(VimeoBaseInfoExtractor): 'ext': 'mp4', 'title': 'The New Vimeo Player (You Know, For Videos)', 'description': 'md5:2ec900bf97c3f389378a96aee11260ea', + 'timestamp': 1381846109, 'upload_date': '20131015', - 'uploader_url': 're:https?://(?:www\.)?vimeo\.com/staff', + 'uploader_url': r're:https?://(?:www\.)?vimeo\.com/staff', 'uploader_id': 'staff', 'uploader': 'Vimeo Staff', 'duration': 62, @@ -284,21 +313,22 @@ class VimeoIE(VimeoBaseInfoExtractor): 'ext': 'mp4', 'title': 'Pier Solar OUYA Official Trailer', 'uploader': 'Tulio Gonçalves', - 'uploader_url': 're:https?://(?:www\.)?vimeo\.com/user28849593', + 'uploader_url': r're:https?://(?:www\.)?vimeo\.com/user28849593', 'uploader_id': 'user28849593', }, }, { # contains original format 'url': 'https://vimeo.com/33951933', - 'md5': '2d9f5475e0537f013d0073e812ab89e6', + 'md5': '53c688fa95a55bf4b7293d37a89c5c53', 'info_dict': { 'id': '33951933', 'ext': 'mp4', 'title': 'FOX CLASSICS - Forever Classic ID - A Full Minute', 'uploader': 'The DMCI', - 'uploader_url': 're:https?://(?:www\.)?vimeo\.com/dmci', + 'uploader_url': r're:https?://(?:www\.)?vimeo\.com/dmci', 'uploader_id': 'dmci', + 'timestamp': 1324343742, 'upload_date': '20111220', 'description': 'md5:ae23671e82d05415868f7ad1aec21147', }, @@ -309,11 +339,12 @@ class VimeoIE(VimeoBaseInfoExtractor): 'url': 'https://vimeo.com/channels/tributes/6213729', 'info_dict': { 'id': '6213729', - 'ext': 'mp4', + 'ext': 'mov', 'title': 'Vimeo Tribute: The Shining', 'uploader': 'Casey Donahue', - 'uploader_url': 're:https?://(?:www\.)?vimeo\.com/caseydonahue', + 'uploader_url': r're:https?://(?:www\.)?vimeo\.com/caseydonahue', 'uploader_id': 'caseydonahue', + 'timestamp': 1250886430, 'upload_date': '20090821', 'description': 'md5:bdbf314014e58713e6e5b66eb252f4a6', }, @@ -323,7 +354,7 @@ class VimeoIE(VimeoBaseInfoExtractor): 'expected_warnings': ['Unable to download JSON metadata'], }, { - # redirects to ondemand extractor and should be passed throught it + # redirects to ondemand extractor and should be passed through it # for successful extraction 'url': 'https://vimeo.com/73445910', 'info_dict': { @@ -331,7 +362,7 @@ class VimeoIE(VimeoBaseInfoExtractor): 'ext': 'mp4', 'title': 'The Reluctant Revolutionary', 'uploader': '10Ft Films', - 'uploader_url': 're:https?://(?:www\.)?vimeo\.com/tenfootfilms', + 'uploader_url': r're:https?://(?:www\.)?vimeo\.com/tenfootfilms', 'uploader_id': 'tenfootfilms', }, 'params': { @@ -462,6 +493,9 @@ class VimeoIE(VimeoBaseInfoExtractor): '%s said: %s' % (self.IE_NAME, seed_status['title']), expected=True) + cc_license = None + timestamp = None + # Extract the config JSON try: try: @@ -475,14 +509,18 @@ class VimeoIE(VimeoBaseInfoExtractor): vimeo_clip_page_config = self._search_regex( r'vimeo\.clip_page_config\s*=\s*({.+?});', webpage, 'vimeo clip page config') - config_url = self._parse_json( - vimeo_clip_page_config, video_id)['player']['config_url'] + page_config = self._parse_json(vimeo_clip_page_config, video_id) + config_url = page_config['player']['config_url'] + cc_license = page_config.get('cc_license') + timestamp = try_get( + page_config, lambda x: x['clip']['uploaded_on'], + compat_str) config_json = self._download_webpage(config_url, video_id) config = json.loads(config_json) except RegexNotFoundError: # For pro videos or player.vimeo.com urls # We try to find out to which variable is assigned the config dic - m_variable_name = re.search('(\w)\.video\.id', webpage) + 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)) else: @@ -545,10 +583,10 @@ class VimeoIE(VimeoBaseInfoExtractor): self._downloader.report_warning('Cannot find video description') # Extract upload date - video_upload_date = None - mobj = re.search(r']+datetime="([^"]+)"', webpage) - if mobj is not None: - video_upload_date = unified_strdate(mobj.group(1)) + if not timestamp: + timestamp = self._search_regex( + r']+datetime="([^"]+)"', webpage, + 'timestamp', default=None) try: view_count = int(self._search_regex(r'UserPlays:(\d+)', webpage, 'view count')) @@ -585,15 +623,22 @@ class VimeoIE(VimeoBaseInfoExtractor): info_dict = self._parse_config(config, video_id) formats.extend(info_dict['formats']) self._vimeo_sort_formats(formats) + + if not cc_license: + cc_license = self._search_regex( + r']+rel=["\']license["\'][^>]+href=(["\'])(?P(?:(?!\1).)+)\1', + webpage, 'license', default=None, group='license') + info_dict.update({ 'id': video_id, 'formats': formats, - 'upload_date': video_upload_date, + 'timestamp': unified_timestamp(timestamp), 'description': video_description, 'webpage_url': url, 'view_count': view_count, 'like_count': like_count, 'comment_count': comment_count, + 'license': cc_license, }) return info_dict @@ -611,9 +656,12 @@ class VimeoOndemandIE(VimeoBaseInfoExtractor): 'ext': 'mp4', 'title': 'המעבדה - במאי יותם פלדמן', 'uploader': 'גם סרטים', - 'uploader_url': 're:https?://(?:www\.)?vimeo\.com/gumfilms', + 'uploader_url': r're:https?://(?:www\.)?vimeo\.com/gumfilms', 'uploader_id': 'gumfilms', }, + 'params': { + 'format': 'best[protocol=https]', + }, }, { # requires Referer to be passed along with og:video:url 'url': 'https://vimeo.com/ondemand/36938/126682985', @@ -622,7 +670,7 @@ class VimeoOndemandIE(VimeoBaseInfoExtractor): 'ext': 'mp4', 'title': 'Rävlock, rätt läte på rätt plats', 'uploader': 'Lindroth & Norin', - 'uploader_url': 're:https?://(?:www\.)?vimeo\.com/user14430847', + 'uploader_url': r're:https?://(?:www\.)?vimeo\.com/user14430847', 'uploader_id': 'user14430847', }, 'params': { @@ -712,12 +760,12 @@ class VimeoChannelIE(VimeoBaseInfoExtractor): # Try extracting href first since not all videos are available via # short https://vimeo.com/id URL (e.g. https://vimeo.com/channels/tributes/6213729) clips = re.findall( - r'id="clip_(\d+)"[^>]*>\s*]+href="(/(?:[^/]+/)*\1)', webpage) + r'id="clip_(\d+)"[^>]*>\s*]+href="(/(?:[^/]+/)*\1)(?:[^>]+\btitle="([^"]+)")?', webpage) if clips: - for video_id, video_url in clips: + for video_id, video_url, video_title in clips: yield self.url_result( compat_urlparse.urljoin(base_url, video_url), - VimeoIE.ie_key(), video_id=video_id) + VimeoIE.ie_key(), video_id=video_id, video_title=video_title) # More relaxed fallback else: for video_id in re.findall(r'id=["\']clip_(\d+)', webpage): @@ -842,7 +890,7 @@ class VimeoReviewIE(VimeoBaseInfoExtractor): 'title': 're:(?i)^Death by dogma versus assembling agile . Sander Hoogendoorn', 'uploader': 'DevWeek Events', 'duration': 2773, - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'uploader_id': 'user22258446', } }, { @@ -866,10 +914,14 @@ class VimeoReviewIE(VimeoBaseInfoExtractor): def _get_config_url(self, webpage_url, video_id, video_password_verified=False): webpage = self._download_webpage(webpage_url, video_id) - data = self._parse_json(self._search_regex( - r'window\s*=\s*_extend\(window,\s*({.+?})\);', webpage, 'data', - default=NO_DEFAULT if video_password_verified else '{}'), video_id) - config_url = data.get('vimeo_esi', {}).get('config', {}).get('configUrl') + config_url = self._html_search_regex( + r'data-config-url=(["\'])(?P(?:(?!\1).)+)\1', webpage, + 'config URL', default=None, group='url') + if not config_url: + data = self._parse_json(self._search_regex( + r'window\s*=\s*_extend\(window,\s*({.+?})\);', webpage, 'data', + default=NO_DEFAULT if video_password_verified else '{}'), video_id) + config_url = data.get('vimeo_esi', {}).get('config', {}).get('configUrl') if config_url is None: self._verify_video_password(webpage_url, video_id, webpage) config_url = self._get_config_url( diff --git a/youtube_dl/extractor/vimple.py b/youtube_dl/extractor/vimple.py index 7fd9b77..c74b437 100644 --- a/youtube_dl/extractor/vimple.py +++ b/youtube_dl/extractor/vimple.py @@ -37,7 +37,7 @@ class VimpleIE(SprutoBaseIE): 'ext': 'mp4', 'title': 'Sunset', 'duration': 20, - 'thumbnail': 're:https?://.*?\.jpg', + 'thumbnail': r're:https?://.*?\.jpg', }, }, { 'url': 'http://player.vimple.ru/iframe/52e1beec-1314-4a83-aeac-c61562eadbf9', diff --git a/youtube_dl/extractor/vine.py b/youtube_dl/extractor/vine.py index 0183f05..4957a07 100644 --- a/youtube_dl/extractor/vine.py +++ b/youtube_dl/extractor/vine.py @@ -6,8 +6,9 @@ import itertools from .common import InfoExtractor from ..utils import ( + determine_ext, int_or_none, - unified_strdate, + unified_timestamp, ) @@ -20,50 +21,16 @@ class VineIE(InfoExtractor): 'id': 'b9KOOWX7HUx', 'ext': 'mp4', 'title': 'Chicken.', - 'alt_title': 'Vine by Jack Dorsey', + 'alt_title': 'Vine by Jack', + 'timestamp': 1368997951, 'upload_date': '20130519', - 'uploader': 'Jack Dorsey', + 'uploader': 'Jack', 'uploader_id': '76', 'view_count': int, 'like_count': int, 'comment_count': int, 'repost_count': int, }, - }, { - 'url': 'https://vine.co/v/MYxVapFvz2z', - 'md5': '7b9a7cbc76734424ff942eb52c8f1065', - 'info_dict': { - 'id': 'MYxVapFvz2z', - 'ext': 'mp4', - 'title': 'Fuck Da Police #Mikebrown #justice #ferguson #prayforferguson #protesting #NMOS14', - 'alt_title': 'Vine by Mars Ruiz', - 'upload_date': '20140815', - 'uploader': 'Mars Ruiz', - 'uploader_id': '1102363502380728320', - 'view_count': int, - 'like_count': int, - 'comment_count': int, - 'repost_count': int, - }, - }, { - 'url': 'https://vine.co/v/bxVjBbZlPUH', - 'md5': 'ea27decea3fa670625aac92771a96b73', - 'info_dict': { - 'id': 'bxVjBbZlPUH', - 'ext': 'mp4', - 'title': '#mw3 #ac130 #killcam #angelofdeath', - 'alt_title': 'Vine by Z3k3', - 'upload_date': '20130430', - 'uploader': 'Z3k3', - 'uploader_id': '936470460173008896', - 'view_count': int, - 'like_count': int, - 'comment_count': int, - 'repost_count': int, - }, - }, { - 'url': 'https://vine.co/oembed/MYxVapFvz2z.json', - 'only_matching': True, }, { 'url': 'https://vine.co/v/e192BnZnZ9V', 'info_dict': { @@ -71,6 +38,7 @@ class VineIE(InfoExtractor): 'ext': 'mp4', 'title': 'ยิ้ม~ เขิน~ อาย~ น่าร้ากอ้ะ >//< @n_whitewo @orlameena #lovesicktheseries #lovesickseason2', 'alt_title': 'Vine by Pimry_zaa', + 'timestamp': 1436057405, 'upload_date': '20150705', 'uploader': 'Pimry_zaa', 'uploader_id': '1135760698325307392', @@ -82,43 +50,60 @@ class VineIE(InfoExtractor): 'params': { 'skip_download': True, }, + }, { + 'url': 'https://vine.co/v/MYxVapFvz2z', + 'only_matching': True, + }, { + 'url': 'https://vine.co/v/bxVjBbZlPUH', + 'only_matching': True, + }, { + 'url': 'https://vine.co/oembed/MYxVapFvz2z.json', + 'only_matching': True, }] def _real_extract(self, url): video_id = self._match_id(url) - webpage = self._download_webpage('https://vine.co/v/' + video_id, video_id) - - data = self._parse_json( - self._search_regex( - r'window\.POST_DATA\s*=\s*({.+?});\s*', - webpage, 'vine data'), - video_id) - - data = data[list(data.keys())[0]] - - formats = [{ - 'format_id': '%(format)s-%(rate)s' % f, - 'vcodec': f.get('format'), - 'quality': f.get('rate'), - 'url': f['videoUrl'], - } for f in data['videoUrls'] if f.get('videoUrl')] + data = self._download_json( + 'https://archive.vine.co/posts/%s.json' % video_id, video_id) + + def video_url(kind): + for url_suffix in ('Url', 'URL'): + format_url = data.get('video%s%s' % (kind, url_suffix)) + if format_url: + return format_url + + formats = [] + for quality, format_id in enumerate(('low', '', 'dash')): + format_url = video_url(format_id.capitalize()) + if not format_url: + continue + # DASH link returns plain mp4 + if format_id == 'dash' and determine_ext(format_url) == 'mpd': + formats.extend(self._extract_mpd_formats( + format_url, video_id, mpd_id='dash', fatal=False)) + else: + formats.append({ + 'url': format_url, + 'format_id': format_id or 'standard', + 'quality': quality, + }) self._sort_formats(formats) username = data.get('username') return { 'id': video_id, - 'title': data.get('description') or self._og_search_title(webpage), - 'alt_title': 'Vine by %s' % username if username else self._og_search_description(webpage, default=None), + 'title': data.get('description'), + 'alt_title': 'Vine by %s' % username if username else None, 'thumbnail': data.get('thumbnailUrl'), - 'upload_date': unified_strdate(data.get('created')), + 'timestamp': unified_timestamp(data.get('created')), 'uploader': username, 'uploader_id': data.get('userIdStr'), - 'view_count': int_or_none(data.get('loops', {}).get('count')), - 'like_count': int_or_none(data.get('likes', {}).get('count')), - 'comment_count': int_or_none(data.get('comments', {}).get('count')), - 'repost_count': int_or_none(data.get('reposts', {}).get('count')), + 'view_count': int_or_none(data.get('loops')), + 'like_count': int_or_none(data.get('likes')), + 'comment_count': int_or_none(data.get('comments')), + 'repost_count': int_or_none(data.get('reposts')), 'formats': formats, } diff --git a/youtube_dl/extractor/viu.py b/youtube_dl/extractor/viu.py new file mode 100644 index 0000000..3fd889c --- /dev/null +++ b/youtube_dl/extractor/viu.py @@ -0,0 +1,249 @@ +# coding: utf-8 +from __future__ import unicode_literals + +import re + +from .common import InfoExtractor +from ..compat import compat_str +from ..utils import ( + ExtractorError, + int_or_none, +) + + +class ViuBaseIE(InfoExtractor): + def _real_initialize(self): + viu_auth_res = self._request_webpage( + 'https://www.viu.com/api/apps/v2/authenticate', None, + 'Requesting Viu auth', query={ + 'acct': 'test', + 'appid': 'viu_desktop', + 'fmt': 'json', + 'iid': 'guest', + 'languageid': 'default', + 'platform': 'desktop', + 'userid': 'guest', + 'useridtype': 'guest', + 'ver': '1.0' + }, headers=self.geo_verification_headers()) + self._auth_token = viu_auth_res.info()['X-VIU-AUTH'] + + def _call_api(self, path, *args, **kwargs): + headers = self.geo_verification_headers() + headers.update({ + 'X-VIU-AUTH': self._auth_token + }) + headers.update(kwargs.get('headers', {})) + kwargs['headers'] = headers + response = self._download_json( + 'https://www.viu.com/api/' + path, *args, **kwargs)['response'] + if response.get('status') != 'success': + raise ExtractorError('%s said: %s' % ( + self.IE_NAME, response['message']), expected=True) + return response + + +class ViuIE(ViuBaseIE): + _VALID_URL = r'(?:viu:|https?://www\.viu\.com/[a-z]{2}/media/)(?P\d+)' + _TESTS = [{ + 'url': 'https://www.viu.com/en/media/1116705532?containerId=playlist-22168059', + 'info_dict': { + 'id': '1116705532', + 'ext': 'mp4', + 'title': 'Citizen Khan - Ep 1', + 'description': 'md5:d7ea1604f49e5ba79c212c551ce2110e', + }, + 'params': { + 'skip_download': 'm3u8 download', + }, + 'skip': 'Geo-restricted to India', + }, { + 'url': 'https://www.viu.com/en/media/1130599965', + 'info_dict': { + 'id': '1130599965', + 'ext': 'mp4', + 'title': 'Jealousy Incarnate - Episode 1', + 'description': 'md5:d3d82375cab969415d2720b6894361e9', + }, + 'params': { + 'skip_download': 'm3u8 download', + }, + 'skip': 'Geo-restricted to Indonesia', + }] + + def _real_extract(self, url): + video_id = self._match_id(url) + + video_data = self._call_api( + 'clip/load', video_id, 'Downloading video data', query={ + 'appid': 'viu_desktop', + 'fmt': 'json', + 'id': video_id + })['item'][0] + + title = video_data['title'] + + m3u8_url = None + url_path = video_data.get('urlpathd') or video_data.get('urlpath') + tdirforwhole = video_data.get('tdirforwhole') + # #EXT-X-BYTERANGE is not supported by native hls downloader + # and ffmpeg (#10955) + # hls_file = video_data.get('hlsfile') + hls_file = video_data.get('jwhlsfile') + if url_path and tdirforwhole and hls_file: + m3u8_url = '%s/%s/%s' % (url_path, tdirforwhole, hls_file) + else: + # m3u8_url = re.sub( + # r'(/hlsc_)[a-z]+(\d+\.m3u8)', + # r'\1whe\2', video_data['href']) + m3u8_url = video_data['href'] + formats = self._extract_m3u8_formats(m3u8_url, video_id, 'mp4') + self._sort_formats(formats) + + subtitles = {} + for key, value in video_data.items(): + mobj = re.match(r'^subtitle_(?P[^_]+)_(?P(vtt|srt))', key) + if not mobj: + continue + subtitles.setdefault(mobj.group('lang'), []).append({ + 'url': value, + 'ext': mobj.group('ext') + }) + + return { + 'id': video_id, + 'title': title, + 'description': video_data.get('description'), + 'series': video_data.get('moviealbumshowname'), + 'episode': title, + 'episode_number': int_or_none(video_data.get('episodeno')), + 'duration': int_or_none(video_data.get('duration')), + 'formats': formats, + 'subtitles': subtitles, + } + + +class ViuPlaylistIE(ViuBaseIE): + IE_NAME = 'viu:playlist' + _VALID_URL = r'https?://www\.viu\.com/[^/]+/listing/playlist-(?P\d+)' + _TEST = { + 'url': 'https://www.viu.com/en/listing/playlist-22461380', + 'info_dict': { + 'id': '22461380', + 'title': 'The Good Wife', + }, + 'playlist_count': 16, + 'skip': 'Geo-restricted to Indonesia', + } + + def _real_extract(self, url): + playlist_id = self._match_id(url) + playlist_data = self._call_api( + 'container/load', playlist_id, + 'Downloading playlist info', query={ + 'appid': 'viu_desktop', + 'fmt': 'json', + 'id': 'playlist-' + playlist_id + })['container'] + + entries = [] + for item in playlist_data.get('item', []): + item_id = item.get('id') + if not item_id: + continue + item_id = compat_str(item_id) + entries.append(self.url_result( + 'viu:' + item_id, 'Viu', item_id)) + + return self.playlist_result( + entries, playlist_id, playlist_data.get('title')) + + +class ViuOTTIE(InfoExtractor): + IE_NAME = 'viu:ott' + _VALID_URL = r'https?://(?:www\.)?viu\.com/ott/(?P[a-z]{2})/[a-z]{2}-[a-z]{2}/vod/(?P\d+)' + _TESTS = [{ + 'url': 'http://www.viu.com/ott/sg/en-us/vod/3421/The%20Prime%20Minister%20and%20I', + 'info_dict': { + 'id': '3421', + 'ext': 'mp4', + 'title': 'A New Beginning', + 'description': 'md5:1e7486a619b6399b25ba6a41c0fe5b2c', + }, + 'params': { + 'skip_download': 'm3u8 download', + }, + 'skip': 'Geo-restricted to Singapore', + }, { + 'url': 'http://www.viu.com/ott/hk/zh-hk/vod/7123/%E5%A4%A7%E4%BA%BA%E5%A5%B3%E5%AD%90', + 'info_dict': { + 'id': '7123', + 'ext': 'mp4', + 'title': '這就是我的生活之道', + 'description': 'md5:4eb0d8b08cf04fcdc6bbbeb16043434f', + }, + 'params': { + 'skip_download': 'm3u8 download', + }, + 'skip': 'Geo-restricted to Hong Kong', + }] + + def _real_extract(self, url): + country_code, video_id = re.match(self._VALID_URL, url).groups() + + 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'] + + video_data = product_data.get('current_product') + if not video_data: + raise ExtractorError('This video is not available in your region.', expected=True) + + stream_data = self._download_json( + 'https://d1k2us671qcoau.cloudfront.net/distribute_web_%s.php' % country_code, + video_id, 'Downloading stream info', query={ + 'ccs_product_id': video_data['ccs_product_id'], + })['data']['stream'] + + stream_sizes = stream_data.get('size', {}) + formats = [] + for vid_format, stream_url in stream_data.get('url', {}).items(): + height = int_or_none(self._search_regex( + r's(\d+)p', vid_format, 'height', default=None)) + formats.append({ + 'format_id': vid_format, + 'url': stream_url, + 'height': height, + 'ext': 'mp4', + 'filesize': int_or_none(stream_sizes.get(vid_format)) + }) + self._sort_formats(formats) + + subtitles = {} + for sub in video_data.get('subtitle', []): + sub_url = sub.get('url') + if not sub_url: + continue + subtitles.setdefault(sub.get('name'), []).append({ + 'url': sub_url, + 'ext': 'srt', + }) + + title = video_data['synopsis'].strip() + + return { + 'id': video_id, + 'title': title, + 'description': video_data.get('description'), + 'series': product_data.get('series', {}).get('name'), + 'episode': title, + 'episode_number': int_or_none(video_data.get('number')), + 'duration': int_or_none(stream_data.get('duration')), + 'thumbnail': video_data.get('cover_image_url'), + 'formats': formats, + 'subtitles': subtitles, + } diff --git a/youtube_dl/extractor/vk.py b/youtube_dl/extractor/vk.py index 1990e70..7c42a4f 100644 --- a/youtube_dl/extractor/vk.py +++ b/youtube_dl/extractor/vk.py @@ -245,7 +245,7 @@ class VKIE(VKBaseIE): }, }, { - # finished live stream, live_mp4 + # finished live stream, postlive_mp4 'url': 'https://vk.com/videos-387766?z=video-387766_456242764%2Fpl_-387766_-2', 'md5': '90d22d051fccbbe9becfccc615be6791', 'info_dict': { @@ -258,7 +258,7 @@ class VKIE(VKBaseIE): }, }, { - # live stream, hls and rtmp links,most likely already finished live + # live stream, hls and rtmp links, most likely already finished live # stream by the time you are reading this comment 'url': 'https://vk.com/video-140332_456239111', 'only_matching': True, @@ -281,6 +281,11 @@ class VKIE(VKBaseIE): { 'url': 'http://new.vk.com/video205387401_165548505', 'only_matching': True, + }, + { + # This video is no longer available, because its author has been blocked. + 'url': 'https://vk.com/video-10639516_456240611', + 'only_matching': True, } ] @@ -328,6 +333,12 @@ class VKIE(VKBaseIE): r'Access denied': 'Access denied to video %s.', + + r'Видеозапись недоступна, так как её автор был заблокирован.': + 'Video %s is no longer available, because its author has been blocked.', + + 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.', } for error_re, error_msg in ERRORS.items(): @@ -378,12 +389,24 @@ class VKIE(VKBaseIE): if not data: data = self._parse_json( self._search_regex( - r'\s*({.+?})\s*', info_page, 'json'), - video_id)['player']['params'][0] + r'\s*({.+?})\s*', info_page, 'json', default='{}'), + video_id) + if data: + data = data['player']['params'][0] + + if not data: + data = self._parse_json( + self._search_regex( + r'var\s+playerParams\s*=\s*({.+?})\s*;\s*\n', info_page, + 'player params'), + video_id)['params'][0] title = unescapeHTML(data['md_title']) - if data.get('live') == 2: + # 2 = live + # 3 = post live (finished live) + is_live = data.get('live') == 2 + if is_live: title = self._live_title(title) timestamp = unified_timestamp(self._html_search_regex( @@ -398,7 +421,8 @@ class VKIE(VKBaseIE): for format_id, format_url in data.items(): if not isinstance(format_url, compat_str) or not format_url.startswith(('http', '//', 'rtmp')): continue - if format_id.startswith(('url', 'cache')) or format_id in ('extra_data', 'live_mp4'): + if (format_id.startswith(('url', 'cache')) or + format_id in ('extra_data', 'live_mp4', 'postlive_mp4')): height = int_or_none(self._search_regex( r'^(?:url|cache)(\d+)', format_id, 'height', default=None)) formats.append({ @@ -408,8 +432,9 @@ class VKIE(VKBaseIE): }) elif format_id == 'hls': formats.extend(self._extract_m3u8_formats( - format_url, video_id, 'mp4', m3u8_id=format_id, - fatal=False, live=True)) + format_url, video_id, 'mp4', + entry_protocol='m3u8' if is_live else 'm3u8_native', + m3u8_id=format_id, fatal=False, live=is_live)) elif format_id == 'rtmp': formats.append({ 'format_id': format_id, @@ -427,6 +452,7 @@ class VKIE(VKBaseIE): 'duration': data.get('duration'), 'timestamp': timestamp, 'view_count': view_count, + 'is_live': is_live, } diff --git a/youtube_dl/extractor/vlive.py b/youtube_dl/extractor/vlive.py index acf9fda..b971890 100644 --- a/youtube_dl/extractor/vlive.py +++ b/youtube_dl/extractor/vlive.py @@ -2,16 +2,23 @@ from __future__ import unicode_literals import re +import time +import itertools from .common import InfoExtractor +from ..compat import ( + compat_urllib_parse_urlencode, + compat_str, +) from ..utils import ( dict_get, ExtractorError, float_or_none, int_or_none, remove_start, + try_get, + urlencode_postdata, ) -from ..compat import compat_urllib_parse_urlencode class VLiveIE(InfoExtractor): @@ -48,17 +55,23 @@ class VLiveIE(InfoExtractor): webpage = self._download_webpage( 'http://www.vlive.tv/video/%s' % video_id, video_id) - video_params = self._search_regex( - r'\bvlive\.video\.init\(([^)]+)\)', - webpage, 'video params') - status, _, _, live_params, long_video_id, key = re.split( - r'"\s*,\s*"', video_params)[2:8] + VIDEO_PARAMS_RE = r'\bvlive\.video\.init\(([^)]+)' + VIDEO_PARAMS_FIELD = 'video params' + + params = self._parse_json(self._search_regex( + VIDEO_PARAMS_RE, webpage, VIDEO_PARAMS_FIELD, default=''), video_id, + transform_source=lambda s: '[' + s + ']', fatal=False) + + if not params or len(params) < 7: + params = self._search_regex( + VIDEO_PARAMS_RE, webpage, VIDEO_PARAMS_FIELD) + params = [p.strip(r'"') for p in re.split(r'\s*,\s*', params)] + + status, long_video_id, key = params[2], params[5], params[6] status = remove_start(status, 'PRODUCT_') if status == 'LIVE_ON_AIR' or status == 'BIG_EVENT_ON_AIR': - live_params = self._parse_json('"%s"' % live_params, video_id) - live_params = self._parse_json(live_params, video_id) - return self._live(video_id, webpage, live_params) + return self._live(video_id, webpage) elif status == 'VOD_ON_AIR' or status == 'BIG_EVENT_INTRO': if long_video_id and key: return self._replay(video_id, webpage, long_video_id, key) @@ -89,7 +102,22 @@ class VLiveIE(InfoExtractor): 'thumbnail': thumbnail, } - def _live(self, video_id, webpage, live_params): + def _live(self, video_id, webpage): + init_page = self._download_webpage( + 'http://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, + 'Content-Type': 'application/x-www-form-urlencoded' + }) + + live_params = self._search_regex( + r'"liveStreamInfo"\s*:\s*(".*"),', + init_page, 'live stream info') + live_params = self._parse_json(live_params, video_id) + live_params = self._parse_json(live_params, video_id) + formats = [] for vid in live_params.get('resolutions', []): formats.extend(self._extract_m3u8_formats( @@ -98,10 +126,14 @@ class VLiveIE(InfoExtractor): fatal=False, live=True)) self._sort_formats(formats) - return dict(self._get_common_fields(webpage), - id=video_id, - formats=formats, - is_live=True) + info = self._get_common_fields(webpage) + info.update({ + 'title': self._live_title(info['title']), + 'id': video_id, + 'formats': formats, + 'is_live': True, + }) + return info def _replay(self, video_id, webpage, long_video_id, key): playinfo = self._download_json( @@ -135,8 +167,97 @@ class VLiveIE(InfoExtractor): 'ext': 'vtt', 'url': caption['source']}] - return dict(self._get_common_fields(webpage), - id=video_id, - formats=formats, - view_count=view_count, - subtitles=subtitles) + info = self._get_common_fields(webpage) + info.update({ + 'id': video_id, + 'formats': formats, + 'view_count': view_count, + 'subtitles': subtitles, + }) + return info + + +class VLiveChannelIE(InfoExtractor): + IE_NAME = 'vlive:channel' + _VALID_URL = r'https?://channels\.vlive\.tv/(?P[0-9A-Z]+)' + _TEST = { + 'url': 'http://channels.vlive.tv/FCD4B', + 'info_dict': { + 'id': 'FCD4B', + 'title': 'MAMAMOO', + }, + 'playlist_mincount': 110 + } + _APP_ID = '8c6cc7b45d2568fb668be6e05b6e5a3b' + + def _real_extract(self, url): + channel_code = self._match_id(url) + + webpage = self._download_webpage( + 'http://channels.vlive.tv/%s/video' % channel_code, channel_code) + + app_id = None + + app_js_url = self._search_regex( + r']+src=(["\'])(?Phttp.+?/app\.js.*?)\1', + webpage, 'app js', default=None, group='url') + + if app_js_url: + app_js = self._download_webpage( + app_js_url, channel_code, 'Downloading app JS', fatal=False) + if app_js: + app_id = self._search_regex( + r'Global\.VFAN_APP_ID\s*=\s*[\'"]([^\'"]+)[\'"]', + app_js, 'app id', default=None) + + app_id = app_id or self._APP_ID + + channel_info = self._download_json( + 'http://api.vfan.vlive.tv/vproxy/channelplus/decodeChannelCode', + channel_code, note='Downloading decode channel code', + query={ + 'app_id': app_id, + 'channelCode': channel_code, + '_': int(time.time()) + }) + + channel_seq = channel_info['result']['channelSeq'] + channel_name = None + entries = [] + + for page_num in itertools.count(1): + video_list = self._download_json( + 'http://api.vfan.vlive.tv/vproxy/channelplus/getChannelVideoList', + channel_code, note='Downloading channel list page #%d' % page_num, + query={ + 'app_id': app_id, + 'channelSeq': channel_seq, + 'maxNumOfRows': 1000, + '_': int(time.time()), + 'pageNo': page_num + } + ) + + if not channel_name: + channel_name = try_get( + video_list, + lambda x: x['result']['channelInfo']['channelName'], + compat_str) + + videos = try_get( + video_list, lambda x: x['result']['videoList'], list) + if not videos: + break + + for video in videos: + video_id = video.get('videoSeq') + if not video_id: + continue + video_id = compat_str(video_id) + entries.append( + self.url_result( + 'http://www.vlive.tv/video/%s' % video_id, + ie=VLiveIE.ie_key(), video_id=video_id)) + + return self.playlist_result( + entries, channel_code, channel_name) diff --git a/youtube_dl/extractor/vodlocker.py b/youtube_dl/extractor/vodlocker.py index bbfa6e5..02c9617 100644 --- a/youtube_dl/extractor/vodlocker.py +++ b/youtube_dl/extractor/vodlocker.py @@ -20,7 +20,7 @@ class VodlockerIE(InfoExtractor): 'id': 'e8wvyzz4sl42', 'ext': 'mp4', 'title': 'Germany vs Brazil', - 'thumbnail': 're:http://.*\.jpg', + 'thumbnail': r're:http://.*\.jpg', }, }] diff --git a/youtube_dl/extractor/voicerepublic.py b/youtube_dl/extractor/voicerepublic.py index 4f1a99a..59e1359 100644 --- a/youtube_dl/extractor/voicerepublic.py +++ b/youtube_dl/extractor/voicerepublic.py @@ -26,7 +26,7 @@ class VoiceRepublicIE(InfoExtractor): 'ext': 'm4a', 'title': 'Watching the Watchers: Building a Sousveillance State', 'description': 'Secret surveillance programs have metadata too. The people and companies that operate secret surveillance programs can be surveilled.', - 'thumbnail': 're:^https?://.*\.(?:png|jpg)$', + 'thumbnail': r're:^https?://.*\.(?:png|jpg)$', 'duration': 1800, 'view_count': int, } diff --git a/youtube_dl/extractor/vporn.py b/youtube_dl/extractor/vporn.py index 1557a0e..858ac9e 100644 --- a/youtube_dl/extractor/vporn.py +++ b/youtube_dl/extractor/vporn.py @@ -7,6 +7,7 @@ from ..utils import ( ExtractorError, parse_duration, str_to_int, + urljoin, ) @@ -22,7 +23,7 @@ class VpornIE(InfoExtractor): 'ext': 'mp4', 'title': 'Violet on her 19th birthday', 'description': 'Violet dances in front of the camera which is sure to get you horny.', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'uploader': 'kileyGrope', 'categories': ['Masturbation', 'Teen'], 'duration': 393, @@ -40,7 +41,7 @@ class VpornIE(InfoExtractor): 'ext': 'mp4', 'title': 'Hana Shower', 'description': 'Hana showers at the bathroom.', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'uploader': 'Hmmmmm', 'categories': ['Big Boobs', 'Erotic', 'Teen', 'Female', '720p'], 'duration': 588, @@ -66,10 +67,9 @@ class VpornIE(InfoExtractor): description = self._html_search_regex( r'class="(?:descr|description_txt)">(.*?)', webpage, 'description', fatal=False) - thumbnail = self._html_search_regex( - r'flashvars\.imageUrl\s*=\s*"([^"]+)"', webpage, 'description', fatal=False, default=None) - if thumbnail: - thumbnail = 'http://www.vporn.com' + thumbnail + thumbnail = urljoin('http://www.vporn.com', self._html_search_regex( + r'flashvars\.imageUrl\s*=\s*"([^"]+)"', webpage, 'description', + default=None)) uploader = self._html_search_regex( r'(?s)Uploaded by:.*?
    ]*>(.+?)', diff --git a/youtube_dl/extractor/vube.py b/youtube_dl/extractor/vube.py index 10ca6ac..8ce3a6b 100644 --- a/youtube_dl/extractor/vube.py +++ b/youtube_dl/extractor/vube.py @@ -26,7 +26,7 @@ class VubeIE(InfoExtractor): 'ext': 'mp4', 'title': 'Best Drummer Ever [HD]', 'description': 'md5:2d63c4b277b85c2277761c2cf7337d71', - 'thumbnail': 're:^https?://.*\.jpg', + 'thumbnail': r're:^https?://.*\.jpg', 'uploader': 'William', 'timestamp': 1406876915, 'upload_date': '20140801', @@ -45,7 +45,7 @@ class VubeIE(InfoExtractor): 'ext': 'mp4', 'title': 'Chiara Grispo - Price Tag by Jessie J', 'description': 'md5:8ea652a1f36818352428cb5134933313', - 'thumbnail': 're:^http://frame\.thestaticvube\.com/snap/[0-9x]+/102e7e63057-5ebc-4f5c-4065-6ce4ebde131f\.jpg$', + 'thumbnail': r're:^http://frame\.thestaticvube\.com/snap/[0-9x]+/102e7e63057-5ebc-4f5c-4065-6ce4ebde131f\.jpg$', 'uploader': 'Chiara.Grispo', 'timestamp': 1388743358, 'upload_date': '20140103', @@ -65,7 +65,7 @@ class VubeIE(InfoExtractor): 'ext': 'mp4', 'title': 'My 7 year old Sister and I singing "Alive" by Krewella', 'description': 'md5:40bcacb97796339f1690642c21d56f4a', - 'thumbnail': 're:^http://frame\.thestaticvube\.com/snap/[0-9x]+/102265d5a9f-0f17-4f6b-5753-adf08484ee1e\.jpg$', + 'thumbnail': r're:^http://frame\.thestaticvube\.com/snap/[0-9x]+/102265d5a9f-0f17-4f6b-5753-adf08484ee1e\.jpg$', 'uploader': 'Seraina', 'timestamp': 1396492438, 'upload_date': '20140403', @@ -84,7 +84,7 @@ class VubeIE(InfoExtractor): 'ext': 'mp4', 'title': 'Frozen - Let It Go Cover by Siren Gene', 'description': 'My rendition of "Let It Go" originally sung by Idina Menzel.', - 'thumbnail': 're:^http://frame\.thestaticvube\.com/snap/[0-9x]+/10283ab622a-86c9-4681-51f2-30d1f65774af\.jpg$', + 'thumbnail': r're:^http://frame\.thestaticvube\.com/snap/[0-9x]+/10283ab622a-86c9-4681-51f2-30d1f65774af\.jpg$', 'uploader': 'Siren', 'timestamp': 1395448018, 'upload_date': '20140322', diff --git a/youtube_dl/extractor/vvvvid.py b/youtube_dl/extractor/vvvvid.py new file mode 100644 index 0000000..d44ec85 --- /dev/null +++ b/youtube_dl/extractor/vvvvid.py @@ -0,0 +1,140 @@ +# coding: utf-8 +from __future__ import unicode_literals + +import re + +from .common import InfoExtractor +from ..utils import ( + ExtractorError, + int_or_none, + str_or_none, +) + + +class VVVVIDIE(InfoExtractor): + _VALID_URL = r'https?://(?:www\.)?vvvvid\.it/#!(?:show|anime|film|series)/(?P\d+)/[^/]+/(?P\d+)/(?P[0-9]+)' + _TESTS = [{ + # video_type == 'video/vvvvid' + 'url': 'https://www.vvvvid.it/#!show/434/perche-dovrei-guardarlo-di-dario-moccia/437/489048/ping-pong', + 'md5': 'b8d3cecc2e981adc3835adf07f6df91b', + 'info_dict': { + 'id': '489048', + 'ext': 'mp4', + 'title': 'Ping Pong', + }, + }, { + # video_type == 'video/rcs' + 'url': 'https://www.vvvvid.it/#!show/376/death-note-live-action/377/482493/episodio-01', + 'md5': '33e0edfba720ad73a8782157fdebc648', + 'info_dict': { + 'id': '482493', + 'ext': 'mp4', + 'title': 'Episodio 01', + }, + }] + _conn_id = None + + def _real_initialize(self): + self._conn_id = self._download_json( + 'https://www.vvvvid.it/user/login', + None, headers=self.geo_verification_headers())['data']['conn_id'] + + def _real_extract(self, url): + show_id, season_id, video_id = re.match(self._VALID_URL, url).groups() + response = self._download_json( + 'https://www.vvvvid.it/vvvvid/ondemand/%s/season/%s' % (show_id, season_id), + video_id, headers=self.geo_verification_headers(), query={ + 'conn_id': self._conn_id, + }) + if response['result'] == 'error': + raise ExtractorError('%s said: %s' % ( + self.IE_NAME, response['message']), expected=True) + + vid = int(video_id) + video_data = list(filter( + lambda episode: episode.get('video_id') == vid, response['data']))[0] + formats = [] + + # vvvvid embed_info decryption algorithm is reverse engineered from function $ds(h) at vvvvid.js + def ds(h): + g = "MNOPIJKL89+/4567UVWXQRSTEFGHABCDcdefYZabstuvopqr0123wxyzklmnghij" + + def f(m): + l = [] + o = 0 + b = False + m_len = len(m) + while ((not b) and o < m_len): + n = m[o] << 2 + o += 1 + k = -1 + j = -1 + if o < m_len: + n += m[o] >> 4 + o += 1 + if o < m_len: + k = (m[o - 1] << 4) & 255 + k += m[o] >> 2 + o += 1 + if o < m_len: + j = (m[o - 1] << 6) & 255 + j += m[o] + o += 1 + else: + b = True + else: + b = True + else: + b = True + l.append(n) + if k != -1: + l.append(k) + if j != -1: + l.append(j) + return l + + c = [] + for e in h: + c.append(g.index(e)) + + c_len = len(c) + for e in range(c_len * 2 - 1, -1, -1): + a = c[e % c_len] ^ c[(e + 1) % c_len] + c[e % c_len] = a + + c = f(c) + d = '' + for e in c: + d += chr(e) + + return d + + for quality in ('_sd', ''): + embed_code = video_data.get('embed_info' + quality) + if not embed_code: + continue + embed_code = ds(embed_code) + video_type = video_data.get('video_type') + if video_type in ('video/rcs', 'video/kenc'): + formats.extend(self._extract_akamai_formats( + embed_code, video_id)) + else: + formats.extend(self._extract_wowza_formats( + 'http://sb.top-ix.org/videomg/_definst_/mp4:%s/playlist.m3u8' % embed_code, video_id)) + self._sort_formats(formats) + + return { + 'id': video_id, + 'title': video_data['title'], + 'formats': formats, + 'thumbnail': video_data.get('thumbnail'), + 'duration': int_or_none(video_data.get('length')), + 'series': video_data.get('show_title'), + 'season_id': season_id, + 'season_number': video_data.get('season_number'), + 'episode_id': str_or_none(video_data.get('id')), + 'epidode_number': int_or_none(video_data.get('number')), + 'episode_title': video_data['title'], + 'view_count': int_or_none(video_data.get('views')), + 'like_count': int_or_none(video_data.get('video_likes')), + } diff --git a/youtube_dl/extractor/walla.py b/youtube_dl/extractor/walla.py index 8b94883..cbb5486 100644 --- a/youtube_dl/extractor/walla.py +++ b/youtube_dl/extractor/walla.py @@ -20,7 +20,7 @@ class WallaIE(InfoExtractor): 'ext': 'flv', 'title': 'וואן דיירקשן: ההיסטריה', 'description': 'md5:de9e2512a92442574cdb0913c49bc4d8', - 'thumbnail': 're:^https?://.*\.jpg', + 'thumbnail': r're:^https?://.*\.jpg', 'duration': 3600, }, 'params': { diff --git a/youtube_dl/extractor/watchindianporn.py b/youtube_dl/extractor/watchindianporn.py index 5d3b5bd..ed099be 100644 --- a/youtube_dl/extractor/watchindianporn.py +++ b/youtube_dl/extractor/watchindianporn.py @@ -22,7 +22,7 @@ class WatchIndianPornIE(InfoExtractor): 'display_id': 'hot-milf-from-kerala-shows-off-her-gorgeous-large-breasts-on-camera', 'ext': 'mp4', 'title': 'Hot milf from kerala shows off her gorgeous large breasts on camera', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'uploader': 'LoveJay', 'upload_date': '20160428', 'duration': 226, diff --git a/youtube_dl/extractor/webcaster.py b/youtube_dl/extractor/webcaster.py index 7486cb3..e4b65f5 100644 --- a/youtube_dl/extractor/webcaster.py +++ b/youtube_dl/extractor/webcaster.py @@ -20,7 +20,7 @@ class WebcasterIE(InfoExtractor): 'id': 'c8cefd240aa593681c8d068cff59f407_hd', 'ext': 'mp4', 'title': 'Сибирь - Нефтехимик. Лучшие моменты первого периода', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', }, }, { 'url': 'http://bl.webcaster.pro/media/start/free_6246c7a4453ac4c42b4398f840d13100_hd/2_2991109016/e8d0d82587ef435480118f9f9c41db41/4635726126', diff --git a/youtube_dl/extractor/webofstories.py b/youtube_dl/extractor/webofstories.py index 7aea47e..1eb1f67 100644 --- a/youtube_dl/extractor/webofstories.py +++ b/youtube_dl/extractor/webofstories.py @@ -19,7 +19,7 @@ class WebOfStoriesIE(InfoExtractor): 'id': '4536', 'ext': 'mp4', 'title': 'The temperature of the sun', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'description': 'Hans Bethe talks about calculating the temperature of the sun', 'duration': 238, } @@ -30,7 +30,7 @@ class WebOfStoriesIE(InfoExtractor): 'id': '55908', 'ext': 'mp4', 'title': 'The story of Gemmata obscuriglobus', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'description': 'Planctomycete talks about The story of Gemmata obscuriglobus', 'duration': 169, }, @@ -42,7 +42,7 @@ class WebOfStoriesIE(InfoExtractor): 'id': '54215', 'ext': 'mp4', 'title': '"A Leg to Stand On"', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'description': 'Oliver Sacks talks about the death and resurrection of a limb', 'duration': 97, }, @@ -134,7 +134,7 @@ class WebOfStoriesPlaylistIE(InfoExtractor): entries = [ self.url_result('http://www.webofstories.com/play/%s' % video_number, 'WebOfStories') - for video_number in set(re.findall('href="/playAll/%s\?sId=(\d+)"' % playlist_id, webpage)) + for video_number in set(re.findall(r'href="/playAll/%s\?sId=(\d+)"' % playlist_id, webpage)) ] title = self._search_regex( diff --git a/youtube_dl/extractor/weiqitv.py b/youtube_dl/extractor/weiqitv.py index 8e09156..7e0befd 100644 --- a/youtube_dl/extractor/weiqitv.py +++ b/youtube_dl/extractor/weiqitv.py @@ -37,11 +37,11 @@ class WeiqiTVIE(InfoExtractor): page = self._download_webpage(url, media_id) info_json_str = self._search_regex( - 'var\s+video\s*=\s*(.+});', page, 'info json str') + r'var\s+video\s*=\s*(.+});', page, 'info json str') info_json = self._parse_json(info_json_str, media_id) letvcloud_url = self._search_regex( - 'var\s+letvurl\s*=\s*"([^"]+)', page, 'letvcloud url') + r'var\s+letvurl\s*=\s*"([^"]+)', page, 'letvcloud url') return { '_type': 'url_transparent', diff --git a/youtube_dl/extractor/xbef.py b/youtube_dl/extractor/xbef.py index e4a2baa..4c41e98 100644 --- a/youtube_dl/extractor/xbef.py +++ b/youtube_dl/extractor/xbef.py @@ -14,7 +14,7 @@ class XBefIE(InfoExtractor): 'ext': 'mp4', 'title': 'md5:7358a9faef8b7b57acda7c04816f170e', 'age_limit': 18, - 'thumbnail': 're:^http://.*\.jpg', + 'thumbnail': r're:^http://.*\.jpg', } } diff --git a/youtube_dl/extractor/xfileshare.py b/youtube_dl/extractor/xfileshare.py index de344ba..e616adc 100644 --- a/youtube_dl/extractor/xfileshare.py +++ b/youtube_dl/extractor/xfileshare.py @@ -44,7 +44,7 @@ class XFileShareIE(InfoExtractor): 'id': '06y9juieqpmi', 'ext': 'mp4', 'title': 'Rebecca Black My Moment Official Music Video Reaction-6GK87Rc8bzQ', - 'thumbnail': 're:http://.*\.jpg', + 'thumbnail': r're:http://.*\.jpg', }, }, { 'url': 'http://gorillavid.in/embed-z08zf8le23c6-960x480.html', @@ -56,7 +56,7 @@ class XFileShareIE(InfoExtractor): 'id': '3rso4kdn6f9m', 'ext': 'mp4', 'title': 'Micro Pig piglets ready on 16th July 2009-bG0PdrCdxUc', - 'thumbnail': 're:http://.*\.jpg', + 'thumbnail': r're:http://.*\.jpg', } }, { 'url': 'http://movpod.in/0wguyyxi1yca', @@ -67,7 +67,7 @@ class XFileShareIE(InfoExtractor): 'id': '3ivfabn7573c', 'ext': 'mp4', 'title': 'youtube-dl test video \'äBaW_jenozKc.mp4.mp4', - 'thumbnail': 're:http://.*\.jpg', + 'thumbnail': r're:http://.*\.jpg', }, 'skip': 'Video removed', }, { diff --git a/youtube_dl/extractor/xhamster.py b/youtube_dl/extractor/xhamster.py index bd8e1af..36a8c98 100644 --- a/youtube_dl/extractor/xhamster.py +++ b/youtube_dl/extractor/xhamster.py @@ -5,8 +5,8 @@ import re from .common import InfoExtractor from ..utils import ( dict_get, - float_or_none, int_or_none, + parse_duration, unified_strdate, ) @@ -22,7 +22,7 @@ class XHamsterIE(InfoExtractor): 'title': 'FemaleAgent Shy beauty takes the bait', 'upload_date': '20121014', 'uploader': 'Ruseful2011', - 'duration': 893.52, + 'duration': 893, 'age_limit': 18, }, }, { @@ -33,7 +33,7 @@ class XHamsterIE(InfoExtractor): 'title': 'Britney Spears Sexy Booty', 'upload_date': '20130914', 'uploader': 'jojo747400', - 'duration': 200.48, + 'duration': 200, 'age_limit': 18, }, 'params': { @@ -48,7 +48,7 @@ class XHamsterIE(InfoExtractor): 'title': '....', 'upload_date': '20160208', 'uploader': 'parejafree', - 'duration': 72.0, + 'duration': 72, 'age_limit': 18, }, 'params': { @@ -101,9 +101,9 @@ class XHamsterIE(InfoExtractor): r''']+poster=(?P["'])(?P.+?)(?P=q)[^>]*>'''], webpage, 'thumbnail', fatal=False, group='thumbnail') - duration = float_or_none(self._search_regex( - r'(["\'])duration\1\s*:\s*(["\'])(?P.+?)\2', - webpage, 'duration', fatal=False, group='duration')) + duration = parse_duration(self._search_regex( + r'Runtime:\s*\s*([\d:]+)', webpage, + 'duration', fatal=False)) view_count = int_or_none(self._search_regex( r'content=["\']User(?:View|Play)s:(\d+)', diff --git a/youtube_dl/extractor/xiami.py b/youtube_dl/extractor/xiami.py index 86abef2..d017e03 100644 --- a/youtube_dl/extractor/xiami.py +++ b/youtube_dl/extractor/xiami.py @@ -16,7 +16,9 @@ class XiamiBaseIE(InfoExtractor): return webpage def _extract_track(self, track, track_id=None): - title = track['title'] + track_name = track.get('songName') or track.get('name') or track['subName'] + artist = track.get('artist') or track.get('artist_name') or track.get('singers') + title = '%s - %s' % (artist, track_name) if artist else track_name track_url = self._decrypt(track['location']) subtitles = {} @@ -31,9 +33,10 @@ class XiamiBaseIE(InfoExtractor): 'thumbnail': track.get('pic') or track.get('album_pic'), 'duration': int_or_none(track.get('length')), 'creator': track.get('artist', '').split(';')[0], - 'track': title, - 'album': track.get('album_name'), - 'artist': track.get('artist'), + 'track': track_name, + 'track_number': int_or_none(track.get('track')), + 'album': track.get('album_name') or track.get('title'), + 'artist': artist, 'subtitles': subtitles, } @@ -68,14 +71,14 @@ class XiamiBaseIE(InfoExtractor): class XiamiSongIE(XiamiBaseIE): IE_NAME = 'xiami:song' IE_DESC = '虾米音乐' - _VALID_URL = r'https?://(?:www\.)?xiami\.com/song/(?P[0-9]+)' + _VALID_URL = r'https?://(?:www\.)?xiami\.com/song/(?P[^/?#&]+)' _TESTS = [{ 'url': 'http://www.xiami.com/song/1775610518', 'md5': '521dd6bea40fd5c9c69f913c232cb57e', 'info_dict': { 'id': '1775610518', 'ext': 'mp3', - 'title': 'Woman', + 'title': 'HONNE - Woman', 'thumbnail': r're:http://img\.xiami\.net/images/album/.*\.jpg', 'duration': 265, 'creator': 'HONNE', @@ -95,7 +98,7 @@ class XiamiSongIE(XiamiBaseIE): 'info_dict': { 'id': '1775256504', 'ext': 'mp3', - 'title': '悟空', + 'title': '戴荃 - 悟空', 'thumbnail': r're:http://img\.xiami\.net/images/album/.*\.jpg', 'duration': 200, 'creator': '戴荃', @@ -109,6 +112,26 @@ class XiamiSongIE(XiamiBaseIE): }, }, 'skip': 'Georestricted', + }, { + 'url': 'http://www.xiami.com/song/1775953850', + 'info_dict': { + 'id': '1775953850', + 'ext': 'mp3', + 'title': 'До Скону - Чума Пожирает Землю', + 'thumbnail': r're:http://img\.xiami\.net/images/album/.*\.jpg', + 'duration': 683, + 'creator': 'До Скону', + 'track': 'Чума Пожирает Землю', + 'track_number': 7, + 'album': 'Ад', + 'artist': 'До Скону', + }, + 'params': { + 'skip_download': True, + }, + }, { + 'url': 'http://www.xiami.com/song/xLHGwgd07a1', + 'only_matching': True, }] def _real_extract(self, url): @@ -124,7 +147,7 @@ class XiamiPlaylistBaseIE(XiamiBaseIE): class XiamiAlbumIE(XiamiPlaylistBaseIE): IE_NAME = 'xiami:album' IE_DESC = '虾米音乐 - 专辑' - _VALID_URL = r'https?://(?:www\.)?xiami\.com/album/(?P[0-9]+)' + _VALID_URL = r'https?://(?:www\.)?xiami\.com/album/(?P[^/?#&]+)' _TYPE = '1' _TESTS = [{ 'url': 'http://www.xiami.com/album/2100300444', @@ -136,28 +159,34 @@ class XiamiAlbumIE(XiamiPlaylistBaseIE): }, { 'url': 'http://www.xiami.com/album/512288?spm=a1z1s.6843761.1110925389.6.hhE9p9', 'only_matching': True, + }, { + 'url': 'http://www.xiami.com/album/URVDji2a506', + 'only_matching': True, }] class XiamiArtistIE(XiamiPlaylistBaseIE): IE_NAME = 'xiami:artist' IE_DESC = '虾米音乐 - 歌手' - _VALID_URL = r'https?://(?:www\.)?xiami\.com/artist/(?P[0-9]+)' + _VALID_URL = r'https?://(?:www\.)?xiami\.com/artist/(?P[^/?#&]+)' _TYPE = '2' - _TEST = { + _TESTS = [{ 'url': 'http://www.xiami.com/artist/2132?spm=0.0.0.0.dKaScp', 'info_dict': { 'id': '2132', }, 'playlist_count': 20, 'skip': 'Georestricted', - } + }, { + 'url': 'http://www.xiami.com/artist/bC5Tk2K6eb99', + 'only_matching': True, + }] class XiamiCollectionIE(XiamiPlaylistBaseIE): IE_NAME = 'xiami:collection' IE_DESC = '虾米音乐 - 精选集' - _VALID_URL = r'https?://(?:www\.)?xiami\.com/collect/(?P[0-9]+)' + _VALID_URL = r'https?://(?:www\.)?xiami\.com/collect/(?P[^/?#&]+)' _TYPE = '3' _TEST = { 'url': 'http://www.xiami.com/collect/156527391?spm=a1z1s.2943601.6856193.12.4jpBnr', diff --git a/youtube_dl/extractor/xuite.py b/youtube_dl/extractor/xuite.py index 4b9c1ee..e081820 100644 --- a/youtube_dl/extractor/xuite.py +++ b/youtube_dl/extractor/xuite.py @@ -24,7 +24,7 @@ class XuiteIE(InfoExtractor): 'id': '3860914', 'ext': 'mp3', 'title': '孤單南半球-歐德陽', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'duration': 247.246, 'timestamp': 1314932940, 'upload_date': '20110902', @@ -40,7 +40,7 @@ class XuiteIE(InfoExtractor): 'id': '25925099', 'ext': 'mp4', 'title': 'BigBuckBunny_320x180', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'duration': 596.458, 'timestamp': 1454242500, 'upload_date': '20160131', @@ -58,7 +58,7 @@ class XuiteIE(InfoExtractor): 'ext': 'mp4', 'title': '暗殺教室 02', 'description': '字幕:【極影字幕社】', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'duration': 1384.907, 'timestamp': 1421481240, 'upload_date': '20150117', diff --git a/youtube_dl/extractor/yesjapan.py b/youtube_dl/extractor/yesjapan.py index 112a6c0..681338c 100644 --- a/youtube_dl/extractor/yesjapan.py +++ b/youtube_dl/extractor/yesjapan.py @@ -21,7 +21,7 @@ class YesJapanIE(InfoExtractor): 'ext': 'mp4', 'timestamp': 1416391590, 'upload_date': '20141119', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', } } diff --git a/youtube_dl/extractor/yinyuetai.py b/youtube_dl/extractor/yinyuetai.py index 834d860..1fd8d35 100644 --- a/youtube_dl/extractor/yinyuetai.py +++ b/youtube_dl/extractor/yinyuetai.py @@ -18,7 +18,7 @@ class YinYueTaiIE(InfoExtractor): 'title': '少女时代_PARTY_Music Video Teaser', 'creator': '少女时代', 'duration': 25, - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', }, }, { 'url': 'http://v.yinyuetai.com/video/h5/2322376', diff --git a/youtube_dl/extractor/ynet.py b/youtube_dl/extractor/ynet.py index 0d943c3..c4ae4d8 100644 --- a/youtube_dl/extractor/ynet.py +++ b/youtube_dl/extractor/ynet.py @@ -17,7 +17,7 @@ class YnetIE(InfoExtractor): 'id': 'L-11659-99244', 'ext': 'flv', 'title': 'איש לא יודע מאיפה באנו', - 'thumbnail': 're:^https?://.*\.jpg', + 'thumbnail': r're:^https?://.*\.jpg', } }, { 'url': 'http://hot.ynet.co.il/home/0,7340,L-8859-84418,00.html', @@ -25,7 +25,7 @@ class YnetIE(InfoExtractor): 'id': 'L-8859-84418', 'ext': 'flv', 'title': "צפו: הנשיקה הלוהטת של תורגי' ויוליה פלוטקין", - 'thumbnail': 're:^https?://.*\.jpg', + 'thumbnail': r're:^https?://.*\.jpg', } } ] diff --git a/youtube_dl/extractor/youporn.py b/youtube_dl/extractor/youporn.py index 0265a64..34ab878 100644 --- a/youtube_dl/extractor/youporn.py +++ b/youtube_dl/extractor/youporn.py @@ -24,7 +24,7 @@ class YouPornIE(InfoExtractor): 'ext': 'mp4', 'title': 'Sex Ed: Is It Safe To Masturbate Daily?', 'description': 'Love & Sex Answers: http://bit.ly/DanAndJenn -- Is It Unhealthy To Masturbate Daily?', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'uploader': 'Ask Dan And Jennifer', 'upload_date': '20101221', 'average_rating': int, @@ -43,7 +43,7 @@ class YouPornIE(InfoExtractor): 'ext': 'mp4', 'title': 'Big Tits Awesome Brunette On amazing webcam show', 'description': 'http://sweetlivegirls.com Big Tits Awesome Brunette On amazing webcam show.mp4', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'uploader': 'Unknown', 'upload_date': '20111125', 'average_rating': int, diff --git a/youtube_dl/extractor/yourupload.py b/youtube_dl/extractor/yourupload.py index 4e25d6f..9fa7728 100644 --- a/youtube_dl/extractor/yourupload.py +++ b/youtube_dl/extractor/yourupload.py @@ -2,44 +2,37 @@ from __future__ import unicode_literals from .common import InfoExtractor +from ..utils import urljoin class YourUploadIE(InfoExtractor): - _VALID_URL = r'''(?x)https?://(?:www\.)? - (?:yourupload\.com/watch| - embed\.yourupload\.com| - embed\.yucache\.net - )/(?P[A-Za-z0-9]+) - ''' - _TESTS = [ - { - 'url': 'http://yourupload.com/watch/14i14h', - 'md5': '5e2c63385454c557f97c4c4131a393cd', - 'info_dict': { - 'id': '14i14h', - 'ext': 'mp4', - 'title': 'BigBuckBunny_320x180.mp4', - 'thumbnail': 're:^https?://.*\.jpe?g', - } - }, - { - 'url': 'http://embed.yourupload.com/14i14h', - 'only_matching': True, - }, - { - 'url': 'http://embed.yucache.net/14i14h?client_file_id=803349', - 'only_matching': True, - }, - ] + _VALID_URL = r'https?://(?:www\.)?(?:yourupload\.com/(?:watch|embed)|embed\.yourupload\.com)/(?P[A-Za-z0-9]+)' + _TESTS = [{ + 'url': 'http://yourupload.com/watch/14i14h', + 'md5': '5e2c63385454c557f97c4c4131a393cd', + 'info_dict': { + 'id': '14i14h', + 'ext': 'mp4', + 'title': 'BigBuckBunny_320x180.mp4', + 'thumbnail': r're:^https?://.*\.jpe?g', + } + }, { + 'url': 'http://www.yourupload.com/embed/14i14h', + 'only_matching': True, + }, { + 'url': 'http://embed.yourupload.com/14i14h', + 'only_matching': True, + }] def _real_extract(self, url): video_id = self._match_id(url) - embed_url = 'http://embed.yucache.net/{0:}'.format(video_id) + embed_url = 'http://www.yourupload.com/embed/%s' % video_id + webpage = self._download_webpage(embed_url, video_id) title = self._og_search_title(webpage) - video_url = self._og_search_video_url(webpage) + video_url = urljoin(embed_url, self._og_search_video_url(webpage)) thumbnail = self._og_search_thumbnail(webpage, default=None) return { diff --git a/youtube_dl/extractor/youtube.py b/youtube_dl/extractor/youtube.py index bd24a28..7671093 100644 --- a/youtube_dl/extractor/youtube.py +++ b/youtube_dl/extractor/youtube.py @@ -40,6 +40,7 @@ from ..utils import ( sanitized_Request, smuggle_url, str_to_int, + try_get, unescapeHTML, unified_strdate, unsmuggle_url, @@ -316,6 +317,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor): '137': {'ext': 'mp4', 'height': 1080, 'format_note': 'DASH video', 'vcodec': 'h264', 'preference': -40}, '138': {'ext': 'mp4', 'format_note': 'DASH video', 'vcodec': 'h264', 'preference': -40}, # Height can vary (https://github.com/rg3/youtube-dl/issues/4559) '160': {'ext': 'mp4', 'height': 144, 'format_note': 'DASH video', 'vcodec': 'h264', 'preference': -40}, + '212': {'ext': 'mp4', 'height': 480, 'format_note': 'DASH video', 'vcodec': 'h264', 'preference': -40}, '264': {'ext': 'mp4', 'height': 1440, 'format_note': 'DASH video', 'vcodec': 'h264', 'preference': -40}, '298': {'ext': 'mp4', 'height': 720, 'format_note': 'DASH video', 'vcodec': 'h264', 'fps': 60, 'preference': -40}, '299': {'ext': 'mp4', 'height': 1080, 'format_note': 'DASH video', 'vcodec': 'h264', 'fps': 60, 'preference': -40}, @@ -327,6 +329,8 @@ class YoutubeIE(YoutubeBaseInfoExtractor): '141': {'ext': 'm4a', 'format_note': 'DASH audio', 'acodec': 'aac', 'abr': 256, 'preference': -50, 'container': 'm4a_dash'}, '256': {'ext': 'm4a', 'format_note': 'DASH audio', 'acodec': 'aac', 'preference': -50, 'container': 'm4a_dash'}, '258': {'ext': 'm4a', 'format_note': 'DASH audio', 'acodec': 'aac', 'preference': -50, 'container': 'm4a_dash'}, + '325': {'ext': 'm4a', 'format_note': 'DASH audio', 'acodec': 'dtse', 'preference': -50, 'container': 'm4a_dash'}, + '328': {'ext': 'm4a', 'format_note': 'DASH audio', 'acodec': 'ec-3', 'preference': -50, 'container': 'm4a_dash'}, # Dash webm '167': {'ext': 'webm', 'height': 360, 'width': 640, 'format_note': 'DASH video', 'container': 'webm', 'vcodec': 'vp8', 'preference': -40}, @@ -376,12 +380,13 @@ class YoutubeIE(YoutubeBaseInfoExtractor): 'title': 'youtube-dl test video "\'/\\ä↭𝕐', 'uploader': 'Philipp Hagemeister', 'uploader_id': 'phihag', - 'uploader_url': 're:https?://(?:www\.)?youtube\.com/user/phihag', + 'uploader_url': r're:https?://(?:www\.)?youtube\.com/user/phihag', 'upload_date': '20121002', 'license': 'Standard YouTube License', 'description': 'test chars: "\'/\\ä↭𝕐\ntest URL: https://github.com/rg3/youtube-dl/issues/1892\n\nThis is a test video for youtube-dl.\n\nFor more information, contact phihag@phihag.de .', 'categories': ['Science & Technology'], 'tags': ['youtube-dl'], + 'duration': 10, 'like_count': int, 'dislike_count': int, 'start_time': 1, @@ -401,9 +406,10 @@ class YoutubeIE(YoutubeBaseInfoExtractor): 'tags': ['Icona Pop i love it', 'sweden', 'pop music', 'big beat records', 'big beat', 'charli', 'xcx', 'charli xcx', 'girls', 'hbo', 'i love it', "i don't care", 'icona', 'pop', 'iconic ep', 'iconic', 'love', 'it'], + 'duration': 180, 'uploader': 'Icona Pop', 'uploader_id': 'IconaPop', - 'uploader_url': 're:https?://(?:www\.)?youtube\.com/user/IconaPop', + 'uploader_url': r're:https?://(?:www\.)?youtube\.com/user/IconaPop', 'license': 'Standard YouTube License', 'creator': 'Icona Pop', } @@ -418,9 +424,10 @@ class YoutubeIE(YoutubeBaseInfoExtractor): 'title': 'Justin Timberlake - Tunnel Vision (Explicit)', 'alt_title': 'Tunnel Vision', 'description': 'md5:64249768eec3bc4276236606ea996373', + 'duration': 419, 'uploader': 'justintimberlakeVEVO', 'uploader_id': 'justintimberlakeVEVO', - 'uploader_url': 're:https?://(?:www\.)?youtube\.com/user/justintimberlakeVEVO', + 'uploader_url': r're:https?://(?:www\.)?youtube\.com/user/justintimberlakeVEVO', 'license': 'Standard YouTube License', 'creator': 'Justin Timberlake', 'age_limit': 18, @@ -437,7 +444,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor): 'description': 'md5:09b78bd971f1e3e289601dfba15ca4f7', 'uploader': 'SET India', 'uploader_id': 'setindia', - 'uploader_url': 're:https?://(?:www\.)?youtube\.com/user/setindia', + 'uploader_url': r're:https?://(?:www\.)?youtube\.com/user/setindia', 'license': 'Standard YouTube License', 'age_limit': 18, } @@ -451,12 +458,13 @@ class YoutubeIE(YoutubeBaseInfoExtractor): 'title': 'youtube-dl test video "\'/\\ä↭𝕐', 'uploader': 'Philipp Hagemeister', 'uploader_id': 'phihag', - 'uploader_url': 're:https?://(?:www\.)?youtube\.com/user/phihag', + 'uploader_url': r're:https?://(?:www\.)?youtube\.com/user/phihag', 'upload_date': '20121002', 'license': 'Standard YouTube License', 'description': 'test chars: "\'/\\ä↭𝕐\ntest URL: https://github.com/rg3/youtube-dl/issues/1892\n\nThis is a test video for youtube-dl.\n\nFor more information, contact phihag@phihag.de .', 'categories': ['Science & Technology'], 'tags': ['youtube-dl'], + 'duration': 10, 'like_count': int, 'dislike_count': int, }, @@ -472,7 +480,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor): 'ext': 'm4a', 'upload_date': '20121002', 'uploader_id': '8KVIDEO', - 'uploader_url': 're:https?://(?:www\.)?youtube\.com/user/8KVIDEO', + 'uploader_url': r're:https?://(?:www\.)?youtube\.com/user/8KVIDEO', 'description': '', 'uploader': '8KVIDEO', 'license': 'Standard YouTube License', @@ -492,6 +500,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor): 'ext': 'm4a', 'title': 'Afrojack, Spree Wilson - The Spark ft. Spree Wilson', 'description': 'md5:12e7067fa6735a77bdcbb58cb1187d2d', + 'duration': 244, 'uploader': 'AfrojackVEVO', 'uploader_id': 'AfrojackVEVO', 'upload_date': '20131011', @@ -511,6 +520,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor): 'title': 'Taylor Swift - Shake It Off', 'alt_title': 'Shake It Off', 'description': 'md5:95f66187cd7c8b2c13eb78e1223b63c3', + 'duration': 242, 'uploader': 'TaylorSwiftVEVO', 'uploader_id': 'TaylorSwiftVEVO', 'upload_date': '20140818', @@ -528,10 +538,11 @@ class YoutubeIE(YoutubeBaseInfoExtractor): 'info_dict': { 'id': 'T4XJQO3qol8', 'ext': 'mp4', + 'duration': 219, 'upload_date': '20100909', 'uploader': 'The Amazing Atheist', 'uploader_id': 'TheAmazingAtheist', - 'uploader_url': 're:https?://(?:www\.)?youtube\.com/user/TheAmazingAtheist', + 'uploader_url': r're:https?://(?:www\.)?youtube\.com/user/TheAmazingAtheist', 'license': 'Standard YouTube License', 'title': 'Burning Everyone\'s Koran', 'description': 'SUBSCRIBE: http://www.youtube.com/saturninefilms\n\nEven Obama has taken a stand against freedom on this issue: http://www.huffingtonpost.com/2010/09/09/obama-gma-interview-quran_n_710282.html', @@ -544,10 +555,11 @@ class YoutubeIE(YoutubeBaseInfoExtractor): 'id': 'HtVdAasjOgU', 'ext': 'mp4', 'title': 'The Witcher 3: Wild Hunt - The Sword Of Destiny Trailer', - 'description': 're:(?s).{100,}About the Game\n.*?The Witcher 3: Wild Hunt.{100,}', + 'description': r're:(?s).{100,}About the Game\n.*?The Witcher 3: Wild Hunt.{100,}', + 'duration': 142, 'uploader': 'The Witcher', 'uploader_id': 'WitcherGame', - 'uploader_url': 're:https?://(?:www\.)?youtube\.com/user/WitcherGame', + 'uploader_url': r're:https?://(?:www\.)?youtube\.com/user/WitcherGame', 'upload_date': '20140605', 'license': 'Standard YouTube License', 'age_limit': 18, @@ -561,9 +573,10 @@ class YoutubeIE(YoutubeBaseInfoExtractor): 'ext': 'mp4', 'title': 'Dedication To My Ex (Miss That) (Lyric Video)', 'description': 'md5:33765bb339e1b47e7e72b5490139bb41', + 'duration': 247, 'uploader': 'LloydVEVO', 'uploader_id': 'LloydVEVO', - 'uploader_url': 're:https?://(?:www\.)?youtube\.com/user/LloydVEVO', + 'uploader_url': r're:https?://(?:www\.)?youtube\.com/user/LloydVEVO', 'upload_date': '20110629', 'license': 'Standard YouTube License', 'age_limit': 18, @@ -575,9 +588,10 @@ class YoutubeIE(YoutubeBaseInfoExtractor): 'info_dict': { 'id': '__2ABJjxzNo', 'ext': 'mp4', + 'duration': 266, 'upload_date': '20100430', 'uploader_id': 'deadmau5', - 'uploader_url': 're:https?://(?:www\.)?youtube\.com/user/deadmau5', + 'uploader_url': r're:https?://(?:www\.)?youtube\.com/user/deadmau5', 'creator': 'deadmau5', 'description': 'md5:12c56784b8032162bb936a5f76d55360', 'uploader': 'deadmau5', @@ -595,9 +609,10 @@ class YoutubeIE(YoutubeBaseInfoExtractor): 'info_dict': { 'id': 'lqQg6PlCWgI', 'ext': 'mp4', + 'duration': 6085, 'upload_date': '20150827', 'uploader_id': 'olympic', - 'uploader_url': 're:https?://(?:www\.)?youtube\.com/user/olympic', + 'uploader_url': r're:https?://(?:www\.)?youtube\.com/user/olympic', 'license': 'Standard YouTube License', 'description': 'HO09 - Women - GER-AUS - Hockey - 31 July 2012 - London 2012 Olympic Games', 'uploader': 'Olympic', @@ -614,9 +629,10 @@ class YoutubeIE(YoutubeBaseInfoExtractor): 'id': '_b-2C3KPAM0', 'ext': 'mp4', 'stretched_ratio': 16 / 9., + 'duration': 85, 'upload_date': '20110310', 'uploader_id': 'AllenMeow', - 'uploader_url': 're:https?://(?:www\.)?youtube\.com/user/AllenMeow', + 'uploader_url': r're:https?://(?:www\.)?youtube\.com/user/AllenMeow', 'description': 'made by Wacom from Korea | 字幕&加油添醋 by TY\'s Allen | 感謝heylisa00cavey1001同學熱情提供梗及翻譯', 'uploader': '孫艾倫', 'license': 'Standard YouTube License', @@ -648,9 +664,10 @@ class YoutubeIE(YoutubeBaseInfoExtractor): 'ext': 'mp4', 'title': 'md5:7b81415841e02ecd4313668cde88737a', 'description': 'md5:116377fd2963b81ec4ce64b542173306', + 'duration': 220, 'upload_date': '20150625', 'uploader_id': 'dorappi2000', - 'uploader_url': 're:https?://(?:www\.)?youtube\.com/user/dorappi2000', + 'uploader_url': r're:https?://(?:www\.)?youtube\.com/user/dorappi2000', 'uploader': 'dorappi2000', 'license': 'Standard YouTube License', 'formats': 'mincount:32', @@ -690,10 +707,11 @@ class YoutubeIE(YoutubeBaseInfoExtractor): 'ext': 'mp4', 'title': 'teamPGP: Rocket League Noob Stream (Main Camera)', 'description': 'md5:dc7872fb300e143831327f1bae3af010', + 'duration': 7335, 'upload_date': '20150721', 'uploader': 'Beer Games Beer', 'uploader_id': 'beergamesbeer', - 'uploader_url': 're:https?://(?:www\.)?youtube\.com/user/beergamesbeer', + 'uploader_url': r're:https?://(?:www\.)?youtube\.com/user/beergamesbeer', 'license': 'Standard YouTube License', }, }, { @@ -702,10 +720,11 @@ class YoutubeIE(YoutubeBaseInfoExtractor): 'ext': 'mp4', 'title': 'teamPGP: Rocket League Noob Stream (kreestuh)', 'description': 'md5:dc7872fb300e143831327f1bae3af010', + 'duration': 7337, 'upload_date': '20150721', 'uploader': 'Beer Games Beer', 'uploader_id': 'beergamesbeer', - 'uploader_url': 're:https?://(?:www\.)?youtube\.com/user/beergamesbeer', + 'uploader_url': r're:https?://(?:www\.)?youtube\.com/user/beergamesbeer', 'license': 'Standard YouTube License', }, }, { @@ -714,10 +733,11 @@ class YoutubeIE(YoutubeBaseInfoExtractor): 'ext': 'mp4', 'title': 'teamPGP: Rocket League Noob Stream (grizzle)', 'description': 'md5:dc7872fb300e143831327f1bae3af010', + 'duration': 7337, 'upload_date': '20150721', 'uploader': 'Beer Games Beer', 'uploader_id': 'beergamesbeer', - 'uploader_url': 're:https?://(?:www\.)?youtube\.com/user/beergamesbeer', + 'uploader_url': r're:https?://(?:www\.)?youtube\.com/user/beergamesbeer', 'license': 'Standard YouTube License', }, }, { @@ -726,10 +746,11 @@ class YoutubeIE(YoutubeBaseInfoExtractor): 'ext': 'mp4', 'title': 'teamPGP: Rocket League Noob Stream (zim)', 'description': 'md5:dc7872fb300e143831327f1bae3af010', + 'duration': 7334, 'upload_date': '20150721', 'uploader': 'Beer Games Beer', 'uploader_id': 'beergamesbeer', - 'uploader_url': 're:https?://(?:www\.)?youtube\.com/user/beergamesbeer', + 'uploader_url': r're:https?://(?:www\.)?youtube\.com/user/beergamesbeer', 'license': 'Standard YouTube License', }, }], @@ -767,9 +788,10 @@ class YoutubeIE(YoutubeBaseInfoExtractor): 'title': '{dark walk}; Loki/AC/Dishonored; collab w/Elflover21', 'alt_title': 'Dark Walk', 'description': 'md5:8085699c11dc3f597ce0410b0dcbb34a', + 'duration': 133, 'upload_date': '20151119', 'uploader_id': 'IronSoulElf', - 'uploader_url': 're:https?://(?:www\.)?youtube\.com/user/IronSoulElf', + 'uploader_url': r're:https?://(?:www\.)?youtube\.com/user/IronSoulElf', 'uploader': 'IronSoulElf', 'license': 'Standard YouTube License', 'creator': 'Todd Haberman, Daniel Law Heath & Aaron Kaplan', @@ -808,10 +830,11 @@ class YoutubeIE(YoutubeBaseInfoExtractor): 'ext': 'mp4', 'title': 'md5:e41008789470fc2533a3252216f1c1d1', 'description': 'md5:a677553cf0840649b731a3024aeff4cc', + 'duration': 721, 'upload_date': '20150127', 'uploader_id': 'BerkmanCenter', - 'uploader_url': 're:https?://(?:www\.)?youtube\.com/user/BerkmanCenter', - 'uploader': 'BerkmanCenter', + 'uploader_url': r're:https?://(?:www\.)?youtube\.com/user/BerkmanCenter', + 'uploader': 'The Berkman Klein Center for Internet & Society', 'license': 'Creative Commons Attribution license (reuse allowed)', }, 'params': { @@ -826,10 +849,11 @@ class YoutubeIE(YoutubeBaseInfoExtractor): 'ext': 'mp4', 'title': 'Democratic Socialism and Foreign Policy | Bernie Sanders', 'description': 'md5:dda0d780d5a6e120758d1711d062a867', + 'duration': 4060, 'upload_date': '20151119', 'uploader': 'Bernie 2016', 'uploader_id': 'UCH1dpzjCEiGAt8CXkryhkZg', - 'uploader_url': 're:https?://(?:www\.)?youtube\.com/channel/UCH1dpzjCEiGAt8CXkryhkZg', + 'uploader_url': r're:https?://(?:www\.)?youtube\.com/channel/UCH1dpzjCEiGAt8CXkryhkZg', 'license': 'Creative Commons Attribution license (reuse allowed)', }, 'params': { @@ -856,12 +880,42 @@ class YoutubeIE(YoutubeBaseInfoExtractor): 'upload_date': '20150811', 'uploader': 'FlixMatrix', 'uploader_id': 'FlixMatrixKaravan', - 'uploader_url': 're:https?://(?:www\.)?youtube\.com/user/FlixMatrixKaravan', + 'uploader_url': r're:https?://(?:www\.)?youtube\.com/user/FlixMatrixKaravan', 'license': 'Standard YouTube License', }, 'params': { 'skip_download': True, }, + }, + { + # YouTube Red video with episode data + 'url': 'https://www.youtube.com/watch?v=iqKdEhx-dD4', + 'info_dict': { + 'id': 'iqKdEhx-dD4', + 'ext': 'mp4', + 'title': 'Isolation - Mind Field (Ep 1)', + 'description': 'md5:8013b7ddea787342608f63a13ddc9492', + 'duration': 2085, + 'upload_date': '20170118', + 'uploader': 'Vsauce', + 'uploader_id': 'Vsauce', + 'uploader_url': r're:https?://(?:www\.)?youtube\.com/user/Vsauce', + 'license': 'Standard YouTube License', + 'series': 'Mind Field', + 'season_number': 1, + 'episode_number': 1, + }, + 'params': { + 'skip_download': True, + }, + 'expected_warnings': [ + 'Skipping DASH manifest', + ], + }, + { + # itag 212 + 'url': '1t24XAntNCY', + 'only_matching': True, } ] @@ -976,8 +1030,9 @@ class YoutubeIE(YoutubeBaseInfoExtractor): def _parse_sig_js(self, jscode): funcname = self._search_regex( - r'\.sig\|\|([a-zA-Z0-9$]+)\(', jscode, - 'Initial JS player signature function name') + (r'(["\'])signature\1\s*,\s*(?P[a-zA-Z0-9$]+)\(', + r'\.sig\|\|(?P[a-zA-Z0-9$]+)\('), + jscode, 'Initial JS player signature function name', group='sig') jsi = JSInterpreter(jscode) initial_function = jsi.extract_function(funcname) @@ -998,6 +1053,9 @@ class YoutubeIE(YoutubeBaseInfoExtractor): if player_url.startswith('//'): player_url = 'https:' + player_url + elif not re.match(r'https?://', player_url): + player_url = compat_urlparse.urljoin( + 'https://www.youtube.com', player_url) try: player_id = (player_url, self._signature_cache_id(s)) if player_id not in self._player_cache: @@ -1448,6 +1506,16 @@ class YoutubeIE(YoutubeBaseInfoExtractor): else: video_alt_title = video_creator = None + m_episode = re.search( + r']+id="watch7-headline"[^>]*>\s*]*>.*?>(?P[^<]+)\s*S(?P\d+)\s*•\s*E(?P\d+)', + video_webpage) + if m_episode: + series = m_episode.group('series') + season_number = int(m_episode.group('season')) + episode_number = int(m_episode.group('episode')) + else: + series = season_number = episode_number = None + m_cat_container = self._search_regex( r'(?s)]*>\s*Category\s*\s*]*>(.*?)', video_webpage, 'categories', default=None) @@ -1476,11 +1544,11 @@ class YoutubeIE(YoutubeBaseInfoExtractor): video_subtitles = self.extract_subtitles(video_id, video_webpage) automatic_captions = self.extract_automatic_captions(video_id, video_webpage) - if 'length_seconds' not in video_info: - self._downloader.report_warning('unable to extract video duration') - video_duration = None - else: - video_duration = int(compat_urllib_parse_unquote_plus(video_info['length_seconds'][0])) + video_duration = try_get( + video_info, lambda x: int_or_none(x['length_seconds'][0])) + if not video_duration: + video_duration = parse_duration(self._html_search_meta( + 'duration', video_webpage, 'video duration')) # annotations video_annotations = None @@ -1737,6 +1805,9 @@ class YoutubeIE(YoutubeBaseInfoExtractor): 'is_live': is_live, 'start_time': start_time, 'end_time': end_time, + 'series': series, + 'season_number': season_number, + 'episode_number': episode_number, } @@ -1788,13 +1859,13 @@ class YoutubePlaylistIE(YoutubePlaylistBaseInfoExtractor): youtu\.be/[0-9A-Za-z_-]{11}\?.*?\blist= ) ( - (?:PL|LL|EC|UU|FL|RD|UL)?[0-9A-Za-z-_]{10,} + (?:PL|LL|EC|UU|FL|RD|UL|TL)?[0-9A-Za-z-_]{10,} # Top tracks, they can also include dots |(?:MC)[\w\.]* ) .* | - ((?:PL|LL|EC|UU|FL|RD|UL)[0-9A-Za-z-_]{10,}) + ((?:PL|LL|EC|UU|FL|RD|UL|TL)[0-9A-Za-z-_]{10,}) )""" _TEMPLATE_URL = 'https://www.youtube.com/playlist?list=%s&disable_polymer=true' _VIDEO_RE = r'href="\s*/watch\?v=(?P[0-9A-Za-z_-]{11})&[^"]*?index=(?P\d+)(?:[^>]+>(?P[^<]+))?' @@ -1813,6 +1884,7 @@ class YoutubePlaylistIE(YoutubePlaylistBaseInfoExtractor): 'title': 'YDL_Empty_List', }, 'playlist_count': 0, + 'skip': 'This playlist is private', }, { 'note': 'Playlist with deleted videos (#651). As a bonus, the video #51 is also twice in this list.', 'url': 'https://www.youtube.com/playlist?list=PLwP_SiAcdui0KVebT0mU9Apz359a4ubsC', @@ -1844,6 +1916,7 @@ class YoutubePlaylistIE(YoutubePlaylistBaseInfoExtractor): 'id': 'PLtPgu7CB4gbY9oDN3drwC3cMbJggS7dKl', }, 'playlist_count': 2, + 'skip': 'This playlist is private', }, { 'note': 'embedded', 'url': 'https://www.youtube.com/embed/videoseries?list=PL6IaIsEjSbf96XFRuNccS_RuEXwNdsoEu', @@ -1877,7 +1950,7 @@ class YoutubePlaylistIE(YoutubePlaylistBaseInfoExtractor): 'title': "Smiley's People 01 detective, Adventure Series, Action", 'uploader': 'STREEM', 'uploader_id': 'UCyPhqAZgwYWZfxElWVbVJng', - 'uploader_url': 're:https?://(?:www\.)?youtube\.com/channel/UCyPhqAZgwYWZfxElWVbVJng', + 'uploader_url': r're:https?://(?:www\.)?youtube\.com/channel/UCyPhqAZgwYWZfxElWVbVJng', 'upload_date': '20150526', 'license': 'Standard YouTube License', 'description': 'md5:507cdcb5a49ac0da37a920ece610be80', @@ -1898,7 +1971,7 @@ class YoutubePlaylistIE(YoutubePlaylistBaseInfoExtractor): 'title': 'Small Scale Baler and Braiding Rugs', 'uploader': 'Backus-Page House Museum', 'uploader_id': 'backuspagemuseum', - 'uploader_url': 're:https?://(?:www\.)?youtube\.com/user/backuspagemuseum', + 'uploader_url': r're:https?://(?:www\.)?youtube\.com/user/backuspagemuseum', 'upload_date': '20161008', 'license': 'Standard YouTube License', 'description': 'md5:800c0c78d5eb128500bffd4f0b4f2e8a', @@ -1914,6 +1987,9 @@ class YoutubePlaylistIE(YoutubePlaylistBaseInfoExtractor): }, { 'url': 'https://youtu.be/uWyaPkt-VOI?list=PL9D9FC436B881BA21', 'only_matching': True, + }, { + 'url': 'TLGGrESM50VT6acwMjAyMjAxNw', + 'only_matching': True, }] def _real_initialize(self): @@ -1955,14 +2031,18 @@ class YoutubePlaylistIE(YoutubePlaylistBaseInfoExtractor): url = self._TEMPLATE_URL % playlist_id page = self._download_webpage(url, playlist_id) - for match in re.findall(r'<div class="yt-alert-message">([^<]+)</div>', page): + # the yt-alert-message now has tabindex attribute (see https://github.com/rg3/youtube-dl/issues/11604) + for match in re.findall(r'<div class="yt-alert-message"[^>]*>([^<]+)</div>', page): match = match.strip() # Check if the playlist exists or is private - if re.match(r'[^<]*(The|This) playlist (does not exist|is private)[^<]*', match): - raise ExtractorError( - 'The playlist doesn\'t exist or is private, use --username or ' - '--netrc to access it.', - expected=True) + mobj = re.match(r'[^<]*(?:The|This) playlist (?P<reason>does not exist|is private)[^<]*', match) + if mobj: + reason = mobj.group('reason') + message = 'This playlist %s' % reason + if 'private' in reason: + message += ', use --username or --netrc to access it' + message += '.' + raise ExtractorError(message, expected=True) elif re.match(r'[^<]*Invalid parameters[^<]*', match): raise ExtractorError( 'Invalid parameters. Maybe URL is incorrect.', @@ -2186,7 +2266,7 @@ class YoutubeLiveIE(YoutubeBaseInfoExtractor): 'title': 'The Young Turks - Live Main Show', 'uploader': 'The Young Turks', 'uploader_id': 'TheYoungTurks', - 'uploader_url': 're:https?://(?:www\.)?youtube\.com/user/TheYoungTurks', + 'uploader_url': r're:https?://(?:www\.)?youtube\.com/user/TheYoungTurks', 'upload_date': '20150715', 'license': 'Standard YouTube License', 'description': 'md5:438179573adcdff3c97ebb1ee632b891', @@ -2270,18 +2350,18 @@ class YoutubeSearchIE(SearchInfoExtractor, YoutubePlaylistIE): videos = [] limit = n + url_query = { + 'search_query': query.encode('utf-8'), + } + url_query.update(self._EXTRA_QUERY_ARGS) + result_url = 'https://www.youtube.com/results?' + compat_urllib_parse_urlencode(url_query) + for pagenum in itertools.count(1): - url_query = { - 'search_query': query.encode('utf-8'), - 'page': pagenum, - 'spf': 'navigate', - } - url_query.update(self._EXTRA_QUERY_ARGS) - result_url = 'https://www.youtube.com/results?' + compat_urllib_parse_urlencode(url_query) data = self._download_json( result_url, video_id='query "%s"' % query, note='Downloading page %s' % pagenum, - errnote='Unable to download API page') + errnote='Unable to download API page', + query={'spf': 'navigate'}) html_content = data[1]['body']['content'] if 'class="search-message' in html_content: @@ -2293,6 +2373,12 @@ class YoutubeSearchIE(SearchInfoExtractor, YoutubePlaylistIE): videos += new_videos if not new_videos or len(videos) > limit: break + next_link = self._html_search_regex( + r'href="(/results\?[^"]*\bsp=[^"]+)"[^>]*>\s*<span[^>]+class="[^"]*\byt-uix-button-content\b[^"]*"[^>]*>Next', + html_content, 'next link', default=None) + if next_link is None: + break + result_url = compat_urlparse.urljoin('https://www.youtube.com/', next_link) if len(videos) > n: videos = videos[:n] diff --git a/youtube_dl/extractor/zapiks.py b/youtube_dl/extractor/zapiks.py index 22a9a57..bacb82e 100644 --- a/youtube_dl/extractor/zapiks.py +++ b/youtube_dl/extractor/zapiks.py @@ -24,7 +24,7 @@ class ZapiksIE(InfoExtractor): 'ext': 'mp4', 'title': 'EP2S3 - Bon Appétit - Eh bé viva les pyrénées con!', 'description': 'md5:7054d6f6f620c6519be1fe710d4da847', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'duration': 528, 'timestamp': 1359044972, 'upload_date': '20130124', diff --git a/youtube_dl/extractor/zdf.py b/youtube_dl/extractor/zdf.py index 2ef1772..a365923 100644 --- a/youtube_dl/extractor/zdf.py +++ b/youtube_dl/extractor/zdf.py @@ -1,262 +1,312 @@ # coding: utf-8 from __future__ import unicode_literals -import functools import re from .common import InfoExtractor +from ..compat import compat_str from ..utils import ( - int_or_none, - unified_strdate, - OnDemandPagedList, - xpath_text, determine_ext, + int_or_none, + NO_DEFAULT, + orderedSet, + parse_codecs, qualities, - float_or_none, - ExtractorError, + try_get, + unified_timestamp, + update_url_query, + urljoin, ) -class ZDFIE(InfoExtractor): - _VALID_URL = r'(?:zdf:|zdf:video:|https?://www\.zdf\.de/ZDFmediathek(?:#)?/(.*beitrag/(?:video/)?))(?P<id>[0-9]+)(?:/[^/?]+)?(?:\?.*)?' +class ZDFBaseIE(InfoExtractor): + def _call_api(self, url, player, referrer, video_id): + return self._download_json( + url, video_id, 'Downloading JSON content', + headers={ + 'Referer': referrer, + 'Api-Auth': 'Bearer %s' % player['apiToken'], + }) + + def _extract_player(self, webpage, video_id, fatal=True): + return self._parse_json( + self._search_regex( + r'(?s)data-zdfplayer-jsb=(["\'])(?P<json>{.+?})\1', webpage, + 'player JSON', default='{}' if not fatal else NO_DEFAULT, + group='json'), + video_id) + + +class ZDFIE(ZDFBaseIE): + _VALID_URL = r'https?://www\.zdf\.de/(?:[^/]+/)*(?P<id>[^/?]+)\.html' + _QUALITIES = ('auto', 'low', 'med', 'high', 'veryhigh') _TESTS = [{ - 'url': 'http://www.zdf.de/ZDFmediathek/beitrag/video/2037704/ZDFspezial---Ende-des-Machtpokers--?bc=sts;stt', + 'url': 'https://www.zdf.de/service-und-hilfe/die-neue-zdf-mediathek/zdfmediathek-trailer-100.html', 'info_dict': { - 'id': '2037704', - 'ext': 'webm', - 'title': 'ZDFspezial - Ende des Machtpokers', - 'description': 'Union und SPD haben sich auf einen Koalitionsvertrag geeinigt. Aber was bedeutet das für die Bürger? Sehen Sie hierzu das ZDFspezial "Ende des Machtpokers - Große Koalition für Deutschland".', - 'duration': 1022, - 'uploader': 'spezial', - 'uploader_id': '225948', - 'upload_date': '20131127', - }, - 'skip': 'Videos on ZDF.de are depublicised in short order', + 'id': 'zdfmediathek-trailer-100', + 'ext': 'mp4', + 'title': 'Die neue ZDFmediathek', + 'description': 'md5:3003d36487fb9a5ea2d1ff60beb55e8d', + 'duration': 30, + 'timestamp': 1477627200, + 'upload_date': '20161028', + } + }, { + 'url': 'https://www.zdf.de/filme/taunuskrimi/die-lebenden-und-die-toten-1---ein-taunuskrimi-100.html', + 'only_matching': True, + }, { + 'url': 'https://www.zdf.de/dokumentation/planet-e/planet-e-uebersichtsseite-weitere-dokumentationen-von-planet-e-100.html', + 'only_matching': True, }] - def _parse_smil_formats(self, smil, smil_url, video_id, namespace=None, f4m_params=None, transform_rtmp_url=None): - param_groups = {} - for param_group in smil.findall(self._xpath_ns('./head/paramGroup', namespace)): - group_id = param_group.attrib.get(self._xpath_ns('id', 'http://www.w3.org/XML/1998/namespace')) - params = {} - for param in param_group: - params[param.get('name')] = param.get('value') - param_groups[group_id] = params + @staticmethod + 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): + lang = caption.get('language', 'deu') + subtitles.setdefault(lang, []).append({ + 'url': subtitle_url, + }) + 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): + return + if format_url in format_urls: + return + format_urls.add(format_url) + mime_type = meta.get('mimeType') + ext = determine_ext(format_url) + if mime_type == 'application/x-mpegURL' or ext == 'm3u8': + formats.extend(self._extract_m3u8_formats( + format_url, video_id, 'mp4', m3u8_id='hls', + entry_protocol='m3u8_native', fatal=False)) + elif mime_type == 'application/f4m+xml' or ext == 'f4m': + formats.extend(self._extract_f4m_formats( + update_url_query(format_url, {'hdcore': '3.7.0'}), video_id, f4m_id='hds', fatal=False)) + else: + f = parse_codecs(meta.get('mimeCodec')) + format_id = ['http'] + for p in (meta.get('type'), meta.get('quality')): + if p and isinstance(p, compat_str): + format_id.append(p) + f.update({ + 'url': format_url, + 'format_id': '-'.join(format_id), + 'format_note': meta.get('quality'), + 'language': meta.get('language'), + 'quality': qualities(self._QUALITIES)(meta.get('quality')), + 'preference': -10, + }) + formats.append(f) + + def _extract_entry(self, url, content, video_id): + title = content.get('title') or content['teaserHeadline'] + + t = content['mainVideoContent']['http://zdf.de/rels/target'] + + ptmd_path = t.get('http://zdf.de/rels/streams/ptmd') + + if not ptmd_path: + ptmd_path = t[ + 'http://zdf.de/rels/streams/ptmd-template'].replace( + '{playerId}', 'portal') + + ptmd = self._download_json(urljoin(url, ptmd_path), video_id) formats = [] - for video in smil.findall(self._xpath_ns('.//video', namespace)): - src = video.get('src') - if not src: + track_uris = set() + for p in ptmd['priorityList']: + formitaeten = p.get('formitaeten') + if not isinstance(formitaeten, list): continue - bitrate = float_or_none(video.get('system-bitrate') or video.get('systemBitrate'), 1000) - group_id = video.get('paramGroup') - param_group = param_groups[group_id] - for proto in param_group['protocols'].split(','): - formats.append({ - 'url': '%s://%s' % (proto, param_group['host']), - 'app': param_group['app'], - 'play_path': src, - 'ext': 'flv', - 'format_id': '%s-%d' % (proto, bitrate), - 'tbr': bitrate, - }) + for f in formitaeten: + f_qualities = f.get('qualities') + if not isinstance(f_qualities, list): + continue + for quality in f_qualities: + tracks = try_get(quality, lambda x: x['audio']['tracks'], list) + if not tracks: + continue + for track in tracks: + self._extract_format( + video_id, formats, track_uris, { + 'url': track.get('uri'), + 'type': f.get('type'), + 'mimeType': f.get('mimeType'), + 'quality': quality.get('quality'), + 'language': track.get('language'), + }) self._sort_formats(formats) - return formats - - def extract_from_xml_url(self, video_id, xml_url): - doc = self._download_xml( - xml_url, video_id, - note='Downloading video info', - errnote='Failed to download video info') - - status_code = doc.find('./status/statuscode') - if status_code is not None and status_code.text != 'ok': - code = status_code.text - if code == 'notVisibleAnymore': - message = 'Video %s is not available' % video_id - else: - message = '%s returned error: %s' % (self.IE_NAME, code) - raise ExtractorError(message, expected=True) - - title = doc.find('.//information/title').text - description = xpath_text(doc, './/information/detail', 'description') - duration = int_or_none(xpath_text(doc, './/details/lengthSec', 'duration')) - uploader = xpath_text(doc, './/details/originChannelTitle', 'uploader') - uploader_id = xpath_text(doc, './/details/originChannelId', 'uploader id') - upload_date = unified_strdate(xpath_text(doc, './/details/airtime', 'upload date')) - subtitles = {} - captions_url = doc.find('.//caption/url') - if captions_url is not None: - subtitles['de'] = [{ - 'url': captions_url.text, - 'ext': 'ttml', - }] - - def xml_to_thumbnails(fnode): - thumbnails = [] - for node in fnode: - thumbnail_url = node.text - if not thumbnail_url: + + thumbnails = [] + layouts = try_get( + content, lambda x: x['teaserImageRef']['layouts'], dict) + if layouts: + for layout_key, layout_url in layouts.items(): + if not isinstance(layout_url, compat_str): continue thumbnail = { - 'url': thumbnail_url, + 'url': layout_url, + 'format_id': layout_key, } - if 'key' in node.attrib: - m = re.match('^([0-9]+)x([0-9]+)$', node.attrib['key']) - if m: - thumbnail['width'] = int(m.group(1)) - thumbnail['height'] = int(m.group(2)) + mobj = re.search(r'(?P<width>\d+)x(?P<height>\d+)', layout_key) + if mobj: + thumbnail.update({ + 'width': int(mobj.group('width')), + 'height': int(mobj.group('height')), + }) thumbnails.append(thumbnail) - return thumbnails - thumbnails = xml_to_thumbnails(doc.findall('.//teaserimages/teaserimage')) + return { + 'id': video_id, + 'title': title, + 'description': content.get('leadParagraph') or content.get('teasertext'), + 'duration': int_or_none(t.get('duration')), + 'timestamp': unified_timestamp(content.get('editorialDate')), + 'thumbnails': thumbnails, + 'subtitles': self._extract_subtitles(ptmd), + 'formats': formats, + } - format_nodes = doc.findall('.//formitaeten/formitaet') - quality = qualities(['veryhigh', 'high', 'med', 'low']) + def _extract_regular(self, url, player, video_id): + content = self._call_api(player['content'], player, url, video_id) + return self._extract_entry(player['content'], content, video_id) - def get_quality(elem): - return quality(xpath_text(elem, 'quality')) - format_nodes.sort(key=get_quality) - format_ids = [] - formats = [] - for fnode in format_nodes: - video_url = fnode.find('url').text - is_available = 'http://www.metafilegenerator' not in video_url - if not is_available: - continue - format_id = fnode.attrib['basetype'] - quality = xpath_text(fnode, './quality', 'quality') - format_m = re.match(r'''(?x) - (?P<vcodec>[^_]+)_(?P<acodec>[^_]+)_(?P<container>[^_]+)_ - (?P<proto>[^_]+)_(?P<index>[^_]+)_(?P<indexproto>[^_]+) - ''', format_id) - - ext = determine_ext(video_url, None) or format_m.group('container') - if ext not in ('smil', 'f4m', 'm3u8'): - format_id = format_id + '-' + quality - if format_id in format_ids: - continue + def _extract_mobile(self, video_id): + document = self._download_json( + 'https://zdf-cdn.live.cellular.de/mediathekV2/document/%s' % video_id, + video_id)['document'] - if ext == 'meta': - continue - elif ext == 'smil': - formats.extend(self._extract_smil_formats( - video_url, video_id, fatal=False)) - elif ext == 'm3u8': - # the certificates are misconfigured (see - # https://github.com/rg3/youtube-dl/issues/8665) - if video_url.startswith('https://'): - continue - formats.extend(self._extract_m3u8_formats( - video_url, video_id, 'mp4', m3u8_id=format_id, fatal=False)) - elif ext == 'f4m': - formats.extend(self._extract_f4m_formats( - video_url, video_id, f4m_id=format_id, fatal=False)) - else: - proto = format_m.group('proto').lower() - - abr = int_or_none(xpath_text(fnode, './audioBitrate', 'abr'), 1000) - vbr = int_or_none(xpath_text(fnode, './videoBitrate', 'vbr'), 1000) - - width = int_or_none(xpath_text(fnode, './width', 'width')) - height = int_or_none(xpath_text(fnode, './height', 'height')) - - filesize = int_or_none(xpath_text(fnode, './filesize', 'filesize')) - - format_note = '' - if not format_note: - format_note = None - - formats.append({ - 'format_id': format_id, - 'url': video_url, - 'ext': ext, - 'acodec': format_m.group('acodec'), - 'vcodec': format_m.group('vcodec'), - 'abr': abr, - 'vbr': vbr, - 'width': width, - 'height': height, - 'filesize': filesize, - 'format_note': format_note, - 'protocol': proto, - '_available': is_available, - }) - format_ids.append(format_id) + title = document['titel'] + formats = [] + format_urls = set() + for f in document['formitaeten']: + self._extract_format(video_id, formats, format_urls, f) self._sort_formats(formats) + thumbnails = [] + teaser_bild = document.get('teaserBild') + if isinstance(teaser_bild, dict): + for thumbnail_key, thumbnail in teaser_bild.items(): + thumbnail_url = try_get( + thumbnail, lambda x: x['url'], compat_str) + if thumbnail_url: + thumbnails.append({ + 'url': thumbnail_url, + 'id': thumbnail_key, + 'width': int_or_none(thumbnail.get('width')), + 'height': int_or_none(thumbnail.get('height')), + }) + return { 'id': video_id, 'title': title, - 'description': description, - 'duration': duration, + 'description': document.get('beschreibung'), + 'duration': int_or_none(document.get('length')), + 'timestamp': unified_timestamp(try_get( + document, lambda x: x['meta']['editorialDate'], compat_str)), 'thumbnails': thumbnails, - 'uploader': uploader, - 'uploader_id': uploader_id, - 'upload_date': upload_date, + 'subtitles': self._extract_subtitles(document), 'formats': formats, - 'subtitles': subtitles, } def _real_extract(self, url): video_id = self._match_id(url) - xml_url = 'http://www.zdf.de/ZDFmediathek/xmlservice/web/beitragsDetails?ak=web&id=%s' % video_id - return self.extract_from_xml_url(video_id, xml_url) + webpage = self._download_webpage(url, video_id, fatal=False) + if webpage: + player = self._extract_player(webpage, url, fatal=False) + if player: + return self._extract_regular(url, player, video_id) + + return self._extract_mobile(video_id) -class ZDFChannelIE(InfoExtractor): - _VALID_URL = r'(?:zdf:topic:|https?://www\.zdf\.de/ZDFmediathek(?:#)?/.*kanaluebersicht/(?:[^/]+/)?)(?P<id>[0-9]+)' + +class ZDFChannelIE(ZDFBaseIE): + _VALID_URL = r'https?://www\.zdf\.de/(?:[^/]+/)*(?P<id>[^/?#&]+)' _TESTS = [{ - 'url': 'http://www.zdf.de/ZDFmediathek#/kanaluebersicht/1586442/sendung/Titanic', + 'url': 'https://www.zdf.de/sport/das-aktuelle-sportstudio', 'info_dict': { - 'id': '1586442', + 'id': 'das-aktuelle-sportstudio', + 'title': 'das aktuelle sportstudio | ZDF', }, - 'playlist_count': 3, - }, { - 'url': 'http://www.zdf.de/ZDFmediathek/kanaluebersicht/aktuellste/332', - 'only_matching': True, + 'playlist_count': 21, }, { - 'url': 'http://www.zdf.de/ZDFmediathek/kanaluebersicht/meist-gesehen/332', - 'only_matching': True, + 'url': 'https://www.zdf.de/dokumentation/planet-e', + 'info_dict': { + 'id': 'planet-e', + 'title': 'planet e.', + }, + 'playlist_count': 4, }, { - 'url': 'http://www.zdf.de/ZDFmediathek/kanaluebersicht/_/1798716?bc=nrt;nrm?flash=off', + 'url': 'https://www.zdf.de/filme/taunuskrimi/', 'only_matching': True, }] - _PAGE_SIZE = 50 - - def _fetch_page(self, channel_id, page): - offset = page * self._PAGE_SIZE - xml_url = ( - 'http://www.zdf.de/ZDFmediathek/xmlservice/web/aktuellste?ak=web&offset=%d&maxLength=%d&id=%s' - % (offset, self._PAGE_SIZE, channel_id)) - doc = self._download_xml( - xml_url, channel_id, - note='Downloading channel info', - errnote='Failed to download channel info') - - title = doc.find('.//information/title').text - description = doc.find('.//information/detail').text - for asset in doc.findall('.//teasers/teaser'): - a_type = asset.find('./type').text - a_id = asset.find('./details/assetId').text - if a_type not in ('video', 'topic'): - continue - yield { - '_type': 'url', - 'playlist_title': title, - 'playlist_description': description, - 'url': 'zdf:%s:%s' % (a_type, a_id), - } + + @classmethod + def suitable(cls, url): + return False if ZDFIE.suitable(url) else super(ZDFChannelIE, cls).suitable(url) def _real_extract(self, url): channel_id = self._match_id(url) - entries = OnDemandPagedList( - functools.partial(self._fetch_page, channel_id), self._PAGE_SIZE) - return { - '_type': 'playlist', - 'id': channel_id, - 'entries': entries, - } + webpage = self._download_webpage(url, channel_id) + + entries = [ + self.url_result(item_url, ie=ZDFIE.ie_key()) + for item_url in orderedSet(re.findall( + r'data-plusbar-url=["\'](http.+?\.html)', webpage))] + + return self.playlist_result( + entries, channel_id, self._og_search_title(webpage, fatal=False)) + + r""" + player = self._extract_player(webpage, channel_id) + + channel_id = self._search_regex( + r'docId\s*:\s*(["\'])(?P<id>(?!\1).+?)\1', webpage, + 'channel id', group='id') + + channel = self._call_api( + 'https://api.zdf.de/content/documents/%s.json' % channel_id, + player, url, channel_id) + + items = [] + for module in channel['module']: + for teaser in try_get(module, lambda x: x['teaser'], list) or []: + t = try_get( + teaser, lambda x: x['http://zdf.de/rels/target'], dict) + if not t: + continue + items.extend(try_get( + t, + lambda x: x['resultsWithVideo']['http://zdf.de/rels/search/results'], + list) or []) + items.extend(try_get( + module, + lambda x: x['filterRef']['resultsWithVideo']['http://zdf.de/rels/search/results'], + list) or []) + + entries = [] + entry_urls = set() + for item in items: + t = try_get(item, lambda x: x['http://zdf.de/rels/target'], dict) + if not t: + continue + sharing_url = t.get('http://zdf.de/rels/sharing-url') + if not sharing_url or not isinstance(sharing_url, compat_str): + continue + if sharing_url in entry_urls: + continue + entry_urls.add(sharing_url) + entries.append(self.url_result( + sharing_url, ie=ZDFIE.ie_key(), video_id=t.get('id'))) + + return self.playlist_result(entries, channel_id, channel.get('title')) + """ diff --git a/youtube_dl/extractor/zingmp3.py b/youtube_dl/extractor/zingmp3.py index 0f0e9d0..adfdcaa 100644 --- a/youtube_dl/extractor/zingmp3.py +++ b/youtube_dl/extractor/zingmp3.py @@ -95,7 +95,7 @@ class ZingMp3IE(ZingMp3BaseInfoExtractor): 'id': 'ZWZB9WAB', 'title': 'Xa Mãi Xa', 'ext': 'mp3', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', }, }, { 'url': 'http://mp3.zing.vn/video-clip/Let-It-Go-Frozen-OST-Sungha-Jung/ZW6BAEA0.html', diff --git a/youtube_dl/jsinterp.py b/youtube_dl/jsinterp.py index a8df4ae..24cdec2 100644 --- a/youtube_dl/jsinterp.py +++ b/youtube_dl/jsinterp.py @@ -213,7 +213,7 @@ class JSInterpreter(object): def extract_object(self, objname): obj = {} obj_m = re.search( - (r'(?:var\s+)?%s\s*=\s*\{' % re.escape(objname)) + + (r'(?<!this\.)%s\s*=\s*\{' % re.escape(objname)) + r'\s*(?P<fields>([a-zA-Z$0-9]+\s*:\s*function\(.*?\)\s*\{.*?\}(?:,\s*)?)*)' + r'\}\s*;', self.code) diff --git a/youtube_dl/options.py b/youtube_dl/options.py index 53497fb..349f447 100644 --- a/youtube_dl/options.py +++ b/youtube_dl/options.py @@ -178,6 +178,10 @@ def parseOpts(overrideArguments=None): 'When given in the global configuration file /etc/youtube-dl.conf: ' 'Do not read the user configuration in ~/.config/youtube-dl/config ' '(%APPDATA%/youtube-dl/config.txt on Windows)') + general.add_option( + '--config-location', + dest='config_location', metavar='PATH', + help='Location of the configuration file; either the path to the config or its containing directory.') general.add_option( '--flat-playlist', action='store_const', dest='extract_flat', const='in_playlist', @@ -212,23 +216,23 @@ def parseOpts(overrideArguments=None): network.add_option( '--source-address', metavar='IP', dest='source_address', default=None, - help='Client-side IP address to bind to (experimental)', + help='Client-side IP address to bind to', ) network.add_option( '-4', '--force-ipv4', action='store_const', const='0.0.0.0', dest='source_address', - help='Make all connections via IPv4 (experimental)', + help='Make all connections via IPv4', ) network.add_option( '-6', '--force-ipv6', action='store_const', const='::', dest='source_address', - help='Make all connections via IPv6 (experimental)', + help='Make all connections via IPv6', ) network.add_option( '--geo-verification-proxy', dest='geo_verification_proxy', default=None, metavar='URL', help='Use this proxy to verify the IP address for some geo-restricted sites. ' - 'The default proxy specified by --proxy (or none, if the options is not present) is used for the actual downloading. (experimental)' + 'The default proxy specified by --proxy (or none, if the options is not present) is used for the actual downloading.' ) network.add_option( '--cn-verification-proxy', @@ -293,7 +297,7 @@ def parseOpts(overrideArguments=None): '--match-filter', metavar='FILTER', dest='match_filter', default=None, help=( - 'Generic video filter (experimental). ' + 'Generic video filter. ' 'Specify any key (see help for -o for a list of available keys) to' ' match if the key is present, ' '!key to check if the key is not present,' @@ -341,7 +345,7 @@ def parseOpts(overrideArguments=None): authentication.add_option( '-2', '--twofactor', dest='twofactor', metavar='TWOFACTOR', - help='Two-factor auth code') + help='Two-factor authentication code') authentication.add_option( '-n', '--netrc', action='store_true', dest='usenetrc', default=False, @@ -446,7 +450,7 @@ def parseOpts(overrideArguments=None): '--skip-unavailable-fragments', action='store_true', dest='skip_unavailable_fragments', default=True, help='Skip unavailable fragments (DASH and hlsnative only)') - general.add_option( + downloader.add_option( '--abort-on-unavailable-fragment', action='store_false', dest='skip_unavailable_fragments', help='Abort downloading when some fragment is not available') @@ -466,10 +470,14 @@ def parseOpts(overrideArguments=None): '--playlist-reverse', action='store_true', help='Download playlist videos in reverse order') + downloader.add_option( + '--playlist-random', + action='store_true', + help='Download playlist videos in random order') downloader.add_option( '--xattr-set-filesize', dest='xattr_set_filesize', action='store_true', - help='Set file xattribute ytdl.filesize with expected filesize (experimental)') + help='Set file xattribute ytdl.filesize with expected file size (experimental)') downloader.add_option( '--hls-prefer-native', dest='hls_prefer_native', action='store_true', default=None, @@ -657,8 +665,12 @@ def parseOpts(overrideArguments=None): help=('Output filename template, see the "OUTPUT TEMPLATE" for all the info')) filesystem.add_option( '--autonumber-size', - dest='autonumber_size', metavar='NUMBER', - help='Specify the number of digits in %(autonumber)s when it is present in output filename template or --auto-number option is given') + dest='autonumber_size', metavar='NUMBER', default=5, type=int, + help='Specify the number of digits in %(autonumber)s when it is present in output filename template or --auto-number option is given (default is %default)') + filesystem.add_option( + '--autonumber-start', + dest='autonumber_start', metavar='NUMBER', default=1, type=int, + help='Specify the start value for %(autonumber)s (default is %default)') filesystem.add_option( '--restrict-filenames', action='store_true', dest='restrictfilenames', default=False, @@ -747,7 +759,7 @@ def parseOpts(overrideArguments=None): help='Convert video files to audio-only files (requires ffmpeg or avconv and ffprobe or avprobe)') postproc.add_option( '--audio-format', metavar='FORMAT', dest='audioformat', default='best', - help='Specify audio format: "best", "aac", "vorbis", "mp3", "m4a", "opus", or "wav"; "%default" by default') + help='Specify audio format: "best", "aac", "vorbis", "mp3", "m4a", "opus", or "wav"; "%default" by default; No effect without -x') postproc.add_option( '--audio-quality', metavar='QUALITY', dest='audioquality', default='5', @@ -845,22 +857,32 @@ def parseOpts(overrideArguments=None): return conf command_line_conf = compat_conf(sys.argv[1:]) - - if '--ignore-config' in command_line_conf: - system_conf = [] - user_conf = [] + opts, args = parser.parse_args(command_line_conf) + + system_conf = user_conf = custom_conf = [] + + if '--config-location' in command_line_conf: + location = compat_expanduser(opts.config_location) + if os.path.isdir(location): + location = os.path.join(location, 'youtube-dl.conf') + if not os.path.exists(location): + parser.error('config-location %s does not exist.' % location) + custom_conf = _readOptions(location) + elif '--ignore-config' in command_line_conf: + pass else: system_conf = _readOptions('/etc/youtube-dl.conf') - if '--ignore-config' in system_conf: - user_conf = [] - else: + if '--ignore-config' not in system_conf: user_conf = _readUserConf() - argv = system_conf + user_conf + command_line_conf + argv = system_conf + user_conf + custom_conf + command_line_conf opts, args = parser.parse_args(argv) if opts.verbose: - write_string('[debug] System config: ' + repr(_hide_login_info(system_conf)) + '\n') - write_string('[debug] User config: ' + repr(_hide_login_info(user_conf)) + '\n') - write_string('[debug] Command-line args: ' + repr(_hide_login_info(command_line_conf)) + '\n') + for conf_label, conf in ( + ('System config', system_conf), + ('User config', user_conf), + ('Custom config', custom_conf), + ('Command-line args', command_line_conf)): + write_string('[debug] %s: %s\n' % (conf_label, repr(_hide_login_info(conf)))) return parser, opts, args diff --git a/youtube_dl/postprocessor/metadatafromtitle.py b/youtube_dl/postprocessor/metadatafromtitle.py index 920573d..164edd3 100644 --- a/youtube_dl/postprocessor/metadatafromtitle.py +++ b/youtube_dl/postprocessor/metadatafromtitle.py @@ -12,7 +12,7 @@ class MetadataFromTitlePP(PostProcessor): self._titleregex = self.format_to_regex(titleformat) def format_to_regex(self, fmt): - """ + r""" Converts a string like '%(title)s - %(artist)s' to a regex like diff --git a/youtube_dl/socks.py b/youtube_dl/socks.py index 63d19b3..0f5d7bd 100644 --- a/youtube_dl/socks.py +++ b/youtube_dl/socks.py @@ -55,12 +55,12 @@ class Socks5AddressType(object): ATYP_IPV6 = 0x04 -class ProxyError(IOError): +class ProxyError(socket.error): ERR_SUCCESS = 0x00 def __init__(self, code=None, msg=None): if code is not None and msg is None: - msg = self.CODES.get(code) and 'unknown error' + msg = self.CODES.get(code) or 'unknown error' super(ProxyError, self).__init__(code, msg) @@ -123,7 +123,7 @@ class sockssocket(socket.socket): while len(data) < cnt: cur = self.recv(cnt - len(data)) if not cur: - raise IOError('{0} bytes missing'.format(cnt - len(data))) + raise EOFError('{0} bytes missing'.format(cnt - len(data))) data += cur return data diff --git a/youtube_dl/utils.py b/youtube_dl/utils.py index 9595bcf..67a847e 100644 --- a/youtube_dl/utils.py +++ b/youtube_dl/utils.py @@ -86,6 +86,11 @@ std_headers = { } +USER_AGENTS = { + 'Safari': 'Mozilla/5.0 (X11; Linux x86_64; rv:10.0) AppleWebKit/533.20.25 (KHTML, like Gecko) Version/5.0.4 Safari/533.20.27', +} + + NO_DEFAULT = object() ENGLISH_MONTH_NAMES = [ @@ -123,7 +128,13 @@ DATE_FORMATS = ( '%d %B %Y', '%d %b %Y', '%B %d %Y', + '%B %dst %Y', + '%B %dnd %Y', + '%B %dth %Y', '%b %d %Y', + '%b %dst %Y', + '%b %dnd %Y', + '%b %dth %Y', '%b %dst %Y %I:%M', '%b %dnd %Y %I:%M', '%b %dth %Y %I:%M', @@ -132,6 +143,7 @@ DATE_FORMATS = ( '%Y/%m/%d', '%Y/%m/%d %H:%M', '%Y/%m/%d %H:%M:%S', + '%Y-%m-%d %H:%M', '%Y-%m-%d %H:%M:%S', '%Y-%m-%d %H:%M:%S.%f', '%d.%m.%Y %H:%M', @@ -496,7 +508,7 @@ def sanitize_path(s): if drive_or_unc: norm_path.pop(0) sanitized_path = [ - path_part if path_part in ['.', '..'] else re.sub('(?:[/<>:"\\|\\\\?\\*]|[\s.]$)', '#', path_part) + path_part if path_part in ['.', '..'] else re.sub(r'(?:[/<>:"\|\\?\*]|[\s.]$)', '#', path_part) for path_part in norm_path] if drive_or_unc: sanitized_path.insert(0, drive_or_unc + os.path.sep) @@ -1178,7 +1190,7 @@ def date_from_str(date_str): return today if date_str == 'yesterday': return today - datetime.timedelta(days=1) - match = re.match('(now|today)(?P<sign>[+-])(?P<time>\d+)(?P<unit>day|week|month|year)(s)?', date_str) + match = re.match(r'(now|today)(?P<sign>[+-])(?P<time>\d+)(?P<unit>day|week|month|year)(s)?', date_str) if match is not None: sign = match.group('sign') time = int(match.group('time')) @@ -1695,6 +1707,16 @@ def base_url(url): return re.match(r'https?://[^?#&]+/', url).group() +def urljoin(base, path): + if not isinstance(path, compat_str) or not path: + return None + if re.match(r'^(?:https?:)?//', path): + return path + if not isinstance(base, compat_str) or not re.match(r'^(?:https?:)?//', base): + return None + return compat_urlparse.urljoin(base, path) + + class HEADRequest(compat_urllib_request.Request): def get_method(self): return 'HEAD' @@ -1751,7 +1773,7 @@ def parse_duration(s): s = s.strip() days, hours, mins, secs, ms = [None] * 5 - m = re.match(r'(?:(?:(?:(?P<days>[0-9]+):)?(?P<hours>[0-9]+):)?(?P<mins>[0-9]+):)?(?P<secs>[0-9]+)(?P<ms>\.[0-9]+)?$', s) + m = re.match(r'(?:(?:(?:(?P<days>[0-9]+):)?(?P<hours>[0-9]+):)?(?P<mins>[0-9]+):)?(?P<secs>[0-9]+)(?P<ms>\.[0-9]+)?Z?$', s) if m: days, hours, mins, secs, ms = m.groups() else: @@ -1768,11 +1790,11 @@ def parse_duration(s): )? (?: (?P<secs>[0-9]+)(?P<ms>\.[0-9]+)?\s*s(?:ec(?:ond)?s?)?\s* - )?$''', s) + )?Z?$''', s) if m: days, hours, mins, secs, ms = m.groups() else: - m = re.match(r'(?i)(?:(?P<hours>[0-9.]+)\s*(?:hours?)|(?P<mins>[0-9.]+)\s*(?:mins?\.?|minutes?)\s*)$', s) + m = re.match(r'(?i)(?:(?P<hours>[0-9.]+)\s*(?:hours?)|(?P<mins>[0-9.]+)\s*(?:mins?\.?|minutes?)\s*)Z?$', s) if m: hours, mins = m.groups() else: @@ -2081,11 +2103,18 @@ def strip_jsonp(code): def js_to_json(code): + COMMENT_RE = r'/\*(?:(?!\*/).)*?\*/|//[^\n]*' + SKIP_RE = r'\s*(?:{comment})?\s*'.format(comment=COMMENT_RE) + INTEGER_TABLE = ( + (r'(?s)^(0[xX][0-9a-fA-F]+){skip}:?$'.format(skip=SKIP_RE), 16), + (r'(?s)^(0+[0-7]+){skip}:?$'.format(skip=SKIP_RE), 8), + ) + def fix_kv(m): v = m.group(0) if v in ('true', 'false', 'null'): return v - elif v.startswith('/*') or v == ',': + elif v.startswith('/*') or v.startswith('//') or v == ',': return "" if v[0] in ("'", '"'): @@ -2096,11 +2125,6 @@ def js_to_json(code): '\\x': '\\u00', }.get(m.group(0), m.group(0)), v[1:-1]) - INTEGER_TABLE = ( - (r'^(0[xX][0-9a-fA-F]+)\s*:?$', 16), - (r'^(0+[0-7]+)\s*:?$', 8), - ) - for regex, base in INTEGER_TABLE: im = re.match(regex, v) if im: @@ -2112,11 +2136,11 @@ def js_to_json(code): return re.sub(r'''(?sx) "(?:[^"\\]*(?:\\\\|\\['"nurtbfx/\n]))*[^"\\]*"| '(?:[^'\\]*(?:\\\\|\\['"nurtbfx/\n]))*[^'\\]*'| - /\*.*?\*/|,(?=\s*[\]}])| + {comment}|,(?={skip}[\]}}])| [a-zA-Z_][.a-zA-Z_0-9]*| - \b(?:0[xX][0-9a-fA-F]+|0+[0-7]+)(?:\s*:)?| - [0-9]+(?=\s*:) - ''', fix_kv, code) + \b(?:0[xX][0-9a-fA-F]+|0+[0-7]+)(?:{skip}:)?| + [0-9]+(?={skip}:) + '''.format(comment=COMMENT_RE, skip=SKIP_RE), fix_kv, code) def qualities(quality_ids): diff --git a/youtube_dl/version.py b/youtube_dl/version.py index 1acb630..a73e9d8 100644 --- a/youtube_dl/version.py +++ b/youtube_dl/version.py @@ -1,3 +1,3 @@ from __future__ import unicode_literals -__version__ = '2016.12.01' +__version__ = '2017.02.07' -- 2.41.1