1
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.

iTunesの重複した曲を一括削除する

Last updated at Posted at 2018-11-07

 2018-11-07 17.28.52.png

今日は。
先日、iPod Classicを手に入れました。鏡みたいな背面がカッコイイ。
160GBも入るらしいので、とにかく持ってる曲丸々入れてやろうとか思ってたんですが、問題点が2つ。

  • Macが2台あるが、それぞれ曲が入ってたり入ってなかったりしたので、ライブラリを合わせたい(お互いのライブラリの和集合がほしい)

  • 全く同じ曲が重複している(画像の通り)。iPhoneやWalkmanなら単体で削除できるが、Classicはそれができないらしく...

辛抱強く1曲1曲選んで移してもよかったんですが、今後のことも考えて、この際2ライブラリを合わせて、かつ整理してしまおうと思い立った次第です。

方針

Mac1のライブラリを丸ごとMac2に移して、曲の重複を解消してしまえば上の2つは同時に解決できそう。
ただ...

iTunesの重複判定が緩すぎる

 2018-11-07 17.32.26.png

iTunesで、optionキーを押下しつつ(WindowsはAlt)メニューバーからファイル>ライブラリと動かすと、"完全に重複する項目を表示"と出ます。
確かに重複した項目がずらっと出るんですが、おそらく曲名しか見ていないのか、収録されているアルバムが違ったりしても表示されていたりしました(そもそもそういう機能なのだと思います)。
僕としては、完全に重複している曲を削除したいので、結局ここから選別していかないといけません。全体のライブラリから見れば数は絞れていますが、それでもかなりシンドイ...。

プログラムを組む

今思えば、AnimatorやらAppleScriptやらでもっとうまいやり方があったのかもしれませんが、何とは無しにPythonで書きました。コードは以下。利用は自己責任でお願いします。
https://github.com/sora410/iTunes_dup_delete/blob/master/iTunes_dup_delete.py
iTunes Music Library.xmlをBeautifulSoupで解析して、重複をカウントしてファイルパスからrmするだけです。名前、録音時間、アーティスト名、アルバム名全部合致していないと重複と見なされないようにしてあるので、判定はかなり厳しくなっているとは思います。
ただ、シークレットトラックなんかの前にめちゃある[Blank]みたいなのも同時に検知してしまうので、Blacklistを作っておきました。argparseで指定してもいいかなとは思ったんですが、複数指定の時の区切り文字に悩んだのでやめました。

あと少し...

重複した余分なファイルそのものは消すことができたのですが、iTunesにはまだ項目だけ残ってしまっています。
こちらのサイトを参考に、幽霊項目たちを一掃します。こんなうまいやり方があるんですね...。(終)

1
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
1
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?