as

Settings
Sign out
Notifications
Alexa
Amazon Appstore
Ring
AWS
Documentation
Support
Contact Us
My Cases
Develop
Test
Publish
Monetize
Engage users
Device specifications
Resources

EMBER Examples

This page provides complete catalog examples for common integration scenarios using the Enhanced Metadata Bridge for Entertainment Resources (EMBER) format. Each example walks through the full catalog structure, from policies and programs to offers.

Example 1: VOD catalog

This example shows how to build a video-on-demand (VOD) catalog for a streaming service with movies and TV series. Content is available through a free tier (with ads) and a premium tier (4K, no ads).

The high-level steps to create a VOD catalog include:

  1. Define program elements such as movies, TV series in ProgramCatalog.
  2. Define offers on the program in OfferCatalog.
  3. Define entitlement policies for subscription tiers in PolicyCatalog.

VOD key takeaways

  • Create separate ProgramOffers for each tier when attributes differ between tiers (for example, different video resolutions).
  • Use LaunchTarget to provide a content deep link within your app. You can skip LaunchTarget if your app completed launcher integration and a deep link pattern is established with Amazon. In that case, Amazon uses your deep link pattern and applies the program ID from your catalog to create a content-specific deep link to your app.
  • Premium tier typically includes 4K, HDR, and Dolby Atmos.
  • Always include external IDs, especially IMDB.

Example 2: Live sports event catalog

This example shows how to build a catalog for an NFL game (Seattle Seahawks at San Francisco 49ers) that streams live in your app. The game has blackout restrictions in home team markets and requires a sports package subscription.

The following table summarizes the differences between app-based live streaming and linear broadcast.

Feature App-based live streaming Linear broadcast
Catalog elements SportsEvent in ProgramCatalog
ProgramAiringOffers in OfferCatalog
RegionPolicy and EntitlementPolicy in PolicyCatalog
SportsEvent in ProgramCatalog
Schedule in ScheduleCatalog
Station in StationCatalog
StationOffers in OfferCatalog
RegionPolicy and EntitlementPolicy in PolicyCatalog
Access model Requires app-specific entitlements Available to anyone tuned to the station
Availability Time-bound window (start and end) Broadcast at a specific time on a specific channel
Examples Exclusive NFL game in your app, concert live stream, pay-per-view event NFL game on CBS, news on a local affiliate (see Example 4)

The high-level steps to create a live event catalog include:

  1. Define a sports event program or event in ProgramCatalog.
  2. Define offers on the program in OfferCatalog.
  3. Define region policies for blackout areas and an entitlement policy for the sports subscription package in PolicyCatalog.

Live sports key takeaways

Include detailed sports metadata such as teams, league, venue, and kickoff time. Use the following best practices:

  • Use official federation names for sports. For example, "American Football" not just "Football".
  • Set homeTeam="true" on one team only.
  • Set EventDateTime to the actual kickoff time, not the broadcast start time.
  • Include the full address in Venue.
  • Use Credit to add announcers and commentators.

Implement blackout rules with postal codes set in the PolicyCatalog. When an offer contains multiple GeoRestriction elements, they use AND logic. For example, the event is blocked in Seattle AND San Francisco.

Submit both live and replay offers in the same catalog update for a seamless transition from live to on-demand.

Live event offers:

  • Use ProgramAiringOffers (not ProgramOffers).
  • The start and end attributes define the availability window from pre-game to post-game, and the offer is accessible only during this window.
  • Contain the full Airing element, not just a reference.

VOD replay offers:

Example 3: External station catalog

This example shows how to reference external station metadata from Gracenote Video Data (GVD) or Tribune Media Services (TMS) instead of creating station definitions from scratch. This approach is ideal for cable or satellite providers that offer multiple channels and have Gracenote station IDs.

The high-level steps to create an external station catalog include:

  1. Define ExternalStation to reference stations from GVD or TMS in StationCatalog.
  2. Define offers on the station in OfferCatalog.
  3. Define your service area and subscription tiers with region and entitlement policies in PolicyCatalog.

External station key takeaways

External stations let you use professional metadata maintained by GVD or TMS without creating or maintaining station definitions yourself. This provides consistent naming across all services and devices.

You can override data within Titles and Images. However, use the external data when possible and override only if necessary. Reasons you might want to override include:

  • Custom branding, such as your logo and title styling
  • Marketing or promotional purposes
  • Language localization that isn't present in the external data

You can't override other data, such as those contained in CallSign, Descriptions, and Genres. This metadata is inherited from the external system and automatically updates when the external provider updates their records.

If you have subscription tiers, use EntitlementPolicy to define package levels and reference them in StationOffers.

Keep in mind:

Example 4: Full linear station catalog

This example shows how to integrate a local CBS affiliate (KIRO 7) in Seattle with a 24-hour broadcast schedule, program metadata, station information, and a channel lineup for local cable providers.

The high-level steps to create a linear station catalog include:

  1. Create programs that air.

    A linear broadcast station airs diverse content types. Include all program types in your catalog: movies, TV series with full hierarchy, sports events, and local programming.

    Details of common program types:

    • Movie: Theatrical releases airing on broadcast TV.
    • TVSeries/TVSeason/TVEpisode: Network primetime shows with full hierarchy.
    • SportsEvent: Local team games broadcast on regional sports network.
    • Other: Local news, infomercials (non-standard categories).

    For a full list of supported program type elements, see ProgramCatalog.

  2. Create the daily broadcast schedule.

    Use the Schedule element to reference all program types throughout the day and follow these best practices:

    • Include the date attribute in YYYY-MM-DD format.
    • Use the UTC time zone for all times.
    • Use Live for real-time broadcasts and New for first airings or premieres.
    • Omit both Live and New elements for recorded or repeat content.
    • Ensure 24-hour coverage with no gaps or overlapping airings.
  3. Define station access.

    Create a StationOffers element to define how customers access the station.

  4. Define your station.

    Create a fully-defined Station element with branding, network affiliation, and broadcast details.

  5. Create the channel lineup for cable providers.

    In the LineupCatalog, define how your station appears in a cable provider's channel lineup.

  6. Define the broadcast area policy.

    In the PolicyCatalog, use postal codes to define your broadcast coverage area precisely.

Linear broadcast key takeaways

  • Define the station before creating schedules that reference it.
  • Schedules must include the date attribute (YYYY-MM-DD format) and cover the complete 24-hour broadcast day.
  • All times must be in the UTC (Z time zone).
  • Include channel numbers and technical transport IDs for lineup integration.
  • Use postal codes for precise geographic coverage.


Last updated: May 27, 2026