職業プログラマの休日出勤

職業プログラマによる日曜自宅プログラミングや思考実験の成果たち。リアル休日出勤が発生すると更新が滞りがちになる。記事の内容は個人の意見であり、所属している(いた)組織の意見ではない。

Macのミュージックのデータを外付けドライブに移す

表題のことをやりました。
この記事では検討したこと、実際にやったことを書いておりますが、読者の皆さんの環境で同様の挙動をするかどうかはよくわかりません。他の記事でも当然に言えることですが、真似する場合は自己責任でどうぞ。

なぜやるのか?

OSのブートボリュームである内蔵のSSDが500GBであるのに、

  • 音楽データだけで50GB近く占有していたから。(ただし、写真はもっと大きいので、後日やる。)
  • 空きが30GB程度となり、SSDの健全な(=長寿命な)利用が難しそうになってきたから。

最初に試したこと(失敗)

次の手順を試しましたが、上手くいきませんでした。

  • 「ミュージック」アプリを終了
  • ~/Music/ すなわち、ホームディレクトリの「ミュージック」以下にあるデータを、Finder操作によって、外付けドライブにコピー
  • 「ミュージック」アプリを起動して、アプリの環境設定で、「ファイル」タブの中にある「ミュージックのメディアフォルダの場所」を、コピー先を指すように変更
  • コピー元のフォルダをゴミ箱に入れる
  • 「ミュージック」アプリを起動して動作確認

なお、メディアフォルダの場所を変更したとき、↓のダイアログが表示され、「はい」を押しました。何のことを言っているのかはよくわかりませんでしたが😇

f:id:t_motooka:20210912193032p:plain
メディアフォルダの場所を変更した後に表示されるダイアログ

動作確認の際、音楽が普通に再生されたので「おっしゃーー!!」と思いましたが、念のために曲を右クリックして「Finderで表示」したところ、ゴミ箱の中のファイルが表示されました😞 これは大失敗です。

参考文献(後述)のAppleのサポート記事にある通り、上記の設定変更は、ミュージックのアプリに新しい曲が追加されたときのファイルの保存場所についての設定であって、既存のファイルの参照先のことではないのです。
では既存のファイルの参照先を変える方法は?というと、このAppleのサポート記事には出てきません。

結局やったこと(成功)

参考文献(後述)のSeagateの記事にある内容*1で上手く行きました。

  • 引越し先に空っぽのフォルダを作る
  • 「ミュージック」アプリの環境設定で、「ファイル」タブの中にある「ミュージックのメディアフォルダの場所」を、さっき作った空っぽのフォルダにする
  • 「ミュージック」アプリの「ファイル」メニューの「ライブラリ」の中の「ライブラリを整理...」でダイアログを開き「ファイルを統合」にチェックを入れてOK
  • ファイルが全て「ミュージック」アプリの手でコピーされるので、待つ(筆者の環境では、たしか10〜20分ほど)
    • このとき、進捗状況の一部としてコピー中の曲名が表示されるが、これは恐らくライブラリに追加した順番に並んでいるように思われる。ライブラリのこれまでの歴史を辿る、感動的な局面である。
  • 「ミュージック」アプリを起動して動作確認(曲の保管場所も確認)して終了(quit)
  • 元々の保管場所をゴミ箱行き
  • 「ミュージック」アプリを起動して動作確認(曲の保管場所も確認)して終了(quit)
  • ゴミ箱を空にする
  • 「ミュージック」アプリを起動して動作確認(曲の保管場所も確認)
f:id:t_motooka:20210912194134p:plain
「ライブラリを整理...」ダイアログ
細かな話:ディレクトリ構成

筆者の環境は、2002年頃からiTunesに音楽を蓄積してきた結果のものであり、当時のOSからずっと移行し続けてきた、そして継ぎ足しされてきた「秘伝のソース」状態です。このため手元のディレクトリ構成は皆さんのものと異なるかもしれません。まぁ、参考になればと思います。

