Macでyoutubeプレイリストを一括ダウンロードする

事前準備:
JRE(Java SE Rutime Environment)をインストール
http://java.com/ja/download/

Java SE Development Kit 7 をインストール
http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
jdk-7u51-macosx-x64.dmgをダウンロード

Command Line Toolsをインストール
ターミナルから
$ xcode-select –install

Homebrewをインストール
ターミナルから
$ ruby -e “$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)”

brewインストール後、正しくbrewがインストールされたか$ brew doctorで確認。
以下のエラーが出る場合はそれぞれ対象のファイルを削除。

$ brew doctor
Warning: Unbrewed dylibs were found in /usr/local/lib.
If you didn’t put them there on purpose they could cause problems when
building Homebrew formulae, and may need to be deleted.

Unexpected dylibs:
/usr/local/lib/libmacfuse_i32.2.dylib
/usr/local/lib/libmacfuse_i64.2.dylib
/usr/local/lib/libosxfuse_i32.2.dylib
/usr/local/lib/libosxfuse_i64.2.dylib

Warning: Unbrewed .la files were found in /usr/local/lib.
If you didn’t put them there on purpose they could cause problems when
building Homebrew formulae, and may need to be deleted.

Unexpected .la files:
/usr/local/lib/libosxfuse_i32.la
/usr/local/lib/libosxfuse_i64.la

対象のファイルを削除
$ rm -rf /usr/local/lib/libmacfuse_i32.2.dylib
$ rm -rf /usr/local/lib/libmacfuse_i64.2.dylib
$ rm -rf /usr/local/lib/libosxfuse_i32.2.dylib
$ rm -rf /usr/local/lib/libosxfuse_i64.2.dylib
$ rm -rf /usr/local/lib/libosxfuse_i32.la
$ rm -rf /usr/local/lib/libosxfuse_i64.la
$ rm -rf /usr/local/lib/pkgconfig/osxfuse.pc

削除したファイルへのシンボリックリンクも削除
$ brew prune

$ brew doctor
Your system is ready to brew.
と表示されれば正常にインストール完了

ffmpegをインストール
$ brew install –use-clang –HEAD ffmpeg
# ログ省略
$ ffmpeg -version
ffmpeg version 1.0.git
# その他省略
$ brew install –use-clang –HEAD ffmpeg –with-libvpx –with-libfaac –with-libvorbis

youtube-dlをダウンロードする

http://rg3.github.io/youtube-dl/download.html

ダウンロードしたいyoutubeプレイリストをブラウザで開いて、URLバーのアドレスではなくプレイリスト自体のアドレスをコピーする。
プレイリスト再生ページの動画ウィンドウ内の左上文字を右クリック → リンクアドレスをコピー
↓このアドレス形式
youtube.com/playlist?list=foobar

youtubeチャンネルの一括ダウンロードの場合は↓このアドレス形式
http://www.youtube.com/channel/foobar

ターミナルを開いてyoutube-dlを置いたディレクトリに移動
以下のコードを実行するとyoutubeプレイリストに含まれる動画をmp3に変換して一括ダウンロードできる
python youtube-dl -t -i –extract-audio –audio-format mp3 –no-post-overwrites コピーしたアドレス

pythonコードの実行なのでメモリ、CPUの負荷が軽くていいかんじ

youtube-dl の他パラメータについては以下。

Options:
General Options:
-h, –help print this help text and exit
–version print program version and exit
-U, –update update this program to latest version. Make sure
that you have sufficient permissions (run with
sudo if needed)
-i, –ignore-errors continue on download errors
–dump-user-agent display the current browser identification
–user-agent UA specify a custom user agent
–referer REF specify a custom referer, use if the video access
is restricted to one domain
–list-extractors List all supported extractors and the URLs they
would handle
–extractor-descriptions Output descriptions of all supported extractors
–proxy URL Use the specified HTTP/HTTPS proxy
–no-check-certificate Suppress HTTPS certificate validation.

