>_ DevTrendsja

言語

ホーム

言語

セクション

フロントエンド バックエンド モバイル DevOps AI / ML ゲーム開発 ブロックチェーン 組み込み セキュリティ
Go

JavBossでローカルの動画コレクションを整理する

多くの人々は、家庭サーバーや外付けドライブに、数ギガバイトもの動画、映画、ニッチなコンテンツを眠らせています。IPX-633.mp4SSIS-001.mkvのようなファイル名は、特定の動画クリップを素早く見つけたかったり、女優のプロフィールを調べたい時にあまり役に立ちません。PlexやJellyfinのようなフル機能のメディアサーバーは、ニッチなアジアの作品にしばしば苦戦します。IPX-633のようなコードの解析や、適切なカバージャケットの取得が просто не могут.

最近、GitHubでJavBossという興味深いオープンソースプロジェクトを見つけました。GoとReactで構築されたローカルWebサーバーで、JAVコンテンツや任意の動画レコードのインデックス作成、カタログ化、快適な視聴のために設計されています。

カタログシステムの仕組み

著者は実用的なユーザビリティの観点からこの課題に取り組みました。アプリケーションはローカルWebサービスとして動作し、指定されたディレクトリをスキャンし、ファイル名からコードを抽出し、複数の外部データベースからメタデータを取得して、明確なギャラリーを構築します。

主な特徴は、元のファイルからの完全な独立性です。JavBossは読み取り専用モードで動作します。元の動画ファイルの名前を変更したり、動画フォルダにNFOファイルや画像を散乱させたりしません。SQLiteデータベース、カバークエリ、ストーリーボードは厳密にdata/ディレクトリに保存されます。

主な機能の解説

このプロジェクトを従来のコマンドラインスクレイパーと差別化する点を見てみましょう。

  1. 自動コードとメタデータ解析。 アプリケーションは、IPX-633SSIS-001形式または字幕サフィックスのコードを抽出します。メタデータは複数のサードパーティソースから同時に取得されます。カードにはタイトル、リリース日、作品、タグ、女優の体型情報(身長、年齢、バストサイズ)が含まれます。自動検出が間違えた場合、カードを手動でリンクすることもできます。

  2. mpvプレーヤー統合。 Webメディアプレイヤーはブラウザのコーデックに制限されることがよくあります。JavBossの開発者はシンプルな解決策を見つけました:デスクトップ版ではローカルのmpvを直接起動できます。任意の動画形式をサポートするフル機能のプレーヤー、カスタム可能なホットキー、ModernZインターフェースが得られます。mpvで視聴中に1ボタンでスクリーンショットを撮ると、Webインターフェースの動画タイムラインにすぐに表示されます。

  3. ファイルの移動追跡。 インデクサーは追加されたディレクトリをバックグラウンドで監視します。ファイルを別のドライブに移動したり、フォルダ名を変更したりしても、データベースはパスを更新します。ユーザータグは動画ファイルのデジタルフィンガープリントに紐付けられているため保持されます。外付けハードディスクを取り外しても、カード はデータベースに残り、ハードディスクを再接続すると再びアクティブになります。

  4. ナビゲーションとフィルタリング。 タグ、作品、女優、リリース日で動画を見つけることができます。メディアライブラリ全体または特定のフィルターセット内で動作する便利なランダム選択機能があります。

インターフェースは明確で、不必要なメニューがごちゃごちゃしていません:

JAV catalog

Actress profile

Search and filters

mpv integration

技術スタックとデプロイ

プロジェクトのアーキテクチャはクリーンです。バックエンドはGinフレームワーク、GORM、組み込みSQLiteデータベースを使用してGoで書かれています。動画の技術パラメータの読み取りにはffprobeが使用され、プレビューとストーリーボードはmpvまたはffmpeg経由で生成されます。

フロントエンドはReact、Vite、Tailwind CSS、Zustandで構築されています。デフォルトでは、サービスはポート8655で実行されます。自動スクリプト、バイナリのダウンロード、またはDocker Composeでインストールできます:

services:
  javboss:
    image: ghcr.io/solr159/javboss:latest
    container_name: javboss
    ports:
      - "8655:17654"
    volumes:
      - ./data:/app/data
      - /:/host:ro
    restart: unless-stopped

コンテナ内では、ブラウザで組み込みのHTML5プレイヤーを通じて動画が再生され、ホストシステムからのローカルパスが自動的に転送されます。

長所と特有の考慮事項

このツールは、ローカルコレクションを維持していて、ファイルシステムの混沌に厌倦しているすべての人々に役立ちます。

プロジェクトの強み:

  • 元のフォルダ構造への干渉ゼロ。
  • シンプルなdata/コピーによるシステム間での簡単なデータベース移行。
  • メタデータ集約のための複数のソースの使用。
  • 異なるブラウザタブでページを開くことをサポートする便利なWebインターフェース。

考慮すべきいくつかの制限があります。大規模なコレクションの初回インポートには、バックグラウンドプレビュー生成とカバー画像のダウンロードに時間がかかります。外部メタデータサイトが利用できない場合、自動スクレイピングは一時停止しますが、ローカルに保存されたデータベースはオフラインで動作し続けます。

結論

JavBossは実用的で専門的な解決策であることが判明しました。著者は別の肥大化したメディアシステムを作ろうとはせず、ニッチなコンテンツのカタログ化という具体的な問題を解決しました。ドライブで余分な手作業を必要とせずに整理が必要なら、このプロジェクトは確かに試す価値があります。

関連プロジェクト