サーバ負荷なしでクラウドから個人向け動画ホスティング — Project 91を探る
ホームアーカイブや個人録画用に独自のメディアサーバーを構築したいと思っても、リソースの制約にすぐに直面します。予算重視の仮想マシンには、通常、わずか20ギガバイトのディスクと制限された帯域幅しか搭載されていません。重い動画ファイルを数本ストリーミングするだけでネットワークが簡単に飽和し、ギガバイト単位のコンテンツを保存するには常に容量を追加購入する必要があります。
最近、91という簡潔な名前のプロジェクトを見つけました。これはGoで構築されたプライベート動画ホスティングソリューションで、ディスク容量とトラフィックの問題をシンプルな方法で解決します。既存のクラウドストレージを使用し、直接リダイレクトで動画を提供します。
主な機能
PlexやJellyfinのような一般的なメディアサーバーは、すべての重い動画ストリームを自有のプロセッサとネットワークインターフェース経由で送信します。安価なVPSでサーバーを運用している場合、 транскодированиеと配信はすぐに限界に達します。
Project 91は異なるアプローチを取ります。カタログ、管理パネル、ウェブインターフェースジェネレーターのタスクを処理します。動画を再生すると、サーバーはブラウザにクラウドストレージCDNへの直接リンクを含むHTTP 302を送信します。結果として、VPSトラフィックはウェブページ自体とサムネイルの提供のみに使用され、動画ストリームはクラウドプロバイダーから直接ユーザーに送信されます。
このプロジェクトはWebDAV、Google Drive、OneDrive、PikPak、115、123panなどのアジアで人気のクラウドにも接続できます。

内部構造:TikTokフィードから期限付きリンクまで
開発者は、標準的なセルフホストプレーヤーではめったに見られないいくつかの特殊な機能を追加しました。
ショート動画
ワンボタンクリックで、TikTokやReelsに似た垂直フィードに切り替わります。マウスのスクロールやスワイプで動画をスクロールできます。ただし、作者はREADMEで正直に、このモードはまだiOSでは完全には動作しないと述べています。
ワンタイム共有
動画は一方向視聴の原則で共有できます。特別なリンクが生成され、認証なしでファイルが正確に1回再生されます。同じリンクに再度アクセスしようとすると、ビデオへのアクセスが拒否されます。

縦型動画のトリプルスクリーン
広いコンピューターモニターで縦型動画を見るときの表示モードで、画面を3つのセクションに展開し、サイドエリアにはぼかし入れた重複画像が表示されます。重要な注意点として、このモードではストリームがVPS経由でプロキシされるため、トラフィック無料の302リダイレクトアプローチは適用されません。
| シングルスクリーン | トリプルスクリーン |
|---|---|
|
|
|
カスタムクローラー
システムには、メディアライブラリを自動的に補充する外部スクリプトのサポートが組み込まれています。SpiderFor91リポジトリには、カスタムパーサーを作成するための仕様が含まれています。

デプロイ方法
内部的には、GoとSQLiteによりプロジェクトは軽量に保たれています。2つの標準的なインストールパスが用意されています。
готовый установочный скрипт
クリーンなUbuntuまたはDebianシステムで実行している場合、リポジトリからのBashスクリプトを使用できます:
sudo apt update && sudo apt install -y curl ca-certificates
curl -fsSL https://raw.githubusercontent.com/nianzhibai/91/main/install.sh -o install.sh
sudo bash install.sh
インストール後、サービスを管理するためのCLIユーティリティである91ctlがシステムで利用可能になります。これを使用して、ステータスの確認、ログの表示、バイナリの更新を行えます:
91 status # Проверить статус
91 logs # Посмотреть логи
91 update # Обновить сервис
Docker Composeでのデプロイ
コンテナ化を好む人にとっては、標準的なComposeファイルを使用してサービスを起動する方が簡単です:
mkdir video-site-91 && cd video-site-91
curl -fsSL https://raw.githubusercontent.com/nianzhibai/91/main/docker-compose.yml -o docker-compose.yml
docker compose up -d
すべてのデータはローカルでいくつかのファイルに保存されます:
./data/config.yamlには管理者認証情報とクラウドトークンが保存されます。./data/video-site.dbにはSQLiteデータベースが保存されます。./data/previews/はカバーとプレビューのキャッシュに使用されます。

試してみる価値はあるか
Project 91は、パワフルなサーバーに多額を費やさずにクラウドストレージ上にシンプルなWebインターフェースを必要とする人にとって興味深い発見です。302リダイレクトにより、月額数ドルの最安VPSでもシステムを簡単に実行できます。
明らかな欠点は言語の壁です。ドキュメントとインターフェースの一部は当初、中国語圏のインターネットユーザーを対象としていました。それでも、基本的なWebDAVと国際的なクラウドは問題なく動作します。ワンタイムリンク機能と縦型モードを備えたプライベートプレーヤーが必要な場合、このプロジェクトはぜひ試してみる価値があります。
関連プロジェクト