Brightcove Video Connect

Brightcove Video Cloudと連携し、DrupalサイトでBrightcoveのビデオコンテンツを管理・表示するためのモジュールです。

brightcove
879 sites
9
drupal.org

インストール

Drupal 11, 10 v3.3.0
composer require 'drupal/brightcove:^3.3'
Drupal 9 v3.2.1
composer require 'drupal/brightcove:^3.2'
Drupal 8 v3.1.0
composer require 'drupal/brightcove:^3.1'

概要

Brightcove Video Connectは、業界をリードするオンラインビデオプラットフォームであるBrightcove Video CloudとDrupalを統合するモジュールです。このモジュールを使用することで、Brightcoveに保存されているビデオコンテンツをDrupalサイト内で直接管理・表示することができます。

主な機能として、Brightcove APIを使用したビデオの同期、プレイリストの作成と管理、テキストトラック(字幕・キャプション)のサポート、カスタムフィールドの同期などがあります。ビデオプレーヤーはレスポンシブ対応しており、様々なデバイスで最適な表示が可能です。

キューベースの同期システムにより、大量のビデオコンテンツでも効率的に処理でき、Cronを使用した自動同期やWebhookによるリアルタイム通知にも対応しています。また、Drupal標準のMediaモジュールとの統合も可能で、既存のメディア管理ワークフローに組み込むことができます。

Features

  • Brightcove Video Cloud APIとの完全な統合によるビデオコンテンツの双方向同期
  • ビデオエンティティの作成・編集・削除とBrightcoveへの自動アップロード
  • マニュアルプレイリストとスマートプレイリスト(タグベース)の両方をサポート
  • WebVTT形式のテキストトラック(字幕・キャプション・説明)のサポート
  • Brightcoveで定義されたカスタムフィールドの自動同期と表示
  • 複数のBrightcoveアカウント(APIクライアント)の管理
  • レスポンシブおよび固定サイズのビデオプレーヤーテンプレート
  • ビデオのスケジュール公開(開始日・終了日の設定)
  • Webhookサブスクリプションによるビデオ変更のリアルタイム通知
  • キューワーカーによる効率的なバックグラウンド同期処理
  • Drupal Viewsとの統合によるビデオリストの柔軟な表示
  • ビデオ検索プラグインによるサイト内検索への統合
  • Drushコマンドによる同期処理のCLI実行

Use Cases

企業のビデオライブラリ管理

Brightcove Video Cloudで管理している企業のビデオコンテンツをDrupalサイトで公開する場合に使用します。APIクライアントを設定し、Cronで定期的に同期することで、Brightcoveに追加されたビデオが自動的にDrupalサイトに反映されます。ビデオは専用のビュー(Views)で一覧表示でき、カテゴリやタグでフィルタリングも可能です。

オンデマンドビデオ配信サイト

教育機関やメディア企業がオンデマンドでビデオコンテンツを配信するサイトを構築する場合に適しています。プレイリスト機能を使用してコースや番組シリーズを構成し、スマートプレイリストでタグに基づいた自動分類も可能です。テキストトラック(字幕・キャプション)のサポートによりアクセシビリティにも対応します。

マーケティングビデオの埋め込み

製品紹介やマーケティングビデオをDrupalのコンテンツに埋め込む場合、Media Brightcoveサブモジュールを使用してメディアライブラリに統合します。エディターはWYSIWYGエディタからビデオを選択・挿入でき、レスポンシブプレーヤーにより様々なデバイスで最適な表示が可能です。

大規模ビデオアーカイブの移行

既存のBrightcoveアカウントに大量のビデオがある場合、キューベースの同期システムにより効率的にDrupalに取り込めます。Status Overviewページから同期状況を監視し、必要に応じてキューを手動実行できます。

リアルタイム同期が必要なニュースサイト

ビデオニュースサイトなど、Brightcoveでの変更を即座にDrupalに反映する必要がある場合、Webhookサブスクリプションを設定します。video-changeイベントの通知を受け取り、ビデオの追加・更新・削除をリアルタイムで同期します。

