# rekordboxを開かずにプレイリストをCDJ用のUSBに書き出す方法

**rekordboxを起動しなくてもCDJ用のUSBは書き出せます。**プレーヤーがUSBから読むのは数種類のファイルです。デバイスライブラリ（`export.pdb`）、曲ごとの解析ファイル、音声、My Settingsの4つです。ふだんはrekordboxがEXPORTモードの書き出しでこれらを作ります。無料のコマンドラインツール**`baken expressport`**は、rekordboxが書き出す`collection.xml`から同じファイルを直接書き込みます。Bake'n Deck for Macの**USB Export**は同じコードを画面から使えるようにしたものです。仕込みはこれまでどおりrekordboxで行います。解析もビートグリッドもキューもプレイリストもrekordboxで作り、USBに書き込む最後の工程だけをbakenが受け持ちます。

## 書き出す前に

- **標準ではデバイスライブラリだけを書き出します**。OneLibraryが必要なプレーヤー（CDJ-3000X、XDJ-AZ、OPUS-QUAD、OMNIS-DUO）向けには、コマンドライン版4.5.0の`--onelibrary`、Macアプリ1.3.0の「OneLibraryも書き込む」でOneLibraryも書き出せますが、まだどの機種でも試していません。付けないとCDJ-3000Xでは「OneLibrary not found」と表示されます。`expressport`が書いたUSBはCDJ-3000とCDJ-2000NXS2で再生できています。
- **rekordboxのデータベースは読みも書きもしません。**読むのはコレクションXMLとrekordboxの解析ファイルで、書き込む先はUSBだけです。
- **USBは専用のものを使ってください。**rekordboxは開いたUSBのライブラリを書き換えます。rekordbox用とbaken用でUSBを分けてください。
- **本番の前に必ずプレーヤーで確かめてください。**どのUSBでも同じです。

## CDJがUSBから読むもの

| USB上のファイル | プレーヤーが読むもの |
| --- | --- |
| `PIONEER/rekordbox/export.pdb` | デバイスライブラリです。各曲のタイトル、アーティスト、アルバム、BPM、キー、カラー、レーティング、ファイルの場所と、プレイリストが入っています。ブラウズ画面と検索はここを読みます。 |
| `PIONEER/USBANLZ/…/ANLZ0000.DAT`、`.EXT`、`.2EX` | 1曲分の解析データです。ビートグリッド、波形、キューとループ、フレーズが入っています。プレーヤーはUSB上の曲のパスから計算したハッシュでこのフォルダを探します。 |
| `Contents/` | 音声ファイルです。 |
| `PIONEER/Artwork/` | アートワークの縮小画像です。bakenは`--artwork`を付けたときに書きます。 |
| `PIONEER/MYSETTING.DAT`、`MYSETTING2.DAT`、`DJMMYSETTING.DAT` | My Settingsです。波形の色など、CDJとミキサーがUSBから読み込む設定です。 |
| `PIONEER/rekordbox/exportLibrary.db`（`-wal`、`-shm`） | OneLibraryです。rekordbox 7が対応プレーヤー向けに書く2つ目のライブラリで、bakenは`--onelibrary`（Macアプリでは「OneLibraryも書き込む」）のときだけ書きます。 |
| `PIONEER/rekordbox/exportExt.pdb` | rekordboxのデバイスライブラリの拡張テーブルです。bakenは書きません。 |

どれも音声だけからは作れません。`export.pdb`はAlphaTheta独自形式のバイナリデータベースです。解析ファイルはrekordboxによる曲ごとの解析を書き出し時にUSB向けに書き直したものです。rekordboxはこの2つを自分のライブラリから作ります。そのため書き出しにはふつうrekordboxを起動してEXPORTモードに切り替え、コピーが終わるのを待つ必要があります。

## bakenはcollection.xmlからどう書き出すか

rekordboxは「ファイル」→「コレクションをxml形式でエクスポート」でコレクション全体をXMLに書き出せます。デバイスライブラリに必要な情報はほぼこのファイルにそろっています。bakenはこのXMLからUSBを組み立てます。

