この記事は、筆者の指示・監修のもと、Claude(Anthropic)が執筆しています。
前編のおさらい
前編では、Claude Codeの助けを借りてMMD動画管理システムを構築した。profile.yaml(趣味嗜好辞書)、catalog.yaml(動画データベース)、manager.py(管理スクリプト)の3ファイル構成で、2676本の動画をスキャンしてカタログ化するところまでたどり着いた。
だが、初回スキャンの統計は正直微妙だった:
| |
R-18が10%のわけがない。不明が半分近いのも辛い。後編はここから精度を上げていく話だ。
なぜ不明が多いのか
Claudeに不明ファイルのサンプルを50件出してもらった。原因はすぐに分かった。
ファイル名に情報がないケース:
| |
Fantiaなどからダウンロードした動画は、ハッシュ値+適当なラベルがファイル名になっていて、キャラ名も作品名も含まれていない。
フォルダ名には情報があるケース:
| |
フォルダ名を見れば「艦これ」「皐月」「文月」とわかるし、「全裸差分」というフォルダにあるなら当然R-18だ。だが初期のmanager.pyは ファイル名だけ を見て判定していたから、これらの情報を全く活用できていなかった。
改良1:フォルダパスからの判定を追加
Claudeに改良を依頼した。変更点は2つ。
ファイル名で判定できなかったら、フルパスからも検索する
| |
R-18判定をフォルダパスにも適用する
profile.yamlに nsfw_path_keywords というセクションを追加した:
| |
「全裸差分」フォルダの中にあるファイルは問答無用でR-18判定。「おまけ」「差分」も、この界隈ではほぼ紳士向けコンテンツの意味なのでR-18に含めた。
改良2:辞書の大幅強化
不明ファイルのサンプルを見ると、辞書に登録されていないキャラが多数いた。profile.yamlに追加したものの一部:
| |
NSFWキーワードも追加した:
| |
ここで便利だったのが、Claudeに追加してもらった rescan コマンドだ。これは既存の2676件のメタデータを、更新した辞書で再解析してくれる。ファイルを再スキャンする必要はない:
| |
1265件。 半分近くのエントリが改善された。
改良の成果
rescan後の統計を見た瞬間、思わず声が出た:
| |
比較するとこうなる:
| 改善前 | 改善後 | |
|---|---|---|
| R-18 | 286 (10%) | 1257 (46%) |
| キャラ不明 | 1281 | 1029 (-252) |
| 作品不明 | 1216 | 929 (-287) |
| ホロライブ | 103 | 197 (ほぼ倍) |
R-18が10%→46%。 フォルダパスからの判定が劇的に効いた。体感的にはもう少し多い気もするが、ファイル名にもフォルダパスにも手がかりがないものは全年齢に倒れるので、これが現実的な限界だろう。
キャラ不明もまだ1029本残っているが、これらの大半はハッシュ値だけのファイル名や曲名だけのファイル名で、辞書による自動判定は難しい。必要に応じてcatalog.yamlを手動で編集すればいい。
リンクビュー——「3秒でたどり着く」仕組み
さて、カタログが整ったところで本丸の機能を試す。リンクビュー だ。
| |
これで何が起きるかというと、元のファイルを一切動かさずに、別のフォルダにキャラ別・R-18別の「ビュー」が自動生成される:
| |
ポイントはこれが hardlink で作られていること。ファイルのコピーではなく、同じ実体への別の入口だ。ディスク容量はほぼ増えない。エクスプローラーでダブルクリックすればそのまま再生できる。
「あのキャラのR-18動画が見たい」 → MMD_ビュー\R-18\(キャラ名)\ を開くだけ。3秒。
元の作者別フォルダは一切触っていないから、従来の管理方法と完全に共存できる。
コマンドラインからの検索
リンクビューはエクスプローラー向けだが、より細かい検索はコマンドラインで:
| |
Claude Codeと組み合わせると、自然言語で「ミクの全年齢でおすすめ出して」のように使えるのが最高に便利だ。
ランチャーを作る
毎回PowerShellでコマンドを打つのは面倒なので、batファイルでGUIっぽいランチャーも作った:
| |
デスクトップにショートカットを置いて、ダブルクリックで起動できるようにした。「6」を選べばClaude Codeが立ち上がり、自然言語で管理できる。
右クリックメニューも追加
レジストリファイル(.reg)を使って、フォルダの右クリックメニューに「Claude Codeで開く」を追加した。どのフォルダからでも即座にClaude Codeを起動できるようになった。MMD管理に限らず、日常のあらゆる場面で重宝している。
AIの倫理はどこまで働くのか
作業中、ふと気になったことがある。Claudeは普段、R-18コンテンツの生成は断る。なのに今回、紳士向け動画の分類を淡々と手伝ってくれたのはなぜか。
聞いてみたところ、答えは明快だった:
- 断るケース: R-18コンテンツを「生成」「描写」「作成」すること
- 今回のケース: 既に手元にあるファイルを「整理・分類」する実務的なツール作成
本の中身がどうであれ、「この本は小説棚、この本はマンガ棚に置きましょう」と分類するのは問題ない——という整理だ。ただし「この動画の中身を詳しく説明して」と言えば断られるし、違法コンテンツの管理を頼めば当然拒否される。線引きは明確だった。
残された課題
完璧ではない。いくつか課題が残っている。
キャラ不明が1029本。 ファイル名にもフォルダパスにも手がかりがないものは自動判定できない。暇な時にcatalog.yamlを手動編集して埋めていくしかない。
お気に入り度がゼロ。 scanで追加されたエントリのfavoriteは全部0だ。2676本に★をつけていくのは気の遠くなる作業だが、好きな動画を見返すついでに少しずつ設定していけばいい。
新規動画の追加ワークフロー。 新しい動画をダウンロードしたら scan → links を実行する必要がある。これは習慣にするしかない。
まとめ:2676本の動画と暮らす
最終的にできあがった環境はこうだ:
| ファイル | 役割 |
|---|---|
profile.yaml | 作品・キャラ辞書(50以上のエイリアス) |
catalog.yaml | 2676件の動画データベース |
manager.py | 検索・スキャン・リンク生成・統計 |
mmd_launcher.bat | GUIランチャー |
MMD_ビュー/ | キャラ別・R-18別のリンクビュー |
日常のコマンド:
| |
プログラミングの知識はほぼゼロでも、Claudeと対話しながらここまでのシステムを構築できた。途中でYAMLのインデントエラーや変数名の不整合に悩まされたが、それも含めてvibe codingの醍醐味だろう。
コレクションは今日も増え続けている。だが、もう「あの動画どこだっけ」とは言わなくていい。