From 490eda8450847dda757dd413f071bd84f0906e21 Mon Sep 17 00:00:00 2001 From: Dimitris Zlatanidis Date: Mon, 30 May 2016 16:32:04 +0300 Subject: network/youtube-dl: Updated for version 2016.05.30.2. Signed-off-by: Dimitris Zlatanidis --- network/youtube-dl/setup.patch | 26 +- network/youtube-dl/youtube-dl.1 | 517 +++++-------------------------- network/youtube-dl/youtube-dl.SlackBuild | 2 +- network/youtube-dl/youtube-dl.info | 6 +- 4 files changed, 101 insertions(+), 450 deletions(-) diff --git a/network/youtube-dl/setup.patch b/network/youtube-dl/setup.patch index 3e1210c501..5636ddc786 100644 --- a/network/youtube-dl/setup.patch +++ b/network/youtube-dl/setup.patch @@ -1,11 +1,11 @@ ---- youtube-dl-2015.12.06/Makefile 2015-12-06 19:51:25.000000000 +0200 -+++ youtube-dl-2015.12.06/Makefile.orig 2015-12-08 03:44:10.554844147 +0200 -@@ -4,11 +4,11 @@ - 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 *.info.json *.mp4 *.flv *.mp3 *.avi CONTRIBUTING.md.tmp youtube-dl youtube-dl.exe +--- youtube-dl-2016.05.30.2/Makefile.orig 2016-05-30 16:14:38.003087066 +0300 ++++ youtube-dl-2016.05.30.2/Makefile 2016-05-30 16:19:03.597103047 +0300 +@@ -5,11 +5,11 @@ find . -name "*.pyc" -delete + find . -name "*.class" -delete -PREFIX ?= /usr/local -+PREFIX ?= ++PREFIX ?= /usr BINDIR ?= $(PREFIX)/bin MANDIR ?= $(PREFIX)/man SHAREDIR ?= $(PREFIX)/share @@ -13,8 +13,8 @@ +PYTHON ?= /usr/bin/python # set SYSCONFDIR to /etc if PREFIX=/usr or PREFIX=/usr/local - ifeq ($(PREFIX),/usr) -@@ -50,7 +50,7 @@ + SYSCONFDIR != if [ $(PREFIX) = /usr -o $(PREFIX) = /usr/local ]; then echo /etc; else echo $(PREFIX)/etc; fi +@@ -43,7 +43,7 @@ .PHONY: all clean install test tar bash-completion pypi-files zsh-completion fish-completion ot offlinetest codetest supportedsites @@ -23,7 +23,7 @@ youtube-dl: youtube_dl/*.py youtube_dl/*/*.py zip --quiet youtube-dl youtube_dl/*.py youtube_dl/*/*.py -@@ -70,11 +70,11 @@ +@@ -66,11 +66,11 @@ $(PYTHON) devscripts/make_supportedsites.py docs/supportedsites.md README.txt: README.md @@ -31,15 +31,15 @@ + # pandoc -f markdown -t plain README.md -o README.txt youtube-dl.1: README.md - $(PYTHON) devscripts/prepare_manpage.py >youtube-dl.1.temp.md + $(PYTHON) devscripts/prepare_manpage.py youtube-dl.1.temp.md - pandoc -s -f markdown -t man youtube-dl.1.temp.md -o youtube-dl.1 + # pandoc -s -f markdown -t man youtube-dl.1.temp.md -o youtube-dl.1 rm -f youtube-dl.1.temp.md youtube-dl.bash-completion: youtube_dl/*.py youtube_dl/*/*.py devscripts/bash-completion.in ---- youtube-dl-2015.12.06/setup.py 2015-12-06 19:51:25.000000000 +0200 -+++ youtube-dl-2015.12.06/setup.py.orig 2015-12-08 03:47:01.705704467 +0200 -@@ -46,10 +46,8 @@ +--- youtube-dl-2016.05.30.2/setup.orig 2016-05-30 16:14:52.766087954 +0300 ++++ youtube-dl-2016.05.30.2/setup.py 2016-05-30 16:22:55.100116977 +0300 +@@ -47,10 +47,10 @@ params = py2exe_params else: files_spec = [ @@ -49,6 +49,8 @@ - ('share/man/man1', ['youtube-dl.1']) + ('/etc/bash_completion.d', ['youtube-dl.bash-completion']), + ('/etc/fish/completions', ['youtube-dl.fish']), ++ ('/usr/doc/youtube_dl', ['README.txt']), ++ ('/usr/man/man1', ['youtube-dl.1']) ] root = os.path.dirname(os.path.abspath(__file__)) data_files = [] diff --git a/network/youtube-dl/youtube-dl.1 b/network/youtube-dl/youtube-dl.1 index f868c4578a..853a8dda3e 100644 --- a/network/youtube-dl/youtube-dl.1 +++ b/network/youtube-dl/youtube-dl.1 @@ -1,7 +1,4 @@ -.\" Automatically generated by Pandoc 1.16.0.2 -.\" .TH "YOUTUBE\-DL" "1" "" "" "" -.hy .SH NAME .PP youtube\-dl \- download videos from youtube.com or other video platforms @@ -92,16 +89,6 @@ Do not extract the videos of a playlist, only list them. .RS .RE .TP -.B \-\-mark\-watched -Mark videos watched (YouTube only) -.RS -.RE -.TP -.B \-\-no\-mark\-watched -Do not mark videos watched (YouTube only) -.RS -.RE -.TP .B \-\-no\-color Do not emit color codes in output .RS @@ -109,9 +96,7 @@ Do not emit color codes in output .SS Network Options: .TP .B \-\-proxy \f[I]URL\f[] -Use the specified HTTP/HTTPS/SOCKS proxy. -To enable experimental SOCKS proxy, specify a proper scheme. -For example socks5://127.0.0.1:1080/. +Use the specified HTTP/HTTPS proxy. Pass in an empty string (\-\-proxy "") for direct connection .RS .RE @@ -273,12 +258,6 @@ Number of retries (default is 10), or "infinite". .RS .RE .TP -.B \-\-fragment\-retries \f[I]RETRIES\f[] -Number of retries for a fragment (default is 10), or "infinite" (DASH -only) -.RS -.RE -.TP .B \-\-buffer\-size \f[I]SIZE\f[] Size of download buffer (e.g. 1024 or 16K) (default is 1024) @@ -303,24 +282,13 @@ Set file xattribute ytdl.filesize with expected filesize (experimental) .RE .TP .B \-\-hls\-prefer\-native -Use the native HLS downloader instead of ffmpeg -.RS -.RE -.TP -.B \-\-hls\-prefer\-ffmpeg -Use ffmpeg instead of the native HLS downloader -.RS -.RE -.TP -.B \-\-hls\-use\-mpegts -Use the mpegts container for HLS videos, allowing to play the video -while downloading (some players may not be able to play it) +Use the native HLS downloader instead of ffmpeg (experimental) .RS .RE .TP .B \-\-external\-downloader \f[I]COMMAND\f[] Use the specified external downloader. -Currently supports aria2c,avconv,axel,curl,ffmpeg,httpie,wget +Currently supports aria2c,axel,curl,httpie,wget .RS .RE .TP @@ -668,7 +636,7 @@ Prefer free video formats unless a specific one is requested .RE .TP .B \-F, \-\-list\-formats -List all available formats of requested videos +List all available formats .RS .RE .TP @@ -692,7 +660,7 @@ Write subtitle file .RE .TP .B \-\-write\-auto\-sub -Write automatically generated subtitle file (YouTube only) +Write automatic subtitle file (YouTube only) .RS .RE .TP @@ -714,7 +682,7 @@ Subtitle format, accepts formats preference, for example: "srt" or .TP .B \-\-sub\-lang \f[I]LANGS\f[] Languages of the subtitles to download (optional) separated by commas, -use \-\-list\- subs for available language tags +use IETF language tags like \[aq]en,pt\[aq] .RS .RE .SS Authentication Options: @@ -788,7 +756,7 @@ overwritten by default .RE .TP .B \-\-embed\-subs -Embed subtitles in the video (only for mp4, webm and mkv videos) +Embed subtitles in the video (only for mkv and mp4 videos) .RS .RE .TP @@ -848,7 +816,7 @@ Example: \-\-exec \[aq]adb push {} /sdcard/Music/ && rm {}\[aq] .RS .RE .TP -.B \-\-convert\-subs \f[I]FORMAT\f[] +.B \-\-convert\-subtitles \f[I]FORMAT\f[] Convert the subtitles to other format (currently supported: srt|ass|vtt) .RS .RE @@ -856,32 +824,23 @@ Convert the subtitles to other format (currently supported: srt|ass|vtt) .PP You can configure youtube\-dl by placing any supported command line option to a configuration file. -On Linux and OS X, the system wide configuration file is located at +On Linux, the system wide configuration file is located at \f[C]/etc/youtube\-dl.conf\f[] and the user wide configuration file at \f[C]~/.config/youtube\-dl/config\f[]. On Windows, the user wide configuration file locations are \f[C]%APPDATA%\\youtube\-dl\\config.txt\f[] or \f[C]C:\\Users\\\\youtube\-dl.conf\f[]. -.PP For example, with the following configuration file youtube\-dl will -always extract the audio, not copy the mtime, use a proxy and save all -videos under \f[C]Movies\f[] directory in your home directory: +always extract the audio, not copy the mtime and use a proxy: .IP .nf \f[C] -\-x +\-\-extract\-audio \-\-no\-mtime \-\-proxy\ 127.0.0.1:3128 -\-o\ ~/Movies/%(title)s.%(ext)s \f[] .fi .PP -Note that options in configuration file are just the same options aka -switches used in regular command line calls thus there \f[B]must be no -whitespace\f[] after \f[C]\-\f[] or \f[C]\-\-\f[], e.g. -\f[C]\-o\f[] or \f[C]\-\-proxy\f[] but not \f[C]\-\ o\f[] or -\f[C]\-\-\ proxy\f[]. -.PP You can use \f[C]\-\-ignore\-config\f[] if you want to disable the configuration file for a particular youtube\-dl run. .SS Authentication with \f[C]\&.netrc\f[] file @@ -932,9 +891,6 @@ variable manually. .PP The \f[C]\-o\f[] option allows users to indicate a template for the output file names. -.PP -\f[B]tl;dr:\f[] navigate me to examples (#output-template-examples). -.PP The basic usage is not to set any template arguments when downloading a single file, like in \f[C]youtube\-dl\ \-o\ funny_video.flv\ "http://some/video"\f[]. @@ -945,147 +901,39 @@ To clarify, that is a percent symbol followed by a name in parentheses, followed by a lowercase S. Allowed names are: .IP \[bu] 2 -\f[C]id\f[]: Video identifier -.IP \[bu] 2 -\f[C]title\f[]: Video title -.IP \[bu] 2 -\f[C]url\f[]: Video URL -.IP \[bu] 2 -\f[C]ext\f[]: Video filename extension -.IP \[bu] 2 -\f[C]alt_title\f[]: A secondary title of the video -.IP \[bu] 2 -\f[C]display_id\f[]: An alternative identifier for the video -.IP \[bu] 2 -\f[C]uploader\f[]: Full name of the video uploader -.IP \[bu] 2 -\f[C]license\f[]: License name the video is licensed under -.IP \[bu] 2 -\f[C]creator\f[]: The creator of the video -.IP \[bu] 2 -\f[C]release_date\f[]: The date (YYYYMMDD) when the video was released -.IP \[bu] 2 -\f[C]timestamp\f[]: UNIX timestamp of the moment the video became -available -.IP \[bu] 2 -\f[C]upload_date\f[]: Video upload date (YYYYMMDD) -.IP \[bu] 2 -\f[C]uploader_id\f[]: Nickname or id of the video uploader -.IP \[bu] 2 -\f[C]location\f[]: Physical location where the video was filmed -.IP \[bu] 2 -\f[C]duration\f[]: Length of the video in seconds -.IP \[bu] 2 -\f[C]view_count\f[]: How many users have watched the video on the -platform -.IP \[bu] 2 -\f[C]like_count\f[]: Number of positive ratings of the video -.IP \[bu] 2 -\f[C]dislike_count\f[]: Number of negative ratings of the video -.IP \[bu] 2 -\f[C]repost_count\f[]: Number of reposts of the video -.IP \[bu] 2 -\f[C]average_rating\f[]: Average rating give by users, the scale used -depends on the webpage -.IP \[bu] 2 -\f[C]comment_count\f[]: Number of comments on the video -.IP \[bu] 2 -\f[C]age_limit\f[]: Age restriction for the video (years) -.IP \[bu] 2 -\f[C]format\f[]: A human\-readable description of the format -.IP \[bu] 2 -\f[C]format_id\f[]: Format code specified by \f[C]\-\-format\f[] +\f[C]id\f[]: The sequence will be replaced by the video identifier. .IP \[bu] 2 -\f[C]format_note\f[]: Additional info about the format +\f[C]url\f[]: The sequence will be replaced by the video URL. .IP \[bu] 2 -\f[C]width\f[]: Width of the video +\f[C]uploader\f[]: The sequence will be replaced by the nickname of the +person who uploaded the video. .IP \[bu] 2 -\f[C]height\f[]: Height of the video +\f[C]upload_date\f[]: The sequence will be replaced by the upload date +in YYYYMMDD format. .IP \[bu] 2 -\f[C]resolution\f[]: Textual description of width and height +\f[C]title\f[]: The sequence will be replaced by the video title. .IP \[bu] 2 -\f[C]tbr\f[]: Average bitrate of audio and video in KBit/s +\f[C]ext\f[]: The sequence will be replaced by the appropriate extension +(like flv or mp4). .IP \[bu] 2 -\f[C]abr\f[]: Average audio bitrate in KBit/s +\f[C]epoch\f[]: The sequence will be replaced by the Unix epoch when +creating the file. .IP \[bu] 2 -\f[C]acodec\f[]: Name of the audio codec in use +\f[C]autonumber\f[]: The sequence will be replaced by a five\-digit +number that will be increased with each download, starting at zero. .IP \[bu] 2 -\f[C]asr\f[]: Audio sampling rate in Hertz +\f[C]playlist\f[]: The sequence will be replaced by the name or the id +of the playlist that contains the video. .IP \[bu] 2 -\f[C]vbr\f[]: Average video bitrate in KBit/s +\f[C]playlist_index\f[]: The sequence will be replaced by the index of +the video in the playlist padded with leading zeros according to the +total length of the playlist. .IP \[bu] 2 -\f[C]fps\f[]: Frame rate +\f[C]format_id\f[]: The sequence will be replaced by the format code +specified by \f[C]\-\-format\f[]. .IP \[bu] 2 -\f[C]vcodec\f[]: Name of the video codec in use -.IP \[bu] 2 -\f[C]container\f[]: Name of the container format -.IP \[bu] 2 -\f[C]filesize\f[]: The number of bytes, if known in advance -.IP \[bu] 2 -\f[C]filesize_approx\f[]: An estimate for the number of bytes -.IP \[bu] 2 -\f[C]protocol\f[]: The protocol that will be used for the actual -download -.IP \[bu] 2 -\f[C]extractor\f[]: Name of the extractor -.IP \[bu] 2 -\f[C]extractor_key\f[]: Key name of the extractor -.IP \[bu] 2 -\f[C]epoch\f[]: Unix epoch when creating the file -.IP \[bu] 2 -\f[C]autonumber\f[]: Five\-digit number that will be increased with each -download, starting at zero -.IP \[bu] 2 -\f[C]playlist\f[]: Name or id of the playlist that contains the video -.IP \[bu] 2 -\f[C]playlist_index\f[]: Index of the video in the playlist padded with -leading zeros according to the total length of the playlist -.PP -Available for the video that belongs to some logical chapter or section: -\- \f[C]chapter\f[]: Name or title of the chapter the video belongs to -\- \f[C]chapter_number\f[]: Number of the chapter the video belongs to -\- \f[C]chapter_id\f[]: Id of the chapter the video belongs to -.PP -Available for the video that is an episode of some series or programme: -\- \f[C]series\f[]: Title of the series or programme the video episode -belongs to \- \f[C]season\f[]: Title of the season the video episode -belongs to \- \f[C]season_number\f[]: Number of the season the video -episode belongs to \- \f[C]season_id\f[]: Id of the season the video -episode belongs to \- \f[C]episode\f[]: Title of the video episode \- -\f[C]episode_number\f[]: Number of the video episode within a season \- -\f[C]episode_id\f[]: Id of the video episode -.PP -Available for the media that is a track or a part of a music album: \- -\f[C]track\f[]: Title of the track \- \f[C]track_number\f[]: Number of -the track within an album or a disc \- \f[C]track_id\f[]: Id of the -track \- \f[C]artist\f[]: Artist(s) of the track \- \f[C]genre\f[]: -Genre(s) of the track \- \f[C]album\f[]: Title of the album the track -belongs to \- \f[C]album_type\f[]: Type of the album \- -\f[C]album_artist\f[]: List of all artists appeared on the album \- -\f[C]disc_number\f[]: Number of the disc or other physical medium the -track belongs to \- \f[C]release_year\f[]: Year (YYYY) when the album -was released -.PP -Each aforementioned sequence when referenced in output template will be -replaced by the actual value corresponding to the sequence name. -Note that some of the sequences are not guaranteed to be present since -they depend on the metadata obtained by particular extractor, such -sequences will be replaced with \f[C]NA\f[]. -.PP -For example for \f[C]\-o\ %(title)s\-%(id)s.%(ext)s\f[] and mp4 video -with title \f[C]youtube\-dl\ test\ video\f[] and id -\f[C]BaW_jenozKcj\f[] this will result in a -\f[C]youtube\-dl\ test\ video\-BaW_jenozKcj.mp4\f[] file created in the -current directory. -.PP -Output template can also contain arbitrary hierarchical path, e.g. -\f[C]\-o\ \[aq]%(playlist)s/%(playlist_index)s\ \-\ %(title)s.%(ext)s\[aq]\f[] -that will result in downloading each video in a directory corresponding -to this path template. -Any missing directory will be automatically created for you. -.PP -To specify percent literal in output template use \f[C]%%\f[]. -To output to stdout use \f[C]\-o\ \-\f[]. +\f[C]duration\f[]: The sequence will be replaced by the length of the +video in seconds. .PP The current default template is \f[C]%(title)s\-%(id)s.%(ext)s\f[]. .PP @@ -1094,151 +942,54 @@ or &, such as when transferring the downloaded filename to a Windows system or the filename through an 8bit\-unsafe channel. In these cases, add the \f[C]\-\-restrict\-filenames\f[] flag to get a shorter title: -.SS Output template examples -.PP -Note on Windows you may need to use double quotes instead of single. .IP .nf \f[C] -$\ youtube\-dl\ \-\-get\-filename\ \-o\ \[aq]%(title)s.%(ext)s\[aq]\ BaW_jenozKc +$\ youtube\-dl\ \-\-get\-filename\ \-o\ "%(title)s.%(ext)s"\ BaW_jenozKc youtube\-dl\ test\ video\ \[aq]\[aq]_ä↭𝕐.mp4\ \ \ \ #\ All\ kinds\ of\ weird\ characters - -$\ youtube\-dl\ \-\-get\-filename\ \-o\ \[aq]%(title)s.%(ext)s\[aq]\ BaW_jenozKc\ \-\-restrict\-filenames +$\ youtube\-dl\ \-\-get\-filename\ \-o\ "%(title)s.%(ext)s"\ BaW_jenozKc\ \-\-restrict\-filenames youtube\-dl_test_video_.mp4\ \ \ \ \ \ \ \ \ \ #\ A\ simple\ file\ name - -#\ Download\ YouTube\ playlist\ videos\ in\ separate\ directory\ indexed\ by\ video\ order\ in\ a\ playlist -$\ youtube\-dl\ \-o\ \[aq]%(playlist)s/%(playlist_index)s\ \-\ %(title)s.%(ext)s\[aq]\ https://www.youtube.com/playlist?list=PLwiyx1dc3P2JR9N8gQaQN_BCvlSlap7re - -#\ Download\ all\ playlists\ of\ YouTube\ channel/user\ keeping\ each\ playlist\ in\ separate\ directory: -$\ youtube\-dl\ \-o\ \[aq]%(uploader)s/%(playlist)s/%(playlist_index)s\ \-\ %(title)s.%(ext)s\[aq]\ https://www.youtube.com/user/TheLinuxFoundation/playlists - -#\ Download\ Udemy\ course\ keeping\ each\ chapter\ in\ separate\ directory\ under\ MyVideos\ directory\ in\ your\ home -$\ youtube\-dl\ \-u\ user\ \-p\ password\ \-o\ \[aq]~/MyVideos/%(playlist)s/%(chapter_number)s\ \-\ %(chapter)s/%(title)s.%(ext)s\[aq]\ https://www.udemy.com/java\-tutorial/ - -#\ Download\ entire\ series\ season\ keeping\ each\ series\ and\ each\ season\ in\ separate\ directory\ under\ C:/MyVideos -$\ youtube\-dl\ \-o\ "C:/MyVideos/%(series)s/%(season_number)s\ \-\ %(season)s/%(episode_number)s\ \-\ %(episode)s.%(ext)s"\ http://videomore.ru/kino_v_detalayah/5_sezon/367617 - -#\ Stream\ the\ video\ being\ downloaded\ to\ stdout -$\ youtube\-dl\ \-o\ \-\ BaW_jenozKc \f[] .fi .SH FORMAT SELECTION .PP -By default youtube\-dl tries to download the best available quality, -i.e. -if you want the best quality you \f[B]don\[aq]t need\f[] to pass any -special options, youtube\-dl will guess it for you by \f[B]default\f[]. -.PP -But sometimes you may want to download in a different format, for -example when you are on a slow or intermittent connection. -The key mechanism for achieving this is so called \f[I]format -selection\f[] based on which you can explicitly specify desired format, -select formats based on some criterion or criteria, setup precedence and -much more. -.PP -The general syntax for format selection is \f[C]\-\-format\ FORMAT\f[] -or shorter \f[C]\-f\ FORMAT\f[] where \f[C]FORMAT\f[] is a \f[I]selector -expression\f[], i.e. -an expression that describes format or formats you would like to -download. -.PP -\f[B]tl;dr:\f[] navigate me to examples (#format-selection-examples). -.PP -The simplest case is requesting a specific format, for example with -\f[C]\-f\ 22\f[] you can download the format with format code equal to -22. -You can get the list of available format codes for particular video -using \f[C]\-\-list\-formats\f[] or \f[C]\-F\f[]. -Note that these format codes are extractor specific. -.PP -You can also use a file extension (currently \f[C]3gp\f[], \f[C]aac\f[], -\f[C]flv\f[], \f[C]m4a\f[], \f[C]mp3\f[], \f[C]mp4\f[], \f[C]ogg\f[], -\f[C]wav\f[], \f[C]webm\f[] are supported) to download best quality -format of particular file extension served as a single file, e.g. -\f[C]\-f\ webm\f[] will download best quality format with \f[C]webm\f[] -extension served as a single file. -.PP -You can also use special names to select particular edge case format: \- -\f[C]best\f[]: Select best quality format represented by single file -with video and audio \- \f[C]worst\f[]: Select worst quality format -represented by single file with video and audio \- \f[C]bestvideo\f[]: -Select best quality video only format (e.g. -DASH video), may not be available \- \f[C]worstvideo\f[]: Select worst -quality video only format, may not be available \- \f[C]bestaudio\f[]: -Select best quality audio only format, may not be available \- -\f[C]worstaudio\f[]: Select worst quality audio only format, may not be -available -.PP -For example, to download worst quality video only format you can use -\f[C]\-f\ worstvideo\f[]. +By default youtube\-dl tries to download the best quality, but sometimes +you may want to download in a different format. +The simplest case is requesting a specific format, for example +\f[C]\-f\ 22\f[]. +You can get the list of available formats using +\f[C]\-\-list\-formats\f[], you can also use a file extension (currently +it supports aac, m4a, mp3, mp4, ogg, wav, webm) or the special names +\f[C]best\f[], \f[C]bestvideo\f[], \f[C]bestaudio\f[] and +\f[C]worst\f[]. .PP If you want to download multiple videos and they don\[aq]t have the same formats available, you can specify the order of preference using -slashes. -Note that slash is left\-associative, i.e. -formats on the left hand side are preferred, for example -\f[C]\-f\ 22/17/18\f[] will download format 22 if it\[aq]s available, -otherwise it will download format 17 if it\[aq]s available, otherwise it -will download format 18 if it\[aq]s available, otherwise it will -complain that no suitable formats are available for download. -.PP -If you want to download several formats of the same video use comma as a -separator, e.g. -\f[C]\-f\ 22,17,18\f[] will download all these three formats, of course -if they are available. -Or more sophisticated example combined with precedence feature -\f[C]\-f\ 136/137/mp4/bestvideo,140/m4a/bestaudio\f[]. -.PP -You can also filter the video formats by putting a condition in +slashes, as in \f[C]\-f\ 22/17/18\f[]. +You can also filter the video results by putting a condition in brackets, as in \f[C]\-f\ "best[height=720]"\f[] (or \f[C]\-f\ "[filesize>10M]"\f[]). -.PP -The following numeric meta fields can be used with comparisons -\f[C]<\f[], \f[C]<=\f[], \f[C]>\f[], \f[C]>=\f[], \f[C]=\f[] (equals), -\f[C]!=\f[] (not equals): \- \f[C]filesize\f[]: The number of bytes, if -known in advance \- \f[C]width\f[]: Width of the video, if known \- -\f[C]height\f[]: Height of the video, if known \- \f[C]tbr\f[]: Average -bitrate of audio and video in KBit/s \- \f[C]abr\f[]: Average audio -bitrate in KBit/s \- \f[C]vbr\f[]: Average video bitrate in KBit/s \- -\f[C]asr\f[]: Audio sampling rate in Hertz \- \f[C]fps\f[]: Frame rate -.PP -Also filtering work for comparisons \f[C]=\f[] (equals), \f[C]!=\f[] -(not equals), \f[C]^=\f[] (begins with), \f[C]$=\f[] (ends with), -\f[C]*=\f[] (contains) and following string meta fields: \- -\f[C]ext\f[]: File extension \- \f[C]acodec\f[]: Name of the audio codec -in use \- \f[C]vcodec\f[]: Name of the video codec in use \- -\f[C]container\f[]: Name of the container format \- \f[C]protocol\f[]: -The protocol that will be used for the actual download, lower\-case. -\f[C]http\f[], \f[C]https\f[], \f[C]rtsp\f[], \f[C]rtmp\f[], -\f[C]rtmpe\f[], \f[C]m3u8\f[], or \f[C]m3u8_native\f[] \- -\f[C]format_id\f[]: A short description of the format -.PP -Note that none of the aforementioned meta fields are guaranteed to be -present since this solely depends on the metadata obtained by particular -extractor, i.e. -the metadata offered by video hoster. -.PP +This works for filesize, height, width, tbr, abr, vbr, asr, and fps and +the comparisons <, <=, >, >=, =, != and for ext, acodec, vcodec, +container, and protocol and the comparisons =, != . Formats for which the value is not known are excluded unless you put a -question mark (\f[C]?\f[]) after the operator. +question mark (?) after the operator. You can combine format filters, so \f[C]\-f\ "[height\ <=?\ 720][tbr>500]"\f[] selects up to 720p videos (or videos where the height is not known) with a bitrate of at least 500 KBit/s. -.PP +Use commas to download multiple formats, such as +\f[C]\-f\ 136/137/mp4/bestvideo,140/m4a/bestaudio\f[]. You can merge the video and audio of two formats into a single file using \f[C]\-f\ +\f[] (requires ffmpeg or -avconv installed), for example \f[C]\-f\ bestvideo+bestaudio\f[] will -download best video only format, best audio only format and mux them -together with ffmpeg/avconv. -.PP +avconv), for example \f[C]\-f\ bestvideo+bestaudio\f[]. Format selectors can also be grouped using parentheses, for example if you want to download the best mp4 and webm formats with a height lower than 480 you can use \f[C]\-f\ \[aq](mp4,webm)[height<480]\[aq]\f[]. .PP Since the end of April 2015 and version 2015.04.26 youtube\-dl uses \f[C]\-f\ bestvideo+bestaudio/best\f[] as default format selection (see -#5447 (https://github.com/rg3/youtube-dl/issues/5447), -#5456 (https://github.com/rg3/youtube-dl/issues/5456)). +#5447, #5456). If ffmpeg or avconv are installed this results in downloading \f[C]bestvideo\f[] and \f[C]bestaudio\f[] separately and muxing them together into a single file giving the best overall quality available. @@ -1247,7 +998,7 @@ best available quality served as a single file. \f[C]best\f[] is also needed for videos that don\[aq]t come from YouTube because they don\[aq]t provide the audio and video in two different files. -If you want to only download some DASH formats (for example if you are +If you want to only download some dash formats (for example if you are not interested in getting videos with a resolution higher than 1080p), you can add \f[C]\-f\ bestvideo[height<=?1080]+bestaudio/best\f[] to your configuration file. @@ -1264,25 +1015,6 @@ you want to download the best available quality media served as a single file, you should explicitly specify your choice with \f[C]\-f\ best\f[]. You may want to add it to the configuration file (#configuration) in order not to type it every time you run youtube\-dl. -.SS Format selection examples -.PP -Note on Windows you may need to use double quotes instead of single. -.IP -.nf -\f[C] -#\ Download\ best\ mp4\ format\ available\ or\ any\ other\ best\ if\ no\ mp4\ available -$\ youtube\-dl\ \-f\ \[aq]bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]/best\[aq] - -#\ Download\ best\ format\ available\ but\ not\ better\ that\ 480p -$\ youtube\-dl\ \-f\ \[aq]bestvideo[height<=480]+bestaudio/best[height<=480]\[aq] - -#\ Download\ best\ video\ only\ format\ but\ no\ bigger\ that\ 50\ MB -$\ youtube\-dl\ \-f\ \[aq]best[filesize<50M]\[aq] - -#\ Download\ best\ format\ available\ via\ direct\ link\ over\ HTTP/HTTPS\ protocol -$\ youtube\-dl\ \-f\ \[aq](bestvideo+bestaudio/best)[protocol^=http]\[aq] -\f[] -.fi .SH VIDEO SELECTION .PP Videos can be filtered by their upload date using the options @@ -1372,14 +1104,6 @@ guys (mailto:ubuntu-motu@lists.ubuntu.com?subject=outdated%20version%20of%20yout \- all they have to do is update the package to a somewhat recent version. See above for a way to update. -.SS I\[aq]m getting an error when trying to use output template: -\f[C]error:\ using\ output\ template\ conflicts\ with\ using\ title,\ video\ ID\ or\ auto\ number\f[] -.PP -Make sure you are not using \f[C]\-o\f[] with any of these options -\f[C]\-t\f[], \f[C]\-\-title\f[], \f[C]\-\-id\f[], \f[C]\-A\f[] or -\f[C]\-\-auto\-number\f[] set in command line or in a configuration -file. -Remove the latter if any. .SS Do I always have to pass \f[C]\-citw\f[]? .PP By default, youtube\-dl intends to have the best options (incidentally, @@ -1408,25 +1132,10 @@ We\[aq]re considering to provide a way to let you solve the CAPTCHA (https://github.com/rg3/youtube-dl/issues/154), but at the moment, your best course of action is pointing a webbrowser to the youtube URL, solving the CAPTCHA, and restart youtube\-dl. -.SS Do I need any other programs? -.PP -youtube\-dl works fine on its own on most sites. -However, if you want to convert video/audio, you\[aq]ll need -avconv (https://libav.org/) or ffmpeg (https://www.ffmpeg.org/). -On some sites \- most notably YouTube \- videos can be retrieved in a -higher quality format without sound. -youtube\-dl will detect whether avconv/ffmpeg is present and -automatically pick the best option. -.PP -Videos or video formats streamed via RTMP protocol can only be -downloaded when rtmpdump (https://rtmpdump.mplayerhq.hu/) is installed. -Downloading MMS and RTSP videos requires either -mplayer (http://mplayerhq.hu/) or mpv (https://mpv.io/) to be installed. .SS I have downloaded a video but how can I play it? .PP Once the video is fully downloaded, use any video player, such as -mpv (https://mpv.io/), vlc (http://www.videolan.org) or -mplayer (http://www.mplayerhq.hu/). +vlc (http://www.videolan.org) or mplayer (http://www.mplayerhq.hu/). .SS I extracted a video URL with \f[C]\-g\f[], but it does not play on another machine / in my webbrowser. .PP @@ -1519,10 +1228,9 @@ means you\[aq]re using an outdated version of Python. Please update to Python 2.6 or 2.7. .SS What is this binary file? Where has the code gone? .PP -Since June 2012 (#342 (https://github.com/rg3/youtube-dl/issues/342)) -youtube\-dl is packed as an executable zipfile, simply unzip it (might -need renaming to \f[C]youtube\-dl.zip\f[] first on some systems) or -clone the git repository, as laid out above. +Since June 2012 (#342) youtube\-dl is packed as an executable zipfile, +simply unzip it (might need renaming to \f[C]youtube\-dl.zip\f[] first +on some systems) or clone the git repository, as laid out above. If you modify the code, you can run it by executing the \f[C]__main__.py\f[] file. To recompile the executable, run \f[C]make\ youtube\-dl\f[]. @@ -1555,7 +1263,7 @@ Use the \f[C]\-o\f[] to specify an output template (#output-template), for example \f[C]\-o\ "/home/user/videos/%(title)s\-%(id)s.%(ext)s"\f[]. If you want this for all of your downloads, put the option into your configuration file (#configuration). -.SS How do I download a video starting with a \f[C]\-\f[]? +.SS How do I download a video starting with a \f[C]\-\f[] ? .PP Either prepend \f[C]http://www.youtube.com/watch?v=\f[] or separate the ID from the options with \f[C]\-\-\f[]: @@ -1584,10 +1292,6 @@ is a good sign of invalid newline format. .PP Passing cookies to youtube\-dl is a good way to workaround login when a particular extractor does not implement it explicitly. -Another use case is working around -CAPTCHA (https://en.wikipedia.org/wiki/CAPTCHA) some websites require -you to solve in particular cases in order to get access (e.g. -YouTube, CloudFlare). .SS Can you add support for this anime video site, or site which shows current movies for free? .PP @@ -1700,7 +1404,7 @@ If you want to create a build of youtube\-dl yourself, you\[aq]ll need .IP \[bu] 2 python .IP \[bu] 2 -make (both GNU make and BSD make are supported) +make .IP \[bu] 2 pandoc .IP \[bu] 2 @@ -1709,15 +1413,8 @@ zip nosetests .SS Adding support for a new site .PP -If you want to add support for a new site, first of all \f[B]make -sure\f[] this site is \f[B]not dedicated to copyright -infringement (#can-you-add-support-for-this-anime-video-site-or-site-which-shows-current-movies-for-free)\f[]. -youtube\-dl does \f[B]not support\f[] such sites thus pull requests -adding support for them \f[B]will be rejected\f[]. -.PP -After you have ensured this site is distributing it\[aq]s content -legally, you can follow this quick list (assuming your service is called -\f[C]yourextractor\f[]): +If you want to add support for a new site, you can follow this quick +list (assuming your service is called \f[C]yourextractor\f[]): .IP " 1." 4 Fork this repository (https://github.com/rg3/youtube-dl/fork) .IP " 2." 4 @@ -1762,13 +1459,12 @@ class\ YourExtractorIE(InfoExtractor): \ \ \ \ \ \ \ \ webpage\ =\ self._download_webpage(url,\ video_id) \ \ \ \ \ \ \ \ #\ TODO\ more\ code\ goes\ here,\ for\ example\ ... -\ \ \ \ \ \ \ \ title\ =\ self._html_search_regex(r\[aq]

