Youtubeの動画をみてたらこれはローカルに保存しておきたいな、ってことはよくありますよね。
Mac使っててかつターミナルを常用するひと向けです。一度やってもすぐ忘れるのでワークフローをメモっておきます。
やりたいことをまとめると以下のとおり。
- Youtubeからmp4ファイルをダウンロードする
- ターミナルからiTunesへファイルをインポートする
- ターミナルでmp4ファイルをmp3に変換する
1. mp4で動画をダウンロード
ブックマークレット使ってmp4をダウンロードします。
Download YouTube Videos as MP4 Files
2. iTunesへインポート
普通にiTunesにインポートしてもいいです。
ターミナルからやるために、以下のスクリプトを作成しました。
openコマンドは非常に便利。
$ chmod 755 ~/bin/addiTunes
$ cat ~/bin/addiTunes
#!/bin/sh
Usage()
{
echo Usage: $0 filename
exit 1
}
if [ $# != 1 ]; then
Usage
fi
if [ ! -e $1 ]; then
echo "$1 is not found"
exit 1
fi
open -a iTunes $1
$ addiTunes video.mp4
と実行すればiTunesにインポートされます。ちょっとだけ便利。
3. 音声ファイル(mp3)としてもiTunesにインポートする
要はYoutubeの動画を音だけ、音声ファイルとしても保存しときたい場合。
ダウンロードしたmp4をmp3に変換します。ffmpegという変換コマンドを使います。
ffmpegはMacPortsからインストールできるらしいのですが、自分の環境ではうまくいかなかったので、iSquintに同封されてたバイナリのffmpegを使い回しました。
パスのとおった場所にシンボリックリンク作成
$ ln -s /Applications/iSquint.app/Contents/Resources/ffmpeg
~/bin/ffmpeg
引数を毎回考えるのは面倒くさいのでこれもシェルスクリプトにしておきます。
$ chmod 755 ~/bin/mp42mp3
$ cat ~/bin/mp42mp3
#!/bin/sh
Usage()
{
echo "convert mp4 to mp3 audio file"
echo Usage: $0 inputmp4file
exit 1
}
if [ $# != 1 ]; then
Usage
fi
if [ ! -e $1 ]; then
echo "$1 is not found"
exit 1
fi
SUFFIX=`basename $1 | sed -e "s/.*\.\([^.]*\)\$/\1/g"`
DST="`basename $1 $SUFFIX`mp3"
ffmpeg -i $1 -vn -ab 128 $DST
$ mp42mp3 video.mp4
と実行するとvideo.mp3ができます。
iTunesにインポートするならば、
$ mp42mp3 video.mp4; addiTunes video.mp3
とかやればOK。
地味ですけどね。結局タグの編集だとかはiTunesでやるんですけどね。
Trackback URL