rekordboxのライブラリの管理について考える

正月休みに、rekordboxのライブラリの管理について考えたので備忘録としてメモしておく。

環境

  • 普段はWindowsのデスクトップPCを使っている
  • 音楽を聴くのはSpotifyがメイン
  • PC DJとUSBへのエクスポートだけMakBook Pro
  • 音源はバックアップを兼ねてiCloudに置いている(200GBで400年/月)
  • Win/Mac間のデータのやり取りもiCloudを使っている

要件

  • 音源(mp3、wavなど)のバックアップをクラウドに置く
  • PC変更時にrekordboxライブラリの移行を簡単にする
  • rekordboxライブラリに入っている音源を気軽にPCで聴けるようにする

背景

  • MBPがM1リリース前の無駄にハイスぺのやつで、DJに使ってるだけでもったいないので売ってしまいたい
  • Spotifyとrekordboxの間の乖離が大きくなっていて、買ったけど聴けてない曲みたいなのがあってかなしい
  • 自分はローカル端末のバックアップがとても苦手なのでクラウドじゃないと嫌

解決策

rekordboxに月2500円課金すれば以下で解決できる。

  • rekordboxのCreativeプラン(1600円/月)に入ってCloudLibrarySyncを使えるようにする
  • rekordboxのCloud Option (+ 900円/月)Dropboxのストレージに課金する
  • PCにDropboxのアプリを入れてiTunesのメディアフォルダごとDropboxに置く
  • CloudLibrarySyncの同期方法を「全ての音源を同期する」にする

Google DriveではなくDropboxを使うのはなぜ?

CloudLibrarySyncはGoogle DriveDropboxに対応しているけど、 Google Driveは同期方式が「選択した音源を同期する」しか使えないため。(あと、rekordbox iOSDropboxにのみ対応してる)

CloudLibrarySyncの同期方式については↓のFAQが詳しい。

https://rekordbox.com/ja/support/faq/library-sync-6/#faq-q600166

「全て同期」と「選択同期」の2つがあって、前者はDropboxアプリと連携して文字通り全てを同期する(ローカルはクラウドのコピーになる)。 後者は、選択したファイルだけをダウンロードしたりアンロードしたりできるやつで、こっちはDropbox/GoogleDriveのAPIを使うのでアプリが不要。 アプリが不要ということはつまり、アプリと連携できないということで、 rekordboxはDropbox/Google Driveアプリの落としてきたローカルファイルとは別に自前のローカルファイル置き場に音源を置く形になるので、ストレージを2倍食うことになる。

また、iTunesとrekordboxを連携させたい場合、同じ音源を使用する必要があるので、iTunesもrekordboxのローカルフォルダ置き場に引っ張られる形になる。 例えば、端末Xに曲Aと曲B、端末Yに曲Cがあるとして、それぞれからrekordboxを通してアップロードするとクラウド上のフォルダ構造は以下のようになる。

root
 |- 端末X
 | |- Aのアーティスト
 | | |- Aのアルバム
 | |  |- A.mp3
 | |- Bのアーティスト
 |  |- Bのアルバム
 |   |- B.mp3
 |- 端末Y
   |- Cのアーティスト
   | |- Cのアルバム
   |  |- C.mp3  

つまり、元が同じ音源でも、アップロードした端末が違えば違う曲扱いになる、ということ。

端末Xでrekordboxを使ってCをダウンロードすると ミュージック/PioneerDJ/Moved from Cloud/端末Y/Cのアーティスト/Cのアルバム/C.mp3 にファイルが置かれる。 (ミュージック/PioneerDJ/Moved from Cloudは設定から変更できる) rekordbox上でCをアンロードすると、↑のパスにあるC.mp3を削除する、といった形で選択同期が実装されてる。

リモートのフォルダ構造にローカル端末の情報が入ってるのが、自分には合わなかった。 (一応逃げ道として、Dropboxアプリの同期フォルダに入っている音源をrekordboxに追加するとアップロード済み扱いになるので、フォルダ構造を維持できる。Google Driveだとこのやり方もできなかった。) 端末間の音源の衝突を避けるためにeasyにしたという気持ちはわからんではないが・・・

iTunesにフォルダ管理をさせる

iTunes上で音源のタグを編集すると、iTunesが勝手にフォルダ構造を整理してくれる仕組みがあって、これが良さそう。 rekordboxはiTunesの音源やプレイリストを呼んでくれるし、rekordboxのプレイリストをiTunesに入れる場合は、m3u8ファイルに書き出してiTunesに読み込ませればOK。 AIMPとかも試してみたけど、使いにくかったのでボツにした。

代替案

月2500円か~という気持ちもあり、常時複数の端末でrekordbox使わないしややオーバースペックだな~と感じたので別の案を考えた。

外付けデバイスを使う

rekordboxやiTunesのメディアフォルダを丸ごと外付けのSSDやHDDに置くというもの。結構やってる人がいそう。 バックアップ作業がちゃんとできれば、初期費用を払えば後はお金もかからずにやれるはずでかなり良さそう。 最初に書いた通り自分はクラウドに置きたいという気持ちがあるので、なし。

Spotifyを使う

普段は家での作業中もSpotifyで音楽を聴いているので、Spotifyとrekordbox間でプレイリストを同期できれば良さそう。 Spotifyはローカルファイルの再生もできるので、プレイリストを追加するAPIを叩けば行けるんではと思ったけど、

It is not currently possible to add local files to playlists using the Web API, but they can be Reordered or Removed. Playlists | Spotify for Developers

とのことで、ダメだった。残念。

rekordbox.xmlをデバイスに合わせて書き換える

rekordboxにはコレクションをxmlに書き出す機能があって、設定からxmlファイルを指定するとそれをライブラリに読み込んでくれる。

MBPのrekordboxでxmlを書き出して、それをWinのrekordboxに読み込めるようにするには以下をすれば良さそうだった。

  • MacとWinでiCloudの同期フォルダのパスが違うので変換する
  • Macxmlは音源のパスの文字列がUTF-8-MACになっているのでUTF-8に変換する

ちょっとコードを書いたらできそうなので良さそうと思ったけど、xmlファイルはマイタグやインテリジェントプレイリストの条件式を含まないので無しということに。

rekordboxの内部dbファイルを読み書きする

GitHub - dvcrn/go-rekordbox: Rekordbox database wrapper in Go

などを見た感じ、rekordbox6のdbのread/writeはやろうと思えばできる、という状況に見える。 ちょっとした実装をすれば色々できそうだけど、まあハッキーだしrekordboxのアプデで動かなくなる可能性が十分あるのでなし。

最終案

色々考えて、う~ん月2500円か~という気持ちになったので以下でいくことにした

  • Dropboxに課金する
  • Dropboxアプリの管理フォルダにiTunesのメディアフォルダを全部置く
  • iTunesを使ってタグを編集してフォルダ管理を行う
  • iTunesを通してrekordboxに音源を読み込ませる
  • 必要に応じてrekordboxのプレイリストをiTunesに入れる(m3u8ファイルを使う)
  • PCを移行したくなったらCloudLibrarySyncに課金して全て同期方式にする
  • rekordboxのバックアップは必要ならxmlDropboxに置く(マイタグとインテリジェントプレイリストは諦める)