iPod Touch の音楽を Linux で管理する
iPod touch を買ったはいいけど音楽を聴くのにすら使ってなかった( iTunes なんて使いたくない)ので、いろいろ頑張って最低限使えるレベルまでもってきました。今回はそのメモ。
iPod touch の音楽を Linux で管理する場合、以下のような問題が発生します。
- Windows でリッピングした mp3 のタグのエンコーディングは ShiftJIS なので iPod touch で見たときに文字化けする
- 微妙なタグの違いを修正する必要がある(アーティスト名とか)
- ogg や flac などで音楽を管理している場合は、転送時に mp3 や aac に変換する必要がある
- iPod touch のマウントと曲の転送方法
これらを解決しないと快適な iPod touch は送れません。以下、順番に僕がやった解決策を紹介します。
ちなみに実際以下の方法を試す場合はバックアップを取っておいてください。僕は責任をとれません。
$ cp -a ~/music ~/backup/music
ShiftJIS なタグを UTF-8 に変換する
Windows で音楽 CD をリッピングした場合、仕様外であるにもかかわらず、 ShiftJIS なタグをつっこみます。昔リッピングした mp3 はほとんどそのようになっているので、まずそれを変換する必要があります。膨大な量の mp3 があるので、(仮にあったとしても) GUI なソフトウェアでやるのはつらいような気がします。なので、文字コードを推測してユーザーの操作を最低限に抑える一括変換スクリプトを書きました。添付されている fixtag というスクリプトをダウンロードしてきて以下を実行します。
$ find ~/music -type f -name '*.mp3' -print0 | xargs -0 ./fixtag
文字コードが一意に認識できない場合は、ユーザーに問いかけて修正していきます。僕の環境ではほとんど自動でやってくれました。 id3info コマンドを使ってうまく変換できているか確かめることができます。
$ echo $LANG ja_JP.UTF-8 $ id3info ~/music/Mr.Children/Kind\ of\ Love/01\ -\ 虹の彼方へ.mp3 | grep TIT === TIT2 (Title/songname/content description): 虹の彼方へ
微妙な違いのあるタグを修正する
例えばアーティスト名に微妙な違い(一方は小文字で一方は大文字など)がある場合、 iPod touch は両者を違うものとして認識します。なのでその辺りをうまく修正する必要があります。こういうのは GUI が便利なので EasyTag [1] というソフトウェアを使って修正しました。微妙に動作が怪しいところもありますが、なんとかなります。ちなみに Gentoo なら、
# emerge easytag
でインストールできます。
[1] | http://easytag.sourceforge.net/ |
ogg や flac で音楽を管理している場合
ogg や flac で音楽を管理している場合、 iPodtouch に転送するときに再生可能な形式に変換する必要があります。僕は音楽を flac で管理しているのですが、 mp3fs という丁度良いソフトウェアがあったのでこれを利用しました。 mp3fs は flac 形式のファイルを FUSE 経由で mp3 として認識できるようにしてくれるソフトウェアです。 Gentoo なら、
# emerge mp3fs
でインストールできます [2] 。ただ僕の場合、さらに特殊なことをやっていて、タグを flac の独自形式で記録せずに flac ファイルの先頭に ID3v2 タグをいれています [3] 。残念ながら、そのようなことをしている場合に mp3fs が mp3 変換時にタグをロストしてしまうので、パッチを書いてなんとかしました。(たぶん必要とする人はいないでしょうが)使用したい場合は添付されているパッチをダウンロードしてきて以下のコマンドを実行してください。 libid3 と libid3tag が必要です。
[2] | さりげなく Gentoo の寄さをアピール |
[3] | 仕様的には許可されます |
$ cd ~/tmp/mp3fs-0.12 $ patch -p1 < ~/tmp/mp3fs-0.12-id3.patch $ ./configure --prefix=$HOME $ make && make install
iPod touch に転送する際は mp3fs でマウントしたディレクトリを使います。
$ ~/bin/mp3fs ~/music,192 ~/mnt/music
iPod touch のマウントと音楽の転送
iPod touch を USB 経由でマウントする方法がわからなかったので sshfs でマウントします。 あらかじめ iPod touch を Jailbreak して ssh を入れておいてください。
$ # 192.168.1.2 は iPod touch の IP アドレス $ # Terminal で ifconfig して確認してください $ sshfs root@192.168.1.2:/var/root/Media ~/mnt/ipod
Gtkpod [4] というソフトウェアを使って音楽を転送します。 ~/mnt/ipod で iPod を追加するだけで OK です。後は ~/mnt/music から適当に音楽ファイルを追加して「変更を保存」します。最後に iPod touch を再起動すれば音楽ファイルが追加されていると思います。
[4] | http://www.gtkpod.org/ |
最後に
ここまでやるのに数ヶ月かかったのは秘密です。主にやる気との闘いだったのですが、何気に mp3 のタグが障壁になったりして大変でした。やっぱり統一した管理というのは重要ですね。
fixtag
Size 3.9 kB - File type application/octet-streammp3fs-0.12-id3.patch
Size 11.6 kB - File type text/x-patch- Category(s)
- linux
- The URL to Trackback this entry is:
- http://dev.ariel-networks.com/Members/matsuyama/ipod-touch-with-linux/tbping