PLAY DEVELOPERS BLOG

HuluやTVerなどの日本最大級の動画配信を支える株式会社PLAYが運営するテックブログです。

HuluやTVerなどの日本最大級の動画配信を支える株式会社PLAYが運営するテックブログです。

動画配信サービスへの入稿に使用される Universal Media Catalog および MovieLabs Digital Distribution Framework の概要

2024年も終わりが近づいてまいりました。 メディアサプライチェーン技術部開発第1グループの松尾です。業務では動画配信サービスへの入稿を支援するプロダクトを開発しています。

みなさんが使っている Netflix や Amazon Prime Video などの動画配信サービスでは、ドラマやアニメなどさまざまなコンテンツを視聴できます。このコンテンツの配信に必要なデータは、コンテンツ所有者が動画配信サービスへ入稿しています。入稿するために必要なデータは各動画配信サービスが決めており、「このようなデータ構造で入稿してください」という入稿スタイル(及び入稿規定)も各動画配信サービスで様々です。入稿スタイルは動画配信サービスが独自で作成している場合と、規格化されたものを採用する場合が存在します。

本記事では、その中でも代表的な入稿スタイルである UMC と MDDF の概要について説明します。

入稿データの分類

TV 局や制作会社などのコンテンツ所有者は必要なデータを動画配信サービスへ入稿します。入稿時に必要なデータは大きく4つに分けられます。

項目 説明
作品情報 タイトルやクレジットなど作品に関連する情報
配信設定 配信期間や配信地域を定めたもの
アセットマニフェスト アセット群の各ファイルの配信における役割を説明するもの
アセット群 動画ファイルや音声ファイルなどのメディアファイル

上記の4つのうち、作品情報や配信設定、アセットマニフェストのデータ構造を体系化したものが UMC や MDDF です。

UMC

UMC(Universal Media Catalog)は Apple 社が Apple TV+ の入稿に採用している入稿スタイルです。UMC により作品情報と配信設定が定義されています。

UMCの作品情報

UMC における作品情報はXMLファイルのカタログデータフィードとして定義されます。カタログデータに含まれる代表的な項目は次の通りです。

項目 スキーマ名 説明
コンテンツID contentId コンテンツの識別子。すべてのコンテンツで一意となる必要があります。
コンテンツタイプ contentType コンテンツの種別。映画、テレビ番組、テレビシーズン、テレビエピソード、スポーツイベント、その他のいずれか1つを指定する必要があります。
最終更新日 pubDate コンテンツが最後に更新された日時
タイトル title 長さが1~255文字のコンテンツのタイトル。国別に指定します。
概要 description 長さが0~4000文字のあらすじや見どころなどのコンテンツの説明。国別に指定できます。
ジャンル genre ドラマやアニメなどのコンテンツのジャンル
クレジット credit 出演者やスタッフ情報
レーティング rating 年齢制限。映倫などの年齢制限システムの情報を指定します。

カタログデータフィードのXMLファイルのサンプルを作成してみます。このコンテンツは、タイトルが「映画サンプル」であり、90分(5400秒)のアニメ映画です。2025年04月01日に日本で公開予定です。主人公として「PLAY太郎」が出演しており、映倫の PG12 が指定されています。

<?xml version="1.0" encoding="UTF-8"?>
<umcCatalog version="3.6" teamId="PLAYTEST" catalogId="com.catalog.acme" xmlns:umc="https://www.tbd.com/spec/umc-catalog/">
  <totalItemCount>1</totalItemCount>
  <link rel="next" href="https://api.acme.net/catalog/endpoint?page=2"/>
  <lastBuildDate>2024-12-01T00:00:12+09:00</lastBuildDate>
  <title>カタログフィード</title>
  <description locale="ja-JP">カタログフィードのサンプル</description>
  <defaultLocale>ja-JP</defaultLocale>
  <item contentType="movie" contentId="movie_sample">
    <pubDate>2024-12-01T00:00:00+09:00</pubDate>
    <title locale="ja-JP">映画サンプル</title>
    <description locale="ja-JP">サンプル映画です。</description>
    <genre>anime</genre>
    <rating systemCode="eirin-jp" value="PG12">
      <reason>暴力シーンが含まれるため。</reason>
    </rating>
    <credit role="actor">
      <name>PLAY太郎</name>
      <character>
        <characterName locale="ja-JP">主人公</characterName>
      </character>
    </credit>
    <movieInfo>
      <type>feature</type>
      <duration>5400</duration>
      <originalReleaseDate country="JP">2025-04-01</originalReleaseDate>
    </movieInfo>
  </item>
