Introduction

Overview

This document specifies the package format for delivering season metadata and an episode in separate XML deliveries.

An .itmsp package is a directory that contains the data necessary to deliver a video: an individual video asset and the metadata that describes it and defines the season that it should attach to. Each package represents a single television video within the Apple TV app.

For questions regarding other kinds of content, such as audio or film, contact your Apple Technical Representative.

Changes Made in This Release

Date/Version

Changes Made

September 22, 2025 - Version 5.3.10

Clarified information about the TV episode profile. Updated TV advisories for the us-tv system.

For a complete history of changes, see Previous Spec Revisions.

Delivery & Formatting Guidelines

Package Format

All delivered metadata and asset files must be delivered in the .itmsp package format.

An .itmsp package is a directory named vendor_identifier.itmsp containing:

  • an XML file named metadata.xml that describes the delivered content using the structure documented in this specification

  • digitally encoded source materials (music, videos, digital booklets, closed captioning, and so on)

Send your content to Apple in the package format, with one directory for each video. For example, the first episode of Grey’s Anatomy might have a directory named “ABC_GREYSANATOMY_101_PRORES.itmsp” and contain the following files:

  • metadata.xml (the xml specific to only this episode)

  • ABC_GREYSANATOMY_101_PRORES.mov (the video file for this episode)

  • captions.scc

The name for the package directory is required to be the same as the vendor identifier used in the metadata file and should follow the format vendor_identifier.itmsp. The vendor identifier used in the package name must match the <vendor_id> provided in the accompanying XML file. The metadata XML file must be immediately (that is, at the top level) within the package directory. Vendor identifiers may only contain alphanumeric characters and underscores ("_") and are case-sensitive. Packages delivered with identifiers containing other characters will be rejected.

Schema Versioning

A schema is used to validate the XML document you send in an .itmsp package. The version of the schema consists of two numbers: a major number for the schema and a minor number to track changes to the that version of the schema. The schema version number is expressed as major.minor, for example 5.2. The revisions of the specifications are based on the schema version. Each time a specification is released for a specific schema version, the release is tracked using an additional number. The specification version number is expressed as major.minor.revision, for example 5.2.8. When specifying the version attribute in the <package> tag, match the schema version, not the specification revision. For example, for the revision of the 5.2.8 spec, 5.2 is the schema version and 5.2.8 is the specification revision (so the version attribute value is 5.2, not 5.2.8):

<package xmlns="http://apple.com/itunes/importer" version="tv5.2">

Metadata Details

Character Encoding

All metadata files must use UTF-8 Unicode character encoding. UTF-8 efficiently encodes non-Roman characters and helps to ensure that metadata displayed in the store is the same as was intended by the repertoire owner. Your metadata file should not contain a byte-order mark (BOM) as it is not necessary for UTF-8 encoded data files nor is it supported by Apple for transactional TV at this time. Incorrectly encoded metadata files or files that include a BOM will cause delays or may prevent your content from importing.

Note that simply including encoding="UTF-8" in your XML declaration is not sufficient. The file itself must also be correctly encoded for accented characters and punctuation to appear correctly in the Apple TV app.

Checksums

All content files delivered must include an industry-standard MD5 checksum, a measure that helps to guarantee that the asset files received by Apple are correct and complete. Once received, the MD5 checksum contained in the metadata file (one for each asset file provided) is compared against the actual file received. If any differences are detected, the asset file and the entire corresponding package are rejected. See Helpful Tools for tools that can generate MD5 checksums for your content.

XML Formatting

There should be no null data or empty tags in the XML. The XML must be formatted to use line breaks and indentations as demonstrated in the examples included in this document. xmllint is a Unix command line tool that may be helpful to ensure that the provided XML is correctly formatted. Read the Schema Validation Guide for more information.

Metadata Updates

If product offerings change at any point after initial delivery, an update can be sent using Transporter. The newly sent package is compared against the current offering and changes are automatically applied. A metadata-only update delivers the product information, but without including the assets. After a successful, initial upload of metadata and assets, you can make changes to the metadata by delivering a metadata-only update. You do not need to include any asset files with metadata-only deliveries and you can omit the <assets> block from the metadata.xml file.

If asset files are provided and properly referenced in the metadata, then the corresponding checksums will be compared to the checksums of the assets currently on file, and if any checksums are different, the assets will be updated as necessary. If the checksums are unchanged, then the import package (.itmsp) does not need to contain the asset files, even if they are listed in the metadata, because those asset files will be ignored.

Send an update when you need to:

  • Change the metadata. This update includes only the metadata tags; you do not need to include any assets. Metadata-only updates do not need to include the assets block (<assets>).

  • Replace one or more assets. This update should include the metadata XML with the assets block included, as well as the assets to be replaced. When delivering updated source video, keep in mind that the duration of the source video must match the duration of the closed caption file (if delivered). If the duration of the source video has changed, you must also deliver an update of the closed caption file, with its cue timing and overall duration changed accordingly to properly sync to the source video. Based on what has been delivered previously, Apple treats an asset as either an initial delivery or a replacement.

  • Remove one or more assets. For each asset you want to remove, use the attribute remove="true":

<data_file role="source" remove="true">

Only the following fields will be updated via a package redelivery (fields that can be updated are noted in the annotations):

  • <sales_start_date> and <cleared_for_sale> can be added or modified. <territory> can only be added (you can’t modify a territory; to remove a territory, set <cleared_for_sale> to false for that territory.) <release_date> can be modified.

  • <title>, <description>, and <studio_release_title> can be modified unless Apple has reviewed and confirmed the quality of the metadata.

  • <container_position> can be modified.

  • Ratings can be added or changed but not removed through updates. Should ratings be mistakenly added, contact your Apple Technical Representative for correction.

  • Advisories can be added or changed through updates. All advisory updates are additive only and will not modify the currently active advisories in the Store. Should advisories be mistakenly added, contact your Apple Technical Representative for correction.

  • Copyright (<copyright_cline> tag) can be added or modified.

  • Video subtype (<subtype> tag) can be modified.

Important: Any changes should be considered “effective immediately” and cannot be made at a guaranteed date or time.

Assets and Data Files

When you deliver TV content, you specify and deliver the assets, such as the video of the full episode and its closed captions. The full video asset is made up of one or more data files (delivered in a <data_file> block) and each data file plays a specific role for the asset. For TV content, currently two roles can be specified: the role called “source” for the full asset and the role called “captions” for a closed captions file. Specifying the roles of the data files is required.

Important: You must run the PSE (photosensitive epilepsy) test on your content prior to delivery.

The table below outlines the expected video asset, along with the required and expected data files. See Apple Video and Audio Asset Guide.

Asset

Type: full

The full asset contains the episode video product. Only one of these can be specified per delivery.

Data File

Description

Role: source

The full source data file contains the episode video.

Only one of these can be specified.

See Apple Video and Audio Asset Guide for details.

Role: captions

A single caption file (required for US deliveries).

Closed captioning for the full asset.

Role: audio.visually_impaired

This data file is optional and contains an alternate audio track for Audio Description (AD). The audio provides a description of visual elements that are important in understanding what is occurring at the time, as well as the plot.

Example: <data_file role="audio.visually_impaired">

You must include a locale, and the locale of the audio description must match the locale of a corresponding source audio file.

Regional Requirements

Certain countries have specific requirements. Details are listed below.

United States

Closed captions are required for all US episode deliveries, including promotional and bonus content.

The only episodes that are exempt from closed captions are:

  • TV episodes that are not in English and have never been broadcast in the United States don’t need captions. However, these TV episodes will need burned-in English subtitles. Use the reason code NO_CC_SDH_FOREIGN_LANGUAGE_ENGLISH_SUBS for these episodes.

France, Germany, and United Kingdom

To make your content available in France, Germany, and United Kingdom, you must provide the country of origin (<countries_of_origin>), production country (<production_countries>), and the original spoken locale (<original_spoken_locale>) for your transactional TV content. These fields are required for TV episodes and TV seasons. Bonus episodes are included.

TV Season Profile

TV Season Overview

Before you can deliver episodes, you need to set up the season, which you can do by delivering the season metadata using XML, as shown in the example below, or in iTunes Connect. Before delivering a season via XML, make sure to set up the series in iTunes Connect. You use the <show_apple_id> tag to deliver the Apple ID of the series, which is automatically created when you set up the series. To get the Apple ID of your series, you can do a metadata lookup on a previous season in that series.

For example, Grey’s Anatomy is the series set up in iTunes Connect. The season metadata example delivers the metadata for season 4.

TV Season Metadata Example

The example below shows how to deliver a season of the series, Grey’s Anatomy.

<?xml version="1.0" encoding="UTF-8"?><package xmlns="http://apple.com/itunes/importer" version="tv5.3"> <provider>abc</provider> <language>en-US</language> <season> <container_id>ABC_GREYSANATOMY_SEASON_004</container_id> <show_apple_id>1234567</show_apple_id> <type>standard</type> <season_display_number>4</season_display_number> <copyright_cline>2007 ABC Studios. All Rights Reserved.</copyright_cline> <eidr>10.5240/23B3-9CA1-888D-9266-54C9-5</eidr> <countries_of_origin> <country primary="true">US</country> <country>CA</country> </countries_of_origin> <production_countries> <country primary="true">US</country> </production_countries> <original_spoken_locale>en-US</original_spoken_locale> <title>Grey's Anatomy, Season 4</title> <ratings> <rating system="us-tv" code="TV-14"/> <advisory system="us-cable" code="AL"/> <rating system="ca-tv" code="14+"/> </ratings> <regions> <region> <territory>US</territory> <network>ABC</network> <season_type>library</season_type> <description>The fourth season continues the story of a group of surgeons and their mentors in the fictional Seattle Grace Hospital, describing their professional and personal lives.</description> <total_expected_episodes>17</total_expected_episodes> <!-- bonus episode count is optional--> <total_expected_bonus_episodes>2</total_expected_bonus_episodes> <total_launch_episodes>19</total_launch_episodes> <broadcast_schedule> <premiere_date>01-24-2012</premiere_date> </broadcast_schedule> </region> <region> <territory>AU</territory> <network>ABC</network> <season_type>currently_airing</season_type> <description>The fourth season continues the story of a group of surgeons and their mentors in the fictional Seattle Grace Hospital, describing their professional and personal lives.</description> <total_expected_episodes>17</total_expected_episodes> <!-- bonus episode count is optional--> <total_expected_bonus_episodes>2</total_expected_bonus_episodes> <total_launch_episodes>1</total_launch_episodes> <broadcast_schedule> <premiere_date>09-26-2016</premiere_date> <!-- finale date applies only to currently-airing seasons --> <finale_date>03-24-2017</finale_date> <!-- weekdays apply only to currently-airing seasons --> <weekdays> <weekday>Monday</weekday> </weekdays> <!-- air times apply only to currently-airing seasons --> <times> <time zone="central">20:00</time> <time zone="eastern">21:00</time> </times> </broadcast_schedule> </region> </regions> <assets> <asset type="artwork"> <data_file> <locale name="en-US"/> <file_name>09736156444.lsr</file_name> <size>6591649</size> <checksum type="md5">43e7dddfe4b8ab433ede429df86cabb2</checksum> </data_file> </asset> <asset type="artwork_2:3"> <data_file> <locale name="en-US"/> <file_name>art2_3.jpg</file_name> <size>3540774</size> <checksum type="md5">eee9bbfad9657d04dd42bd60471fc3be</checksum> </data_file> </asset> <asset type="artwork_16:9"> <data_file> <locale name="en"/> <file_name>ABC_GREYSANATOMY_SEASON_16_9.lsr</file_name> <size>8743649</size> <checksum type="md5">ed356adfe29df86ca4b83ede4bb2ab43</checksum> </data_file> </asset> <asset type="full_color_content_logo"> <data_file> <locale name="en"/> <file_name>ABC_GREYSANATOMY_SEASON_fullcolor_logo.png</file_name> <size>65748</size> <checksum type="md5">9df86c4bb2aba4b83edeed356adfe243</checksum> </data_file> </asset> <asset type="backdrop_wide"> <data_file> <file_name>ABC_GREYSANATOMY_SEASON_backdrop_wide.png</file_name> <size>88748</size> <checksum type="md5">b26c4b3edeedaba4b89df8356adfe243</checksum> </data_file> </asset> </assets> </season></package>

TV Season Metadata Annotated

XML Declaration (required)

<?xml version="1.0" encoding="UTF-8"?>

The character encoding of your document must be defined.

Apple accepts only UTF-8 encoding as it efficiently encodes non-Roman characters.

Important: The metadata.xml file must not contain a byte-order mark (BOM).

XPath

<package xmlns="http://apple.com/itunes/importer" version="tv5.3">

Package Container (required)

The xmlns (XML namespace) attribute is required and is needed for schema validation. It is used to declare the namespace (and associated schema) to which the tags in the XML are expected to conform. The namespace must be: http://apple.com/itunes/importer

The version attribute is required. Packages created to this specification must indicate version="tv5.3". The “tv” portion of the attribute must be in lowercase letters.

XPath

<provider>abc</provider>

Provider (required, Apple supplied)

This value should be the transactional TV provider shortname given for partner identification. The value should match the provider name used in Transporter (the value that is after -s in the Transporter command). The value supplied with the <provider> tag is case-sensitive. For example, if the provider shortname is abc, the value in the <provider> tag must be abc; not ABC. Note that it is the value you pass as an argument to Transporter, not the value in the XML, that determines the account you are delivering to. Contact your Apple Technical Representative for this value.

Example:

  • OneLittleIndian

  • Minimum length: 1 character

XPath

<language>en-US</language>

Language (required)

The primary language of the metadata for this package. Fields such as title and description are expected to appear in this language. When specifying languages, you can use any language as long as it is a valid BCP 47 code that consists of the language code, optional region, and optional script subtags as appropriate (for example, script is not relevant for audio). Note that while any valid language code is accepted, the Apple TV app displays content only in a limited set of languages. The table in Language Codes shows the languages available for the Storefront.

As a best practice when specifying a language, use the region subtag (for example, the US of en-US) only when it conveys helpful information, such as spelling variations between countries. For example, there is generally not a need to distinguish between Japanese as used in one country or region versus another, so you should use only the language code subtag (ja) instead of the language code and region subtags (ja-JP). In cases where specifying a region is appropriate, use the hyphen character to combine a language subtag with a region subtag. This identifies both the language and the specific location where the language is used. For English with American spelling, use en-US; for English with British spelling, use en-GB.

