FANZAコンテンツ取り込み運用

FANZAの購入済みコンテンツをDLし、音声はNavidromeへ、漫画・CGはLANraragiへ取り込む運用。

正本

  • DL作業ディレクトリ: /mnt/ugreen/doujin/fanza/
  • 音声の正規保存先: /mnt/ugreen/data/music/Dojin/fanza/
  • LANraragi投入先: /mnt/ugreen/data/adult/manga/
  • 実装リポジトリ: ~/Projects/doujin-tools/
  • 詳細なコマンド: ~/Projects/doujin-tools/README.md

共通フロー

  1. fanza_browser.py で購入済みリストを保存する
  2. dry-runで対象を確認する
  3. /mnt/ugreen/doujin/fanza/ へDLする
  4. organize.py で作品IDとメタデータを整理する
  5. カテゴリごとの取り込みフローへ分岐する

音声 → Navidrome

  1. convert_to_opus.py --base-dir /mnt/ugreen/doujin/fanza でOpusへ変換する
  2. 必要なら convert_flac.py で残ったFLACを変換する
  3. 変換済み音源を /mnt/ugreen/data/music/Dojin/fanza/ へ移動する
  4. tag_opus.py でVorbis Commentタグを付与する
  5. カタログを更新し、Navidromeの表示を確認する

音声はOpus 128kbpsを正規形式とする。変換成功後に原本ZIPを削除する処理があるため、対象とログを確認してから実行する。

漫画・CG → LANraragi

  1. unpack_images.py --dry-run で対象を確認する
  2. unpack_images.py で各作品の _lanraragi/ にCBZ/CBR/PDFを生成する
  3. 原本アーカイブは削除せず、成果物を検品する
  4. ingest_lanraragi.py --dry-run で投入先とmanifestを確認する
  5. ingest_lanraragi.py でLANraragi content dirへハードリンクまたはコピーする
  6. LANraragi側のスキャン完了を待つ
  7. apply_lanraragi_metadata_by_search.py --dry-run でproduct IDとファイル名の対応を確認する
  8. metadataを適用する
  9. LANraragiのrescan後、検索APIと作品ページでタグ反映を確認する

検証

  • 原本と _lanraragi/ 成果物が残っている
  • 変換後の音声が正規保存先へ移動している
  • 音声に artist / album_artist / album / title / tracknumber がある
  • LANraragiのmanifestに投入先・title・tagsが出ている
  • from:fanzaproduct:<id>category:<category> などのタグが検索できる
  • NAS側LANraragiを正本として確認する

注意

  • LANraragiではCBZを正規形式に寄せ、CBRは必要に応じてCBZ化して退避する
  • 既存ライブラリのパスやAlbumArtistを不用意に変更しない
  • APIキーはノートやログに書かず、環境変数または指定ファイルから渡す
  • 実行前に必ず小さい件数のdry-runを通す

関連