Full Specifications

    Full Specifications


    Article summary

    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
    · lang: optional unless overrideCanonicalValue=true

    Contains title of the content.OpenIngest does not expect attributes to be sent

    <title>Harry Potter and the Goblet of Fire</title>

    description

    1

    no

    · type: optional MIME type of the text· overrideCanonicalValue: optional; default value is false
    · lang: optional unless overrideCanonicalValue=true

    For movie,seriesMaster, or episode entityTypes, can use shortDescription,mediumDescription, and/or longDescription instead

    <description> Harry Potter description</description>

    shortDescription

    1

    yes

    Merlin has no character lengths but the consuming applications may truncate each of these descriptions

    <gmrss:shortDescription>Harry Potter</gmrss:shortDescription>

    mediumDescription

    1

    no

    <gmrss:mediumDescription>Harry Potter and the Goblet of Fire medium synopsis.</gmrss:mediumDescription>

    longDescription

    1

    yes

    <gmrss:longDescription>Hermione and Ron try to help Harry win the tri-wizard tournament.</gmrss:longDescription>

    pubDate

    1

    no

    <pubDate>1312416000000</pubDate>

    releaseYear

    1

    no

    Release year. Automatically populated from pubDate if not specified.

    <releaseYear>2018</releaseYear>

    dcterms:valid

    1

    yes

    Available and expiration date of the content. Can be used to express local time or universal time.

    <dcterms:valid>start=2002-10-13T09:00Z;end=2002-10-17T17:00Z;scheme=W3C-DTF</dcterms:valid>

    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:contentProviderName>MEDIASET</gmrss:contentProviderName>

    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:restriction type="REST:PRIVACY"><gmrss:usage>inclusive</gmrss:usage><gmrss:privacyIdentifier>subjectToCoppa</gmrss:privacyIdentifier></gmrss:restriction>

    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:distributor>Peacock</gmrss:distributor>

    gmrss:languageDetails

    1

    yes

    · intendedAudience: required;
    · title: optional; Describes program title language
    · description: optional; Program description language
    · originalAudio: optional; Language the audio was recorded in.

    Create a time marker with the provided offset in milliseconds from the beginning of the asset.

    <gmrss:languageDetails title="en-US" description="en-US" episodeTitle="en-US" originalAudio="en-GB" intendedAudience="en-US"/>

    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:entityType>SeriesMaster</gmrss:entityType>

    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.
    · namespace: optional, namespace where the id is unique – within Merlin this is concatenated together with seriesAssetId to form a guid such as "watchable:12345". This should be used if multiple ID spaces exist within the same provider to guarantee uniqueness.

    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:videoAssetId provider="NBC" namespace="SkyShowtime-en-US">GMO_1111</gmrss:videoAssetId>

    gmrss:programVariantId

    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.
    · namespace: optional, namespace where the id is unique – within Merlin this is concatenated together with seriesAssetId to form a guid such as "watchable:12345". This should be used if multiple ID spaces exist within the same provider to guarantee uniqueness.

    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:programVariantId provider="NBC" namespace="SkyShowtime-en-US">GTMV0000645117</gmrss:programVariantId>

    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:durableAppId>Peacock</gmrss:durableAppId>

    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:seriesTitle>The Office</gmrss:seriesTitle>

    gmrss:sportsSubtitle

    1

    no

    The sportsSubtitle of the content. Usually used for SportingEvent.

    <gmrss:sportsSubtitle>Eagles vs. Dallas</gmrss:sportsSubtitle>

    gmrss:seriesAssetId

    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.
    · namespace: optional, namespace where the id is unique – within Merlin this is concatenated together with seriesAssetId to form a guid such as "watchable:12345". This should be used if multiple ID spaces exist within the same provider to guarantee uniqueness.

    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:seriesAssetId namespace="SkyShowtime" provider="NBC">SM5678</gmrss:seriesAssetId>

    gmrss:entityReference

    unlimited

    no


    · provider: required, provider of the tag ID
    · entityType: required, required, entity type that this reference points to (example: SeriesMaster)
    · namespace: optional, namespace where the ID is unique
    · isPrimary: optional, only required when type=entityCollection. isPrimary=true should be set on the primary asset and will create a new entityCollection. isPrimary=false should go on any language variants.

    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:entityReference provider="NBC" entityType="EntityCollection">GTMV0000645117</gmrss:entityReference>

    gmrss:tagReference

    unlimited

    no

    · provider: required, provider of the tag ID· namespace: optional, namespace where the ID is unique
    · type: optional, type of the tag to create. Allowed values are ProviderEditorial,ProviderPlacement

    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:tagReference provider="GRACENOTE_VIDEO_DESCRIPTOR">GN164S651XQJ19N</gmrss:tagReference>

    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:brand>nbcentertainment</gmrss:brand>

    gmrss:episodeNumber

    1

    preferred

    Episode number for episode entity metadata.

    <gmrss:episodeNumber>1</gmrss:episodeNumber>

    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:seasonNumber>2</gmrss:seasonNumber>

    gmrss:externalAssetId

    1

    no

    Id to link to the appropriate in-app page. This id will be used for deeplink generation.

    <gmrss:externalAssetId>id123</gmrss:externalAssetId>

    gmrss:externalAssetId

    1

    yes

    Id to link to the appropriate in-app page. This id will be used for deeplink generation.

    <gmrss:externalAssetId>id123</gmrss:externalAssetId>

    gmrss:externalEntityId

    1

    yes

    Id to link to the appropriate in-app page. This id will be used for deeplink generation.

    <gmrss:externalEntityId>id123</gmrss:externalEntityId>

    gmrss:externalSeriesId

    1

    preferred

    Id to link to the appropriate in-app page. This id will be used for deeplink generation.

    <gmrss:externalSeriesId>id123</gmrss:externalSeriesId>

    gmrss:creditAssociation

    unlimited

    no

    · type: required; type of credit
    · partName: optional; part played
    · rank: optional; integer
    · cameo: optional; true/false

    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:creditAssociation type="Actor" partName="Shrek" ><gmrss:personReference provider="NBC" namespace="SkyShowtime-en-US">NBC_ID_MM</gmrss:personReference><gmrss:partReference provider="NBC" namespace="SkyShowtime-en-US">NBC_ID_SHREK</gmrss:partReference><gmrss:creditAssociation>

    gmrss:personReference

    unlimited

    no

    · provider: required; provider of the tag ID
    · type: required if personReference is NOT embedded within creditAssociation;
    · namespace: optional; namespace where the ID is unique
    · partName: optional;
    · rank: optional; int
    · cameo: optional; true/false

    Reference to a person. Use as element in creditAssociation, as standalone field will be deprecated.

    <gmrss:personReference provider="LIVE_EXTRA" type="Appearing">PERSON_ID</gmrss:personReference>

    gmrss:partReference

    unlimited

    no

    · provider: required; provider of the tag ID
    · type: optional;
    · namespace: optional; namespace where the ID is unique

    Reference to a part. Use as element in creditAssociation, as standalone field will be deprecated.

    <gmrss:creditAssociation type="Actor" partName="Shrek" ><gmrss:personReference provider="NBC" namespace="SkyShowtime-en-US">NBC_ID_MM</gmrss:personReference><gmrss:partReference provider="NBC" namespace="SkyShowtime-en-US">NBC_ID_SHREK</gmrss:partReference><gmrss:creditAssociation>

    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:subjectToCoppa>false</gmrss:subjectToCoppa>

    gmrss:ivod

    1

    no

    Whether this gmrss represents and IVOD asset or not

    <gmrss:ivod>true</gmrss:ivod>

    gmrss:listingStartTime

    1

    only if ivod

    The listingStartTime that this IVOD GMRSS is associated to

    <gmrss:listingStartTime>2021-04-20T00:00:00Z</gmrss:listingStartTime>

    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:stationReference provider="GRACENOTE">19145</gmrss:stationReference>

    gmrss:timeSlice

    unlimited

    no

    · start: required if absoluteStartTime is not provided; start in milliseconds
    · end: required if absoluteEndTime is not provided, end in milliseconds
    · absoluteStartTime: required if start and end are not provided, milliseconds format
    · absoluteEndTime: optional
    · type: required
    · title: optional

    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:timeSlice start="740" end="840" type="Clip" title="Weekend Update" />

    gmrss:timeMarker

    unlimited

    no

    · offset: required; offset in milliseconds from the beginning of the file
    · type: required
    · title: optional

    Create a time marker with the provided offset in milliseconds from the beginning of the asset.

    <gmrss:timeMarker offset="740" type="EndOfOpeningCredits" title="End of Credits" />

    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.
    · namespace: optional, namespace where the id is unique – within Merlin this is concatenated together with offerId to form a guid such as "watchable:12345". This should be used if multiple ID spaces exist within the same provider to guarantee uniqueness.

    This uniquely identifies the offer in the provider's Id space. It is used to support updates to existing Offers (and avoid dupes)

    <gmrss:offerId namespace="SkyShowtime" provider="NBC">OFFER1234</gmrss:offerId>

    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:offerType>SingleMovieBundle</gmrss:offerType>

    gmrss:price

    1

    yes

    Price in pennies (or smallest units of currency).

    <gmrss:price>999</gmrss:price>

    gmrss:currencyCode

    1

    yes

    Basic unit of currency.

    <gmrss:currencyCode>USD</gmrss:currencyCode>

    gmrss:purchaseCategory

    1

    yes

    Indicates the type of transaction, permanent buy vs rental.

    <gmrss:purchaseCategory>Buy</gmrss:purchaseCategory>

    gmrss:mediaAssociations

    1

    yes

    Contains a list of media associated with the offer. See gmrss:mediaAssociation and mediaAssociation table.

    <gmrss:mediaAssociations><gmrss:mediaAssociation><gmrss:role>FEATURE</gmrss:role><gmrss:videoAssetId provider="PROVIDER" namespace="namespace">761022</gmrss:videoAssetId> </gmrss:mediaAssociation> </gmrss:mediaAssociations>

    gmrss:mediaAssociation

    unlimited

    yes

    Media associated with the offer, contained within gmrss:mediaAssociations tag. See mediaAssociation table.

    <gmrss:mediaAssociations><gmrss:mediaAssociation><gmrss:role>FEATURE</gmrss:role><gmrss:videoAssetId provider="PROVIDER" namespace="namespace">761022</gmrss:videoAssetId> </gmrss:mediaAssociation> </gmrss:mediaAssociations>

    gmrss:videoQuality

    1

    yes

    Defaults to same value as asset, required if different prices are required for lower quality variants.

    <gmrss:videoQuality>HD</gmrss:videoQuality>

    gmrss:preOrder

    1

    no

    True if offer supports pre-order period before it goes live. Defaults to false.

    <gmrss:preOrder>true</gmrss:preOrder>

    gmrss:external

    1

    no

    Boolean that denotes whether the offer is internal or external. Default if field is not present is false (internal)

    <gmrss:external>true</gmrss:external>

    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:goLiveDate></gmrss:goLiveDate>

    gmrss:lowestPrice

    1

    no

    Lowest price of the offer in pennies. May not be set if price is set.

    <gmrss:lowestPrice>999</gmrss:lowestPrice>

    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.
    · reason: optional; Values: add, update, fileUpdate, programOnly. "update" is a forced update, item cannot be sparse. "fileUpdate" used for updating the mediaFile only. "programOnly" is for a program only metadata update (will not update video content)

    Specifies the status of a media object – whether it's still active or it has been blocked/deleted.

    <media:status reason="add" state="active"/>

    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.
    · type: required; is the standard MIME type of the object. It is required and can be defaulted to HTML.
    · gmrss:videoQuality: required; SD/HD/UHD
    · gmrss:colorDepth: optional; the video color type
    · duration: optional; is the number of seconds the media object plays.
    · framerate: optional; the number of frames per second for the media object
    · bitrate: optional; the kilobits per second rate of media.
    · lang: deprecated, use languageDetails; the primary language encapsulated in the media object. Language codes possible are detailed in RFC 3066.
    · gmrss:expression: optional; Values are full or nonstop. determines if the object is a sample, the full version of the object, or a continuous stream (sample, full, or nonstop). Default value is "full". It is a required attribute. Nonstop: continuous stream, cannot rewind or start from the beginning (resume point is now) Full: full version of the object, can rewind or start from the beginning

    Allows grouping of elements that are effectively the same content, yet different representations. See content table. Contained within media:group tag.

    <media:content duration="5047" lang="en-US" gmrss:videoQuality="HD" gmrss:framerate="23.976" gmrss:sap="false" gmrss:dvs="true" gmrss:subtitle="true" gmrss:cc="true" type="MPEG-DASH" url=[https://$%7bUS_VOD_PROD%7d/pub/global/xYh/EIw/SKYSHOWTIME_1611852294372.3757_01/cmaf/mpeg_cenc/master_cmaf.mpd]https://${US_VOD_PROD}/pub/global/xYh/EIw/SKYSHOWTIME_1611852294372.3757_01/cmaf/mpeg_cenc/master_cmaf.mpd> ... </media:content>

    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:rating scheme="urn:kijkwijzer">5</media:rating><media:rating scheme="urn:sky:advisory" subRatings = "private:VIOLENCE,private:FEAR,private:SEX,private:DISCRIMINATION,private:DRUGS_ALCOHOL,private:COARSE_LANG">N/A</media:rating>

    media:thumbnail

    unlimited

    no

    · url: required; url of the image, should be reachable on general internet
    · width: required; width of the image
    · height: required; height of the image
    · format: required; format of the image, only jpeg is supported
    · type: required; type designation of the image, such as 'Poster Art'
    · provider: optional; defaults to THIRD_PARTY. Defines the feed provider type of the Image in the Merlin ingest system. This is used by Myriad for image priority and selection.
    · external: optional; defaults to false. If false, Myriad will download the image once a month and store it locally for resizing. If true, Myriad will not download the image, and the source image will be retrieved when the image TTL is reached on the Comcast CDN (approximately 30 minutes). This allows an image update to the same URL to take effective as frequently as every 30 minutes but the URL must remain available and be able to handle traffic load from Myriad.
    · useUrlHash: optional; defaults to false. Is used to tell imageManagementWebService to hash the url when true. This is needed for urls like https://image.xumo.com/v1/assets/asset/XM008PMCJE4NJN/1280x720.jpg where the path is unique but the file name is not.

    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:thumbnail height="1080" url=http://fakeimageurl.com/image.jpg width="1920" type="Provider Poster Art" format="jpeg"/>

    media:keywords

    1

    no

    Relevant keywords/tags describing the media.

    <media:keywords></media:keywords>

    media:copyright

    1

    no

    Copyright line for video asset.

    <media:copyright>2012 A&E Television Networks</media:copyright>

    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:restriction type="REST:RIGHTSTERR"><gmrss:region>...</gmrss:region><gmrss:usage>...</gmrss:usage></gmrss:restriction>

    gmrss:segment

    1

    yes

    <gmrss:segment><gmrss:segmentCode>SKYSHOWTIME</gmrss:segmentCode><gmrss:accessRole>base_d2c</gmrss:accessRole></gmrss:segment>

    gmrss:proposition

    1

    yes

    <gmrss:proposition><gmrss:territory>PL</gmrss:territory><gmrss:serviceProviderCode>...</gmrss:serviceProviderCode><gmrss:propositionCode>...</gmrss:propositionCode></gmrss:proposition>

    gmrss:windowType

    1

    yes

    <gmrss:windowType>ARCHIVE</gmrss:windowType>

    gmrss:windowMode

    1

    yes

    <gmrss:windowMode>SVOD</gmrss:windowMode>

    gmrss:valid

    1

    yes

    <ns3:valid>start=2022-01-01T00:00Z;end=2035-12-31T00:00Z;scheme=W3C-DTF</ns3:valid>

    gmrss:downloadable

    1

    no

    defaults to false if not provided

    <gmrss:downloadable>true</gmrss:downloadable>

    gmrss:streamable

    1

    no

    defaults to true if not provided

    <gmrss:streamable>false</gmrss:streamable>


    Was this article helpful?

    What's Next