The language codes are formatted according to the best practices recommended by the Internet Engineering Task Force (IETF) in a group of documents known collectively as BCP 47, and in particular, RFC 5646 (https://datatracker.ietf.org/doc/html/rfc5646), which is part of BCP 47. An overview of these best practices is provided here: https://www.w3.org/International/articles/language-tags/.

For more information on the ISO 639-1 standard, refer to https://www.loc.gov/standards/iso639-2/php/English_list.php.

XPath

<season>

Season (required)

Begins the season block. Only one <season> tag can be defined in an XML delivery.

XPath

<container_id>ABC_GREYSANATOMY_SEASON_004</container_id>

Container ID (required; 1-100 characters; see Restrictions)

The container ID is defined by the provider as the permanent identifier for a specific season of a series. The metadata being delivered in the XML pertains to the season in the <container_id> tag. If the season does not exist in the Apple TV app when you deliver the XML, a new season is created. If the season already exists, the metadata in the XML delivery is updated with the information.

If you do not have an internal naming convention, use this format: PROVIDER_SERIES_SEASON_001.

In this example, "ABC_GREYSANATOMY_SEASON_004" is the container ID, which references the fourth season of the series.

Two seasons can’t have the same container ID, and a container ID, once set, can’t be changed. The container ID is also used for sales reporting.

Restrictions: The container ID can only contain alphanumeric characters and underscore marks; it cannot contain spaces, dashes, ampersands, other punctuation, or symbols. The container ID is case-sensitive.

XPath

<show_apple_id>1234567</show_apple_id>

Show Apple Identifier (required when season first delivered)

The identifier of the series (also called a show) for the season you are delivering. The globally-unique identifier assigned by Apple to every series that is set up. You set up the series in iTunes Connect. To get the Apple ID of your series, you can do a metadata lookup on a previous season in that series.

XPath

<type>standard</type>

Season Subtype (optional, can be updated)

You can specify an appropriate subtype for a season of a series using one of these valid season subtypes:

  • standard

  • compilation

  • boxset

  • miniseries

  • tvmovie

  • special

See TV Data Standards and Style Guide for descriptions and examples of each of these TV season subtypes.

Note: This season subtype is different from the season type described in the <season_type> section below.

XPath

<season_display_number>4</season_display_number>

Season Display Number (optional; can be updated)

The number of the season as it should be displayed on the Apple TV app. The season display number is optional, but if you provide a season display number, it must be a positive whole number and expressed as a numeral. The number does not need to be unique within the season. This number will be visible to the customer.

In this example, this is the fourth season of the show, so the <season_display_number> is 4.

XPath

<copyright_cline>2007 ABC Studios. All Rights Reserved.</copyright_cline>

Copyright (required; 1-1000 characters, can be updated)

A specific copyright for this season. The format required is four-digit year followed by owner. The © symbol will automatically be added and should not be included in the data.

In this example, “2007 ABC Studios. All Rights Reserved.” is the copyright and is seen on the Apple TV app as “©2007 ABC Studios. All Rights Reserved.”

XPath

<eidr>10.5240/CFC2-B507-CE22-B3D4-F32F-2</eidr>

EIDR (optional)

The EIDR (Entertainment Identifier Registry) is a universal, unique identifier system for movie and television assets. Any level of EIDR is accepted in this field, so long it is in valid format. For more information, see https://www.eidr.org/about-us/.

The format of the EIDR identifier is 10.5240/XXXX-XXXX-XXXX-XXXX-XXXX-C, where:

  • 10.5240 represents the standard prefix of an EIDR value

  • X represents a hexadecimal digit

  • C represents the check character

XPath

<countries_of_origin>

 <country primary="true">US</country>

 <country>CA</country>

</countries_of_origin>

Country or Region of Origin (required, ISO-3166-1 country code)

Note: In this annotation description, use of the term “country” may refer to a country or region.

The ISO 3166-1 alpha 2 code of the country (or countries) where the content originates from, for example: the country where the season was primarily produced, where the main authors and workers reside, where the main producer is established, and so on. Such determination must be made in accordance with applicable law. You must specify at least one country of origin and that country should be the primary country of origin.

You can supply additional countries as needed to associate all the countries involved in developing and creating the season. To deliver more than one country, use the <countries_of_origin> tag, and then specify each individual country using a <country> tag. One country is designated as the primary country using the primary="true" attribute. Specifying secondary countries is optional, but you should list all countries associated with the season.

The country of origin may differ from the production country, which is the country that provided most of the funds for production. Both the country of origin and production country are required.

For a list of ISO 3166-1 alpha-2 codes, see https://www.iso.org/obp/ui/#search/code/.

For more information on ISO codes, see https://www.davros.org/misc/iso3166.html.

XPath

<production_countries>

 <country primary="true">US</country>

</production_countries>

Production Country or Region (required, ISO-3166-1 country code)

Note: In this annotation description, use of the term “country” may refer to a country or region.

The ISO 3166-1 alpha 2 code of the country responsible for the primary source of funds for the season production. You must specify at least one production country and that country should be the country that provided most of the funds (for example, from national lotteries and other subsidies). Such determination must be made in accordance with applicable law. You can supply additional production countries as needed. Supplying at least one production country is required and that country should be designated as the primary country using the primary="true" attribute.

The production company may differ from the country of origin, which is the country where the content originates from in accordance with applicable law. Both the country of origin and production country are required.

For a list of ISO 3166-1 alpha-2 codes, see https://www.iso.org/obp/ui/#search/code/.

For more information on ISO codes, see https://www.davros.org/misc/iso3166.html.

XPath

<original_spoken_locale>en-US</original_spoken_locale>

Original Spoken Locale Language (required)

Specifies the original language spoken by the actors in the season. This is usually the primary language of the country or region of origin. For example, if the season was filmed in the United Kingdom in English, but the season is dubbed in French for the French market, then <original_spoken_locale> would be en-GB.

When specifying languages, you can use any language as long as it is a valid BCP 47 code that consists of the language code, optional region, and optional script subtags as appropriate (for example, script is not relevant for audio). Note that while any valid language code is accepted, the Apple TV app displays content only in a limited set of languages. The table in Language Codes shows the languages available for the Storefront.

Note: This is not the dubbed language, and is different from the <language> and <locale> tags. <original_spoken_locale> is the language in which the actors’ lips move. <language> is the language used for the metadata. <locale> is used to specify the language heard on the audio file, which could be a dubbed language, that is different from the <original_spoken_locale>.

XPath

<title>Grey's Anatomy, Season 4</title>

Title (required on initial delivery; 1-255 characters; may be updated)

The name of the season in this package. The information sent with this tag can be updated unless Apple has reviewed and confirmed the quality of the metadata.

There is a 255-byte limit strictly enforced. The data is stored in the UTF-8 encoding, so for single-byte characters (such as those drawn from the ASCII character set), this equates to a 255-character limit; for multiple-byte (for example, Japanese) characters, this can equate to as few as 71 characters.

Important: Do not capitalize every letter of every word. Capitalize the first letter of each word as appropriate for the language.

XPath

<ratings>

Ratings (optional, can be updated)

You can specify a rating label for your TV content. For complete details, see Table 1: TV Metadata Rating Systems Values.

XPath

<rating system="us-tv" code="TV-14"/>

Rating (required if content is rated, can be updated)

A valid rating from an accepted ratings system. More than one rating may be specified, but only one rating per ratings system is allowed. The information sent with this tag can be updated.

All TV ratings have a short, plain-ASCII Apple rating code, which is supplied using the attribute named code. Standardizing on the Apple rating codes reduces errors resulting from typos.

The code attribute is currently optional, however Apple recommends that you start supplying the codes to prepare for the time in the future when the codes become required and the current method deprecated. All of the following are currently supported for delivering rating information:

Preferred Method Using the Rating Code:

<rating system="us-tv" code="TV-14"/>

Previous Method Using the Rating Label:

<rating system="us-tv">TV-14</rating>

Acceptable Method Using Both the Rating Code and the Rating Label:

<rating system="us-tv" code="TV-14">TV-14</rating>

If you use this method, the rating identified by code and the rating identified by rating label must resolve to the same rating, for example, <rating system="us-tv" code="TV-G">TV-14</rating> would be rejected.

If you submit ratings that are not supported, the package will be rejected. A complete listing of valid systems and values is located in Table 1: TV Metadata Rating Systems Values.

</ratings>

XPath

<regions>

Regions (optional)

Begins the <regions> block used to specify regional variations in season information.

A region must be specified for each territory (country or region) that requires localized release information. In this example, the season is being released in two territories.

XPath

<region>

Region (required within the <regions> block)

A region must be specified for each territory (country or region) that requires localized metadata, such as season type, description, date information, and more.

XPath

<territory>AU</territory>

Territory (required within the <region> block)

The territory where the season will be available for sale. Must be specified as an ISO 3166 alpha-2 country code. Note that some countries in the ISO 3166 alpha-2 country list contain other countries (for example, United States includes Puerto Rico)

For a list for ISO 3166-1 alpha 2 codes, see https://www.iso.org/obp/ui/#search.

For more information on ISO codes, see https://www.davros.org/misc/iso3166.html.

XPath

<network>ABC</network>

Network (required within the <region> block; can be updated)

The name of the network airing the season in the specified territory.

XPath

<season_type>currently_airing</season_type>

Season Type (required)

The type of season. Allowed values are:

  • library: Seasons that have already aired and are offered on the Apple TV app with a fixed number of episodes for that season.

  • currently_airing: Seasons that are currently active and have episodes that have yet to air.

XPath

<description>The fourth season continues the story of a group of surgeons and their mentors in the fictional Seattle Grace Hospital, describing their professional and personal lives.</description>

Description (required on initial delivery of region; 1-4,000 characters, may be updated)

A brief description of the season. This description provides a summary of the entire season and appears on the Store for customers to read. You can use up to 4000 characters.

The information sent with this tag can be updated unless Apple has reviewed and confirmed the quality of the metadata.

The description can be localized (optional) by creating another region and localizing the description there.

Important: Character counts are for standard 8-bit characters (that is, Roman alphabet). Fewer double-wide characters (for example, Japanese symbols) are allowed.

XPath

<total_expected_episodes>17</total_expected_episodes>

Total Expected Episodes (required on initial delivery of region; must be a positive number)

The number of salable episodes expected to be in the season. Do not include bonus material in the total episode count (see the <total_expected_bonus_episodes> tag to supply the bonus episode count). The number you enter must be a whole number (decimal values are not accepted) that is 1 or greater. This number tells the Apple TV app how many episodes to expect.

Note that the total number of episodes cannot be changed, but it does not limit the total number of episodes that can actually be delivered. For example, if the current season of your series has 12 episodes ordered, but then an additional 12 episodes are ordered later in that same season, you can continue to deliver episodes until the season is marked complete in that territory (which you indicate in iTunes Connect).

Note: If the total expected episode count changes after you deliver the tag, use the “Contact Us” link in iTunes Connect to file a ticket.

XPath

<total_expected_bonus_episodes>2</total_expected_bonus_episodes>

Total Expected Bonus Episodes (optional; must be a positive number)

The number of bonus episodes expected to be in the season. The number you enter must be a whole number (decimal values are not accepted). This number tells the Apple TV app how many bonus episodes to expect.

Note: If the total expected bonus episode count changes after you deliver the tag, use the “Contact Us” link in iTunes Connect to file a ticket.

XPath

<total_launch_episodes>19</total_launch_episodes>

Total Launch Episodes (required; must be a positive number)

The number of episodes (including bonus episodes) available at the time of launch.

This is the number of episodes you plan to deliver on or before the launch date. For example, suppose three episodes of a season have already aired before putting the season on the Apple TV app. The number of episodes at launch would be 3.

XPath

<broadcast_schedule>

Broadcast Schedule (required)

Begins the <broadcast_schedule> block where you define broadcasting information about the season in the specified region.

XPath

<premiere_date>09-26-2016</premiere_date>

Premiere Date (required)

The premiere date is the date the season first aired in the specified territory.

The date must be in the format YYYY-MM-DD where YYYY is the 4-digit year, MM is the 2-digit month, and DD is the two-digit day.

XPath

<finale_date>03-24-2017</finale_date>

Finale Date (optional)

The finale date is the date of the final episode of the season in the specified territory.

The date must be in the format YYYY-MM-DD where YYYY is the 4-digit year, MM is the 2-digit month, and DD is the two-digit day.

Note: Finale date applies only to currently-airing seasons.

XPath

<weekdays>

 <weekday>Monday</weekday>

</weekdays>

Weekdays (optional)

Supply the day of the week the season airs. If the season airs more than once a week, include a <weekday> tag for all the days of the week that apply.

The day of the week combined with the time specified in the <time> tag are used to display the tune-in information for currently airing seasons on the Apple TV app.

Note: Air weekdays apply only to currently-airing seasons.

XPath

<times>

 <time zone="central">20:00</time>

 <time zone="eastern">21:00</time>

</times>

Times (optional)

Supply the time the season airs in all relevant time zones. Use a separate <time> tag for each time zone that applies. The time must be entered using the 24-hour clock—the hour value must be between 00 and 23 and the minute value must be between 0 and 60.

The time combined with the day(s) of the week specified in the <weekdays> block are used to display the tune-in information for currently-airing seasons on the Apple TV app.

Note: Air times apply only to currently-airing seasons.

</region>

</region>

XPath

<assets>

 <asset type="artwork">

Season Artwork (required on initial delivery; can be updated)

The art that represents the season. The image should be a minimum 3000 x 3000 pixels in the RGB color space, and in JPG or PNG file format. Layered images should have a minimum resolution of 3000 x 3000 pixels, 1.0 aspect ratio, and must be in the LSR (layered stack resource) file format.

XPath

<data_file>

Data File (required, can be updated)

A data file element block must be included to deliver the season’s cover art.

In this block, the <file_name>, <size>, and <checksum> tags are required.

XPath

<locale name="en-US"/>

Locale Name (required)

The <locale> indicates the language in which the text on the art appears. If the art displays more than one language, for example, cover art for Canada that shows both English and French, supply a <locale> tag for each language.

The art delivered in the <asset> block will be used for the locales listed in the <locales> block. If you are delivering the artwork for only one locale, you can omit the surrounding <locales></locales> tags as shown below:

<data_file>

 <locale name="en-US"/>

 <file_name>09736156444.lsr</file_name>

 . . .

XPath

<file_name>09736156444.lsr</file_name>

File Name (required)

The name of the artwork file. The name should be relative to the package (containing no path reference “C:\” or “/Macintosh HD/”) and must contain the file name extension (.lsr in this example).

Important: File names are case sensitive. A file name can contain only alphanumeric characters (A-Z, a-z, 0-9) and these symbols: underscore ("_"), dash (“-”), and period (“.”). The file name must not start with an underscore, dash, or period and cannot contain spaces, other punctuation or symbols.

XPath

<size>6591649</size>

File Size (required)

The size in bytes of the artwork file. Do not specify any commas nor period delimiters.

XPath

<checksum type="md5">43e7dddfe4b8ab433ede429df86cabb2</checksum>

Checksum (required)

The MD5 checksum of the artwork file. See the Checksums section for more information.

  </data_file>

 </asset>

XPath

<asset type="artwork_2:3">

2:3 Season Cover Art Asset (Strongly recommended. Required for Storefront promotion.)

Describes the type of asset being delivered. You must specify type="artwork_2:3" to indicate that the asset is the cover image in 2:3 format.

XPath

<data_file>

 <locale name="en-US"/>

 <file_name>art2_3.jpg</file_name>

 <size>3540774</size>

 <checksum type="md5">eee9bbfad9657d04dd42bd60471fc3be</checksum>

</data_file>

2:3 Cover Art Data File (required, can be updated)

The data file block describes the artwork asset. In this example, the artwork being delivered is 2:3 cover art.

Allowed formats for 2:3 cover art include:

  • Non-layered JPG and PNG (.jpg and .png) files must be at least 2000 x 3000 pixels.

  • Layered LSR .lsr files must have a minimum size of 2000 x 3000 pixels.

In this block, the <locale> (or <locales>), <file_name>, <size>, and <checksum> tags are required.

XPath

<asset type="artwork_16:9">

16:9 Season Cover Art Asset (Strongly recommended. Required for Storefront promotion.)

Describes the type of asset being delivered. You must specify type="artwork_16:9" to indicate that the asset is the cover image in 16:9 format.

Other values for the artwork type include the following:

  • backdrop_tall

  • backdrop_wide

  • single_color_content_logo

  • full_color_content_logo

XPath

<data_file>

 <locale name="en"/>

 <file_name>ABC_GREYSANATOMY_SEASON_16_9.lsr</file_name>

 <size>8743649</size>

 <checksum>ed356adfe29df86ca4b83ede4bb2ab43</checksum>

</data_file>

16:9 Cover Art Data File (required, can be updated)

The data file block describes the artwork asset. In this example, the artwork being delivered is 16:9 cover art.

Allowed formats for 16:9 cover art include:

  • LSR (.lsr)

  • PNG (.png)

Cover art must be a minimum of 1920 x 1080 pixels; 3840 x 2160 pixels preferred.

In this block, the <locale> (or <locales>), <file_name>, <size>, and <checksum> tags are required.

</asset>

XPath

<asset type="full_color_content_logo">

Logo Art Asset (Strongly recommended. Required for Storefront promotion.)

Describes the type of asset being delivered. For logo art, you can specify:

  • single_color_content_logo

  • full_color_content_logo

XPath

<data_file>

 <locale name="en"/>

 <file_name>ABC_GREYSANATOMY_SEASON_fullcolor_logo.png</file_name>

 <size>65748</size>

 <checksum>9df86c4bb2aba4b83edeed356adfe243</checksum>

</data_file>

Logo Art Data File (required, can be updated)

The data file block describes the logo art asset. In this example, the artwork being delivered is a full-color logo.

Logo art must be:

  • PNG (.png)

  • 4320 x 1300 pixels

In this block, the <locale> (or <locales>), <file_name>, <size>, and <checksum> tags are required. Specifying a <territory> is not supported.

</asset>

XPath

<asset type="backdrop_wide">

Backdrop Art Asset (Strongly recommended. Required for Storefront promotion.)

Describes the type of asset being delivered. For backdrop art, you can specify:

  • backdrop_tall

  • backdrop_wide

XPath

<data_file>

 <file_name>ABC_GREYSANATOMY_SEASON_backdrop_wide.png</file_name>

 <size>88748</size>

 <checksum>b26c4b3edeedaba4b89df8356adfe243</checksum>

</data_file>

Backdrop Art Data File (required, can be updated)

The data file block describes the backdrop art asset. In this example, the artwork being delivered is wide backdrop.

Backdrop art must be:

  • PNG (.png)

  • 1680 x 3636 pixels for tall or 4320 x 3240 pixels for wide

In this block, the <file_name>, <size>, and <checksum> tags are required. Specifying locales is not supported.

 </asset>

</assets>

  </season>

</package>

TV Episode Profile

TV Episode Overview

The TV episode profile is used for the delivery of all types of TV content, including TV series episodes, made-for-TV movies, sportscasts, and promotional content.

Each package represents a single downloadable video within the Apple TV app. It is not possible to combine content from different packages or to deliver source assets in segments. A package should only contain an individual episode from a series.

For questions regarding this document, contact your Apple Technical Representative.

Basic TV Episode Metadata Example

Below is an example metadata.xml file for an episode of the ABC series Grey’s Anatomy. You can view the product in the Apple TV app at this URL:

https://itunes.apple.com/us/tv-season/crash-into-me-pt-1/id264638786?i=269066135

The XML example includes crop dimensions, which are optional and can be specified for QuickTime source only.

<?xml version="1.0" encoding="UTF-8"?><package xmlns="http://apple.com/itunes/importer" version="tv5.3"> <provider>abc</provider> <language>en-US</language> <video> <type>tv</type> <subtype>episode</subtype> <container_id>ABC_GREYSANATOMY_SEASON_004</container_id> <container_position>9</container_position> <vendor_offer_code>408CH98720X103</vendor_offer_code> <vendor_id>ABC_GREYSANATOMY_409</vendor_id> <isan>0000-0001-DE1D-0000-M-0000-0000-8</isan> <eidr>10.5240/23B3-9CA1-888D-9266-54C9-5</eidr> <episode_production_number>409</episode_production_number> <countries_of_origin> <country primary="true">US</country> <country>CA</country> </countries_of_origin> <production_countries> <country primary="true">US</country> </production_countries> <original_spoken_locale>en-US</original_spoken_locale> <title>Crash Into Me, Pt. 1</title> <studio_release_title>Crash Into Me, Pt. 1</studio_release_title> <description>An ambulance crash endangers the lives of the paramedics involved, as Meredith and the Chief work on-site to save them, Bailey treats a patient who refuses her help.</description> <release_date>2007-11-22</release_date> <copyright_cline>2007 ABC Studios. All Rights Reserved.</copyright_cline> <ratings> <rating system="us-tv" code="TV-14"/> <advisory system="us-cable" code="AL"/> <rating system="ca-tv" code="14+"/> </ratings> <accessibility_info> <accessibility role="captions" available="true"/> </accessibility_info> <assets> <asset type="full"> <data_file role="source"> <locale name="en-US"/> <file_name>ABC_GREYSANATOMY_409_PRORES.mov</file_name> <size>6763970564</size> <checksum type="md5">c2108d9ea7d4ba2a0df2d4f10b1704bf</checksum><!-- Note: Crop dimensions are supported for QuickTime source only. --> <attribute name="crop.top">0</attribute> <attribute name="crop.bottom">0</attribute> <attribute name="crop.left">0</attribute> <attribute name="crop.right">0</attribute> <attribute name="image.textless_master">true</attribute> <attribute name="video_has_varying_active_region">false</attribute> </data_file> <!-- Production still --> <production_still_image_time format="24/999 1000/nonDrop">00:00:57:02</production_still_image_time> <data_file role="captions"> <locale name="en-US"/> <file_name>captions.scc</file_name> <size>9511</size> <checksum type="md5">5a793a8b46037fe8aa2bdd739b49911a</checksum> <attribute name="program.start.timecode">-01:00:00:00</attribute> </data_file> <data_file role="audio.visually_impaired"> <locale name="en-US"/> <file_name>captions-ad.mov</file_name> <size>44866696</size> <checksum type="md5">a2db7f2f30c9744d98fa393e51cf6a93</checksum> </data_file> </asset> </assets> <!-- Defined preview --> <previews> <preview timecode_format="qt_text" start_time="00:05:13.002" end_time="00:06:27.000" image_time="00:05:45.128"/> </previews> <products> <product> <territory>US</territory> <sales_start_date>2007-11-23</sales_start_date> <cleared_for_sale>true</cleared_for_sale> <bundle_only>true</bundle_only> </product> <product> <territory>CA</territory> <sales_start_date>2008-01-05</sales_start_date> <cleared_for_sale>true</cleared_for_sale> <bundle_only>true</bundle_only> </product> </products> </video></package>

Basic TV Episode Metadata Annotated

XML Declaration (required)

<?xml version="1.0" encoding="UTF-8"?>

The character encoding of your document must be defined.

Apple accepts only UTF-8 encoding as it efficiently encodes non-Roman characters.

Important: The metadata.xml file must not contain a byte-order mark (BOM).

XPath

<package xmlns="http://apple.com/itunes/importer" version="tv5.3">

Package Container (required)

The xmlns (XML namespace) attribute is required and is needed for schema validation. It is used to declare the namespace (and associated schema) to which the tags in the XML are expected to conform. The namespace must be: http://apple.com/itunes/importer

The version attribute is required. Packages created to this specification must indicate version="tv5.3". The “tv” portion of the attribute must be in lowercase letters.

XPath

<provider>abc</provider>

Provider (required, Apple supplied)

This value should be the transactional TV provider shortname given for partner identification. The value should match the provider name used in Transporter (the value that is after -s in the Transporter command). The value supplied with the <provider> tag is case-sensitive. For example, if the provider shortname is abc, the value in the <provider> tag must be abc; not ABC. Note that it is the value you pass as an argument to Transporter, not the value in the XML, that determines the account you are delivering to. Contact your Apple Technical Representative for this value.

Example:

  • OneLittleIndian

  • Minimum length: 1 character

XPath

<language>en-US</language>

Language (required)

The primary language of the metadata for this package. Fields such as title and description are expected to appear in this language. When specifying languages, you can use any language as long as it is a valid BCP 47 code that consists of the language code, optional region, and optional script subtags as appropriate (for example, script is not relevant for audio). Note that while any valid language code is accepted, the Apple TV app displays content only in a limited set of languages. The table in Language Codes shows the languages available for the Storefront.

As a best practice when specifying a language, use the region subtag (for example, the US of en-US) only when it conveys helpful information, such as spelling variations between countries or regions. For example, there is generally not a need to distinguish between Japanese as used in one country versus another, so you should use only the language code subtag (ja) instead of the language code and region subtags (ja-JP). In cases where specifying a region is appropriate, use the hyphen character to combine a language subtag with a region subtag. This identifies both the language and the specific location where the language is used. For English with American spelling, use en-US; for English with British spelling, use en-GB.

The language codes are formatted according to the best practices recommended by the Internet Engineering Task Force (IETF) in a group of documents known collectively as BCP 47, and in particular, RFC 5646 (https://datatracker.ietf.org/doc/html/rfc5646), which is part of BCP 47. An overview of these best practices is provided here: https://www.w3.org/International/articles/language-tags/.

For more information on the ISO 639-1 standard, refer to https://www.loc.gov/standards/iso639-2/php/English_list.php.

XPath

<video>

Video (required)

Begins the video element. Only one video element can be defined per TV video XML.

XPath

<type>tv</type>

Video Type (required)

This value indicates how the Apple should process this video.

All content intended for download in the Apple TV app, including TV episodes, made-for-TV movies, sports events, and promotional content should be type tv.

XPath

<subtype>episode</subtype>

Video Subtype (required; can be updated)

Identifies the type of video you are delivering. The <subtype> tag is required. If you do not send the <subtype> tag, you will see a warning; at some point in the future, the delivery will fail. The available values are:

  • "episode" indicates the video is a regular TV episode available for purchase

  • "episodebonus" indicates the video is bonus content related to a given episode of a TV show

  • "seasonbonus" indicates the video is bonus content related to an entire season of a TV show

XPath

<container_id>ABC_GREYSANATOMY_SEASON_004</container_id>

Container ID (required)

The container is the permanent identifier for a specific season of a series. Every episode must be delivered with the correct container ID.

In this example, “ABC_GREYSANATOMY_SEASON_004” is the container ID which references the 4th season of Grey’s Anatomy in the Apple TV app.

The container ID is defined by the provider when creating a new season through an XML delivery or in iTunes Connect.

Important: The container identifier can only contain alphanumeric characters and underscore marks; it cannot contain spaces, dashes, ampersands, other punctuation, or symbols. The container identifier is case-sensitive.

XPath

<container_position>9</container_position>

Container Position (required; can be updated)

Container position defines the track number (that is, position on the playlist) the provided episode has in the Apple TV app. Note that a season cannot have duplicate container positions.

XPath

<vendor_offer_code>408CH98720X103</vendor_offer_code>

Vendor Offer Code (optional, 1-100 bytes, see restrictions, can be updated)

An identifier which will be reported back through sales reporting channels.

Restrictions: The vendor offer code can only contain alphanumeric characters and underscore marks; it cannot contain spaces, dashes, ampersands, other punctuation, or symbols. The vendor offer code is case-sensitive and must not start with an underscore. Vendor offer codes can be numeric, but they are treated as strings, not numbers; a vendor offer code of '00000000012345' is not the same as '12345'.

XPath

<vendor_id>ABC_GREYSANATOMY_409</vendor_id>

Vendor Identifier (required, 1-100 characters, see restrictions)

The permanent value that uniquely identifies this video separately from any other video given by the provider. This ID is used for tracking your assets and reporting. Vendor identifiers cannot be reused.

If you use an internal naming scheme to identify individual episodes it should be used for the vendor identifier. If you do not have an internal naming scheme use:

NETWORK_SERIES_EPISODEID

Restrictions: The vendor identifier can only contain alphanumeric characters and underscore marks; it cannot contain spaces, dashes, ampersands, other punctuation, or symbols. The vendor identifier is case-sensitive and must not start with an underscore. If a Vendor ID is numeric, it is treated as a string, not numbers; a vendor identifier of '00000000012345' is not the same as '12345'. Vendor IDs must be at least six ASCII characters in length but have a limit of 100 ASCII characters.

XPath

<isan>0000-0001-DE1D-0000-M-0000-0000-8</isan>

ISAN (optional)

The ISAN (International Standard Audiovisual Number) is an internationally recognized numbering system identifying audiovisual works. For more information, see https://www.isan.org.

XPath

<eidr>10.5240/23B3-9CA1-888D-9266-54C9-5</eidr>

EIDR (optional)

The EIDR (Entertainment Identifier Registry) is a universal, unique identifier system for movie and television assets. Any level of EIDR is accepted in this field, so long it is in valid format. For more information, see https://www.eidr.org/about-us/.

The format of the EIDR identifier is 10.5240/XXXX-XXXX-XXXX-XXXX-XXXX-C, where:

  • 10.5240 represents the standard prefix of an EIDR value

  • X represents a hexadecimal digit

  • C represents the check character

XPath

<episode_production_number>409</episode_production_number>

Episode Production Number (required, 1-39 characters, can be updated)

The provider’s production number for this episode. This value should be unique for each episode in a series.

Note: Episode production numbers may contain only alphanumeric characters, spaces, hyphens (-), and underscores (_).

XPath

<countries_of_origin>

 <country primary="true">US</country>

 <country>CA</country>

</countries_of_origin>

Country or Region of Origin (required, ISO-3166-1 country code)

Note: In this annotation description, use of the term “country” may refer to a country or region.

The ISO 3166-1 alpha 2 code of the country (or countries) where the content originates from, for example: the country where the episode was primarily produced, where the main authors and workers reside, where the main producer is established, and so on. Such determination must be made in accordance with applicable law. You must specify at least one country of origin and that country should be the primary country of origin.

You can supply additional countries as needed to associate all the countries involved in developing and creating the episode. To deliver more than one country, use the <countries_of_origin> tag, and then specify each individual country using a <country> tag. One country is designated as the primary country using the primary="true" attribute. Specifying secondary countries is optional, but you should list all countries associated with the episode.

The country of origin may differ from the production country, which is the country that provided most of the funds for production. Both the country of origin and production country are required.

For a list of ISO 3166-1 alpha-2 codes, see https://www.iso.org/obp/ui/#search/code/.

For more information on ISO codes, see https://www.davros.org/misc/iso3166.html.

XPath

<production_countries>

 <country primary="true">US</country>

</production_countries>

Production Country or Region (required, ISO-3166-1 country code)

Note: In this annotation description, use of the term “country” may refer to a country or region.

The ISO 3166-1 alpha 2 code of the country responsible for the primary source of funds for the episode production. You must specify at least one production country and that country should be the country that provided most of the funds (for example, from national lotteries and other subsidies). Such determination must be made in accordance with applicable law. You can supply additional production countries as needed. Supplying at least one production country is required and that country should be designated as the primary country using the primary="true" attribute.

The production company may differ from the country of origin, which is the country where the content originates from in accordance with applicable law. Both the country of origin and production country are required.

For a list of ISO 3166-1 alpha-2 codes, see https://www.iso.org/obp/ui/#search/code/.

For more information on ISO codes, see https://www.davros.org/misc/iso3166.html.

XPath

<original_spoken_locale>en-US</original_spoken_locale>

Original Spoken Locale Language (required)

Specifies the original language spoken by the actors in the episode. This is usually the primary language of the country of origin. For example, if the episode was filmed in the United Kingdom in English, but the episode is dubbed in French for the French market, then <original_spoken_locale> would be en-GB.

When specifying languages, you can use any language as long as it is a valid BCP 47 code that consists of the language code, optional region, and optional script subtags as appropriate (for example, script is not relevant for audio). Note that while any valid language code is accepted, the Apple TV app displays content only in a limited set of languages. The table in Language Codes shows the languages available for the Storefront.

Note: This is not the dubbed language, and is different from the <language> and <locale> tags. <original_spoken_locale> is the language in which the actors’ lips move. <language> is the language used for the metadata. <locale> is used to specify the language heard on the audio file, which could be a dubbed language, that is different from the <original_spoken_locale>.

XPath

<title>Crash Into Me, Pt. 1</title>

Title (required, 1-255 characters, may be updated)

The name of the episode provided in this package. The information sent with this tag can be updated unless Apple has reviewed and confirmed the quality of the metadata.

In this example, Crash Into Me, Pt. 1 is the episode title. For a sporting event the title might be Game 4: Red Sox at Rockies.

There is a 255-byte limit strictly enforced. The data is stored in the UTF-8 encoding, so for single-byte characters (such as those drawn from the ASCII character set), this equates to a 255-character limit; for multiple-byte (e.g., Japanese) characters, this can equate to as few as 71 characters.

Important: Do not capitalize every letter of every word. Capitalize the first letter of each word as appropriate for the language.

XPath

<studio_release_title>Crash Into Me, Pt. 1</studio_release_title>

Studio Release Title (required, 1-255 bytes; may be updated)

The original title of an episode at its initial release, in any form, to the viewing public, in whichever country and language it has been first released. This is intended to tie together subsequent releases in different countries (or regions) and languages to the initial release of the episode. When submitting the package for the initial release, you should set the <studio_release_title> value to the same value as <title>.

Note: The <studio_release_title> tag is required even if the original release title is the same that is provided with the <title> tag. Beginning November 2014, if you deliver a package and do not include the <studio_release_title> tag, you will see a warning.

The information sent with this tag can be updated unless Apple has reviewed and confirmed the quality of the metadata.

XPath

<description>An ambulance crash endangers the lives of the paramedics involved, as Meredith and the Chief work on-site to save them, Bailey treats a patient who refuses her help.</description>

Description (required, 1-4,000 characters, may be updated)

A brief synopsis of the video. Be careful not to give away episode sensitive information such as surprise endings, plot spoilers, or sporting event match results. This is the more detailed description that appears when a user clicks the ellipsis (…) in the Apple TV app. The information sent with this tag can be updated unless Apple has reviewed and confirmed the quality of the metadata.

Keep in mind that a short description is derived from the first several characters of this description (the number of characters varies depending on screen configurations), followed by an ellipsis (…). For example, the short description derived from this example might become: “An ambulance crash endangers the lives of the paramedics…,” so make sure the first part of the <description> conveys useful information.

Important: Character counts are for standard 8-bit characters (that is, Roman alphabet). Fewer double-wide characters (for example, Japanese symbols) are allowed.

XPath

<release_date>2007-11-22</release_date>

Release Date (required; can be updated)

The original air date of this episode, or the date that the content was first made available to the public. The release date supplied with this tag (under <video> as opposed to under <region>) applies to the default country associated with the season. This date also applies to any region that does not have a separate release date for the episode set using the <region> block as described in TV Episode Metadata Example with Multiple Regions.

The date must be in the format YYYY-MM-DD where YYYY is the 4-digit year, MM is the 2-digit month, and DD is the two-digit day.

Important: This date is used for informational purposes and will not affect the sales availability of this video. An additional element, <sales_start_date>, controls when content becomes available for sale and is covered later in this document.

In this example, 2007-11-22 is the air date because the episode first aired on November 22, 2007.

XPath

<copyright_cline>2007 ABC Studios. All Rights Reserved.</copyright_cline>

Copyright (optional, 1-1000 characters, can be updated)

A specific copyright for this video. The format required is four-digit year followed by owner. The appropriate © symbol will automatically be added and should not be included in the data.

If omitted, a default calculated copyright will be used based on the playlist’s release date and your customer presentable provider name.

In this example, “2007 ABC Studios. All Rights Reserved.” is the copyright and is seen in the store as “©2007 ABC Studios. All Rights Reserved.”

XPath

<ratings>

Ratings (optional, can be updated)

You can specify a rating label for your TV content. For complete details, see Table 1: TV Metadata Rating Systems Values.

XPath

<rating system="us-tv" code="TV-14"/>

Rating (required if content is rated, can be updated)

A valid rating from an accepted ratings system. More than one rating may be specified, but only one rating per ratings system is allowed. The information sent with this tag can be updated.

All TV ratings have a short, plain-ASCII Apple rating code, which is supplied using the attribute named code. Standardizing on the Apple rating codes reduces errors resulting from typos.

The code attribute is currently optional, however Apple recommends that you start supplying the codes to prepare for the time in the future when the codes become required and the current method deprecated. All of the following are currently supported for delivering rating information:

Preferred Method Using the Rating Code:

<rating system="us-tv" code="TV-14"/>

Previous Method Using the Rating Label:

<rating system="us-tv">TV-14</rating>

Acceptable Method Using Both the Rating Code and the Rating Label:

<rating system="us-tv" code="TV-14">TV-14</rating>

If you use this method, the rating identified by code and the rating identified by rating label must resolve to the same rating, for example, <rating system="us-tv" code="TV-G">TV-14</rating> would be rejected.

If you submit ratings that are not supported, the package will be rejected. A complete listing of valid systems and values is located in Table 1: TV Metadata Rating Systems Values.

XPath

<advisory system="us-cable" code="AL"/>

Advisory (optional, can be updated)

A valid advisory from an accepted advisory system. More than one advisory may be specified, but each advisory must be contained within its own advisory element. The information sent with this tag can be updated.

All TV advisories have a short, plain-ASCII Apple advisory code, which is supplied using the attribute named code. Standardizing on the Apple advisory codes reduces errors resulting from typos.

The code attribute is currently optional, however Apple recommends that you start supplying the codes to prepare for the time in the future when the codes become required and the current method deprecated. All of the following are currently supported for delivering advisory information:

Preferred Method Using the Advisory Code:

<advisory system="us-cable" code="AL"/>

Previous Method Using the Advisory Label:

<advisory system="us-cable">AL</advisory>

Acceptable Method Using Both the Advisory Code and the Advisory Label:

<advisory system="us-cable" code="AL">AL</advisory>

If you use this method, the advisory identified by code and the advisory identified by advisory label must resolve to the same advisory, for example, <advisory system="us-cable" code="AL">GL</advisory> would be rejected.

If you submit advisories that are not supported, the package will be rejected. A table of valid systems and values is located in Table 2: TV Metadata Advisory Systems Values.

</ratings>

XPath

<accessibility_info>

Accessibility Information (required for U.S. deliveries; can be updated)

Begins the block that describes the availability of closed captions for the TV episode or made-for-TV movie.

Note that the <accessibility_info> tag can also be delivered within the <assets> block in an asset-only update. See TV Asset-Only Delivery/Update Example for more information.

XPath

<accessibility role="captions" available="true"/>

Accessibility (required for U.S. deliveries; can be updated)

Indicates if closed captions are available.

Attributes include:

  • role: Refers to the data file for captions; "captions" is the only supported value.

  • available: Indicates availability of captions. Accepted values include "true" or "false". If you have delivered closed captions within the same package, the value cannot be "false".

An additional attribute, reason_code, is used to supply the reason closed captions are not included. See TV Episode Metadata without Closed Captions and with Burned-In Text Annotated for more information. Note that the reason_code attribute is not allowed if available="true", and required when available="false".

XPath

<assets>

 <asset type="full">

Asset (required, multiple from a set)

Describes the type of asset being delivered. You must specify type="full" to indicate that the asset is the feature asset.

See Apple Video and Audio Asset Guide.

XPath

<data_file role="source">

Data File (required, can be updated)

A data file element block must be included if the video source material is delivered electronically. It describes the role of the associated file and specifies the electronically delivered media file. Since the file sent is used as the source file for the Apple encode, the role must be "source" and is required. If you do not specify the role, you will see a warning message that the role is required; at a date sometime in the future, if you do not specify the role, the delivery will fail.

In this block, the <file_name>, <size>, and <checksum> tags are required.

XPath

<locale name="en-US"/>

Locale Name (required for full source)

Identifies the language that is spoken in the audio on the source asset. The locale indicates both the language and the specific location where the language is spoken. When specifying languages for assets and localizations, you can use any language as long as it is a valid BCP 47 code that consists of the language code, optional region, and optional script subtags as appropriate (for example, script is not relevant for audio).

As a best practice when specifying a language, use the region subtag (for example, the US of en-US) only when it conveys helpful information, such as spelling variations between countries or regions. For example, there is generally not a need to distinguish between Japanese as used in one country versus another, so you should use only the language code subtag (ja) instead of the language code and region subtags (ja-JP). In cases where specifying a region is appropriate, use the hyphen character to combine a language subtag with a region subtag. This identifies both the language and the specific location where the language is used. For English with American spelling, use en-US; for English with British spelling, use en-GB.

XPath

<file_name>ABC_GREYSANATOMY_409_PRORES.mov</file_name>

File Name (required)

The name of the data file included in this electronic delivery package. The name should be relative to the package (containing no path reference “C:\” or “/Macintosh HD/”) and must contain the file name extension (.mov in this example).

Important: File names are case sensitive. A file name can contain only alphanumeric characters (A-Z, a-z, 0-9) and these symbols: underscore ("_"), dash (“-”), and period (“.”). The file name must not start with an underscore, dash, or period and cannot contain spaces, other punctuation or symbols.

XPath

<size>6763970564</size>

File Size (required)

The size in bytes of the data file. Do not specify any commas nor period delimiters.

XPath

<checksum type="md5">c2108d9ea7d4ba2a0df2d4f10b1704bf</checksum>

Checksum (required)

The MD5 checksum of the data file. See the Checksums section for more information.

XPath

<!-- Note: Crop dimensions are supported for QuickTime source only. -->

<attribute name="crop.top">0</attribute>

<attribute name="crop.bottom">0</attribute>

<attribute name="crop.left">0</attribute>

<attribute name="crop.right">0</attribute>

Metadata-Based Cropping (optional, QuickTime only)

The crop rectangle for the full or preview video’s QuickTime source file. The name attribute specifies the side of the image to be cropped.

Accepted values are:

  • crop.top: The number of whole pixels from the top of the encoded image to remove.

  • crop.bottom: The number of whole pixels from the bottom of the encoded image to remove.

  • crop.left: The number of whole pixels from the left of the encoded image to remove.

  • crop.right: The number of whole pixels from the right of the encoded image to remove.

The values are always whole pixels of the encoded image. To disable cropping in one dimension, set the matching "crop.*" attribute to '0' (zero).

Note: When sending crop dimensions, send accurate dimensions without unnecessary cropping, especially horizontally. If your video does not contain inactive pixels (that is, it is not matted), you can set all the crop values to zero, or omit the crop dimension attribute tags. If you do not supply any crop dimensions, the values default to 0,0,0,0.

Important: Metadata-based cropping may only be included when sending QuickTime source and may not be used with MPEG-2 source. See Apple Video and Audio Asset Guide regarding source video.

Note: When delivering texted source material, burned-in text that falls over inactive pixels must be maintained in the attribution of crop values. Additionally, an equal number of pixels that are applied to preserve burned-in text in one region, must also be equally applied to the opposite region so that content can be displayed proportionally.

XPath

 <attribute name="image.textless_master">true</attribute>

Textless Master (required)

Specifies whether the video contains burned-in text, such as narratives burnt into the visual picture or burned-in subtitles. Narrative text is text that appears on screen to supplement the plot of the story without the use of a narrator, such as “Paris early morning, 1935.” Opening title sequences, and credits are not considered “text” in this case; those are expected to be in the video.

This attribute is required for all videos. Allowed values are true or false. In this example, the video does not have burned-in narrative or burned-in subtitles, so the attribute is set to true.

If the video contained burned-in narrative or burned-in subtitles, you would need to set the "image.textless_master" attribute to false and deliver additional attributes as needed to indicate the language in which the burned-in narrative or burned-in subtitles appear. For burned-in narrative, supply the <attribute name="image.burned_forced_narrative.locale"> tag; for burned-in subtitles, supply the <attribute name="image.burned_subtitles.locale"> tag.

XPath

 <attribute name="video_has_varying_active_region">false</attribute>

Video Has Varying Active Region (optional)

Use this attribute to specify whether the video content has varying aspect ratios. Allowed values are true or false. The value defaults to false if you omit this attribute. This attribute can be used on all video sources.

Set this attribute to true to have the asset analyzed to detect the active regions of the video. This option applies the Per Frame Rectangular Mask (PFRM). Using the metadata that is generated by the analysis, the video player’s canvas size grows or shrinks with the video content when viewed on Apple Vision Pro.

To remove metadata generated by a previous analysis, deliver an update with this attribute set to false or with this attribute removed.

</data_file>

XPath

  <production_still_image_time format="24/999 1000/nonDrop">00:00:57:02</production_still_image_time>

Production Still Image Time (optional; can be updated)

Specifies the frame to use for the production still image that will be displayed on the product page for the episode. Using the <production_still_image_time> tag on the full asset, you indicate the image time to use to cut the image from the full asset. The image time must be within the full source with a 16:9 aspect ratio. You can specify only one production still frame, which will be used for all territories.

The format can be qt_text (default) or one of the SMPTE formats illustrated in the Timecode Formats appendix. In qt_text format, the frame nearest the timecode is used for the preview image: you cannot specify a frame for the preview image using qt_text.

Note: This tag is not the same as the <preview> tag sent with the image_time attribute (for defined previews) or the <preview starttime> tag, which are used to represent the image for the preview source, not the full source. You can deliver the <production_still_image_time> tag, as well as the <preview> tag sent with the image_time attribute or the <preview starttime> tag, and the specified frame times do not need to match.

You can also deliver the production still image as a custom file, however Apple prefers that you send the production still image cut from the full asset. If you need to send the image as a file instead, the image must have the minimum dimensions of 1920 x 1080, with a 16:9 aspect ratio (subject to change). Do not send both the frame time and a separate image file in the same delivery. To deliver the image as a separate data file, omit the <production_still_image_time> tag and deliver the following:

<asset type="full"> <. . .> <data_file role="production_still_image"> <file_name>fearless.png</file_name> <size>111037</size> <checksum type="md5">96a2c3979611ea3966f19ff1ac4f28b0</checksum> </data_file> <. . .> </asset>

If you omit the production still image time and do not provide a separate image file, an image will be cut from the full or preview video source asset.

XPath

<data_file role="captions">

Closed Captioning Data File (required for U.S. deliveries; can be updated)

A data file element block must be included if the captions are delivered for the associated video. The "captions" role specifies that the delivered file is intended to be used as the closed captioning file for the Apple TV app. This role must be specified, or the package will be rejected.

In this block, the <file_name>, <size>, <checksum>, and <locale> tags are required.

Important: If the content does not include closed captions, you must provide the reason why captions are not included. See the annotations for the <accessibility_info> tag in TV Episode Metadata without Closed Captions and with Burned-In Text Annotated for more information.

XPath

<data_file role="audio.visually_impaired">

  <locale name="en-US"/>

  <file_name>captions-ad.mov</file_name>

  <size>44866696</size>

  <checksum type="md5">a2db7f2f30c9744d98fa393e51cf6a93</checksum>

Audio Description (AD) Data File (optional; can be updated)

Begins the data file block that delivers an AD audio file. An Audio Description (AD) file allows visually-impaired customers to follow the video with audio that describes the plot and what is being displayed visually on the screen. The "audio.visually_impaired" role specifies that the delivered file is intended to be used as an alternate audio file for Audio Description for the Apple encode. If you are delivering an AD audio file, the file must be in 2.0 stereo and you can optionally deliver an additional AD file in 5.1 surround format (no 7.1 surround).

In this block, the <file_name>, <size>, <checksum>, and <locale> tags are required. The locale of the audio description must match the locale of a corresponding source audio file.

XPath

<locale name="en-US"/>

Locale Name (required)

Identifies the language that is used for the captions on the full source asset. The locale indicates the language and the optional region where the language is spoken. When specifying languages for assets and localizations, you can use any language as long as it is a valid BCP 47 code that consists of the language code, optional region, and optional script subtags as appropriate (for example, script is not relevant when describing audio).

You must supply the <locale> tag for closed captions even if the language of the captions is the same as the language specified with the <language> tag.

When updating a closed caption file, make sure the locale matches the locale of the file you are replacing. If the previously-delivered file did not have a locale specified, you can deliver a new file with the new locale and the existing file will be replaced. If the previously-delivered file had a locale specified and you want to replace it with a new file that has a different locale, you must first remove the existing captions file (<data_file role="captions" remove="true">). Note that the full asset can have only one caption file. See Closed Captions Asset-Only Update Examples for an example XML.

See the annotation for <locale> on the source asset above for details on specifying a language.

XPath

<file_name>captions.scc</file_name>

File Name (required)

The name of the caption file included in this electronic delivery package. The name should be relative to the package (containing no path reference “C:\” or “/Macintosh HD/”) and must contain the file name extension (.scc in this example).

Important: File names are case sensitive. A file name can contain only alphanumeric characters (A-Z, a-z, 0-9) and these symbols: underscore ("_"), dash (“-”), and period (“.”). The file name must not start with an underscore, dash, or period and cannot contain spaces, other punctuation or symbols.

XPath

<size>9511</size>

File Size (required)

The size in bytes of the caption file. Do not specify any commas nor period delimiters.

XPath

<checksum type="md5">5a793a8b46037fe8aa2bdd739b49911a</checksum>

Checksum (required)

The MD5 checksum of the caption file. See the Checksums section for more information.

XPath

<attribute name="program.start.timecode">-01:00:00:00</attribute>

Timecode Offset (optional)

Indicates the timecode offset for the closed captions. Apple requires that timecodes start at a program start of 00:00:00:00, which may necessitate that captions be offset if they have been mastered to tape timecode. To keep closed captions in sync on the encoded file, use the "program.start.timecode" attribute. The value is a SMPTE HH:MM:SS:FF timecode in non-drop frame with an optional negative (-) sign for negative offsets, for example, -01:00:00:00. This feature is supported for both non-drop and drop frame timecodes.

  </data_file>

 </asset>

</assets>

XPath

<previews>

 <preview timecode_format="qt_text" start_time="00:05:13.002" end_time="00:06:27.000" image_time="00:05:45.128"/>

Defined Preview Clipping (optional; can be updated)

Begins the <previews> block that delivers the parameters for cutting a preview from the full video source. This feature should be used to ensure that all previews in a series contain individual episode-specific content excluding title sequences, previous episode synopses, or promotional material.

You define a TV preview by clipping a continuous segment of video and audio. Use the following attributes to specify the timecode format, the start and end times of the clip, and the frame to use for the preview image:

  • timecode_format: defines the timecodes used for the start, end, and image times. The format can be qt_text or one of the SMPTE formats illustrated in the Timecode Formats appendix. If you omit the <timecode_format> tag, the format defaults to qt_text.

  • start_time: specifies the start of the preview clipping from the source video.

  • end_time: specifies the end of the preview clipping from the source video. Minimum clip duration is 30 seconds and maximum duration is 120 seconds.

  • image_time (required): specifies the frame to use for the preview image. The frame can be anywhere within the full video source and the frame must be within the start_time and end_time. If you specify an image_time but use the qt_text format, the frame nearest the image_time is used for the preview image (you cannot specify a frame for the preview image using qt_text).

Note: The frame cut with the image_time attribute is not the same as the <production_still_image_time> tag, which is used to represent the image for the full source asset, not the preview source.

Important: The <previews> block and <preview> tag replace the <preview starttime=""/> tag. The tag is still supported. However, if you wish to specify a preview image and have a preview duration of 120 seconds, you must use the <previews> block and the <preview> tag instead of the <preview starttime=""/> tag. See the annotation below for how to specify only a preview start time.

</previews>

XPath

<preview starttime="273"/>

Preview Start Time (required until you start to use the previews block)

Allows a custom start time for the preview video to be specified. This feature should be used to ensure that all previews in a series contain individual episode-specific content excluding title sequences, previous episode synopses, or promotional material.

The starttime attribute should be specified in seconds from program start. If you leave out the tag, you will see a warning and the default starttime (360 seconds) will be used. At some point in the future, a delivery without the preview start time will be blocked.

In this example, the preview will be a 30-second segment of the video starting at 273 seconds from program start.

Important: The <previews> block and <preview> tag replace the <preview starttime=""/> tag. The tag is still supported. However, if you wish to specify a preview image and have a preview duration of 120 seconds, you must use the <previews> block and the <preview> tag instead of the <preview starttime=""/> tag. See the annotation above for how to specify a preview image and have a preview duration of 120 seconds.

XPath

<products>

 <product>

Product (required)

For each territory in which a video is to be sold, a product must be defined.

XPath

<territory>US</territory>

Territory (required; can be updated)

The territory (country or region) in which this video product is cleared for sale. Must be a valid ISO 3166 alpha-2 country code. Note that some countries in the ISO 3166 alpha-2 country list contain other countries (for example, United States includes Puerto Rico).

For a list of ISO 3166-1-alpha-2 codes, see https://www.iso.org/iso-3166-country-codes.html.

For more information on ISO codes, see https://www.davros.org/misc/iso3166.html.

Important: Worldwide products are not supported. If you include <territory>WW</territory> for a product, the package will be rejected.

XPath

<sales_start_date>2007-11-23</sales_start_date>

Sales Start Date (required; can be updated)

The date that this video is made available for sale to customers in the specified territory only. This is also known as the “street date” of the video. This field must be in YYYY-MM-DD format.

In this example, the start date of "2007-11-23" results with the episode being available for sale at midnight in the local timezone November 23, 2007.

Note: If cleared_for_sale is true, the <sales_start_date> is required.

XPath

<cleared_for_sale>true</cleared_for_sale>

Cleared For Sale (required; can be updated)

Specifies whether the episode can be sold for EST sale in the product’s territory. Accepted values are true or false. If not specified, the default is true.

Note: If cleared_for_sale is true, the <sales_start_date> is required.

XPath

<bundle_only>true</bundle_only>

Bundle Only (optional, can be updated)

Use <bundle_only> for episodes that are not for sale individually and that are only available to customers who purchase the entire season. The value must be either true or false in English. If not specified, the default is false. If set to true, the episode can only be purchased as part of the season and not as a stand-alone item. If set to false, the episode will be available for purchase as a stand-alone item.

Important: To make an episode available only with the bundle, the episode must have <cleared_for_sale> set to true.

    </product>

   </products>

  </video>

</package>

TV Episode Metadata Example with Multiple Regions

The following metadata example is an excerpt from a full metadata delivery. The example shows just a few tags to provide the context for using the <regions> block to supply release dates by territory. See Basic TV Episode Metadata Annotated for an explanation of a full metadata delivery.

<?xml version="1.0" encoding="UTF-8"?><package xmlns="http://apple.com/itunes/importer" version="tv5.3> <provider>abc</provider> <language>en-US</language> <video> <type>tv</type> <subtype>episode</subtype> <container_id>ABC_GREYSANATOMY_SEASON_004</container_id><!-- NOTE: Some tags have been omitted in this example (as indicated by the three dots) for brevity and focus. Do not omit those tags from your package. --> . . . <release_date>2007-11-22</release_date> <regions> <region> <territory>GB</territory> <release_date>2007-11-23</release_date> </region> <region> <territory>CA</territory> <release_date>2007-11-24</release_date> </region> </regions> . . . <products> <product> <territory>US</territory> <sales_start_date>2007-11-23</sales_start_date> <cleared_for_sale>true</cleared_for_sale> <bundle_only>true</bundle_only> </product> <product> <territory>GB</territory> <sales_start_date>2007-11-24</sales_start_date> <cleared_for_sale>true</cleared_for_sale> <bundle_only>true</bundle_only> </product> <product> <territory>CA</territory> <sales_start_date>2007-11-25</sales_start_date> <cleared_for_sale>true</cleared_for_sale> <bundle_only>true</bundle_only> </product> </products> </video></package>

TV Episode Metadata Example with Multiple Regions Annotated

XPath

<release_date>2007-11-22</release_date>

Release Date (required, can be updated)

The original air date of this episode, or the date that the content was first made available to the public. The release date supplied with this tag (under <video> as opposed to under <region>) applies to the default country associated with the season. In this example, the default country is the US. This date also applies by default to territories that do not have an explicitly-set release date of its own for this episode set using the <region> block.

The date must be in the format YYYY-MM-DD where YYYY is the 4-digit year, MM is the 2-digit month, and DD is the two-digit day.

Important: This date is used for informational purposes and will not affect the sales availability of this video. An additional element, <sales_start_date>, controls when content becomes available for sale and is covered later in this document.

In this example, 2007-11-22 is the air date because the episode first aired on November 22, 2007.

XPath

<regions>

Regions (optional)

Begins the <regions> block used to specify regional variations in release dates (as displayed in the Store).

XPath

<region>

Region (required within the <regions> block)

A region must be specified for each territory (country or region) that requires localized release date information. In this example, the episode is being released in two territories on dates different from the release date supplied under <video>.

XPath

<territory>GB</territory>

Territory (required within the <region> block)

The territory (country or region) for the corresponding release date provided for this episode. Must be specified as an ISO 3166 alpha-2 country code. Note that some countries in the ISO 3166 alpha-2 country list contain other countries (for example, United States includes Puerto Rico)

For a list for ISO 3166-1 alpha 2 codes, see https://www.iso.org/iso-3166-country-codes.html.

For more information on ISO codes, see https://www.davros.org/misc/iso3166.html.

XPath

<release_date>2007-11-23</release_date>

Release Date (required within the <region> block, can be updated)

This is the date the episode was first aired in the specified territory, or the date that the content was first made available to the public in that territory. This does not affect the actual date of sale, which is specified using <sales_start_date> in the <products> block.

The release date supplied with this tag (under <region> as opposed to under <video>) is optional and applies to the associated territory. Use this tag when the release date in a territory is different from the release date (supplied under <video>) of the default country of the episode.

The date must be in the format YYYY-MM-DD where YYYY is the 4-digit year, MM is the 2-digit month, and DD is the 2-digit day.

      </region>

    </regions>

  </video>

</package>

TV Episode Metadata Example without Closed Captions and with Burned-In Text

Below is an example metadata.xml file for an episode of the ABC series Grey’s Anatomy that does not include closed captions. If an episode does not include closed captions, you must use the <accessibility_info> tags to indicate why they are not included. The <accessibility> tag within the <accessibility_info> block must include the reason_code attribute; the available reason code is described in the annotations below.

In this example, the episode contains burned-in text, which can be narratives burnt into the visual picture or burned-in subtitles. Narrative text is text that appears on screen to supplement the plot of the story without the use of a narrator, such as “Earlier that morning.” Opening title sequences, and credits are not considered “text” in this case; those are expected to be in the episode. If you are using burned-in text, you must indicate that the video includes the text using an attribute on the source data file ("image.textless_master") and set the value to false. You also deliver two more attributes to indicate the language of the burned-in text. In addition for deliveries in the US that are exempt from closed caption rules, the <accessibility> tag within the <accessibility_info> block must include the reason_code attribute with "NO_CC_SDH_FOREIGN_LANGUAGE_ENGLISH_SUBS" as the value. Specifying the "image.textless_master" attribute is required; if the video includes burned-in text and you do not specify the attribute, the delivery will be blocked.

Note that the <accessibility_info> tags can also be provided in an asset-only update within the <assets> block. See TV Asset-Only Delivery/Update Example.

<?xml version="1.0" encoding="UTF-8"?><package xmlns="http://apple.com/itunes/importer" version="tv5.3"> <provider>abc</provider> <language>en-US</language> <video> <type>tv</type> <subtype>episode</subtype> <container_id>ABC_GREYSANATOMY_SEASON_004</container_id> <container_position>9</container_position> <vendor_offer_code>408CH98720X103</vendor_offer_code> <vendor_id>ABC_GREYSANATOMY_409_PROMO</vendor_id> <isan>0000-0001-DE1D-0000-M-0000-0000-8</isan> <episode_production_number>409</episode_production_number> <countries_of_origin> <country primary="true">US</country> <country>CA</country> </countries_of_origin> <production_countries> <country primary="true">US</country> </production_countries> <original_spoken_locale>fr-CA</original_spoken_locale> <title>Grey's Anatomy Promotion</title> <studio_release_title>Grey's Anatomy Promotion</studio_release_title> <description>A preview of the upcoming three-part, emotion-packed finale.</description> <release_date>2007-11-22</release_date> <copyright_cline>2007 ABC Studios. All Rights Reserved.</copyright_cline> <ratings> <rating system="us-tv" code="TV-14"/> <advisory system="us-cable" code="AL"/> <rating system="ca-tv" code="14+"/> </ratings> <accessibility_info> <accessibility role="captions" available="false" reason_code="NO_CC_SDH_FOREIGN_LANGUAGE_ENGLISH_SUBS"/> </accessibility_info> <assets> <asset type="full"> <data_file role="source"> <locale name="fr-CA"/> <file_name>ABC_GREYSANATOMY_409_PRORES_PROMO.mov</file_name> <size>326564</size> <checksum type="md5">ab822c2108d9df2d40b1704bff10ea2a</checksum> <attribute name="image.textless_master">false</attribute> <attribute name="image.burned_forced_narrative.locale">en-US</attribute> <attribute name="image.burned_subtitles.locale">en-US</attribute><!-- Note: Crop dimensions are supported for QuickTime source only. --> <attribute name="crop.top">4</attribute> <attribute name="crop.bottom">4</attribute> <attribute name="crop.left">2</attribute> <attribute name="crop.right">2</attribute> </data_file> </asset> </assets> <preview starttime="273"/> <products> <product> <territory>US</territory> <sales_start_date>2007-11-23</sales_start_date> <cleared_for_sale>true</cleared_for_sale> <bundle_only>true</bundle_only> </product> <product> <territory>CA</territory> <sales_start_date>2008-01-05</sales_start_date> <cleared_for_sale>true</cleared_for_sale> <bundle_only>true</bundle_only> </product> </products> </video></package>

TV Episode Metadata without Closed Captions and with Burned-In Text Annotated

These annotations cover only the <accessibility_info> tags and textless master attributes for use with a video that does not include closed captions. When a video does not include closed captions, you must indicate the reason why they have not been included.

XPath

<accessibility_info>

Accessibility Information (required for U.S. deliveries, can be updated)

Begins the block that describes the availability of closed captions for the TV episode or made-for-TV movie.

XPath

<accessibility role="captions" available="false" reason_code="NO_CC_SDH_FOREIGN_LANGUAGE_ENGLISH_SUBS"/>

Accessibility (required for U.S. deliveries, can be updated)

Indicates if closed captions are available. If closed captions are not available, use the reason_code attribute to explain why.

Attributes include:

  • role: Refers to the data file for captions; "captions" is the only supported value.

  • available: Indicates availability of captions. Accepted values include "true" or "false". If you have delivered closed captions within the same package, the value cannot be "false".

  • reason_code: Supplies the reason closed captions are not included. Note that the reason_code attribute is not allowed if available="true", and required when available="false". Accepted value is:

   "NO_CC_SDH_FOREIGN_LANGUAGE_ENGLISH_SUBS"

The values for reason_code are case-sensitive.

XPath

<data_file role="source">

  . . .

    <attribute name="image.textless_master">false</attribute>

    <attribute name="image.burned_forced_narrative.locale">en-US</attribute>

    <attribute name="image.burned_subtitles.locale">en-US</attribute>

</data_file>

Textless Master (required)

The video source data file in this example contains text on the source (burned-in forced narrative and burned-in subtitles), so additional attributes must be delivered:

  • <attribute name="image.textless_master">false</attribute>: Set to false to indicate the video contains text.

  • <attribute name="image.burned_forced_narrative.locale">en-US</attribute>: Indicate the language in which the burned-in narrative appears. (This attribute is required when the video contains burned-in, forced narrative.)

  • <attribute name="image.burned_subtitles.locale">en-US</attribute>: Indicate the language in which the burned-in subtitles appear. (This attribute is required when the video contains burned-in subtitles.)

Note: Specifying the "image.textless_master" attribute is required for all videos.

TV Episode Metadata with Cue Sheets

Cue sheets provide a list of music played in a TV episode. If an episode contains music, you can optionally supply cue sheets that list the start time, duration, title, performers, and other details of a musical piece. The following metadata example is an excerpt from a full metadata delivery. The example shows just a few tags to provide the context for using the <cue_sheet> block to supply cue sheets for the episode. See Basic TV Episode Metadata Annotated for an explanation of a full metadata delivery.

Currently, the information you supply for cue sheets does not display on the Store.

<?xml version="1.0" encoding="UTF-8"?><package xmlns="http://apple.com/itunes/importer" version="tv5.3"> <provider>abc</provider> <language>en-US</language> <video> <type>tv</type> <subtype>episode</subtype> <container_id>ABC_GREYSANATOMY_SEASON_004</container_id> <container_position>9</container_position><!-- NOTE: Some tags have been omitted in this example (as indicated by the three dots) for brevity and focus. Do not omit those tags from your package. --> . . . <cue_sheet> <cue> <sequence_number>1</sequence_number> <time> <start_timecode>00:00:27</start_timecode> <duration>00:04:01</duration> </time> <title>Movie Star</title> <artists> <artist> <artist_name>Róisín Murphy</artist_name> <apple_id>17128885</apple_id> <roles> <role>Performer</role> <role>Producer</role> </roles> </artist> <artist> <artist_name>Paul Dolby</artist_name> <apple_id>261542243</apple_id> <roles> <role>Composer</role> </roles> </artist> </artists> <isrc>GBAYE0702647</isrc> <iswc>T-900.282.518-5</iswc> <copyright_cline>2007 Parlophone UK</copyright_cline> <copyright_pline>2007 Parlophone UK</copyright_pline> <usage>Featured</usage> </cue> <cue> <sequence_number>2</sequence_number> <time> <start_timecode>00:07:46</start_timecode> <duration>00:04:18</duration> </time> <title>Where I Stood</title> <artists> <artist> <artist_name>Missy Higgins</artist_name> <apple_id>6765782</apple_id> <roles> <role>Performer</role> <role>Composer</role> </roles> </artist> </artists> <isrc>AUEL80700022</isrc> <iswc>T-060.857.690-4</iswc> <copyright_cline>2007 Eleven: A Music Company</copyright_cline> <copyright_pline>2007 Eleven: A Music Company</copyright_pline> <usage>Background</usage> </cue> <!-- Additional musical pieces here --> </cue_sheet> </video></package>

TV Episode Metadata with Cue Sheets Annotated

XPath

<cue_sheet>

Cue Sheet (optional; can be updated)

Provides a list of music played in a television episode.

XPath

<cue>

Cue (required within the <cue_sheet> block)

Begins a description of a musical piece played in a television episode. There can be multiple <cue> tags in a cue sheet.

XPath

<sequence_number>1</sequence_number>

Sequence Number (required within the <cue> block)

The order number for the musical piece in the episode. This value should be unique for each musical piece listed in the cue sheet.

XPath

<time>

Time (required within the <cue> block)

The <time> tag describes when the musical piece appears in the episode and its duration.

XPath

<start_timecode>00:00:27</start_timecode>

Start Timecode (optional)

Specifies the start time of the musical piece in the episode.

Note: The format of this value is HH:MM:SS (hours:minutes:seconds).

XPath

<duration>00:04:01</duration>

Duration (required within the <cue> block)

Specifies the length of time the individual musical piece featured within the production.

Note: The format of this value is HH:MM:SS (hours:minutes:seconds).

</time>

XPath

<title>Movie Star</title>

Title (required within the <cue> block)

The title of the musical piece.

For single-byte characters (such as those drawn from the ASCII character set), there is a limit of 256 characters for track titles. For multiple-byte characters (for example, Japanese), the limit is 1024 bytes, which can equate to as many as 256 characters.

XPath

<artists>

  <artist>

    <artist_name>Róisín Murphy</artist_name>

    <apple_id>17128885</apple_id>

    <roles>

      <role>Performer</role>

      <role>Producer</role>

    </roles>

  </artist>

...

</artists>

Artists (required within the <cue> block)

Name or Apple ID and roles for each artist in the musical piece. In this context, "artist" can be any contributor including non-performing persons (for example, producer) or composition-related contributors (for example, songwriter/lyricist or composer). Individual artists should be listed separately and not grouped together (for example, "Ella Fitzgerald", "Louis Armstrong" should be used instead of "Ella Fitzgerald and Louis Armstrong"). Note that you should always include composition-related contributor information to the extent you have it.

Artist

You can refer to the artist by name (using the <artist_name> tag or by Apple ID (using the <apple_id> tag). Apple assigns every artist a unique Apple ID; Apple recommends using the Apple ID to avoid the ambiguity in cases where artists share the same name as other music artists, or actors or crew members. You can supply the <artist_name>, the <apple_id>, or both the <artist_name> and <apple_id>. If you supply both tags, the <artist_name> tag will be ignored in favor of the Apple ID. If you do not know the artist's Apple ID, you can do a metadata lookup using Artist Lookup Mode in Transporter. For any subsequent updates, you can use the <apple_id> tag instead of or in addition to the name, to avoid ambiguity.

Role

Use the <role> tag to define the part that a particular artist performs on the musical piece. Some roles are required (as shown in the list below) and other roles are optional. See Recommended Contributor Roles for a list of all the roles recognized by the Apple TV app.

  • Performer: always required.

  • Songwriter (or Composer): always required. Note that songwriter and composer are often used to refer to the same contributor; you can specify either songwriter or composer to refer to an artist, but at least one of those roles is required.

  • Featuring (or With): required if there is a featured artist on the musical piece. Adding the artist with the Featuring or With role ensures that the episode will show up on the featured artist’s page.

Additional roles (such as Lead Guitar, Lead Vocals, Producer) are optional, but highly recommended. See Recommended Contributor Roles for a list of recommended contributor roles. If your exact role is not mentioned in the tables, you can still deliver it. These recommendations are included to ensure commonly-used roles are formatted consistently.

Note: You can use the following roles to designate the songwriter: <role>Composer</role>, <role>Lyricist</role>, or <role>Songwriter</role>. You can add as many songwriters/composers as needed for the musical piece. Failure to add full and accurate songwriter metadata in a timely manner may delay payment of royalties to publishers and songwriters.

Primary Status

Primary status indicates whether or not the episode appears on the artist’s page on the Store. Typically, there are one or two primary (lead) artists and several supporting artists. Primary status is reserved for the primary (lead) artists. Do not tag supporting artists or contributors as primary.

XPath

<isrc>GBAYE0702647</isrc>

ISRC (optional)

The ISRC (international standard recording code) for the musical piece. ISRCs must be unique across all recordings. It is normal for an ISRC to appear in the Store more than once if the same recording is included in more than one production (for example, an album, music video, TV episode, or film). In this case, the musical piece must have exactly the same audio. A re-recorded, remixed or otherwise different (no matter how similar) musical piece must have a unique ISRC.

Important: ISRCs must not include dashes and should remain only letters and numbers as in the example, GBAYE0702647.

XPath

<iswc>T-900.282.518-5</iswc>

ISWC (optional)

The ISWC (international standard work code) for musical pieces. This uniquely identifies intellectual property such as musical and literary works.

XPath

<copyright_cline>2007 Parlophone UK</copyright_cline>

Copyright © Line (optional; can be updated)

Copyright line for the musical piece. The format required is year followed by owner. The appropriate © symbol will automatically be added and should not be included in the data.

XPath

<copyright_pline>2007 Parlophone UK</copyright_pline>

Copyright P-Line (optional; can be updated)

Performance copyright line for the piece. The format required is year followed by owner. The appropriate ℗ symbol will automatically be added and should not be included in the data. Some videos don't seem to have this P-line in the slate. Remove this tag if this is the case.

XPath

<usage>Featured</usage>

Usage (optional)

Specifies how the musical piece was featured in the production using one of the following values:

  • Background: Music that is not audible to the characters in the production, such as “mood music.”

  • Featured: Music played by featured performers, or as part of the action presented and audible to the characters, such as the character dancing to a song.

  • Signature: Theme tune of a production or program.

      </cue>

. . .

    </cue_sheet>

  </video>

</package>

TV Episode Metadata Update Example

Below is an example metadata.xml update file for the Basic TV Episode Metadata Example. In this example, the update will replace the Store's currently displayed copyright, U.S. rating, video asset, and U.S. sales start date. Additionally, this update will add a new U.S. advisory, “GL,” in addition to the currently active advisory, “AL.” Updated fields are in bold.

<?xml version="1.0" encoding="UTF-8"?><package xmlns="http://apple.com/itunes/importer" version="tv5.3"> <provider>abc</provider> <language>en-US</language> <video> <type>tv</type> <subtype>episode</subtype> <container_id>ABC_GREYSANATOMY_SEASON_004</container_id> <container_position>9</container_position> <vendor_id>ABC_GREYSANATOMY_409</vendor_id> <isan>0000-0001-DE1D-0000-M-0000-0000-8</isan> <episode_production_number>409</episode_production_number> <countries_of_origin> <country primary="true">US</country> <country>CA</country> </countries_of_origin> <production_countries> <country primary="true">US</country> </production_countries> <original_spoken_locale>en-US</original_spoken_locale> <title>Crash Into Me, Pt. 1</title> <studio_release_title>Crash Into Me, Pt. 1</studio_release_title> <description>An ambulance crash endangers the lives of the paramedics involved, as Meredith and the Chief work on-site to save them, Bailey treats a patient who refuses her help.</description> <release_date>2007-11-22</release_date> <copyright_cline>2008 ABC Studios. All Rights Reserved.</copyright_cline> <ratings> <rating system="us-tv" code="TV-MA"/> <advisory system="us-cable" code="GL"/> <rating system="ca-tv" code="18+"/> </ratings> <preview starttime="273"/> <products> <product> <territory>US</territory> <sales_start_date>2007-12-01</sales_start_date> <cleared_for_sale>true</cleared_for_sale> </product> <product> <territory>CA</territory> <sales_start_date>2008-01-05</sales_start_date> <cleared_for_sale>true</cleared_for_sale> </product> </products> </video></package>

Important:  If you are redelivering a video asset and do not need to change rights or pricing information already supplied, we recommend that you remove the product block tags so as to not disrupt the pricing or inadvertently take the product off the Store.

TV Asset-Only Delivery/Update Example

Video assets can be delivered independently of metadata. Assets cannot be delivered unless the metadata has already been sent and imported. If the assets are sent without previous metadata delivery, the asset delivery will fail.

Note: Not all tags are required in asset-only deliveries and updates. In addition to the tags within the <assets> block, the following are required: the <package> and <provider> tags, the media_type and vendor_id attributes on the <assets> tag, and closed captions. All other tags are not required and will be ignored in an asset-only update.

Important: To deliver assets separately from the metadata, the vendor ID referenced in the already delivered metadata must be supplied in the asset-only delivery metadata.xml file. When delivering updated source video, keep in mind that the duration of the source video must match the duration of the closed caption file (if delivered). If the duration of the source video has changed, you must also deliver an update of the closed caption file, with its cue timing and overall duration changed accordingly to properly sync to the source video.

The example below shows an update to a video that was previously delivered without closed captions and with the <accessibility_info> set to ARCHIVAL_CONTENT. In addition to updating the video asset, this update includes the closed captions asset file and an updated <accessibility_info> tag.

Note that the <accessibility_info> tag can be sent within the <video> block (as shown in the Basic TV Episode Metadata Example) or within the <assets> block in an asset-only update.

<?xml version="1.0" encoding="UTF-8"?> <package xmlns="http://apple.com/itunes/importer" version="tv5.3"> <provider>abc</provider> <assets media_type="video" vendor_id="ABC_GREYSANATOMY_409"> <asset type="full"> <data_file role="source"> <locale name="en-US"/> <file_name>ABC_GREYSANATOMY_409_PRORES.mov</file_name> <size>6970763570</size> <checksum type="md5">6ddabdae6bf2ec84fb680efcfa730fda</checksum> </data_file> <data_file role="captions"> <locale name="en-US"/> <file_name>captions.scc</file_name> <size>9511</size> <checksum type="md5">b46037fe5a793a839b49911a8aa2bdd7</checksum> </data_file> </asset> <accessibility_info> <accessibility role="captions" available="true"/> </accessibility_info> </assets></package>

Crop Dimensions Update Example

Below is an example metadata.xml file to update crop dimensions for the episode delivered in the Basic TV Episode Metadata Example. Only the video asset along with associated data files should be referenced in the metadata. Only the metadata.xml should be included in the .itmsp package.

Note: When sending crop dimensions, send accurate dimensions without unnecessary cropping, especially horizontally. If your video does not contain inactive pixels (that is, it is not matted), you can set all the crop values to zero, or omit the crop dimension attribute tags. If you do not supply any crop dimensions, the values default to 0,0,0,0.

<?xml version="1.0" encoding="UTF-8"?> <package xmlns="http://apple.com/itunes/importer" version="tv5.3"> <provider>abc</provider> <assets media_type="video" vendor_id="ABC_GREYSANATOMY_409"> <asset type="full"> <data_file role="source"> <locale name="en-US"/> <file_name>ABC_GREYSANATOMY_409_PRORES.mov</file_name> <size>6970763570</size> <checksum type="md5">6ddabdae6bf2ec84fb680efcfa730fda</checksum> <attribute name="crop.top">4</attribute> <attribute name="crop.bottom">4</attribute> <attribute name="crop.left">2</attribute> <attribute name="crop.right">2</attribute> <attribute name="image.textless_master">true</attribute> </data_file> </asset> </assets></package>

Closed Captions Asset-Only Update Examples

Below is an example metadata.xml file to update closed captions for the Basic TV Episode Metadata Example. In the initial delivery, the <accessibility_info> was set to true. Because the closed captions asset is being re-delivered and the availability information has not changed, the <accessibility_info> block does not need to be supplied. Only the metadata.xml and corrected_captions.scc file should be included in the .itmsp package.

<?xml version="1.0" encoding="UTF-8"?><package xmlns="http://apple.com/itunes/importer" version="tv5.3"> <provider>abc</provider> <assets media_type="video" vendor_id="ABC_GREYSANATOMY_409"> <asset type="full"> <data_file role="captions"> <locale name="en-US"/> <file_name>corrected_captions.scc</file_name> <size>9511</size> <checksum type="md5">5a793a8b46037fe8aa2bdd739b49911a</checksum> </data_file> </asset> </assets></package>

In the example below, closed captions are being updated, but the locale of the new captions file is different from the locale on the existing captions file. When updating a closed caption file, the locale must match the locale of the file you are replacing. If the previously-delivered file had a locale specified and you want to replace it with a new file that has a different locale, you must first remove the existing captions file (<data_file role="captions" remove="true">).

<?xml version="1.0" encoding="UTF-8"?><package xmlns="http://apple.com/itunes/importer" version="tv5.3"> <provider>abc</provider> <assets media_type="video" vendor_id="ABC_GREYSANATOMY_409"> <asset type="full"> <data_file role="captions" remove="true"> <locale name="en-US"/> <file_name>09736156444-english.scc</file_name> <size>9613</size> <checksum type="md5">3a80375a79fe8aa2bb49911add739b46</checksum> </data_file> <data_file role="captions"> <locale name="es"/> <file_name>09736156444-spanish.scc</file_name> <size>4521</size> <checksum type="md5">31eb41f44b1649d09d6cce6a88342024</checksum> <attribute name="program.start.timecode">-01:00:00:00</attribute> </data_file> </asset> </assets></package>

Asset Removal Example

Below is an example to remove the source asset. In this case, when the package was first delivered, the <locale> tag was incorrect. To correct the <locale>, the old source asset must be removed and redelivered with the correct <locale>. Only the source asset along with the associated data file need be referenced in the XML. The role, filename, locale, checksum, and size provided will be compared to the asset currently on file, and if the role, <filename>, <size>, <locale>, and <checksum> match, the asset will be removed. To add the source with the correct <locale>, include another <data_file> block within the same <asset> block as shown in the example below. Both the metadata.xml and the redelivered asset must be included in the .itmsp Package.

Important: There should be only one <asset> block for the same upload of the same video with the same type and territories. For example, the only way to change the locale of a source is to remove the existing source and add the new source; the <data_file> elements used to remove the source (remove="true") and the <data_file> elements used to add the source should go under the same <asset type="full"> block.

<?xml version="1.0" encoding="UTF-8"?><package xmlns="http://apple.com/itunes/importer" version="tv5.3"> <provider>abc</provider> <assets media_type="video" vendor_id="ABC_GREYSANATOMY_409"> <asset type="full"> <data_file role="source" remove="true"> <locale name="en-US"/> <file_name>ABC_GREYSANATOMY_409_PRORES.mov</file_name> <size>6763970564</size> <checksum type="md5">c2108d9ea7d4ba2a0df2d4f10b1704bf</checksum> </data_file> <data_file role="source"> <locale name="en-GB"/> <file_name>ABC_GREYSANATOMY_409_PRORES.mov</file_name> <size>6763970564</size> <checksum type="md5">c2108d9ea7d4ba2a0df2d4f10b1704bf</checksum> </data_file> </asset> </assets></package>
XPath

<data_file role="source" remove="true">

Data File (required)

A data file element block must be included if the asset is to be removed. Set the attribute remove to "true".

In this block, the role, <filename>, <size>, and <checksum> elements are required. Additionally, <locale> is required if you are removing an asset that was previously sent with a <locale> tag.

In this example, another data file element block is included to re-deliver the asset with the correct locale.

Re-using Audio from a Previously-Delivered Video Source

You can re-use a previously-delivered video source as an audio file. This could be useful if you are delivering a new video source with embedded audio, but you want to use the embedded audio from a previously-delivered video source instead of the audio embedded in the new video source. In this case, neither stereo nor surround embedded audio will be used from the new video source. To re-use the previously-delivered video source as an audio file, you use two attributes: ignore_audio and reused_old_source. When delivering the new source, you would use the <attribute name="ignore_audio">true</attribute> on the data file. In the same delivery, you would supply the previously-delivered video source, but change the role from source to audio and use the <attribute name="reused_old_source">true</attribute> on the data file.

Below is an example of the XML used in the original delivery and then an example of the updated delivery:

Previously-delivered video source:

<asset type="full"> <data_file role="source"> <locale name="en-US"/> <file_name>full-source-with-good-audio.mov</file_name> <size>343376467</size> <checksum type="md5">301e72262aea7d504aca91abe229cded</checksum> </data_file></asset>

Delivering new source and reusing old source audio:

<asset type="full"> <data_file role="source"> <locale name="en-US"/> <file_name>new-full-source-with-bad-audio.mov</file_name> <size>523996467</size> <checksum type="md5">5a793a8b46037fe8aa2bdd739b49911a</checksum> <attribute name="ignore_audio">true</attribute> </data_file> <data_file role="audio"> <locale name="en-US"/> <file_name>full-source-with-good-audio.mov</file_name> <size>343376467</size> <checksum type="md5">301e72262aea7d504aca91abe229cded</checksum> <attribute name="reused_old_source">true</attribute> </data_file> . . .</asset>

Takedowns

Overview

Takedowns allow content to be removed from sale from any or all territories in one update.

  • Metadata is exactly the same as a metadata-only update (without asset data files), except that <sales_start_date> is removed from the metadata and <cleared_for_sale> is set to false for any territories in which the episode is to be taken down.

  • May be for one or more territories.

  • The takedown applies only to the specified territory. For example, if both “US” and “CA” are specified on an episode and “US” is taken down, the episode will be removed from sale in U.S.; however, it will remain live in Canada.

Takedown Metadata Example

<?xml version="1.0" encoding="UTF-8"?><package xmlns="http://apple.com/itunes/importer" version="tv5.3"> <provider>abc</provider> <language>en-US</language> <video> <type>tv</type> <subtype>episode</subtype> <container_id>ABC_GREYSANATOMY_SEASON_004</container_id> <container_position>9</container_position> <vendor_id>ABC_GREYSANATOMY_409</vendor_id> <isan>0000-0001-DE1D-0000-M-0000-0000-8</isan> <episode_production_number>409</episode_production_number> <countries_of_origin> <country primary="true">US</country> <country>CA</country> </countries_of_origin> <production_countries> <country primary="true">US</country> </production_countries> <title>Crash Into Me, Pt. 1</title> <studio_release_title>Crash Into Me, Pt. 1</studio_release_title> <description>An ambulance crash endangers the lives of the paramedics involved, as Meredith and the Chief work on-site to save them, Bailey treats a patient who refuses her help.</description> <release_date>2007-11-22</release_date> <copyright_cline>2007 ABC Studios. All Rights Reserved.</copyright_cline> <products> <product> <territory>US</territory> <cleared_for_sale>false</cleared_for_sale> </product> </products> </video></package>
XPath

<cleared_for_sale>false</cleared_for_sale>

Cleared For Sale (optional)

Allows providers to remove content from the Store or to deliver content that should not be made available to the public, such as test material.

Important: If you are redelivering a video asset and do not need to change rights or pricing information already supplied, we recommend that you remove the product block tags so as to not disrupt the pricing or inadvertently take the product off the Store.

Asset Sharing

TV video assets can now be shared between two or more playlists. This is useful for adapting your offerings to local markets and creating promotional playlists. Asset sharing allows videos to be linked to two or more vendor IDs.

The following example shows how a French playlist shares the U.S. asset for the ninth episode of Grey’s Anatomy. The shared asset is specified using the new <share_assets> tag. This tag replaces the <assets> block. If the metadata.xml references both an <assets> block and a <share_assets> block or if the delivered episode already has a video, the package will be rejected. Identify the shared video asset by either the vendor_id or apple_id. During delivery, the video asset is taken from the referenced vendor_id or apple_id.

Note: In the asset sharing metadata for the French playlist, note that the <accessibility_info> block is not included; the accessibility tags must be specified in the metadata for the U.S. asset.

<?xml version="1.0" encoding="UTF-8"?><package xmlns="http://apple.com/itunes/importer" version="tv5.3"> <provider>abc</provider> <language>en-US</language> <video> <type>tv</type> <subtype>episode</subtype> <container_id>ABC_GREYSANATOMY_SEASON_004_FR</container_id> <container_position>9</container_position> <vendor_id>ABC_GREYSANATOMY_409_FR</vendor_id> <isan>0000-0001-DE1D-0000-M-0000-0000-8</isan> <episode_production_number>409</episode_production_number> <countries_of_origin> <country primary="true">US</country> <country>CA</country> </countries_of_origin> <production_countries> <country primary="true">US</country> </production_countries> <original_spoken_locale>en-US</original_spoken_locale> <title>Crash Into Me, Pt. 1</title> <studio_release_title>Crash Into Me, Pt. 1</studio_release_title> <description>An ambulance crash endangers the lives of the paramedics involved, as Meredith and the Chief work on-site to save them, Bailey treats a patient who refuses her help.</description> <release_date>2007-11-22</release_date> <copyright_cline>2007 ABC Studios. All Rights Reserved.</copyright_cline> <ratings> <rating system="fr-tv" code="-16"/> </ratings> <share_assets vendor_id="ABC_GREYSANATOMY_409"/> <products> <product> <territory>FR</territory> <sales_start_date>2007-11-23</sales_start_date> <cleared_for_sale>true</cleared_for_sale> </product> </products> </video></package>
XPath

<share_assets vendor_id="ABC_GREYSANATOMY_409"/>

Shared Assets (optional)

Allows providers to share video assets between playlists. The video being shared is referenced by either vendor_id or apple_id, but not both.

Important: If you are sharing assets, do not also include the <assets> block. The <share_assets> tag replaces the <assets> block. Also, do not include the <accessibility_info> block.

TV QC Notes Delivery

Deliver QC Notes Using a Tag

The <comments> tag provides an alternative method for delivering quality control notes. If the QC notes contain more than 4,000 characters (approximately 2 double-spaced pages), deliver the notes as a PDF (see Deliver QC Notes as a PDF File).

<?xml version="1.0" encoding="UTF-8"?><package xmlns="http://apple.com/itunes/importer" version="tv5.3"><comments>This episode contains macro blocking at 03:25.</comments> <provider>abc</provider> <language>en-US</language> <video> <type>tv</type> <subtype>episode</subtype> <container_id>ABC_GREYSANATOMY_SEASON_004</container_id> <container_position>9</container_position> <vendor_offer_code>408CH98720X103</vendor_offer_code> <vendor_id>ABC_GREYSANATOMY_409</vendor_id> <isan>0000-0001-DE1D-0000-M-0000-0000-8</isan> <episode_production_number>409</episode_production_number> <countries_of_origin> <country primary="true">US</country> <country>CA</country> </countries_of_origin> <production_countries> <country primary="true">US</country> </production_countries> <original_spoken_locale>en-US</original_spoken_locale> <title>Crash Into Me, Pt. 1</title> <studio_release_title>Crash Into Me, Pt. 1</studio_release_title> <description>An ambulance crash endangers the lives of the paramedics involved, as Meredith and the Chief work on-site to save them, Bailey treats a patient who refuses her help.</description> <release_date>2007-11-22</release_date> <copyright_cline>2007 ABC Studios. All Rights Reserved.</copyright_cline> <ratings> <rating system="us-tv" code="TV-14"/> <advisory system="us-cable">AL</advisory> <rating system="ca-tv" code="14+"/> </ratings> <accessibility_info> <accessibility role="captions" available="true"/> </accessibility_info> <assets> <asset type="full"> <data_file role="source"> <locale name="en-US"/> <file_name>ABC_GREYSANATOMY_409_PRORES.mov</file_name> <size>6763970564</size> <checksum type="md5">c2108d9ea7d4ba2a0df2d4f10b1704bf</checksum><!-- Note: Crop dimensions are supported for QuickTime source only. --> <attribute name="crop.top">4</attribute> <attribute name="crop.bottom">4</attribute> <attribute name="crop.left">2</attribute> <attribute name="crop.right">2</attribute> <attribute name="image.textless_master">true</attribute> </data_file> <data_file role="captions"> <file_name>captions.scc</file_name> <size>9511</size> <checksum type="md5">5a793a8b46037fe8aa2bdd739b49911a</checksum> <locale name="en-US"/> <attribute name="program.start.timecode">-01:00:00:00</attribute> </data_file> </asset> </assets> <preview starttime="273"/> <products> <product> <territory>US</territory> <sales_start_date>2007-11-23</sales_start_date> <cleared_for_sale>true</cleared_for_sale> <bundle_only>true</bundle_only> </product> <product> <territory>CA</territory> <sales_start_date>2008-01-05</sales_start_date> <cleared_for_sale>true</cleared_for_sale> <bundle_only>true</bundle_only> </product> </products> </video></package>
XPath

<comments>This episode contains macro blocking at 03:25.</comments>

QC Notes (optional, 1-4,000 characters)

Supplies the text of the quality control note. Use this tag when the notes are less than 4,000 characters (approximately 2 double-spaced pages).

Important: Character counts are for standard 8-bit characters (that is, Roman alphabet). Fewer double-wide characters (for example, Japanese symbols) are allowed.

Deliver QC Notes as a PDF File

The following examples show how to deliver and remove QC notes (PDF) for a full source video. The file must be in PDF format and there are no limitations on the size of the file. Multiple QC notes can be delivered for the same "full" video source, but the names must be different. To deliver multiple notes for an asset, each one must be in its own <data_file> block, and each <data_file> block should go under the same <asset> block. To replace a file, first remove it (see Remove QC Notes) and then redeliver it.

<?xml version="1.0" encoding="UTF-8"?><package xmlns="http://apple.com/itunes/importer" version="tv5.3"> <provider>abc</provider> <assets media_type="video" vendor_id="ABC_GREYSANATOMY_409"> <asset type="full"> <data_file role="notes"> <file_name>ABC_GREYSANATOMY_409-source-notes.pdf</file_name> <size>12582912</size> <checksum type="md5">35649a015c941c0f9d42f5c2054a25ab</checksum> </data_file> </asset> </assets></package>
XPath

<data_file role="notes">

  <file_name>ABC_GREYSANATOMY_409-source-notes.pdf</file_name>

  <size>12582912</size>

  <checksum type="md5">e5649a015c941c0f9d42f5c2054a25ab</checksum>

</data_file>

Data File (required)

A data file element block must be included to deliver notes. The vendor ID of the full source must be referenced.

In this block, the role, <filename>, <size>, and <checksum> elements are required.

Remove QC Notes

<?xml version="1.0" encoding="UTF-8"?><package xmlns="http://apple.com/itunes/importer" version="tv5.3"> <provider>abc</provider> <assets media_type="video" vendor_id="ABC_GREYSANATOMY_409"> <asset type="full"> <data_file role="notes" remove="true"> <file_name>ABC_GREYSANATOMY_409-source-notes.pdf</file_name> <size>12582912</size> <checksum type="md5">35649a015c941c0f9d42f5c2054a25ab</checksum> </data_file> </asset> </assets></package>
XPath

<data_file role="notes" remove="true">

  <file_name>ABC_GREYSANATOMY_409-source-notes.pdf</file_name>

  <size>12582912</size>

  <checksum type="md5">e5649a015c941c0f9d42f5c2054a25ab</checksum>

</data_file>

Data File (required)

A data file element block must be included to remove notes. The vendor ID of the full source must be referenced. For the notes data file, set the attribute remove to "true".

In this block, the role, <filename>, <size>, and <checksum> elements are required.

Note: Apple has a TV checklist template which can be used for QC notes. It is available in Resources and Help. The TV checklist and QC notes are optional unless required by Apple.

Read-Only Information in Metadata Lookup

About Metadata Lookup

After you submit a package to Apple, you can “look up” the metadata (see Using Lookup Metadata Mode in the Transporter User Guide for information on how to do a metadata lookup). This is useful when you need to resend the package with updated metadata, not only to save time, but if Apple has made any changes to the metadata during quality control, those changes will be reflected in the metadata returned from lookup. It is also useful for the “read-only” information it returns. This appendix explains read-only information in detail.

What is Read-Only Information?

Read-only tags are returned in the metadata lookup and are supplied by Apple to provide information about the package, such as the status of the content review. In addition, metadata lookup also provides the URLs to the scratch encode for your asset so you can confirm the synchronization for your asset before uploading your package again.

Note: If you submit a metadata delivery and you include the read-only tags, those tags will be ignored.

When you retrieve the metadata, you will see two “read-only” tags: <read_only_info> and <read_only_value>. These tags may appear throughout the XML. The <read_only_info> block identifies one or more <read_only_value>(s). The <read_only_value> tag uses the key="XXX" attribute to describe what the information provided represents and the actual value supplied with the tag.

Read-Only Metadata Example

The following partial example shows where read-only information appears in the returned metadata for a TV episode.

<?xml version="1.0" encoding="UTF-8"?><package xmlns="http://apple.com/itunes/importer" version="tv5.2"> <provider>abc</provider> <language>en-US</language> <video> <read_only_info> <read_only_value key="content-review-status">Live-Reviewed</read_only_value> </read_only_info> <type>tv</type> <container_id>ABC_GREYSANATOMY_SEASON_004</container_id> <container_position>9</container_position> <vendor_offer_code>408CH98720X103</vendor_offer_code> <vendor_id>ABC_GREYSANATOMY_409</vendor_id> <isan>0000-0001-DE1D-0000-M-0000-0000-8</isan> <episode_production_number>409</episode_production_number> <countries_of_origin> <country primary="true">US</country> <country>CA</country> </countries_of_origin> <production_countries> <country primary="true">US</country> </production_countries> <original_spoken_locale>en-US</original_spoken_locale> <title>Crash Into Me, Pt. 1</title> <studio_release_title>Crash Into Me, Pt. 1</studio_release_title> <description>An ambulance crash endangers the lives of the paramedics involved, as Meredith and the Chief work on-site to save them, Bailey treats a patient who refuses her help.</description> <release_date>2007-11-22</release_date> <copyright_cline>2007 ABC Studios. All Rights Reserved.</copyright_cline> <ratings> <rating system="us-tv">TV-14</rating> <advisory system="us-cable">AL</advisory> <rating system="ca-tv">14+</rating> </ratings> <accessibility_info> <accessibility role="captions" available="true"/> </accessibility_info> <assets> <asset type="full"> <read_only_info> <read_only_value key="proxy-encode-url">http://a1997.phobos.apple.com/us/r30/Video6/v4/20/a4/6a/20a46aa9-906f-251b-3277-73dfeae404fd/temp..qgqzrqol.s.m4v?downloadKey=1409183166_6ea6f8eafc9148133fcfe423d2830f4f</read_only_value> <read_only_value key="proxy-encode-url-expires">2014-08-27T16:46:06-07:00</read_only_value> </read_only_info> <data_file> <locale name="en-US"/> <file_name>ABC_GREYSANATOMY_409_PRORES.mov</file_name> <size>6763970564</size> <checksum type="md5">c2108d9ea7d4ba2a0df2d4f10b1704bf</checksum><!-- Note: Crop dimensions are supported for QuickTime source only. --> <attribute name="crop.top">4</attribute> <attribute name="crop.bottom">4</attribute> <attribute name="crop.left">2</attribute> <attribute name="crop.right">2</attribute> </data_file> <data_file role="captions"> <locale name="en-US"/> <file_name>captions.scc</file_name> <size>9511</size> <checksum type="md5">5a793a8b46037fe8aa2bdd739b49911a</checksum> <attribute name="program.start.timecode">-01:00:00:00</attribute> </data_file> </asset> </assets> <preview starttime="273"/> <products> <product> <territory>US</territory> <sales_start_date>2007-11-23</sales_start_date> <cleared_for_sale>true</cleared_for_sale> <bundle_only>true</bundle_only> <read_only_info> <read_only_value key="apple-id">269066135</read_only_value> <read_only_value key="storeURL-US">https://itunes.apple.com/us/tv-season/crash-into-me-pt.-1/id264638786?i=269066135&amp;amp;ls=1</read_only_value> </read_only_info> </product> <product> <territory>CA</territory> <sales_start_date>2007-11-23</sales_start_date> <cleared_for_sale>true</cleared_for_sale> <bundle_only>true</bundle_only> <read_only_info> <read_only_value key="apple-id">269066135</read_only_value> <read_only_value key="storeURL-CA">https://itunes.apple.com/ca/tv-season/crash-into-me-pt.-1/id264638786?i=269066135&amp;ls=1</read_only_value> </read_only_info> </product> </products> </video></package>

Read-Only Metadata Example Annotations

XPath

<read_only_value key="content-review-status">Live-Reviewed</read_only_value>

Review Status Read-Only Value

This key attribute ("content-review-status") supplies the current review status of the episode.

Before content can go live on the Apple TV app, Apple may review and confirm the quality of the metadata and the assets, and as a result, Apple may choose to ignore updates to fields that have been edited. You can check the review status to see if the content has been reviewed; if the status indicates “Reviewed,” some tag updates may be ignored.

Below are the possible review statuses:

  • Not Live / Waiting for Review: Content has not yet been reviewed, and must be reviewed before it can go live.

  • Ready / Reviewed: Content has been reviewed and will go live on the specified sales start date or pre-order start date.

  • Ready / Not Reviewed: Content has not been reviewed, and will go live on the specified sales start date or pre-order start date.

  • Live / Reviewed: Content has been reviewed, and is live based on the specified sales start date or pre-order start date.

  • Live / Not Reviewed: Content has not been reviewed, and is live based on the specified sales start date or pre-order date.

XPath

<video>

. . .

 <products>

  <product>

    <territory>US</territory>

    . . .

    <read_only_info>

      <read_only_value key="apple-id">269066135</read_only_value>

      <read_only_value key="storeURL-US">https://itunes.apple.com/us/

tv-season/crash-into-me-pt.-1/id264638786?i=269066135&amp;ls=1</read_only_value>

    </read_only_info>

  </product>

 </products>

Apple ID Read-Only Value

A read-only info block appears in the <product> block of the episode. Each <product> block is territory-specific and the <read_only_info> block applies to the product’s territory.

The key attribute is "apple-id". Apple assigns every episode a unique Apple ID. You can refer to the episode by Apple ID when communicating with Contact Us support instead of the episode name.

Note: The Apple ID is also returned in a “comment” field <!--Apple ID: 269066135--> just below the <video> tag. That value is the same as the value in the <read_only_value> tag. When you do a metadata lookup and then redeliver that metadata, comment fields and read-only tags are ignored.

Store URL Read-Only Value

The key attribute "storeURL" indicates where this content appears on the Apple TV app, linking to the page in Apple TV that shows this episode for this territory. Note that the country code portion of the "storeURL" (the -US in this example) refers to the territory.

XPath

<video>

<assets>

  <asset type="full">

    . . .

    <read_only_info>

      <read_only_value key="proxy-encode-url">http://a1997.phobos.apple.com

/us/r30/Video6/v4/20/a4/6a/20a46aa9-906f-251b-3277-73dfeae404fd/

temp..qgqzrqol.s.m4v?downloadKey=1409183166_6ea6f8eafc9148133fcfe423d2830f4f</read_only_value>

      <read_only_value key="proxy-encode-url-expires">

2014-08-27T16:46:06-07:00</read_only_value>

    </read_only_info>

  </asset>

</assets>

Content URL

A read-only info block appears in the <asset> block for the full asset. Apple creates a scratch encode of the video for your asset so you can confirm the synchronization before uploading your package again.

"proxy-encode-url" provides the URL where you can download the scratch encode.

"proxy-encode-url-expires" tells you how long the scratch encode will be available. If you need to access the URL after it expires, do a metadata lookup again to receive a new URL to the scratch encode for your asset.

Rating & Advisory Systems

Overview

Apple accepts ratings and advisories for TV content. Content ratings and advisories are required if content is rated. Only one rating value is allowed, but as many advisories as necessary are supported.

The currently supported ratings system corresponds to the values defined by the standards listed in Table 1 below.

Apple may support additional TV ratings in the future. To differentiate one rating system from another, you must specify a system context using the system attribute of the <rating> tag in the XML. As an example, the system attribute context for U.S. TV Parental Guidelines is "us-tv".

All TV ratings and advisories have a short, plain-ASCII Apple code. An attribute named code can be used with the <rating> and <advisory> tags to supply the Apple code.

Here is an excerpt from a metadata.xml file showing a TV-14 rating using the code for the U.S.:

<rating system="us-tv" code="TV-14"/>

Advisory/Indicator flags can be specified to indicate violence, language, nudity, and other content. The advisory flags are presented with the video in the Apple TV app. Apple currently supports the advisory systems listed in Table 2 below.

Apple may support additional advisories in the future. The advisory system is specified using the system attribute of the <advisory> tag in the XML. As an example, the system attribute context for the U.S. cable advisory is "us-cable".

Here is an excerpt from a metadata.xml file showing advisories codes for mild violence and brief nudity for the cable standard:

<advisory system="us-cable" code="MV"/>

<advisory system="us-cable" code="BN"/>

Each advisory must be specified within its own advisory element; they cannot be combined or concatenated into a single element.

Table 1: TV Metadata Rating Systems Values

Country

System

Label

Code

Description

AU

au-tv

G

G

Recommended for general audiences

PG

PG

Parental guidance is recommended for young viewers

M

MA

This programme is not recommended for people under the age of 15

MA15+

MA15+

This programme is not recommended for people under the age of 15. May contain intense and/or frequent depictions of sexual activity or also contain violence, coarse language, the use of illegal drugs, mentions of suicide and/or other adult themes.

R18+

R18+

Restricted to 18 and over

CA

ca-tv

C

C

All children

C8

C8

Children 8 and above

G

G

General

PG

PG

Parental Guidance Suggested

14+

14+

Teens 14 and above

18+

18+

Adults

DE

de-tv

Ab 0 Jahren

0+

No age restriction in accordance with § 14 JuSchG

Ab 0 Jahren

ALL*

No age restriction in accordance with § 14 JuSchG

Ab 6 Jahren

6+

Programme is not recommended for children under the age of 6

Ab 12 Jahren

12+

Programme is not recommended for children under the age of 12

Ab 16 Jahren

16+

Programme is not recommended for children under the age of 16

Ab 18 Jahren

18+

Programme is not recommended for children under the age of 18

FR

fr-tv

Tout Public

TP

Suitable for all ages

-10

-10

Programme may include scenes or topics not recommended for children age 9 and under

-12

-12

Programme may include scenes or topics not recommended for children age 11 and under

-16

-16

Programme may include scenes or topics not recommended for children age 15 and under

-18

-18*

Programme may include scenes or topics not recommended for children age 17 and under

UK

uk-tv

U

U

Suitable for all ages

PG

PG

Parental Guidance

12

12

Suitable for 12 years and over

15

15

Suitable for 15 years and over

18

18

Suitable only for adults

Caution

C

Programme contains adult material

US

us-tv

TV-Y

TV-Y

Appropriate for all children

TV-Y7

TV-Y7

For children age 7 and above

TV-Y7-FV

TV-Y7-FV

For children age 7 and above; may contain fantasy violence

TV-G

TV-G

Suitable for all ages

TV-PG

TV-PG

Program contains material that parents may find unsuitable for younger children

TV-14

TV-14

Program contains some material that many parents would find unsuitable for children under 14 years of age

TV-MA

TV-MA

Designed to be viewed by adults and may be unsuitable for children under 17

* These ratings will be deprecated and at some point in the future, delivery will be blocked if you send them.

Table 2: TV Metadata Advisory Systems Values

Country

System

Label

Code

Description

AU

au-tv

A

A

For adult themes and/or dangerous stunts

L

L

For coarse language

S

S

For sexual references and/or sex scenes

H

H

For horror or supernatural themes

D

D

For drug references and/or drug use

N

N

For nudity

V

V

For violence

SN

SN

For supernatural themes

W

W

For war themes or footage

B

B

For colourful behaviour

US

us-cable

V

V

Violence

MV

MV

Mild Violence

GV

GV

Graphic Violence

AL

AL

Adult Language

GL

GL

Graphic Language

AC

AC

Adult content

SC

SC

Sexual Content

N

N

Nudity

BN

BN

Brief Nudity

RP

RP

Rape

US

us-tv

D

D

Dialog

S

S

Sexual Content

V

V

Violence

L

L

Language

Language Codes

Language codes should be formatted according to the best practices recommended by the Internet Engineering Task Force (IETF) in a group of documents known collectively as BCP 47, and in particular, RFC 5646 (https://datatracker.ietf.org/doc/html/rfc5646), which is part of BCP 47. An overview of these best practices is provided here: https://www.w3.org/International/articles/language-tags/. When specifying languages, you can use any language as long as it is a valid BCP 47 code that consists of the language subtag, optional region subtag, and optional script subtag as appropriate.

As a best practice when specifying a language, use the region subtag (for example, the US of en-US) only when it conveys helpful information, such as spelling variations between countries. For example, there is generally not a need to distinguish between Japanese as used in one country versus another, so you should use only the language code subtag (ja) instead of the language code and region subtags (ja-JP). In cases where specifying a region is appropriate, use the hyphen character to combine a language subtag with a region subtag. This identifies both the language and the specific location where the language is used. For English with American spelling, use en-US; for English with British spelling, use en-GB.

Although script subtags are valid (for example, Chinese can be written in either Traditional or Simplified characters, and you may need to indicate that localizations appear in a specific script), keep in mind that script subtags are for describing text and should not be used for describing audio. For example, you would deliver cmn to describe audio in Mandarin, not cmn-Hant or cmn-Hans.

Note: Although BCP 47 also includes support for UN M.49 region codes in addition to commonly-used alphabetic country codes, the only UN M.49 region code currently supported by Apple is 419, representing Latin America and the Caribbean. This code is useful in forming the language tag es-419 to represent Spanish as used in Latin America, distinct from Spanish as used in Spain.

Note that while any language code complying with the guidelines above will be accepted, the Apple TV app displays content only in a limited set of languages as shown in the table below. The fourth column of the table is provided for reference only, and may be useful for cross-reference if you have existing data from other sources that uses 3-character ISO 639-3 language codes.

Description

RFC 5646 Language Code

Storefront displays only these languages

ISO 639-2 T 3 char Language 
(for reference only)

Danish

da

            ✓

dan

Dutch

nl

            ✓

nld

English

en

            ✓

eng

English (Australia)

en-AU

            ✓

eng

English (Canada)

en-CA

            ✓

eng

English (New Zealand)

en-NZ

eng

English (United Kingdom)

en-GB

            ✓

eng

English (United States)

en-US

            ✓

eng

Finnish

fi

            ✓

fin

French

fr

            ✓

fra

Belgian French

fr-BE

fra

French (Canada)

fr-CA

            ✓

fra

French (France)

fr-FR

            ✓

fra

French (Switzerland)

fr-CH

fra

German

de

            ✓

deu

German (Austria)

de-AT

deu

German (Germany)

de-DE

            ✓

deu

German (Switzerland)

de-CH

deu

Greek

el

            ✓

ell

Italian

it

            ✓

ita

Japanese

ja

            ✓

jpn

Korean

ko

            ✓

kor

Norwegian

no

            ✓

nor

Portuguese

pt

            ✓

por

Portuguese (Brazil)

pt-BR

            ✓

por

Portuguese (Portugal)

pt-PT

            ✓

por

Spanish

es

            ✓

spa

Spanish (Latin America)*

es-419

            ✓

spa

Spanish (Mexico)

es-MX

            ✓

spa

Spanish (Spain)

es-ES

            ✓

spa

Swedish

sv

            ✓

swe

* 419 is a UN M.49 region code. https://unstats.un.org/unsd/methodology/m49/

Timecode Formats

The SMPTE timecode format is expressed as: framerate/framerate multiplier/mode. The W3C standard for expressing the frame rate multiplier has changed: the colon (:) used to separate the frame rate from the multiplier has been replaced by a space. For example, 999:1000 is now expressed as 999 1000. For a further explanation of timecodes, review the Final Cut Pro X User’s Guide.

The following table shows the supported timecode formats and what the <start_time> would be for each of the timecode formats (note that the timecodes represent the 99,290th frame of the video):

Description

Effective FPS

Timecode format (<timecode_format>)

<start_time> example (HH:MM:SS:FF)

Default (legacy)

N/A

(Note: qt_text does not include frames.)

qt_text

00:55:13.124

(Note:qt_text allows milliseconds, not frames.)

NTSC Video

29.97

30/999 1000/nonDrop1

30/1000 1001/nonDrop2

00:55:09:20

NTSC Video

29.97

30/999 1000/dropNTSC1

30/1000 1001/dropNTSC2

00:55:13;00

(Note: Drop frame mode requires the use of the semicolon after the seconds.)

NTSC Film (Imprecise)

23.976

24/999 1000/nonDrop

01:08:57:02

PAL

25

25/1 1/nonDrop

01:06:11:15

1 Imprecise: Many software-based video systems, including those from Apple, use the imprecise value of 29.97 as the frame rate for NTSC video. So although 1000 1001 would be the precise rate for NTSC, 999 1000 is used.

2 Precise: Use the 1000 1001 ratio if your source video is timed accurately to true NTSC standard frame rate.

Frequently Encountered Issues

Accented characters such as é and ü don’t appear correctly in my titles and descriptions.

Make sure you are correctly encoding your metadata in UTF-8. You can use one of the XML Metadata Production tools listed in the Helpful Tools section. There is an XML tool called xmllint that will help identify problems with your XML encodings. You can also try previewing your XML in a browser that renders XML trees such as Firefox.

How do I create a checksum for my files?

Apple accepts file checksums using the industry standard MD5 message digest. There are a variety of tools available to produce an MD5 checksum. See the tools listed in Helpful Tools.

I’m not familiar with XML. Where can I find a general tutorial for XML?

W3Schools

Tizag Tutorials

XML: A Beginner’s Guide by Dave Mercer

https://www.w3schools.com/xml/

http://www.tizag.com/xmlTutorial/

https://www.amazon.com

Some letters in XML have to be rewritten, what is that about? What’s wrong with my ampersand? My XML isn’t valid!

XML uses a small set of characters to denote structure in the document. If you need to use these characters within content in your XML file, you need to let the XML file know that the characters are not being used as structure by "escaping" them. For example the letters < and > designate an element tag marker, so if you have a value of "9 > 0" in your XML, you need to escape the greater than character with a set of characters called an entity. The entity for greater than ">" is "&gt;", thus making your previous statement "9 &gt; 0". If you cannot rewrite these characters, see the next section regarding using a Character Data (CDATA) block.

Here are the characters that need to be escaped, and their equivalent entities:

Character

Escaped Equivalent

>

&gt;

<

&lt;

&

&amp;

I cannot rewrite my characters. Is there another option? What is CDATA?

XML does offer another solution when rewriting reserved characters is not possible. Element text may be enclosed in a special structure called a character data block CDATA. In a CDATA block, the <, >, and & characters are allowed; the only thing not allowed is the CDATA block closing sequence “]]>” which is unlikely to occur in your text.

Here’s an example using entity escaping:

<description>If 9 &gt; 0, then take 0 &amp; 9.</description>

And here is an example using a CDATA block:

<description><![CDATA[if 9 > 0, then take 0 & 9. ]]></description>

Both of these examples are correct and acceptable. For further explanation, see https://www.w3schools.com/xml/dom_cdatasection.asp. Note the characters must still be encoded in UTF-8.

I don’t have a value for an element that is shown in the XML.

For elements marked optional for which you have no value, Apple requires that you remove the tag entirely from the XML rather than leaving the element empty. If the element is marked required, you may not omit the element.

Helpful Tools

These products are neither endorsed nor supported by Apple.

XML Metadata Production

Oxygen XML Editor

Mac, Windows, Linux

https://www.oxygenxml.com

Exchanger XML Editor

Mac, Windows, Linux

https://code.google.com/archive/p/exchangerxml/downloads/

Altova XML Spy

Windows

https://www.altova.com

XML Debugging

Firefox

Mac, Windows, Linux

https://www.mozilla.org/firefox/

xmllint

macOS, BSD

https://developer.apple.com/

MD5 Checksum

md5

macOS, BSD

https://developer.apple.com/

md5sum

Windows

md5sum verifier

Revision History

Previous Spec Revisions

The following table lists the previously-released specifications and the revisions:

Date/Version

Summary

February 24, 2025 - Version 5.3.9

Updated TV season profile information about cover, logo, and backdrop art.

March 18, 2024 - Version 5.3.8

Renamed this document to Apple Transactional TV Specification. Updated the requirements for specifying poster art. Updated information about ratings and advisories.

November 6, 2023 - Version 5.3.7

Added support for specifying a season subtype.

June 17, 2022 - Version 5.3.6

Added information about specifying an alternate audio track for Audio Description (AD). Clarified that country metadata information may refer to country or region.

July 19, 2021 - Version 5.3.5

Updated several ratings.

March 15, 2021 - Version 5.3.4

Added new regional requirements. Changed UK ratings.

June 29, 2020 - Version 5.3.3

Expanded delivery of country or region information. Added the <original_spoken_locale> tag to the TV season profile to specify the language spoken by the actors.

February 24, 2020 - Version 5.3.2

The "image.textless_master" attribute is required for all shows. Clarified tags required for asset-only deliveries.

May 13, 2019 - Version 5.3.1

Added support for 16:9 artwork, content logos, and backdrop art.

January 30, 2019 - Version 5.3

Added delivery of season metadata through the feed. Updated schema version number.

April 4, 2018 - Version 5.2.10

Added a new tag to specify a frame to use for the production still image (<production_still_image_time>).

Embedded audio on a previously-delivered video source can be re-used.

September 20, 2017 - Version 5.2.9

Made changes to artist roles for cue sheets. The image_time attribute is required if you provide defined previews. The allowed length of cue sheet titles has changed.

April 26, 2017 - Version 5.2.8

Added a new attribute on the <rating> tag and <advisory> tag to specify the Apple rating/advisory code. Added the Apple rating and advisory codes to the Ratings & Advisory Systems appendix. Changed the video <subtype> tag requirements. Added tags to specify cue sheets. Removed some ratings. Clarified crop dimensions, languages, and versioning. Corrected a link.

April 12, 2017 - Version 5.2.7

A 5.2.7 version of the spec was not officially released.

July 13, 2016 - Version 5.2.6

Added a <previews> block, a <preview> tag within the block, and attributes to specify the preview clip and the preview image. Added a section that explains Timecode Formats. Added a tag (<eidr>) to support the EIDR identifier.

May 25, 2016 - Version 5.2.5

Clarified the handling of burned-in text for metadata-based cropping. TV episode asset share packages cannot include the <preview starttime/> tag. Changes to language codes. Support for 4.x and lower schemas is being discontinued.

July 30, 2015 - Version 5.2.4

Added new attributes to support a textless master. Removed closed captioning reason code "PROMOTIONAL_TV_CONTENT_PRE_JUNE_2015" from the examples and annotations. Clarified episode production number requirements.

December 10, 2014 - Version 5.2.3

The role attribute on the <data_file> tag for the full source video is required. Clarified <provider> tag.

September 10, 2014 - Version 5.2.2

Added a new tag (<studio_release_title>) to provide the original release title. Added a new tag (<subtype>) to identify the type of video you are delivering. Added an appendix to explain read-only information that is returned in a metadata lookup. Clarified asset-only updates.

July 21, 2014 - Version 5.2.1

Closed caption files can now be delivered in languages other than English. Clarified timecode.

April 9, 2014 - Version 5.2

Changed the version number of this specification from 5.1 to 5.2 to keep the version number in sync with the new schema version.

March 14, 2014 - Version 5.1.4

Removed existing closed captioning reason codes and added new ones.

February 11, 2014 - Version 5.1.3

Updated closed captioning reason codes. Preview start time is required.

August 12, 2013 - Version 5.1.2

Added a metadata example showing how to update crop dimensions. Clarified metadata updates. Vendor offer codes can be updated. Added a new tag to deliver QC notes.

March 20, 2013 - Version 5.1.1

Updates on closed captioning reason codes. A TV episode can have different release dates by territory. Tags related to episode release dates have been added and changed. The container position can be updated.

January 17, 2013 - Version 5.1

Clarified the reason codes for closed captions. Closed caption availability information can now be delivered within the <assets> block.

September 6, 2012- Version 5.0

Added new elements for closed captions to indicate availability and timecode offset. Added a best practice for supplying language codes. Made several minor changes to the language codes table.

January 31, 2012- Version 4.9

Added capability to deliver one or more Quality Control notes with full videos. Updated the table of language codes to remove the checkmarks for languages not supported for use in the <language> and <locale> tags.

September 22, 2011- Version 4.8

Added metadata-based cropping for QuickTime source. Added tags that can be updated through the feed. Added a tag for <vendor_offer_code>. Made corrections to the table of language codes. Added an XML example showing how to update a closed captions file.

July 13, 2011- Version 4.7.2

Added closed captioning.

June 1, 2011- Version 4.7

The tag <original_spoken_locale> is now required. Added missing ratings for France and Australia. Changed the title of the Asset Specification Guide to match its new title: iTunes Video and Audio Asset Guide.

The previous version number of this specification was 4.5. There were no releases of this spec between 4.5 and 4.7.

November 10, 2010- Version 4.5

Added a <bundle_only> tag to specify an episode is available only with the purchase of the season.

The previous version number of this specification was 4.3. There were no releases of this spec between 4.3 and 4.5.

February 2, 2010- Version 4.3

Added an explanation for the xmlns attribute of the <package> tag. Shared TV video assets can now be specified in the XML.

November 10, 2009 - Version 4.1

Clarified package version attribute name requirements. Clarified <cleared_for_sale> tag. Added new rating for Australian TV.

September 11, 2009 - Version 4.0

Corrected asset removal XML example. Clarified how to change the locale on the source. Introduced new page design.

June 29, 2009 - Version 3.3.2

Deprecated the <network_name> tag. Clarified that worldwide products are not supported. Ratings and advisories are now strictly enforced through validation. <release_date> can now be updated through metadata updates. Clarified video asset redelivery. Clarified title capitalization and vendor identifier requirements. Deprecated <short_description>; changed <long_description> to <description>; <description> is required. Added an XML example for an asset-only delivery.

May 12, 2009 - Version 3.3.1

Added capability to remove assets through the feed. Changed requirements for metadata/asset updates. Added tags to specify the language spoken in the video and on the audio track. Changed the Language Code table in Language Codes to indicate which codes apply to the <locale> tag.

March 17, 2009 - Version 3.3

Added annotation for the <language> tag. Introduction of takedown notices. Clarified requirements for vendor identifier. Added an additional German rating. Removed references to WW clearances for the <product> tag. Clarified the <provider> tag. Changed the order of tags in the metadata examples. Added metadata-based cropping for HD TV.

September 29, 2008 - Version 3.2

Series name has been deprecated. Added support for ISAN.

April 8, 2008 - Version 3.1.1

Deprecated original release year, added support for international content, added element details, deprecated and required element tags, changed example XML file.

April 2, 2007 - Version 2.3

General document updates, added element details, deprecated and updated element tags, asset details moved to iTunes Video and Audio Asset Guide.

October 24, 2006 - Version 2.2

Deprecated several tags, revised document structure.

June 29, 2006 - Version 2.1

Simplified element structure, added ratings and advisories, custom preview start time, and additional identification elements.

June 2, 2006 - Version 2.0

Separate Music, Music Video, and TV Specifications.

Changes in Apple Transactional TV Specification 5.3.9

TV Season Profile

Changes in Apple Transactional TV Specification 5.3.8

Title

Renamed this document to Apple Transactional TV Specification.

TV Season Profile: 16:9 Poster Art

Updated the requirements for specifying poster art. See TV Season Metadata Annotated.

Rating & Advisory Systems

Content ratings and advisories are required if content is rated. See Overview.

Changes in iTunes Store Package TV Specification 5.3.7

TV Season Profile: Season Subtype

When you deliver a TV season, you can specify an appropriate subtype using the <type> tag. See TV Season Metadata Annotated for details.

Changes in iTunes Store Package TV Specification 5.3.6

TV Profile: Audio Description Track

When you deliver TV content, you can include an alternative audio track for Audio Description (AD). See Assets and Data Files and Basic TV Episode Metadata Example for details.

TV Profile: Clarifications

In annotation descriptions, use of the term “country” may refer to a country or region.

Changes in iTunes Store Package TV Specification 5.3.5

TV Profile: Rating Changes

Deprecated (fr-tv) -18 rating. Deprecated de-tv ALL and added 0+. Added us-tv TV-Y7-FV. See Table 1: TV Metadata Rating Systems Values for details. Note that deprecated ratings can still be delivered, but at some point in the future, delivery will be blocked if you send them.

Changes in iTunes Store Package TV Specification 5.3.4

TV Profile: Regional Requirements

New regional requirements have been added for the United States, France, Germany, and United Kingdom. See Regional Requirements for details.

TV Profile: Rating Changes

Additional ratings for United Kingdom (uk-tv) have been added. See Table 1: TV Metadata Rating Systems Values for details.

Changes in iTunes Store Package TV Specification 5.3.3

TV Episode and TV Season Profiles: Country or Region

Note: In this description, use of the term “country” may refer to a country or region.

The ability to designate countries associated with a TV season or an individual episode has been expanded. Two new tags have been added to clarify the role of the country (<production_countries>) and to list all the countries involved (<countries_of_origin>).

Production Countries

The countries to deliver with the <production_countries> tag are the countries responsible for the primary source of funds for the TV season or episode production. You must specify at least one production country and that country should be the country that provided most of the funds (for example, from national lotteries and other subsidies). Such determination must be made in accordance with applicable law. You can supply additional production countries as needed. Supplying at least one production country is required and that country should be designated as the primary country using the primary="true" attribute. Below is an example of using the tag:

<production_countries> <country primary="true">US</country> <country>CA</country></production_countries>

Countries of Origin

The country (or countries) to deliver with the <countries_of_origin> tag indicates where the content originates from, for example: the country where the season or episode was primarily produced, where the main authors and workers reside, where the main producer is established, and so on. Such determination must be made in accordance with applicable law. You must specify at least one country of origin and that country should be the primary country of origin.

You can supply additional countries as needed to associate all the countries involved in developing and creating the season or episode. To deliver more than one country, use the <countries_of_origin> tag, and then specify each individual country using a <country> tag. One country is designated as the primary country using the primary="true" attribute. Specifying secondary countries is optional, but you should list all countries associated with the season or episode. Below is an example of using the tag:

<countries_of_origin> <country primary="true">US</country> <country>CA</country> <country>MX</country></countries_of_origin>

TV Season Profile

The <original_spoken_locale> tag has been added to the season profile to specify the language spoken by the actors in the season’s videos.

Tag Changes

Added

<countries_of_origin>

<production_countries>

<original_spoken_locale> for use in delivering a TV season

Changes in iTunes Store Package TV Specification 5.3.2

TV Profile: Textless Master

The textless master attribute (<attribute name="image.textless_master">) is required for all videos; previously it was required only for videos that were textless. The XML examples and annotations have been updated for this change.

TV Profile: Asset-Only Delivery Clarification

Not all tags are required in asset-only deliveries and updates. In addition to the tags within the <assets> block, the following are required in asset-only deliveries and updates: the <package> and <provider> tags, the media_type and vendor_id attributes on the <assets> tag, and closed captions. All other tags are not required and will be ignored in an asset-only update. See TV Asset-Only Delivery/Update Example for example asset-only updates.

Tag Changes

Changed

"image.textless_master" attribute on the source is now required for all videos

Changes in iTunes Store Package TV Specification 5.3.1

TV Profile: Season Artwork

New values for the <asset> tag type attribute have been added to support 16:9 poster art. In addition to 16:9 poster art, you can deliver tall or wide backdrop art and single- or full-color content logos. The artwork is delivered in an <asset> block with the following types available:

Artwork Type

Allowed Formats

Tag Specifications

artwork_16:9

LSR (.lsr)

PNG (.png)

Requires <locale> or <locales> tags

backdrop_tall

PNG (.png)

Specifying locales is not supported

backdrop_wide

PNG (.png)

Specifying locales is not supported

single_color_content_logo

PNG (.png)

Requires <locale> or <locales> tags

<territory> is not supported

full_color_content_logo

PNG (.png)

Requires <locale> or <locales> tags

<territory> is not supported

See iTunes Video and Audio Asset Guide for specifications.

TV Profile: Element Changes

Added

artwork_16:9 as a type value within an <asset> block

backdrop_tall as a type value within an <asset> block

backdrop_wide as a type value within an <asset> block

single_color_content_logo as a type value within an <asset> block

full_color_content_logo as a type value within an <asset> block

Changes in iTunes Store Package TV Specification 5.3

TV Profile: TV Season

A TV series structure is made up of the series as a whole (also called a show), one or more seasons of the series, and one or more episodes in a season. Before you can deliver a season and its episodes, you must set up the series on iTunes Connect. Then, you can deliver the season information by territory (such as season title and description, ratings, and poster art) with an XML delivery. (You can still set up a season of a series using iTunes Connect instead of an XML delivery.) Once you set up the season, you can deliver the episodes.

In summary, here are the general steps for setting up a series, seasons, and episodes:

1.Set up the series in iTunes Connect.

2.Deliver the season metadata in an XML delivery (see TV Season Metadata Example) or set up the season in iTunes Connect.

3.Set up rights and pricing for the season on iTunes Connect.

4.Deliver the episode metadata in an XML delivery (see Basic TV Episode Metadata Example) or set up the episode(s) in iTunes Connect.

Schema Version

The schema version number has changed from 5.2 to 5.3 due to the addition of TV season delivery. In addition, the <package> tag version attribute has been updated in all examples to 5.3:

<package xmlns="http://apple.com/itunes/importer" version="tv5.3">

TV Profile: Element Changes

Added

<show_apple_id>

<eidr>

<season_sequence_number>

<network> within the <region> block

<season_type> within the <region> block

<description> within the <region> block

<total_expected_episodes> within the <region> block

<total_expected_bonus_episodes> within the <region> block

<total_launch_episodes> within the <region> block

<broadcast_schedule> within the <region> block

<premiere_date> within the <broadcast_schedule> block

<finale_date> within the <broadcast_schedule> block

<weekdays><weekday> within the <broadcast_schedule> block

<times><time> within the <broadcast_schedule> block

Changes in iTunes Store Package TV Specification 5.2.10

TV Profile: Source Audio

You can re-use a previously-delivered video source as an audio file. This could be useful if you are delivering a new video source with embedded audio, but you want to use the embedded audio from a previously-delivered video source instead of the audio embedded in the new video source. In this case, neither stereo nor surround embedded audio will be used from the new video source. To re-use the previously-delivered video source as an audio file, two new attributes have been added: ignore_audio and reused_old_source. When delivering the new source, you would use the <attribute name="ignore_audio">true</attribute> on the data file. In the same delivery, you would supply the previously-delivered video source, but change the role from source to audio and use the <attribute name="reused_old_source">true</attribute> on the data file.

Below is an example of the XML used in the original delivery and then an example of the updated delivery:

Previously-delivered video source:

<asset type="full"> <data_file role="source"> <locale name="en-US"/> <file_name>full-source-with-good-audio.mov</file_name> <size>343376467</size> <checksum type="md5">301e72262aea7d504aca91abe229cded</checksum> </data_file></asset>

Delivering new source and reusing old source audio:

<asset type="full"> <data_file role="source"> <locale name="en-US"/> <file_name>new-full-source-with-bad-audio.mov</file_name> <size>523996467</size> <checksum type="md5">5a793a8b46037fe8aa2bdd739b49911a</checksum> <attribute name="ignore_audio">true</attribute> </data_file> <data_file role="audio"> <locale name="en-US"/> <file_name>full-source-with-good-audio.mov</file_name> <size>343376467</size> <checksum type="md5">301e72262aea7d504aca91abe229cded</checksum> <attribute name="reused_old_source">true</attribute> </data_file> . . .</asset>

TV Profile: Production Still Image

You can specify a frame to use for the production still image that will be displayed on the product page for an episode. Using the <production_still_image_time> tag on the full asset, you indicate the image time to use to cut the image from the full asset. The image time must be within the full source with a 16:9 aspect ratio. You can specify only one production still frame and that frame will be used for all territories. This tag is not the same as the <preview> tag sent with the image_time attribute (for defined previews) or the <preview starttime> tag, which are used to represent the image for the preview source, not the full source.

The following example shows how to use the <production_still_image_time> tag on the full asset:

<asset type="full"> <. . .> <production_still_image_time format="24/999 1000/nonDrop">00:00:57:02</production_still_image_time> <. . .> </asset>

You can also deliver the production still image as a custom file, however Apple prefers that you send the production still image cut from the full asset. If you need to send the image as a file instead, the image must have the minimum dimensions of 1920 x 1080, with a 16:9 aspect ratio (subject to change). Do not send both the frame time and a separate image file in the same delivery. To deliver the image as a separate data file, omit the <production_still_image_time> tag and deliver the following:

<asset type="full"> <. . .> <data_file role="production_still_image"> <file_name>fearless.png</file_name> <size>111037</size> <checksum type="md5">96a2c3979611ea3966f19ff1ac4f28b0</checksum> </data_file> <. . .> </asset>

TV Profile: Element Changes

Added

"ignore_audio" for use in the <attribute> tag on a source data file

"reused_old_source" for use in the <attribute> tag on an audio data file

<production_still_image_time> for use within the <asset type="full"> block

"production_still_image" as an attribute of <data_file> within the <asset type="full"> block

Changes in iTunes Store Package TV Specification 5.2.9

TV Profile: Artist Roles

Cue sheets provide a list of music played in a TV episode and are optional. For a piece of music, you supply the artist information, including the artist <role>. Roles define the part that a particular artist performs. Performer and Songwriter (or Composer) roles are always required and the Featuring and With roles are required when there is a featured artist on the musical piece. All other roles are optional. Apple recommends that you supply as much role data as you have for your content. To help ensure consistency and provide formatting guidelines (for example, use Lead Vocals instead of Singer), use the roles preferred by the iTunes Store listed here: Recommended Contributor Roles.

TV Profile: Defined Previews

If you provide defined previews, the image_time attribute is required to specify the frame to use for the preview image. If you deliver a defined preview without the image_time attribute, you will see a warning. At a later date in the future, delivery will fail. The preview image frame must be within the start_time and end_time.

TV Profile: Cue Sheets

The allowed length of cue sheet titles has changed. Previously, there was a 255-byte limit for single-byte characters (such as ASCII characters); for multiple-byte (for example, Japanese) characters, this limit equated to as few as 71 characters. The new limit is 256 characters for single-byte characters and 1024 bytes for multiple-byte characters (which can equate to as many as 256 characters).

Changes in iTunes Store Package TV Specification 5.2.8

TV Profile: Rating Codes

All TV ratings now have a short, plain-ASCII Apple rating code. A new attribute named code can be used with the <rating> tag to supply the Apple rating code. Standardizing on the Apple rating codes reduces errors resulting from typos.

The code attribute is currently optional, however Apple recommends that you start supplying the codes to prepare for the time in the future when the codes become required and the current method deprecated. All of the following are currently supported for delivering rating information:

Preferred Method Using the Rating Code

<rating system="us-tv" code="TV-14"/>

Previous Method Using the Rating Label

<rating system="us-tv">TV-14</rating>

Acceptable Method Using Both the Rating Code and the Rating Label

<rating system="us-tv" code="TV-14">TV-14</rating>

If you use this method, the rating identified by code and the rating identified by rating label must resolve to the same rating, for example, <rating system="us-tv" code="TV-G">TV-14</rating> would be rejected.

The Apple rating codes have been added to the Rating & Advisory Systems appendix (see Table 1: TV Metadata Rating Systems Values).

A link in the annotations on the rating codes has been corrected.

TV Profile: Advisory Codes

All TV advisories now have a short, plain-ASCII Apple advisory code. A new attribute named code can be used with the <advisory> tag to supply the Apple advisory code. Standardizing on the Apple advisory codes reduces errors resulting from typos.

The code attribute is currently optional, however Apple recommends that you start supplying the codes to prepare for the time in the future when the codes become required and the current method deprecated. All of the following are currently supported for delivering advisory information:

Preferred Method Using the Advisory Code

<advisory system="us-cable" code="AL"/>

Previous Method Using the Advisory Label

<advisory system="us-cable">AL</advisory>

Acceptable Method Using Both the Advisory Code and the Advisory Label

<advisory system="us-cable" code="AL">AL</advisory>

If you use this method, the advisory identified by code and the advisory identified by advisory label must resolve to the same advisory, for example, <advisory system="us-cable" code="AL">GL</advisory> would be rejected.

The Apple advisory codes have been added to the Rating & Advisory Systems appendix (see Table 2: TV Metadata Advisory Systems Values).

TV Profile: Rating Changes

Australian ratings P, C, and AV15+ have been removed. Sending these ratings will be blocked on delivery. Ratings for Japan have been removed.

TV Profile: Video Subtype

The video <subtype> tag for an episode is now required. If you do not send the <subtype> tag, you will see a warning; at some point in the future, the delivery will fail.

TV Profile: Cue Sheets

Cue sheets provide a list of music played in a TV episode. If an episode contains music, you can optionally supply cue sheets that list the start time, duration, title, performers, and other details of a musical piece. Note that the information you supply for cue sheets is currently not supported for display on the Store. See TV Episode Metadata with Cue Sheets for an example and annotations.

TV Profile: Crop Dimensions

Crop dimensions are required for videos that are matted and contain inactive pixels. When sending crop dimensions, send accurate dimensions without unnecessary cropping, especially horizontally. If your video does not contain inactive pixels (that is, it is not matted), you can set all the crop values to zero, or omit the crop dimension attribute tags. If you do not supply any crop dimensions, iTunes will default to 0,0,0,0.

Versioning Clarification

A schema is used to validate the XML document you send in an iTunes Package. The version of the schema consists of two numbers: a major number for the schema and a minor number to track changes to the that version of the schema. The schema version number is expressed as major.minor, for example 5.2. The revisions of the specifications are based on the schema version. Each time a specification is released for a specific schema version, the release is tracked using an additional number. The specification version number is expressed as major.minor.revision, for example 5.2.8. When specifying the version attribute in the <package> tag, match the schema version, not the specification revision. For example, for this revision of the spec, 5.2 is the schema version and 5.2.8 is the specification revision (so the attribute value is 5.2, not 5.2.8):

<package xmlns="http://apple.com/itunes/importer" version="tv5.2">

Note that this information is for clarification purposes; the numbering schemes have not changed and do not affect the delivery process as long as you follow the numbering rules.

Language Codes Clarification

When specifying languages, you can use any language as long as it is a valid BCP 47 code that consists of the language subtag, optional region subtag, and optional script subtag as appropriate. Although script subtags are valid (for example, Chinese can be written in either Traditional or Simplified characters and you may need to indicate that localizations appear in a specific script), keep in mind that script subtags are for describing text and should not be used for describing audio. Note that while any valid language code is accepted, the iTunes Store only displays content in a limited set of languages. See Language Codes for more information.

TV Profile: Element Changes

Added

code as an attribute of the <rating> tag and <advisory> tag

For cue sheets:

<cue_sheet>

<cue>

<sequence_number>

<time>

<artists> <artist>

<apple_id>

<artist_name>

<roles> <role>

<iswc>

<isrc>

<copyright_cline>

<copyright_pline>

<usage>

Changed

<subtype> is now required

Changes in iTunes Store Package TV Specification 5.2.7

A 5.2.7 version of the spec was not officially released.

Changes in iTunes Store Package TV Specification 5.2.6

TV Profile: Previews

You can now specify the preview image frame using the <previews> block and the <preview> tag. You can also specify a start and end time, with an extended clip of up to 120 seconds. For example:

<previews> <preview timecode_format="qt_text" start_time="00:05:13.002" end_time="00:06:27.000" image_time="00:05:45.128"/> </previews>

The minimum clip duration is 30 seconds. Use the image_time attribute to specify the frame for the preview image. If you do not specify the image_time, the first frame of the preview is the default image. If you specify an image_time but use the qt_text format, the frame nearest the image_time is used for the preview image (you cannot specify a frame for the preview image using qt_text).

The <previews> block and <preview> tag replace the <preview starttime=""/> tag. The tag is still supported. However, if you wish to specify a preview image and have a preview duration of 120 seconds, you must use the <previews> block and the <preview> tag instead of the <preview starttime=""/> tag.

See Basic TV Episode Metadata Example for an XML example of defining a preview. See Basic TV Episode Metadata Annotated for requirements and considerations when defining a metadata-based preview.

TV Profile: EIDR

An optional tag has been added to support EIDR (Entertainment Identifier Registry). EIDR is a universal, unique identifier system for television video assets. Any level of EIDR is accepted in this field, so long it is in a valid format. See the annotation in Basic TV Episode Metadata Annotated for more information on the format. For more information, see https://www.eidr.org/about-us/.

Timecode Formats

Added a section that explains the supported timecode formats. See Timecode Formats for more information.

TV Profile: Element Changes

Added

<eidr>

<previews> block

<preview> for use within the <previews> block

timecode_format="valid_format" as an attribute of <preview> within the <previews> block

start_time="valid_timecode" as an attribute of <preview> within the <previews> block

end_time="valid_timecode" as an attribute of <preview> within the <previews> block

image_time="valid_timecode" as an attribute of <preview> within the <previews> block

Changes in iTunes Store Package TV Specification 5.2.5

TV Profile: Metadata-Based Cropping Clarification

When delivering texted source material, burned-in text that falls over inactive pixels must be maintained in the attribution of crop values. Additionally, an equal number of pixels that are applied to preserve burned-in text in one region, must also be equally applied to the opposite region so that content can be displayed proportionally. See Basic TV Episode Metadata Annotated for more information.

TV Profile: Asset Sharing

TV episode asset share packages that include the <preview starttime/> tag will be blocked and delivery will fail. The tag has been removed from the asset sharing XML example.

Language Codes

When specifying languages for assets and localizations, you can use any language as long as it is a valid BCP 47 code that consists of the language code, optional region, and optional script subtags as appropriate (for example, script is not relevant for audio). Note that while any valid language code is accepted, the iTunes Store only displays content in a limited set of languages. The table in Language Codes shows the Storefront languages.

Schema Support

Support for 4.x and lower schemas is being discontinued. This means that the tags and requirements included in a delivery must conform to a 5.0 or higher schema (iTunes recommends you use the latest published specification version, currently tv5.2). For example, a tag that has been deprecated in a 5.0 or higher schema but was valid in a 4.x schema would no longer be supported. If you deliver a package that does not specify and conform to a 5.0 or higher schema version, you will see a warning when delivered. At some point in the near future, delivery will fail. For example, the following package would receive a warning because the version number is below 5.0:

<package xmlns="http://apple.com/itunes/importer" version="tv4.7">

Changes in iTunes Store Package TV Specification 5.2.4

TV Profile: Textless Master

A new attribute on the full source indicates that the episode contains burned-in text, which can be narratives burnt into the visual picture or burned-in subtitles. Narrative text is text that appears on screen to supplement the plot of the story without the use of a narrator, such as “Earlier that morning.” If you are using burned-in text, you must indicate that the video includes the text using an attribute on the source data file ("image.textless_master") and set the value to false. You also deliver two more attributes to indicate the language of the burned-in text. In addition for deliveries in the US that are exempt from closed caption rules, the <accessibility> tag within the <accessibility_info> block must include the reason_code attribute with "NO_CC_SDH_FOREIGN_LANGUAGE_ENGLISH_SUBS" as the value. See TV Episode Metadata Example without Closed Captions and with Burned-In Text for an example and annotations. Specifying the "image.textless_master" attribute is currently optional; at a date sometime in the future, if the video includes burned-in text and you do not specify the attribute, the delivery may be blocked.

TV Profile: Closed Captioning Reason Codes

As of June 30, 2015, all promotional content must be captioned and the closed captioning reason code "PROMOTIONAL_TV_CONTENT_PRE_JUNE_2015" is no longer applicable. Deliveries sent with this code will be blocked. The reason code "PROMOTIONAL_TV_CONTENT_PRE_JUNE_2015" has been removed from the examples and annotations.

TV Profile: Clarification

Previous versions of this specification indicated that the episode production number could contain only alphanumeric characters. Episode production numbers may contain only alphanumeric characters, spaces, hyphens (-), and underscores (_).

TV Profile: Element Changes

Added

"image.textless_master" for use in the <attribute> tag on a source data file

"image.burned_subtitles.locale" for use in the <attribute> tag on a source data file

"image.burned_forced_narrative.locale" for use in the <attribute> tag on a source data file

Changes in iTunes Store Package TV Specification 5.2.3

TV Profile: Role

When you deliver TV content, you specify and deliver the assets, such as the video of the full episode and its closed captions. The full video asset is made up of one or more data files (delivered in a <data_file> block) and each data file plays a specific role for the asset. For TV content, currently two roles can be specified: the role called “source” for the full asset and the role called “captions” for a closed captions file. Specifying the roles of the data files is required. In previous revisions of this specification, the full asset did not require the “source” role to be specified, but it is now required. If you do not specify the role, you will see a warning message that the role is required; at a date sometime in the future, if you do not specify the role, the delivery will fail.

TV Profile: Clarification

The value supplied with the <provider> tag is case-sensitive. For example, if the provider shortname is abc, the value in the <provider> tag must be abc; not ABC.

TV Profile: Tag Updating

The <studio_release_title> and <subtype> tags introduced in the previous revision of this specification have been added to the list of tags that can be updated. See TV Episode Metadata Update Example.

TV Profile: Element Changes

Changed

"source" value in the role attribute is now required on the full video asset

Changes in iTunes Store Package TV Specification 5.2.2

TV Profile: Studio Release Title

A new tag has been added to provide the original title of an episode at its initial release, in any form, to the viewing public, in whichever country and language it has been first released. This is intended to tie together subsequent releases in different countries and languages to the initial release of the episode. When submitting the package for the initial release, you should set the <studio_release_title> value to the same value as <title>. Beginning November 2014, if you deliver a package and do not include the <studio_release_title> tag, you will see a warning.

TV Profile: Video Subtype

A new subtype tag has been added to identify the type of video you are delivering. The <subtype> tag is optional and if you do not define a subtype, the value defaults to "episode". The available values are:

  • "episode" indicates the video is a regular TV episode available for purchase

  • "episodebonus" indicates the video is bonus content related to a given episode of a TV show

  • "seasonbonus" indicates the video is bonus content related to an entire season TV show

TV Profile: Asset-Only Updates Clarification

When delivering updated source video, keep in mind that the duration of the source video must match the duration of the closed caption file (if delivered). If the duration of the source video has changed, you must also deliver an update of the closed caption file, with its cue timing and overall duration changed accordingly to properly sync to the source video.

Read-Only Information

A new appendix describes read-only information that appears when you do a metadata lookup on an existing package. Read-only tags are shown in the returned metadata and are supplied by Apple to provide information about the package, such as the status of the content review. See About Metadata Lookup for a description of metadata lookup and the read-only tags returned.

iTunes Connect Section Names

Changed the iTunes Connect module names throughout the specification to match the new section names (for example, “Deliver Your Content” has been changed to “Resources and Help.”

TV Profile: Element Changes

Added

<studio_release_title>

<subtype>

Changes in iTunes Store Package TV Specification 5.2.1

TV Profile: Closed Captions

Closed caption files can now be delivered in languages other than English. When you deliver a closed captions asset file, you must specify the language of the captions using the <locale> tag. For example, if a Canadian TV episode is in French and you are supplying French closed captions, you need to specify the locale in the <data_file> block for the closed captions:

<data_file role="captions"> <file_name>09736156444-french.scc</file_name> <size>9511</size> <checksum type="md5">5a793a8b46037fe8aa2bdd739b49911a</checksum> <locale name="fr-CA"/> <attribute name="program.start.timecode">-01:00:00:00</attribute></data_file>

You must supply the <locale> tag for closed captions even if the language of the captions is the same as the language specified with the <language> tag. If you deliver a package and do not include the locale for the captions, you will see a warning that the locale is missing and that English ("en") will be used by default.

When updating a closed caption file, make sure the locale matches the locale of the file you are replacing. If the previously-delivered file did not have a locale specified, you can deliver a new file with the new locale and the existing file will be replaced. If the previously-delivered file had a locale specified and you want to replace it with a new file that has a different locale, you must first remove the existing captions file (<data_file role="captions" remove="true">). Note that the full asset can have only one caption file. See Closed Captions Asset-Only Update Examples for an example XML.

TV Profile: Timecode Offset

The timecode offset attribute ("program.start.timecode") used to keep closed captions in sync with the encoded video is now supported for both non-drop and drop frame timecodes.

Changes in iTunes Store Package TV Specification 5.2

Schema Version

The version number of this specification has changed from 5.1 to 5.2 to keep the version number in sync with the new schema version. In addition, the <package> tag version attribute has been updated in all examples to 5.2:

<package xmlns="http://apple.com/itunes/importer" version="tv5.2">

No other changes have been made to this document; the new schema version was created due to major changes in other specifications.

Changes in iTunes Store Package TV Specification 5.1.4

TV Profile: Closed Captioning Reason Codes

After March 31, 2014, the closed captioning reason codes "NEVER_IN_US" and "IN_US_NO_CAPTIONS" are no longer applicable. Deliveries sent with these codes will be blocked. The reason codes "NEVER_IN_US" and "IN_US_NO_CAPTIONS" have been removed from the examples and annotations.

New U.S. closed captioning reason codes have been released. For U.S. deliveries, when a video does not include closed captions, you must indicate the reason why they have not been included using the <accessibility_info> tag. The reason codes are:

  • "PROMOTIONAL_TV_CONTENT_PRE_JUNE_2015": Video used for promotional content only are exempt from the closed captioning mandate.

  • "NO_CC_SDH_FOREIGN_LANGUAGE_ENGLISH_SUBS": If closed captions do not exist and the original episode is in a language other than English and the target audience is en-US, English subtitles may be used in place of closed captioning.

See TV Episode Metadata Example without Closed Captions and with Burned-In Text for a metadata example with annotations.

Changes in iTunes Store Package TV Specification 5.1.3

TV Profile: Closed Captioning Reason Codes

Closed captioning reason code "EDITED_FOR_INTERNET" is no longer applicable. Deliveries sent with that code are blocked. The reason code "EDITED_FOR_INTERNET" has been removed from the examples and annotations.

TV Profile: Preview Start Time

The <preview starttime> tag is now required. If you leave out the tag, you will see a warning and the default starttime (360 seconds) will be used. At some point in the future, a delivery without the preview start time will be blocked.

Changes in iTunes Store Package TV Specification 5.1.2

TV Profile: Metadata-Based Cropping

A metadata example showing how to update crop dimensions has been added. See Crop Dimensions Update Example.

TV Profile: Metadata Updates

Previous versions of this specification indicated that if the <assets> block was included in a metadata-only update without also providing the asset files, the delivery would be rejected. However, you can include the <assets> block with or without providing the asset files in a metadata-only update.

If asset files are provided and properly referenced in the metadata, then the corresponding checksums will be compared to the checksums of the assets currently on file, and if any checksums are different, the assets will be updated as necessary. If the checksums are unchanged, then the import package (.itmsp) does not need to contain the asset files, even if they are listed in the metadata, because those asset files will be ignored.

TV Profile: QC Notes

Notes to the Quality Control team can now be sent using a standalone tag instead of sending a PDF within an <asset> block. See Deliver QC Notes Using a Tag for an XML example.

TV Profile: Element Changes

Added

<comments> for delivering QC notes

Changed

<vendor_offer_code> can be updated

Changes in iTunes Store Package TV Specification 5.1.1

TV Profile: Closed Captioning Reason Codes

Closed captioning reason codes "ARCHIVAL_CONTENT" and "LIVE_OR_NEAR_LIVE_CONTENT" are no longer applicable. Deliveries sent with either code will be blocked.

The "EDITED_FOR_INTERNET" code is no longer be valid as of September 30, 2013. All content edited for Internet distribution must be captioned by this time.

TV Profile: Episode Release Dates

A TV episode can optionally have different release dates by territory. The <release_date> tag can be used within a <regions> block to indicate that different territories have different episode release dates. The release date is the date the episode was first aired in the specified territory, or the date that the content was first made available to the public in the territory. See TV Episode Metadata Example with Multiple Regions.

In this context, supplying a <region> tag with a <release_date> tag is optional. Use this tag when the release date in a territory is different from the release date supplied under <video>. The release date supplied under <video> applies to the default country associated with the season as set up in iTunes Connect and also applies by default to territories that do not have an explicitly-set release date of its own for this episode.

TV Profile: Container Position

The <container_position> tag can now be updated. Note that a season cannot have duplicate container positions.

TV Profile: Element Changes

Added

<regions>

<region>

Changed

<release_date> can be used within the <region> tag

<territory> can be used within the <region> tag

Changes in iTunes Store Package TV Specification 5.1

TV Profile: Closed Captioning

The reason codes used to explain why closed captions have not been delivered have been clarified. See TV Episode Metadata without Closed Captions and with Burned-In Text Annotated. Closed caption availability information can now be delivered within the <assets> block, as an alternative to supplying the information within the <video> block. This allows the option of delivering closed-caption availability information in delivered an asset-only update. See TV Asset-Only Delivery/Update Example.

TV Profile: Corrections

Added the missing closing </description> tag in the example showing how to use CDATA. Corrected the closing tag in the closed captions asset-only update example. Corrected the spelling of German ratings, for example from ab 0 Jahren to Ab 0 Jahren.

TV Profile: Element Changes

Changed

<accessibility_info> can be used within the <assets> block

Changes in iTunes Store Package TV Specification 5.0

TV Profile: Closed Captioning Availability

New U.S. closed captioning requirements have been released and TV content may be subject to the rules as of September 30, 2012. To support these requirements, new tags have been added to indicate if a TV episode or made-for-TV movie includes closed captions. These tags are required for U.S. deliveries. If the content does not include closed captions, you must explain why they are not included.

TV Profile: Closed Captioning Start Timecode

Apple requires that timecodes start at a program start of 00:00:00:00, which may require that captions be offset if they have been mastered to tape timecode. To keep closed captions in sync on the encoded file, a new attribute for use with closed captions data files has been added to offset captions: "program.start.timecode". The value is a SMPTE HH:MM:SS:FF timecode in non-drop frame with an optional negative (-) sign for negative offsets. This feature is currently supported for non-drop frame timecodes.

TV Profile: Languages and Codes Best Practices

As a best practice when specifying a language, use the region subtag (for example, the US of en-US) only when it supplies useful information, such as spelling variations between countries; otherwise provide only the language portion of the tag. See Language Codes for more information.

The language codes are formatted according to the best practices recommended by the Internet Engineering Task Force (IETF) in a group of documents known collectively as BCP 47, and in particular, RFC 5646 (https://datatracker.ietf.org/doc/html/rfc5646), which is part of BCP 47. An overview of these best practices is provided here: https://www.w3.org/International/articles/language-tags/.

TV Profile: Changed/Deprecated Tags

When a tag is deprecated or changed, providers must implement the change within a year. After a year, iTunes reserves the right to stop supporting the old version. XML deliveries that contain the old tags may fail delivery. Review Previous Spec Revisions for tags that have been changed or deprecated.

TV Profile: Element Changes

Added

<accessibility_info>

<accessibility>

"program.start.timecode" for use in the <attribute> tag on a closed captions data file

Changes in iTunes Store Package TV Specification 4.9

iTunes Store: Package Delivery

One or more QC (Quality Control) Notes can now be delivered within the iTunes Store package (.itmsp). These Notes can inform the iTunes QC team about known issues or characteristics of a video (full source). The iTunes QC team can read the notes as a part of their review process to help identify video source issues.

The notes must be in PDF format and multiple note files can be delivered. See Deliver QC Notes as a PDF File for details.

TV Profile: Correction to Language Table

The checkmarks in the “Supported for <language> and <locale>” column has been removed for Danish, Greek, Spanish for Mexico, Finnish, Norwegian, and Swedish. Added Korean and Spanish for Latin America. See Language Codes.

TV Profile: Short Description

The tag <short_description> was deprecated in the 3.3.2 version of this spec. From 4.9 on, the <short_description> tag will be ignored. iTunes will use an excerpt of the <description> (formerly <long_description>) in place of the <short_description>.

TV Profile: Element Changes

Added

role="notes" as an attribute of <data_file>

Changes in iTunes Store Package TV Specification 4.8

TV Profile: Metadata-Based Cropping for QuickTime Source

QuickTime source files may be delivered in their full-frame state with metadata included to specify the crop rectangle for content with inactive pixels due to letterbox, pillarbox, or windowbox.

TV Profile: Updates

The tag <episode_production_number> can be updated through the feed. The following tags can be updated unless Apple has reviewed and confirmed the quality of the metadata (referred to as polished): <title> and <description>. Added an XML example showing how to update a closed captions file.

TV Profile: Vendor Offer Code

A new optional tag has been added that can be reported back through sales reporting channels.

TV Profile: Language Codes

In the Language Code table, removed the code for US Spanish (es-US) and added the code for Mexican Spanish (es-MX). See (Language Codes.

TV Profile: Element Changes

Added

<vendor_offer_code>

<attribute> for adding crop dimensions for QuickTime source

Changes in iTunes Store Package TV Specification 4.7.2

TV Profile: Closed Captioning

A closed captioning data file can be delivered for the associated video and it is specified as a role for the full source. The "captions" role specifies that the delivered file is intended to be used as the closed captioning file for the iTunes Store. This role must be specified, or the package will be rejected.

TV Profile: Element Changes

Added

role="captions" as an attribute of <data_file>

Changes in iTunes Store Package TV Specification 4.7

TV Profile: Original Spoken Locale

The tag <original_spoken_locale> is now required.

TV Profile: Ratings

Added the rating Tout Public for France. Tout Public indicates the program is suitable for all ages. Added the rating M for Australia. This rating indicates the program is not recommended for people under the age of 15.

Changes in iTunes Store Package 4.5

TV Profile: Bundle Only

Added a new tag (<bundle_only>) to specify that an episode is not for sale individually and is only available to customers who purchase the entire season. The <bundle_only> tag is optional and the value must be either true or false.

TV Profile: Element Changes

Added

<bundle_only>

Changes in iTunes Store Package 4.3

TV Profile: Corrections/Clarifications

The <package> tag annotations omitted the description of the xmlns attribute. It serves as a declaration that the elements in the XML are expected to conform to the schema associated with the specified namespace, which is http://apple.com/itunes/importer.

iTunes Store Package: Assets and Data Files

TV video assets can now be shared between two or more playlists. This is useful for adapting your offerings to local markets and creating promotional playlists (for example, holidays specials, best of, and so on). See Asset Sharing.

TV Profile: Element Changes

Added

<share_assets>

Changes Made in iTunes Store Package 4.1

TV Profile: Corrections/Clarifications

When specifying the version attribute of the package (<package xmlns="http:// apple.com/itunes/importer" version="tv4.1">), the “tv” portion of the version attribute must be in lowercase letters.

The value specified in the <cleared_for_sale> tag must be either “true” or “false” in English.

TV Profile: Ratings

A new Australian TV rating value (R18+) has been added to the ratings table.

Changes Made in iTunes Store Package 4.0

TV Profile: Corrections/Clarifications

The XML example for removing assets has been corrected. The prior example did not include the vendor identifier in the <asset> block and did not enclose the asset in an <assets> block.

Changes Made in iTunes Store Package 3.3.2

iTunes Store Package: Territory

Worldwide products are not supported. If you include <territory>WW</territory> for a product, the package will be rejected.

iTunes Store Package: Ratings and Advisories

If you submit ratings and advisory systems that are not supported, the package will be rejected. See Overview for a list of supported ratings and advisory systems.

TV Profile: Metadata Updates

The <release_date> tag can now be updated through metadata updates.

TV Profile: Clarifications

The vendor identifier must not start with an underscore character. The words in the title should be capitalized as appropriate for the language.

TV Profile: Element Changes

Changed (new tag = old tag)

<description> = <long_description>

Deprecated

<network_name>

<short_description>

Changes Made in iTunes Store Package 3.3.1

iTunes Store Package: Updates to Assets and Data Files

Referencing all the assets in the <asset> block for an update is no longer required. If an asset is not referenced in the <asset> block, the asset will not be removed. Instead, assets can now be removed using remove="true" as an attribute of the <data_file> tag:

<data_file role="source" remove="true">

iTunes Store Package: Assets and Data Files

Added the <original_spoken_locale> tag to specify the language spoken by the actors in the video. Added a <locale> tag to indicate the language of the audio track on the video source.

TV Profile: Element Changes

Added

remove="true" as an attribute of <data_file>

<original_spoken_locale>

<locale>

Changes Made in iTunes Store Package 3.3

TV Profile: Takedowns

A new metadata format is now available for taking down content. This is intended to ease content removal from the store.

TV Profile: Metadata-Based Cropping for HD TV

HD TV captures may be delivered in their full-frame state with metadata included to specify the crop rectangle. The delivered package is automatically cropped.

TV Profile: Element Changes

Added

<attribute name=""> for adding crop dimensions for HD TV

Changes Made in iTunes Store Package 3.2

iTunes Store Package: Package

The <package> element has changed to <package xmlns="http://apple.com/itunes/importer" version="tv3.2"> in preparation for schema validation.

iTunes Store Package: Vendor Identifiers

Vendor identifiers may only contain alphanumeric characters and underscores ("_"). Packages delivered with identifiers containing other characters will be rejected.

TV Profile: Series Name

The <series_name> element has been deprecated. This should now be specified when the series is created on iTunes Connect.

TV Profile: Metadata Update Example

A metadata update example has now been added.

TV Profile: Ratings Updates

Ratings updates are now accepted. New ratings may be added, or already existent ratings may be changed via metadata updates; however, ratings, once added, may not be removed.

TV Profile: Advisory Updates

Advisory updates are now accepted. Advisories may only be added and will not modify the currently active advisories in the Store.

TV Profile: Asset Tags

Video files and all other assets are now specified within the iTunes standard <assets> tag.

TV Profile: ISAN

iTunes now accepts International Standard Audiovisual Number to identify submitted audiovisual works.

TV Profile: Element Changes

Deprecated

<series_name>

Changed (new tag = old tag)

<package xmlns="http://apple.com/itunes/importer" version="tv3.2"> = <package version="tv3.2">

<assets> = <data_file>

Added

<language>

<isan>

Changes Made in iTunes Store Package 3.1.1

iTunes Store Package: Metadata Updates

The explanation of metadata updates through XML redeliveries has been updated.

iTunes Store Package: TV Metadata Example

The example XML file has been updated to include common pitfalls and the appropriate treatment.

iTunes Store Package: TV Metadata Annotated

Annotations for various metadata elements have been updated to reflect best practices and appropriately use TV-specific and generalized language where necessary.

iTunes Store Package: Ratings & Advisories

Supported ratings and advisory systems have been expanded. See Overview for further details.

TV Profile: Element Changes

Deprecated

<original_release_year>

  • <original_release_year>

Changed

<container_id> is now a required element

<container_position> is now a required element

<size> is now a required element if a file is included

<checksum> is now a required element if a file is included

<sales_start_date> is now a required element

Changes Made in iTunes Store Package 2.3

iTunes Store Package: Empty XML Elements

Empty XML elements are not accepted in metadata.

TV Profile: Element Changes

Deprecated

<sales_end_date>

Changed

<vendor_id> is now a required element

Changes Made in iTunes Store Package 2.2

Introduction of Profiles

The addition of multiple types of content (music video and TV) has led to the introduction of profiles to the specification structure. This approach has been taken, rather than separate specifications, to ensure that as much commonality as possible is preserved.

TV Profile: Simplified Element Structure

Tag names now use more natural television terminology. Extraneous album-oriented tags have been eliminated.

TV Profile: Ratings and Advisories

TV Parental Guidelines ratings can be specified. An advisory message can be included. Ratings and advisories are optional.

TV Profile: Custom Preview Start Time

A custom preview cut in point can be specified.

TV Profile: Additional Identification Elements

Network name and episode production number are now supported.

In addition, episode sequencing can be specified for a season using a new element called <container_position>.