The first step to create the feed is to identify the types of entities you need
to provide in the feed. For that, an understanding of your media catalog is
important, especially because each entity type has different attributes and
requirements. You might be a provider who catalogs only movies, or one who
provides musical content, such as songs, artists, playlists, or radio stations
to your users. You can also be one who serves both video and music content to
your users. Before you proceed, it helps to know the categories you fall into.

## Identify the type of integration

At the top level, Media Actions allows you to perform two types of integrations,
which further break down into subcategories, as shown in the following table:

| Integration category | Integration sub-category | Description |
|---|---|---|
| Watch Actions | **Video on demand** | Providers of access to video assets that stream on demand. The assets typically include movies and TV shows (note that sporting events require a Live TV or combined Live TV and Video on demand integration with `BroadcastEvent` entities). Access to the catalog is provided either for free or through a one time or recurring subscription fee. You can refer to the [entity relationship chart](https://developers.google.com/actions/media/collect-information/identify-the-relationships#tv-show) for more details. |
| Watch Actions | **Live TV** | Providers who provide access to live streamed content, which usually streams on linear TV channels or the internet. The assets typically include the channels, electronic programming guide (EPG), and associated movies, TV shows, and sporting events metadata. Access to the catalog is provided either for free or through a one time or recurring subscription fee. For more information, see the [entity relationship chart](https://developers.google.com/actions/media/concepts/live-tv-event#live_tv_event_entity_types). |
| Watch Actions | **Video on demand and Live TV** | Providers who provide access to both Video on demand and linear TV channels or live streamed content. The assets typically include the channels, electronic programming guide (EPG), movies, TV shows, and sports games metadata. Access to the catalog is provided either for free or through a one-time or recurring subscription fee. For more information, see the [entity relationship chart](https://developers.google.com/actions/media/concepts/live-tv-event#live_tv_event_entity_types). |
| Listen Actions | **Music** | Providers who provide access to their catalog of songs, music playlists, artists, and their albums that stream over the internet. Access to the catalog is provided either for free or through a one-time or recurring subscription fee. |
| Listen Actions | **Radio** | Providers who provide access to their catalog of radio stations. Access to the catalog is provided either for free or through a one-time or recurring subscription fee. |
| Listen Actions | **Podcast** | Providers who provide access to their catalog of podcasts that can be streamed over the internet. Access to the catalog is provided either for free or through a one-time or recurring subscription fee. |

> [!NOTE]
> **Note:** If you cater to both Watch Actions and Listen Actions users, create separate feeds for each category. Within a category, feeds can generally combine together for the sub-categories. To learn more before you proceed, work with your Google contact.

## Understand the available entity types

| Entity type | Brief description |
|---|---|
| **Movie** | **Movie** is the `schema.org` representation of a movie. This can be a theatrical release, a home release, an international release, a remastered version, a director's cut, an unrated version, or an extended cut of the movie. The entity lets you model various attributes of a movie, such as its actors, directors, regional or global release dates, and more. For specifications and an example, see [Content markup properties of movies](https://developers.google.com/actions/media/reference/data-specification/movies-specification). |
| **TVSeries** | Also known as a television show, or a TV show, the **TVSeries** entity is the `schema.org` representation. For example, "Grey's Anatomy" is a medical drama television series created by Shonda Rimes. It has several seasons, and each season has several episodes. For specifications and an example, see [Content markup properties of TV shows](https://developers.google.com/actions/media/reference/data-specification/tv-shows-specification#tvseries). |
| **TVSeason** | **TVSeason** is the `schema.org` representation of a single season associated with a **TVSeries** . For example, "Season 18" of the "Grey's Anatomy" **TVSeries** had 20 episodes. **TVSeason** entity captures the season name and season number and links back to the **TVSeries** entity it's related to. For specifications and an example, see [Content markup properties of TV shows](https://developers.google.com/actions/media/reference/data-specification/tv-shows-specification#tvseason). |
| **TVEpisode** | **TVEpisode** is the `schema.org` representation of a single episode of a given **TVSeason** , associated with a **TVSeries** . For example, "I'll Follow the Sun" was the 7th episode in the 19th **TVSeason** of the "Grey's Anatomy" **TVSeries** . The **TVEpisode** entity captures the episode number, name, release date, deep link to watch the episode, and more. It also links back to the **TVSeason** and the **TVSeries** entity that it's related to. For specifications and an example, see [Content markup properties of TV shows](https://developers.google.com/actions/media/reference/data-specification/tv-shows-specification#tvepisode). |
| **SportsEvent** | **SportsEvent** is the `schema.org` representation of a sports game or a full replay of a sports game. The entity helps capture the details of the competitors or the game or the teams that participated, the location of the game, and the start and end time of the game. For more information, see [SportsEvents - Modelling, Best Practices and Sample Feed](https://developers.google.com/actions/media/concepts/sports_events). For specifications and an example, see [SportsEvent specification table](https://developers.google.com/actions/media/reference/data-specification/events-specification#sportsevent_specification_table). |
| **Organization** | **Organization** is the `schema.org` representation for two types of assets: - A TV operator, also known as TV service provider, an organization that delivers a bundle of TV programming to subscribers. This asset is usually also the creator of the feed. - An organization that produces and distributes TV programming. For specifications and an example, see the [Organization specification table](https://developers.google.com/actions/media/reference/data-specification/live-tv/broadcastservice-specification#organization_specification_table). For more information, see [Live TV channel](https://developers.google.com/actions/media/concepts/live-tv-channel). |
| **BroadcastService** | **BroadcastService** is the `schema.org` representation of a channel that carries linear programming. For example, "ESPN," "AXN," and "ABC News Live" are famous television channels in the US. This core entity represents a television channel and links out to the Organization and TelevisionChannel entities. For specifications and an example, see [BroadcastService Specification table](https://developers.google.com/actions/media/reference/data-specification/live-tv/broadcastservice-specification#broadcastservice_specification_table). For more information, see [Live TV channel](https://developers.google.com/actions/media/concepts/live-tv-channel). |
| **CableOrSatelliteService** | **CableOrSatelliteService** is the `schema.org` representation of a regional cable, satellite, or internet TV service provided by a TV operator. It's generally associated with the lineup of channels, and it links to the TV operator, represented by the Organization entity. For example, the TV service provided by SlingTV or PlutoTV in the US can be represented by a **CableOrSatelliteService** entity. For specifications and an example, see the [CableOrSatelliteService specification table](https://developers.google.com/actions/media/reference/data-specification/live-tv/broadcastservice-specification#cableorsatelliteservice_specification_table). For more information, see [Live TV channel](https://developers.google.com/actions/media/concepts/live-tv-channel). |
| **TelevisionChannel** | **TelevisionChannel** identifies the channel by using a unique identifier, such as the channel number and the order in which it appears in the entire channel lineup of a given TV operator. For example, the television channel "ABC News Now" shows up as channel number 7 and in the 18th place in the lineup of SlingTV's US service. For specifications and an example, see the [TelevisionChannel specification table](https://developers.google.com/actions/media/reference/data-specification/live-tv/broadcastservice-specification#televisionchannel_specification_table). For more information, see [Live TV channel](https://developers.google.com/actions/media/concepts/live-tv-channel). |
| **BroadcastEvent** | **BroadcastEvent** is the `schema.org` representation of a time-slot of programming on a television channel, represented by a BroadcastService entity. For example, it might represent the 6 PM to 9 PM slot on Thursday on "24 Hour Free Movies" BroadcastService when the movie "X-Men" is broadcast. For more information, see [Live TV event](https://developers.google.com/actions/media/concepts/live-tv-event). For specifications and an example, see [Content markup properties of live TV events](https://developers.google.com/actions/media/reference/data-specification/live-tv/broadcastevent-specification). |
| **MusicPlaylist** | **MusicPlaylist** is the `schema.org` representation of a collection of music tracks in a playlist from supporting curated mixes and genre mixes. The provider must own all the playlists. That is, the lists aren't created by users. "Jazz mix" and "Workout mix" are examples of genre mixes. For specifications and an example, see [Content markup properties of music playlists](https://developers.google.com/actions/media/reference/data-specification/musicmixes-specification). |
| **MusicAlbum** | **MusicAlbum** is the `schema.org` representation of a collection of music tracks or songs recorded by a single artist or musical group. For example, "The Wall" is a famous Pink Floyd album, released in 1979. For specifications and an example, see [Content markup properties of artists, albums, and songs](https://developers.google.com/actions/media/reference/data-specification/artists-albums-songs-specification#musicalbum). |
| **MusicRecording** | **MusicRecording** is the `schema.org` representation of a music recording (track), usually a single song. For example, "Goodbye Blue Sky" is a track from "The Wall" **MusicAlbum** by Pink Floyd. For specifications and an example, see [Content markup properties of artists, albums, and songs](https://developers.google.com/actions/media/reference/data-specification/artists-albums-songs-specification#musicrecording). |
| **RadioBroadcastService** | **RadioBroadcastService** is the `schema.org` representation of a service that broadcasts radio content over the air or online. That is, the radio station. For specifications and an example, see [Content markup properties of radio stations](https://developers.google.com/actions/media/reference/data-specification/radiostations-specification#specification_table). |
| **PodcastSeries** | **PodcastSeries** is the `schema.org` representation of a podcast series, which is also called a podcast "show." For example, "This American Life" and "The Joe Rogan Experience" are famous podcast series. For specifications and an example, see [PodcastSeries specification chart](https://developers.google.com/actions/media/reference/data-specification/podcast-specification#podcastseries-spec). |
| **PodcastEpisode** | **PodcastEpisode** is the `schema.org` representation of an episode within a **PodcastSeries**. For example, "When to Leave" is a podcast episode of the podcast series "The American Life," which aired on March 3, 2023. For specifications and an example, see the [PodcastEpisode specification chart](https://developers.google.com/actions/media/reference/data-specification/podcast-specification#podcastepisode-spec). |

## Identify the entity types

After you understand the type of integration category and sub-category that your entity fall
into, go through the following table to understand the types of entities that
you need to provide in the feed.

> [!NOTE]
> **Note:** Not all entity types listed here are required. For example, if you're a Watch Actions provider, but you only deal with movies, then you only need to provide **Movie** entities.

| Integration category | Integration sub-category | Entity type |
|---|---|---|
| Watch Actions | **Video on demand** | One or more of **Movie** , **TVSeries** , **TVSeason** , or **TVEpisode** entities, depending on the contents of your catalog. (Standalone Video-on-demand **SportsEvent** feeds without **BroadcastEvent** entities are not supported.) |
| Watch Actions | **Live TV** | One or more of **Organization** , **BroadcastService** , **BroadcastEvent** , **TelevisionChannel** , **CableOrSatelliteService** , **Movie** , **TVSeries** , **TVSeason** , **TVEpisode** , or **SportsEvent** entities, depending on the contents of your catalog. |
| Watch Actions | **Video on demand and Live TV** | One or more of **Organization** , **BroadcastService** , **BroadcastEvent** , **TelevisionChannel** , **CableOrSatelliteService** , **Movie** , **TVSeries** , **TVSeason** , **TVEpisode** , or **SportsEvent** entities, depending on the contents of your catalog. |
| Listen Actions | **Music** | One or more of **MusicPlaylist** , **MusicGroup** , **MusicAlbum** , or **MusicRecording** entities, depending on the contents of your catalog. |
| Listen Actions | **Radio** | One or more of **RadioBroadcastService** entities. |
| Listen Actions | **Podcast** | One or more of **PodcastSeries** , **PodcastEpisode** entities, depending on the contents of your catalog. |

## Assistant for Operators integration

For providers interested in [Assistant for Operators](https://docs.partner.android.com/tv/build/search-and-assistant/assistant-for-operators) integration: since the service provider
renders the deep link instead of Google, one of the primary goals of ingesting
the media catalog is to improve Google Assistant recognition of the user intent.
Depending on the use case, you might require the following entity types:

| S.No. | Description | Entities required |
|---|---|---|
| Case 1 | Improve Google Assistant recall for TV program and Movies (TVM) entities | One or more of **Movie** , or **TVSeries**entities, depending on the contents of your catalog. > [!NOTE] > **Note:** The **TVSeason** , **TVEpisode** , and **SportsEvent**entities aren't required. |
| Case 2 | Improve Google Assistant recall for Live TV channels | One or more of **Organization** , **BroadcastService** , **TelevisionChannel** , **CableOrSatelliteService**entities, depending on the contents of your catalog. > [!NOTE] > **Note:** The **BroadcastEvent**entities aren't required. |
| Case 3 | Combinations of the preceding two cases | If you combine the above use-cases, then you must provide all of the applicable entity types in the corresponding "Entities required" column. |

Work with your Google contact to learn more about this before you proceed.