(.+?)

\[aq],\ webpage,\ \[aq]title\[aq]) +\ \ \ \ \ \ \ \ title\ =\ self._html_search_regex(r\[aq]

(.*?)

\[aq],\ webpage,\ \[aq]title\[aq]) \ \ \ \ \ \ \ \ return\ { \ \ \ \ \ \ \ \ \ \ \ \ \[aq]id\[aq]:\ video_id, \ \ \ \ \ \ \ \ \ \ \ \ \[aq]title\[aq]:\ title, \ \ \ \ \ \ \ \ \ \ \ \ \[aq]description\[aq]:\ self._og_search_description(webpage), -\ \ \ \ \ \ \ \ \ \ \ \ \[aq]uploader\[aq]:\ self._search_regex(r\[aq]]+id="uploader"[^>]*>([^<]+)<\[aq],\ webpage,\ \[aq]uploader\[aq],\ fatal=False), \ \ \ \ \ \ \ \ \ \ \ \ #\ TODO\ more\ properties\ (see\ youtube_dl/extractor/common.py) \ \ \ \ \ \ \ \ } \f[] @@ -1776,7 +1472,7 @@ class\ YourExtractorIE(InfoExtractor): .RE .IP " 5." 4 Add an import in -\f[C]youtube_dl/extractor/extractors.py\f[] (https://github.com/rg3/youtube-dl/blob/master/youtube_dl/extractor/extractors.py). +\f[C]youtube_dl/extractor/__init__.py\f[] (https://github.com/rg3/youtube-dl/blob/master/youtube_dl/extractor/__init__.py). .IP " 6." 4 Run \f[C]python\ test/test_download.py\ TestDownload.test_YourExtractor\f[]. @@ -1792,33 +1488,12 @@ Have a look at \f[C]youtube_dl/extractor/common.py\f[] (https://github.com/rg3/youtube-dl/blob/master/youtube_dl/extractor/common.py) for possible helper methods and a detailed description of what your extractor should and may -return (https://github.com/rg3/youtube-dl/blob/58525c94d547be1c8167d16c298bdd75506db328/youtube_dl/extractor/common.py#L68-L226). +return (https://github.com/rg3/youtube-dl/blob/master/youtube_dl/extractor/common.py#L62-L200). Add tests and code for as many as you want. .IP " 8." 4 -Keep in mind that the only mandatory fields in info dict for successful -extraction process are \f[C]id\f[], \f[C]title\f[] and either -\f[C]url\f[] or \f[C]formats\f[], i.e. -these are the critical data the extraction does not make any sense -without. -This means that any -field (https://github.com/rg3/youtube-dl/blob/58525c94d547be1c8167d16c298bdd75506db328/youtube_dl/extractor/common.py#L138-L226) -apart from aforementioned mandatory ones should be treated \f[B]as -optional\f[] and extraction should be \f[B]tolerate\f[] to situations -when sources for these fields can potentially be unavailable (even if -they always available at the moment) and \f[B]future\-proof\f[] in order -not to break the extraction of general purpose mandatory fields. -For example, if you have some intermediate dict \f[C]meta\f[] that is a -source of metadata and it has a key \f[C]summary\f[] that you want to -extract and put into resulting info dict as \f[C]description\f[], you -should be ready that this key may be missing from the \f[C]meta\f[] -dict, i.e. -you should extract it as \f[C]meta.get(\[aq]summary\[aq])\f[] and not -\f[C]meta[\[aq]summary\[aq]]\f[]. -Similarly, you should pass \f[C]fatal=False\f[] when extracting data -from a webpage with \f[C]_search_regex/_html_search_regex\f[]. +If you can, check the code with +flake8 (https://pypi.python.org/pypi/flake8). .IP " 9." 4 -Check the code with flake8 (https://pypi.python.org/pypi/flake8). -.IP "10." 4 When the tests pass, add (http://git-scm.com/docs/git-add) the new files and commit (http://git-scm.com/docs/git-commit) them and push (http://git-scm.com/docs/git-push) the result, like this: @@ -1826,14 +1501,14 @@ push (http://git-scm.com/docs/git-push) the result, like this: .IP .nf \f[C] -$\ git\ add\ youtube_dl/extractor/extractors.py +$\ git\ add\ youtube_dl/extractor/__init__.py $\ git\ add\ youtube_dl/extractor/yourextractor.py $\ git\ commit\ \-m\ \[aq][yourextractor]\ Add\ new\ extractor\[aq] $\ git\ push\ origin\ yourextractor \f[] .fi .RE -.IP "11." 4 +.IP "10." 4 Finally, create a pull request (https://help.github.com/articles/creating-a-pull-request). We\[aq]ll then review and merge it. @@ -1862,7 +1537,7 @@ with\ youtube_dl.YoutubeDL(ydl_opts)\ as\ ydl: .PP Most likely, you\[aq]ll want to use various options. For a list of what can be done, have a look at -\f[C]youtube_dl/YoutubeDL.py\f[] (https://github.com/rg3/youtube-dl/blob/master/youtube_dl/YoutubeDL.py#L121-L269). +youtube_dl/YoutubeDL.py (https://github.com/rg3/youtube-dl/blob/master/youtube_dl/YoutubeDL.py#L117-L265). For a start, if you want to intercept youtube\-dl\[aq]s output, set a \f[C]logger\f[] object. .PP @@ -1909,41 +1584,16 @@ with\ youtube_dl.YoutubeDL(ydl_opts)\ as\ ydl: .SH BUGS .PP 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. -For discussions, join us in the IRC channel -#youtube\-dl (irc://chat.freenode.net/#youtube-dl) on freenode -(webchat (http://webchat.freenode.net/?randomnick=1&channels=youtube-dl)). +For discussions, join us in the irc channel #youtube\-dl on freenode. .PP \f[B]Please include the full output of youtube\-dl when run with -\f[C]\-v\f[]\f[], i.e. -\f[B]add\f[] \f[C]\-v\f[] flag to \f[B]your command line\f[], copy the -\f[B]whole\f[] output and post it in the issue body wrapped in ``` for -better formatting. -It should look similar to this: -.IP -.nf -\f[C] -$\ youtube\-dl\ \-v\ -[debug]\ System\ config:\ [] -[debug]\ User\ config:\ [] -[debug]\ Command\-line\ args:\ [u\[aq]\-v\[aq],\ u\[aq]http://www.youtube.com/watch?v=BaW_jenozKcj\[aq]] -[debug]\ Encodings:\ locale\ cp1251,\ fs\ mbcs,\ out\ cp866,\ pref\ cp1251 -[debug]\ youtube\-dl\ version\ 2015.12.06 -[debug]\ Git\ HEAD:\ 135392e -[debug]\ Python\ version\ 2.6.6\ \-\ Windows\-2003Server\-5.2.3790\-SP2 -[debug]\ exe\ versions:\ ffmpeg\ N\-75573\-g1d0487f,\ ffprobe\ N\-75573\-g1d0487f,\ rtmpdump\ 2.4 -[debug]\ Proxy\ map:\ {} -\&... -\f[] -.fi -.PP -\f[B]Do not post screenshots of verbose log only plain text is -acceptable.\f[] +\f[C]\-v\f[]\f[]. .PP -The output (including the first lines) contains important debugging +The output (including the first lines) contain important debugging information. Issues without the full output are often not reproducible and therefore do not get solved in short order, if ever. @@ -1973,7 +1623,7 @@ If your report is shorter than two lines, it is almost certainly missing some of these, which makes it hard for us to respond to it. We\[aq]re often too polite to close the issue outright, but the missing info makes misinterpretation likely. -As a committer myself, I often get frustrated by these issues, since the +As a commiter myself, I often get frustrated by these issues, since the only possible way for me to move forward on them is to ask for clarification over and over. .PP @@ -1994,11 +1644,11 @@ command\-line) or upload the \f[C]\&.dump\f[] files you get when you add .PP \f[B]Site support requests must contain an example URL\f[]. An example URL is a URL you might want to download, like -\f[C]http://www.youtube.com/watch?v=BaW_jenozKc\f[]. +http://www.youtube.com/watch?v=BaW_jenozKc . There should be an obvious video present. Except under very special circumstances, the main page of a video service (e.g. -\f[C]http://www.youtube.com/\f[]) is \f[I]not\f[] an example URL. +http://www.youtube.com/ ) is \f[I]not\f[] an example URL. .SS Are you using the latest version? .PP Before reporting any issue, type \f[C]youtube\-dl\ \-U\f[]. @@ -2010,9 +1660,8 @@ This goes for feature requests as well. .PP Make sure that someone has not already opened the issue you\[aq]re trying to open. -Search at the top of the window or browse the GitHub -Issues (https://github.com/rg3/youtube-dl/search?type=Issues) of this -repository. +Search at the top of the window or at +https://github.com/rg3/youtube\-dl/search?type=Issues . If there is an issue, feel free to write something along the lines of "This affects me as well, with version 2015.01.01. Here is some more information on the issue: ...". @@ -2089,6 +1738,6 @@ bug. .PP youtube\-dl is released into the public domain by the copyright holders. .PP -This README file was originally written by Daniel -Bolton (https://github.com/dbbolton) and is likewise released into the -public domain. +This README file was originally written by Daniel Bolton +() and is likewise released into the public +domain. diff --git a/network/youtube-dl/youtube-dl.SlackBuild b/network/youtube-dl/youtube-dl.SlackBuild index 1b21d1b673..3cad72f903 100644 --- a/network/youtube-dl/youtube-dl.SlackBuild +++ b/network/youtube-dl/youtube-dl.SlackBuild @@ -24,7 +24,7 @@ # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. PRGNAM=youtube-dl -VERSION=${VERSION:-2016.05.21.2} +VERSION=${VERSION:-2016.05.30.2} BUILD=${BUILD:-1} TAG=${TAG:-_SBo} diff --git a/network/youtube-dl/youtube-dl.info b/network/youtube-dl/youtube-dl.info index 9d2c1779b8..449b2274d0 100644 --- a/network/youtube-dl/youtube-dl.info +++ b/network/youtube-dl/youtube-dl.info @@ -1,8 +1,8 @@ PRGNAM="youtube-dl" -VERSION="2016.05.21.2" +VERSION="2016.05.30.2" HOMEPAGE="https://rg3.github.io/youtube-dl" -DOWNLOAD="https://github.com/rg3/youtube-dl/archive/2016.05.21.2.tar.gz" -MD5SUM="d478f97a508489fb5afb26444e049e34" +DOWNLOAD="https://github.com/rg3/youtube-dl/archive/2016.05.30.2.tar.gz" +MD5SUM="11ba6076c5cbb75ca6c08654b0524be9" DOWNLOAD_x86_64="" MD5SUM_x86_64="" REQUIRES="" -- cgit v1.2.3