- **XMLから取るもの**：タイトル、アーティスト、BPM、キー、カラー、レーティング、プレイリスト、ビートグリッド、キュー。キーはXMLの表記のままプレーヤーに表示されます。`Am`は`Am`、`8A`は`8A`のままで、rekordboxが書き出したUSBと同じです。
- **rekordboxからコピーするもの**：波形とフレーズ。rekordboxがパソコンに保存している解析データからコピーします（Macでは`~/Library/Pioneer/rekordbox/share/PIONEER/USBANLZ`、ライブラリドライブでは`PIONEER/Master/share/PIONEER/USBANLZ`）。コピーの途中でパスを書き換え、キューをXMLから埋め、フレーズのデータにマスクをかけます。どれもrekordboxが書き出し時に行うのと同じ処理です。rekordboxで未解析の曲は一覧に出して書き出しから外します。
- **My Settings**はrekordboxの設定フォルダからコピーします。rekordboxはEXPORTモードで「環境設定」→「DJシステム」→「My Settings」を一度開くとこのファイルを書きます。コピーしなければプレーヤー側の設定がそのまま使われます。
- **音声**はUSBにないときとサイズが違うときだけコピーします。プレイリストを変えたあとの2回目はすぐ終わります。`export.pdb`は毎回作り直します。
- 書き出した結果は実際のrekordboxの書き出しとバイト単位で照合しています（設計記録：[#115](https://github.com/M-Igashi/baken/issues/115)）。

rekordboxが一度も解析していない曲もあります。MixxxやTraktorのライブラリを`collection.xml`に変換した場合などです。そうした曲は解析データを音声から生成できます。コマンドラインでは`--generate-analysis`、Macアプリでは「足りない解析データを生成」です。

|  | コピー（既定） | 生成 |
| --- | --- | --- |
| 元データ | rekordbox自身の解析ファイル | bakenが音声から計算 |
| ビートグリッドとキュー | XMLから | XMLから。XMLに`TEMPO`がない曲にはビートグリッドが付きません |
| 波形 | rekordbox自身のもの | スクロール波形は確認した曲でrekordboxとピクセル単位で一致します。カラー、3バンド、プレビューの波形は近似です |
| フレーズ | rekordbox自身のもの | なし |
| テスターによるCDJでの再生 | ✓ | ✓ |

rekordboxの解析がある曲は生成をオンにしてもコピーします。コピーなら正確だからです。

## USBはFAT32（MBR）でフォーマットする

USBは**マスターブートレコード（MBR）のFAT32**でフォーマットしてください。すべてのプレーヤーが読める組み合わせです。CDJ-2000NXS2以前の機種はexFATもGPTのディスクも読めず、USB自体が表示されません。プレーヤーの取扱説明書にはFAT16とHFS+も載っています。

| USB | CDJ-2000NXS2以前 | CDJ-3000 |
| --- | --- | --- |
| FAT32（MBR） | ✓ | ✓ |
| exFAT | ✗ | ✓ |
| GPTパーティション | ✗ | ✗（AlphaThetaが非対応と案内） |
| NTFS | ✗ | ✗ |

Macではディスクユーティリティで「表示」→「すべてのデバイスを表示」を選びます。ボリュームではなくUSBのデバイスそのものを選び、フォーマットを「MS-DOS (FAT)」、方式を「マスター・ブート・レコード」にして消去します。ターミナルなら`diskutil eraseDisk FAT32 MYUSB MBRFormat /dev/diskN`でも同じです。先に`diskutil list`でNの番号を確かめてください。番号を間違えると別のディスクが消えます。`expressport`とMacアプリの事前チェックは書き込む前にファイルシステムとパーティション方式を読み、使えないプレーヤーがあれば警告します（コマンドライン版はmacOSとLinux）。

## 対応プレーヤー

| プレーヤー | 読むライブラリ | bakenが書いたUSB |
| --- | --- | --- |
| CDJ-3000 | デバイスライブラリ | ✓ 再生を確認（ファームウェア3.22） |
| CDJ-2000NXS2 | デバイスライブラリ | ✓ 再生を確認（ファームウェア1.85、1.87） |
| XDJ-XZなど、デバイスライブラリを読むそれ以前の機種 | デバイスライブラリ | 形式は同じです。プレーヤーでの報告はまだありません |
| CDJ-3000X、XDJ-AZ、OPUS-QUAD、OMNIS-DUO | OneLibrary | `--onelibrary`（4.5.0）、Macアプリの「OneLibraryも書き込む」（1.3.0）で書き出せます。プレーヤーでの報告はまだありません（付けないとCDJ-3000Xでは「OneLibrary not found」） |

CDJ-3000とCDJ-2000NXS2では、プレイリスト、ビートグリッド、波形、キュー、キー、検索、My Settingsをテスターが確認しました。解析データはコピーしたものと生成したものの両方を試し、ライブラリは最大1,121曲です（[#116](https://github.com/M-Igashi/baken/issues/116)。ほかの機種の報告も歓迎します）。これらのUSBはコマンドライン版が書いたもので、Macアプリも同じ書き出しコードを使います。NXS2より前の機種はMP3でないと安定しません。`--cdjsafe`（Macアプリでは「CDJセーフ」）を付けると全曲を320 kbps CBRのMP3に変換しながら書き出し、元の曲の解析データを付けます。

## rekordbox 7の「ライブラリの不整合」の警告

USBを挿したときにrekordbox 7がライブラリの不整合を警告することがあります。英語表示では「We have found a library inconsistency on the device you are using」です。続いて*Playlists found only in Device Library*と*Playlists found only in OneLibrary*の2つの一覧が出て、食い違うプレイリストを書き出すよう提案されます。USBにある2つのライブラリの中身が合わなくなっているという意味です。

### 原因

rekordbox 7はUSBの`PIONEER/rekordbox`に2つのライブラリを並べて書きます。1つは**デバイスライブラリ**（`export.pdb`と`exportExt.pdb`）で、CDJ-3000、CDJ-2000NXS2、それ以前の機種が読みます。もう1つは**OneLibrary**（`exportLibrary.db`と、隣にある`exportLibrary.db-wal`、`exportLibrary.db-shm`）で、CDJ-3000X、XDJ-AZ、OPUS-QUAD、OMNIS-DUOが読みます。プレイリストはそれぞれが別々に持っています。片方だけを書き換えてもう片方を残すと2つの中身が食い違います。bakenでは4.3.1までの`expressport`がこれを起こしていました。rekordboxが書き出したUSBの`export.pdb`を置き換え、rekordboxのOneLibraryと`exportExt.pdb`を残していたためです（[#208](https://github.com/M-Igashi/baken/issues/208)）。

### 起きること

- rekordboxがそのUSBに警告を出します。提案を受け入れるとrekordboxは自分のプレイリストをUSBに書き戻します。
- OneLibrary対応のプレーヤーは`exportLibrary.db`を読むので最後に書いたライブラリではなく古いライブラリを表示します。その後に古いファイルを削除していれば存在しない音声を指す曲も出てきます。
- 新しい`export.pdb`の隣に残った古い`exportExt.pdb`をプレーヤーがどう扱うかはわかっていません。両方のライブラリがあるUSBでCDJ-3000がどちらを読むかもわかっていません。

### 直し方

| USBの種類 | 直し方 |
| --- | --- |
| rekordboxで書き出したUSBで、今後もrekordboxで使う | rekordboxに2つのライブラリを書き直させます。プレイリストをrekordboxから書き出し直してください。警告の提案を受け入れると食い違うプレイリストをrekordboxが書き出します。まっさらにするならUSBをFAT32（MBR）でフォーマットしてからrekordboxで書き出します。 |
| bakenで書いたUSB | baken 4.4.0以降かBake'n Deck for Mac 1.2.0でもう一度書き出します。`export.pdb`を書き込んだあとで古いOneLibraryのファイルを削除します。手で消すなら`PIONEER/rekordbox`にある`exportLibrary.db`、`exportLibrary.db-wal`、`exportLibrary.db-shm`、`exportExt.pdb`を削除します。このUSBでrekordboxの提案を受け入れるとrekordboxのプレイリストが書き込まれます。 |

`expressport`は4.4.0から、これらのファイルを書き込み前のプランに表示します。`--dry-run`でも表示されます。削除するのは`export.pdb`を書き込んだあとなので、キャンセルや失敗で止まったときは2つのライブラリがそのまま残ります。Macアプリは事前チェックでファイル名を示し、ライブラリを置き換える前に確認します。削除したあとはCDJ-3000Xなら「OneLibrary not found」と表示されます。コマンドライン版で`--onelibrary`を付けたときは、削除したファイルの代わりに新しいOneLibraryを書き込みます。rekordboxがまたそのUSBを開くと警告が戻ることがあります。rekordboxは開いたライブラリを書き換えるからです（下のよくある質問を参照）。

## rekordboxを開かずにUSBへ書き出す手順

1. **rekordboxで仕込んでXMLを書き出す**
いつも通りrekordboxで曲を解析し、ビートグリッド、キュー、プレイリストを整えます。そのあと「ファイル」→「コレクションをxml形式でエクスポート」で書き出します。保存先は毎回同じパスにしてください（例：~/Music/rekordbox/collection.xml）。
2. **専用のUSBをフォーマットする**
マスターブートレコード（MBR）のFAT32にします。これならどのプレーヤーでも読めます。rekordboxで書き出すUSBとは分けてください。
3. **書き出す**
コマンドラインでは baken expressport ~/Music/rekordbox/collection.xml --device /Volumes/MYUSB --playlist "Sets/Friday" を実行します。Macアプリでは「USBエクスポート」画面でXMLとUSBを選び、プレイリストにチェックを入れて「検証」を押します。事前チェックを確かめてから「書き出し」を押します。
4. **取り出してプレーヤーで確かめる**
本番の前にUSBをプレーヤーに挿し、プレイリスト、波形、ビートグリッド、キュー、検索を確認します。rekordboxで開いて確かめるのはやめてください。rekordboxは開いたライブラリを書き換えます。
5. **変更のあとはもう一度実行する**
プレイリストを変えたらXMLを書き出し直して同じ書き出しを実行します。書き込むのは新しい音声と変わった解析ファイルだけです。export.pdbは毎回作り直します。

```
# Terminal: expressport
$ baken expressport ~/Music/rekordbox/collection.xml --device /Volumes/MYUSB --playlist "Sets/Friday"
▸ Device: /Volumes/MYUSB (name MYUSB)
▸ Playlists: Sets/Friday
▸ Tracks: 62 (3312 analysis files indexed under ~/Library/Pioneer/rekordbox/share/PIONEER/USBANLZ)
▸ My Settings from ~/Library/Application Support/Pioneer/rekordbox6
✓ Done! 62 tracks in the device library.
• 62 audio files copied
• 186 analysis files written
• /Volumes/MYUSB/PIONEER/rekordbox/export.pdb
• 4 My Settings files in /Volumes/MYUSB/PIONEER/
$ baken expressport ~/Music/rekordbox/collection.xml --device /Volumes/OLDSTICK --playlist "Sets/Friday" --dry-run
▸ Device: /Volumes/OLDSTICK (name OLDSTICK)
⚠ This stick also carries rekordbox's OneLibrary (exportLibrary.db, exportLibrary.db-wal, exportLibrary.db-shm, exportExt.pdb). expressport writes the Device Library only, so writing export.pdb removes them. OneLibrary players (CDJ-3000X, XDJ-AZ, OPUS-QUAD, OMNIS-DUO) will then show "OneLibrary not found" instead of rekordbox's old library.
▸ Playlists: Sets/Friday
ℹ Dry run; nothing written.
```

### よく使うオプション

| オプション | 内容 |
| --- | --- |
| `--playlist PATH` | 書き出すプレイリスト。複数指定できます。省略するとXMLの全プレイリストです |
| `--dry-run` | 内容を確認して報告するだけで、何も書き込みません |
| `--generate-analysis` | rekordboxの解析がない曲の解析データを音声から生成します |
| `--cdjsafe` | 全曲を320 kbps CBRのMP3にします（ffmpegが必要） |
| `--no-settings` | My Settingsを書き込みません。プレーヤー側の設定が使われます |
| `--prune` | この書き出しで使わなくなった音声と解析ファイルをUSBから削除します |

`baken expressport --help`ですべてのオプションを確認できます。インストール方法は[トップページ](https://baken.ravers.workers.dev/ja#install)にあります。

## Bake'n Deck for MacのUSB Export

[Bake'n Deck for Mac](https://apps.apple.com/app/baken-deck/id6808813823)の「USBエクスポート」画面（1.2.0以降）は、同じ書き出しコードを画面で動かします。ターミナルを開きたくないDJ向けです。

- コレクションXMLとUSBそのもの（例：`/Volumes/REKORDBOX`）を選び、プレイリストにチェックを入れて「検証」を押します。初回はrekordboxの解析フォルダへのアクセスを求めます。My Settingsをコピーするときは設定フォルダへのアクセスも求めます。どちらも次回から覚えています。
- 事前チェックには、USBのフォーマット（exFAT、NTFS、GPTのディスクには警告）、スキップする曲とその理由、書き込む容量、所要時間の目安が出ます。rekordboxが書き出したUSBなら、削除するOneLibraryのファイルも示します。
- オプションは「CDJセーフ」（書き出し時に320 kbps CBRのMP3へ変換）、「足りない解析データを生成」、「My Settingsをコピー」、「古いファイルを削除」です。後ろの3つはオンにするまで働きません。
- アプリが最後に書いたのではないライブラリやrekordboxのOneLibraryのファイルがUSBにあると、置き換える前に確認のダイアログが出ます。OneLibraryのファイルを削除することもそこに書かれています。
- レポートには、コピー・変換・書き込み済みの音声、書き込んだ解析ファイル、削除したrekordboxのライブラリのファイルの数が出ます。続けてFinderでの表示と取り出しができます。2回目からは変わった分だけを書き込みます。

## 所要時間

書き出しにかかる時間は、USBの書き込み速度に1曲あたり約0.4秒を足した程度です。この0.4秒は曲ごとにフォルダ1つと解析ファイル3つをFAT32のUSBに作る時間です（macOS 26で計測。フォルダの作成150ミリ秒、ファイルの作成27ミリ秒、書き込みとクローズ25ミリ秒）。

- 25 MB/sで書き込めるUSB 3のメモリなら1 GBあたり約40秒です。
- 温まると遅くなるUSBも多くあります。62曲3.3 GBのプレイリストは冷えた状態で339秒、その後は約450秒かかりました。同じファイルを`cp -R`でコピーすると410〜533秒でした。
- `--cdjsafe`を付けるとエンコードの分が1曲あたり数秒増えます。
- 2回目以降は新しい音声と変わった音声だけをコピーするのでずっと早く終わります。
- Linuxではマウントオプションを確認してください。udisks2はFATのUSBを`flush`付きでマウントします。閉じたファイルを毎回すぐUSBに送るので安いUSBでは遅くなります（[#173](https://github.com/M-Igashi/baken/issues/173)）。

Macアプリの事前チェックは少し多めに、1曲あたり約0.5秒で見積もります。

## よくある質問

### rekordboxのライブラリに影響はありますか

ありません。bakenはrekordbox自身のデータベースを読みも書きもしません。読むのはrekordboxから書き出したコレクションXMLです。rekordboxの解析ファイルとMy Settingsをコピーし、書き込む先はUSBだけです。仕込みもライブラリの管理もこれまでどおりrekordboxで行います。

### rekordboxの代わりになりますか

なりません。解析、ビートグリッド、キュー、プレイリストはrekordboxで作ります。USBに載せる波形もrekordbox自身の解析ファイルをコピーしたものです。bakenが受け持つのは、rekordboxが書き出すコレクションXMLからUSBを書き込む最後の工程だけです。OneLibraryのプレーヤー向けの本番用USBのように、rekordboxで書き出すほうが確実な場面では、このページでそう案内しています。

### CDJ-3000X、XDJ-AZ、OPUS-QUAD、OMNIS-DUOで使えますか

まだ確かめられていません。これらの機種はデバイスライブラリ（export.pdb）ではなくOneLibrary（exportLibrary.db）を読みます。コマンドライン版はbaken 4.5.0から、--onelibraryを付けるとOneLibraryも書き出します。ただし、まだどの機種でも試していません。表示されたものをGitHubのissue #139で教えてください。Macアプリでは1.3.0から「OneLibraryも書き込む」で同じことができます。どちらも付けないときはデバイスライブラリだけを書くので、CDJ-3000Xでは「OneLibrary not found」と表示されます。報告が集まるまでは、本番用のUSBはrekordboxで書き出してください。

### 同じUSBをrekordboxでも使えますか

使えません。bakenには専用のUSBを用意してください。rekordboxは開いたUSBのライブラリを書き換えます。起動中にマウントしただけのUSBにも手を加えます。rbsyncの計測では、rekordboxが開いたUSBでプレイリストの登録5,825件のうち768件が消え、exportLibrary.dbが追加されました。bakenのUSBはrekordboxで開かず、プレーヤーで確かめてください。rekordboxが触ってしまったときはもう一度書き出せば戻ります。export.pdbを書き直し、exportLibrary.dbを削除します。

### rekordbox 7がUSBのライブラリの不整合を警告するのはなぜですか

USBにあるrekordbox 7の2つのライブラリ、デバイスライブラリとOneLibraryの中身が食い違っているからです。たいていは片方だけが書き換えられています。rekordbox用のUSBなら、rekordboxから書き出し直すか、フォーマットしてから書き出してください。bakenのUSBなら、baken 4.4.0以降かBake'n Deck for Mac 1.2.0でもう一度書き出すと古いOneLibraryのファイルが削除されます。exportLibrary.db、その-walと-shm、exportExt.pdbを手で削除しても直ります。

### ホットキュー、メモリーキュー、ループは書き出されますか

XMLから書き出します。ホットキューはAからHまでで、4.5.0からはrekordboxで付けた色も書き込みます。アクティブループにはXMLの項目がないので、コメントが[active]で始まるメモリーループをその曲のアクティブループにします。プレーヤーに表示するコメントからは印を取り除きます。rekordboxのXMLはどのループがアクティブかを書かないので、rekordboxでアクティブにしたループにもコメントの印が必要です。アクティブループはbaken 4.4.0で入ったばかりで、まだプレーヤーで試していません。

### アートワークは書き出されますか

コマンドライン版はbaken 4.5.0から対応しています。--artworkを付けると、音声ファイルに埋め込まれた画像をrekordboxと同じサイズでUSBに書き込みます。対象はMP3、AIFF、FLAC、M4Aで、WAVは対象外です。Macアプリでは1.3.0から「アートワークを追加」で同じことができます。

### rekordboxがインストールされている必要はありますか

ふつうは必要です。波形とMy Settingsをrekordboxのファイルからコピーするので、同じパソコンか接続したライブラリドライブにrekordboxのデータが要ります。rekordboxなしで使う場合もあります。たとえばMixxxやTraktorのライブラリをcollection.xmlに変換したときです。その場合、波形は--generate-analysisで生成します。My Settingsは、rekordboxが一度書き出したUSBのファイルを--settings-dirで指定するか、--no-settingsで省きます。Macアプリでは「足りない解析データを生成」をオンにし、「My Settingsをコピー」はオフのままにします。

### 無料で使えますか

コマンドライン版のbakenはexpressportも含めてMITライセンスで無料です（macOS / Windows / Linux）。USB Exportを含むBake'n Deck for MacはMac App Storeでの買い切りで、サブスクリプションはありません。

## USB Exportを使う

Bake'n Deck for Mac 1.3.1はMac App Storeで配信中です。USB Exportに事前チェックとレポートが付き、Headroom、Sort、CDJ Safeも同じアプリで使えます。コマンドライン版のbakenはexpressportも含めてMITライセンスで無料です。macOSでは`brew install M-Igashi/tap/baken`でインストールできます。

[Mac App Storeでダウンロード](https://apps.apple.com/app/baken-deck/id6808813823)

[ツール全体を見る →](https://baken.ravers.workers.dev/ja)

## 関連ガイド

- [rekordboxのAuto GainがCDJに届かない理由](https://baken.ravers.workers.dev/ja/auto-gain): 数値がどこで止まるのか、ゲインをファイルに焼き込むと何が変わるのか。
- [DJのラウドネスノーマライズ：LUFSの目標値か、True Peakの天井か](https://baken.ravers.workers.dev/ja/loudness-normalization): ファイルの中で音量をそろえる2つの方法。それぞれが変えるもの、DJに残すもの、rekordboxのAuto Gainの位置づけ。
- [rekordboxのプレイリストをKey + BPM順に並べる方法](https://baken.ravers.workers.dev/ja/sort): Key順（1A→12B）、同じKeyの中はBPM順。並びをプレイリスト自体に書き込むので、CDJもその順で再生します。
- [HeadroomはラウドネスとTrue Peakをどう測っているか（Zenn）](https://zenn.dev/jphfa/articles/baken-in-process-bs1770-measurement): ffmpeg loudnormをやめ、プロセス内でBS.1770-4を計算。1ファイルあたり15倍速く、1,036曲を20秒で解析。一致性の検証値つき。

---

Source: https://baken.ravers.workers.dev/ja/usb-export