Video Selection:
–playlist-start NUMBER playlist video to start at (default is 1)
–playlist-end NUMBER playlist video to end at (default is last)
–match-title REGEX download only matching titles (regex or caseless
sub-string)
–reject-title REGEX skip download for matching titles (regex or
caseless sub-string)
–max-downloads NUMBER Abort after downloading NUMBER files
–min-filesize SIZE Do not download any videos smaller than SIZE
(e.g. 50k or 44.6m)
–max-filesize SIZE Do not download any videos larger than SIZE (e.g.
50k or 44.6m)
–date DATE download only videos uploaded in this date
–datebefore DATE download only videos uploaded before this date
–dateafter DATE download only videos uploaded after this date

Download Options:
-r, –rate-limit LIMIT maximum download rate (e.g. 50k or 44.6m)
-R, –retries RETRIES number of retries (default is 10)
–buffer-size SIZE size of download buffer (e.g. 1024 or 16k)
(default is 1024)
–no-resize-buffer do not automatically adjust the buffer size. By
default, the buffer size is automatically resized
from an initial value of SIZE.

Filesystem Options:
-t, –title use title in file name (default)
–id use only video ID in file name
-l, –literal [deprecated] alias of –title
-A, –auto-number number downloaded files starting from 00000
-o, –output TEMPLATE 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, %(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. Use – to
output to stdout. Can also be used to download to
a different directory, for example with -o ‘/my/d
ownloads/%(uploader)s/%(title)s-%(id)s.%(ext)s’ .
–autonumber-size NUMBER Specifies the number of digits in %(autonumber)s
when it is present in output filename template or
–autonumber option is given
–restrict-filenames Restrict filenames to only ASCII characters, and
avoid “&” and spaces in filenames
-a, –batch-file FILE file containing URLs to download (‘-‘ for stdin)
-w, –no-overwrites do not overwrite files
-c, –continue resume partially downloaded files
–no-continue do not resume partially downloaded files (restart
from beginning)
–cookies FILE file to read cookies from and dump cookie jar in
–no-part do not use .part files
–no-mtime do not use the Last-modified header to set the
file modification time
–write-description write video description to a .description file
–write-info-json write video metadata to a .info.json file
–write-thumbnail write thumbnail image to disk

Verbosity / Simulation Options:
-q, –quiet activates quiet mode
-s, –simulate do not download the video and do not write
anything to disk
–skip-download do not download the video
-g, –get-url simulate, quiet but print URL
-e, –get-title simulate, quiet but print title
–get-id simulate, quiet but print id
–get-thumbnail simulate, quiet but print thumbnail URL
–get-description simulate, quiet but print video description
–get-filename simulate, quiet but print output filename
–get-format simulate, quiet but print output format
–newline output progress bar as new lines
–no-progress do not print progress bar
–console-title display progress in console titlebar
-v, –verbose print various debugging information
–dump-intermediate-pages print downloaded pages to debug problems(very
verbose)

Video Format Options:
-f, –format FORMAT video format code, specifiy the order of
preference using slashes: “-f 22/17/18”. “-f mp4”
and “-f flv” are also supported
–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 (currently youtube
only)

Subtitle Options:
–write-sub write subtitle file (currently youtube only)
–write-auto-sub write automatic subtitle file (currently youtube
only)
–only-sub [deprecated] alias of –skip-download
–all-subs downloads all the available subtitles of the
video
–list-subs lists all available subtitles for the video
–sub-format FORMAT subtitle format (default=srt) ([sbv/vtt] youtube
only)
–sub-lang LANGS languages of the subtitles to download (optional)
separated by commas, use IETF language tags like
‘en,pt’

Authentication Options:
-u, –username USERNAME account username
-p, –password PASSWORD account password
-n, –netrc use .netrc authentication data
–video-password PASSWORD video password (vimeo only)

Post-processing Options:
-x, –extract-audio convert video files to audio-only files (requires
ffmpeg or avconv and ffprobe or avprobe)
–audio-format FORMAT “best”, “aac”, “vorbis”, “mp3”, “m4a”, “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 128K (default 5)
–recode-video FORMAT Encode the video to another format if necessary
(currently supported: mp4|flv|ogg|webm)
-k, –keep-video keeps the video file on disk after the post-
processing; the video is erased by default
–no-post-overwrites do not overwrite post-processed files; the post-
processed files are overwritten by default
–embed-subs embed subtitles in the video (only for mp4
videos)

コメント

タイトルとURLをコピーしました