Discourse Video Stream は、Discourse サイトへの高品質で長尺の動画コンテンツのアップロードと埋め込みのための、シームレスな Cloudflare Stream 統合を追加します。
概要
このプラグインは、アダプティブビットレートストリーミングによる大規模動画ファイルの処理のための完全なワークフローを提供し、ユーザーがコンポーザーから直接動画をアップロードし、ネットワーク条件に基づいて自動品質調整で再生できるようにします。
主な機能
コンポーザー統合: コンポーザーからの直接動画アップロードのためのオプションのツールバーボタン
自動アップロード傍受: 設定可能なサイズしきい値を超える動画は、ローカルストレージではなく Cloudflare Stream に自動的にアップロードされます。
再開可能なアップロード: tus-js-clientをベースに、接続問題発生時の自動再開により 200 MB をはるかに超えるファイルの信頼性の高いアップロードを実現します。
セキュアプロキシ: サーバーサイドエンドポイントが短命の Cloudflare Stream アップロード URL を生成し、API クレデンシャルを安全に保ちます。
カスタム BBCode: 動画を埋め込むためのシンプルな [video-stream id="..."]構文
アダプティブストリーミング: DASH マニフェストとの Shaka Player 統合により、さまざまなネットワーク速度でスムーズな再生を実現します。
再生コントロール: 解像度選択と再生速度制御のための組み込み UI
インストール
プラグインを app.yml に追加します。
hooks:
after_code:
- exec:
cd: $home/plugins
cmd:
- git clone https://github.com/xfalcox/discourse-video-stream.git
次にコンテナを再構築します。
./launcher rebuild app
設定
管理者 → 設定 → 動画ストリーミングに移動して設定します。
| 設定 | 説明 | デフォルト |
|---|---|---|
| video_stream_enabled | 動画ストリーミングプラグインを有効にする | false |
| video_stream_account_id | Cloudflare アカウント ID | - |
| video_stream_api_token | Stream:Edit 権限を持つ API トークン | - |
| video_stream_customer_subdomain | Cloudflare Stream ドメイン (例: customer-xxxxx.cloudflarestream.com) | - |
| video_stream_allowed_extensions | 許可される動画フォーマットのカンマ区切りリスト | mp4,webm,mov |
| video_stream_max_file_size | 最大ファイルサイズ (MB) (1-2000) | 500 |
| video_stream_intercept_native_uploads | 大容量動画アップロードを自動的に傍受する | true |
| video_stream_intercept_threshold_mb | 自動傍受のサイズしきい値 (MB) (1-2000) | 10 |
Cloudflare Stream クレデンシャルの取得方法
- Cloudflare ダッシュボードにログインします。
- アカウントの下にある Stream に移動します。
- Stream の概要からアカウント ID をコピーします。
- Stream:Edit 権限を持つ API トークンを作成します。
- Stream 設定からカスタマーサブドメインをメモします。
使用方法
設定後、ユーザーは 2 つの方法で動画をアップロードできます。
自動傍受
ユーザーが video_stream_intercept_threshold_mb 設定を超える動画ファイルをドラッグアンドドロップまたは選択すると、プラグインはローカルストレージではなく Cloudflare Stream を介して自動的に処理します。これを機能させるには、許可される拡張設定で動画ファイル拡張子を許可する必要があります。
手動アップロード
ユーザーは、コンポーザーツールバーのポップアップメニュー(
)をクリックし、動画アップロードオプションを選択して、明示的に Cloudflare Stream にアップロードできます。
どちらの方法でも、[video-stream id=“video_id”] BBCode タグが挿入され、解像度と速度制御を備えたアダプティブストリーミングプレーヤーとしてレンダリングされます。
Cloudflare Stream を使用する理由
AWS を使用して同様のことを行うサポートはコード内にあり、Mux を使用したサポートは GitHub - discourse/discourse-video にあります。そのため、より安価な代替案が良いアイデアだと思われました。
要件
- Stream が有効になっているアクティブな Cloudflare アカウント
ソースとサポート
スクリーンショット
デモ
私のテストサイトにアクセスして、動画をアップロードしてください。
https://discourse-on-a-pi5.falco.dev/t/test-video-upload-plugin/20?u=falco
注: これは公式プラグインではありません。

