CDJ-350と戦おうリターンズ
今北産業
- 前のツールからだいぶ便利になりました。
- M3Uファイルを元に変換していたのを、Rekordboxのデータベースを直接読むようになりました。
- その他便利機能が増えました。Rekordboxで設定したBPMが維持される、タイトルにRekordboxで設定したBPMを付与できる、BPM順で並べ替えられる、複数プレイリストやフォルダ下まるごと処理できる、あたり。
つくったもの
RekordboxのDBを直接読み込み、指定したフォルダについて、曲のタグを日本語化+αしたファイルを複製し、Rekordboxで読み込めるXMLファイルを生成するものです。
大変優れたライブラリを経由してDBを直接読むので、WindowsでもOSXでも動きます。
WSL上では動かないかも(DBのパス認識に失敗すると思います)
使い方としては
- このツールを実行する
- RekordboxでXMLファイルを読み込む
- 必要なものをインポートしてUSBメモリに書き込む
になります。
ツールを実行する
セットアップは省略しますが、こんな感じでRekordbox上のフォルダ一覧が取得できます。
.\.venv\Scripts\python -m rkbdb2xml.cli list-playlists --format=json
こんな感じで日本語化したいフォルダ名かIDを指定すると、そのフォルダの曲のコピーとXMLファイルが出力されます
.\.venv\Scripts\python -m rkbdb2xml.cli export --output=out.xml --verbose --force --roman --bpm --orderby=bpm --playlists=folder1,j-pop-2025
オプションは以下はあります。他は忘れた…
- --output=xxx.xml: 出力するXMLファイル名兼出力先フォルダ名を指定する(後述)
- --force: ファイルがあっても上書きする(なければそのまま)
- --bpm: タイトルの頭にBPMを入れる。これはRekordboxで設定したBPMが入る。
- -- orderby=bpm: BPM順とかタイトル順でソートできる。BPM順が楽だと思う。たぶん。ソートしなければ元のプレイリストの順番が維持されるはず。
RekordboxでXMLファイルを読み込む
環境設定→詳細→データベース→rekordbox.xml(レコボver.6.8.0ではここ)でXMLファイルを指定できる。

上記を設定し、環境設定→表示→レイアウト→rekordbox.xmlのチェックを入れると

ブラウザのツリーのほうにrekordbox.xmlが出てきて、エクスポートしたフォルダが見えるようになる。

USBメモリに書き込む
あとはフォルダを右クリックしていったんインポートすると普通のレコボのプレイリスト・フォルダになるので、普通にUSBメモリにエクスポートするとよいです。

インポートすると曲解析が始まり、波形の解析はされますが、BPMは保持されます。
波形いらないなら設定で自動解析をオフっておくとよいです。CDJ350では波形表示できないし、解析めちゃくちゃ遅いので…。
追記: 解析済みファイルじゃないとUSBメモリにエクスポートできないみたいなので、解析はしましょう。
その他注意点など
- このツールがRekordboxのDBに対して書込・変更を行うことはないので、それなりに安心して使って大丈夫です。
- 元ファイルとローマ字化したファイルとで、曲が二重管理になるのはRekordboxの仕様上解決できません。ローマ字化した情報だけをRekoredboxに認識させてファイルはコピーしない方法をだいぶ模索しましたが、無理だな、無理。ローマ字化したものは普段の選曲ではゴミなので、毎回消したほうが安心かも。いやでも、USBメモリと同期するとき古いファイルが残っていたらそのファイルぶん同期の時間が減るので、トレードオフではある。
-
上にも書いたけど、このツールを頻繁に使うなら自動解析は止めておいたほうがよいです。解析はしましょう。 - コピー先の曲ファイルは元ファイルのパスが変わらない限り同一ファイル名になるので、無限増殖はしないはずです。元ファイルのパスが変わったら重複します。iTunesだと再整理とかできちゃうので思わぬ重複はありえるかと。
- コピー先ディレクトリはツールを実行した直下に作成されると思います。たしか。
- インポートした曲はBPMは維持されますが、グリッド位置はズレます。そもそもCDJ-350がグリッドを無視するので、改善することはないと思います。
技術的Tipsなど
pyrekordbox というライブラリに大変お世話になっています。RekordboxのDBについてはこのライブラリのドキュメントを読んだほうがはやいです。
このツールと同じようなことをしたいならうちのコード読んでください。たいしたことはしていません。
日本語英語をどうにかしようと思って辞書で変換する処理を入れてますが、対応してる単語数が足りていないので、謎のローマ字になって困るかも。すみません。
コピー先のファイルが無限増殖しない方法として、元ファイルのフルパスをハッシュ化したものをファイル名として採用するようになっています。なので元ファイルのパスとかファイル形式が変わったら重複すると思います。
RekordboxのXML、DB上のパス構造と、物理的なファイルパス構造は全然関係ありません(同じ曲がRekordboxの複数のプレイリストに登録可能なので当然か)
RekordboxはUSBメモリに同期をかけるとき、いずれのプレイリストにも属さなくなった曲でも、そのままUSBメモリ上に残してしまうので、気付くと容量不足になります。なんとかしてほしい。
あとがき
ツール自体はだいぶ前からあったけど記事化してなかったのでいったん書いてみました
最近は無限にDJ下手になってるので面白いです。
Discussion