Android端末とプレイリストの同期をrsyncで行う

iPhoneと違ってAndroidにはiTunes的なものがない.したがって,PCのプレイリストと端末内のプレイリスト(およびライブラリ)との同期は基本的に手動で行わなければならない.
自分はUbuntuユーザーなので,BansheeのプレイリストとAndroid端末内の音楽ライブラリをrsyncで同期する方法を考えた.

Bansheeのプレイリストをエクスポートすると,~/Musicからの相対パスが書かれたM3Uファイルが出力される.これをrsyncの--files-fromオプションに食わせてやればよい.

まずは ~/Music まで移動しておく.そしてターミナルから次を実行(Android端末内のMusicディレクトリは /media/1234-5678/Music にマウントされていると仮定):

$ rsync --update --files-from=myplaylist.M3U . /media/1234-5678/Music

これでM3Uファイルにあるファイルが必要な分だけコピーされる.

この手順をもっと簡単に行うためPythonでラッパーを書いた.

こんな感じで使える.(例によって ~/Music まで移動しておく必要がある)

$ python3 plrsync.py myplaylist.M3U /media/1234-5678/Music

1回目で rsync を '--dry-run' オプション付きで実行し,コピーするファイルがあるかどうかをチェックする.コピーするファイルがあったら,ユーザーにこの通りコピーしていいか聞く.yesなら '--dry-run'なしでrsyncを本実行する.最後にプレイリスト本体をrsyncする.