</umcCatalog>

より詳細な説明は公式ドキュメントをお読みください。

UMCの配信設定

UMC における配信設定はXMLファイルのアベイラビリティデータフィードとして定義されます。アベイラビリティはコンテンツがいつどのように利用できるかを指定するオファーを主として構成されます。オファーに含まれる代表的な項目は次の通りです。

項目 スキーマ名 説明
オファータイプ offeringType 利用形態。サブスクリプションや無料などを指定します。
利用開始日 windowStart オファーの開始日
利用終了日 windowEnd オファーの終了日

アベイラビリティデータフィードのXMLファイルのサンプルを作成してみます。UMC の作品情報で作成したコンテンツIDが「movie_sample」のコンテンツに配信設定を指定します。このアベイラビリティはサブスクリプションで2025年04月01日から2026年03月31日のオファーを持っています。

<?xml version="1.0" encoding="UTF-8"?>
<umcAvailability version="3.5" xmlns:umc="https://www.tbd.com/spec/umc-avail/">
  <lastBuildDate>2024-12-01T00:00:12+09:00</lastBuildDate>
  <link rel="next" href="https://api.acme.net/availability/endpoint?page=2"/>
  <service teamId="PLAYTEST" serviceId="com.acme.service.nonlinear">
    <serviceType>vod</serviceType>
    <totalItemCount>1</totalItemCount>
    <item contentType="movie" contentId="movie_sample">
      <pubDate>2024-12-01T00:00:00+09:00</pubDate>
      <offers>
        <offer>
          <offeringType>subscription</offeringType>
          <windowStart>2025-04-01T00:00:00+09:00</windowStart>
          <windowEnd>2026-03-31T10:00:00+09:00</windowEnd>
        </offer>
      </offers>
    </item>
  </service>
</umcAvailability>

より詳細な説明は公式ドキュメントをお読みください。

MDDF

MDDF(MovieLabs Digital Distribution Framework)は MovieLabs が決めた入稿スタイルです。MDDF は Amazon Prime Video への入稿に利用されています。また MDDF は日本ではサービスが提供されていない Warner Bros. の Max でも利用されているようです。MovieLabs は映像配信業界の企業が共同で設立した映像配信とコンテンツの保護を目的とした非営利組織です。MDDF は制作会社からユーザーのコンテンツ視聴までの一連の流れを規格化し、フローの効率化とユーザー体験を向上させています。MDDF では作品情報、配信設定、アセットマニフェストが定義されます。

MDDFの作品情報

MDDF における作品情報は MEC(Media Entertainment Core)により定義されます。MEC はXMLファイルとして共有されます。MEC に含まれる代表的な項目は次の通りです。

項目 スキーマ名 説明
コンテンツID ContentID コンテンツの識別子。すべてのコンテンツで一意となる必要があります。
コンテンツタイプ WorkType コンテンツの種別。映画、テレビ番組、テレビシーズン、テレビエピソードなどを指定します。
タイトル TitleDisplayUnlimited コンテンツのタイトル
概要 Summary400 長さ400文字以内のあらすじや見どころなどのコンテンツの説明
ジャンル Genre ドラマやアニメなどのコンテンツのジャンル
クレジット People 出演者やスタッフ情報
レーティング RatingSet 年齢制限。映倫などの年齢制限システムの情報を指定します。

MEC のXMLファイルのサンプルを作成してみます。UMC の作品情報と同じコンテンツを扱います。UMC との主な違いは地域ごとに LocalizedInfo を設定できる点です。

