FLAC 音源ライブラリを Opus にミラーリングする CLI ツール Flacopyus を公開しました
ロスレスの FLAC 音楽ライブラリをポータブルな Opus 版に変換する CLI ツール Flacopyus を PyPI に公開しました。 rsync ライクな差分同期で、大量のファイルも効率的に変換できます。
モチベーション
ロスレス音楽ライブラリは、元の音質を保持できる一方で、ファイルサイズが非常に大きくなりがちです。スマートフォンに持ち出すには容量が厳しいので、自宅保存にはロスレス、外出用にはコンパクトな複製を使うという運用をしたくなります。
Flacopyus は、このようなユースケースに対して、FLAC ライブラリをまるごと Opus にバッチ変換してミラーリングするツールです。
変換先に Opus を選定した理由は、FLAC と Opus はどちらも Vorbis Comment を使用しているため、アルバムアートを含むほぼすべてのメタデータを透過的に保持できるという利点のためです。また、Opus コーデックの低ビットレートにおける品質的優位性は言わずもがなです。
インストール
Python 3.14 以降が必要です。 pip でインストールできます。
pip install flacopyus
エンコードには opusenc バイナリを使用します。
Windows 向けにはパッケージに同梱されていますが、macOS や Linux では別途インストールが必要です。
# macOS (Homebrew)
brew install opus-tools
# Debian/Ubuntu
apt install opus-tools
使い方
メインの操作は sync コマンドです。ソースディレクトリの FLAC ファイルをエンコードして、宛先ディレクトリに Opus ファイルとしてミラーリングします。
flacopyus sync FLAC/ OPUS/ --bitrate 128
ライブラリに MP3 や M4A などのすでに不可逆圧縮されたファイルが混在している場合は、--copy オプションでそれらもコピーできます。
flacopyus sync FLAC/ OPUS/ --bitrate 128 --copy mp3 m4a
差分同期
Flacopyus は、ソースファイルの更新日時を変換後の Opus ファイルにコピーします。これにより、2 回目以降の実行では変更のあったファイルだけを再エンコードする差分同期が実現されます。冪等な操作なので、繰り返し実行しても安全です。
ソースから削除されたファイルを宛先側でも削除するには、--delete や --delete-excluded オプションを使います。
flacopyus sync FLAC/ OPUS/ --bitrate 128 --delete-excluded --copy mp3 m4a
並列エンコード
大きなライブラリの場合は -P オプションで並列エンコードを有効にすると、(十分な CPU コアがあれば)処理を大幅に高速化できます。
flacopyus sync FLAC/ OPUS/ -P --bitrate 128 --delete-excluded --copy mp3 m4a
スレッド数を指定しない場合は、CPU コア数 − 1 が自動的に使われます。
所感
もともと自分自身の音楽ライブラリ管理のために作ったツールですが、同じような運用をしている人の助けになればと思い公開しました。 FLAC → Opus の変換は、メタデータの互換性が高くて相性が良いので、ぜひお試しください。





