Blu-ray/DVDリッピングからエンコードまでの2段階作業を自動化したいと思ったことはないだろうか。MakeMKVでディスクをリップし、HandBrakeで圧縮・変換する、というワークフローはホームメディアサーバーを運用しているエンジニアなら定番中の定番だ。しかしこの2ステップ、毎回手動でやるのは正直しんどい。それを解決するOSSが HandyMKV(github.com/dmars8047/handymkv)だ。
なぜこのツールが必要なのか
- MakeMKV はBlu-rayやDVDをロスレスのMKVファイルに変換する定番ツール。ただし出力サイズが巨大(1タイトル30〜50GB超も珍しくない)
- HandBrakeCLI はそのMKVをH.265/H.264等に再エンコードしてサイズを1/5〜1/10に圧縮できる
- 問題は「MakeMKVが終わったらHandBrakeを手動で起動して、ファイルを指定して…」という繰り返し作業が発生すること
HandyMKVはこの2つのCLIツールを一本のパイプラインに束ねて、バッチ処理・自動化を実現する。
仕組みと主な機能
HandyMKVはGo製のCLIツールで、おおむね以下のフローで動作する:
[ディスク/ISOファイル]
↓ MakeMKV(リップ・MKV出力)
[一時MKVファイル]
↓ HandBrakeCLI(エンコード・圧縮)
[最終出力ファイル(MP4/MKV)]
主な特徴:
- MakeMKVのバッチリップ:複数タイトルをまとめて処理
- HandBrakeCLIのプリセット指定:既存のHandBrakeプリセット(
.json)をそのまま利用可能 - 中間ファイルの自動クリーンアップ:リップ後の巨大MKVを自動削除してディスク節約
- 設定ファイルベース:繰り返し使いやすいYAML/JSON設定
実際の使い方イメージ
インストールはGoのツールチェーンがあれば:
go install github.com/dmars8047/handymkv@latest
実行例(基本):
handymkv --input /dev/sr0 --output ~/media/movies --preset "H.265 MKV 1080p30"
HandBrakeのプリセットファイルを直接渡すことで、解像度・コーデック・音声トラック選択まで細かくコントロールできる。Plex / Jellyfin / Emby などのホームメディアサーバーに取り込む前処理として非常に相性がいい。
まとめ・所感
Hacker Newsへの投稿はポイント数こそ控えめだが、ホームラボ勢・NAS運用者・自炊派エンジニアには刺さるツールだ。MakeMKVとHandBrakeは単体では超優秀、しかし連携が面倒というのはずっと解決されていなかった痒いところ。Go製なのでシングルバイナリで配布でき、DockerやNAS上でのcron実行にも向いている。ディスクコレクションのデジタルアーカイブを省力化したい人はぜひREADMEを覗いてみてほしい。