今まで、Macで音楽を再生したことがなかったので、急遽、Macでの音楽再生環境を整えてみることにしました。音楽は聴き始めたばかりなので、色々と教えて下さい。
##必要なもの
w3m //テキストブラウザ
Mplayer //動画、音楽プレイヤー
youtube-dl //YouTubeを動画をダウンロード
nicovideo-dl //ニコニコ動画をダウンロード
ffmpeg //動画から音声を抜き出すのに使う
まずは、音楽自体パソコンに入れてないので、ダウンロードすることに。ダウンロードするものは、作者がアップロードしてくれている可能性が高い初音ミク
のものを選択します。そのため、まずはニコニコ動画
という動画サイトにアクセスすることに。あと、この記事は、違法ダウンロードを補助または促進する目的のものではありません。
brew install w3m
w3m http://google.com/
としてもいいのですが、ここは検索の簡易化を図るため、Shellの設定ファイルに書いておきます。
# w3mでgoogle検索
function google() {
local str opt
if [ $ != 0 ]; then
for i in $*; do
str="$str+$i"
done
str=`echo $str | sed 's/^\+//'`
opt='search?num=50&hl=ja&lr=lang_ja'
opt="${opt}&q=${str}"
fi
w3m http://www.google.co.jp/$opt
}
続いて、動画をダウンロードするためのツールを導入します。
brew install youtube-dl
brew search nicovideo-dl
...no
nicovideo-dlからダウンロードし、解凍して~/work
フォルダにでも置きます。
続いて、動画を変換するためのツールをダウンロードします。
brew install --use-clang --HEAD ffmpeg
...no
mkdir ~/work && cd ~/work && wget http://ffmpegmac.net/resources/SnowLeopard_Lion_18.03.2012.zip && unzip SnowLeopard_Lion_18.03.2012.zip -d ~/work
また、ニコニコ動画にはパスワードが必要ですから、それを前もって参照できるようにしておきます。オプションは-n
です。
machine nicovideo
login (メールアドレス)
password (パスワード)
そして、nicovideo-dl
とffmpeg
をどちらも~/work
フォルダにでも置き、エイリアスを設定します。
alias ffmpeg="~/work/ffmpeg"
alias nicovideo="~/work/nicovideo-dl -n -t"
w3m
の設定ファイルを変更し、カーソル位置のリンクURLをコピーできるようにしておきます。
keymap m EXTERN_LINK "echo %s | pbcopy"
サイトにアクセスし、気になる動画のURLをコピーします。リンクテキストにカーソルを合わせm
を押せば、URLをコピーできます。
google ニコニコ動画vocaloid
続いて、先ほどコピーしたURLを使い動画をダウンロードします。
nicovideo http://www.nicovideo.jp/watch/xxxxx
ダウンロードが完了したら、動画をmp3
に変換します。
ffmpeg -i xxxx.mp4 -acodec libmp3lame -ab 128 xxxx.mp3
毎回このコマンドは面倒なので、シェルスクリプトを作成しておきます。
#!/bin/sh
DEST_FILE=${1}
DEST_NAME=`basename "${DEST_FILE}"`
FILE_NAME=`echo ${DEST_NAME} | sed 's/\(^.*\)\.[^\.]*$/\1/'`
~/work/ffmpeg -i "${DEST_FILE}" -acodec libmp3lame -ab 128 "${FILE_NAME}.mp3"
これで、~/./ffmpeg.sh ファイル名
とすることで、動画ファイルが音楽ファイルに変換されます。
次に、音楽ファイルを再生してみます。再生するにはMplayer
を使います。
brew install mplayer --use-gcc
...error
f=`date '+mplayer%Y%m%d_%H%M'`;mkdir ${f}; svn checkout svn://svn.mplayerhq.hu/mplayer/trunk ${f}; cd ${f}; git clone git://git.videolan.org/ffmpeg.git ffmpeg; ./configure; make ;sudo make install
ただ再生するだけではつまらないので、プレイリストを作って、再生してみます。
mkdir -p ~/Music/list && mv *.mp3 ~/Music/list && cd ~/Music/list
find `pwd` -maxdepth 1 -mindepth 1 | grep -v "\/\." > mylist
mplayer -playlist mylist -loop 10
上では何をやっているのかというと、フォルダを作り、その中に、ダウンロードし、変換した音楽ファイルをすべて移動しています。そして、先ほど作ったフォルダに移動し、その中にあるすべてのファイルのパスをmylist
に書き込んでいます。そして、mylist
を再生させるオプションを付け、mplayer
で再生させます。
-playlist //プレイリストを参照する
-loop //ループの回数を指定する
tmux
を利用すると、ブラウジングしながら、URLを取得し、動画をダウンロードしながら音楽を聞くことも可能です。一応、tmux
のクリップボード共有設定は済ませておきましょう。
ちなみに、youtube-dl
の使い方ですが、参考までに、YouTube動画へのリンクを載せているサイトからまとめて動画をダウンロードする手順を書いておきます。賢いやり方ではありません。もっと効率的なやり方があったら教えて下さい。
wget -r http://dotinstall.com/
brew install coreutils
find ~/dotinstall.com/lessons -name "[0-9]*" | xargs gmv -t ~/dotinstall.com/lessons
...no
find ~/work/dotinstall.com/lessons -name "[0-9]*" | xargs -I{} mv {} ~/dotinstall.com/lessons
cd ~/dotinstall.com/lessons
cat [0-9]* [0-9]* > test.txt
grep videoId test.txt > videoid.txt
sed "s|videoId: '|http://jp.youtube.com/watch?v=|" videoid.txt > url.txt
sed "s/',//g" url.txt > url2.txt
youtube-dl -t -a url2.txt
上では何をやっているのかというと、まず動画IDを集めてテキストファイルに入力します。そして、動画IDを正式な動画URLに結合し、それをテキストファイルに書き込みます。最後に、テキストファイルを参照する-a
をつけてダウンロードを開始します。ちなみに、-t
はタイトルの取得です。
途中でxargs -t
が失敗しています。便利なんですけどね。