プロキシ環境での運用

企業のファイアウォール環境でBrightcove APIへの直接アクセスが制限されている場合、Brightcove Proxyサブモジュールを使用してHTTPプロキシ経由で通信します。NTLM認証やSOCKSプロキシにも対応しています。

Tips

  • 初回セットアップ後は必ずStatus Overviewからキューを実行し、プレーヤーとカスタムフィールドを同期してください
  • 大量のビデオがある場合は、Cronによる自動同期よりもDrushコマンド(drush bcsa)の使用を推奨します
  • ビデオのカスタムフィールドはBrightcove Studioで定義し、APIクライアント設定を保存することで同期されます
  • レスポンシブプレーヤーを使用する場合、max_widthを100%に設定することで、コンテナに合わせた最適なサイズで表示されます
  • 複数のBrightcoveアカウントを使用する場合は、各APIクライアントに分かりやすいラベルを設定してください
  • Webhookサブスクリプションを使用する場合、エンドポイントURLがHTTPSで外部からアクセス可能である必要があります
  • ビデオのReference IDは一意である必要があります。自動生成されるUUIDを使用するか、独自の命名規則を適用してください
  • テキストトラックはビデオ編集フォームから直接追加でき、複数の言語の字幕を設定可能です
  • プレイリストのタイプ(マニュアル/スマート)は作成後に変更できません。用途に応じて適切なタイプを選択してください

Technical Details

Admin Pages 10
Brightcove API Clients /admin/config/media/brightcove_api_client

Brightcove Video Cloudへの接続に使用するAPIクライアント(認証情報)を管理します。複数のBrightcoveアカウントを設定可能です。

Brightcove Videos /admin/content/brightcove_video

Brightcoveと同期されたビデオの一覧を表示・管理します。ビデオの作成、編集、削除が可能です。

Add Brightcove Video /brightcove_video/add

新しいビデオをBrightcoveにアップロードします。

Brightcove Playlists /admin/content/brightcove_playlist

Brightcoveプレイリストの一覧を表示・管理します。

Add Brightcove Playlist /brightcove_playlist/add

新しいプレイリストを作成します。マニュアル(手動)とスマート(タグベース自動)の2種類から選択できます。

Brightcove Status Overview /admin/reports/brightcove

Brightcoveエンティティとキューの状態を確認し、同期操作を実行できます。

Brightcove Subscriptions /admin/config/system/brightcove_subscription

BrightcoveのWebhook通知(サブスクリプション)を管理します。ビデオ変更時にリアルタイムで通知を受け取れます。

Brightcove Cron /admin/config/system/brightcove_cron

Brightcoveの自動同期(Cron)設定を管理します。

Brightcove Video settings /admin/structure/brightcove_video/settings

Brightcove Videoエンティティの表示設定を管理します。Field UIでフィールドの表示をカスタマイズできます。

Brightcove Playlist settings /admin/structure/brightcove_playlist/settings

Brightcove Playlistエンティティの表示設定を管理します。

権限 22
Administer Brightcove configuration

APIクライアント、サブスクリプション、Cron設定の管理

Create new Brightcove Videos

新しいビデオの作成

Access the Brightcove Videos overview page

ビデオ一覧ページへのアクセス

Administer Brightcove Videos

ビデオの管理設定へのアクセス(制限付き)

Delete Brightcove Videos

ビデオの削除

Edit Brightcove Videos

ビデオの編集

View published Brightcove Videos

公開済みビデオの閲覧

View unpublished Brightcove Videos

未公開ビデオの閲覧

Create new Brightcove Playlists

新しいプレイリストの作成

Access the Brightcove Playlists overview page

プレイリスト一覧ページへのアクセス

Administer Brightcove Playlists

プレイリストの管理設定へのアクセス(制限付き)

Delete Brightcove Playlists

プレイリストの削除

