アカウントをセットアップする
手順2: カタログをステージング環境にアップロードする
このガイドでは、カタログの作成、検証、ステージング環境へのアップロードについて説明します。
1. カタログを作成する
申請するカタログの各ファイルは、Enhanced Metadata Bridge for Entertainment Resources(EMBER)スキーマに準拠している必要があります。すべてのビデオメタデータを含む完全なカタログを申請することも、変更部分だけを含むインクリメンタルカタログを申請することもできます。
カタログアップロードのタイプ
| タイプ | マニフェストでのタイプの値 | 動作 | 使用する場面 |
|---|---|---|---|
| 完全なカタログ | CATALOG_FULL |
既存のカタログ全体を置き換えます。申請内容に存在しないアイテムはシステムによって削除されます。 | 初回アップロード、毎月の完全更新、カタログの大幅な再構築 |
| インクリメンタルカタログ | CATALOG_UPDATE |
新しいエンティティを追加し、既存のエンティティを更新します。変更のないアイテムは保持されます。特定のアイテムを削除するには、Delete要素を使用します。 |
毎日または毎週の更新、新しいリリースの追加、メタデータの修正、期限切れのコンテンツの削除 |
CATALOG_FULL)である必要があります。クイックスタートテンプレート
以下は、1つの映画とオファーを含む最小限の有効なEMBERカタログです。
<?xml version="1.0" encoding="UTF-8"?>
<DataCollections schemaVersion="1.0.0">
<!-- 番組を定義します。 -->
<ProgramCatalog id="MY_CATALOG" version="1">
<Movie id="MOVIE_001" version="1">
<ExternalIds>
<ExternalId scheme="imdb">tt1234567</ExternalId>
</ExternalIds>
<Titles>
<Title language="en" default="true">Example Movie</Title>
</Titles>
<Descriptions>
<Description language="en" default="true">
A thrilling adventure film about discovery and courage.
</Description>
</Descriptions>
<ReleaseDates>
<ReleaseDate releaseType="streaming">2024-01-15</ReleaseDate>
</ReleaseDates>
</Movie>
</ProgramCatalog>
<!-- ユーザーがコンテンツにアクセスする方法を定義します。 -->
<OfferCatalog id="MY_OFFERS" version="1">
<ProgramOffers id="OFFER_001" version="1" programRef="MOVIE_001">
<ProgramOffer>
<Entitlements>
<Entitlement type="free"/>
</Entitlements>
</ProgramOffer>
</ProgramOffers>
</OfferCatalog>
</DataCollections>
スキーマに関する詳細なドキュメントについては、EMBER仕様の概要を参照してください。
カタログの作成要件
カタログを作成する前に、EMBER仕様の概要で説明されている中核的な概念を理解してください。特に、識別子、バージョン管理、要素の順序、ローカリゼーション、リレーションシップに関するセクションを確認してください。これらのルールは、カタログの構造と処理方法を規定するものです。
留意すべき重要なポイントを以下に示します。
- IDは永続的(作成後に変更されない)かつ一意である必要があり、大文字と小文字が区別されます。詳細については、識別子を参照してください。
- システムは、常に最も大きいバージョン番号を適用します。後から下位のバージョンが届いても、システムによって無視されます。詳細については、バージョン管理を参照してください。
- 要素の順序は厳密に規定されています。EMBERは
xs:sequenceを使用しているため、子要素はXSDで定義されている順序で配置する必要があります。順序が正しくない場合、検証エラーが発生します。詳細については、要素の順序依存性を参照してください。 - ローカリゼーションには、BCP-47の言語コードとISO 3166-1の地域コードを使用し、ローカライズ可能な要素ごとに
default="true"のエントリが1つだけ必要です。詳細については、ローカリゼーションを参照してください。 - リレーションシップによってTV番組の各階層を結び付け(シリーズ→シーズン→エピソード)、追加コンテンツをメインコンテンツにリンクします。
TVSeasonには、isSeasonOfSeriesを含める必要があります。TVEpisodeには、isEpisodeOfSeasonまたはisEpisodeOfSeriesを含める必要があります。詳細については、リレーションシップを参照してください。
ファイルサイズと圧縮については、次のガイドラインに従ってください。
- 効率化のためにファイル圧縮を使用します。GZip(.gz)形式(英語のみ)またはZstandard(.zst)形式(英語のみ)を使用して、各データファイルを個別に圧縮します。
- 圧縮ファイルあたりの最大サイズは 100MBです。
- 申請の最大合計サイズ(圧縮後)は 10GBです。
- カタログの圧縮サイズが100MBを超える場合は、複数のファイルに分割します(カタログタイプ別やコンテンツタイプ別など)。
2. カタログを検証する
カタログファイルを作成したら、アップロードする前にローカルで検証します。カタログ統合サービスは、正しくない形式のXMLファイルやスキーマ検証に失敗したファイルを拒否します。
EMBER XSDスキーマのダウンロード
EMBERスキーマファイルのダウンロード: (EMBER XSDファイル)をダウンロードします。これをカタログファイルと同じディレクトリに保存します。
xmllintによる検証
MacとLinuxには、デフォルトでxmllintが含まれています。次のコマンドを実行します。
xmllint --noout --schema EMBER_{バージョン}.xsd your-catalog.xml
想定される出力(成功時):
your-catalog.xml validates
想定される出力(失敗時):
your-catalog.xml:42: element Movie: Schemas validity error:
Element 'Movie': Missing child element(s).Expected is ( Titles ).
your-catalog.xml fails to validate
--)がターミナルやエディターによってenダッシュに自動修正されていないことを確認してください。IDEによる検証
ほとんどのIDEにはXML検証が組み込まれています。
- Visual Studio Code: Red HatによるXML拡張機能(英語のみ)をインストールします。入力に応じてエラーが表示されます。
- IntelliJ IDEA: XMLファイルを右クリックし、[Validate] を選択します。または、[Settings] > [Languages & Frameworks] > [Schemas and DTDs] で設定します。
- Eclipse: XMLファイルを右クリックし、[Validate] を選択します。
よくある検証エラー
| エラー | 原因 | 修正方法 |
|---|---|---|
Missing child element Titles |
必須のTitles要素がありません。 |
Titlesを追加して、1つ以上のTitleを含めます。 |
| Element unexpected, expected... | 要素の順序が正しくありません。 | XSDの順序と一致するように要素を並べ替えます。 |
| Pattern restriction violated | 日付/時刻の形式が正しくありません。 | 日付にはYYYY-MM-DDの形式を使用し、日付と時刻にはタイムゾーン付きのISO-8601の形式を使用します。 |
| Invalid value for attribute | 列挙値が正しくありません。 | 使用できる値をスキーマで確認します(たとえば、視聴権限のタイプにはfreeとsubscriptionを使用できます)。 |
XML検証で検出される問題と検出されない問題
ローカル検証(xmllintまたはIDE)では、次の問題が検出されます。
- XMLの形式が正しくない(タグが壊れている、要素が閉じていない)。
- 要素または属性がスキーマで定義されていない。
- 必須の要素がない。
- 要素の順序が正しくない。
- データ型やデータ形式が正しくない。
ローカル検証では、次の問題は検出されません(統合時に検出されます)。
- 参照整合性。たとえば、
TVEpisodeで参照しているTVSeasonがカタログ内に存在しない。 - ビジネスルール。たとえば、
TVEpisodeに必須のシリーズリレーションシップ(isEpisodeOfSeries)がない。 - 画像にアクセスできるかどうか。たとえば、画像のURLが一般に公開されていない。
- IDの重複。たとえば、同じIDの2つのエンティティが同じカタログに含まれている。
- カタログの相互参照の解決。たとえば、
ProgramOffersで参照している番組が存在しない。
3. カタログをアップロードする
カタログを検証したら、Amazonによって構成されたAmazon S3バケットにアップロードします。
S3フォルダ構造
S3バケットのフォルダ構造は次のようになっています。
s3://amazon-media-catalogs/<プロバイダープレフィックス>/
├── prod/ ← 本番環境
│ ├── catalogs/ ← 本番環境のカタログファイルをここにアップロード
│ ├── manifests/ ← 本番環境のマニフェストファイルをここにアップロード
│ └── reports/ ← 本番環境の統合レポートが生成される場所
└── staging/ ← ステージング環境
├── catalogs/ ← ステージング環境のカタログファイルをここにアップロード
├── manifests/ ← ステージング環境のマニフェストファイルをここにアップロード
└── reports/ ← ステージング環境の統合レポートが生成される場所
アップロードのワークフロー
カタログファイルをアップロードするには
- IAMロールを引き受けます。
aws sts assume-role \ --role-arn <担当者から受け取ったロールのARN> \ --role-session-name catalog-upload詳細については、カタログをアップロードするためのIAMロールの引き受けを参照してください。
- カタログをアップロードするためのIAMロールの引き受けで説明されているように、返された認証情報を環境変数としてエクスポートします。
- カタログファイルをアップロードします。
aws s3 cp my-catalog.xml.zst \ s3://amazon-media-catalogs/<プロバイダー>/staging/catalogs/catalog-20250420-120000.xml.zst - マニフェストファイルをアップロードします。
aws s3 cp my-manifest.manifest \ s3://amazon-media-catalogs/<プロバイダー>/staging/manifests/manifest-20250420-120000.manifestこの操作により、統合プロセスが開始されます。マニフェストファイルの詳細については、マニフェストをアップロードして統合を開始するを参照してください。
4. マニフェストをアップロードして統合を開始する
マニフェストファイルをアップロードすると、統合プロセスが開始されます。マニフェストのアップロードは、必ずカタログファイルのアップロード後に行ってください。マニフェストファイルをアップロードするには、次のコマンドを使用します。
aws s3 cp my-manifest.manifest \
s3://amazon-media-catalogs/<プロバイダー>/staging/manifests/manifest-20250420-120000.manifest
マニフェストファイル
マニフェストファイルは、どのカタログファイルを処理するかを統合サービスに指示します。マニフェストをアップロードすると、すぐに統合が開始されます。
マニフェストの要件
マニフェストファイルは、次の要件を満たしている必要があります。
- ファイル名 - 末尾を.manifestにする必要があります(catalog_upload_20250420.manifestなど)。
- 形式 - JSONです。
- ファイル名が一意であること - マニフェストファイルとカタログファイルの名前は、既存のファイル名を上書きすることはできません。タイムスタンプまたはUUIDを使用して一意性を確保してください。
マニフェストの形式
次の例は、1つのカタログを含む基本的なマニフェストファイルの構造を示しています。
{
"s3Bucket": "amazon-media-catalogs",
"s3Keys": [
"<provider>/staging/catalogs/catalog-20250420-120000.xml.zst"
],
"type": "CATALOG_FULL",
"schema": "EMBER"
}
マニフェストのフィールド
次の表は、マニフェストファイルの各フィールドについて説明したものです。
| フィールド | 必須 | 値 | 説明 |
|---|---|---|---|
s3Bucket |
○ | amazon-media-catalogs |
常にこの値にします。 |
s3Keys |
○ | S3パスの配列 | 統合するカタログファイルのパス。複数のファイルを含めることができます。 |
type |
○ | CATALOG_FULLまたはCATALOG_UPDATE |
完全な置き換えまたはインクリメンタル更新。 |
schema |
○ | EMBERまたはCDF |
カタログ形式。新規の統合にはEMBERを使用してください。 |
複数ファイルのマニフェストの例
1つのマニフェストに複数のカタログファイルを含めることができます。次の例では、番組、オファー、スケジュールの3つの個別のファイルを参照しています。
{
"s3Bucket": "amazon-media-catalogs",
"s3Keys": [
"<プロバイダー>/staging/catalogs/programs-20250420.xml.zst",
"<プロバイダー>/staging/catalogs/offers-20250420.xml.zst",
"<プロバイダー>/staging/catalogs/schedules-20250420.xml.zst"
],
"type": "CATALOG_FULL",
"schema": "EMBER"
}
システムは、s3Keysのリストに含まれるすべてのファイルを1回のアトミックな申請として処理します。いずれかのファイルがXML検証に失敗すると、システムは申請全体を拒否します。
アップロード要件
次の表は、カタログのアップロード要件をまとめたものです。
| 要件 | 詳細 |
|---|---|
| 初回アップロード | 完全なカタログ(CATALOG_FULL)である必要があります。 |
| 最大アップロード頻度 | 1分あたり1回のカタログ申請をアップロードできます。 |
| 事前通知 | 配信予定日の少なくとも2日前に、配信予定のコンテンツを申請する必要があります。 |
| ファイル名 | 一意である必要があります。タイムスタンプまたはUUIDを使用してください(catalog-20250420-153045.xml.zstなど)。 |
5. 統合レポートを確認する
カタログをアップロードすると、統合システムによってデータが処理され、1時間ごとにレポートが生成されます(過去1時間にアイテムが処理された場合)。レポートは、S3バケットのreports/ディレクトリにHTMLファイルとして配置されます。
レポート通知のEメールの受信
Amazonの担当者に連絡して、統合レポートのEメール配信リストへの登録を依頼してください。システムは、成功と失敗のそれぞれについて別々のEメールを送信します。両方のリストへの登録をリクエストしてください。
Eメールには次の情報が記載されています。
- 過去1時間に処理されたアイテムの概要
- レポート全体をダウンロードするためのAWS CLIコマンド
レポートのダウンロード
統合レポートのEメール通知を受け取ったら、そのEメールに正確なダウンロードコマンドが記載されています。コマンドをコピーしてターミナルに貼り付けます。
aws s3api get-object --region us-east-1 \
--bucket amazon-media-catalogs \
--key <プロバイダー>/staging/reports/04_20_2025/report-1713622889665-20250420012129.html \
report.html
次のコマンドを使用して、レポートディレクトリを参照してレポートにアクセスすることもできます。
# 利用可能なレポートの一覧を表示します。
aws s3 ls s3://amazon-media-catalogs/<プロバイダー>/staging/reports/
# 特定のレポートをダウンロードします。
aws s3 cp \
s3://amazon-media-catalogs/<プロバイダー>/staging/reports/04_20_2025/report-1713622889665.html \
./report.html
ウェブブラウザでreport.htmlを開いて、レポート全体を表示します。
レポートの理解
統合レポートには以下のセクションがあります。
概要
概要には、次の情報を含む全体的な統合結果が表示されます。
- 統合IDとタイムスタンプ
- 処理されたアイテムの総数
- カウント(追加、更新、削除されたアイテム、未変更のアイテム、スキップされたアイテムの数)
- エラー、警告、推奨事項のメッセージの数
エラー、警告、推奨事項
レポートのこの部分で各セクションを展開すると、個々のメッセージと影響を受けるアイテムのIDが表示されます。
- エラー(修正が必要)- システムはエラーのあるアイテムをスキップし、統合から外します。コンテンツが表示されるようにするには、これらを修正する必要があります。
- 警告(修正を推奨)- システムはコンテンツを統合しますが、機能が制限される場合があります。最適なエクスペリエンスのためには、これらを修正してください。
- 推奨事項(任意)- 検出とメタデータの品質を向上させるために推奨される最適化を示します。
カウント
カウントセクションは、追加、削除、更新されたアイテム、未変更のアイテム、スキップされたアイテムの詳細な内訳を提供します。[Details] ボタンをクリックすると、各カテゴリーに含まれる具体的なIDが表示されます。最終的な検証として、想定される変更とこれらの結果を比較してください。
カタログ概要レポート
システムは、時間単位の統合レポートに加えて、カタログ概要レポートを毎日生成します。このレポートには、すべてのカタログ申請のカタログステータス全体がまとめられ、未解決のエラー、警告、推奨事項が、その発生時期に関係なくすべて含まれています。このレポートは、カタログの健全性を継続的にモニタリングするために使用できます。
このレポートは、s3://amazon-media-catalogs/<プロバイダー>/prod/reports/<日付>/catalog-summary-<日付と時刻>.htmlにあります。
Last updated: 2026年5月27日

