CTDB (CUETools Database) と対話し、CUEシートと音声ファイルを用いてメタデータの取得、パリティ計算、検証、修復、アップロードを行う Linux 用コマンドラインツール
- CUE + WAV/FLAC からの CTDB パリティ計算 (マルチファイルCUE対応)
- CTDBパリティデータを使用したエラー修復
- CTDB へのメタデータおよびパリティの送信
- Linux (.NET 8.0) 環境での動作サポート
- CUEシートの文字コード自動検出
本ツールは cuetools.net のライブラリに依存しています。
./configure
make
sudo make installオプション:
./configure --prefix=/usr- インストール先を変更(デフォルト:/usr/local)make DESTDIR=/path/to/dest install- パッケージング用にDESTDIRを指定
依存関係の取得とパッチ適用:
./setup.shパッチが必要な理由について
- Freedb.csproj: オリジナルのプロジェクトファイルは古い形式であり、Linux上の
dotnet buildで正しく扱えないため、SDKスタイル形式に変換しています。- TagLib: オリジナルの
CUESheet.csが依存している一部のプロパティ(AudioSampleCount等)が現在の TagLib Sharp に不足しているため、これを補う修正を適用しています。- UTF.Unknown: CUEシートの文字コードを自動検出します。
ビルド:
# テストビルド
dotnet build CTDB.CLI/CTDB.CLI.csproj
# 軽量版 (Framework-dependent)
dotnet publish CTDB.CLI/CTDB.CLI.csproj -c Release -o publish/dependent
# 単体動作版 (Self-contained / Single File)
# 相手の環境に .NET がなくても動作しますが、サイズは大きくなります。
dotnet publish CTDB.CLI/CTDB.CLI.csproj -c Release -r linux-x64 --self-contained -p:PublishSingleFile=true -o publish/standalonedotnet run を使用するか、ビルド済みバイナリを使用します。
ctdb-cli [options] <command> <cue_file> [command_options]dotnet run --project CTDB.CLI/CTDB.CLI.csproj -- [options] <command> <cue_file> [command_options]| オプション | 説明 |
|---|---|
--xml |
実行結果を XML 形式で 標準出力 (stdout) に出力します。ログやエラーは 標準エラー出力 (stderr) に出力されます。(XML出力形式) |
CUEシートに基づいてCTDBからメタデータを検索し、Raw XMLを表示します。
ctdb-cli lookup test.cueローカルの音声ファイルを読み込み、AccurateRip CRC および CTDB CRC を計算します。
ctdb-cli calc test.cueCTDB上のデータとローカルファイルを照合し、リッピングの正確性を検証します。
ctdb-cli verify test.cueCTDBのパリティデータを使用して、エラーのあるリップファイルを修復します。
修復されたファイルは CUEファイル名_repaired.wav として保存されます。
ctdb-cli repair test.cue注意: 修復にはCTDB上に十分なパリティデータが必要です。 修復不可能な場合はエラーメッセージが表示されます。
注意: 入力が単一ファイルCUEかマルチファイルCUEかにかかわらず、出力は単一のWAVファイルになります。
計算したパリティとメタデータをCTDBに送信します。
正しいデータであることの確度が高いときに限り実行してください。
ctdb-cli submit test.cue --drive "Drive Name" --quality 100| 引数 | 必須 | 説明 |
|---|---|---|
--drive |
○ | ドライブ名 (例: "PLEXTOR PX-716A") |
--quality |
○ | 品質 (1-100) |
ドライブ名の確認方法
cd-infoコマンド (libcdio) で取得できます。$ cd-info -A --no-cddb ... Vendor : Optiarc Model : DVD RW AD-7290H ...この場合
--drive "Optiarc - DVD RW AD-7290H"と指定できます。ソースによれば、 ドライブ名が受領されるためには、文字列の先頭が登録されたベンダー名(おそらく PIONEER, ASUS, HL-DT-ST など)で始まり、 その後に任意の文字が続き、かつどこかにハイフン (
-) が含まれている必要があります。
デフォルトでは送信内容を表示するだけの dry-run モードで動作します。
実際に送信を行うには、環境変数 CTDB_CLI_CALLER に呼び出し元のアプリケーション名を設定してください。
env CTDB_CLI_CALLER="your-app-name" ctdb-cli submit test.cue --drive "drive name" --quality 100