- Print
Full Specifications
- Print
Feed Validator
Leverage the Feed Validator to validate your XML files, ensuring they are free from errors.
Full Schema
Field | Max Occurs | Required | Attributes | Description | Example |
---|---|---|---|---|---|
title | 1 | yes | · overrideCanonicalValue: optional; default value is false | Contains title of the content.OpenIngest does not expect attributes to be sent |
|
description | 1 | no | · type: optional MIME type of the text· overrideCanonicalValue: optional; default value is false | For movie,seriesMaster, or episode entityTypes, can use shortDescription,mediumDescription, and/or longDescription instead |
|
shortDescription | 1 | yes | Merlin has no character lengths but the consuming applications may truncate each of these descriptions |
| |
mediumDescription | 1 | no |
| ||
longDescription | 1 | yes |
| ||
pubDate | 1 | no |
| ||
releaseYear | 1 | no | Release year. Automatically populated from pubDate if not specified. |
| |
dcterms:valid | 1 | yes | Available and expiration date of the content. Can be used to express local time or universal time. |
| |
gmrss:contentRights | unlimited | yes | Represents the locations and platforms that a piece of content is available in and also the necessary entitlement(s) to view the content. See ContentRights table below. | ||
gmrss:contentProviderName | 1 | preferred | The name of the content provider |
| |
gmrss:distributionRights | unlimited | yes | Information about a set of content which may be made available via a Distributor that is supported by our platform. See DistributionRights table below. | ||
gmrss:restriction | unlimited | no | · type: required; type of restriction. Types include "REST:MANUFACTURER" "REST:CUSGROUP" "REST:RIGHTSTERR" "REST:PLAYTERR" "REST:QUALITY" "REST:DEVICE" "REST:CONN" "REST:AREA" "REST:CLIENTCAPABILITY" "REST:PLATFORMCAPABILITY" "REST:PRIVACY". A logical type for a Restriction, based on the what it is targetted at. | Restrictions which constrain this piece of content. Field privacyIdentifier is required when type="REST:PRIVACY". |
|
gmrss:distributor | 1 | yes | Distributor of the video asset. An example from traditional ADI VOD would be distributor=indemand and brand=NBC Universal. An example from an OTT provider would be distributor=Netflix and brand=NBC Universal. This will be saved as a Merlin ProgramMediaAssociation.companies entry with role=Distributor. |
| |
gmrss:languageDetails | 1 | yes | · intendedAudience: required; | Create a time marker with the provided offset in milliseconds from the beginning of the asset. |
|
entityType | 1 | yes | Type of video. Legal types are Merlin Program types: Movie, Episode, SeriesMaster, SportingEvent, Other, Preview, Extra, Offer, Person, TvSeason. If the entityType=SeriesMaster,Offer,Person,or TVSeason the element should not have any video content (no videoAssetId or media:group elements). Other items in the GMRSS feed can reference this item using the gmrss:entityReference element. |
| |
gmrss:videoAssetId | 1 | yes | · provider: required, provider of the id and id namespace. Consult the Merlin team to make sure the provider specified is configured for OpenIngest. | Provider ID of the video asset. This becomes the seed ID of the Merlin Program that represents this video asset. There should be at most one videoAssetId. If videoAssetId is defined, seriesAssetId should not be defined. |
|
gmrss:programVariantId | 1 | yes |
| used to create or update programVariant associated with the current item. if cannonicalOverride it set, program fields such as title, episodeTitle, description will be copied to programVariant.Namespace of programVariant is language specific |
|
gmrss:durableAppId | 1 | yes | Our app's X1 user-friendly app identifier, should represent the specific app where this content is intended to be played. Identifier of the OTT app the content is contained in. It is required for X1 integration. |
| |
gmrss:seriesTitle | 1 | yes | Contains the series title of the content. This will become the title of the Merlin Program for Episodes, if it is not matched to some other canonical Program metadata. The episode title can be set using the title field. |
| |
gmrss:sportsSubtitle | 1 | no | The sportsSubtitle of the content. Usually used for SportingEvent. |
| |
gmrss:seriesAssetId | 1 | yes |
| ID of the SeriesMaster this item represents, so that Episodes in that series can be connected to it. Other items in the GMRSS feed can reference this item using the gmrss:entityReference element. |
|
gmrss:entityReference | unlimited | no |
| Reference to an entity (e.g. Movie, Episode, TvSeason, SeriesMaster). There can be many entity references per one item. The value of the entity reference is an entity ID in a specific namespace. The entityReference field can be used to link an Episode to a SeriesMaster. |
|
gmrss:tagReference | unlimited | no | · provider: required, provider of the tag ID· namespace: optional, namespace where the ID is unique | Reference to a tag. There can be many tag references per one item. The value of the tag reference is a tag ID in a specific namespace. The tagReference field can be used to create a TagAssociation. If an optional attribute type is provided, also the referred tag will be created if it does not exist. The attribute will be only effective if the ingesting partner has the parameter createTags set to true. |
|
gmrss:brand | 1 | yes | Drives the brand logo selectionBrand of the video asset. An example from traditional ADI VOD would be distributor=indemand and brand=NBC Universal. An example from an OTT provider would be distributor=Netflix and brand=NBC Universal. This will be saved as a Merlin ProgramMediaAssociation.companies entry with role=Provider.Also supports "merlin:" instead of Brand name. |
| |
gmrss:episodeNumber | 1 | preferred | Episode number for episode entity metadata. |
| |
gmrss:seasonNumber | 1 | preferred | · seedTVSeason: optional; defaults to false. Will create a TV Season object if set to true. | Season number for episode season metadata. |
|
gmrss:externalAssetId | 1 | no | Id to link to the appropriate in-app page. This id will be used for deeplink generation. |
| |
gmrss:externalAssetId | 1 | yes | Id to link to the appropriate in-app page. This id will be used for deeplink generation. |
| |
gmrss:externalEntityId | 1 | yes | Id to link to the appropriate in-app page. This id will be used for deeplink generation. |
| |
gmrss:externalSeriesId | 1 | preferred | Id to link to the appropriate in-app page. This id will be used for deeplink generation. |
| |
gmrss:creditAssociation | unlimited | no | · type: required; type of credit | Used to create persons (both people and characters) within Merlin and relate those persons to a program through a new credit. For credit types of 'Actor' a partReference field is also required to link the actor-person to the character-person. |
|
gmrss:personReference | unlimited | no | · provider: required; provider of the tag ID | Reference to a person. Use as element in creditAssociation, as standalone field will be deprecated. |
|
gmrss:partReference | unlimited | no | · provider: required; provider of the tag ID | Reference to a part. Use as element in creditAssociation, as standalone field will be deprecated. |
|
gmrss:subjectToCoppa | 1 | no | Deprecated. Use gmrss:restriction instead. A boolean that indicates whether COPPA - Children's Online Privacy Protection Act - rules should be obeyed. This impacts the amount of data that should be sent to the DAI platform during playback for Ad selection. When this boolean is true, it basically means that the intended audience for the program is children, therefore additional COPPA privacy rules should be enforced. Possible value could be "true" or "false". |
| |
gmrss:ivod | 1 | no | Whether this gmrss represents and IVOD asset or not |
| |
gmrss:listingStartTime | 1 | only if ivod | The listingStartTime that this IVOD GMRSS is associated to |
| |
gmrss:stationReference | 1 | only if ivod | · provider: required, provider of the station ID | A reference to a station using provider and provider's native id |
|
gmrss:timeSlice | unlimited | no | · start: required if absoluteStartTime is not provided; start in milliseconds | Create a time slice with the provided interval with start and end offsets in milliseconds from the beginning of the asset. For livod time slices, absolute time instead of offset must be provided. |
|
gmrss:timeMarker | unlimited | no | · offset: required; offset in milliseconds from the beginning of the file | Create a time marker with the provided offset in milliseconds from the beginning of the asset. |
|
gmrss:offerId | 1 | yes | · provider: required, provider of the id and id namespace. Consult the Merlin team to make sure the provider specified is configured for OpenIngest. | This uniquely identifies the offer in the provider's Id space. It is used to support updates to existing Offers (and avoid dupes) |
|
gmrss:offerType | 1 | yes | SingleMovieBundle - Used for Movies or Episodes with a single "Feature" asset. Extras may optionally be included. Bundle - Used for collections of multiple assets. Extras may optionally be included. |
| |
gmrss:price | 1 | yes | Price in pennies (or smallest units of currency). |
| |
gmrss:currencyCode | 1 | yes | Basic unit of currency. |
| |
gmrss:purchaseCategory | 1 | yes | Indicates the type of transaction, permanent buy vs rental. |
| |
gmrss:mediaAssociations | 1 | yes | Contains a list of media associated with the offer. See gmrss:mediaAssociation and mediaAssociation table. |
| |
gmrss:mediaAssociation | unlimited | yes | Media associated with the offer, contained within gmrss:mediaAssociations tag. See mediaAssociation table. |
| |
gmrss:videoQuality | 1 | yes | Defaults to same value as asset, required if different prices are required for lower quality variants. |
| |
gmrss:preOrder | 1 | no | True if offer supports pre-order period before it goes live. Defaults to false. |
| |
gmrss:external | 1 | no | Boolean that denotes whether the offer is internal or external. Default if field is not present is false (internal) |
| |
gmrss:goLiveDate | 1 | no | Date format. The timestamp after which an Offer should no longer be presented to customers as a "pre-order". Not required at pre-order creation, can be sent later as an update. |
| |
gmrss:lowestPrice | 1 | no | Lowest price of the offer in pennies. May not be set if price is set. |
| |
media:status | 1 | yes | · state: required; Values are "inactive", "active", "deleted". "active" means a media object is active in the system, "deleted" means a media object has been deleted by the publisher, "inactive" means that the media should be unapproved. Deleted and inactive can be sparse updates, but inactive must be a full object on create. | Specifies the status of a media object – whether it's still active or it has been blocked/deleted. |
|
media:group | 1 | yes | Contains media:content element(s). See media:content and Content table below for details. | ||
media:content | unlimited | yes | · url: required when type!=APP or externalAssetIds are supplied; should specify the direct URL to the media object. | Allows grouping of elements that are effectively the same content, yet different representations. See content table. Contained within media:group tag. |
|
media:rating | unlimited | preferred | · scheme: required; example: urn:mpaa· subRatings: optional; comma separated list of subRatings | This allows the permissible audience to be declared. If this element is not included, it assumes that no restrictions are necessary (suitable for all ages).Schemes must be preconfigured in Merlin |
|
media:thumbnail | unlimited | no | · url: required; url of the image, should be reachable on general internet | Images for the video or Program the video represents. Note that any size is permissible, but sizes should align with X1 supported sizes otherwise invalid sized images may be ignored. The image URL must be internet accessible so that the X1 image resizing service, Myriad, can retrieve it and store it to the Comcast CDN. |
|
media:keywords | 1 | no | Relevant keywords/tags describing the media. |
| |
media:copyright | 1 | no | Copyright line for video asset. |
|
Content Rights
Field | Max Occurs | Required | Attributes | Description | Example |
---|---|---|---|---|---|
gmrss:restriction | unlimited | yes | · type: required | Space separated list of restrictions, can be used for country or platformCapability restrictions in the gmrss. Types include REST:RIGHTSTERR, DEVICE and PLATFORMCAPABILITY. |
|
gmrss:segment | 1 | yes |
| ||
gmrss:proposition | 1 | yes |
| ||
gmrss:windowType | 1 | yes |
| ||
gmrss:windowMode | 1 | yes |
| ||
gmrss:valid | 1 | yes |
| ||
gmrss:downloadable | 1 | no | defaults to false if not provided |
| |
gmrss:streamable | 1 | no | defaults to true if not provided |
|