コピー元
~/Music/
  ├ iTunes/
  │  ├ Album Artwork ← 文字通り、アートワークが入っているように見えるが、よくわからない(これは外部ドライブには移行しなかった) 
  │  ├ iTunes Library Extras.itdb ← 最終変更日が2020年3月だった。時期的にはMojaveからCatalinaに上げた頃。何が入ってるのかは謎。
  │  ├ iTunes Library Genius.itdb ← 昔のiTunesの "Genius" 機能のデータっぽい
  │  ├ iTunes Library.itl ← これも最終変更日が2020年3月だった。Mojaveまではここでindexを管理していたのだろう。
  │  ├ iTunes Music Library.xml ← 同上
  │  ├ iTunes Music/  ← ここに50GB近いデータが入っていた。移行後、こいつだけゴミ箱に入れてから消した。
  │  ├ Mobile Applications/  ← iPhoneをiTunesで管理していた時代の遺物。古い .ipa ファイルたちがここに。12GBほどあるので、いずれ消す。
  │  └ Previous iTunes Libraries/  ← iTunesの古いindexデータとかが入っている模様。
  └ Music/  ←ここに、現行の「ミュージック」アプリの設定とかが保存されるらしい

バックアップ戦略

余談ですが、外付けドライブの内容は Time Machine のバックアップ対象から外すのが「通例」*2だと思います。つまり、これは「ミュージック」のデータは Time Machine の加護*3から外れてしまうということです。なので、自らの手でバックアップをするべきと言えましょう。

iCloud Drive あたりで Time Machine を運用するのが王道なんだろうと思いますが、容量の上限のことなどを考えると筆者にとっては not for me という感覚があることから、AWSのS3に定期的にコピーを取ろうと思っています(まだ設定していません😇)。

S3の設定は以下の予定です。

  • 公開は禁止*4
  • ストレージクラス : Glacier または 標準の低頻度アクセス
  • バージョニングはあり、古いバージョンは1年程度で破棄(バージョニングが効いてくるのはローカルデータベース系のファイルのみという想定)

このバックアップ処理は「ミュージック」アプリの起動中は不整合を起こす危険性も考えられることから、AppleScriptか何かを使って「ミュージック」アプリが起動中かどうか検査して起動中だったら中止したり、みたいなスクリプトになることでしょう。出来上がったらまた記事にしたいと思います。

環境情報

  • macOS Big Sur 11.5.2
  • Mac mini 2018 (intel)
  • Apple Music は利用していない
  • 外付けドライブ : WD "Blue" モデルの3TBのものを、1.5GBずつ2つのパーティションに割っている。片方は Time Machine 用として運用。

↑は4TBのもの。Amazonが販売している中には3TBのものは無くなっていた…。(マーケットとしては3TBは存在する)

参考文献

冒頭の課題を筆者が認識して「なんとかしなきゃなー」と悩んでいたものの「緊急事態じゃないし、後回しでいいや😜」と思っていたところで、↓の記事に出会いました。システムの挙動はこちらのものとは異なるようですが、モチベーションを上げてくれました。感謝🙏
blog.pastak.net

↓は、Appleによるサポート記事です。本当に必要な情報には辿り着きませんでした*5が、最初の失敗事案が失敗した理由は、ここの情報ではっきりと理解できました。
support.apple.com

↓は、筆者が正解にたどり着くための決め手になった情報です。ストレージメーカーの立場で言えば、こういう情報を提供することで需要の増大が見込める、といったところでしょうか。大いに感謝したいところですが、別のメーカーの機器を使っててごめんなさい😅
www.seagate.com

↓は、WDのHDDにつけられている色の意味の説明です。
akiba-pc.watch.impress.co.jp

↓は、S3のバージョニングの解説記事です。
dev.classmethod.jp

さいごに

無事に引越しできて良かったです🤗

*1:記事執筆時のバージョンが古いものであるせいか、細部は異なることに注意。

*2:もしかしたら「通例」ではなくて「デフォルト」がそうかもしれませんが、デフォなのか否かを確認するのが面倒くさくてしていません。

*3:もっとも、通常の Time Machine のバックアップデータは家の中にあり、泥棒や火災等の脅威に対しては脆弱ですので、これらの脅威のことを気にするのならば別のロケーションにもバックアップを取るべきです。

*4:公開すると権利上の問題を全力で踏み抜きますね。そういう凡ミスをする可能性は十分に低いでしょうけども、気にかけてはおきましょう。

*5:筆者が気付いていないだけで、別途、存在はするかもしれません。