Edit Brightcove Playlists

プレイリストの編集

View published Brightcove Playlists

公開済みプレイリストの閲覧

View unpublished Brightcove Playlists

未公開プレイリストの閲覧

Create new Brightcove Text Track entities

新しいテキストトラックの作成

Delete Brightcove Text Track entities

テキストトラックの削除

View published Brightcove Text Track entities

公開済みテキストトラックの閲覧

View unpublished Brightcove Text Track entities

未公開テキストトラックの閲覧

Administer In-Page Experience

In-Page Experienceコンテンツの管理(制限付き)

Allow In-Page Experience entity view

In-Page Experienceエンティティの閲覧

Allow In-Page Experience entity delete

In-Page Experienceエンティティの削除

Hooks 7
hook_cron

Cron実行時にBrightcoveとの同期を開始。disable_cron設定で無効化可能

hook_entity_extra_field_info

ビデオとプレイリストエンティティに追加フィールド(プレーヤー、カスタムフィールド)を定義

hook_theme

プレーヤー表示用のテーマフックを定義(固定サイズ、レスポンシブ)

hook_entity_access

brightcove_video_tagsタクソノミーの編集・削除を禁止

hook_ENTITY_TYPE_view (brightcove_video)

ビデオ表示時にプレーヤーとカスタムフィールドを追加

hook_ENTITY_TYPE_view (brightcove_playlist)

プレイリスト表示時にプレーヤーを追加

hook_file_delete

ファイル削除時にビデオエンティティのポスター/サムネイル参照を更新

Drush Commands 1
drush brightcove:sync-all

すべてのAPIクライアントからBrightcoveデータを同期します。キューにジョブを追加し、バッチ処理を実行します。

Troubleshooting 7
APIクライアントの認証エラー

Client IDとSecret Keyが正しいか確認してください。Brightcove Studioで新しいAPIクレデンシャルを作成し、必要な権限(CMS API、Player API、Ingestion API)が付与されているか確認します。

ビデオが同期されない

Status Overviewページ(/admin/reports/brightcove)でキューの状態を確認してください。キューが溜まっている場合は「Run all queues」を実行します。Cronが正常に動作しているか、disable_cron設定が有効になっていないかも確認してください。

プレーヤーが表示されない

プレーヤーのバージョンが6.x以上か確認してください。5.x以下のプレーヤーはサポートされていません。Brightcove Studioでプレーヤーをアップグレードするか、別のプレーヤーを選択してください。

ビデオアップロードが失敗する

PHPのアップロードサイズ制限(upload_max_filesize、post_max_size)を確認してください。大きなファイルの場合はURLアップロードを使用するか、php.iniの設定を調整します。

テキストトラックが表示されない

WebVTT形式(.vtt)のファイルを使用しているか確認してください。ソース言語が正しく設定されているか、Brightcove Studioでテキストトラックが正しく処理されているかも確認します。

プロキシ接続エラー

Brightcove Proxyの設定ページ(/admin/config/system/brightcove-proxy)で接続テストを実行してください。プロキシのホスト、ポート、認証情報が正しいか確認します。

同期が遅い・タイムアウトする

大量のコンテンツがある場合、キューは段階的に処理されます。PHPの実行時間制限(max_execution_time)を増やすか、Drushコマンド(drush bcsa)をCLIから実行することで、より効率的に処理できます。

Security Notes 5
  • APIクレデンシャル(Client ID、Secret Key)は機密情報です。設定エクスポート時に注意してください
  • 本番環境ではbrightcove_proxy.configのパスワードフィールドに平文でパスワードが保存されることに注意してください
  • administer brightcove configurationパーミッションは信頼できるユーザーのみに付与してください
  • コールバックエンドポイント(/brightcove/notification-callback)は認証なしでアクセス可能です。Brightcoveからの正当なリクエストのみを処理するよう設計されています
  • brightcove_video_tagsタクソノミーはシステム管理されており、手動での編集・削除は禁止されています