From 46113edab215c2211a604c06245c16d5d4e57dcf Mon Sep 17 00:00:00 2001 From: =?utf8?q?Rog=C3=A9rio=20Brito?= Date: Fri, 31 Oct 2014 18:42:42 -0200 Subject: [PATCH] Imported Upstream version 2014.10.30 --- MANIFEST.in | 1 + Makefile | 38 +- README.md | 190 +++-- README.txt | 219 +++-- devscripts/fish-completion.in | 5 + devscripts/fish-completion.py | 48 ++ devscripts/release.sh | 1 - devscripts/zsh-completion.in | 28 + devscripts/zsh-completion.py | 46 + docs/conf.py | 4 +- setup.py | 1 + test/helper.py | 48 +- test/parameters.json | 1 - test/test_YoutubeDL.py | 2 +- test/test_all_urls.py | 55 +- test/test_cache.py | 59 ++ test/test_download.py | 84 +- test/test_playlists.py | 400 --------- test/test_subtitles.py | 28 + test/test_utils.py | 159 +++- test/test_youtube_lists.py | 85 +- test/test_youtube_signature.py | 12 - youtube-dl | Bin 534378 -> 654341 bytes youtube-dl.1 | 149 +++- youtube-dl.bash-completion | 2 +- youtube-dl.fish | 120 +++ youtube-dl.zsh | 28 + youtube_dl/YoutubeDL.py | 135 ++- youtube_dl/__init__.py | 583 +------------ youtube_dl/cache.py | 95 +++ youtube_dl/downloader/__init__.py | 3 + youtube_dl/downloader/common.py | 3 +- youtube_dl/downloader/f4m.py | 14 +- youtube_dl/downloader/hls.py | 68 +- youtube_dl/downloader/http.py | 17 +- youtube_dl/downloader/rtmp.py | 7 +- youtube_dl/extractor/__init__.py | 120 ++- youtube_dl/extractor/abc.py | 3 +- youtube_dl/extractor/academicearth.py | 9 + youtube_dl/extractor/adultswim.py | 8 +- youtube_dl/extractor/anysex.py | 61 ++ youtube_dl/extractor/aol.py | 11 +- youtube_dl/extractor/aparat.py | 19 +- youtube_dl/extractor/appletrailers.py | 5 +- youtube_dl/extractor/ard.py | 80 +- youtube_dl/extractor/arte.py | 78 +- youtube_dl/extractor/audiomack.py | 69 ++ youtube_dl/extractor/auengine.py | 3 +- youtube_dl/extractor/bambuser.py | 15 +- youtube_dl/extractor/bandcamp.py | 32 +- youtube_dl/extractor/beeg.py | 65 ++ youtube_dl/extractor/behindkink.py | 53 ++ youtube_dl/extractor/bild.py | 39 + youtube_dl/extractor/bliptv.py | 19 +- youtube_dl/extractor/br.py | 18 +- youtube_dl/extractor/breakcom.py | 52 +- youtube_dl/extractor/brightcove.py | 28 +- youtube_dl/extractor/cbs.py | 2 +- youtube_dl/extractor/chilloutzone.py | 2 +- youtube_dl/extractor/cinemassacre.py | 17 +- youtube_dl/extractor/cliphunter.py | 60 +- youtube_dl/extractor/cloudy.py | 108 +++ youtube_dl/extractor/cnn.py | 2 +- youtube_dl/extractor/comedycentral.py | 36 +- youtube_dl/extractor/common.py | 251 +++++- youtube_dl/extractor/condenast.py | 2 + youtube_dl/extractor/crunchyroll.py | 167 +++- youtube_dl/extractor/cspan.py | 7 + youtube_dl/extractor/dailymotion.py | 125 +-- youtube_dl/extractor/daum.py | 17 +- youtube_dl/extractor/dbtv.py | 74 ++ youtube_dl/extractor/deezer.py | 89 ++ youtube_dl/extractor/dfb.py | 2 +- youtube_dl/extractor/divxstage.py | 4 +- youtube_dl/extractor/dropbox.py | 21 +- youtube_dl/extractor/drtuber.py | 70 ++ youtube_dl/extractor/drtv.py | 9 +- youtube_dl/extractor/dump.py | 39 + youtube_dl/extractor/ebaumsworld.py | 17 +- youtube_dl/extractor/eighttracks.py | 138 +-- youtube_dl/extractor/einthusan.py | 61 ++ youtube_dl/extractor/eitb.py | 24 +- youtube_dl/extractor/ellentv.py | 79 ++ youtube_dl/extractor/empflix.py | 47 +- youtube_dl/extractor/eporner.py | 75 ++ youtube_dl/extractor/escapist.py | 2 +- youtube_dl/extractor/everyonesmixtape.py | 14 +- youtube_dl/extractor/expotv.py | 73 ++ youtube_dl/extractor/extremetube.py | 11 +- youtube_dl/extractor/facebook.py | 44 +- youtube_dl/extractor/faz.py | 39 +- youtube_dl/extractor/firedrive.py | 3 +- youtube_dl/extractor/fktv.py | 43 +- youtube_dl/extractor/flickr.py | 20 +- youtube_dl/extractor/franceinter.py | 28 +- youtube_dl/extractor/francetv.py | 203 ++--- youtube_dl/extractor/funnyordie.py | 4 +- youtube_dl/extractor/gameone.py | 25 + youtube_dl/extractor/generic.py | 497 +++++++---- youtube_dl/extractor/glide.py | 40 + youtube_dl/extractor/globo.py | 398 +++++++++ youtube_dl/extractor/godtube.py | 12 +- youtube_dl/extractor/golem.py | 69 ++ youtube_dl/extractor/googleplus.py | 75 +- youtube_dl/extractor/googlesearch.py | 8 + youtube_dl/extractor/gorillavid.py | 29 +- youtube_dl/extractor/grooveshark.py | 190 +++++ youtube_dl/extractor/hark.py | 48 +- youtube_dl/extractor/heise.py | 75 ++ youtube_dl/extractor/hornbunny.py | 56 ++ youtube_dl/extractor/hostingbulk.py | 84 ++ youtube_dl/extractor/howstuffworks.py | 134 +++ youtube_dl/extractor/huffpost.py | 3 +- youtube_dl/extractor/iconosquare.py | 10 +- youtube_dl/extractor/ign.py | 32 +- youtube_dl/extractor/imdb.py | 8 + youtube_dl/extractor/instagram.py | 24 + youtube_dl/extractor/internetvideoarchive.py | 19 +- youtube_dl/extractor/ivi.py | 15 + youtube_dl/extractor/izlesene.py | 99 ++- youtube_dl/extractor/jove.py | 80 ++ youtube_dl/extractor/jpopsukitv.py | 15 +- youtube_dl/extractor/jukebox.py | 6 +- youtube_dl/extractor/justintv.py | 155 ---- youtube_dl/extractor/khanacademy.py | 17 +- youtube_dl/extractor/kickstarter.py | 23 +- youtube_dl/extractor/kontrtube.py | 2 +- youtube_dl/extractor/ku6.py | 10 +- youtube_dl/extractor/laola1tv.py | 77 ++ youtube_dl/extractor/livestream.py | 73 +- youtube_dl/extractor/lrt.py | 67 ++ youtube_dl/extractor/metacafe.py | 88 +- youtube_dl/extractor/mgoon.py | 87 ++ youtube_dl/extractor/ministrygrid.py | 57 ++ youtube_dl/extractor/mitele.py | 69 ++ youtube_dl/extractor/mixcloud.py | 23 +- youtube_dl/extractor/mlb.py | 14 +- youtube_dl/extractor/moevideo.py | 112 +++ youtube_dl/extractor/mofosex.py | 22 +- youtube_dl/extractor/mojvideo.py | 58 ++ youtube_dl/extractor/moniker.py | 70 ++ youtube_dl/extractor/motherless.py | 56 +- youtube_dl/extractor/movieclips.py | 78 ++ youtube_dl/extractor/muenchentv.py | 76 ++ youtube_dl/extractor/musicvault.py | 76 ++ youtube_dl/extractor/naver.py | 6 + youtube_dl/extractor/nba.py | 18 +- youtube_dl/extractor/nbc.py | 11 +- youtube_dl/extractor/ndr.py | 14 +- youtube_dl/extractor/nfl.py | 144 ++++ youtube_dl/extractor/nhl.py | 99 ++- youtube_dl/extractor/niconico.py | 51 +- youtube_dl/extractor/noco.py | 98 ++- youtube_dl/extractor/nosvideo.py | 76 ++ youtube_dl/extractor/nowness.py | 42 +- youtube_dl/extractor/npo.py | 124 ++- youtube_dl/extractor/nuvid.py | 21 +- youtube_dl/extractor/oe1.py | 40 - youtube_dl/extractor/oktoberfesttv.py | 47 ++ youtube_dl/extractor/ooyala.py | 66 +- youtube_dl/extractor/orf.py | 76 +- youtube_dl/extractor/patreon.py | 100 +++ youtube_dl/extractor/pbs.py | 124 ++- youtube_dl/extractor/phoenix.py | 31 + youtube_dl/extractor/planetaplay.py | 60 ++ youtube_dl/extractor/played.py | 55 ++ youtube_dl/extractor/playfm.py | 86 ++ youtube_dl/extractor/pornhd.py | 65 +- youtube_dl/extractor/pornhub.py | 13 +- youtube_dl/extractor/pornotube.py | 45 +- youtube_dl/extractor/pornoxo.py | 65 ++ youtube_dl/extractor/promptfile.py | 65 ++ youtube_dl/extractor/prosiebensat1.py | 21 +- youtube_dl/extractor/quickvid.py | 51 ++ youtube_dl/extractor/reverbnation.py | 19 +- youtube_dl/extractor/ro220.py | 46 +- youtube_dl/extractor/rtlnl.py | 67 ++ youtube_dl/extractor/rtlnow.py | 2 +- youtube_dl/extractor/rtve.py | 150 +++- youtube_dl/extractor/ruhd.py | 15 +- youtube_dl/extractor/rutube.py | 15 + youtube_dl/extractor/rutv.py | 2 +- youtube_dl/extractor/sbs.py | 60 ++ youtube_dl/extractor/sexykarma.py | 117 +++ youtube_dl/extractor/shared.py | 4 +- youtube_dl/extractor/sharesix.py | 91 ++ youtube_dl/extractor/smotri.py | 16 + youtube_dl/extractor/sockshare.py | 5 +- youtube_dl/extractor/soundcloud.py | 120 ++- youtube_dl/extractor/spankwire.py | 48 +- youtube_dl/extractor/spiegel.py | 42 +- youtube_dl/extractor/sport5.py | 92 ++ youtube_dl/extractor/sportbox.py | 76 ++ youtube_dl/extractor/sportdeutschland.py | 96 +++ youtube_dl/extractor/srmediathek.py | 43 + youtube_dl/extractor/sunporno.py | 70 ++ youtube_dl/extractor/swrmediathek.py | 14 - youtube_dl/extractor/syfy.py | 1 - youtube_dl/extractor/tapely.py | 104 +++ youtube_dl/extractor/teachertube.py | 7 + youtube_dl/extractor/teamcoco.py | 2 +- youtube_dl/extractor/techtalks.py | 76 +- youtube_dl/extractor/ted.py | 33 +- youtube_dl/extractor/telecinco.py | 19 + youtube_dl/extractor/telemb.py | 78 ++ youtube_dl/extractor/theonion.py | 70 ++ youtube_dl/extractor/theplatform.py | 87 +- youtube_dl/extractor/thesixtyone.py | 100 +++ youtube_dl/extractor/thvideo.py | 84 ++ youtube_dl/extractor/tnaflix.py | 84 ++ youtube_dl/extractor/toypics.py | 7 + youtube_dl/extractor/trutube.py | 38 +- youtube_dl/extractor/tube8.py | 37 +- youtube_dl/extractor/tudou.py | 60 +- youtube_dl/extractor/tumblr.py | 47 +- youtube_dl/extractor/turbo.py | 67 ++ youtube_dl/extractor/tvigle.py | 85 +- youtube_dl/extractor/tvplay.py | 147 +++- youtube_dl/extractor/twitch.py | 187 +++++ youtube_dl/extractor/unistra.py | 78 +- youtube_dl/extractor/ustream.py | 28 +- youtube_dl/extractor/vbox7.py | 3 +- youtube_dl/extractor/veehd.py | 3 +- youtube_dl/extractor/vevo.py | 67 +- youtube_dl/extractor/vgtv.py | 117 +++ youtube_dl/extractor/viddler.py | 108 ++- youtube_dl/extractor/videomega.py | 57 ++ youtube_dl/extractor/vidzi.py | 33 + youtube_dl/extractor/vimeo.py | 184 +++- youtube_dl/extractor/vine.py | 7 + youtube_dl/extractor/vk.py | 16 +- youtube_dl/extractor/vodlocker.py | 2 +- youtube_dl/extractor/vporn.py | 125 +++ youtube_dl/extractor/vrt.py | 95 +++ youtube_dl/extractor/vube.py | 104 ++- youtube_dl/extractor/vuclip.py | 34 +- youtube_dl/extractor/walla.py | 89 ++ youtube_dl/extractor/washingtonpost.py | 3 + youtube_dl/extractor/wat.py | 95 ++- youtube_dl/extractor/wayofthemaster.py | 52 ++ youtube_dl/extractor/wimp.py | 2 +- youtube_dl/extractor/wistia.py | 15 +- youtube_dl/extractor/worldstarhiphop.py | 22 +- youtube_dl/extractor/xboxclips.py | 57 ++ youtube_dl/extractor/xhamster.py | 4 +- youtube_dl/extractor/xtube.py | 10 +- youtube_dl/extractor/yahoo.py | 159 +++- youtube_dl/extractor/ynet.py | 50 ++ youtube_dl/extractor/youjizz.py | 2 +- youtube_dl/extractor/youku.py | 100 +-- youtube_dl/extractor/youporn.py | 1 - youtube_dl/extractor/yourupload.py | 58 ++ youtube_dl/extractor/youtube.py | 787 +++++++++++------- youtube_dl/extractor/zdf.py | 156 ++-- youtube_dl/options.py | 646 ++++++++++++++ youtube_dl/postprocessor/__init__.py | 12 +- youtube_dl/postprocessor/execafterdownload.py | 31 + youtube_dl/postprocessor/ffmpeg.py | 78 +- youtube_dl/utils.py | 393 +++++++-- youtube_dl/version.py | 2 +- 260 files changed, 13235 insertions(+), 3909 deletions(-) create mode 100644 devscripts/fish-completion.in create mode 100755 devscripts/fish-completion.py create mode 100644 devscripts/zsh-completion.in create mode 100755 devscripts/zsh-completion.py create mode 100644 test/test_cache.py delete mode 100644 test/test_playlists.py create mode 100644 youtube-dl.fish create mode 100644 youtube-dl.zsh create mode 100644 youtube_dl/cache.py create mode 100644 youtube_dl/extractor/anysex.py create mode 100644 youtube_dl/extractor/audiomack.py create mode 100644 youtube_dl/extractor/beeg.py create mode 100644 youtube_dl/extractor/behindkink.py create mode 100644 youtube_dl/extractor/bild.py create mode 100644 youtube_dl/extractor/cloudy.py create mode 100644 youtube_dl/extractor/dbtv.py create mode 100644 youtube_dl/extractor/deezer.py create mode 100644 youtube_dl/extractor/drtuber.py create mode 100644 youtube_dl/extractor/dump.py create mode 100644 youtube_dl/extractor/einthusan.py create mode 100644 youtube_dl/extractor/ellentv.py create mode 100644 youtube_dl/extractor/eporner.py create mode 100644 youtube_dl/extractor/expotv.py create mode 100644 youtube_dl/extractor/glide.py create mode 100644 youtube_dl/extractor/globo.py create mode 100644 youtube_dl/extractor/golem.py create mode 100644 youtube_dl/extractor/grooveshark.py create mode 100644 youtube_dl/extractor/heise.py create mode 100644 youtube_dl/extractor/hornbunny.py create mode 100644 youtube_dl/extractor/hostingbulk.py create mode 100644 youtube_dl/extractor/howstuffworks.py create mode 100644 youtube_dl/extractor/jove.py delete mode 100644 youtube_dl/extractor/justintv.py create mode 100644 youtube_dl/extractor/laola1tv.py create mode 100644 youtube_dl/extractor/lrt.py create mode 100644 youtube_dl/extractor/mgoon.py create mode 100644 youtube_dl/extractor/ministrygrid.py create mode 100644 youtube_dl/extractor/mitele.py create mode 100644 youtube_dl/extractor/moevideo.py create mode 100644 youtube_dl/extractor/mojvideo.py create mode 100644 youtube_dl/extractor/moniker.py create mode 100644 youtube_dl/extractor/movieclips.py create mode 100644 youtube_dl/extractor/muenchentv.py create mode 100644 youtube_dl/extractor/musicvault.py create mode 100644 youtube_dl/extractor/nfl.py create mode 100644 youtube_dl/extractor/nosvideo.py delete mode 100644 youtube_dl/extractor/oe1.py create mode 100644 youtube_dl/extractor/oktoberfesttv.py create mode 100644 youtube_dl/extractor/patreon.py create mode 100644 youtube_dl/extractor/phoenix.py create mode 100644 youtube_dl/extractor/planetaplay.py create mode 100644 youtube_dl/extractor/played.py create mode 100644 youtube_dl/extractor/playfm.py create mode 100644 youtube_dl/extractor/pornoxo.py create mode 100644 youtube_dl/extractor/promptfile.py create mode 100644 youtube_dl/extractor/quickvid.py create mode 100644 youtube_dl/extractor/rtlnl.py create mode 100644 youtube_dl/extractor/sbs.py create mode 100644 youtube_dl/extractor/sexykarma.py create mode 100644 youtube_dl/extractor/sharesix.py create mode 100644 youtube_dl/extractor/sport5.py create mode 100644 youtube_dl/extractor/sportbox.py create mode 100644 youtube_dl/extractor/sportdeutschland.py create mode 100644 youtube_dl/extractor/srmediathek.py create mode 100644 youtube_dl/extractor/sunporno.py create mode 100644 youtube_dl/extractor/tapely.py create mode 100644 youtube_dl/extractor/telecinco.py create mode 100644 youtube_dl/extractor/telemb.py create mode 100644 youtube_dl/extractor/theonion.py create mode 100644 youtube_dl/extractor/thesixtyone.py create mode 100644 youtube_dl/extractor/thvideo.py create mode 100644 youtube_dl/extractor/tnaflix.py create mode 100644 youtube_dl/extractor/turbo.py create mode 100644 youtube_dl/extractor/twitch.py create mode 100644 youtube_dl/extractor/vgtv.py create mode 100644 youtube_dl/extractor/videomega.py create mode 100644 youtube_dl/extractor/vidzi.py create mode 100644 youtube_dl/extractor/vporn.py create mode 100644 youtube_dl/extractor/vrt.py create mode 100644 youtube_dl/extractor/walla.py create mode 100644 youtube_dl/extractor/wayofthemaster.py create mode 100644 youtube_dl/extractor/xboxclips.py create mode 100644 youtube_dl/extractor/ynet.py create mode 100644 youtube_dl/extractor/yourupload.py create mode 100644 youtube_dl/options.py create mode 100644 youtube_dl/postprocessor/execafterdownload.py diff --git a/MANIFEST.in b/MANIFEST.in index d43cc1f..5743f60 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -2,5 +2,6 @@ include README.md include test/*.py include test/*.json include youtube-dl.bash-completion +include youtube-dl.fish include youtube-dl.1 recursive-include docs Makefile conf.py *.rst diff --git a/Makefile b/Makefile index c079761..3e1debc 100644 --- a/Makefile +++ b/Makefile @@ -1,15 +1,16 @@ -all: youtube-dl README.md README.txt youtube-dl.1 youtube-dl.bash-completion +all: youtube-dl README.md README.txt youtube-dl.1 youtube-dl.bash-completion youtube-dl.zsh youtube-dl.fish clean: - rm -rf youtube-dl.1.temp.md youtube-dl.1 youtube-dl.bash-completion README.txt MANIFEST build/ dist/ .coverage cover/ youtube-dl.tar.gz + rm -rf youtube-dl.1.temp.md youtube-dl.1 youtube-dl.bash-completion README.txt MANIFEST build/ dist/ .coverage cover/ youtube-dl.tar.gz youtube-dl.zsh youtube-dl.fish *.dump *.part cleanall: clean rm -f youtube-dl youtube-dl.exe -PREFIX=/usr/local -BINDIR=$(PREFIX)/bin -MANDIR=$(PREFIX)/man -PYTHON=/usr/bin/env python +PREFIX ?= /usr/local +BINDIR ?= $(PREFIX)/bin +MANDIR ?= $(PREFIX)/man +SHAREDIR ?= $(PREFIX)/share +PYTHON ?= /usr/bin/env python # set SYSCONFDIR to /etc if PREFIX=/usr or PREFIX=/usr/local ifeq ($(PREFIX),/usr) @@ -22,13 +23,17 @@ else endif endif -install: youtube-dl youtube-dl.1 youtube-dl.bash-completion +install: youtube-dl youtube-dl.1 youtube-dl.bash-completion youtube-dl.zsh youtube-dl.fish install -d $(DESTDIR)$(BINDIR) install -m 755 youtube-dl $(DESTDIR)$(BINDIR) install -d $(DESTDIR)$(MANDIR)/man1 install -m 644 youtube-dl.1 $(DESTDIR)$(MANDIR)/man1 install -d $(DESTDIR)$(SYSCONFDIR)/bash_completion.d install -m 644 youtube-dl.bash-completion $(DESTDIR)$(SYSCONFDIR)/bash_completion.d/youtube-dl + install -d $(DESTDIR)$(SHAREDIR)/zsh/site-functions + install -m 644 youtube-dl.zsh $(DESTDIR)$(SHAREDIR)/zsh/site-functions/_youtube-dl + install -d $(DESTDIR)$(SYSCONFDIR)/fish/completions + install -m 644 youtube-dl.fish $(DESTDIR)$(SYSCONFDIR)/fish/completions/youtube-dl.fish test: #nosetests --with-coverage --cover-package=youtube_dl --cover-html --verbose --processes 4 test @@ -36,9 +41,9 @@ test: tar: youtube-dl.tar.gz -.PHONY: all clean install test tar bash-completion pypi-files +.PHONY: all clean install test tar bash-completion pypi-files zsh-completion fish-completion -pypi-files: youtube-dl.bash-completion README.txt youtube-dl.1 +pypi-files: youtube-dl.bash-completion README.txt youtube-dl.1 youtube-dl.fish youtube-dl: youtube_dl/*.py youtube_dl/*/*.py zip --quiet youtube-dl youtube_dl/*.py youtube_dl/*/*.py @@ -64,7 +69,17 @@ youtube-dl.bash-completion: youtube_dl/*.py youtube_dl/*/*.py devscripts/bash-co bash-completion: youtube-dl.bash-completion -youtube-dl.tar.gz: youtube-dl README.md README.txt youtube-dl.1 youtube-dl.bash-completion +youtube-dl.zsh: youtube_dl/*.py youtube_dl/*/*.py devscripts/zsh-completion.in + python devscripts/zsh-completion.py + +zsh-completion: youtube-dl.zsh + +youtube-dl.fish: youtube_dl/*.py youtube_dl/*/*.py devscripts/fish-completion.in + python devscripts/fish-completion.py + +fish-completion: youtube-dl.fish + +youtube-dl.tar.gz: youtube-dl README.md README.txt youtube-dl.1 youtube-dl.bash-completion youtube-dl.zsh youtube-dl.fish @tar -czf youtube-dl.tar.gz --transform "s|^|youtube-dl/|" --owner 0 --group 0 \ --exclude '*.DS_Store' \ --exclude '*.kate-swp' \ @@ -78,5 +93,6 @@ youtube-dl.tar.gz: youtube-dl README.md README.txt youtube-dl.1 youtube-dl.bash- -- \ bin devscripts test youtube_dl docs \ LICENSE README.md README.txt \ - Makefile MANIFEST.in youtube-dl.1 youtube-dl.bash-completion setup.py \ + Makefile MANIFEST.in youtube-dl.1 youtube-dl.bash-completion \ + youtube-dl.zsh youtube-dl.fish setup.py \ youtube-dl diff --git a/README.md b/README.md index a42dfb8..230c12a 100644 --- a/README.md +++ b/README.md @@ -17,6 +17,14 @@ If you do not have curl, you can alternatively use a recent wget: Windows users can [download a .exe file](https://yt-dl.org/latest/youtube-dl.exe) and place it in their home directory or any other location on their [PATH](http://en.wikipedia.org/wiki/PATH_%28variable%29). +OS X users can install **youtube-dl** with [Homebrew](http://brew.sh/). + + brew install youtube-dl + +You can also use pip: + + sudo pip install youtube-dl + Alternatively, refer to the developer instructions below for how to check out and work with the git repository. For further options, including PGP signatures, see https://rg3.github.io/youtube-dl/download.html . # DESCRIPTION @@ -61,6 +69,8 @@ which means you can modify it, redistribute it or use it however you like. configuration in ~/.config/youtube-dl.conf (%APPDATA%/youtube-dl/config.txt on Windows) + --flat-playlist Do not extract the videos of a playlist, + only list them. ## Video Selection: --playlist-start NUMBER playlist video to start at (default is 1) @@ -91,8 +101,6 @@ which means you can modify it, redistribute it or use it however you like. downloaded videos in it. --include-ads Download advertisements as well (experimental) - --youtube-include-dash-manifest Try to download the DASH manifest on - YouTube videos (experimental) ## Download Options: -r, --rate-limit LIMIT maximum download rate in bytes per second @@ -150,7 +158,8 @@ which means you can modify it, redistribute it or use it however you like. downloads if possible. --no-continue do not resume partially downloaded files (restart from beginning) - --no-part do not use .part files + --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 @@ -190,6 +199,10 @@ which means you can modify it, redistribute it or use it however you like. -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. --newline output progress bar as new lines --no-progress do not print progress bar --console-title display progress in console titlebar @@ -208,7 +221,7 @@ which means you can modify it, redistribute it or use it however you like. information about the video. (Currently supported only for YouTube) --user-agent UA specify a custom user agent - --referer REF specify a custom referer, use if the video + --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 @@ -219,17 +232,22 @@ which means you can modify it, redistribute it or use it however you like. ## Video Format Options: -f, --format FORMAT video format code, specify the order of - preference using slashes: "-f 22/17/18". - "-f mp4" and "-f flv" are also supported. - You can also use the special names "best", - "bestvideo", "bestaudio", "worst", - "worstvideo" and "worstaudio". By default, - youtube-dl will pick the best quality. + preference using slashes: -f 22/17/18 . -f + mp4 , -f m4a and -f flv are also + supported. You can also use the special + names "best", "bestvideo", "bestaudio", + "worst", "worstvideo" and "worstaudio". By + default, youtube-dl will pick the best + quality. Use commas to download multiple + audio formats, such as -f + 136/137/mp4/bestvideo,140/m4a/bestaudio --all-formats download all available video formats --prefer-free-formats prefer free video formats unless a specific one is requested --max-quality FORMAT highest quality format to download -F, --list-formats list all available formats + --youtube-skip-dash-manifest Do not download the DASH manifest on + YouTube videos ## Subtitle Options: --write-sub write subtitle file @@ -245,8 +263,9 @@ which means you can modify it, redistribute it or use it however you like. language tags like 'en,pt' ## Authentication Options: - -u, --username USERNAME account username + -u, --username USERNAME login with this account ID -p, --password PASSWORD account password + -2, --twofactor TWOFACTOR two-factor auth code -n, --netrc use .netrc authentication data --video-password PASSWORD video password (vimeo, smotri) @@ -255,7 +274,7 @@ which means you can modify it, redistribute it or use it however you like. (requires ffmpeg or avconv and ffprobe or avprobe) --audio-format FORMAT "best", "aac", "vorbis", "mp3", "m4a", - "opus", or "wav"; best by default + "opus", or "wav"; "best" by default --audio-quality QUALITY ffmpeg/avconv audio quality specification, insert a value between 0 (better) and 9 (worse) for VBR or a specific bitrate like @@ -279,6 +298,10 @@ which means you can modify it, redistribute it or use it however you like. postprocessors (default) --prefer-ffmpeg Prefer ffmpeg over avconv for running the postprocessors + --exec CMD Execute a command on the file after + downloading, similar to find's -exec + syntax. Example: --exec 'adb push {} + /sdcard/Music/ && rm {}' # CONFIGURATION @@ -303,10 +326,12 @@ 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: - $ 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 +```bash +$ 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 +``` # VIDEO SELECTION @@ -317,17 +342,51 @@ Videos can be filtered by their upload date using the options `--date`, `--dateb Examples: - # Download only the videos uploaded in the last 6 months - $ youtube-dl --dateafter now-6months +```bash +# 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 on January 1, 1970 +$ youtube-dl --date 19700101 - $ # will only download the videos uploaded in the 200x decade - $ youtube-dl --dateafter 20000101 --datebefore 20091231 +$ # will only download 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](http://rg3.github.io/youtube-dl/download.html), 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 distributions 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](http://rg3.github.io/youtube-dl/download.html): + +``` +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`. + +### 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 guys - all they have to do is update the package to a somewhat recent version. See above for a way to update. + +### Do I always have to pass in `--max-quality FORMAT`, or `-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](https://yt-dl.org/bug)). Therefore, it is unnecessary and sometimes harmful to copy long option strings from webpages. In particular, `--max-quality` *limits* the video quality (so if you want the best quality, do NOT pass it in), and 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. @@ -399,49 +458,46 @@ If you want to add support for a new site, you can follow this quick list (assum 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 - - import re - - 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 10KiB of the video file', - 'info_dict': { - 'id': '42', - 'ext': 'mp4', - 'title': 'Video title goes here', - # 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) - } + ```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): - mobj = re.match(self._VALID_URL, url) - video_id = mobj.group('id') - - # TODO more code goes here, for example ... - webpage = self._download_webpage(url, video_id) - title = self._html_search_regex(r'

(.*?)

', webpage, 'title') - - return { - 'id': video_id, - 'title': title, - # TODO more properties (see youtube_dl/extractor/common.py) - } + def _real_extract(self, url): + video_id = self._match_id(url) + # TODO more code goes here, for example ... + webpage = self._download_webpage(url, video_id) + title = self._html_search_regex(r'

(.*?)

', webpage, 'title') + return { + 'id': video_id, + 'title': title, + # TODO more properties (see youtube_dl/extractor/common.py) + } + ``` 5. Add an import in [`youtube_dl/extractor/__init__.py`](https://github.com/rg3/youtube-dl/blob/master/youtube_dl/extractor/__init__.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. +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 be then be named `TestDownload.test_YourExtractor`, `TestDownload.test_YourExtractor_1`, `TestDownload.test_YourExtractor_2`, etc. 7. Have a look at [`youtube_dl/common/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 return](https://github.com/rg3/youtube-dl/blob/master/youtube_dl/extractor/common.py#L38). Add tests and code for as many as you want. 8. If you can, check the code with [pyflakes](https://pypi.python.org/pypi/pyflakes) (a good idea) and [pep8](https://pypi.python.org/pypi/pep8) (optional, ignore E501). 9. When the tests pass, [add](https://www.kernel.org/pub/software/scm/git/docs/git-add.html) the new files and [commit](https://www.kernel.org/pub/software/scm/git/docs/git-commit.html) them and [push](https://www.kernel.org/pub/software/scm/git/docs/git-push.html) the result, like this: @@ -455,6 +511,20 @@ If you want to add support for a new site, you can follow this quick list (assum In any case, thank you very much for your contributions! +# 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](https://github.com/rg3/youtube-dl/issues/new). + +From a Python program, you can embed youtube-dl in a more powerful fashion, like this: + + 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 what can be done, have a look at [youtube_dl/YoutubeDL.py](https://github.com/rg3/youtube-dl/blob/master/youtube_dl/YoutubeDL.py#L69). For a start, if you want to intercept youtube-dl's output, set a `logger` object. + # BUGS Bugs and suggestions should be reported at: . Unless you were prompted so or there is another pertinent reason (e.g. GitHub fails to accept the bug report), please do not send bug reports via personal email. diff --git a/README.txt b/README.txt index 4f41be2..6911156 100644 --- a/README.txt +++ b/README.txt @@ -21,6 +21,14 @@ If you do not have curl, you can alternatively use a recent wget: Windows users can download a .exe file and place it in their home directory or any other location on their PATH. +OS X users can install youtube-dl with Homebrew. + + brew install youtube-dl + +You can also use pip: + + sudo pip install youtube-dl + Alternatively, refer to the developer instructions below for how to check out and work with the git repository. For further options, including PGP signatures, see @@ -73,6 +81,8 @@ OPTIONS configuration in ~/.config/youtube-dl.conf (%APPDATA%/youtube-dl/config.txt on Windows) + --flat-playlist Do not extract the videos of a playlist, + only list them. Video Selection: ---------------- @@ -105,8 +115,6 @@ Video Selection: downloaded videos in it. --include-ads Download advertisements as well (experimental) - --youtube-include-dash-manifest Try to download the DASH manifest on - YouTube videos (experimental) Download Options: ----------------- @@ -168,7 +176,8 @@ Filesystem Options: downloads if possible. --no-continue do not resume partially downloaded files (restart from beginning) - --no-part do not use .part files + --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 @@ -210,6 +219,10 @@ Verbosity / Simulation Options: -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. --newline output progress bar as new lines --no-progress do not print progress bar --console-title display progress in console titlebar @@ -230,7 +243,7 @@ Workarounds: information about the video. (Currently supported only for YouTube) --user-agent UA specify a custom user agent - --referer REF specify a custom referer, use if the video + --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 @@ -243,17 +256,22 @@ Video Format Options: --------------------- -f, --format FORMAT video format code, specify the order of - preference using slashes: "-f 22/17/18". - "-f mp4" and "-f flv" are also supported. - You can also use the special names "best", - "bestvideo", "bestaudio", "worst", - "worstvideo" and "worstaudio". By default, - youtube-dl will pick the best quality. + preference using slashes: -f 22/17/18 . -f + mp4 , -f m4a and -f flv are also + supported. You can also use the special + names "best", "bestvideo", "bestaudio", + "worst", "worstvideo" and "worstaudio". By + default, youtube-dl will pick the best + quality. Use commas to download multiple + audio formats, such as -f + 136/137/mp4/bestvideo,140/m4a/bestaudio --all-formats download all available video formats --prefer-free-formats prefer free video formats unless a specific one is requested --max-quality FORMAT highest quality format to download -F, --list-formats list all available formats + --youtube-skip-dash-manifest Do not download the DASH manifest on + YouTube videos Subtitle Options: ----------------- @@ -273,8 +291,9 @@ Subtitle Options: Authentication Options: ----------------------- - -u, --username USERNAME account username + -u, --username USERNAME login with this account ID -p, --password PASSWORD account password + -2, --twofactor TWOFACTOR two-factor auth code -n, --netrc use .netrc authentication data --video-password PASSWORD video password (vimeo, smotri) @@ -285,7 +304,7 @@ Post-processing Options: (requires ffmpeg or avconv and ffprobe or avprobe) --audio-format FORMAT "best", "aac", "vorbis", "mp3", "m4a", - "opus", or "wav"; best by default + "opus", or "wav"; "best" by default --audio-quality QUALITY ffmpeg/avconv audio quality specification, insert a value between 0 (better) and 9 (worse) for VBR or a specific bitrate like @@ -309,6 +328,10 @@ Post-processing Options: postprocessors (default) --prefer-ffmpeg Prefer ffmpeg over avconv for running the postprocessors + --exec CMD Execute a command on the file after + downloading, similar to find's -exec + syntax. Example: --exec 'adb push {} + /sdcard/Music/ && rm {}' CONFIGURATION ============= @@ -356,10 +379,12 @@ In some cases, you don't want special characters such as 中, spaces, or or the filename through an 8bit-unsafe channel. In these cases, add the --restrict-filenames flag to get a shorter title: - $ 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 +``` {.bash} +$ 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 +``` VIDEO SELECTION =============== @@ -373,18 +398,74 @@ Videos can be filtered by their upload date using the options --date, Examples: - # Download only the videos uploaded in the last 6 months - $ youtube-dl --dateafter now-6months +``` {.bash} +# 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 on January 1, 1970 +$ youtube-dl --date 19700101 - $ # will only download the videos uploaded in the 200x decade - $ youtube-dl --dateafter 20000101 --datebefore 20091231 +$ # will only download 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 distributions +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. + +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 guys - all they have to do is update the package to a +somewhat recent version. See above for a way to update. + +Do I always have to pass in --max-quality FORMAT, or -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, --max-quality limits the video quality (so if you want the +best quality, do NOT pass it in), and 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 @@ -490,49 +571,53 @@ list (assuming your service is called yourextractor): 4. Start with this simple template and save it to youtube_dl/extractor/yourextractor.py: - # coding: utf-8 - from __future__ import unicode_literals - - import re - - 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 10KiB of the video file', - 'info_dict': { - 'id': '42', - 'ext': 'mp4', - 'title': 'Video title goes here', - # 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) - } + ``` {.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): - mobj = re.match(self._VALID_URL, url) - video_id = mobj.group('id') + def _real_extract(self, url): + video_id = self._match_id(url) - # TODO more code goes here, for example ... - webpage = self._download_webpage(url, video_id) - title = self._html_search_regex(r'

(.*?)

', webpage, 'title') + # TODO more code goes here, for example ... + webpage = self._download_webpage(url, video_id) + title = self._html_search_regex(r'

(.*?)

', webpage, 'title') - return { - 'id': video_id, - 'title': title, - # TODO more properties (see youtube_dl/extractor/common.py) - } + return { + 'id': video_id, + 'title': title, + # TODO more properties (see youtube_dl/extractor/common.py) + } + ``` 5. Add an import in youtube_dl/extractor/__init__.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. + 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 be then be named TestDownload.test_YourExtractor, + TestDownload.test_YourExtractor_1, + TestDownload.test_YourExtractor_2, etc. 7. Have a look at youtube_dl/common/extractor/common.py for possible helper methods and a detailed description of what your extractor should return. Add tests and code for as many as you want. @@ -550,6 +635,26 @@ list (assuming your service is called yourextractor): In any case, thank you very much for your contributions! +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: + + 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 what can +be done, have a look at youtube_dl/YoutubeDL.py. For a start, if you +want to intercept youtube-dl's output, set a logger object. + BUGS ==== diff --git a/devscripts/fish-completion.in b/devscripts/fish-completion.in new file mode 100644 index 0000000..eb79765 --- /dev/null +++ b/devscripts/fish-completion.in @@ -0,0 +1,5 @@ + +{{commands}} + + +complete --command youtube-dl --arguments ":ytfavorites :ytrecommended :ytsubscriptions :ytwatchlater :ythistory" diff --git a/devscripts/fish-completion.py b/devscripts/fish-completion.py new file mode 100755 index 0000000..f4aaf02 --- /dev/null +++ b/devscripts/fish-completion.py @@ -0,0 +1,48 @@ +#!/usr/bin/env python +from __future__ import unicode_literals + +import optparse +import os +from os.path import dirname as dirn +import sys + +sys.path.append(dirn(dirn((os.path.abspath(__file__))))) +import youtube_dl +from youtube_dl.utils import shell_quote + +FISH_COMPLETION_FILE = 'youtube-dl.fish' +FISH_COMPLETION_TEMPLATE = 'devscripts/fish-completion.in' + +EXTRA_ARGS = { + 'recode-video': ['--arguments', 'mp4 flv ogg webm mkv', '--exclusive'], + + # Options that need a file parameter + 'download-archive': ['--require-parameter'], + 'cookies': ['--require-parameter'], + 'load-info': ['--require-parameter'], + 'batch-file': ['--require-parameter'], +} + +def build_completion(opt_parser): + commands = [] + + for group in opt_parser.option_groups: + for option in group.option_list: + long_option = option.get_opt_string().strip('-') + help_msg = shell_quote([option.help]) + complete_cmd = ['complete', '--command', 'youtube-dl', '--long-option', long_option] + if option._short_opts: + complete_cmd += ['--short-option', option._short_opts[0].strip('-')] + if option.help != optparse.SUPPRESS_HELP: + complete_cmd += ['--description', option.help] + complete_cmd.extend(EXTRA_ARGS.get(long_option, [])) + commands.append(shell_quote(complete_cmd)) + + with open(FISH_COMPLETION_TEMPLATE) as f: + template = f.read() + filled_template = template.replace('{{commands}}', '\n'.join(commands)) + with open(FISH_COMPLETION_FILE, 'w') as f: + f.write(filled_template) + +parser = youtube_dl.parseOpts()[0] +build_completion(parser) diff --git a/devscripts/release.sh b/devscripts/release.sh index 453087e..691517c 100755 --- a/devscripts/release.sh +++ b/devscripts/release.sh @@ -73,7 +73,6 @@ RELEASE_FILES="youtube-dl youtube-dl.exe youtube-dl-$version.tar.gz" (cd build/$version/ && sha1sum $RELEASE_FILES > SHA1SUMS) (cd build/$version/ && sha256sum $RELEASE_FILES > SHA2-256SUMS) (cd build/$version/ && sha512sum $RELEASE_FILES > SHA2-512SUMS) -git checkout HEAD -- youtube-dl youtube-dl.exe /bin/echo -e "\n### Signing and uploading the new binaries to yt-dl.org ..." for f in $RELEASE_FILES; do gpg --passphrase-repeat 5 --detach-sig "build/$version/$f"; done diff --git a/devscripts/zsh-completion.in b/devscripts/zsh-completion.in new file mode 100644 index 0000000..b394a1a --- /dev/null +++ b/devscripts/zsh-completion.in @@ -0,0 +1,28 @@ +#compdef youtube-dl + +__youtube_dl() { + local curcontext="$curcontext" fileopts diropts cur prev + typeset -A opt_args + fileopts="{{fileopts}}" + diropts="{{diropts}}" + 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 '*: :({{flags}})' + fi + ;; + esac +} + +__youtube_dl \ No newline at end of file diff --git a/devscripts/zsh-completion.py b/devscripts/zsh-completion.py new file mode 100755 index 0000000..e8d7192 --- /dev/null +++ b/devscripts/zsh-completion.py @@ -0,0 +1,46 @@ +#!/usr/bin/env python +import os +from os.path import dirname as dirn +import sys + +sys.path.append(dirn(dirn((os.path.abspath(__file__))))) +import youtube_dl + +ZSH_COMPLETION_FILE = "youtube-dl.zsh" +ZSH_COMPLETION_TEMPLATE = "devscripts/zsh-completion.in" + + +def build_completion(opt_parser): + opts = [opt for group in opt_parser.option_groups + for opt in group.option_list] + opts_file = [opt for opt in opts if opt.metavar == "FILE"] + opts_dir = [opt for opt in opts if opt.metavar == "DIR"] + + fileopts = [] + for opt in opts_file: + if opt._short_opts: + fileopts.extend(opt._short_opts) + if opt._long_opts: + fileopts.extend(opt._long_opts) + + diropts = [] + for opt in opts_dir: + if opt._short_opts: + diropts.extend(opt._short_opts) + if opt._long_opts: + diropts.extend(opt._long_opts) + + flags = [opt.get_opt_string() for opt in opts] + + with open(ZSH_COMPLETION_TEMPLATE) as f: + template = f.read() + + template = template.replace("{{fileopts}}", "|".join(fileopts)) + template = template.replace("{{diropts}}", "|".join(diropts)) + template = template.replace("{{flags}}", " ".join(flags)) + + with open(ZSH_COMPLETION_FILE, "w") as f: + f.write(template) + +parser = youtube_dl.parseOpts()[0] +build_completion(parser) diff --git a/docs/conf.py b/docs/conf.py index 4a04ad7..594ca61 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -44,8 +44,8 @@ copyright = u'2014, Ricardo Garcia Gonzalez' # built documents. # # The short X.Y version. -import youtube_dl -version = youtube_dl.__version__ +from youtube_dl.version import __version__ +version = __version__ # The full version, including alpha/beta/rc tags. release = version diff --git a/setup.py b/setup.py index 03e7b35..cf6b92b 100644 --- a/setup.py +++ b/setup.py @@ -48,6 +48,7 @@ if len(sys.argv) >= 2 and sys.argv[1] == 'py2exe': else: files_spec = [ ('etc/bash_completion.d', ['youtube-dl.bash-completion']), + ('etc/fish/completions', ['youtube-dl.fish']), ('share/doc/youtube_dl', ['README.txt']), ('share/man/man1', ['youtube-dl.1']) ] diff --git a/test/helper.py b/test/helper.py index b7299fb..fb86181 100644 --- a/test/helper.py +++ b/test/helper.py @@ -1,3 +1,5 @@ +from __future__ import unicode_literals + import errno import io import hashlib @@ -12,6 +14,7 @@ from youtube_dl import YoutubeDL from youtube_dl.utils import ( compat_str, preferredencoding, + write_string, ) @@ -40,10 +43,10 @@ def report_warning(message): If stderr is a tty file the 'WARNING:' will be colored ''' if sys.stderr.isatty() and os.name != 'nt': - _msg_header = u'\033[0;33mWARNING:\033[0m' + _msg_header = '\033[0;33mWARNING:\033[0m' else: - _msg_header = u'WARNING:' - output = u'%s %s\n' % (_msg_header, message) + _msg_header = 'WARNING:' + output = '%s %s\n' % (_msg_header, message) if 'b' in getattr(sys.stderr, 'mode', '') or sys.version_info[0] < 3: output = output.encode(preferredencoding()) sys.stderr.write(output) @@ -102,26 +105,31 @@ def expect_info_dict(self, expected_dict, got_dict): match_rex = re.compile(match_str) self.assertTrue( - isinstance(got, compat_str) and match_rex.match(got), - u'field %s (value: %r) should match %r' % (info_field, got, match_str)) + isinstance(got, compat_str), + 'Expected a %s object, but got %s for field %s' % ( + compat_str.__name__, type(got).__name__, info_field)) + self.assertTrue( + match_rex.match(got), + 'field %s (value: %r) should match %r' % (info_field, got, match_str)) elif isinstance(expected, type): got = got_dict.get(info_field) self.assertTrue(isinstance(got, expected), - u'Expected type %r for field %s, but got value %r of type %r' % (expected, info_field, got, type(got))) + 'Expected type %r for field %s, but got value %r of type %r' % (expected, info_field, got, type(got))) else: if isinstance(expected, compat_str) and expected.startswith('md5:'): got = 'md5:' + md5(got_dict.get(info_field)) else: got = got_dict.get(info_field) self.assertEqual(expected, got, - u'invalid value for field %s, expected %r, got %r' % (info_field, expected, got)) + 'invalid value for field %s, expected %r, got %r' % (info_field, expected, got)) # Check for the presence of mandatory fields - for key in ('id', 'url', 'title', 'ext'): - self.assertTrue(got_dict.get(key), 'Missing mandatory field %s' % key) + if got_dict.get('_type') != 'playlist': + for key in ('id', 'url', 'title', 'ext'): + self.assertTrue(got_dict.get(key), 'Missing mandatory field %s' % key) # Check for mandatory fields that are automatically set by YoutubeDL for key in ['webpage_url', 'extractor', 'extractor_key']: - self.assertTrue(got_dict.get(key), u'Missing field: %s' % key) + self.assertTrue(got_dict.get(key), 'Missing field: %s' % key) # Are checkable fields missing from the test case definition? test_info_dict = dict((key, value if not isinstance(value, compat_str) or len(value) < 250 else 'md5:' + md5(value)) @@ -129,7 +137,15 @@ def expect_info_dict(self, expected_dict, got_dict): if value and key in ('title', 'description', 'uploader', 'upload_date', 'timestamp', 'uploader_id', 'location')) missing_keys = set(test_info_dict.keys()) - set(expected_dict.keys()) if missing_keys: - sys.stderr.write(u'\n"info_dict": ' + json.dumps(test_info_dict, ensure_ascii=False, indent=4) + u'\n') + def _repr(v): + if isinstance(v, compat_str): + return "'%s'" % v.replace('\\', '\\\\').replace("'", "\\'") + else: + return repr(v) + info_dict_str = ''.join( + ' %s: %s,\n' % (_repr(k), _repr(v)) + for k, v in test_info_dict.items()) + write_string('\n"info_dict": {\n' + info_dict_str + '}\n', out=sys.stderr) self.assertFalse( missing_keys, 'Missing keys in test definition: %s' % ( @@ -155,3 +171,13 @@ def assertGreaterEqual(self, got, expected, msg=None): if msg is None: msg = '%r not greater than or equal to %r' % (got, expected) self.assertTrue(got >= expected, msg) + + +def expect_warnings(ydl, warnings_re): + real_warning = ydl.report_warning + + def _report_warning(w): + if not any(re.search(w_re, w) for w_re in warnings_re): + real_warning(w) + + ydl.report_warning = _report_warning diff --git a/test/parameters.json b/test/parameters.json index 487a46d..098cd0c 100644 --- a/test/parameters.json +++ b/test/parameters.json @@ -27,7 +27,6 @@ "rejecttitle": null, "retries": 10, "simulate": false, - "skip_download": false, "subtitleslang": null, "subtitlesformat": "srt", "test": true, diff --git a/test/test_YoutubeDL.py b/test/test_YoutubeDL.py index e794cc9..ab61e19 100644 --- a/test/test_YoutubeDL.py +++ b/test/test_YoutubeDL.py @@ -221,7 +221,7 @@ class TestFormatSelection(unittest.TestCase): '138', '137', '248', '136', '247', '135', '246', '245', '244', '134', '243', '133', '242', '160', # Dash audio - '141', '172', '140', '139', '171', + '141', '172', '140', '171', '139', ] for f1id, f2id in zip(order, order[1:]): diff --git a/test/test_all_urls.py b/test/test_all_urls.py index 0ff47cf..965e5d8 100644 --- a/test/test_all_urls.py +++ b/test/test_all_urls.py @@ -14,7 +14,7 @@ from test.helper import gettestcases from youtube_dl.extractor import ( FacebookIE, gen_extractors, - JustinTVIE, + TwitchIE, YoutubeIE, ) @@ -72,21 +72,17 @@ class TestAllURLsMatching(unittest.TestCase): self.assertMatch('http://www.youtube.com/results?search_query=making+mustard', ['youtube:search_url']) self.assertMatch('https://www.youtube.com/results?baz=bar&search_query=youtube-dl+test+video&filters=video&lclk=video', ['youtube:search_url']) - def test_justin_tv_channelid_matching(self): - self.assertTrue(JustinTVIE.suitable('justin.tv/vanillatv')) - self.assertTrue(JustinTVIE.suitable('twitch.tv/vanillatv')) - self.assertTrue(JustinTVIE.suitable('www.justin.tv/vanillatv')) - self.assertTrue(JustinTVIE.suitable('www.twitch.tv/vanillatv')) - self.assertTrue(JustinTVIE.suitable('http://www.justin.tv/vanillatv')) - self.assertTrue(JustinTVIE.suitable('http://www.twitch.tv/vanillatv')) - self.assertTrue(JustinTVIE.suitable('http://www.justin.tv/vanillatv/')) - self.assertTrue(JustinTVIE.suitable('http://www.twitch.tv/vanillatv/')) + def test_twitch_channelid_matching(self): + self.assertTrue(TwitchIE.suitable('twitch.tv/vanillatv')) + self.assertTrue(TwitchIE.suitable('www.twitch.tv/vanillatv')) + self.assertTrue(TwitchIE.suitable('http://www.twitch.tv/vanillatv')) + self.assertTrue(TwitchIE.suitable('http://www.twitch.tv/vanillatv/')) - def test_justintv_videoid_matching(self): - self.assertTrue(JustinTVIE.suitable('http://www.twitch.tv/vanillatv/b/328087483')) + def test_twitch_videoid_matching(self): + self.assertTrue(TwitchIE.suitable('http://www.twitch.tv/vanillatv/b/328087483')) - def test_justin_tv_chapterid_matching(self): - self.assertTrue(JustinTVIE.suitable('http://www.twitch.tv/tsm_theoddone/c/2349361')) + def test_twitch_chapterid_matching(self): + self.assertTrue(TwitchIE.suitable('http://www.twitch.tv/tsm_theoddone/c/2349361')) def test_youtube_extract(self): assertExtractId = lambda url, id: self.assertEqual(YoutubeIE.extract_id(url), id) @@ -99,6 +95,7 @@ class TestAllURLsMatching(unittest.TestCase): def test_facebook_matching(self): self.assertTrue(FacebookIE.suitable('https://www.facebook.com/Shiniknoh#!/photo.php?v=10153317450565268')) + self.assertTrue(FacebookIE.suitable('https://www.facebook.com/cindyweather?fref=ts#!/photo.php?v=10152183998945793')) def test_no_duplicates(self): ies = gen_extractors() @@ -108,7 +105,9 @@ class TestAllURLsMatching(unittest.TestCase): if type(ie).__name__ in ('GenericIE', tc['name'] + 'IE'): self.assertTrue(ie.suitable(url), '%s should match URL %r' % (type(ie).__name__, url)) else: - self.assertFalse(ie.suitable(url), '%s should not match URL %r' % (type(ie).__name__, url)) + self.assertFalse( + ie.suitable(url), + '%s should not match URL %r . That URL belongs to %s.' % (type(ie).__name__, url, tc['name'])) def test_keywords(self): self.assertMatch(':ytsubs', ['youtube:subscriptions']) @@ -140,32 +139,6 @@ class TestAllURLsMatching(unittest.TestCase): self.assertMatch('http://video.pbs.org/viralplayer/2365173446/', ['PBS']) self.assertMatch('http://video.pbs.org/widget/partnerplayer/980042464/', ['PBS']) - def test_ComedyCentralShows(self): - self.assertMatch( - 'http://thedailyshow.cc.com/extended-interviews/xm3fnq/andrew-napolitano-extended-interview', - ['ComedyCentralShows']) - self.assertMatch( - 'http://thecolbertreport.cc.com/videos/29w6fx/-realhumanpraise-for-fox-news', - ['ComedyCentralShows']) - self.assertMatch( - 'http://thecolbertreport.cc.com/videos/gh6urb/neil-degrasse-tyson-pt--1?xrs=eml_col_031114', - ['ComedyCentralShows']) - self.assertMatch( - 'http://thedailyshow.cc.com/guests/michael-lewis/3efna8/exclusive---michael-lewis-extended-interview-pt--3', - ['ComedyCentralShows']) - self.assertMatch( - 'http://thedailyshow.cc.com/episodes/sy7yv0/april-8--2014---denis-leary', - ['ComedyCentralShows']) - self.assertMatch( - 'http://thecolbertreport.cc.com/episodes/8ase07/april-8--2014---jane-goodall', - ['ComedyCentralShows']) - self.assertMatch( - 'http://thedailyshow.cc.com/video-playlists/npde3s/the-daily-show-19088-highlights', - ['ComedyCentralShows']) - self.assertMatch( - 'http://thedailyshow.cc.com/special-editions/2l8fdb/special-edition---a-look-back-at-food', - ['ComedyCentralShows']) - def test_yahoo_https(self): # https://github.com/rg3/youtube-dl/issues/2701 self.assertMatch( diff --git a/test/test_cache.py b/test/test_cache.py new file mode 100644 index 0000000..a161601 --- /dev/null +++ b/test/test_cache.py @@ -0,0 +1,59 @@ +#!/usr/bin/env python +# coding: utf-8 + +from __future__ import unicode_literals + +import shutil + +# Allow direct execution +import os +import sys +import unittest +sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) + + +from test.helper import FakeYDL +from youtube_dl.cache import Cache + + +def _is_empty(d): + return not bool(os.listdir(d)) + + +def _mkdir(d): + if not os.path.exists(d): + os.mkdir(d) + + +class TestCache(unittest.TestCase): + def setUp(self): + TEST_DIR = os.path.dirname(os.path.abspath(__file__)) + TESTDATA_DIR = os.path.join(TEST_DIR, 'testdata') + _mkdir(TESTDATA_DIR) + self.test_dir = os.path.join(TESTDATA_DIR, 'cache_test') + self.tearDown() + + def tearDown(self): + if os.path.exists(self.test_dir): + shutil.rmtree(self.test_dir) + + def test_cache(self): + ydl = FakeYDL({ + 'cachedir': self.test_dir, + }) + c = Cache(ydl) + obj = {'x': 1, 'y': ['ä', '\\a', True]} + self.assertEqual(c.load('test_cache', 'k.'), None) + c.store('test_cache', 'k.', obj) + self.assertEqual(c.load('test_cache', 'k2'), None) + self.assertFalse(_is_empty(self.test_dir)) + self.assertEqual(c.load('test_cache', 'k.'), obj) + self.assertEqual(c.load('test_cache', 'y'), None) + self.assertEqual(c.load('test_cache2', 'k.'), None) + c.remove() + self.assertFalse(os.path.exists(self.test_dir)) + self.assertEqual(c.load('test_cache', 'k.'), None) + + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_download.py b/test/test_download.py index d654058..75e0bb2 100644 --- a/test/test_download.py +++ b/test/test_download.py @@ -7,6 +7,8 @@ import unittest sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) from test.helper import ( + assertGreaterEqual, + expect_warnings, get_params, gettestcases, expect_info_dict, @@ -27,6 +29,7 @@ from youtube_dl.utils import ( compat_HTTPError, DownloadError, ExtractorError, + format_bytes, UnavailableVideoError, ) from youtube_dl.extractor import get_info_extractor @@ -63,15 +66,21 @@ def generator(test_case): def test_template(self): ie = youtube_dl.extractor.get_info_extractor(test_case['name']) other_ies = [get_info_extractor(ie_key) for ie_key in test_case.get('add_ie', [])] + is_playlist = any(k.startswith('playlist') for k in test_case) + test_cases = test_case.get( + 'playlist', [] if is_playlist else [test_case]) + def print_skipping(reason): print('Skipping %s: %s' % (test_case['name'], reason)) if not ie.working(): print_skipping('IE marked as not _WORKING') return - if 'playlist' not in test_case: - info_dict = test_case.get('info_dict', {}) - if not test_case.get('file') and not (info_dict.get('id') and info_dict.get('ext')): + + for tc in test_cases: + info_dict = tc.get('info_dict', {}) + if not tc.get('file') and not (info_dict.get('id') and info_dict.get('ext')): raise Exception('Test definition incorrect. The output file cannot be known. Are both \'id\' and \'ext\' keys present?') + if 'skip' in test_case: print_skipping(test_case['skip']) return @@ -81,6 +90,9 @@ def generator(test_case): return params = get_params(test_case.get('params', {})) + if is_playlist and 'playlist' not in test_case: + params.setdefault('extract_flat', True) + params.setdefault('skip_download', True) ydl = YoutubeDL(params) ydl.add_default_info_extractors() @@ -89,13 +101,16 @@ def generator(test_case): if status['status'] == 'finished': finished_hook_called.add(status['filename']) ydl.add_progress_hook(_hook) + expect_warnings(ydl, test_case.get('expected_warnings', [])) def get_tc_filename(tc): return tc.get('file') or ydl.prepare_filename(tc.get('info_dict', {})) - test_cases = test_case.get('playlist', [test_case]) - def try_rm_tcs_files(): - for tc in test_cases: + res_dict = None + def try_rm_tcs_files(tcs=None): + if tcs is None: + tcs = test_cases + for tc in tcs: tc_filename = get_tc_filename(tc) try_rm(tc_filename) try_rm(tc_filename + '.part') @@ -105,7 +120,10 @@ def generator(test_case): try_num = 1 while True: try: - ydl.download([test_case['url']]) + # We're not using .download here sine that is just a shim + # for outside error handling, and returns the exit code + # instead of the result dict. + res_dict = ydl.extract_info(test_case['url']) except (DownloadError, ExtractorError) as err: # Check if the exception is not a network related one if not err.exc_info[0] in (compat_urllib_error.URLError, socket.timeout, UnavailableVideoError, compat_http_client.BadStatusLine) or (err.exc_info[0] == compat_HTTPError and err.exc_info[1].code == 503): @@ -121,22 +139,66 @@ def generator(test_case): else: break + if is_playlist: + self.assertEqual(res_dict['_type'], 'playlist') + self.assertTrue('entries' in res_dict) + expect_info_dict(self, test_case.get('info_dict', {}), res_dict) + + if 'playlist_mincount' in test_case: + assertGreaterEqual( + self, + len(res_dict['entries']), + test_case['playlist_mincount'], + 'Expected at least %d in playlist %s, but got only %d' % ( + test_case['playlist_mincount'], test_case['url'], + len(res_dict['entries']))) + if 'playlist_count' in test_case: + self.assertEqual( + len(res_dict['entries']), + test_case['playlist_count'], + 'Expected %d entries in playlist %s, but got %d.' % ( + test_case['playlist_count'], + test_case['url'], + len(res_dict['entries']), + )) + if 'playlist_duration_sum' in test_case: + got_duration = sum(e['duration'] for e in res_dict['entries']) + self.assertEqual( + test_case['playlist_duration_sum'], got_duration) + for tc in test_cases: tc_filename = get_tc_filename(tc) if not test_case.get('params', {}).get('skip_download', False): self.assertTrue(os.path.exists(tc_filename), msg='Missing file ' + tc_filename) self.assertTrue(tc_filename in finished_hook_called) + expected_minsize = tc.get('file_minsize', 10000) + if expected_minsize is not None: + if params.get('test'): + expected_minsize = max(expected_minsize, 10000) + got_fsize = os.path.getsize(tc_filename) + assertGreaterEqual( + self, got_fsize, expected_minsize, + 'Expected %s to be at least %s, but it\'s only %s ' % + (tc_filename, format_bytes(expected_minsize), + format_bytes(got_fsize))) + if 'md5' in tc: + md5_for_file = _file_md5(tc_filename) + self.assertEqual(md5_for_file, tc['md5']) info_json_fn = os.path.splitext(tc_filename)[0] + '.info.json' - self.assertTrue(os.path.exists(info_json_fn)) - if 'md5' in tc: - md5_for_file = _file_md5(tc_filename) - self.assertEqual(md5_for_file, tc['md5']) + self.assertTrue( + os.path.exists(info_json_fn), + 'Missing info file %s' % info_json_fn) with io.open(info_json_fn, encoding='utf-8') as infof: info_dict = json.load(infof) expect_info_dict(self, tc.get('info_dict', {}), info_dict) finally: try_rm_tcs_files() + if is_playlist and res_dict is not None and res_dict.get('entries'): + # Remove all other files that may have been extracted if the + # extractor returns full results even with extract_flat + res_tcs = [{'info_dict': e} for e in res_dict['entries']] + try_rm_tcs_files(res_tcs) return test_template diff --git a/test/test_playlists.py b/test/test_playlists.py deleted file mode 100644 index 4f18834..0000000 --- a/test/test_playlists.py +++ /dev/null @@ -1,400 +0,0 @@ -#!/usr/bin/env python -# encoding: utf-8 - -from __future__ import unicode_literals - -# Allow direct execution -import os -import sys -import unittest -sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) - -from test.helper import ( - assertRegexpMatches, - assertGreaterEqual, - expect_info_dict, - FakeYDL, -) - -from youtube_dl.extractor import ( - AcademicEarthCourseIE, - DailymotionPlaylistIE, - DailymotionUserIE, - VimeoChannelIE, - VimeoUserIE, - VimeoAlbumIE, - VimeoGroupsIE, - VineUserIE, - UstreamChannelIE, - SoundcloudSetIE, - SoundcloudUserIE, - SoundcloudPlaylistIE, - TeacherTubeUserIE, - LivestreamIE, - LivestreamOriginalIE, - NHLVideocenterIE, - BambuserChannelIE, - BandcampAlbumIE, - SmotriCommunityIE, - SmotriUserIE, - IviCompilationIE, - ImdbListIE, - KhanAcademyIE, - EveryonesMixtapeIE, - RutubeChannelIE, - RutubePersonIE, - GoogleSearchIE, - GenericIE, - TEDIE, - ToypicsUserIE, - XTubeUserIE, - InstagramUserIE, - CSpanIE, - AolIE, -) - - -class TestPlaylists(unittest.TestCase): - def assertIsPlaylist(self, info): - """Make sure the info has '_type' set to 'playlist'""" - self.assertEqual(info['_type'], 'playlist') - - def test_dailymotion_playlist(self): - dl = FakeYDL() - ie = DailymotionPlaylistIE(dl) - result = ie.extract('http://www.dailymotion.com/playlist/xv4bw_nqtv_sport/1#video=xl8v3q') - self.assertIsPlaylist(result) - self.assertEqual(result['title'], 'SPORT') - self.assertTrue(len(result['entries']) > 20) - - def test_dailymotion_user(self): - dl = FakeYDL() - ie = DailymotionUserIE(dl) - result = ie.extract('https://www.dailymotion.com/user/nqtv') - self.assertIsPlaylist(result) - assertGreaterEqual(self, len(result['entries']), 100) - self.assertEqual(result['title'], 'Rémi Gaillard') - - def test_vimeo_channel(self): - dl = FakeYDL() - ie = VimeoChannelIE(dl) - result = ie.extract('http://vimeo.com/channels/tributes') - self.assertIsPlaylist(result) - self.assertEqual(result['title'], 'Vimeo Tributes') - self.assertTrue(len(result['entries']) > 24) - - def test_vimeo_user(self): - dl = FakeYDL() - ie = VimeoUserIE(dl) - result = ie.extract('http://vimeo.com/nkistudio/videos') - self.assertIsPlaylist(result) - self.assertEqual(result['title'], 'Nki') - self.assertTrue(len(result['entries']) > 65) - - def test_vimeo_album(self): - dl = FakeYDL() - ie = VimeoAlbumIE(dl) - result = ie.extract('http://vimeo.com/album/2632481') - self.assertIsPlaylist(result) - self.assertEqual(result['title'], 'Staff Favorites: November 2013') - self.assertTrue(len(result['entries']) > 12) - - def test_vimeo_groups(self): - dl = FakeYDL() - ie = VimeoGroupsIE(dl) - result = ie.extract('http://vimeo.com/groups/rolexawards') - self.assertIsPlaylist(result) - self.assertEqual(result['title'], 'Rolex Awards for Enterprise') - self.assertTrue(len(result['entries']) > 72) - - def test_vine_user(self): - dl = FakeYDL() - ie = VineUserIE(dl) - result = ie.extract('https://vine.co/Visa') - self.assertIsPlaylist(result) - assertGreaterEqual(self, len(result['entries']), 47) - - def test_ustream_channel(self): - dl = FakeYDL() - ie = UstreamChannelIE(dl) - result = ie.extract('http://www.ustream.tv/channel/channeljapan') - self.assertIsPlaylist(result) - self.assertEqual(result['id'], '10874166') - assertGreaterEqual(self, len(result['entries']), 54) - - def test_soundcloud_set(self): - dl = FakeYDL() - ie = SoundcloudSetIE(dl) - result = ie.extract('https://soundcloud.com/the-concept-band/sets/the-royal-concept-ep') - self.assertIsPlaylist(result) - self.assertEqual(result['title'], 'The Royal Concept EP') - assertGreaterEqual(self, len(result['entries']), 6) - - def test_soundcloud_user(self): - dl = FakeYDL() - ie = SoundcloudUserIE(dl) - result = ie.extract('https://soundcloud.com/the-concept-band') - self.assertIsPlaylist(result) - self.assertEqual(result['id'], '9615865') - assertGreaterEqual(self, len(result['entries']), 12) - - def test_soundcloud_likes(self): - dl = FakeYDL() - ie = SoundcloudUserIE(dl) - result = ie.extract('https://soundcloud.com/the-concept-band/likes') - self.assertIsPlaylist(result) - self.assertEqual(result['id'], '9615865') - assertGreaterEqual(self, len(result['entries']), 1) - - def test_soundcloud_playlist(self): - dl = FakeYDL() - ie = SoundcloudPlaylistIE(dl) - result = ie.extract('http://api.soundcloud.com/playlists/4110309') - self.assertIsPlaylist(result) - self.assertEqual(result['id'], '4110309') - self.assertEqual(result['title'], 'TILT Brass - Bowery Poetry Club, August \'03 [Non-Site SCR 02]') - assertRegexpMatches( - self, result['description'], r'.*?TILT Brass - Bowery Poetry Club') - self.assertEqual(len(result['entries']), 6) - - def test_livestream_event(self): - dl = FakeYDL() - ie = LivestreamIE(dl) - result = ie.extract('http://new.livestream.com/tedx/cityenglish') - self.assertIsPlaylist(result) - self.assertEqual(result['title'], 'TEDCity2.0 (English)') - assertGreaterEqual(self, len(result['entries']), 4) - - def test_livestreamoriginal_folder(self): - dl = FakeYDL() - ie = LivestreamOriginalIE(dl) - result = ie.extract('https://www.livestream.com/newplay/folder?dirId=a07bf706-d0e4-4e75-a747-b021d84f2fd3') - self.assertIsPlaylist(result) - self.assertEqual(result['id'], 'a07bf706-d0e4-4e75-a747-b021d84f2fd3') - assertGreaterEqual(self, len(result['entries']), 28) - - def test_nhl_videocenter(self): - dl = FakeYDL() - ie = NHLVideocenterIE(dl) - result = ie.extract('http://video.canucks.nhl.com/videocenter/console?catid=999') - self.assertIsPlaylist(result) - self.assertEqual(result['id'], '999') - self.assertEqual(result['title'], 'Highlights') - self.assertEqual(len(result['entries']), 12) - - def test_bambuser_channel(self): - dl = FakeYDL() - ie = BambuserChannelIE(dl) - result = ie.extract('http://bambuser.com/channel/pixelversity') - self.assertIsPlaylist(result) - self.assertEqual(result['title'], 'pixelversity') - assertGreaterEqual(self, len(result['entries']), 60) - - def test_bandcamp_album(self): - dl = FakeYDL() - ie = BandcampAlbumIE(dl) - result = ie.extract('http://nightbringer.bandcamp.com/album/hierophany-of-the-open-grave') - self.assertIsPlaylist(result) - self.assertEqual(result['title'], 'Hierophany of the Open Grave') - assertGreaterEqual(self, len(result['entries']), 9) - - def test_smotri_community(self): - dl = FakeYDL() - ie = SmotriCommunityIE(dl) - result = ie.extract('http://smotri.com/community/video/kommuna') - self.assertIsPlaylist(result) - self.assertEqual(result['id'], 'kommuna') - self.assertEqual(result['title'], 'КПРФ') - assertGreaterEqual(self, len(result['entries']), 4) - - def test_smotri_user(self): - dl = FakeYDL() - ie = SmotriUserIE(dl) - result = ie.extract('http://smotri.com/user/inspector') - self.assertIsPlaylist(result) - self.assertEqual(result['id'], 'inspector') - self.assertEqual(result['title'], 'Inspector') - assertGreaterEqual(self, len(result['entries']), 9) - - def test_AcademicEarthCourse(self): - dl = FakeYDL() - ie = AcademicEarthCourseIE(dl) - result = ie.extract('http://academicearth.org/playlists/laws-of-nature/') - self.assertIsPlaylist(result) - self.assertEqual(result['id'], 'laws-of-nature') - self.assertEqual(result['title'], 'Laws of Nature') - self.assertEqual(result['description'],u'Introduce yourself to the laws of nature with these free online college lectures from Yale, Harvard, and MIT.')# u"Today's websites are increasingly dynamic. Pages are no longer static HTML files but instead generated by scripts and database calls. User interfaces are more seamless, with technologies like Ajax replacing traditional page reloads. This course teaches students how to build dynamic websites with Ajax and with Linux, Apache, MySQL, and PHP (LAMP), one of today's most popular frameworks. Students learn how to set up domain names with DNS, how to structure pages with XHTML and CSS, how to program in JavaScript and PHP, how to configure Apache and MySQL, how to design and query databases with SQL, how to use Ajax with both XML and JSON, and how to build mashups. The course explores issues of security, scalability, and cross-browser support and also discusses enterprise-level deployments of websites, including third-party hosting, virtualization, colocation in data centers, firewalling, and load-balancing.") - self.assertEqual(len(result['entries']), 4) - - def test_ivi_compilation(self): - dl = FakeYDL() - ie = IviCompilationIE(dl) - result = ie.extract('http://www.ivi.ru/watch/dvoe_iz_lartsa') - self.assertIsPlaylist(result) - self.assertEqual(result['id'], 'dvoe_iz_lartsa') - self.assertEqual(result['title'], 'Двое из ларца (2006 - 2008)') - assertGreaterEqual(self, len(result['entries']), 24) - - def test_ivi_compilation_season(self): - dl = FakeYDL() - ie = IviCompilationIE(dl) - result = ie.extract('http://www.ivi.ru/watch/dvoe_iz_lartsa/season1') - self.assertIsPlaylist(result) - self.assertEqual(result['id'], 'dvoe_iz_lartsa/season1') - self.assertEqual(result['title'], 'Двое из ларца (2006 - 2008) 1 сезон') - assertGreaterEqual(self, len(result['entries']), 12) - - def test_imdb_list(self): - dl = FakeYDL() - ie = ImdbListIE(dl) - result = ie.extract('http://www.imdb.com/list/JFs9NWw6XI0') - self.assertIsPlaylist(result) - self.assertEqual(result['id'], 'JFs9NWw6XI0') - self.assertEqual(result['title'], 'March 23, 2012 Releases') - self.assertEqual(len(result['entries']), 7) - - def test_khanacademy_topic(self): - dl = FakeYDL() - ie = KhanAcademyIE(dl) - result = ie.extract('https://www.khanacademy.org/math/applied-math/cryptography') - self.assertIsPlaylist(result) - self.assertEqual(result['id'], 'cryptography') - self.assertEqual(result['title'], 'Journey into cryptography') - self.assertEqual(result['description'], 'How have humans protected their secret messages through history? What has changed today?') - assertGreaterEqual(self, len(result['entries']), 3) - - def test_EveryonesMixtape(self): - dl = FakeYDL() - ie = EveryonesMixtapeIE(dl) - result = ie.extract('http://everyonesmixtape.com/#/mix/m7m0jJAbMQi') - self.assertIsPlaylist(result) - self.assertEqual(result['id'], 'm7m0jJAbMQi') - self.assertEqual(result['title'], 'Driving') - self.assertEqual(len(result['entries']), 24) - - def test_rutube_channel(self): - dl = FakeYDL() - ie = RutubeChannelIE(dl) - result = ie.extract('http://rutube.ru/tags/video/1800/') - self.assertIsPlaylist(result) - self.assertEqual(result['id'], '1800') - assertGreaterEqual(self, len(result['entries']), 68) - - def test_rutube_person(self): - dl = FakeYDL() - ie = RutubePersonIE(dl) - result = ie.extract('http://rutube.ru/video/person/313878/') - self.assertIsPlaylist(result) - self.assertEqual(result['id'], '313878') - assertGreaterEqual(self, len(result['entries']), 37) - - def test_multiple_brightcove_videos(self): - # https://github.com/rg3/youtube-dl/issues/2283 - dl = FakeYDL() - ie = GenericIE(dl) - result = ie.extract('http://www.newyorker.com/online/blogs/newsdesk/2014/01/always-never-nuclear-command-and-control.html') - self.assertIsPlaylist(result) - self.assertEqual(result['id'], 'always-never-nuclear-command-and-control') - self.assertEqual(result['title'], 'Always/Never: A Little-Seen Movie About Nuclear Command and Control : The New Yorker') - self.assertEqual(len(result['entries']), 3) - - def test_GoogleSearch(self): - dl = FakeYDL() - ie = GoogleSearchIE(dl) - result = ie.extract('gvsearch15:python language') - self.assertIsPlaylist(result) - self.assertEqual(result['id'], 'python language') - self.assertEqual(result['title'], 'python language') - self.assertEqual(len(result['entries']), 15) - - def test_generic_rss_feed(self): - dl = FakeYDL() - ie = GenericIE(dl) - result = ie.extract('http://phihag.de/2014/youtube-dl/rss.xml') - self.assertIsPlaylist(result) - self.assertEqual(result['id'], 'http://phihag.de/2014/youtube-dl/rss.xml') - self.assertEqual(result['title'], 'Zero Punctuation') - self.assertTrue(len(result['entries']) > 10) - - def test_ted_playlist(self): - dl = FakeYDL() - ie = TEDIE(dl) - result = ie.extract('http://www.ted.com/playlists/who_are_the_hackers') - self.assertIsPlaylist(result) - self.assertEqual(result['id'], '10') - self.assertEqual(result['title'], 'Who are the hackers?') - assertGreaterEqual(self, len(result['entries']), 6) - - def test_toypics_user(self): - dl = FakeYDL() - ie = ToypicsUserIE(dl) - result = ie.extract('http://videos.toypics.net/Mikey') - self.assertIsPlaylist(result) - self.assertEqual(result['id'], 'Mikey') - assertGreaterEqual(self, len(result['entries']), 17) - - def test_xtube_user(self): - dl = FakeYDL() - ie = XTubeUserIE(dl) - result = ie.extract('http://www.xtube.com/community/profile.php?user=greenshowers') - self.assertIsPlaylist(result) - self.assertEqual(result['id'], 'greenshowers') - assertGreaterEqual(self, len(result['entries']), 155) - - def test_InstagramUser(self): - dl = FakeYDL() - ie = InstagramUserIE(dl) - result = ie.extract('http://instagram.com/porsche') - self.assertIsPlaylist(result) - self.assertEqual(result['id'], 'porsche') - assertGreaterEqual(self, len(result['entries']), 2) - test_video = next( - e for e in result['entries'] - if e['id'] == '614605558512799803_462752227') - dl.add_default_extra_info(test_video, ie, '(irrelevant URL)') - dl.process_video_result(test_video, download=False) - EXPECTED = { - 'id': '614605558512799803_462752227', - 'ext': 'mp4', - 'title': '#Porsche Intelligent Performance.', - 'thumbnail': 're:^https?://.*\.jpg', - 'uploader': 'Porsche', - 'uploader_id': 'porsche', - 'timestamp': 1387486713, - 'upload_date': '20131219', - } - expect_info_dict(self, EXPECTED, test_video) - - def test_CSpan_playlist(self): - dl = FakeYDL() - ie = CSpanIE(dl) - result = ie.extract( - 'http://www.c-span.org/video/?318608-1/gm-ignition-switch-recall') - self.assertIsPlaylist(result) - self.assertEqual(result['id'], '342759') - self.assertEqual( - result['title'], 'General Motors Ignition Switch Recall') - whole_duration = sum(e['duration'] for e in result['entries']) - self.assertEqual(whole_duration, 14855) - - def test_aol_playlist(self): - dl = FakeYDL() - ie = AolIE(dl) - result = ie.extract( - 'http://on.aol.com/playlist/brace-yourself---todays-weirdest-news-152147?icid=OnHomepageC4_Omg_Img#_videoid=518184316') - self.assertIsPlaylist(result) - self.assertEqual(result['id'], '152147') - self.assertEqual( - result['title'], 'Brace Yourself - Today\'s Weirdest News') - assertGreaterEqual(self, len(result['entries']), 10) - - def test_TeacherTubeUser(self): - dl = FakeYDL() - ie = TeacherTubeUserIE(dl) - result = ie.extract('http://www.teachertube.com/user/profile/rbhagwati2') - self.assertIsPlaylist(result) - self.assertEqual(result['id'], 'rbhagwati2') - assertGreaterEqual(self, len(result['entries']), 179) - -if __name__ == '__main__': - unittest.main() diff --git a/test/test_subtitles.py b/test/test_subtitles.py index 48c3021..8f4602e 100644 --- a/test/test_subtitles.py +++ b/test/test_subtitles.py @@ -15,6 +15,7 @@ from youtube_dl.extractor import ( DailymotionIE, TEDIE, VimeoIE, + WallaIE, ) @@ -279,5 +280,32 @@ class TestVimeoSubtitles(BaseTestSubtitles): self.assertTrue(subtitles.get(lang) is not None, u'Subtitles for \'%s\' not extracted' % lang) +class TestWallaSubtitles(BaseTestSubtitles): + url = 'http://vod.walla.co.il/movie/2705958/the-yes-men' + IE = WallaIE + + def test_list_subtitles(self): + self.DL.expect_warning(u'Automatic Captions not supported by this server') + self.DL.params['listsubtitles'] = True + info_dict = self.getInfoDict() + self.assertEqual(info_dict, None) + + def test_allsubtitles(self): + self.DL.expect_warning(u'Automatic Captions not supported by this server') + self.DL.params['writesubtitles'] = True + self.DL.params['allsubtitles'] = True + subtitles = self.getSubtitles() + self.assertEqual(set(subtitles.keys()), set(['heb'])) + self.assertEqual(md5(subtitles['heb']), 'e758c5d7cb982f6bef14f377ec7a3920') + + def test_nosubtitles(self): + self.DL.expect_warning(u'video doesn\'t have subtitles') + self.url = 'http://vod.walla.co.il/movie/2642630/one-direction-all-for-one' + self.DL.params['writesubtitles'] = True + self.DL.params['allsubtitles'] = True + subtitles = self.getSubtitles() + self.assertEqual(len(subtitles), 0) + + if __name__ == '__main__': unittest.main() diff --git a/test/test_utils.py b/test/test_utils.py index 51eb0b6..0b31d1a 100644 --- a/test/test_utils.py +++ b/test/test_utils.py @@ -1,6 +1,8 @@ #!/usr/bin/env python # coding: utf-8 +from __future__ import unicode_literals + # Allow direct execution import os import sys @@ -13,7 +15,6 @@ import io import json import xml.etree.ElementTree -#from youtube_dl.utils import htmlentity_transform from youtube_dl.utils import ( DateRange, encodeFilename, @@ -21,7 +22,8 @@ from youtube_dl.utils import ( fix_xml_ampersands, get_meta_content, orderedSet, - PagedList, + OnDemandPagedList, + InAdvancePagedList, parse_duration, read_batch_urls, sanitize_filename, @@ -39,13 +41,15 @@ from youtube_dl.utils import ( parse_iso8601, strip_jsonp, uppercase_escape, + limit_length, + escape_rfc3986, + escape_url, + js_to_json, + get_filesystem_encoding, + compat_getenv, + compat_expanduser, ) -if sys.version_info < (3, 0): - _compat_str = lambda b: b.decode('unicode-escape') -else: - _compat_str = lambda s: s - class TestUtil(unittest.TestCase): def test_timeconvert(self): @@ -67,9 +71,9 @@ class TestUtil(unittest.TestCase): self.assertEqual('this - that', sanitize_filename('this: that')) self.assertEqual(sanitize_filename('AT&T'), 'AT&T') - aumlaut = _compat_str('\xe4') + aumlaut = 'ä' self.assertEqual(sanitize_filename(aumlaut), aumlaut) - tests = _compat_str('\u043a\u0438\u0440\u0438\u043b\u043b\u0438\u0446\u0430') + tests = '\u043a\u0438\u0440\u0438\u043b\u043b\u0438\u0446\u0430' self.assertEqual(sanitize_filename(tests), tests) forbidden = '"\0\\/' @@ -91,9 +95,9 @@ class TestUtil(unittest.TestCase): self.assertEqual('yes_no', sanitize_filename('yes? no', restricted=True)) self.assertEqual('this_-_that', sanitize_filename('this: that', restricted=True)) - tests = _compat_str('a\xe4b\u4e2d\u56fd\u7684c') + tests = 'a\xe4b\u4e2d\u56fd\u7684c' self.assertEqual(sanitize_filename(tests, restricted=True), 'a_b_c') - self.assertTrue(sanitize_filename(_compat_str('\xf6'), restricted=True) != '') # No empty filename + self.assertTrue(sanitize_filename('\xf6', restricted=True) != '') # No empty filename forbidden = '"\0\\/&!: \'\t\n()[]{}$;`^,#' for fc in forbidden: @@ -101,8 +105,8 @@ class TestUtil(unittest.TestCase): self.assertTrue(fbc not in sanitize_filename(fc, restricted=True)) # Handle a common case more neatly - self.assertEqual(sanitize_filename(_compat_str('\u5927\u58f0\u5e26 - Song'), restricted=True), 'Song') - self.assertEqual(sanitize_filename(_compat_str('\u603b\u7edf: Speech'), restricted=True), 'Speech') + self.assertEqual(sanitize_filename('\u5927\u58f0\u5e26 - Song', restricted=True), 'Song') + self.assertEqual(sanitize_filename('\u603b\u7edf: Speech', restricted=True), 'Speech') # .. but make sure the file name is never empty self.assertTrue(sanitize_filename('-', restricted=True) != '') self.assertTrue(sanitize_filename(':', restricted=True) != '') @@ -120,7 +124,9 @@ class TestUtil(unittest.TestCase): self.assertEqual(orderedSet([135, 1, 1, 1]), [135, 1]) def test_unescape_html(self): - self.assertEqual(unescapeHTML(_compat_str('%20;')), _compat_str('%20;')) + self.assertEqual(unescapeHTML('%20;'), '%20;') + self.assertEqual( + unescapeHTML('é'), 'é') def test_daterange(self): _20century = DateRange("19000101","20000101") @@ -136,9 +142,10 @@ class TestUtil(unittest.TestCase): self.assertEqual(unified_strdate('Dec 14, 2012'), '20121214') self.assertEqual(unified_strdate('2012/10/11 01:56:38 +0000'), '20121011') self.assertEqual(unified_strdate('1968-12-10'), '19681210') + self.assertEqual(unified_strdate('28/01/2014 21:00:00 +0100'), '20140128') def test_find_xpath_attr(self): - testxml = u''' + testxml = ''' @@ -151,18 +158,18 @@ class TestUtil(unittest.TestCase): self.assertEqual(find_xpath_attr(doc, './/node', 'y', 'c'), doc[2]) def test_meta_parser(self): - testhtml = u''' + testhtml = ''' ''' get_meta = lambda name: get_meta_content(name, testhtml) - self.assertEqual(get_meta('description'), u'foo & bar') + self.assertEqual(get_meta('description'), 'foo & bar') self.assertEqual(get_meta('author'), 'Plato') def test_xpath_with_ns(self): - testxml = u''' + testxml = ''' The Author http://server.com/download.mp3 @@ -171,8 +178,8 @@ class TestUtil(unittest.TestCase): doc = xml.etree.ElementTree.fromstring(testxml) find = lambda p: doc.find(xpath_with_ns(p, {'media': 'http://example.com/'})) self.assertTrue(find('media:song') is not None) - self.assertEqual(find('media:song/media:author').text, u'The Author') - self.assertEqual(find('media:song/url').text, u'http://server.com/download.mp3') + self.assertEqual(find('media:song/media:author').text, 'The Author') + self.assertEqual(find('media:song/url').text, 'http://server.com/download.mp3') def test_smuggle_url(self): data = {u"ö": u"ö", u"abc": [3]} @@ -187,22 +194,22 @@ class TestUtil(unittest.TestCase): self.assertEqual(res_data, None) def test_shell_quote(self): - args = ['ffmpeg', '-i', encodeFilename(u'ñ€ß\'.mp4')] - self.assertEqual(shell_quote(args), u"""ffmpeg -i 'ñ€ß'"'"'.mp4'""") + args = ['ffmpeg', '-i', encodeFilename('ñ€ß\'.mp4')] + self.assertEqual(shell_quote(args), """ffmpeg -i 'ñ€ß'"'"'.mp4'""") def test_str_to_int(self): self.assertEqual(str_to_int('123,456'), 123456) self.assertEqual(str_to_int('123.456'), 123456) def test_url_basename(self): - self.assertEqual(url_basename(u'http://foo.de/'), u'') - self.assertEqual(url_basename(u'http://foo.de/bar/baz'), u'baz') - self.assertEqual(url_basename(u'http://foo.de/bar/baz?x=y'), u'baz') - self.assertEqual(url_basename(u'http://foo.de/bar/baz#x=y'), u'baz') - self.assertEqual(url_basename(u'http://foo.de/bar/baz/'), u'baz') + self.assertEqual(url_basename('http://foo.de/'), '') + self.assertEqual(url_basename('http://foo.de/bar/baz'), 'baz') + self.assertEqual(url_basename('http://foo.de/bar/baz?x=y'), 'baz') + self.assertEqual(url_basename('http://foo.de/bar/baz#x=y'), 'baz') + self.assertEqual(url_basename('http://foo.de/bar/baz/'), 'baz') self.assertEqual( - url_basename(u'http://media.w3.org/2010/05/sintel/trailer.mp4'), - u'trailer.mp4') + url_basename('http://media.w3.org/2010/05/sintel/trailer.mp4'), + 'trailer.mp4') def test_parse_duration(self): self.assertEqual(parse_duration(None), None) @@ -213,12 +220,16 @@ class TestUtil(unittest.TestCase): self.assertEqual(parse_duration('00:01:01'), 61) self.assertEqual(parse_duration('x:y'), None) self.assertEqual(parse_duration('3h11m53s'), 11513) + self.assertEqual(parse_duration('3h 11m 53s'), 11513) + self.assertEqual(parse_duration('3 hours 11 minutes 53 seconds'), 11513) + self.assertEqual(parse_duration('3 hours 11 mins 53 secs'), 11513) self.assertEqual(parse_duration('62m45s'), 3765) self.assertEqual(parse_duration('6m59s'), 419) self.assertEqual(parse_duration('49s'), 49) self.assertEqual(parse_duration('0h0m0s'), 0) self.assertEqual(parse_duration('0m0s'), 0) self.assertEqual(parse_duration('0s'), 0) + self.assertEqual(parse_duration('01:02:03.05'), 3723.05) def test_fix_xml_ampersands(self): self.assertEqual( @@ -241,10 +252,14 @@ class TestUtil(unittest.TestCase): for i in range(firstid, upto): yield i - pl = PagedList(get_page, pagesize) + pl = OnDemandPagedList(get_page, pagesize) got = pl.getslice(*sliceargs) self.assertEqual(got, expected) + iapl = InAdvancePagedList(get_page, size // pagesize + 1, pagesize) + got = iapl.getslice(*sliceargs) + self.assertEqual(got, expected) + testPL(5, 2, (), [0, 1, 2, 3, 4]) testPL(5, 2, (1,), [1, 2, 3, 4]) testPL(5, 2, (2,), [2, 3, 4]) @@ -255,16 +270,16 @@ class TestUtil(unittest.TestCase): testPL(5, 2, (20, 99), []) def test_struct_unpack(self): - self.assertEqual(struct_unpack(u'!B', b'\x00'), (0,)) + self.assertEqual(struct_unpack('!B', b'\x00'), (0,)) def test_read_batch_urls(self): - f = io.StringIO(u'''\xef\xbb\xbf foo + f = io.StringIO('''\xef\xbb\xbf foo bar\r baz # More after this line\r ; or after this bam''') - self.assertEqual(read_batch_urls(f), [u'foo', u'bar', u'baz', u'bam']) + self.assertEqual(read_batch_urls(f), ['foo', 'bar', 'baz', 'bam']) def test_urlencode_postdata(self): data = urlencode_postdata({'username': 'foo@bar.com', 'password': '1234'}) @@ -274,15 +289,87 @@ class TestUtil(unittest.TestCase): self.assertEqual(parse_iso8601('2014-03-23T23:04:26+0100'), 1395612266) self.assertEqual(parse_iso8601('2014-03-23T22:04:26+0000'), 1395612266) self.assertEqual(parse_iso8601('2014-03-23T22:04:26Z'), 1395612266) + self.assertEqual(parse_iso8601('2014-03-23T22:04:26.1234Z'), 1395612266) def test_strip_jsonp(self): stripped = strip_jsonp('cb ([ {"id":"532cb",\n\n\n"x":\n3}\n]\n);') d = json.loads(stripped) self.assertEqual(d, [{"id": "532cb", "x": 3}]) - def test_uppercase_escpae(self): - self.assertEqual(uppercase_escape(u'aä'), u'aä') - self.assertEqual(uppercase_escape(u'\\U0001d550'), u'𝕐') + def test_uppercase_escape(self): + self.assertEqual(uppercase_escape('aä'), 'aä') + self.assertEqual(uppercase_escape('\\U0001d550'), '𝕐') + + def test_limit_length(self): + self.assertEqual(limit_length(None, 12), None) + self.assertEqual(limit_length('foo', 12), 'foo') + self.assertTrue( + limit_length('foo bar baz asd', 12).startswith('foo bar')) + self.assertTrue('...' in limit_length('foo bar baz asd', 12)) + + def test_escape_rfc3986(self): + reserved = "!*'();:@&=+$,/?#[]" + unreserved = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_.~' + self.assertEqual(escape_rfc3986(reserved), reserved) + self.assertEqual(escape_rfc3986(unreserved), unreserved) + self.assertEqual(escape_rfc3986('тест'), '%D1%82%D0%B5%D1%81%D1%82') + self.assertEqual(escape_rfc3986('%D1%82%D0%B5%D1%81%D1%82'), '%D1%82%D0%B5%D1%81%D1%82') + self.assertEqual(escape_rfc3986('foo bar'), 'foo%20bar') + self.assertEqual(escape_rfc3986('foo%20bar'), 'foo%20bar') + + def test_escape_url(self): + self.assertEqual( + escape_url('http://wowza.imust.org/srv/vod/telemb/new/UPLOAD/UPLOAD/20224_IncendieHavré_FD.mp4'), + 'http://wowza.imust.org/srv/vod/telemb/new/UPLOAD/UPLOAD/20224_IncendieHavre%CC%81_FD.mp4' + ) + self.assertEqual( + escape_url('http://www.ardmediathek.de/tv/Sturm-der-Liebe/Folge-2036-Zu-Mann-und-Frau-erklärt/Das-Erste/Video?documentId=22673108&bcastId=5290'), + 'http://www.ardmediathek.de/tv/Sturm-der-Liebe/Folge-2036-Zu-Mann-und-Frau-erkl%C3%A4rt/Das-Erste/Video?documentId=22673108&bcastId=5290' + ) + self.assertEqual( + escape_url('http://тест.рф/фрагмент'), + 'http://тест.рф/%D1%84%D1%80%D0%B0%D0%B3%D0%BC%D0%B5%D0%BD%D1%82' + ) + self.assertEqual( + escape_url('http://тест.рф/абв?абв=абв#абв'), + 'http://тест.рф/%D0%B0%D0%B1%D0%B2?%D0%B0%D0%B1%D0%B2=%D0%B0%D0%B1%D0%B2#%D0%B0%D0%B1%D0%B2' + ) + self.assertEqual(escape_url('http://vimeo.com/56015672#at=0'), 'http://vimeo.com/56015672#at=0') + + def test_js_to_json_realworld(self): + inp = '''{ + 'clip':{'provider':'pseudo'} + }''' + self.assertEqual(js_to_json(inp), '''{ + "clip":{"provider":"pseudo"} + }''') + json.loads(js_to_json(inp)) + + inp = '''{ + 'playlist':[{'controls':{'all':null}}] + }''' + self.assertEqual(js_to_json(inp), '''{ + "playlist":[{"controls":{"all":null}}] + }''') + + def test_js_to_json_edgecases(self): + on = js_to_json("{abc_def:'1\\'\\\\2\\\\\\'3\"4'}") + self.assertEqual(json.loads(on), {"abc_def": "1'\\2\\'3\"4"}) + + on = js_to_json('{"abc": true}') + self.assertEqual(json.loads(on), {'abc': True}) + + def test_compat_getenv(self): + test_str = 'тест' + os.environ['YOUTUBE-DL-TEST'] = (test_str if sys.version_info >= (3, 0) + else test_str.encode(get_filesystem_encoding())) + self.assertEqual(compat_getenv('YOUTUBE-DL-TEST'), test_str) + + def test_compat_expanduser(self): + test_str = 'C:\Documents and Settings\тест\Application Data' + os.environ['HOME'] = (test_str if sys.version_info >= (3, 0) + else test_str.encode(get_filesystem_encoding())) + self.assertEqual(compat_expanduser('~'), test_str) if __name__ == '__main__': unittest.main() diff --git a/test/test_youtube_lists.py b/test/test_youtube_lists.py index 3aadedd..410f9ed 100644 --- a/test/test_youtube_lists.py +++ b/test/test_youtube_lists.py @@ -10,7 +10,6 @@ from test.helper import FakeYDL from youtube_dl.extractor import ( - YoutubeUserIE, YoutubePlaylistIE, YoutubeIE, YoutubeChannelIE, @@ -25,15 +24,6 @@ class TestYoutubeLists(unittest.TestCase): """Make sure the info has '_type' set to 'playlist'""" self.assertEqual(info['_type'], 'playlist') - def test_youtube_playlist(self): - dl = FakeYDL() - ie = YoutubePlaylistIE(dl) - result = ie.extract('https://www.youtube.com/playlist?list=PLwiyx1dc3P2JR9N8gQaQN_BCvlSlap7re') - self.assertIsPlaylist(result) - self.assertEqual(result['title'], 'ytdl test PL') - ytie_results = [YoutubeIE().extract_id(url['url']) for url in result['entries']] - self.assertEqual(ytie_results, [ 'bV9L5Ht9LgY', 'FXxLjLQi3Fg', 'tU3Bgo5qJZE']) - def test_youtube_playlist_noplaylist(self): dl = FakeYDL() dl.params['noplaylist'] = True @@ -41,36 +31,7 @@ class TestYoutubeLists(unittest.TestCase): result = ie.extract('https://www.youtube.com/watch?v=FXxLjLQi3Fg&list=PLwiyx1dc3P2JR9N8gQaQN_BCvlSlap7re') self.assertEqual(result['_type'], 'url') self.assertEqual(YoutubeIE().extract_id(result['url']), 'FXxLjLQi3Fg') - - def test_issue_673(self): - dl = FakeYDL() - ie = YoutubePlaylistIE(dl) - result = ie.extract('PLBB231211A4F62143') - self.assertTrue(len(result['entries']) > 25) - - def test_youtube_playlist_long(self): - dl = FakeYDL() - ie = YoutubePlaylistIE(dl) - result = ie.extract('https://www.youtube.com/playlist?list=UUBABnxM4Ar9ten8Mdjj1j0Q') - self.assertIsPlaylist(result) - self.assertTrue(len(result['entries']) >= 799) - - def test_youtube_playlist_with_deleted(self): - #651 - dl = FakeYDL() - ie = YoutubePlaylistIE(dl) - result = ie.extract('https://www.youtube.com/playlist?list=PLwP_SiAcdui0KVebT0mU9Apz359a4ubsC') - ytie_results = [YoutubeIE().extract_id(url['url']) for url in result['entries']] - self.assertFalse('pElCt5oNDuI' in ytie_results) - self.assertFalse('KdPEApIVdWM' in ytie_results) - - def test_youtube_playlist_empty(self): - dl = FakeYDL() - ie = YoutubePlaylistIE(dl) - result = ie.extract('https://www.youtube.com/playlist?list=PLtPgu7CB4gbZDA7i_euNxn75ISqxwZPYx') - self.assertIsPlaylist(result) - self.assertEqual(len(result['entries']), 0) - + def test_youtube_course(self): dl = FakeYDL() ie = YoutubePlaylistIE(dl) @@ -81,34 +42,6 @@ class TestYoutubeLists(unittest.TestCase): self.assertEqual(len(entries), 25) self.assertEqual(YoutubeIE().extract_id(entries[-1]['url']), 'rYefUsYuEp0') - def test_youtube_channel(self): - dl = FakeYDL() - ie = YoutubeChannelIE(dl) - #test paginated channel - result = ie.extract('https://www.youtube.com/channel/UCKfVa3S1e4PHvxWcwyMMg8w') - self.assertTrue(len(result['entries']) > 90) - #test autogenerated channel - result = ie.extract('https://www.youtube.com/channel/HCtnHdj3df7iM/videos') - self.assertTrue(len(result['entries']) >= 18) - - def test_youtube_user(self): - dl = FakeYDL() - ie = YoutubeUserIE(dl) - result = ie.extract('https://www.youtube.com/user/TheLinuxFoundation') - self.assertTrue(len(result['entries']) >= 320) - - def test_youtube_safe_search(self): - dl = FakeYDL() - ie = YoutubePlaylistIE(dl) - result = ie.extract('PLtPgu7CB4gbY9oDN3drwC3cMbJggS7dKl') - self.assertEqual(len(result['entries']), 2) - - def test_youtube_show(self): - dl = FakeYDL() - ie = YoutubeShowIE(dl) - result = ie.extract('http://www.youtube.com/show/airdisasters') - self.assertTrue(len(result) >= 3) - def test_youtube_mix(self): dl = FakeYDL() ie = YoutubePlaylistIE(dl) @@ -127,21 +60,5 @@ class TestYoutubeLists(unittest.TestCase): entries = result['entries'] self.assertEqual(len(entries), 100) - def test_youtube_toplist(self): - dl = FakeYDL() - ie = YoutubeTopListIE(dl) - result = ie.extract('yttoplist:music:Trending') - entries = result['entries'] - self.assertTrue(len(entries) >= 5) - - def test_youtube_search_url(self): - dl = FakeYDL() - ie = YoutubeSearchURLIE(dl) - result = ie.extract('https://www.youtube.com/results?baz=bar&search_query=youtube-dl+test+video&filters=video&lclk=video') - entries = result['entries'] - self.assertIsPlaylist(result) - self.assertEqual(result['title'], 'youtube-dl test video') - self.assertTrue(len(entries) >= 5) - if __name__ == '__main__': unittest.main() diff --git a/test/test_youtube_signature.py b/test/test_youtube_signature.py index 604e76a..df2cb09 100644 --- a/test/test_youtube_signature.py +++ b/test/test_youtube_signature.py @@ -47,18 +47,6 @@ _TESTS = [ '2ACFC7A61CA478CD21425E5A57EBD73DDC78E22A.2094302436B2D377D14A3BBA23022D023B8BC25AA', 'A52CB8B320D22032ABB3A41D773D2B6342034902.A22E87CDD37DBE75A5E52412DC874AC16A7CFCA2', ), - ( - 'http://s.ytimg.com/yts/swfbin/player-vfl5vIhK2/watch_as3.swf', - 'swf', - 86, - 'O1I3456789abcde0ghijklmnopqrstuvwxyzABCDEFGHfJKLMN2PQRSTUVWXY\\!"#$%&\'()*+,-./:;<=>?' - ), - ( - 'http://s.ytimg.com/yts/swfbin/player-vflmDyk47/watch_as3.swf', - 'swf', - 'F375F75BF2AFDAAF2666E43868D46816F83F13E81C46.3725A8218E446A0DECD33F79DC282994D6AA92C92C9', - '9C29AA6D499282CD97F33DCED0A644E8128A5273.64C18E31F38361864D86834E6662FAADFA2FB57F' - ), ( 'https://s.ytimg.com/yts/jsbin/html5player-en_US-vflBb0OQx.js', 'js', diff --git a/youtube-dl b/youtube-dl index bb583eaecbe95b7b66fe932698c50e9a882e91e8..047821748ea9867afe2d2fc1d093be87f3aca373 100755 GIT binary patch delta 432421 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%0A71`=9b^!$$A-qd88m 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ⅈFi!Y&2;S51XbNDV?i(OC@ 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%0DAU599` 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⪚XUU(V~a4BarJ?@Av-;U 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

-(|}IQ<>Y4CR`A1_zMUW; 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 z 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[0\-9]+)\[aq] \ \ \ \ _TEST\ =\ { \ \ \ \ \ \ \ \ \[aq]url\[aq]:\ \[aq]http://yourextractor.com/watch/42\[aq], -\ \ \ \ \ \ \ \ \[aq]md5\[aq]:\ \[aq]TODO:\ md5\ sum\ of\ the\ first\ 10KiB\ of\ the\ video\ file\[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]:\ \[aq]re:^https?://.*\\.jpg$\[aq], \ \ \ \ \ \ \ \ \ \ \ \ #\ TODO\ more\ properties,\ either\ as: \ \ \ \ \ \ \ \ \ \ \ \ #\ *\ A\ value \ \ \ \ \ \ \ \ \ \ \ \ #\ *\ MD5\ checksum;\ start\ the\ string\ with\ md5: @@ -550,8 +635,7 @@ class\ YourExtractorIE(InfoExtractor): \ \ \ \ } \ \ \ \ def\ _real_extract(self,\ url): -\ \ \ \ \ \ \ \ mobj\ =\ re.match(self._VALID_URL,\ url) -\ \ \ \ \ \ \ \ video_id\ =\ mobj.group(\[aq]id\[aq]) +\ \ \ \ \ \ \ \ video_id\ =\ self._match_id(url) \ \ \ \ \ \ \ \ #\ TODO\ more\ code\ goes\ here,\ for\ example\ ... \ \ \ \ \ \ \ \ webpage\ =\ self._download_webpage(url,\ video_id) @@ -573,6 +657,12 @@ 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 be 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/common/extractor/common.py\f[] (https://github.com/rg3/youtube-dl/blob/master/youtube_dl/extractor/common.py) @@ -609,6 +699,31 @@ 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! +.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] +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 what can be done, have a look at +youtube_dl/YoutubeDL.py (https://github.com/rg3/youtube-dl/blob/master/youtube_dl/YoutubeDL.py#L69). +For a start, if you want to intercept youtube\-dl\[aq]s output, set a +\f[C]logger\f[] object. .SH BUGS .PP Bugs and suggestions should be reported at: diff --git a/youtube-dl.bash-completion b/youtube-dl.bash-completion index 4077a16..9ee1b7a 100644 --- a/youtube-dl.bash-completion +++ b/youtube-dl.bash-completion @@ -4,7 +4,7 @@ __youtube_dl() COMPREPLY=() cur="${COMP_WORDS[COMP_CWORD]}" prev="${COMP_WORDS[COMP_CWORD-1]}" - opts="--help --version --update --ignore-errors --abort-on-error --dump-user-agent --list-extractors --extractor-descriptions --proxy --socket-timeout --default-search --ignore-config --playlist-start --playlist-end --match-title --reject-title --max-downloads --min-filesize --max-filesize --date --datebefore --dateafter --min-views --max-views --no-playlist --age-limit --download-archive --include-ads --youtube-include-dash-manifest --rate-limit --retries --buffer-size --no-resize-buffer --test --batch-file --id --auto-number --output --autonumber-size --restrict-filenames --title --literal --no-overwrites --continue --no-continue --no-part --no-mtime --write-description --write-info-json --write-annotations --write-thumbnail --load-info --cookies --cache-dir --no-cache-dir --rm-cache-dir --quiet --no-warnings --simulate --skip-download --get-url --get-title --get-id --get-thumbnail --get-description --get-duration --get-filename --get-format --dump-json --newline --no-progress --console-title --verbose --dump-intermediate-pages --write-pages --youtube-print-sig-code --print-traffic --encoding --no-check-certificate --prefer-insecure --user-agent --referer --add-header --bidi-workaround --format --all-formats --prefer-free-formats --max-quality --list-formats --write-sub --write-auto-sub --all-subs --list-subs --sub-format --sub-lang --username --password --netrc --video-password --extract-audio --audio-format --audio-quality --recode-video --keep-video --no-post-overwrites --embed-subs --embed-thumbnail --add-metadata --xattrs --prefer-avconv --prefer-ffmpeg" + opts="--help --version --update --ignore-errors --abort-on-error --dump-user-agent --list-extractors --extractor-descriptions --proxy --socket-timeout --default-search --ignore-config --flat-playlist --playlist-start --playlist-end --match-title --reject-title --max-downloads --min-filesize --max-filesize --date --datebefore --dateafter --min-views --max-views --no-playlist --age-limit --download-archive --include-ads --rate-limit --retries --buffer-size --no-resize-buffer --test --batch-file --id --auto-number --output --autonumber-size --restrict-filenames --title --literal --no-overwrites --continue --no-continue --no-part --no-mtime --write-description --write-info-json --write-annotations --write-thumbnail --load-info --cookies --cache-dir --no-cache-dir --rm-cache-dir --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 --newline --no-progress --console-title --verbose --dump-intermediate-pages --write-pages --youtube-print-sig-code --print-traffic --encoding --no-check-certificate --prefer-insecure --user-agent --referer --add-header --bidi-workaround --format --all-formats --prefer-free-formats --max-quality --list-formats --youtube-include-dash-manifest --youtube-skip-dash-manifest --write-sub --write-auto-sub --all-subs --list-subs --sub-format --sub-lang --username --password --twofactor --netrc --video-password --extract-audio --audio-format --audio-quality --recode-video --keep-video --no-post-overwrites --embed-subs --embed-thumbnail --add-metadata --xattrs --prefer-avconv --prefer-ffmpeg --exec" keywords=":ytfavorites :ytrecommended :ytsubscriptions :ytwatchlater :ythistory" fileopts="-a|--batch-file|--download-archive|--cookies|--load-info" diropts="--cache-dir" diff --git a/youtube-dl.fish b/youtube-dl.fish new file mode 100644 index 0000000..bf9bae6 --- /dev/null +++ b/youtube-dl.fish @@ -0,0 +1,120 @@ + +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 and the URLs they would handle' +complete --command youtube-dl --long-option extractor-descriptions --description 'Output descriptions of all supported extractors' +complete --command youtube-dl --long-option proxy --description 'Use the specified HTTP/HTTPS proxy. 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 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.conf (%APPDATA%/youtube-dl/config.txt on Windows)' +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 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 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 no-playlist --description 'download only the currently playing video' +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 rate-limit --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)' +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 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 auto-number --short-option A --description 'number downloaded files starting from 00000' +complete --command youtube-dl --long-option output --short-option o --description 'output filename template. Use %(title)s to get the title, %(uploader)s for the uploader name, %(uploader_id)s for the uploader nickname if different, %(autonumber)s to get an automatically incremented number, %(ext)s for the filename extension, %(format)s for the format description (like "22 - 1280x720" or "HD"), %(format_id)s for the unique id of the format (like Youtube'"'"'s itags: "137"), %(upload_date)s for the upload date (YYYYMMDD), %(extractor)s for the provider (youtube, metacafe, etc), %(id)s for the video id, %(playlist)s for the playlist the video is in, %(playlist_index)s for the position in the playlist and %% for a literal percent. %(height)s and %(width)s for the width and height of the video format. %(resolution)s for a textual description of the resolution of the video format. Use - to output to stdout. Can also be used to download to a different directory, for example with -o '"'"'/my/downloads/%(uploader)s/%(title)s-%(id)s.%(ext)s'"'"' .' +complete --command youtube-dl --long-option autonumber-size --description 'Specifies the number of digits in %(autonumber)s when it is present in output filename template or --auto-number option is given' +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 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 .annotation file' +complete --command youtube-dl --long-option write-thumbnail --description 'write thumbnail image to disk' +complete --command youtube-dl --long-option load-info --description 'json file containing the video information (created with the "--write-json" option)' --require-parameter +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 quiet --short-option q --description 'activates 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 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-intermediate-pages --description 'print downloaded pages 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 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 format --short-option f --description 'video format code, specify the order of preference using slashes: -f 22/17/18 . -f mp4 , -f m4a and -f flv are also supported. You can also use the special names "best", "bestvideo", "bestaudio", "worst", "worstvideo" and "worstaudio". By default, youtube-dl will pick the best quality. Use commas to download multiple audio formats, such as -f 136/137/mp4/bestvideo,140/m4a/bestaudio' +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 max-quality --description 'highest quality format to download' +complete --command youtube-dl --long-option list-formats --short-option F --description 'list all available formats' +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 manifest on YouTube videos' +complete --command youtube-dl --long-option write-sub --description 'write subtitle file' +complete --command youtube-dl --long-option write-auto-sub --description 'write automatic subtitle file (youtube only)' +complete --command youtube-dl --long-option all-subs --description 'downloads all the available subtitles of the video' +complete --command youtube-dl --long-option list-subs --description 'lists all available subtitles for the video' +complete --command youtube-dl --long-option sub-format --description 'subtitle format (default=srt) ([sbv/vtt] youtube only)' +complete --command youtube-dl --long-option sub-lang --description 'languages of the subtitles to download (optional) separated by commas, use IETF language tags like '"'"'en,pt'"'"'' +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' +complete --command youtube-dl --long-option twofactor --short-option 2 --description 'two-factor auth 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)' +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 '"best", "aac", "vorbis", "mp3", "m4a", "opus", or "wav"; "%default" by default' +complete --command youtube-dl --long-option audio-quality --description 'ffmpeg/avconv audio quality specification, 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)' --arguments 'mp4 flv ogg webm mkv' --exclusive +complete --command youtube-dl --long-option keep-video --short-option k --description 'keeps 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 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 xattrs --description 'write metadata to the video file'"'"'s xattrs (using dublin core and xdg standards)' +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 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 --arguments ":ytfavorites :ytrecommended :ytsubscriptions :ytwatchlater :ythistory" diff --git a/youtube-dl.zsh b/youtube-dl.zsh new file mode 100644 index 0000000..af7a61a --- /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|--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 --proxy --socket-timeout --default-search --ignore-config --flat-playlist --playlist-start --playlist-end --match-title --reject-title --max-downloads --min-filesize --max-filesize --date --datebefore --dateafter --min-views --max-views --no-playlist --age-limit --download-archive --include-ads --rate-limit --retries --buffer-size --no-resize-buffer --test --batch-file --id --auto-number --output --autonumber-size --restrict-filenames --title --literal --no-overwrites --continue --no-continue --no-part --no-mtime --write-description --write-info-json --write-annotations --write-thumbnail --load-info --cookies --cache-dir --no-cache-dir --rm-cache-dir --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 --newline --no-progress --console-title --verbose --dump-intermediate-pages --write-pages --youtube-print-sig-code --print-traffic --encoding --no-check-certificate --prefer-insecure --user-agent --referer --add-header --bidi-workaround --format --all-formats --prefer-free-formats --max-quality --list-formats --youtube-include-dash-manifest --youtube-skip-dash-manifest --write-sub --write-auto-sub --all-subs --list-subs --sub-format --sub-lang --username --password --twofactor --netrc --video-password --extract-audio --audio-format --audio-quality --recode-video --keep-video --no-post-overwrites --embed-subs --embed-thumbnail --add-metadata --xattrs --prefer-avconv --prefer-ffmpeg --exec)' + fi + ;; + esac +} + +__youtube_dl \ No newline at end of file diff --git a/youtube_dl/YoutubeDL.py b/youtube_dl/YoutubeDL.py index 14a1d06..73a372d 100755 --- a/youtube_dl/YoutubeDL.py +++ b/youtube_dl/YoutubeDL.py @@ -24,10 +24,12 @@ if os.name == 'nt': from .utils import ( compat_cookiejar, + compat_expanduser, compat_http_client, compat_str, compat_urllib_error, compat_urllib_request, + escape_url, ContentTooShortError, date_from_str, DateRange, @@ -57,9 +59,10 @@ from .utils import ( YoutubeDLHandler, prepend_extension, ) +from .cache import Cache from .extractor import get_info_extractor, gen_extractors from .downloader import get_suitable_downloader -from .postprocessor import FFmpegMergerPP +from .postprocessor import FFmpegMergerPP, FFmpegPostProcessor from .version import __version__ @@ -105,6 +108,8 @@ class YoutubeDL(object): forcefilename: Force printing final filename. forceduration: Force printing duration. forcejson: Force printing info_dict as JSON. + dump_single_json: Force printing the info_dict of the whole playlist + (or video) as a single JSON line. simulate: Do not download the video files. format: Video format code. format_limit: Highest quality format to try. @@ -133,7 +138,7 @@ class YoutubeDL(object): daterange: A DateRange object, download only if the upload_date is in the range. skip_download: Skip the actual download of the video file cachedir: Location of the cache files in the filesystem. - None to disable filesystem cache. + False to disable filesystem cache. noplaylist: Download single video instead of a playlist if in doubt. age_limit: An integer representing the user's age in years. Unsuitable videos for the given age are skipped. @@ -162,6 +167,9 @@ class YoutubeDL(object): default_search: Prepend this string if an input url is not valid. 'auto' for elaborate guessing encoding: Use this encoding instead of the system-specified. + extract_flat: Do not resolve URLs, return the immediate result. + Pass in 'in_playlist' to only show this behavior for + playlist items. The following parameters are not used by YoutubeDL itself, they are used by the FileDownloader: @@ -171,6 +179,7 @@ class YoutubeDL(object): The following options are used by the post processors: prefer_ffmpeg: If True, use ffmpeg instead of avconv if both are available, otherwise prefer avconv. + exec_cmd: Arbitrary command to run after downloading """ params = None @@ -180,7 +189,7 @@ class YoutubeDL(object): _num_downloads = None _screen_file = None - def __init__(self, params=None): + def __init__(self, params=None, auto_init=True): """Create a FileDownloader object with the given options.""" if params is None: params = {} @@ -193,6 +202,7 @@ class YoutubeDL(object): self._screen_file = [sys.stdout, sys.stderr][params.get('logtostderr', False)] self._err_file = sys.stderr self.params = params + self.cache = Cache(self) if params.get('bidi_workaround', False): try: @@ -223,11 +233,11 @@ class YoutubeDL(object): if (sys.version_info >= (3,) and sys.platform != 'win32' and sys.getfilesystemencoding() in ['ascii', 'ANSI_X3.4-1968'] - and not params['restrictfilenames']): + and not params.get('restrictfilenames', False)): # On Python 3, the Unicode filesystem API will throw errors (#1474) self.report_warning( 'Assuming --restrict-filenames since file system encoding ' - 'cannot encode all charactes. ' + 'cannot encode all characters. ' 'Set the LC_ALL environment variable to fix this.') self.params['restrictfilenames'] = True @@ -236,6 +246,10 @@ class YoutubeDL(object): self._setup_opener() + if auto_init: + self.print_debug_header() + self.add_default_info_extractors() + def add_info_extractor(self, ie): """Add an InfoExtractor object to the end of the list.""" self._ies.append(ie) @@ -423,7 +437,7 @@ class YoutubeDL(object): autonumber_templ = '%0' + str(autonumber_size) + 'd' template_dict['autonumber'] = autonumber_templ % self._num_downloads if template_dict.get('playlist_index') is not None: - template_dict['playlist_index'] = '%05d' % template_dict['playlist_index'] + template_dict['playlist_index'] = '%0*d' % (len(str(template_dict['n_entries'])), template_dict['playlist_index']) if template_dict.get('resolution') is None: if template_dict.get('width') and template_dict.get('height'): template_dict['resolution'] = '%dx%d' % (template_dict['width'], template_dict['height']) @@ -442,7 +456,7 @@ class YoutubeDL(object): template_dict = collections.defaultdict(lambda: 'NA', template_dict) outtmpl = self.params.get('outtmpl', DEFAULT_OUTTMPL) - tmpl = os.path.expanduser(outtmpl) + tmpl = compat_expanduser(outtmpl) filename = tmpl % template_dict return filename except ValueError as err: @@ -479,7 +493,10 @@ class YoutubeDL(object): return 'Skipping %s, because it has exceeded the maximum view count (%d/%d)' % (video_title, view_count, max_views) age_limit = self.params.get('age_limit') if age_limit is not None: - if age_limit < info_dict.get('age_limit', 0): + actual_age_limit = info_dict.get('age_limit') + if actual_age_limit is None: + actual_age_limit = 0 + if age_limit < actual_age_limit: return 'Skipping "' + title + '" because it is age restricted' if self.in_download_archive(info_dict): return '%s has already been recorded in archive' % video_title @@ -558,7 +575,16 @@ class YoutubeDL(object): Returns the resolved ie_result. """ - result_type = ie_result.get('_type', 'video') # If not given we suppose it's a video, support the default old system + result_type = ie_result.get('_type', 'video') + + if result_type in ('url', 'url_transparent'): + extract_flat = self.params.get('extract_flat', False) + if ((extract_flat == 'in_playlist' and 'playlist' in extra_info) or + extract_flat is True): + if self.params.get('forcejson', False): + self.to_stdout(json.dumps(ie_result)) + return ie_result + if result_type == 'video': self.add_extra_info(ie_result, extra_info) return self.process_video_result(ie_result, download=download) @@ -627,6 +653,7 @@ class YoutubeDL(object): for i, entry in enumerate(entries, 1): self.to_screen('[download] Downloading video #%s of %s' % (i, n_entries)) extra = { + 'n_entries': n_entries, 'playlist': playlist, 'playlist_index': i + playliststart, 'extractor': ie_result['extractor'], @@ -694,7 +721,7 @@ class YoutubeDL(object): if video_formats: return video_formats[0] else: - extensions = ['mp4', 'flv', 'webm', '3gp'] + extensions = ['mp4', 'flv', 'webm', '3gp', 'm4a'] if format_spec in extensions: filter_f = lambda f: f['ext'] == format_spec else: @@ -795,28 +822,29 @@ class YoutubeDL(object): if req_format in ('-1', 'all'): formats_to_download = formats else: - # We can accept formats requested in the format: 34/5/best, we pick - # the first that is available, starting from left - req_formats = req_format.split('/') - for rf in req_formats: - if re.match(r'.+?\+.+?', rf) is not None: - # Two formats have been requested like '137+139' - format_1, format_2 = rf.split('+') - formats_info = (self.select_format(format_1, formats), - self.select_format(format_2, formats)) - if all(formats_info): - selected_format = { - 'requested_formats': formats_info, - 'format': rf, - 'ext': formats_info[0]['ext'], - } + for rfstr in req_format.split(','): + # We can accept formats requested in the format: 34/5/best, we pick + # the first that is available, starting from left + req_formats = rfstr.split('/') + for rf in req_formats: + if re.match(r'.+?\+.+?', rf) is not None: + # Two formats have been requested like '137+139' + format_1, format_2 = rf.split('+') + formats_info = (self.select_format(format_1, formats), + self.select_format(format_2, formats)) + if all(formats_info): + selected_format = { + 'requested_formats': formats_info, + 'format': rf, + 'ext': formats_info[0]['ext'], + } + else: + selected_format = None else: - selected_format = None - else: - selected_format = self.select_format(rf, formats) - if selected_format is not None: - formats_to_download = [selected_format] - break + selected_format = self.select_format(rf, formats) + if selected_format is not None: + formats_to_download.append(selected_format) + break if not formats_to_download: raise ExtractorError('requested format not available', expected=True) @@ -882,6 +910,8 @@ class YoutubeDL(object): if self.params.get('forcejson', False): info_dict['_filename'] = filename self.to_stdout(json.dumps(info_dict)) + if self.params.get('dump_single_json', False): + info_dict['_filename'] = filename # Do nothing else if in simulate mode if self.params.get('simulate', False): @@ -1000,7 +1030,7 @@ class YoutubeDL(object): downloaded = [] success = True merger = FFmpegMergerPP(self, not self.params.get('keepvideo')) - if not merger._get_executable(): + if not merger._executable: postprocessors = [] self.report_warning('You have requested multiple ' 'formats but ffmpeg or avconv are not installed.' @@ -1049,12 +1079,15 @@ class YoutubeDL(object): for url in url_list: try: #It also downloads the videos - self.extract_info(url) + res = self.extract_info(url) except UnavailableVideoError: self.report_error('unable to download video') except MaxDownloadsReached: self.to_screen('[info] Maximum number of downloaded files reached.') raise + else: + if self.params.get('dump_single_json', False): + self.to_stdout(json.dumps(res)) return self._download_retcode @@ -1178,6 +1211,8 @@ class YoutubeDL(object): res += 'video@' if fdict.get('vbr') is not None: res += '%4dk' % fdict['vbr'] + if fdict.get('fps') is not None: + res += ', %sfps' % fdict['fps'] if fdict.get('acodec') is not None: if res: res += ', ' @@ -1228,6 +1263,26 @@ class YoutubeDL(object): def urlopen(self, req): """ Start an HTTP download """ + + # According to RFC 3986, URLs can not contain non-ASCII characters, however this is not + # always respected by websites, some tend to give out URLs with non percent-encoded + # non-ASCII characters (see telemb.py, ard.py [#3412]) + # urllib chokes on URLs with non-ASCII characters (see http://bugs.python.org/issue3991) + # To work around aforementioned issue we will replace request's original URL with + # percent-encoded one + req_is_string = isinstance(req, basestring if sys.version_info < (3, 0) else compat_str) + url = req if req_is_string else req.get_full_url() + url_escaped = escape_url(url) + + # Substitute URL if any change after escaping + if url != url_escaped: + if req_is_string: + req = url_escaped + else: + req = compat_urllib_request.Request( + url_escaped, data=req.data, headers=req.headers, + origin_req_host=req.origin_req_host, unverifiable=req.unverifiable) + return self._opener.open(req, timeout=self._socket_timeout) def print_debug_header(self): @@ -1262,8 +1317,18 @@ class YoutubeDL(object): sys.exc_clear() except: pass - self._write_string('[debug] Python version %s - %s' % - (platform.python_version(), platform_name()) + '\n') + self._write_string('[debug] Python version %s - %s\n' % ( + platform.python_version(), platform_name())) + + exe_versions = FFmpegPostProcessor.get_versions() + exe_str = ', '.join( + '%s %s' % (exe, v) + for exe, v in sorted(exe_versions.items()) + if v + ) + if not exe_str: + exe_str = 'none' + self._write_string('[debug] exe versions: %s\n' % exe_str) proxy_map = {} for handler in self._opener.handlers: diff --git a/youtube_dl/__init__.py b/youtube_dl/__init__.py index f9c16e4..3c96808 100644 --- a/youtube_dl/__init__.py +++ b/youtube_dl/__init__.py @@ -1,95 +1,26 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -__authors__ = ( - '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 \'Ruirize\' James', - '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', -) - __license__ = 'Public Domain' import codecs import io -import optparse import os import random -import shlex -import shutil import sys +from .options import ( + parseOpts, +) from .utils import ( + compat_expanduser, compat_getpass, compat_print, DateRange, DEFAULT_OUTTMPL, decodeOption, - get_term_width, DownloadError, - get_cachedir, MaxDownloadsReached, preferredencoding, read_batch_urls, @@ -103,7 +34,6 @@ from .downloader import ( FileDownloader, ) from .extractor import gen_extractors -from .version import __version__ from .YoutubeDL import YoutubeDL from .postprocessor import ( AtomicParsleyPP, @@ -113,474 +43,10 @@ from .postprocessor import ( FFmpegExtractAudioPP, FFmpegEmbedSubtitlePP, XAttrMetadataPP, + ExecAfterDownloadPP, ) -def parseOpts(overrideArguments=None): - def _readOptions(filename_bytes, default=[]): - try: - optionf = open(filename_bytes) - except IOError: - return default # silently skip if file is not present - try: - res = [] - for l in optionf: - res += shlex.split(l, comments=True) - finally: - optionf.close() - return res - - def _readUserConf(): - xdg_config_home = os.environ.get('XDG_CONFIG_HOME') - if xdg_config_home: - userConfFile = os.path.join(xdg_config_home, 'youtube-dl', 'config') - if not os.path.isfile(userConfFile): - userConfFile = os.path.join(xdg_config_home, 'youtube-dl.conf') - else: - userConfFile = os.path.join(os.path.expanduser('~'), '.config', 'youtube-dl', 'config') - if not os.path.isfile(userConfFile): - userConfFile = os.path.join(os.path.expanduser('~'), '.config', 'youtube-dl.conf') - userConf = _readOptions(userConfFile, None) - - if userConf is None: - appdata_dir = os.environ.get('appdata') - if appdata_dir: - userConf = _readOptions( - os.path.join(appdata_dir, 'youtube-dl', 'config'), - default=None) - if userConf is None: - userConf = _readOptions( - os.path.join(appdata_dir, 'youtube-dl', 'config.txt'), - default=None) - - if userConf is None: - userConf = _readOptions( - os.path.join(os.path.expanduser('~'), 'youtube-dl.conf'), - default=None) - if userConf is None: - userConf = _readOptions( - os.path.join(os.path.expanduser('~'), 'youtube-dl.conf.txt'), - default=None) - - if userConf is None: - userConf = [] - - return userConf - - def _format_option_string(option): - ''' ('-o', '--option') -> -o, --format METAVAR''' - - opts = [] - - if option._short_opts: - opts.append(option._short_opts[0]) - if option._long_opts: - opts.append(option._long_opts[0]) - if len(opts) > 1: - opts.insert(1, ', ') - - if option.takes_value(): opts.append(' %s' % option.metavar) - - return "".join(opts) - - def _comma_separated_values_options_callback(option, opt_str, value, parser): - setattr(parser.values, option.dest, value.split(',')) - - def _hide_login_info(opts): - opts = list(opts) - for private_opt in ['-p', '--password', '-u', '--username', '--video-password']: - try: - i = opts.index(private_opt) - opts[i+1] = '' - except ValueError: - pass - return opts - - max_width = 80 - max_help_position = 80 - - # No need to wrap help messages if we're on a wide console - columns = get_term_width() - if columns: max_width = columns - - fmt = optparse.IndentedHelpFormatter(width=max_width, max_help_position=max_help_position) - fmt.format_option_strings = _format_option_string - - kw = { - 'version' : __version__, - 'formatter' : fmt, - 'usage' : '%prog [options] url [url...]', - 'conflict_handler' : 'resolve', - } - - parser = optparse.OptionParser(**kw) - - # option groups - general = optparse.OptionGroup(parser, 'General Options') - selection = optparse.OptionGroup(parser, 'Video Selection') - authentication = optparse.OptionGroup(parser, 'Authentication Options') - video_format = optparse.OptionGroup(parser, 'Video Format Options') - subtitles = optparse.OptionGroup(parser, 'Subtitle Options') - downloader = optparse.OptionGroup(parser, 'Download Options') - postproc = optparse.OptionGroup(parser, 'Post-processing Options') - filesystem = optparse.OptionGroup(parser, 'Filesystem Options') - workarounds = optparse.OptionGroup(parser, 'Workarounds') - verbosity = optparse.OptionGroup(parser, 'Verbosity / Simulation Options') - - general.add_option('-h', '--help', - action='help', help='print this help text and exit') - general.add_option('-v', '--version', - action='version', help='print program version and exit') - general.add_option('-U', '--update', - action='store_true', dest='update_self', help='update this program to latest version. Make sure that you have sufficient permissions (run with sudo if needed)') - general.add_option('-i', '--ignore-errors', - action='store_true', dest='ignoreerrors', help='continue on download errors, for example to skip unavailable videos in a playlist', default=False) - general.add_option('--abort-on-error', - action='store_false', dest='ignoreerrors', - help='Abort downloading of further videos (in the playlist or the command line) if an error occurs') - general.add_option('--dump-user-agent', - action='store_true', dest='dump_user_agent', - help='display the current browser identification', default=False) - general.add_option('--list-extractors', - action='store_true', dest='list_extractors', - help='List all supported extractors and the URLs they would handle', default=False) - general.add_option('--extractor-descriptions', - action='store_true', dest='list_extractor_descriptions', - help='Output descriptions of all supported extractors', default=False) - general.add_option( - '--proxy', dest='proxy', default=None, metavar='URL', - help='Use the specified HTTP/HTTPS proxy. Pass in an empty string (--proxy "") for direct connection') - general.add_option( - '--socket-timeout', dest='socket_timeout', - type=float, default=None, help=u'Time to wait before giving up, in seconds') - general.add_option( - '--default-search', - dest='default_search', metavar='PREFIX', - help='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.') - general.add_option( - '--ignore-config', - action='store_true', - help='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.conf (%APPDATA%/youtube-dl/config.txt on Windows)') - - selection.add_option( - '--playlist-start', - dest='playliststart', metavar='NUMBER', default=1, type=int, - help='playlist video to start at (default is %default)') - selection.add_option( - '--playlist-end', - dest='playlistend', metavar='NUMBER', default=None, type=int, - help='playlist video to end at (default is last)') - selection.add_option('--match-title', dest='matchtitle', metavar='REGEX',help='download only matching titles (regex or caseless sub-string)') - selection.add_option('--reject-title', dest='rejecttitle', metavar='REGEX',help='skip download for matching titles (regex or caseless sub-string)') - selection.add_option('--max-downloads', metavar='NUMBER', - dest='max_downloads', type=int, default=None, - help='Abort after downloading NUMBER files') - selection.add_option('--min-filesize', metavar='SIZE', dest='min_filesize', help="Do not download any videos smaller than SIZE (e.g. 50k or 44.6m)", default=None) - selection.add_option('--max-filesize', metavar='SIZE', dest='max_filesize', help="Do not download any videos larger than SIZE (e.g. 50k or 44.6m)", default=None) - selection.add_option('--date', metavar='DATE', dest='date', help='download only videos uploaded in this date', default=None) - selection.add_option( - '--datebefore', metavar='DATE', dest='datebefore', default=None, - help='download only videos uploaded on or before this date (i.e. inclusive)') - selection.add_option( - '--dateafter', metavar='DATE', dest='dateafter', default=None, - help='download only videos uploaded on or after this date (i.e. inclusive)') - selection.add_option( - '--min-views', metavar='COUNT', dest='min_views', - default=None, type=int, - help="Do not download any videos with less than COUNT views",) - selection.add_option( - '--max-views', metavar='COUNT', dest='max_views', - default=None, type=int, - help="Do not download any videos with more than COUNT views",) - selection.add_option('--no-playlist', action='store_true', dest='noplaylist', help='download only the currently playing video', default=False) - selection.add_option('--age-limit', metavar='YEARS', dest='age_limit', - help='download only videos suitable for the given age', - default=None, type=int) - selection.add_option('--download-archive', metavar='FILE', - dest='download_archive', - help='Download only videos not listed in the archive file. Record the IDs of all downloaded videos in it.') - selection.add_option( - '--include-ads', dest='include_ads', - action='store_true', - help='Download advertisements as well (experimental)') - selection.add_option( - '--youtube-include-dash-manifest', action='store_true', - dest='youtube_include_dash_manifest', default=False, - help='Try to download the DASH manifest on YouTube videos (experimental)') - - authentication.add_option('-u', '--username', - dest='username', metavar='USERNAME', help='account username') - authentication.add_option('-p', '--password', - dest='password', metavar='PASSWORD', help='account password') - authentication.add_option('-n', '--netrc', - action='store_true', dest='usenetrc', help='use .netrc authentication data', default=False) - authentication.add_option('--video-password', - dest='videopassword', metavar='PASSWORD', help='video password (vimeo, smotri)') - - - video_format.add_option('-f', '--format', - action='store', dest='format', metavar='FORMAT', default=None, - help='video format code, specify the order of preference using slashes: "-f 22/17/18". "-f mp4" and "-f flv" are also supported. You can also use the special names "best", "bestvideo", "bestaudio", "worst", "worstvideo" and "worstaudio". By default, youtube-dl will pick the best quality.') - video_format.add_option('--all-formats', - action='store_const', dest='format', help='download all available video formats', const='all') - video_format.add_option('--prefer-free-formats', - action='store_true', dest='prefer_free_formats', default=False, help='prefer free video formats unless a specific one is requested') - video_format.add_option('--max-quality', - action='store', dest='format_limit', metavar='FORMAT', help='highest quality format to download') - video_format.add_option('-F', '--list-formats', - action='store_true', dest='listformats', help='list all available formats') - - subtitles.add_option('--write-sub', '--write-srt', - action='store_true', dest='writesubtitles', - help='write subtitle file', default=False) - subtitles.add_option('--write-auto-sub', '--write-automatic-sub', - action='store_true', dest='writeautomaticsub', - help='write automatic subtitle file (youtube only)', default=False) - subtitles.add_option('--all-subs', - action='store_true', dest='allsubtitles', - help='downloads all the available subtitles of the video', default=False) - subtitles.add_option('--list-subs', - action='store_true', dest='listsubtitles', - help='lists all available subtitles for the video', default=False) - subtitles.add_option('--sub-format', - action='store', dest='subtitlesformat', metavar='FORMAT', - help='subtitle format (default=srt) ([sbv/vtt] youtube only)', default='srt') - subtitles.add_option('--sub-lang', '--sub-langs', '--srt-lang', - action='callback', dest='subtitleslangs', metavar='LANGS', type='str', - default=[], callback=_comma_separated_values_options_callback, - help='languages of the subtitles to download (optional) separated by commas, use IETF language tags like \'en,pt\'') - - downloader.add_option('-r', '--rate-limit', - dest='ratelimit', metavar='LIMIT', help='maximum download rate in bytes per second (e.g. 50K or 4.2M)') - downloader.add_option('-R', '--retries', - dest='retries', metavar='RETRIES', help='number of retries (default is %default)', default=10) - downloader.add_option('--buffer-size', - dest='buffersize', metavar='SIZE', help='size of download buffer (e.g. 1024 or 16K) (default is %default)', default="1024") - downloader.add_option('--no-resize-buffer', - action='store_true', dest='noresizebuffer', - help='do not automatically adjust the buffer size. By default, the buffer size is automatically resized from an initial value of SIZE.', default=False) - downloader.add_option('--test', action='store_true', dest='test', default=False, help=optparse.SUPPRESS_HELP) - - workarounds.add_option( - '--encoding', dest='encoding', metavar='ENCODING', - help='Force the specified encoding (experimental)') - workarounds.add_option( - '--no-check-certificate', action='store_true', - dest='no_check_certificate', default=False, - help='Suppress HTTPS certificate validation.') - workarounds.add_option( - '--prefer-insecure', '--prefer-unsecure', action='store_true', dest='prefer_insecure', - help='Use an unencrypted connection to retrieve information about the video. (Currently supported only for YouTube)') - workarounds.add_option( - '--user-agent', metavar='UA', - dest='user_agent', help='specify a custom user agent') - workarounds.add_option( - '--referer', metavar='REF', - dest='referer', default=None, - help='specify a custom referer, use if the video access is restricted to one domain', - ) - workarounds.add_option( - '--add-header', metavar='FIELD:VALUE', - dest='headers', action='append', - help='specify a custom HTTP header and its value, separated by a colon \':\'. You can use this option multiple times', - ) - workarounds.add_option( - '--bidi-workaround', dest='bidi_workaround', action='store_true', - help=u'Work around terminals that lack bidirectional text support. Requires bidiv or fribidi executable in PATH') - - verbosity.add_option('-q', '--quiet', - action='store_true', dest='quiet', help='activates quiet mode', default=False) - verbosity.add_option( - '--no-warnings', - dest='no_warnings', action='store_true', default=False, - help='Ignore warnings') - verbosity.add_option('-s', '--simulate', - action='store_true', dest='simulate', help='do not download the video and do not write anything to disk', default=False) - verbosity.add_option('--skip-download', - action='store_true', dest='skip_download', help='do not download the video', default=False) - verbosity.add_option('-g', '--get-url', - action='store_true', dest='geturl', help='simulate, quiet but print URL', default=False) - verbosity.add_option('-e', '--get-title', - action='store_true', dest='gettitle', help='simulate, quiet but print title', default=False) - verbosity.add_option('--get-id', - action='store_true', dest='getid', help='simulate, quiet but print id', default=False) - verbosity.add_option('--get-thumbnail', - action='store_true', dest='getthumbnail', - help='simulate, quiet but print thumbnail URL', default=False) - verbosity.add_option('--get-description', - action='store_true', dest='getdescription', - help='simulate, quiet but print video description', default=False) - verbosity.add_option('--get-duration', - action='store_true', dest='getduration', - help='simulate, quiet but print video length', default=False) - verbosity.add_option('--get-filename', - action='store_true', dest='getfilename', - help='simulate, quiet but print output filename', default=False) - verbosity.add_option('--get-format', - action='store_true', dest='getformat', - help='simulate, quiet but print output format', default=False) - verbosity.add_option('-j', '--dump-json', - action='store_true', dest='dumpjson', - help='simulate, quiet but print JSON information. See --output for a description of available keys.', default=False) - verbosity.add_option('--newline', - action='store_true', dest='progress_with_newline', help='output progress bar as new lines', default=False) - verbosity.add_option('--no-progress', - action='store_true', dest='noprogress', help='do not print progress bar', default=False) - verbosity.add_option('--console-title', - action='store_true', dest='consoletitle', - help='display progress in console titlebar', default=False) - verbosity.add_option('-v', '--verbose', - action='store_true', dest='verbose', help='print various debugging information', default=False) - verbosity.add_option('--dump-intermediate-pages', - action='store_true', dest='dump_intermediate_pages', default=False, - help='print downloaded pages to debug problems (very verbose)') - verbosity.add_option('--write-pages', - action='store_true', dest='write_pages', default=False, - help='Write downloaded intermediary pages to files in the current directory to debug problems') - verbosity.add_option('--youtube-print-sig-code', - action='store_true', dest='youtube_print_sig_code', default=False, - help=optparse.SUPPRESS_HELP) - verbosity.add_option('--print-traffic', - dest='debug_printtraffic', action='store_true', default=False, - help='Display sent and read HTTP traffic') - - - filesystem.add_option('-a', '--batch-file', - dest='batchfile', metavar='FILE', help='file containing URLs to download (\'-\' for stdin)') - filesystem.add_option('--id', - action='store_true', dest='useid', help='use only video ID in file name', default=False) - filesystem.add_option('-A', '--auto-number', - action='store_true', dest='autonumber', - help='number downloaded files starting from 00000', default=False) - filesystem.add_option('-o', '--output', - dest='outtmpl', metavar='TEMPLATE', - help=('output filename template. Use %(title)s to get the title, ' - '%(uploader)s for the uploader name, %(uploader_id)s for the uploader nickname if different, ' - '%(autonumber)s to get an automatically incremented number, ' - '%(ext)s for the filename extension, ' - '%(format)s for the format description (like "22 - 1280x720" or "HD"), ' - '%(format_id)s for the unique id of the format (like Youtube\'s itags: "137"), ' - '%(upload_date)s for the upload date (YYYYMMDD), ' - '%(extractor)s for the provider (youtube, metacafe, etc), ' - '%(id)s for the video id, %(playlist)s for the playlist the video is in, ' - '%(playlist_index)s for the position in the playlist and %% for a literal percent. ' - '%(height)s and %(width)s for the width and height of the video format. ' - '%(resolution)s for a textual description of the resolution of the video format. ' - 'Use - to output to stdout. Can also be used to download to a different directory, ' - 'for example with -o \'/my/downloads/%(uploader)s/%(title)s-%(id)s.%(ext)s\' .')) - filesystem.add_option('--autonumber-size', - dest='autonumber_size', metavar='NUMBER', - help='Specifies the number of digits in %(autonumber)s when it is present in output filename template or --auto-number option is given') - filesystem.add_option('--restrict-filenames', - action='store_true', dest='restrictfilenames', - help='Restrict filenames to only ASCII characters, and avoid "&" and spaces in filenames', default=False) - filesystem.add_option('-t', '--title', - action='store_true', dest='usetitle', help='[deprecated] use title in file name (default)', default=False) - filesystem.add_option('-l', '--literal', - action='store_true', dest='usetitle', help='[deprecated] alias of --title', default=False) - filesystem.add_option('-w', '--no-overwrites', - action='store_true', dest='nooverwrites', help='do not overwrite files', default=False) - filesystem.add_option('-c', '--continue', - action='store_true', dest='continue_dl', help='force resume of partially downloaded files. By default, youtube-dl will resume downloads if possible.', default=True) - filesystem.add_option('--no-continue', - action='store_false', dest='continue_dl', - help='do not resume partially downloaded files (restart from beginning)') - filesystem.add_option('--no-part', - action='store_true', dest='nopart', help='do not use .part files', default=False) - filesystem.add_option('--no-mtime', - action='store_false', dest='updatetime', - help='do not use the Last-modified header to set the file modification time', default=True) - filesystem.add_option('--write-description', - action='store_true', dest='writedescription', - help='write video description to a .description file', default=False) - filesystem.add_option('--write-info-json', - action='store_true', dest='writeinfojson', - help='write video metadata to a .info.json file', default=False) - filesystem.add_option('--write-annotations', - action='store_true', dest='writeannotations', - help='write video annotations to a .annotation file', default=False) - filesystem.add_option('--write-thumbnail', - action='store_true', dest='writethumbnail', - help='write thumbnail image to disk', default=False) - filesystem.add_option('--load-info', - dest='load_info_filename', metavar='FILE', - help='json file containing the video information (created with the "--write-json" option)') - filesystem.add_option('--cookies', - dest='cookiefile', metavar='FILE', help='file to read cookies from and dump cookie jar in') - filesystem.add_option( - '--cache-dir', dest='cachedir', default=get_cachedir(), metavar='DIR', - help='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.') - filesystem.add_option( - '--no-cache-dir', action='store_const', const=None, dest='cachedir', - help='Disable filesystem caching') - filesystem.add_option( - '--rm-cache-dir', action='store_true', dest='rm_cachedir', - help='Delete all filesystem cache files') - - - postproc.add_option('-x', '--extract-audio', action='store_true', dest='extractaudio', default=False, - 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='"best", "aac", "vorbis", "mp3", "m4a", "opus", or "wav"; best by default') - postproc.add_option('--audio-quality', metavar='QUALITY', dest='audioquality', default='5', - help='ffmpeg/avconv audio quality specification, insert a value between 0 (better) and 9 (worse) for VBR or a specific bitrate like 128K (default 5)') - postproc.add_option('--recode-video', metavar='FORMAT', dest='recodevideo', default=None, - help='Encode the video to another format if necessary (currently supported: mp4|flv|ogg|webm|mkv)') - postproc.add_option('-k', '--keep-video', action='store_true', dest='keepvideo', default=False, - help='keeps the video file on disk after the post-processing; the video is erased by default') - postproc.add_option('--no-post-overwrites', action='store_true', dest='nopostoverwrites', default=False, - help='do not overwrite post-processed files; the post-processed files are overwritten by default') - postproc.add_option('--embed-subs', action='store_true', dest='embedsubtitles', default=False, - help='embed subtitles in the video (only for mp4 videos)') - postproc.add_option('--embed-thumbnail', action='store_true', dest='embedthumbnail', default=False, - help='embed thumbnail in the audio as cover art') - postproc.add_option('--add-metadata', action='store_true', dest='addmetadata', default=False, - help='write metadata to the video file') - postproc.add_option('--xattrs', action='store_true', dest='xattrs', default=False, - help='write metadata to the video file\'s xattrs (using dublin core and xdg standards)') - postproc.add_option('--prefer-avconv', action='store_false', dest='prefer_ffmpeg', - help='Prefer avconv over ffmpeg for running the postprocessors (default)') - postproc.add_option('--prefer-ffmpeg', action='store_true', dest='prefer_ffmpeg', - help='Prefer ffmpeg over avconv for running the postprocessors') - - - parser.add_option_group(general) - parser.add_option_group(selection) - parser.add_option_group(downloader) - parser.add_option_group(filesystem) - parser.add_option_group(verbosity) - parser.add_option_group(workarounds) - parser.add_option_group(video_format) - parser.add_option_group(subtitles) - parser.add_option_group(authentication) - parser.add_option_group(postproc) - - if overrideArguments is not None: - opts, args = parser.parse_args(overrideArguments) - if opts.verbose: - write_string(u'[debug] Override config: ' + repr(overrideArguments) + '\n') - else: - commandLineConf = sys.argv[1:] - if '--ignore-config' in commandLineConf: - systemConf = [] - userConf = [] - else: - systemConf = _readOptions('/etc/youtube-dl.conf') - if '--ignore-config' in systemConf: - userConf = [] - else: - userConf = _readUserConf() - argv = systemConf + userConf + commandLineConf - - opts, args = parser.parse_args(argv) - if opts.verbose: - write_string(u'[debug] System config: ' + repr(_hide_login_info(systemConf)) + '\n') - write_string(u'[debug] User config: ' + repr(_hide_login_info(userConf)) + '\n') - write_string(u'[debug] Command-line args: ' + repr(_hide_login_info(commandLineConf)) + '\n') - - return parser, opts, args - - def _real_main(argv=None): # Compatibility fixes for Windows if sys.platform == 'win32': @@ -710,8 +176,6 @@ def _real_main(argv=None): date = DateRange.day(opts.date) else: date = DateRange(opts.dateafter, opts.datebefore) - if opts.default_search not in ('auto', 'auto_warning', 'error', 'fixup_error', None) and ':' not in opts.default_search: - parser.error(u'--default-search invalid; did you forget a colon (:) at the end?') # Do not download videos when there are audio-only formats if opts.extractaudio and not opts.keepvideo and opts.format is None: @@ -739,13 +203,14 @@ def _real_main(argv=None): u' file! Use "{0}.%(ext)s" instead of "{0}" as the output' u' template'.format(outtmpl)) - any_printing = opts.geturl or opts.gettitle or opts.getid or opts.getthumbnail or opts.getdescription or opts.getfilename or opts.getformat or opts.getduration or opts.dumpjson - download_archive_fn = os.path.expanduser(opts.download_archive) if opts.download_archive is not None else opts.download_archive + any_printing = opts.geturl or opts.gettitle or opts.getid or opts.getthumbnail or opts.getdescription or opts.getfilename or opts.getformat or opts.getduration or opts.dumpjson or opts.dump_single_json + download_archive_fn = compat_expanduser(opts.download_archive) if opts.download_archive is not None else opts.download_archive ydl_opts = { 'usenetrc': opts.usenetrc, 'username': opts.username, 'password': opts.password, + 'twofactor': opts.twofactor, 'videopassword': opts.videopassword, 'quiet': (opts.quiet or any_printing), 'no_warnings': opts.no_warnings, @@ -758,8 +223,9 @@ def _real_main(argv=None): 'forcefilename': opts.getfilename, 'forceformat': opts.getformat, 'forcejson': opts.dumpjson, - 'simulate': opts.simulate, - 'skip_download': (opts.skip_download or opts.simulate or any_printing), + 'dump_single_json': opts.dump_single_json, + 'simulate': opts.simulate or any_printing, + 'skip_download': opts.skip_download, 'format': opts.format, 'format_limit': opts.format_limit, 'listformats': opts.listformats, @@ -822,12 +288,11 @@ def _real_main(argv=None): 'default_search': opts.default_search, 'youtube_include_dash_manifest': opts.youtube_include_dash_manifest, 'encoding': opts.encoding, + 'exec_cmd': opts.exec_cmd, + 'extract_flat': opts.extract_flat, } with YoutubeDL(ydl_opts) as ydl: - ydl.print_debug_header() - ydl.add_default_info_extractors() - # PostProcessors # Add the metadata pp first, the other pps will copy it if opts.addmetadata: @@ -845,26 +310,20 @@ def _real_main(argv=None): ydl.add_post_processor(FFmpegAudioFixPP()) ydl.add_post_processor(AtomicParsleyPP()) + + # Please keep ExecAfterDownload towards the bottom as it allows the user to modify the final file in any way. + # So if the user is able to remove the file before your postprocessor runs it might cause a few problems. + if opts.exec_cmd: + ydl.add_post_processor(ExecAfterDownloadPP( + verboseOutput=opts.verbose, exec_cmd=opts.exec_cmd)) + # Update version if opts.update_self: update_self(ydl.to_screen, opts.verbose) # Remove cache dir if opts.rm_cachedir: - if opts.cachedir is None: - ydl.to_screen(u'No cache dir specified (Did you combine --no-cache-dir and --rm-cache-dir?)') - else: - if ('.cache' not in opts.cachedir) or ('youtube-dl' not in opts.cachedir): - ydl.to_screen(u'Not removing directory %s - this does not look like a cache dir') - retcode = 141 - else: - ydl.to_screen( - u'Removing cache dir %s .' % opts.cachedir, - skip_eol=True) - if os.path.exists(opts.cachedir): - ydl.to_screen(u'.', skip_eol=True) - shutil.rmtree(opts.cachedir) - ydl.to_screen(u'.') + ydl.cache.remove() # Maybe do nothing if (len(all_urls) < 1) and (opts.load_info_filename is None): diff --git a/youtube_dl/cache.py b/youtube_dl/cache.py new file mode 100644 index 0000000..ac5925d --- /dev/null +++ b/youtube_dl/cache.py @@ -0,0 +1,95 @@ +from __future__ import unicode_literals + +import errno +import io +import json +import os +import re +import shutil +import traceback + +from .utils import ( + compat_expanduser, + write_json_file, +) + + +class Cache(object): + def __init__(self, ydl): + self._ydl = ydl + + def _get_root_dir(self): + res = self._ydl.params.get('cachedir') + if res is None: + cache_root = os.environ.get('XDG_CACHE_HOME', '~/.cache') + res = os.path.join(cache_root, 'youtube-dl') + return compat_expanduser(res) + + def _get_cache_fn(self, section, key, dtype): + assert re.match(r'^[a-zA-Z0-9_.-]+$', section), \ + 'invalid section %r' % section + assert re.match(r'^[a-zA-Z0-9_.-]+$', key), 'invalid key %r' % key + return os.path.join( + self._get_root_dir(), section, '%s.%s' % (key, dtype)) + + @property + def enabled(self): + return self._ydl.params.get('cachedir') is not False + + def store(self, section, key, data, dtype='json'): + assert dtype in ('json',) + + if not self.enabled: + return + + fn = self._get_cache_fn(section, key, dtype) + try: + try: + os.makedirs(os.path.dirname(fn)) + except OSError as ose: + if ose.errno != errno.EEXIST: + raise + write_json_file(data, fn) + except Exception: + tb = traceback.format_exc() + self._ydl.report_warning( + 'Writing cache to %r failed: %s' % (fn, tb)) + + def load(self, section, key, dtype='json', default=None): + assert dtype in ('json',) + + if not self.enabled: + return default + + cache_fn = self._get_cache_fn(section, key, dtype) + try: + try: + with io.open(cache_fn, 'r', encoding='utf-8') as cachef: + return json.load(cachef) + except ValueError: + try: + file_size = os.path.getsize(cache_fn) + except (OSError, IOError) as oe: + file_size = str(oe) + self._ydl.report_warning( + 'Cache retrieval from %s failed (%s)' % (cache_fn, file_size)) + except IOError: + pass # No cache available + + return default + + def remove(self): + if not self.enabled: + self._ydl.to_screen('Cache is disabled (Did you combine --no-cache-dir and --rm-cache-dir?)') + return + + cachedir = self._get_root_dir() + if not any((term in cachedir) for term in ('cache', 'tmp')): + raise Exception('Not removing directory %s - this does not look like a cache dir' % cachedir) + + self._ydl.to_screen( + 'Removing cache dir %s .' % cachedir, skip_eol=True) + if os.path.exists(cachedir): + self._ydl.to_screen('.', skip_eol=True) + shutil.rmtree(cachedir) + self._ydl.to_screen('.') diff --git a/youtube_dl/downloader/__init__.py b/youtube_dl/downloader/__init__.py index 4ea5811..3f94159 100644 --- a/youtube_dl/downloader/__init__.py +++ b/youtube_dl/downloader/__init__.py @@ -2,6 +2,7 @@ from __future__ import unicode_literals from .common import FileDownloader from .hls import HlsFD +from .hls import NativeHlsFD from .http import HttpFD from .mplayer import MplayerFD from .rtmp import RtmpFD @@ -19,6 +20,8 @@ def get_suitable_downloader(info_dict): if url.startswith('rtmp'): return RtmpFD + if protocol == 'm3u8_native': + return NativeHlsFD if (protocol == 'm3u8') or (protocol is None and determine_ext(url) == 'm3u8'): return HlsFD if url.startswith('mms') or url.startswith('rtsp'): diff --git a/youtube_dl/downloader/common.py b/youtube_dl/downloader/common.py index 917f345..f85f0c9 100644 --- a/youtube_dl/downloader/common.py +++ b/youtube_dl/downloader/common.py @@ -42,6 +42,7 @@ class FileDownloader(object): Subclasses of this one must re-define the real_download method. """ + _TEST_FILE_SIZE = 10241 params = None def __init__(self, ydl, params): @@ -292,7 +293,7 @@ class FileDownloader(object): def real_download(self, filename, info_dict): """Real download process. Redefine in subclasses.""" - raise NotImplementedError(u'This method must be implemented by sublcasses') + raise NotImplementedError(u'This method must be implemented by subclasses') def _hook_progress(self, status): for ph in self._progress_hooks: diff --git a/youtube_dl/downloader/f4m.py b/youtube_dl/downloader/f4m.py index 71353f6..b607f64 100644 --- a/youtube_dl/downloader/f4m.py +++ b/youtube_dl/downloader/f4m.py @@ -16,6 +16,7 @@ from ..utils import ( format_bytes, encodeFilename, sanitize_open, + xpath_text, ) @@ -243,14 +244,23 @@ class F4mFD(FileDownloader): lambda f: int(f[0]) == requested_bitrate, formats))[0] base_url = compat_urlparse.urljoin(man_url, media.attrib['url']) - bootstrap = base64.b64decode(doc.find(_add_ns('bootstrapInfo')).text) + bootstrap_node = doc.find(_add_ns('bootstrapInfo')) + if bootstrap_node.text is None: + bootstrap_url = compat_urlparse.urljoin( + base_url, bootstrap_node.attrib['url']) + bootstrap = self.ydl.urlopen(bootstrap_url).read() + else: + bootstrap = base64.b64decode(bootstrap_node.text) metadata = base64.b64decode(media.find(_add_ns('metadata')).text) boot_info = read_bootstrap_info(bootstrap) + fragments_list = build_fragments_list(boot_info) if self.params.get('test', False): # We only download the first fragment fragments_list = fragments_list[:1] total_frags = len(fragments_list) + # For some akamai manifests we'll need to add a query to the fragment url + akamai_pv = xpath_text(doc, _add_ns('pv-2.0')) tmpfilename = self.temp_name(filename) (dest_stream, tmpfilename) = sanitize_open(tmpfilename, 'wb') @@ -290,6 +300,8 @@ class F4mFD(FileDownloader): for (seg_i, frag_i) in fragments_list: name = 'Seg%d-Frag%d' % (seg_i, frag_i) url = base_url + name + if akamai_pv: + url += '?' + akamai_pv.strip(';') frag_filename = '%s-%s' % (tmpfilename, name) success = http_dl.download(frag_filename, {'url': url}) if not success: diff --git a/youtube_dl/downloader/hls.py b/youtube_dl/downloader/hls.py index 9f29e2f..68eafa4 100644 --- a/youtube_dl/downloader/hls.py +++ b/youtube_dl/downloader/hls.py @@ -1,8 +1,14 @@ +from __future__ import unicode_literals + import os +import re import subprocess from .common import FileDownloader from ..utils import ( + compat_urlparse, + compat_urllib_request, + check_executable, encodeFilename, ) @@ -19,13 +25,11 @@ class HlsFD(FileDownloader): encodeFilename(tmpfilename, for_subprocess=True)] for program in ['avconv', 'ffmpeg']: - try: - subprocess.call([program, '-version'], stdout=(open(os.path.devnull, 'w')), stderr=subprocess.STDOUT) + if check_executable(program, ['-version']): break - except (OSError, IOError): - pass else: self.report_error(u'm3u8 download detected but ffmpeg or avconv could not be found. Please install one.') + return False cmd = [program] + args retval = subprocess.call(cmd) @@ -42,5 +46,59 @@ class HlsFD(FileDownloader): return True else: self.to_stderr(u"\n") - self.report_error(u'ffmpeg exited with code %d' % retval) + self.report_error(u'%s exited with code %d' % (program, retval)) return False + + +class NativeHlsFD(FileDownloader): + """ A more limited implementation that does not require ffmpeg """ + + def real_download(self, filename, info_dict): + url = info_dict['url'] + self.report_destination(filename) + tmpfilename = self.temp_name(filename) + + self.to_screen( + '[hlsnative] %s: Downloading m3u8 manifest' % info_dict['id']) + data = self.ydl.urlopen(url).read() + s = data.decode('utf-8', 'ignore') + segment_urls = [] + for line in s.splitlines(): + line = line.strip() + if line and not line.startswith('#'): + segment_url = ( + line + if re.match(r'^https?://', line) + else compat_urlparse.urljoin(url, line)) + segment_urls.append(segment_url) + + is_test = self.params.get('test', False) + remaining_bytes = self._TEST_FILE_SIZE if is_test else None + byte_counter = 0 + with open(tmpfilename, 'wb') as outf: + for i, segurl in enumerate(segment_urls): + self.to_screen( + '[hlsnative] %s: Downloading segment %d / %d' % + (info_dict['id'], i + 1, len(segment_urls))) + seg_req = compat_urllib_request.Request(segurl) + if remaining_bytes is not None: + seg_req.add_header('Range', 'bytes=0-%d' % (remaining_bytes - 1)) + + segment = self.ydl.urlopen(seg_req).read() + if remaining_bytes is not None: + segment = segment[:remaining_bytes] + remaining_bytes -= len(segment) + outf.write(segment) + byte_counter += len(segment) + if remaining_bytes is not None and remaining_bytes <= 0: + break + + self._hook_progress({ + 'downloaded_bytes': byte_counter, + 'total_bytes': byte_counter, + 'filename': filename, + 'status': 'finished', + }) + self.try_rename(tmpfilename, filename) + return True + diff --git a/youtube_dl/downloader/http.py b/youtube_dl/downloader/http.py index f79e6a9..f62555c 100644 --- a/youtube_dl/downloader/http.py +++ b/youtube_dl/downloader/http.py @@ -14,8 +14,6 @@ from ..utils import ( class HttpFD(FileDownloader): - _TEST_FILE_SIZE = 10241 - def real_download(self, filename, info_dict): url = info_dict['url'] tmpfilename = self.temp_name(filename) @@ -27,8 +25,16 @@ class HttpFD(FileDownloader): headers['Youtubedl-user-agent'] = info_dict['user_agent'] if 'http_referer' in info_dict: headers['Referer'] = info_dict['http_referer'] - basic_request = compat_urllib_request.Request(url, None, headers) - request = compat_urllib_request.Request(url, None, headers) + add_headers = info_dict.get('http_headers') + if add_headers: + headers.update(add_headers) + data = info_dict.get('http_post_data') + http_method = info_dict.get('http_method') + basic_request = compat_urllib_request.Request(url, data, headers) + request = compat_urllib_request.Request(url, data, headers) + if http_method is not None: + basic_request.get_method = lambda: http_method + request.get_method = lambda: http_method is_test = self.params.get('test', False) @@ -185,7 +191,8 @@ class HttpFD(FileDownloader): self.to_stderr(u"\n") self.report_error(u'Did not get any data blocks') return False - stream.close() + if tmpfilename != u'-': + stream.close() self.report_finish(data_len_str, (time.time() - start)) if data_len is not None and byte_counter != data_len: raise ContentTooShortError(byte_counter, int(data_len)) diff --git a/youtube_dl/downloader/rtmp.py b/youtube_dl/downloader/rtmp.py index 6864670..5eb1083 100644 --- a/youtube_dl/downloader/rtmp.py +++ b/youtube_dl/downloader/rtmp.py @@ -8,9 +8,10 @@ import time from .common import FileDownloader from ..utils import ( + check_executable, + compat_str, encodeFilename, format_bytes, - compat_str, ) @@ -103,9 +104,7 @@ class RtmpFD(FileDownloader): test = self.params.get('test', False) # Check for rtmpdump first - try: - subprocess.call(['rtmpdump', '-h'], stdout=(open(os.path.devnull, 'w')), stderr=subprocess.STDOUT) - except (OSError, IOError): + if not check_executable('rtmpdump', ['-h']): self.report_error('RTMP download detected but "rtmpdump" could not be run. Please install it.') return False diff --git a/youtube_dl/extractor/__init__.py b/youtube_dl/extractor/__init__.py index 66c8737..32236f0 100644 --- a/youtube_dl/extractor/__init__.py +++ b/youtube_dl/extractor/__init__.py @@ -4,12 +4,13 @@ from .addanime import AddAnimeIE from .adultswim import AdultSwimIE from .aftonbladet import AftonbladetIE from .anitube import AnitubeIE +from .anysex import AnySexIE from .aol import AolIE from .allocine import AllocineIE from .aparat import AparatIE from .appletrailers import AppleTrailersIE from .archiveorg import ArchiveOrgIE -from .ard import ARDIE +from .ard import ARDIE, ARDMediathekIE from .arte import ( ArteTvIE, ArteTVPlus7IE, @@ -19,10 +20,14 @@ from .arte import ( ArteTVDDCIE, ArteTVEmbedIE, ) +from .audiomack import AudiomackIE from .auengine import AUEngineIE from .bambuser import BambuserIE, BambuserChannelIE from .bandcamp import BandcampIE, BandcampAlbumIE from .bbccouk import BBCCoUkIE +from .beeg import BeegIE +from .behindkink import BehindKinkIE +from .bild import BildIE from .bilibili import BiliBiliIE from .blinkx import BlinkxIE from .bliptv import BlipTVIE, BlipTVUserIE @@ -44,6 +49,7 @@ from .cinemassacre import CinemassacreIE from .clipfish import ClipfishIE from .cliphunter import CliphunterIE from .clipsyndicate import ClipsyndicateIE +from .cloudy import CloudyIE from .clubic import ClubicIE from .cmt import CMTIE from .cnet import CNETIE @@ -56,7 +62,10 @@ from .comedycentral import ComedyCentralIE, ComedyCentralShowsIE from .condenast import CondeNastIE from .cracked import CrackedIE from .criterion import CriterionIE -from .crunchyroll import CrunchyrollIE +from .crunchyroll import ( + CrunchyrollIE, + CrunchyrollShowPlaylistIE +) from .cspan import CSpanIE from .d8 import D8IE from .dailymotion import ( @@ -65,10 +74,14 @@ from .dailymotion import ( DailymotionUserIE, ) from .daum import DaumIE +from .dbtv import DBTVIE +from .deezer import DeezerPlaylistIE from .dfb import DFBIE from .dotsub import DotsubIE from .dreisat import DreiSatIE +from .drtuber import DrTuberIE from .drtv import DRTVIE +from .dump import DumpIE from .defense import DefenseGouvFrIE from .discovery import DiscoveryIE from .divxstage import DivxStageIE @@ -76,13 +89,20 @@ from .dropbox import DropboxIE from .ebaumsworld import EbaumsWorldIE from .ehow import EHowIE from .eighttracks import EightTracksIE +from .einthusan import EinthusanIE from .eitb import EitbIE +from .ellentv import ( + EllenTVIE, + EllenTVClipsIE, +) from .elpais import ElPaisIE -from .empflix import EmpflixIE +from .empflix import EMPFlixIE from .engadget import EngadgetIE +from .eporner import EpornerIE from .escapist import EscapistIE from .everyonesmixtape import EveryonesMixtapeIE from .exfm import ExfmIE +from .expotv import ExpoTVIE from .extremetube import ExtremeTubeIE from .facebook import FacebookIE from .faz import FazIE @@ -110,22 +130,33 @@ from .freesound import FreesoundIE from .freespeech import FreespeechIE from .funnyordie import FunnyOrDieIE from .gamekings import GamekingsIE -from .gameone import GameOneIE +from .gameone import ( + GameOneIE, + GameOnePlaylistIE, +) from .gamespot import GameSpotIE from .gamestar import GameStarIE from .gametrailers import GametrailersIE from .gdcvault import GDCVaultIE from .generic import GenericIE +from .glide import GlideIE +from .globo import GloboIE from .godtube import GodTubeIE +from .golem import GolemIE from .googleplus import GooglePlusIE from .googlesearch import GoogleSearchIE from .gorillavid import GorillaVidIE from .goshgay import GoshgayIE +from .grooveshark import GroovesharkIE from .hark import HarkIE +from .heise import HeiseIE from .helsinki import HelsinkiIE from .hentaistigma import HentaiStigmaIE +from .hornbunny import HornBunnyIE +from .hostingbulk import HostingBulkIE from .hotnewhiphop import HotNewHipHopIE from .howcast import HowcastIE +from .howstuffworks import HowStuffWorksIE from .huffpost import HuffPostIE from .hypem import HypemIE from .iconosquare import IconosquareIE @@ -146,8 +177,8 @@ from .ivi import ( from .izlesene import IzleseneIE from .jadorecettepub import JadoreCettePubIE from .jeuxvideo import JeuxVideoIE +from .jove import JoveIE from .jukebox import JukeboxIE -from .justintv import JustinTVIE from .jpopsukitv import JpopsukiIE from .kankan import KankanIE from .keezmovies import KeezMoviesIE @@ -158,6 +189,7 @@ from .kontrtube import KontrTubeIE from .krasview import KrasViewIE from .ku6 import Ku6IE from .la7 import LA7IE +from .laola1tv import Laola1TvIE from .lifenews import LifeNewsIE from .liveleak import LiveLeakIE from .livestream import ( @@ -165,6 +197,7 @@ from .livestream import ( LivestreamOriginalIE, LivestreamShortenerIE, ) +from .lrt import LRTIE from .lynda import ( LyndaIE, LyndaCourseIE @@ -176,15 +209,22 @@ from .malemotion import MalemotionIE from .mdr import MDRIE from .metacafe import MetacafeIE from .metacritic import MetacriticIE +from .mgoon import MgoonIE +from .ministrygrid import MinistryGridIE from .mit import TechTVMITIE, MITIE, OCWMITIE +from .mitele import MiTeleIE from .mixcloud import MixcloudIE from .mlb import MLBIE from .mpora import MporaIE +from .moevideo import MoeVideoIE from .mofosex import MofosexIE +from .mojvideo import MojvideoIE +from .moniker import MonikerIE from .mooshare import MooshareIE from .morningstar import MorningstarIE from .motherless import MotherlessIE from .motorsport import MotorsportIE +from .movieclips import MovieClipsIE from .moviezine import MoviezineIE from .movshare import MovShareIE from .mtv import ( @@ -192,7 +232,9 @@ from .mtv import ( MTVServicesEmbeddedIE, MTVIggyIE, ) +from .muenchentv import MuenchenTVIE from .musicplayon import MusicPlayOnIE +from .musicvault import MusicVaultIE from .muzu import MuzuTVIE from .myspace import MySpaceIE from .myspass import MySpassIE @@ -208,15 +250,20 @@ from .ndtv import NDTVIE from .newgrounds import NewgroundsIE from .newstube import NewstubeIE from .nfb import NFBIE +from .nfl import NFLIE from .nhl import NHLIE, NHLVideocenterIE -from .niconico import NiconicoIE +from .niconico import NiconicoIE, NiconicoPlaylistIE from .ninegag import NineGagIE from .noco import NocoIE from .normalboots import NormalbootsIE +from .nosvideo import NosVideoIE from .novamov import NovaMovIE from .nowness import NownessIE from .nowvideo import NowVideoIE -from .npo import NPOIE +from .npo import ( + NPOIE, + TegenlichtVproIE, +) from .nrk import ( NRKIE, NRKTVIE, @@ -224,19 +271,31 @@ from .nrk import ( from .ntv import NTVIE from .nytimes import NYTimesIE from .nuvid import NuvidIE -from .oe1 import OE1IE +from .oktoberfesttv import OktoberfestTVIE from .ooyala import OoyalaIE -from .orf import ORFIE +from .orf import ( + ORFTVthekIE, + ORFOE1IE, + ORFFM4IE, +) from .parliamentliveuk import ParliamentLiveUKIE +from .patreon import PatreonIE from .pbs import PBSIE +from .phoenix import PhoenixIE from .photobucket import PhotobucketIE +from .planetaplay import PlanetaPlayIE +from .played import PlayedIE +from .playfm import PlayFMIE from .playvid import PlayvidIE from .podomatic import PodomaticIE from .pornhd import PornHdIE from .pornhub import PornHubIE from .pornotube import PornotubeIE +from .pornoxo import PornoXOIE +from .promptfile import PromptFileIE from .prosiebensat1 import ProSiebenSat1IE from .pyvideo import PyvideoIE +from .quickvid import QuickVidIE from .radiofrance import RadioFranceIE from .rai import RaiIE from .rbmaradio import RBMARadioIE @@ -247,9 +306,10 @@ from .ro220 import Ro220IE from .rottentomatoes import RottenTomatoesIE from .roxwel import RoxwelIE from .rtbf import RTBFIE +from .rtlnl import RtlXlIE from .rtlnow import RTLnowIE from .rts import RTSIE -from .rtve import RTVEALaCartaIE +from .rtve import RTVEALaCartaIE, RTVELiveIE from .ruhd import RUHDIE from .rutube import ( RutubeIE, @@ -260,10 +320,13 @@ from .rutube import ( from .rutv import RUTVIE from .sapo import SapoIE from .savefrom import SaveFromIE +from .sbs import SBSIE from .scivee import SciVeeIE from .screencast import ScreencastIE from .servingsys import ServingSysIE +from .sexykarma import SexyKarmaIE from .shared import SharedIE +from .sharesix import ShareSixIE from .sina import SinaIE from .slideshare import SlideshareIE from .slutload import SlutloadIE @@ -289,17 +352,23 @@ from .southpark import ( ) from .space import SpaceIE from .spankwire import SpankwireIE -from .spiegel import SpiegelIE +from .spiegel import SpiegelIE, SpiegelArticleIE from .spiegeltv import SpiegeltvIE from .spike import SpikeIE +from .sport5 import Sport5IE +from .sportbox import SportBoxIE +from .sportdeutschland import SportDeutschlandIE +from .srmediathek import SRMediathekIE from .stanfordoc import StanfordOpenClassroomIE from .steam import SteamIE from .streamcloud import StreamcloudIE from .streamcz import StreamCZIE +from .sunporno import SunPornoIE from .swrmediathek import SWRMediathekIE from .syfy import SyfyIE from .sztvhu import SztvHuIE from .tagesschau import TagesschauIE +from .tapely import TapelyIE from .teachertube import ( TeacherTubeIE, TeacherTubeUserIE, @@ -308,13 +377,22 @@ from .teachingchannel import TeachingChannelIE from .teamcoco import TeamcocoIE from .techtalks import TechTalksIE from .ted import TEDIE +from .telecinco import TelecincoIE +from .telemb import TeleMBIE from .tenplay import TenPlayIE from .testurl import TestURLIE from .tf1 import TF1IE +from .theonion import TheOnionIE from .theplatform import ThePlatformIE +from .thesixtyone import TheSixtyOneIE from .thisav import ThisAVIE from .tinypic import TinyPicIE from .tlc import TlcIE, TlcDeIE +from .tnaflix import TNAFlixIE +from .thvideo import ( + THVideoIE, + THVideoPlaylistIE +) from .toutv import TouTvIE from .toypics import ToypicsUserIE, ToypicsIE from .traileraddict import TrailerAddictIE @@ -323,10 +401,12 @@ from .trutube import TruTubeIE from .tube8 import Tube8IE from .tudou import TudouIE from .tumblr import TumblrIE +from .turbo import TurboIE from .tutv import TutvIE from .tvigle import TvigleIE from .tvp import TvpIE from .tvplay import TVPlayIE +from .twitch import TwitchIE from .ubu import UbuIE from .udemy import ( UdemyIE, @@ -340,23 +420,27 @@ from .veehd import VeeHDIE from .veoh import VeohIE from .vesti import VestiIE from .vevo import VevoIE +from .vgtv import VGTVIE from .vh1 import VH1IE from .viddler import ViddlerIE from .videobam import VideoBamIE from .videodetective import VideoDetectiveIE from .videolecturesnet import VideoLecturesNetIE from .videofyme import VideofyMeIE +from .videomega import VideoMegaIE from .videopremium import VideoPremiumIE from .videott import VideoTtIE from .videoweed import VideoWeedIE from .vidme import VidmeIE +from .vidzi import VidziIE from .vimeo import ( VimeoIE, - VimeoChannelIE, - VimeoUserIE, VimeoAlbumIE, + VimeoChannelIE, VimeoGroupsIE, + VimeoLikesIE, VimeoReviewIE, + VimeoUserIE, VimeoWatchLaterIE, ) from .vimple import VimpleIE @@ -367,11 +451,15 @@ from .vine import ( from .viki import VikiIE from .vk import VKIE from .vodlocker import VodlockerIE +from .vporn import VpornIE +from .vrt import VRTIE from .vube import VubeIE from .vuclip import VuClipIE from .vulture import VultureIE +from .walla import WallaIE from .washingtonpost import WashingtonPostIE from .wat import WatIE +from .wayofthemaster import WayOfTheMasterIE from .wdr import ( WDRIE, WDRMobileIE, @@ -383,18 +471,20 @@ from .wistia import WistiaIE from .worldstarhiphop import WorldStarHipHopIE from .wrzuta import WrzutaIE from .xbef import XBefIE +from .xboxclips import XboxClipsIE from .xhamster import XHamsterIE from .xnxx import XNXXIE from .xvideos import XVideosIE from .xtube import XTubeUserIE, XTubeIE from .yahoo import ( YahooIE, - YahooNewsIE, YahooSearchIE, ) +from .ynet import YnetIE from .youjizz import YouJizzIE from .youku import YoukuIE from .youporn import YouPornIE +from .yourupload import YourUploadIE from .youtube import ( YoutubeIE, YoutubeChannelIE, @@ -412,10 +502,8 @@ from .youtube import ( YoutubeUserIE, YoutubeWatchLaterIE, ) - from .zdf import ZDFIE - _ALL_CLASSES = [ klass for name, klass in globals().items() diff --git a/youtube_dl/extractor/abc.py b/youtube_dl/extractor/abc.py index 7d89f44..69f8932 100644 --- a/youtube_dl/extractor/abc.py +++ b/youtube_dl/extractor/abc.py @@ -22,8 +22,7 @@ class ABCIE(InfoExtractor): } def _real_extract(self, url): - mobj = re.match(self._VALID_URL, url) - video_id = mobj.group('id') + video_id = self._match_id(url) webpage = self._download_webpage(url, video_id) urls_info_json = self._search_regex( diff --git a/youtube_dl/extractor/academicearth.py b/youtube_dl/extractor/academicearth.py index 59d3bbb..c983ef0 100644 --- a/youtube_dl/extractor/academicearth.py +++ b/youtube_dl/extractor/academicearth.py @@ -7,6 +7,15 @@ from .common import InfoExtractor class AcademicEarthCourseIE(InfoExtractor): _VALID_URL = r'^https?://(?:www\.)?academicearth\.org/playlists/(?P[^?#/]+)' IE_NAME = 'AcademicEarth:Course' + _TEST = { + 'url': 'http://academicearth.org/playlists/laws-of-nature/', + 'info_dict': { + 'id': 'laws-of-nature', + 'title': 'Laws of Nature', + 'description': 'Introduce yourself to the laws of nature with these free online college lectures from Yale, Harvard, and MIT.', + }, + 'playlist_count': 4, + } def _real_extract(self, url): m = re.match(self._VALID_URL, url) diff --git a/youtube_dl/extractor/adultswim.py b/youtube_dl/extractor/adultswim.py index a00bfcb..b4b40f2 100644 --- a/youtube_dl/extractor/adultswim.py +++ b/youtube_dl/extractor/adultswim.py @@ -75,7 +75,9 @@ class AdultSwimIE(InfoExtractor): video_path = mobj.group('path') webpage = self._download_webpage(url, video_path) - episode_id = self._html_search_regex(r'', webpage, 'episode_id') + episode_id = self._html_search_regex( + r'', + webpage, 'episode_id') title = self._og_search_title(webpage) index_url = 'http://asfix.adultswim.com/asfix-svc/episodeSearch/getEpisodesByIDs?networkName=AS&ids=%s' % episode_id @@ -97,7 +99,9 @@ class AdultSwimIE(InfoExtractor): duration = segment_el.attrib.get('duration') segment_url = 'http://asfix.adultswim.com/asfix-svc/episodeservices/getCvpPlaylist?networkName=AS&id=%s' % segment_id - idoc = self._download_xml(segment_url, segment_title, 'Downloading segment information', 'Unable to download segment information') + idoc = self._download_xml( + segment_url, segment_title, + 'Downloading segment information', 'Unable to download segment information') formats = [] file_els = idoc.findall('.//files/file') diff --git a/youtube_dl/extractor/anysex.py b/youtube_dl/extractor/anysex.py new file mode 100644 index 0000000..ad86d6e --- /dev/null +++ b/youtube_dl/extractor/anysex.py @@ -0,0 +1,61 @@ +from __future__ import unicode_literals + +import re + +from .common import InfoExtractor +from ..utils import ( + parse_duration, + int_or_none, +) + + +class AnySexIE(InfoExtractor): + _VALID_URL = r'https?://(?:www\.)?anysex\.com/(?P\d+)' + _TEST = { + 'url': 'http://anysex.com/156592/', + 'md5': '023e9fbb7f7987f5529a394c34ad3d3d', + 'info_dict': { + 'id': '156592', + 'ext': 'mp4', + 'title': 'Busty and sexy blondie in her bikini strips for you', + 'description': 'md5:de9e418178e2931c10b62966474e1383', + 'categories': ['Erotic'], + 'duration': 270, + 'age_limit': 18, + } + } + + def _real_extract(self, url): + mobj = re.match(self._VALID_URL, url) + video_id = mobj.group('id') + + webpage = self._download_webpage(url, video_id) + + video_url = self._html_search_regex(r"video_url\s*:\s*'([^']+)'", webpage, 'video URL') + + title = self._html_search_regex(r'(.*?)', webpage, 'title') + description = self._html_search_regex( + r'
]*>([^<]+)
', webpage, 'description', fatal=False) + thumbnail = self._html_search_regex( + r'preview_url\s*:\s*\'(.*?)\'', webpage, 'thumbnail', fatal=False) + + categories = re.findall( + r'
([^<]+)', webpage) + + duration = parse_duration(self._search_regex( + r'Duration: (?:)?(\d+:\d+)', webpage, 'duration', fatal=False)) + view_count = int_or_none(self._html_search_regex( + r'Views: (\d+)', webpage, 'view count', fatal=False)) + + return { + 'id': video_id, + 'url': video_url, + 'ext': 'mp4', + 'title': title, + 'description': description, + 'thumbnail': thumbnail, + 'categories': categories, + 'duration': duration, + 'view_count': view_count, + 'age_limit': 18, + } diff --git a/youtube_dl/extractor/aol.py b/youtube_dl/extractor/aol.py index a7bfe5a..47f8e41 100644 --- a/youtube_dl/extractor/aol.py +++ b/youtube_dl/extractor/aol.py @@ -21,7 +21,7 @@ class AolIE(InfoExtractor): (?:$|\?) ''' - _TEST = { + _TESTS = [{ 'url': 'http://on.aol.com/video/u-s--official-warns-of-largest-ever-irs-phone-scam-518167793?icid=OnHomepageC2Wide_MustSee_Img', 'md5': '18ef68f48740e86ae94b98da815eec42', 'info_dict': { @@ -30,7 +30,14 @@ class AolIE(InfoExtractor): 'title': 'U.S. Official Warns Of \'Largest Ever\' IRS Phone Scam', }, 'add_ie': ['FiveMin'], - } + }, { + 'url': 'http://on.aol.com/playlist/brace-yourself---todays-weirdest-news-152147?icid=OnHomepageC4_Omg_Img#_videoid=518184316', + 'info_dict': { + 'id': '152147', + 'title': 'Brace Yourself - Today\'s Weirdest News', + }, + 'playlist_mincount': 10, + }] def _real_extract(self, url): mobj = re.match(self._VALID_URL, url) diff --git a/youtube_dl/extractor/aparat.py b/youtube_dl/extractor/aparat.py index 7e93bc4..7486088 100644 --- a/youtube_dl/extractor/aparat.py +++ b/youtube_dl/extractor/aparat.py @@ -1,5 +1,7 @@ #coding: utf-8 +from __future__ import unicode_literals + import re from .common import InfoExtractor @@ -13,13 +15,14 @@ class AparatIE(InfoExtractor): _VALID_URL = r'^https?://(?:www\.)?aparat\.com/(?:v/|video/video/embed/videohash/)(?P[a-zA-Z0-9]+)' _TEST = { - u'url': u'http://www.aparat.com/v/wP8On', - u'file': u'wP8On.mp4', - u'md5': u'6714e0af7e0d875c5a39c4dc4ab46ad1', - u'info_dict': { - u"title": u"تیم گلکسی 11 - زومیت", + 'url': 'http://www.aparat.com/v/wP8On', + 'md5': '6714e0af7e0d875c5a39c4dc4ab46ad1', + 'info_dict': { + 'id': 'wP8On', + 'ext': 'mp4', + 'title': 'تیم گلکسی 11 - زومیت', }, - #u'skip': u'Extremely unreliable', + # 'skip': 'Extremely unreliable', } def _real_extract(self, url): @@ -29,8 +32,8 @@ class AparatIE(InfoExtractor): # Note: There is an easier-to-parse configuration at # http://www.aparat.com/video/video/config/videohash/%video_id # but the URL in there does not work - embed_url = (u'http://www.aparat.com/video/video/embed/videohash/' + - video_id + u'/vt/frame') + embed_url = ('http://www.aparat.com/video/video/embed/videohash/' + + video_id + '/vt/frame') webpage = self._download_webpage(embed_url, video_id) video_urls = re.findall(r'fileList\[[0-9]+\]\s*=\s*"([^"]+)"', webpage) diff --git a/youtube_dl/extractor/appletrailers.py b/youtube_dl/extractor/appletrailers.py index dc8657b..4359b88 100644 --- a/youtube_dl/extractor/appletrailers.py +++ b/youtube_dl/extractor/appletrailers.py @@ -6,6 +6,7 @@ import json from .common import InfoExtractor from ..utils import ( compat_urlparse, + int_or_none, ) @@ -110,8 +111,8 @@ class AppleTrailersIE(InfoExtractor): formats.append({ 'url': format_url, 'format': format['type'], - 'width': format['width'], - 'height': int(format['height']), + 'width': int_or_none(format['width']), + 'height': int_or_none(format['height']), }) self._sort_formats(formats) diff --git a/youtube_dl/extractor/ard.py b/youtube_dl/extractor/ard.py index 957bdef..630b1fa 100644 --- a/youtube_dl/extractor/ard.py +++ b/youtube_dl/extractor/ard.py @@ -4,16 +4,21 @@ from __future__ import unicode_literals import re from .common import InfoExtractor +from .generic import GenericIE from ..utils import ( determine_ext, ExtractorError, qualities, - compat_urllib_parse_urlparse, - compat_urllib_parse, + int_or_none, + parse_duration, + unified_strdate, + xpath_text, + parse_xml, ) -class ARDIE(InfoExtractor): +class ARDMediathekIE(InfoExtractor): + IE_NAME = 'ARD:mediathek' _VALID_URL = r'^https?://(?:(?:www\.)?ardmediathek\.de|mediathek\.daserste\.de)/(?:.*/)(?P[0-9]+|[^0-9][^/\?]+)[^/\?]*(?:\?.*)?' _TESTS = [{ @@ -46,11 +51,16 @@ class ARDIE(InfoExtractor): else: video_id = m.group('video_id') - urlp = compat_urllib_parse_urlparse(url) - url = urlp._replace(path=compat_urllib_parse.quote(urlp.path.encode('utf-8'))).geturl() - webpage = self._download_webpage(url, video_id) + if '>Der gewünschte Beitrag ist nicht mehr verfügbar.<' in webpage: + raise ExtractorError('Video %s is no longer available' % video_id, expected=True) + + if re.search(r'[\?&]rss($|[=&])', url): + doc = parse_xml(webpage) + if doc.tag == 'rss': + return GenericIE()._extract_rss(url, video_id, doc) + title = self._html_search_regex( [r'(.*?)
', r'', @@ -125,3 +135,61 @@ class ARDIE(InfoExtractor): 'formats': formats, 'thumbnail': thumbnail, } + + +class ARDIE(InfoExtractor): + _VALID_URL = '(?Phttps?://(www\.)?daserste\.de/[^?#]+/videos/(?P[^/?#]+)-(?P[0-9]+))\.html' + _TEST = { + 'url': 'http://www.daserste.de/information/reportage-dokumentation/dokus/videos/die-story-im-ersten-mission-unter-falscher-flagge-100.html', + 'md5': 'd216c3a86493f9322545e045ddc3eb35', + 'info_dict': { + 'display_id': 'die-story-im-ersten-mission-unter-falscher-flagge', + 'id': '100', + 'ext': 'mp4', + 'duration': 2600, + 'title': 'Die Story im Ersten: Mission unter falscher Flagge', + 'upload_date': '20140804', + 'thumbnail': 're:^https?://.*\.jpg$', + } + } + + def _real_extract(self, url): + mobj = re.match(self._VALID_URL, url) + display_id = mobj.group('display_id') + + player_url = mobj.group('mainurl') + '~playerXml.xml' + doc = self._download_xml(player_url, display_id) + video_node = doc.find('./video') + upload_date = unified_strdate(xpath_text( + video_node, './broadcastDate')) + thumbnail = xpath_text(video_node, './/teaserImage//variant/url') + + formats = [] + for a in video_node.findall('.//asset'): + f = { + 'format_id': a.attrib['type'], + 'width': int_or_none(a.find('./frameWidth').text), + 'height': int_or_none(a.find('./frameHeight').text), + 'vbr': int_or_none(a.find('./bitrateVideo').text), + 'abr': int_or_none(a.find('./bitrateAudio').text), + 'vcodec': a.find('./codecVideo').text, + 'tbr': int_or_none(a.find('./totalBitrate').text), + } + if a.find('./serverPrefix').text: + f['url'] = a.find('./serverPrefix').text + f['playpath'] = a.find('./fileName').text + else: + f['url'] = a.find('./fileName').text + formats.append(f) + self._sort_formats(formats) + + return { + 'id': mobj.group('id'), + 'formats': formats, + 'display_id': display_id, + 'title': video_node.find('./title').text, + 'duration': parse_duration(video_node.find('./duration').text), + 'upload_date': upload_date, + 'thumbnail': thumbnail, + } + diff --git a/youtube_dl/extractor/arte.py b/youtube_dl/extractor/arte.py index 9591bad..b9a9440 100644 --- a/youtube_dl/extractor/arte.py +++ b/youtube_dl/extractor/arte.py @@ -10,8 +10,8 @@ from ..utils import ( unified_strdate, determine_ext, get_element_by_id, - compat_str, get_element_by_attribute, + int_or_none, ) # There are different sources of video in arte.tv, the extraction process @@ -78,22 +78,36 @@ class ArteTVPlus7IE(InfoExtractor): def _extract_from_webpage(self, webpage, video_id, lang): json_url = self._html_search_regex( - r'arte_vp_url="(.*?)"', webpage, 'json vp url') + [r'arte_vp_url=["\'](.*?)["\']', r'data-url=["\']([^"]+)["\']'], + webpage, 'json vp url') return self._extract_from_json_url(json_url, video_id, lang) def _extract_from_json_url(self, json_url, video_id, lang): info = self._download_json(json_url, video_id) player_info = info['videoJsonPlayer'] + upload_date_str = player_info.get('shootingDate') + if not upload_date_str: + upload_date_str = player_info.get('VDA', '').split(' ')[0] + + title = player_info['VTI'].strip() + subtitle = player_info.get('VSU', '').strip() + if subtitle: + title += ' - %s' % subtitle + info_dict = { 'id': player_info['VID'], - 'title': player_info['VTI'], + 'title': title, 'description': player_info.get('VDE'), - 'upload_date': unified_strdate(player_info.get('VDA', '').split(' ')[0]), + 'upload_date': unified_strdate(upload_date_str), 'thumbnail': player_info.get('programImage') or player_info.get('VTU', {}).get('IUR'), } - all_formats = player_info['VSR'].values() + all_formats = [] + for format_id, format_dict in player_info['VSR'].items(): + fmt = dict(format_dict) + fmt['format_id'] = format_id + all_formats.append(fmt) # Some formats use the m3u8 protocol all_formats = list(filter(lambda f: f.get('videoFormat') != 'M3U8', all_formats)) def _match_lang(f): @@ -109,15 +123,19 @@ class ArteTVPlus7IE(InfoExtractor): regexes = [r'VO?%s' % l, r'VO?.-ST%s' % l] return any(re.match(r, f['versionCode']) for r in regexes) # Some formats may not be in the same language as the url + # TODO: Might want not to drop videos that does not match requested language + # but to process those formats with lower precedence formats = filter(_match_lang, all_formats) - formats = list(formats) # in python3 filter returns an iterator + formats = list(formats) # in python3 filter returns an iterator if not formats: # Some videos are only available in the 'Originalversion' # they aren't tagged as being in French or German - if all(f['versionCode'] == 'VO' or f['versionCode'] == 'VA' for f in all_formats): - formats = all_formats - else: - raise ExtractorError(u'The formats list is empty') + # Sometimes there are neither videos of requested lang code + # nor original version videos available + # For such cases we just take all_formats as is + formats = all_formats + if not formats: + raise ExtractorError('The formats list is empty') if re.match(r'[A-Z]Q', formats[0]['quality']) is not None: def sort_key(f): @@ -140,22 +158,12 @@ class ArteTVPlus7IE(InfoExtractor): ) formats = sorted(formats, key=sort_key) def _format(format_info): - quality = '' - height = format_info.get('height') - if height is not None: - quality = compat_str(height) - bitrate = format_info.get('bitrate') - if bitrate is not None: - quality += '-%d' % bitrate - if format_info.get('versionCode') is not None: - format_id = '%s-%s' % (quality, format_info['versionCode']) - else: - format_id = quality info = { - 'format_id': format_id, - 'format_note': format_info.get('versionLibelle'), - 'width': format_info.get('width'), - 'height': height, + 'format_id': format_info['format_id'], + 'format_note': '%s, %s' % (format_info.get('versionCode'), format_info.get('versionLibelle')), + 'width': int_or_none(format_info.get('width')), + 'height': int_or_none(format_info.get('height')), + 'tbr': int_or_none(format_info.get('bitrate')), } if format_info['mediaType'] == 'rtmp': info['url'] = format_info['streamer'] @@ -173,16 +181,26 @@ class ArteTVPlus7IE(InfoExtractor): # It also uses the arte_vp_url url from the webpage to extract the information class ArteTVCreativeIE(ArteTVPlus7IE): IE_NAME = 'arte.tv:creative' - _VALID_URL = r'https?://creative\.arte\.tv/(?Pfr|de)/magazine?/(?P.+)' + _VALID_URL = r'https?://creative\.arte\.tv/(?Pfr|de)/(?:magazine?/)?(?P[^?#]+)' - _TEST = { + _TESTS = [{ 'url': 'http://creative.arte.tv/de/magazin/agentur-amateur-corporate-design', 'info_dict': { - 'id': '050489-002', + 'id': '72176', 'ext': 'mp4', - 'title': 'Agentur Amateur / Agence Amateur #2 : Corporate Design', + 'title': 'Folge 2 - Corporate Design', + 'upload_date': '20131004', }, - } + }, { + 'url': 'http://creative.arte.tv/fr/Monty-Python-Reunion', + 'info_dict': { + 'id': '160676', + 'ext': 'mp4', + 'title': 'Monty Python live (mostly)', + 'description': 'Événement ! Quarante-cinq ans après leurs premiers succès, les légendaires Monty Python remontent sur scène.\n', + 'upload_date': '20140805', + } + }] class ArteTVFutureIE(ArteTVPlus7IE): diff --git a/youtube_dl/extractor/audiomack.py b/youtube_dl/extractor/audiomack.py new file mode 100644 index 0000000..6232d2c --- /dev/null +++ b/youtube_dl/extractor/audiomack.py @@ -0,0 +1,69 @@ +# coding: utf-8 +from __future__ import unicode_literals + +from .common import InfoExtractor +from .soundcloud import SoundcloudIE +from ..utils import ExtractorError + +import time + + +class AudiomackIE(InfoExtractor): + _VALID_URL = r'https?://(?:www\.)?audiomack\.com/song/(?P[\w/-]+)' + IE_NAME = 'audiomack' + _TESTS = [ + #hosted on audiomack + { + 'url': 'http://www.audiomack.com/song/roosh-williams/extraordinary', + 'info_dict': + { + 'id' : 'roosh-williams/extraordinary', + 'ext': 'mp3', + 'title': 'Roosh Williams - Extraordinary' + } + }, + #hosted on soundcloud via audiomack + { + 'url': 'http://www.audiomack.com/song/xclusiveszone/take-kare', + 'file': '172419696.mp3', + 'info_dict': + { + 'ext': 'mp3', + 'title': 'Young Thug ft Lil Wayne - Take Kare', + "upload_date": "20141016", + "description": "New track produced by London On Da Track called “Take Kare\"\n\nhttp://instagram.com/theyoungthugworld\nhttps://www.facebook.com/ThuggerThuggerCashMoney\n", + "uploader": "Young Thug World" + } + } + ] + + def _real_extract(self, url): + video_id = self._match_id(url) + + api_response = self._download_json( + "http://www.audiomack.com/api/music/url/song/%s?_=%d" % ( + video_id, time.time()), + video_id) + + if "url" not in api_response: + raise ExtractorError("Unable to deduce api url of song") + realurl = api_response["url"] + + #Audiomack wraps a lot of soundcloud tracks in their branded wrapper + # - if so, pass the work off to the soundcloud extractor + if SoundcloudIE.suitable(realurl): + return {'_type': 'url', 'url': realurl, 'ie_key': 'Soundcloud'} + + webpage = self._download_webpage(url, video_id) + artist = self._html_search_regex( + r'(.*?)', webpage, "artist") + songtitle = self._html_search_regex( + r'

.*?(.*?)

', + webpage, "title") + title = artist + " - " + songtitle + + return { + 'id': video_id, + 'title': title, + 'url': realurl, + } diff --git a/youtube_dl/extractor/auengine.py b/youtube_dl/extractor/auengine.py index 20bf125..1c76553 100644 --- a/youtube_dl/extractor/auengine.py +++ b/youtube_dl/extractor/auengine.py @@ -24,8 +24,7 @@ class AUEngineIE(InfoExtractor): } def _real_extract(self, url): - mobj = re.match(self._VALID_URL, url) - video_id = mobj.group('id') + video_id = self._match_id(url) webpage = self._download_webpage(url, video_id) title = self._html_search_regex(r'(?P<title>.+?)', webpage, 'title') diff --git a/youtube_dl/extractor/bambuser.py b/youtube_dl/extractor/bambuser.py index ccd31c4..de5d4fa 100644 --- a/youtube_dl/extractor/bambuser.py +++ b/youtube_dl/extractor/bambuser.py @@ -59,6 +59,13 @@ class BambuserChannelIE(InfoExtractor): _VALID_URL = r'https?://bambuser\.com/channel/(?P.*?)(?:/|#|\?|$)' # The maximum number we can get with each request _STEP = 50 + _TEST = { + 'url': 'http://bambuser.com/channel/pixelversity', + 'info_dict': { + 'title': 'pixelversity', + }, + 'playlist_mincount': 60, + } def _real_extract(self, url): mobj = re.match(self._VALID_URL, url) @@ -73,10 +80,10 @@ class BambuserChannelIE(InfoExtractor): req = compat_urllib_request.Request(req_url) # Without setting this header, we wouldn't get any result req.add_header('Referer', 'http://bambuser.com/channel/%s' % user) - info_json = self._download_webpage(req, user, - 'Downloading page %d' % i) - results = json.loads(info_json)['result'] - if len(results) == 0: + data = self._download_json( + req, user, 'Downloading page %d' % i) + results = data['result'] + if not results: break last_id = results[-1]['vid'] urls.extend(self.url_result(v['page'], 'Bambuser') for v in results) diff --git a/youtube_dl/extractor/bandcamp.py b/youtube_dl/extractor/bandcamp.py index dcbbdef..c134466 100644 --- a/youtube_dl/extractor/bandcamp.py +++ b/youtube_dl/extractor/bandcamp.py @@ -15,13 +15,23 @@ class BandcampIE(InfoExtractor): _VALID_URL = r'https?://.*?\.bandcamp\.com/track/(?P.*)' _TESTS = [{ 'url': 'http://youtube-dl.bandcamp.com/track/youtube-dl-test-song', - 'file': '1812978515.mp3', 'md5': 'c557841d5e50261777a6585648adf439', 'info_dict': { - "title": "youtube-dl \"'/\\\u00e4\u21ad - youtube-dl test song \"'/\\\u00e4\u21ad", - "duration": 9.8485, + 'id': '1812978515', + 'ext': 'mp3', + 'title': "youtube-dl \"'/\\\u00e4\u21ad - youtube-dl test song \"'/\\\u00e4\u21ad", + 'duration': 9.8485, }, '_skip': 'There is a limit of 200 free downloads / month for the test song' + }, { + 'url': 'http://benprunty.bandcamp.com/track/lanius-battle', + 'md5': '2b68e5851514c20efdff2afc5603b8b4', + 'info_dict': { + 'id': '2650410135', + 'ext': 'mp3', + 'title': 'Lanius (Battle)', + 'uploader': 'Ben Prunty Music', + }, }] def _real_extract(self, url): @@ -59,9 +69,9 @@ class BandcampIE(InfoExtractor): raise ExtractorError('No free songs found') download_link = m_download.group(1) - video_id = re.search( - r'var TralbumData = {(.*?)id: (?P<id>\d*?)$', - webpage, re.MULTILINE | re.DOTALL).group('id') + video_id = self._search_regex( + r'var TralbumData = {.*?id: (?P<id>\d+),?$', + webpage, 'video id', flags=re.MULTILINE | re.DOTALL) download_webpage = self._download_webpage(download_link, video_id, 'Downloading free downloads page') # We get the dictionary of the track from some javascript code @@ -96,7 +106,7 @@ class BandcampAlbumIE(InfoExtractor): IE_NAME = 'Bandcamp:album' _VALID_URL = r'https?://(?:(?P<subdomain>[^.]+)\.)?bandcamp\.com(?:/album/(?P<title>[^?#]+))' - _TEST = { + _TESTS = [{ 'url': 'http://blazo.bandcamp.com/album/jazz-format-mixtape-vol-1', 'playlist': [ { @@ -118,7 +128,13 @@ class BandcampAlbumIE(InfoExtractor): 'playlistend': 2 }, 'skip': 'Bandcamp imposes download limits. See test_playlists:test_bandcamp_album for the playlist test' - } + }, { + 'url': 'http://nightbringer.bandcamp.com/album/hierophany-of-the-open-grave', + 'info_dict': { + 'title': 'Hierophany of the Open Grave', + }, + 'playlist_mincount': 9, + }] def _real_extract(self, url): mobj = re.match(self._VALID_URL, url) diff --git a/youtube_dl/extractor/beeg.py b/youtube_dl/extractor/beeg.py new file mode 100644 index 0000000..314e37f --- /dev/null +++ b/youtube_dl/extractor/beeg.py @@ -0,0 +1,65 @@ +from __future__ import unicode_literals + +import re + +from .common import InfoExtractor + + +class BeegIE(InfoExtractor): + _VALID_URL = r'https?://(?:www\.)?beeg\.com/(?P<id>\d+)' + _TEST = { + 'url': 'http://beeg.com/5416503', + 'md5': '634526ae978711f6b748fe0dd6c11f57', + 'info_dict': { + 'id': '5416503', + 'ext': 'mp4', + 'title': 'Sultry Striptease', + 'description': 'md5:6db3c6177972822aaba18652ff59c773', + 'categories': list, # NSFW + 'thumbnail': 're:https?://.*\.jpg$', + 'age_limit': 18, + } + } + + def _real_extract(self, url): + mobj = re.match(self._VALID_URL, url) + video_id = mobj.group('id') + + webpage = self._download_webpage(url, video_id) + + quality_arr = self._search_regex( + r'(?s)var\s+qualityArr\s*=\s*{\s*(.+?)\s*}', webpage, 'quality formats') + + formats = [{ + 'url': fmt[1], + 'format_id': fmt[0], + 'height': int(fmt[0][:-1]), + } for fmt in re.findall(r"'([^']+)'\s*:\s*'([^']+)'", quality_arr)] + + self._sort_formats(formats) + + title = self._html_search_regex( + r'<title>([^<]+)\s*-\s*beeg\.?', webpage, 'title') + + description = self._html_search_regex( + r'[0-9]{4})/(?P[0-9]{2})/(?P[0-9]{2})/(?P[^/#?_]+)' + _TEST = { + 'url': 'http://www.behindkink.com/2014/08/14/ab1576-performers-voice-finally-heard-the-bill-is-killed/', + 'md5': '41ad01222b8442089a55528fec43ec01', + 'info_dict': { + 'id': '36370', + 'ext': 'mp4', + 'title': 'AB1576 - PERFORMERS VOICE FINALLY HEARD - THE BILL IS KILLED!', + 'description': 'The adult industry voice was finally heard as Assembly Bill 1576 remained\xa0 in suspense today at the Senate Appropriations Hearing. AB1576 was, among other industry damaging issues, a condom mandate...', + 'upload_date': '20140814', + 'thumbnail': 'http://www.behindkink.com/wp-content/uploads/2014/08/36370_AB1576_Win.jpg', + 'age_limit': 18, + } + } + + def _real_extract(self, url): + mobj = re.match(self._VALID_URL, url) + display_id = mobj.group('id') + year = mobj.group('year') + month = mobj.group('month') + day = mobj.group('day') + upload_date = year + month + day + + webpage = self._download_webpage(url, display_id) + + video_url = self._search_regex( + r"'file':\s*'([^']+)'", + webpage, 'URL base') + + video_id = url_basename(video_url) + video_id = video_id.split('_')[0] + + return { + 'id': video_id, + 'url': video_url, + 'ext': 'mp4', + 'title': self._og_search_title(webpage), + 'display_id': display_id, + 'thumbnail': self._og_search_thumbnail(webpage), + 'description': self._og_search_description(webpage), + 'upload_date': upload_date, + 'age_limit': 18, + } diff --git a/youtube_dl/extractor/bild.py b/youtube_dl/extractor/bild.py new file mode 100644 index 0000000..0269d11 --- /dev/null +++ b/youtube_dl/extractor/bild.py @@ -0,0 +1,39 @@ +#coding: utf-8 +from __future__ import unicode_literals + +from .common import InfoExtractor +from ..utils import int_or_none + + +class BildIE(InfoExtractor): + _VALID_URL = r'https?://(?:www\.)?bild\.de/(?:[^/]+/)+(?P[^/]+)-(?P\d+)(?:,auto=true)?\.bild\.html' + IE_DESC = 'Bild.de' + _TEST = { + 'url': 'http://www.bild.de/video/clip/apple-ipad-air/das-koennen-die-neuen-ipads-38184146.bild.html', + 'md5': 'dd495cbd99f2413502a1713a1156ac8a', + 'info_dict': { + 'id': '38184146', + 'ext': 'mp4', + 'title': 'BILD hat sie getestet', + 'thumbnail': 'http://bilder.bild.de/fotos/stand-das-koennen-die-neuen-ipads-38184138/Bild/1.bild.jpg', + 'duration': 196, + 'description': 'Mit dem iPad Air 2 und dem iPad Mini 3 hat Apple zwei neue Tablet-Modelle präsentiert. BILD-Reporter Sven Stein durfte die Geräte bereits testen. ', + } + } + + def _real_extract(self, url): + video_id = self._match_id(url) + + xml_url = url.split(".bild.html")[0] + ",view=xml.bild.xml" + doc = self._download_xml(xml_url, video_id) + + duration = int_or_none(doc.attrib.get('duration'), scale=1000) + + return { + 'id': video_id, + 'title': doc.attrib['ueberschrift'], + 'description': doc.attrib.get('text'), + 'url': doc.attrib['src'], + 'thumbnail': doc.attrib.get('img'), + 'duration': duration, + } diff --git a/youtube_dl/extractor/bliptv.py b/youtube_dl/extractor/bliptv.py index acfc4ad..57d17be 100644 --- a/youtube_dl/extractor/bliptv.py +++ b/youtube_dl/extractor/bliptv.py @@ -15,7 +15,7 @@ from ..utils import ( class BlipTVIE(SubtitlesInfoExtractor): - _VALID_URL = r'https?://(?:\w+\.)?blip\.tv/(?:(?:.+-|rss/flash/)(?P\d+)|((?:play/|api\.swf#)(?P[\da-zA-Z+]+)))' + _VALID_URL = r'https?://(?:\w+\.)?blip\.tv/(?:(?:.+-|rss/flash/)(?P\d+)|((?:play/|api\.swf#)(?P[\da-zA-Z+_]+)))' _TESTS = [ { @@ -49,6 +49,21 @@ class BlipTVIE(SubtitlesInfoExtractor): 'uploader_id': '792887', 'duration': 279, } + }, + { + # https://bugzilla.redhat.com/show_bug.cgi?id=967465 + 'url': 'http://a.blip.tv/api.swf#h6Uag5KbVwI', + 'md5': '314e87b1ebe7a48fcbfdd51b791ce5a6', + 'info_dict': { + 'id': '6573122', + 'ext': 'mov', + 'upload_date': '20130520', + 'description': 'Two hapless space marines argue over what to do when they realize they have an astronomically huge problem on their hands.', + 'title': 'Red vs. Blue Season 11 Trailer', + 'timestamp': 1369029609, + 'uploader': 'redvsblue', + 'uploader_id': '792887', + } } ] @@ -150,7 +165,7 @@ class BlipTVIE(SubtitlesInfoExtractor): class BlipTVUserIE(InfoExtractor): - _VALID_URL = r'(?:(?:(?:https?://)?(?:\w+\.)?blip\.tv/)|bliptvuser:)([^/]+)/*$' + _VALID_URL = r'(?:(?:(?:https?://)?(?:\w+\.)?blip\.tv/)|bliptvuser:)(?!api\.swf)([^/]+)/*$' _PAGE_SIZE = 12 IE_NAME = 'blip.tv:user' diff --git a/youtube_dl/extractor/br.py b/youtube_dl/extractor/br.py index 86f0c28..45ba517 100644 --- a/youtube_dl/extractor/br.py +++ b/youtube_dl/extractor/br.py @@ -1,8 +1,6 @@ # coding: utf-8 from __future__ import unicode_literals -import re - from .common import InfoExtractor from ..utils import ( ExtractorError, @@ -26,17 +24,8 @@ class BRIE(InfoExtractor): 'title': 'Wenn das Traditions-Theater wackelt', 'description': 'Heimatsound-Festival 2014: Wenn das Traditions-Theater wackelt', 'duration': 34, - } - }, - { - 'url': 'http://www.br.de/mediathek/video/sendungen/unter-unserem-himmel/unter-unserem-himmel-alpen-ueber-den-pass-100.html', - 'md5': 'ab451b09d861dbed7d7cc9ab0be19ebe', - 'info_dict': { - 'id': '2c060e69-3a27-4e13-b0f0-668fac17d812', - 'ext': 'mp4', - 'title': 'Über den Pass', - 'description': 'Die Eroberung der Alpen: Über den Pass', - 'duration': 2588, + 'uploader': 'BR', + 'upload_date': '20140802', } }, { @@ -77,8 +66,7 @@ class BRIE(InfoExtractor): ] def _real_extract(self, url): - mobj = re.match(self._VALID_URL, url) - display_id = mobj.group('id') + display_id = self._match_id(url) page = self._download_webpage(url, display_id) xml_url = self._search_regex( r"return BRavFramework\.register\(BRavFramework\('avPlayer_(?:[a-f0-9-]{36})'\)\.setup\({dataURL:'(/(?:[a-z0-9\-]+/)+[a-z0-9/~_.-]+)'}\)\);", page, 'XMLURL') diff --git a/youtube_dl/extractor/breakcom.py b/youtube_dl/extractor/breakcom.py index 1bfc9f3..2c0e5ee 100644 --- a/youtube_dl/extractor/breakcom.py +++ b/youtube_dl/extractor/breakcom.py @@ -4,37 +4,61 @@ import re import json from .common import InfoExtractor +from ..utils import ( + int_or_none, + parse_age_limit, +) class BreakIE(InfoExtractor): - _VALID_URL = r'http://(?:www\.)?break\.com/video/([^/]+)' - _TEST = { + _VALID_URL = r'http://(?:www\.)?break\.com/video/(?:[^/]+/)*.+-(?P\d+)' + _TESTS = [{ 'url': 'http://www.break.com/video/when-girls-act-like-guys-2468056', - 'md5': 'a3513fb1547fba4fb6cfac1bffc6c46b', + 'md5': '33aa4ff477ecd124d18d7b5d23b87ce5', 'info_dict': { 'id': '2468056', 'ext': 'mp4', 'title': 'When Girls Act Like D-Bags', } - } + }, { + 'url': 'http://www.break.com/video/ugc/baby-flex-2773063', + 'only_matching': True, + }] def _real_extract(self, url): - mobj = re.match(self._VALID_URL, url) - video_id = mobj.group(1).split("-")[-1] - embed_url = 'http://www.break.com/embed/%s' % video_id - webpage = self._download_webpage(embed_url, video_id) - info_json = self._search_regex(r'var embedVars = ({.*})\s*?', - webpage, 'info json', flags=re.DOTALL) - info = json.loads(info_json) - video_url = info['videoUri'] + video_id = self._match_id(url) + webpage = self._download_webpage( + 'http://www.break.com/embed/%s' % video_id, video_id) + info = json.loads(self._search_regex( + r'var embedVars = ({.*})\s*?', + webpage, 'info json', flags=re.DOTALL)) + youtube_id = info.get('youtubeId') if youtube_id: return self.url_result(youtube_id, 'Youtube') - final_url = video_url + '?' + info['AuthToken'] + formats = [{ + 'url': media['uri'] + '?' + info['AuthToken'], + 'tbr': media['bitRate'], + 'width': media['width'], + 'height': media['height'], + } for media in info['media']] + + if not formats: + formats.append({ + 'url': info['videoUri'] + }) + + self._sort_formats(formats) + + duration = int_or_none(info.get('videoLengthInSeconds')) + age_limit = parse_age_limit(info.get('audienceRating')) + return { 'id': video_id, - 'url': final_url, 'title': info['contentName'], 'thumbnail': info['thumbUri'], + 'duration': duration, + 'age_limit': age_limit, + 'formats': formats, } diff --git a/youtube_dl/extractor/brightcove.py b/youtube_dl/extractor/brightcove.py index 419951b..ad22cba 100644 --- a/youtube_dl/extractor/brightcove.py +++ b/youtube_dl/extractor/brightcove.py @@ -87,6 +87,15 @@ class BrightcoveIE(InfoExtractor): 'description': 'UCI MTB World Cup 2014: Fort William, UK - Downhill Finals', }, }, + { + # playlist test + # from http://support.brightcove.com/en/video-cloud/docs/playlist-support-single-video-players + 'url': 'http://c.brightcove.com/services/viewer/htmlFederated?playerID=3550052898001&playerKey=AQ%7E%7E%2CAAABmA9XpXk%7E%2C-Kp7jNgisre1fG5OdqpAFUTcs0lP_ZoL', + 'info_dict': { + 'title': 'Sealife', + }, + 'playlist_mincount': 7, + }, ] @classmethod @@ -154,12 +163,14 @@ class BrightcoveIE(InfoExtractor): def _extract_brightcove_urls(cls, webpage): """Return a list of all Brightcove URLs from the webpage """ - url_m = re.search(r'We're sorry.\s*

(.*?)

", webpage, + 'error message', default=None) + if error_msg is not None: + raise ExtractorError( + 'brightcove said: %s' % error_msg, expected=True) + self.report_extraction(video_id) info = self._search_regex(r'var experienceJSON = ({.*});', webpage, 'json') info = json.loads(info)['data'] diff --git a/youtube_dl/extractor/cbs.py b/youtube_dl/extractor/cbs.py index 822f9a7..db48dc2 100644 --- a/youtube_dl/extractor/cbs.py +++ b/youtube_dl/extractor/cbs.py @@ -25,7 +25,7 @@ class CBSIE(InfoExtractor): }, { 'url': 'http://www.cbs.com/shows/liveonletterman/artist/221752/st-vincent/', 'info_dict': { - 'id': 'P9gjWjelt6iP', + 'id': 'WWF_5KqY3PK1', 'ext': 'flv', 'title': 'Live on Letterman - St. Vincent', 'description': 'Live On Letterman: St. Vincent in concert from New York\'s Ed Sullivan Theater on Tuesday, July 16, 2014.', diff --git a/youtube_dl/extractor/chilloutzone.py b/youtube_dl/extractor/chilloutzone.py index a62395d..c922f69 100644 --- a/youtube_dl/extractor/chilloutzone.py +++ b/youtube_dl/extractor/chilloutzone.py @@ -42,7 +42,7 @@ class ChilloutzoneIE(InfoExtractor): 'id': '85523671', 'ext': 'mp4', 'title': 'The Sunday Times - Icons', - 'description': 'md5:a5f7ff82e2f7a9ed77473fe666954e84', + 'description': 're:(?s)^Watch the making of - makingoficons.com.{300,}', 'uploader': 'Us', 'uploader_id': 'usfilms', 'upload_date': '20140131' diff --git a/youtube_dl/extractor/cinemassacre.py b/youtube_dl/extractor/cinemassacre.py index 496271b..d064a28 100644 --- a/youtube_dl/extractor/cinemassacre.py +++ b/youtube_dl/extractor/cinemassacre.py @@ -42,7 +42,7 @@ class CinemassacreIE(InfoExtractor): webpage = self._download_webpage(url, display_id) video_date = mobj.group('date_Y') + mobj.group('date_m') + mobj.group('date_d') - mobj = re.search(r'src="(?Phttp://player\.screenwavemedia\.com/play/[a-zA-Z]+\.php\?id=(?:Cinemassacre-)?(?P.+?))"', webpage) + mobj = re.search(r'src="(?Phttp://player\.screenwavemedia\.com/play/[a-zA-Z]+\.php\?[^"]*\bid=(?:Cinemassacre-)?(?P.+?))"', webpage) if not mobj: raise ExtractorError('Can\'t extract embed url and video id') playerdata_url = mobj.group('embed_url') @@ -53,17 +53,22 @@ class CinemassacreIE(InfoExtractor): video_description = self._html_search_regex( r'
(?P.+?)
', webpage, 'description', flags=re.DOTALL, fatal=False) + video_thumbnail = self._og_search_thumbnail(webpage) playerdata = self._download_webpage(playerdata_url, video_id, 'Downloading player webpage') - video_thumbnail = self._search_regex( - r'image: \'(?P[^\']+)\'', playerdata, 'thumbnail', fatal=False) - sd_url = self._search_regex(r'file: \'([^\']+)\', label: \'SD\'', playerdata, 'sd_file') - videolist_url = self._search_regex(r'file: \'([^\']+\.smil)\'}', playerdata, 'videolist_url') + vidurl = self._search_regex( + r'\'vidurl\'\s*:\s*"([^\']+)"', playerdata, 'vidurl').replace('\\/', '/') + vidid = self._search_regex( + r'\'vidid\'\s*:\s*"([^\']+)"', playerdata, 'vidid') + videoserver = self._html_search_regex( + r"'videoserver'\s*:\s*'([^']+)'", playerdata, 'videoserver') + + videolist_url = 'http://%s/vod/smil:%s.smil/jwplayer.smil' % (videoserver, vidid) videolist = self._download_xml(videolist_url, video_id, 'Downloading videolist XML') formats = [] - baseurl = sd_url[:sd_url.rfind('/')+1] + baseurl = vidurl[:vidurl.rfind('/')+1] for video in videolist.findall('.//video'): src = video.get('src') if not src: diff --git a/youtube_dl/extractor/cliphunter.py b/youtube_dl/extractor/cliphunter.py index 58846e8..2edab90 100644 --- a/youtube_dl/extractor/cliphunter.py +++ b/youtube_dl/extractor/cliphunter.py @@ -1,11 +1,12 @@ from __future__ import unicode_literals +import json import re from .common import InfoExtractor -translation_table = { +_translation_table = { 'a': 'h', 'd': 'e', 'e': 'v', 'f': 'o', 'g': 'f', 'i': 'd', 'l': 'n', 'm': 'a', 'n': 'm', 'p': 'u', 'q': 't', 'r': 's', 'v': 'p', 'x': 'r', 'y': 'l', 'z': 'i', @@ -13,6 +14,10 @@ translation_table = { } +def _decode(s): + return ''.join(_translation_table.get(c, c) for c in s) + + class CliphunterIE(InfoExtractor): IE_NAME = 'cliphunter' @@ -22,35 +27,66 @@ class CliphunterIE(InfoExtractor): ''' _TEST = { 'url': 'http://www.cliphunter.com/w/1012420/Fun_Jynx_Maze_solo', - 'file': '1012420.flv', - 'md5': '15e7740f30428abf70f4223478dc1225', + 'md5': 'a2ba71eebf523859fe527a61018f723e', 'info_dict': { + 'id': '1012420', + 'ext': 'mp4', 'title': 'Fun Jynx Maze solo', + 'thumbnail': 're:^https?://.*\.jpg$', + 'age_limit': 18, } } def _real_extract(self, url): - mobj = re.match(self._VALID_URL, url) - video_id = mobj.group('id') - + video_id = self._match_id(url) webpage = self._download_webpage(url, video_id) + video_title = self._search_regex( + r'mediaTitle = "([^"]+)"', webpage, 'title') + pl_fiji = self._search_regex( r'pl_fiji = \'([^\']+)\'', webpage, 'video data') pl_c_qual = self._search_regex( r'pl_c_qual = "(.)"', webpage, 'video quality') - video_title = self._search_regex( - r'mediaTitle = "([^"]+)"', webpage, 'title') - - video_url = ''.join(translation_table.get(c, c) for c in pl_fiji) - + video_url = _decode(pl_fiji) formats = [{ 'url': video_url, - 'format_id': pl_c_qual, + 'format_id': 'default-%s' % pl_c_qual, }] + qualities_json = self._search_regex( + r'var pl_qualities\s*=\s*(.*?);\n', webpage, 'quality info') + qualities_data = json.loads(qualities_json) + + for i, t in enumerate( + re.findall(r"pl_fiji_([a-z0-9]+)\s*=\s*'([^']+')", webpage)): + quality_id, crypted_url = t + video_url = _decode(crypted_url) + f = { + 'format_id': quality_id, + 'url': video_url, + 'quality': i, + } + if quality_id in qualities_data: + qd = qualities_data[quality_id] + m = re.match( + r'''(?x)(?P[0-9]+)x(?P[0-9]+)<\\/b> + \s*\(\s*(?P[0-9]+)\s*kb\\/s''', qd) + if m: + f['width'] = int(m.group('width')) + f['height'] = int(m.group('height')) + f['tbr'] = int(m.group('tbr')) + formats.append(f) + self._sort_formats(formats) + + thumbnail = self._search_regex( + r"var\s+mov_thumb\s*=\s*'([^']+)';", + webpage, 'thumbnail', fatal=False) + return { 'id': video_id, 'title': video_title, 'formats': formats, + 'age_limit': self._rta_search(webpage), + 'thumbnail': thumbnail, } diff --git a/youtube_dl/extractor/cloudy.py b/youtube_dl/extractor/cloudy.py new file mode 100644 index 0000000..386f080 --- /dev/null +++ b/youtube_dl/extractor/cloudy.py @@ -0,0 +1,108 @@ +# coding: utf-8 +from __future__ import unicode_literals + +import re + +from .common import InfoExtractor +from ..utils import ( + ExtractorError, + compat_parse_qs, + compat_urllib_parse, + remove_end, + HEADRequest, + compat_HTTPError, +) + + +class CloudyIE(InfoExtractor): + _IE_DESC = 'cloudy.ec and videoraj.ch' + _VALID_URL = r'''(?x) + https?://(?:www\.)?(?Pcloudy\.ec|videoraj\.ch)/ + (?:v/|embed\.php\?id=) + (?P[A-Za-z0-9]+) + ''' + _EMBED_URL = 'http://www.%s/embed.php?id=%s' + _API_URL = 'http://www.%s/api/player.api.php?%s' + _MAX_TRIES = 2 + _TESTS = [ + { + 'url': 'https://www.cloudy.ec/v/af511e2527aac', + 'md5': '5cb253ace826a42f35b4740539bedf07', + 'info_dict': { + 'id': 'af511e2527aac', + 'ext': 'flv', + 'title': 'Funny Cats and Animals Compilation june 2013', + } + }, + { + 'url': 'http://www.videoraj.ch/v/47f399fd8bb60', + 'md5': '7d0f8799d91efd4eda26587421c3c3b0', + 'info_dict': { + 'id': '47f399fd8bb60', + 'ext': 'flv', + 'title': 'Burning a New iPhone 5 with Gasoline - Will it Survive?', + } + } + ] + + def _extract_video(self, video_host, video_id, file_key, error_url=None, try_num=0): + + if try_num > self._MAX_TRIES - 1: + raise ExtractorError('Unable to extract video URL', expected=True) + + form = { + 'file': video_id, + 'key': file_key, + } + + if error_url: + form.update({ + 'numOfErrors': try_num, + 'errorCode': '404', + 'errorUrl': error_url, + }) + + data_url = self._API_URL % (video_host, compat_urllib_parse.urlencode(form)) + player_data = self._download_webpage( + data_url, video_id, 'Downloading player data') + data = compat_parse_qs(player_data) + + try_num += 1 + + if 'error' in data: + raise ExtractorError( + '%s error: %s' % (self.IE_NAME, ' '.join(data['error_msg'])), + expected=True) + + title = data.get('title', [None])[0] + if title: + title = remove_end(title, '&asdasdas').strip() + + video_url = data.get('url', [None])[0] + + if video_url: + try: + self._request_webpage(HEADRequest(video_url), video_id, 'Checking video URL') + except ExtractorError as e: + if isinstance(e.cause, compat_HTTPError) and e.cause.code in [404, 410]: + self.report_warning('Invalid video URL, requesting another', video_id) + return self._extract_video(video_host, video_id, file_key, video_url, try_num) + + return { + 'id': video_id, + 'url': video_url, + 'title': title, + } + + def _real_extract(self, url): + mobj = re.match(self._VALID_URL, url) + video_host = mobj.group('host') + video_id = mobj.group('id') + + url = self._EMBED_URL % (video_host, video_id) + webpage = self._download_webpage(url, video_id) + + file_key = self._search_regex( + r'filekey\s*=\s*"([^"]+)"', webpage, 'file_key') + + return self._extract_video(video_host, video_id, file_key) diff --git a/youtube_dl/extractor/cnn.py b/youtube_dl/extractor/cnn.py index dae40c1..78877b1 100644 --- a/youtube_dl/extractor/cnn.py +++ b/youtube_dl/extractor/cnn.py @@ -12,7 +12,7 @@ from ..utils import ( class CNNIE(InfoExtractor): _VALID_URL = r'''(?x)https?://((edition|www)\.)?cnn\.com/video/(data/.+?|\?)/ - (?P.+?/(?P[^/]+?)(?:\.cnn|(?=&)))''' + (?P<path>.+?/(?P<title>[^/]+?)(?:\.cnn(-ap)?|(?=&)))''' _TESTS = [{ 'url': 'http://edition.cnn.com/video/?/video/sports/2013/06/09/nadal-1-on-1.cnn', diff --git a/youtube_dl/extractor/comedycentral.py b/youtube_dl/extractor/comedycentral.py index c81ce5a..0350461 100644 --- a/youtube_dl/extractor/comedycentral.py +++ b/youtube_dl/extractor/comedycentral.py @@ -43,14 +43,14 @@ class ComedyCentralShowsIE(InfoExtractor): (?P<showname>thedailyshow|thecolbertreport)\.(?:cc\.)?com/ ((?:full-)?episodes/(?:[0-9a-z]{6}/)?(?P<episode>.*)| (?P<clip> - (?:(?:guests/[^/]+|videos|video-playlists|special-editions)/[^/]+/(?P<videotitle>[^/?#]+)) + (?:(?:guests/[^/]+|videos|video-playlists|special-editions|news-team/[^/]+)/[^/]+/(?P<videotitle>[^/?#]+)) |(the-colbert-report-(videos|collections)/(?P<clipID>[0-9]+)/[^/]*/(?P<cntitle>.*?)) |(watch/(?P<date>[^/]*)/(?P<tdstitle>.*)) )| (?P<interview> extended-interviews/(?P<interID>[0-9a-z]+)/(?:playlist_tds_extended_)?(?P<interview_title>.*?)(/.*?)?))) (?:[?#].*|$)''' - _TEST = { + _TESTS = [{ 'url': 'http://thedailyshow.cc.com/watch/thu-december-13-2012/kristen-stewart', 'md5': '4e2f5cb088a83cd8cdb7756132f9739d', 'info_dict': { @@ -61,7 +61,34 @@ class ComedyCentralShowsIE(InfoExtractor): 'uploader': 'thedailyshow', 'title': 'thedailyshow kristen-stewart part 1', } - } + }, { + 'url': 'http://thedailyshow.cc.com/extended-interviews/xm3fnq/andrew-napolitano-extended-interview', + 'only_matching': True, + }, { + 'url': 'http://thecolbertreport.cc.com/videos/29w6fx/-realhumanpraise-for-fox-news', + 'only_matching': True, + }, { + 'url': 'http://thecolbertreport.cc.com/videos/gh6urb/neil-degrasse-tyson-pt--1?xrs=eml_col_031114', + 'only_matching': True, + }, { + 'url': 'http://thedailyshow.cc.com/guests/michael-lewis/3efna8/exclusive---michael-lewis-extended-interview-pt--3', + 'only_matching': True, + }, { + 'url': 'http://thedailyshow.cc.com/episodes/sy7yv0/april-8--2014---denis-leary', + 'only_matching': True, + }, { + 'url': 'http://thecolbertreport.cc.com/episodes/8ase07/april-8--2014---jane-goodall', + 'only_matching': True, + }, { + 'url': 'http://thedailyshow.cc.com/video-playlists/npde3s/the-daily-show-19088-highlights', + 'only_matching': True, + }, { + 'url': 'http://thedailyshow.cc.com/special-editions/2l8fdb/special-edition---a-look-back-at-food', + 'only_matching': True, + }, { + 'url': 'http://thedailyshow.cc.com/news-team/michael-che/7wnfel/we-need-to-talk-about-israel', + 'only_matching': True, + }] _available_formats = ['3500', '2200', '1700', '1200', '750', '400'] @@ -185,6 +212,9 @@ class ComedyCentralShowsIE(InfoExtractor): 'ext': self._video_extensions.get(format, 'mp4'), 'height': h, 'width': w, + + 'format_note': 'HTTP 400 at the moment (patches welcome!)', + 'preference': -100, }) formats.append({ 'format_id': 'rtmp-%s' % format, diff --git a/youtube_dl/extractor/common.py b/youtube_dl/extractor/common.py index 342bfb8..7e41132 100644 --- a/youtube_dl/extractor/common.py +++ b/youtube_dl/extractor/common.py @@ -1,4 +1,7 @@ +from __future__ import unicode_literals + import base64 +import datetime import hashlib import json import netrc @@ -13,11 +16,13 @@ from ..utils import ( compat_http_client, compat_urllib_error, compat_urllib_parse_urlparse, + compat_urlparse, compat_str, clean_html, compiled_regex_type, ExtractorError, + float_or_none, int_or_none, RegexNotFoundError, sanitize_filename, @@ -67,6 +72,7 @@ class InfoExtractor(object): * 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 @@ -84,6 +90,16 @@ class InfoExtractor(object): format, irrespective of the file format. -1 for default (order by other properties), -2 or smaller for less than default. + * source_preference Order number for this video source + (quality takes higher priority) + -1 for default (order by other properties), + -2 or smaller for less than default. + * http_referer HTTP Referer header value to set. + * http_method HTTP method to use for the download. + * http_headers A dictionary of additional HTTP headers + to add to the request. + * http_post_data Additional data to send with a POST + request. url: Final video URL. ext: Video filename extension. format: The video format, defaults to ext (used for --get-format) @@ -108,7 +124,7 @@ class InfoExtractor(object): upload_date: Video upload date (YYYYMMDD). If not explicitly set, calculated from timestamp. uploader_id: Nickname or id of the video uploader. - location: Physical location of the video. + location: Physical location where the video was filmed. subtitles: The subtitle file contents as a dictionary in the format {language: subtitles}. duration: Length of the video in seconds, as an integer. @@ -122,9 +138,13 @@ class InfoExtractor(object): by YoutubeDL if it's missing) categories: A list of categories that the video falls in, for example ["Sports", "Berlin"] + is_live: True, False, or None (=unknown). Whether this video is a + live stream that goes on instead of a fixed-length video. Unless mentioned otherwise, the fields should be Unicode strings. + Unless mentioned otherwise, None is equivalent to absence of information. + Subclasses of this one should re-define the _real_initialize() and _real_extract() methods and define a _VALID_URL regexp. Probably, they should also be added to the list of extractors. @@ -153,6 +173,14 @@ class InfoExtractor(object): cls._VALID_URL_RE = re.compile(cls._VALID_URL) return cls._VALID_URL_RE.match(url) is not None + @classmethod + def _match_id(cls, url): + if '_VALID_URL_RE' not in cls.__dict__: + cls._VALID_URL_RE = re.compile(cls._VALID_URL) + m = cls._VALID_URL_RE.match(url) + assert m + return m.group('id') + @classmethod def working(cls): """Getter method for _WORKING.""" @@ -196,17 +224,17 @@ class InfoExtractor(object): self.report_download_webpage(video_id) elif note is not False: if video_id is None: - self.to_screen(u'%s' % (note,)) + self.to_screen('%s' % (note,)) else: - self.to_screen(u'%s: %s' % (video_id, note)) + self.to_screen('%s: %s' % (video_id, note)) try: return self._downloader.urlopen(url_or_request) except (compat_urllib_error.URLError, compat_http_client.HTTPException, socket.error) as err: if errnote is False: return False if errnote is None: - errnote = u'Unable to download webpage' - errmsg = u'%s: %s' % (errnote, compat_str(err)) + errnote = 'Unable to download webpage' + errmsg = '%s: %s' % (errnote, compat_str(err)) if fatal: raise ExtractorError(errmsg, sys.exc_info()[2], cause=err) else: @@ -215,7 +243,6 @@ class InfoExtractor(object): def _download_webpage_handle(self, url_or_request, video_id, note=None, errnote=None, fatal=True): """ Returns a tuple (page content as string, URL handle) """ - # Strip hashes from the URL (#1038) if isinstance(url_or_request, (compat_str, str)): url_or_request = url_or_request.partition('#')[0] @@ -224,6 +251,10 @@ class InfoExtractor(object): if urlh is False: assert not fatal return False + content = self._webpage_read_content(urlh, url_or_request, video_id, note, errnote, fatal) + return (content, urlh) + + def _webpage_read_content(self, urlh, url_or_request, video_id, note=None, errnote=None, fatal=True): content_type = urlh.headers.get('Content-Type', '') webpage_bytes = urlh.read() m = re.match(r'[a-zA-Z0-9_.-]+/[a-zA-Z0-9_.-]+\s*;\s*charset=(.+)', content_type) @@ -243,7 +274,7 @@ class InfoExtractor(object): url = url_or_request.get_full_url() except AttributeError: url = url_or_request - self.to_screen(u'Dumping request to ' + url) + self.to_screen('Dumping request to ' + url) dump = base64.b64encode(webpage_bytes).decode('ascii') self._downloader.to_screen(dump) if self._downloader.params.get('write_pages', False): @@ -253,11 +284,17 @@ class InfoExtractor(object): url = url_or_request basen = '%s_%s' % (video_id, url) if len(basen) > 240: - h = u'___' + hashlib.md5(basen.encode('utf-8')).hexdigest() + h = '___' + hashlib.md5(basen.encode('utf-8')).hexdigest() basen = basen[:240 - len(h)] + h raw_filename = basen + '.dump' filename = sanitize_filename(raw_filename, restricted=True) - self.to_screen(u'Saving request to ' + filename) + self.to_screen('Saving request to ' + filename) + # Working around MAX_PATH limitation on Windows (see + # http://msdn.microsoft.com/en-us/library/windows/desktop/aa365247(v=vs.85).aspx) + if os.name == 'nt': + absfilepath = os.path.abspath(filename) + if len(absfilepath) > 259: + filename = '\\\\?\\' + absfilepath with open(filename, 'wb') as outf: outf.write(webpage_bytes) @@ -266,17 +303,17 @@ class InfoExtractor(object): except LookupError: content = webpage_bytes.decode('utf-8', 'replace') - if (u'<title>Access to this site is blocked' in content and - u'Websense' in content[:512]): - msg = u'Access to this webpage has been blocked by Websense filtering software in your network.' + if ('Access to this site is blocked' in content and + 'Websense' in content[:512]): + msg = 'Access to this webpage has been blocked by Websense filtering software in your network.' blocked_iframe = self._html_search_regex( r'

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