■youtube-dlを使ってみる。
$ apt-get install -y youtube-dl
$ dpkg -l | awk '/^ii/&&/youtube-dl/{print $2,$3}'
youtube-dl 2017.05.18.1-1
■youtubeのURLを以下のように引数として与えると一覧が出て、
フォーマットコードを使ってダウンロードできる。
$ youtube-dl -F https://www.youtube.com/watch?v=abcDEF123
[youtube] abcDEF123: Downloading webpage
[youtube] abcDEF123: Downloading video info webpage
[youtube] abcDEF123: Extracting video information
WARNING: unable to extract uploader nickname
[info] Available formats for abcDEF123:
format code extension resolution note
249 webm audio only DASH audio 59k , opus @ 50k, 16.95MiB
250 webm audio only DASH audio 79k , opus @ 70k, 20.54MiB
140 m4a audio only DASH audio 130k , m4a_dash container, mp4a.40.2@128k, 51.25MiB
251 webm audio only DASH audio 138k , opus @160k, 38.76MiB
171 webm audio only DASH audio 141k , vorbis@128k, 35.37MiB
160 mp4 256x144 144p 113k , avc1.4d400c, 30fps, video only, 20.13MiB
278 webm 256x144 144p 131k , webm container, vp9, 30fps, video only, 36.29MiB
242 webm 426x240 240p 259k , vp9, 30fps, video only, 51.64MiB
133 mp4 426x240 240p 285k , avc1.4d4015, 30fps, video only, 53.62MiB
243 webm 640x360 360p 488k , vp9, 30fps, video only, 94.85MiB
134 mp4 640x360 360p 634k , avc1.4d401e, 30fps, video only, 82.10MiB
17 3gp 176x144 small , mp4v.20.3, mp4a.40.2@ 24k
36 3gp 320x180 small , mp4v.20.3, mp4a.40.2
43 webm 640x360 medium , vp8.0, vorbis@128k
18 mp4 640x360 medium , avc1.42001E, mp4a.40.2@ 96k (best)
$ youtube-dl -f 18 https://www.youtube.com/watch?v=abcDEF123
WARNING: unable to extract uploader nickname
[download] Destination: Dummy Youtube-abcDEF123.mp4
[download] 100% of 185.74MiB in 00:50
■毎回(と言ってもそんなに使わないが)「format code」を入れるのは面倒。
常に一番下が最高画質のため、ダウンロードのためのワンライナーを書いてみる。
2列目が「mp4」だったら1列目の文字列を「160」「133」「134」「18」の順に上書きで入れていく。
最後の「18」を指定してダウンロードされるようにコマンドを出力して「sh」に動作渡す。
「(best)」も入れたり、引数のチェックをした方が確実かも知れないがそこまで深入りはしないでおく。
$ cat myscripts/you2be.sh
if [ $# -ne 1 ];then
echo "Usege $0 [youtube-url]"
exit 1
fi
Y2B_URL="$1"
youtube-dl -F "${Y2B_URL}" | \
awk -v u="${Y2B_URL}" '{if($2=="mp4"){mp4=$1}}END{print "youtube-dl -f "mp4" \042"u"\042"}' | sh
■例えば以下のように使う。
$ ./myscripts/you2be.sh
Usege ./myscripts/you2be.sh [youtube-url]
■「youtube-url」を指定してダウンロードする条件の例
「Dummy Youtube」というタイトル
「abcDEF123」のURL動画
$ ./myscripts/you2be.sh https://www.youtube.com/watch?v=abcDEF123
WARNING: unable to extract uploader nickname
[youtube] abcDEF123: Downloading webpage
[youtube] abcDEF123: Downloading video info webpage
[youtube] abcDEF123: Extracting video information
WARNING: unable to extract uploader nickname
[download] Destination: Dummy Youtube-abcDEF123.mp4
[download] 100% of 185.74MiB in 00:50
$ file Dummy\ Youtube-abcDEF123.mp4
Dummy Youtube-abcDEF123.mp4: ISO Media, MP4 v2 [ISO 14496-14]
■ffmpegがあればダウンロードしたファイルが、
以下のように「640x360」、「96kbps」であることが確認出来る。
$ apt-file search bin/ffprobe | grep be$
ffmpeg: /usr/bin/ffprobe
$ ffprobe -hide_banner Dummy\ Youtube-abcDEF123.mp4 2>&1 | awk '/Stream/{gsub(",","\n\t",$0);print $0}'
Stream
yuv420p
640x360 [SAR 1:1 DAR 16:9]
301 kb/s
29.93 fps
29.93 tbr
14967 tbn
59.87 tbc (default)
Stream
44100 Hz
stereo
fltp
96 kb/s (default)