5
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Last updated at Posted at 2012-12-26

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

##必要なもの
w3m //テキストブラウザ
Mplayer //動画、音楽プレイヤー
youtube-dl //YouTubeを動画をダウンロード
nicovideo-dl //ニコニコ動画をダウンロード
ffmpeg //動画から音声を抜き出すのに使う

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

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からダウンロードし、解凍して~/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-dlffmpegをどちらも~/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が失敗しています。便利なんですけどね。

5
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?