<mdmec:CoreMetadata xsi:schemaLocation="http://www.movielabs.com/schema/mdmec/v2.5 ./mdmec-v2.5.xsd" xmlns:mdmec="http://www.movielabs.com/schema/mdmec/v2.5" xmlns:md="http://www.movielabs.com/schema/md/v2.5/md" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <mdmec:Basic ContentID="movie_sample">
    <md:LocalizedInfo language="ja-JP">
      <md:TitleDisplayUnlimited>映画サンプル</md:TitleDisplayUnlimited>
      <md:Summary400>サンプル映画です。</md:Summary400>
      <md:Genre id="Anime" level="0"/>
      <md:Region>
        <md:country>JP</md:country>
      </md:Region>
    </md:LocalizedInfo>
    <md:ReleaseYear>2025</md:ReleaseYear>
    <md:ReleaseDate>2025-04-01</md:ReleaseDate>
    <md:WorkType>Movie</md:WorkType>
    <md:RatingSet>
      <md:Rating>
        <md:Region>
          <md:country>JP</md:country>
        </md:Region>
        <md:System>EIRIN</md:System>
        <md:Value>PG12</md:Value>
      </md:Rating>
    </md:RatingSet>
    <md:People>
      <md:Job>
        <md:JobFunction>Actor</md:JobFunction>
        <md:CharacterInfo>
          <md:CharacterName language="ja">主人公</md:CharacterName>
        </md:CharacterInfo>
      </md:Job>
      <md:Name>
        <md:DisplayName language="ja-JP">PLAY太郎</md:DisplayName>
      </md:Name>
    </md:People>
    <md:AssociatedOrg role="licensor" organizationID="play"/>
  </mdmec:Basic>
</mdmec:CoreMetadata>

より詳細な説明は公式ドキュメントをお読みください。

MDDFの配信設定

