Macで音楽を再生してみた時の話

今まで、Macで音楽を再生したことがなかったので、急遽、Macでの音楽再生環境を整えてみることにしました。音楽は聴き始めたばかりなので、色々と教えて下さい。

##必要なもの
[w3m](http://w3m.sourceforge.net/index.ja.html) //テキストブラウザ
[Mplayer](http://www.mplayerhq.hu/design7/news.html) //動画、音楽プレイヤー
[youtube-dl](http://rg3.github.com/youtube-dl/) //YouTubeを動画をダウンロード
[nicovideo-dl](http://ubuntuapps.blog67.fc2.com/blog-entry-347.html) //ニコニコ動画をダウンロード
[ffmpeg](http://ffmpeg.org/) //動画から音声を抜き出すのに使う

まずは、音楽自体パソコンに入れてないので、ダウンロードすることに。ダウンロードするものは、作者がアップロードしてくれている可能性が高い` 初音ミク `のものを選択します。そのため、まずは` ニコニコ動画 `という動画サイトにアクセスすることに。あと、この記事は、違法ダウンロードを補助または促進する目的のものではありません。

```
brew install w3m
```

` w3m http://google.com/ `としてもいいのですが、ここは検索の簡易化を図るため、Shellの設定ファイルに書いておきます。

```~/.zshrc

# 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](http://sourceforge.jp/projects/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 `です。

```~/.netrc

machine     nicovideo
login      (メールアドレス)
password    (パスワード)

```

そして、` nicovideo-dl `と` ffmpeg `をどちらも` ~/work `フォルダにでも置き、エイリアスを設定します。

```~/.zshrc

alias ffmpeg="~/work/ffmpeg"
alias nicovideo="~/work/nicovideo-dl -n -t"

```

` w3m `の設定ファイルを変更し、カーソル位置のリンクURLをコピーできるようにしておきます。

```~/.w3m/keymap

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
```

毎回このコマンドは面倒なので、シェルスクリプトを作成しておきます。

```~/ffmpeg.sh

#!/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 `が失敗しています。便利なんですけどね。