iTunesの重複曲を削除する - perl

Posted on 8月 4, 2010
Filed Under perl |

家のPCのWindowsを入れなおすついでに家のiTunesとmacbookのiTunesの中身を同期しようと思い、何も考えずにiTunesのホームネットワークに追加して曲をコピペしたら大量に重複曲ができていっこいっこ手で削除するなんてめんどくさくてできない場合の話。

iTunesには「重複する項目を表示」って機能はあるのに重複してる曲を削除する、っていう便利機能は無い。

ただし、同じアーティスト名、同じアルバム名(つまり同じディレクトリ)の同名曲は、
ファイル名の末尾に数字をつけてincrementしていく、ってルールでコピーしてきたファイルを置くようだ。

そこで、perlで重複曲を削除してみる

% perl remove-duplicate.pl /Users/mash/Music/iTunes/iTunes\ Media/Music/

って実行すると重複してるっぽい曲だけ消してくれる

その後、実体が無いけど曲のリストがあるiTunesを開き、上から順に →カーソルキー を押しっぱなしにしたりすると

のようにびっくりマークがつくので、表示項目に「追加日」を追加して、
びっくりマークを目印に、複数選択しながら消していくとまあ許容できるめんどくささになった

Term::Prompt がなんか楽しくて意味もなく “really?” とか聞くちょっとしたスクリプトを書く今日このごろ

PS. iTunes Music Library.xml をいっしょに編集したりすればもっと簡単なのかもしれない

Comments

2 Responses to “iTunesの重複曲を削除する - perl”

  1. sekimura on 8月 4th, 2010 15:29

    Mac OS X の上で RubyOSA を使って同じようなことをするモノをちょっと前に作ってました。

    http://github.com/sekimura/itunes-duplicates-remover

    重複したファイルだけを含む playlist を作成して、そのあとに削除します。

    本当は、AppleScript でやるのが良いような気もしますが、参考までにどうぞ。

  2. mash on 8月 5th, 2010 23:30

    ありがとうございます!rbosaっての使ってるんですね、調べてみます!

Leave a Reply