MDDF における配信設定は EMA(Entertainment Merchant's Association)のアベイルズにより定義されます。アベイルズは主にExcelファイルとして共有されます。アベイルズに含まれる代表的な項目は次の通りです。

項目 スキーマ名 説明
ライセンスタイプ LicenseType 利用形態。ESTやSVODを指定します。
フォーマットプロファイル FormatProfile ビデオのプロファイル。HDやSDを指定します。
利用開始日 Start 開始日
利用終了日 End 終了日

Amazon Prime Video が指定するアベイルズの必須項目を埋めてみます。UMC の配信設定と同じ配信設定を再現します。上記の表の項目はトップレベルが AvailTrans に指定されます。アベイルズのトップレベルの AvailMetadata には MEC と同じ情報を含める場合があります。

トップレベル サブレベル
Licensor DisplayName PLAY
Disposition EntryType Full Extract
Avail ALID movie_sample
AvailAsset WorkType Movie
AvailAsset AltID movie_sample
AvailAsset ContentID movie_sample
AvailAsset TitleInternalAlias 映画サンプル
AvailTrans Territory JP
AvailTrans LicenseType SVOD
AvailTrans FormatProfile HD
AvailTrans Start 2025-04-01
AvailTrans End 2026-03-31
AvailMetadata TitleDisplayUnlimited 映画サンプル

より詳細な説明はEMAの公式ドキュメント及びAmazon Prime Video のドキュメントをお読みください。

MDDFのアセットマニフェスト

MDDF におけるアセットマニフェストは MMC(Media Manifest Core)により定義されます。MMC はXMLファイルとして共有されます。MMC に含まれる代表的な項目は次の通りです。

項目 スキーマ名 説明
インベントリ Inventory 各メディアファイルを識別するための情報。映像・音声など各メディアファイルごとに指定します。
プレゼンテーション Presentations 再生時に関連するインベントリのグループ情報。映像と音声の組み合わせなどを指定します。
エクスペリエンス Experiences 再生順序などの視聴経験の情報。プリロールやポストロールを含めたプレゼンテーションの再生順序などを指定します。

MMC のXMLファイルのサンプルを作成してみます。これまで通り contentID が「movie_sample」であり、本編映像を「movie_sample.mp4」とします。インベントリの映像(Video)、音声(Audio)に同じファイルを指定しています。音声が映像と同じファイルの場合でもインベントリに音声の指定が必要です。

<?xml version="1.0" encoding="utf-8"?>
<manifest:MediaManifest xmlns:manifest="http://www.movielabs.com/schema/manifest/v1.10/manifest"
                        xmlns:md="http://www.movielabs.com/schema/md/v2.9/md"
                        xmlns:xs="http://www.w3.org/2001/XMLSchema"
                        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <manifest:Compatibility>
    <manifest:SpecVersion>1.10</manifest:SpecVersion>
    <manifest:Profile>MMC-1</manifest:Profile>
  </manifest:Compatibility>

  <manifest:Inventory>
    <manifest:Audio AudioTrackID="md:audtrackid:org:PLAY:movie_sample:feature.audio.en">
      <md:Type>primary</md:Type>
      <md:Language>ja-JP</md:Language>
      <manifest:ContainerReference>
        <manifest:ContainerLocation>movie_sample.mp4</manifest:ContainerLocation>
        <manifest:Hash method="MD5">ded027062f916b09f70c39c7766bb88b</manifest:Hash>
      </manifest:ContainerReference>
    </manifest:Audio>

    <manifest:Video VideoTrackID="md:vidtrackid:org:PLAY:movie_sample:feature.video">
      <md:Type>primary</md:Type>
      <md:Language>ja-JP</md:Language>
      <md:Picture>
        <md:WidthPixels>1920</md:WidthPixels>
        <md:HeightPixels>1080</md:HeightPixels>
        <md:Progressive>true</md:Progressive>
      </md:Picture>
      <manifest:ContainerReference>
        <manifest:ContainerLocation>movie_sample.mp4</manifest:ContainerLocation>
        <manifest:Hash method="MD5">ded027062f916b09f70c39c7766bb88b</manifest:Hash>
      </manifest:ContainerReference>
    </manifest:Video>
  </manifest:Inventory>

  <manifest:Presentations>
    <manifest:Presentation PresentationID="md:presentationid:org:PLAY:movie_sample:feature.presentation">
      <manifest:TrackMetadata>
        <manifest:TrackSelectionNumber>0</manifest:TrackSelectionNumber>
        <manifest:VideoTrackReference>
          <manifest:VideoTrackID>md:vidtrackid:org:PLAY:movie_sample:feature.video</manifest:VideoTrackID>
        </manifest:VideoTrackReference>
    
        <manifest:AudioTrackReference>
          <manifest:AudioTrackID>md:audtrackid:org:PLAY:movie_sample:feature.audio.en</manifest:AudioTrackID>
        </manifest:AudioTrackReference>
      </manifest:TrackMetadata>
    </manifest:Presentation>
  </manifest:Presentations>

  <manifest:Experiences>
    <manifest:Experience ExperienceID="md:experienceid:org:PLAY:movie_sample:experience" version="1.0">
      <manifest:Audiovisual>
        <manifest:Type>Main</manifest:Type>
        <manifest:SubType>Feature</manifest:SubType>
        <manifest:PresentationID>md:presentationid:org:PLAY:movie_sample:feature.presentation</manifest:PresentationID>
      </manifest:Audiovisual>
    </manifest:Experience>
  </manifest:Experiences>

  <manifest:ALIDExperienceMaps>
    <manifest:ALIDExperienceMap>
      <manifest:ALID>md:ALID:org:PLAY:movie_sample</manifest:ALID>
      <manifest:ExperienceID>md:experienceid:org:PLAY:movie_sample:experience</manifest:ExperienceID>
    </manifest:ALIDExperienceMap>
  </manifest:ALIDExperienceMaps>
</manifest:MediaManifest>

より詳細な説明は公式ドキュメントをお読みください。

終わりに

この記事では動画配信サービスへの入稿に利用される代表的な入稿スタイルである UMC と MDDF を紹介しました。動画配信サービスごとに入稿スタイルや入稿規定の違いが存在し、入稿管理は属人化しやすい業務です。またドキュメントも日本語の展開が少なく、Web 上の知見も多くありません。この記事が入稿管理に悩む方のお役に立てたら幸いです。

弊社では入稿管理をサポートする KRONOS DRIVE を提供しております。入稿管理にお困りの際はぜひ弊社にお問い合わせください。