Free Template
Apple iTunes Metadata Template — `.itmsp` Package & metadata.xml
Sample .itmsp directory plus the metadata.xml schema you need to clone-and-edit for first-time delivery to Apple TV / iTunes. Fully-formed example covering provider, vendor ID, ratings, chapters, assets, posters, trailers, and the per-territory products block.
What you’re downloading
A skeleton .itmsp package — EXAMPLE_2026.itmsp/ containing a fully-formed metadata.xml with placeholder values and an inline README.txt that walks you through turning it into a real delivery (renaming the Vendor ID, dropping in your assets, computing MD5 checksums, validating with Transporter, uploading). It is an editable starting point, not a delivery file you ship as-is.
You can also download Apple’s own reference materials directly:
- iTunes Package Film Specification 4.3 (PDF, 1 MB) — the full spec
- Apple Transactional Film Rating Codes (PDF, 2 MB) — controlled vocabulary for the
<rating>block
Context
A .itmsp package is the unit of first-time delivery to Apple TV / iTunes for transactional movies. It is a directory whose name ends in .itmsp, containing a single metadata.xml plus the masters, posters, captions, and other assets it references. You ship it through Apple’s Java-based Transporter CLI. The <products> block inside the XML is the part the Rights & Pricing CSV updates incrementally on already-delivered titles.
Apple’s current spec lives at help.apple.com/itc/filmspec/ (JS-walled). The mirrored 4.3 PDF above is structurally identical: bones have been stable since 2010, and newer versions only add fields (4K UHD, HDR, Dolby Atmos, ratings updates).
The schema declaration
Every metadata.xml opens with:
<?xml version="1.0" encoding="UTF-8"?>
<package xmlns="http://apple.com/itunes/importer" version="film4.3">
The version string follows the pattern film<major>.<minor>. The current Apple-published version is higher than 4.3 (TV is at 5.3.4 per April 2026 partner news, films track similarly), but the <package> root, namespace, and document structure documented below are identical.
Package directory layout
For a Vendor ID of 09736156444, the package looks like:
09736156444.itmsp/
metadata.xml ← the schema-validated XML
09736156444.mov ← full feature master
09736156444-preview.mov ← trailer
09736156444.jpg ← poster (world default)
09736156444-en-US.jpg ← territory-specific poster (optional)
09736156444-english.scc ← EIA-608 closed captions
09736156444-english.itt ← timed-text subtitles (optional)
09736156444-french.itt ← additional language subtitles
… ← alt audio tracks, additional posters, additional trailers
Two hard rules:
- The directory name must match the
<vendor_id>inmetadata.xml. If they differ, Transporter rejects the package. - Every asset referenced in the XML must be present in the directory with the exact filename and matching MD5 checksum.
Top-level XML structure
<package xmlns="http://apple.com/itunes/importer" version="film4.3">
<provider>Paramount</provider>
<video>
<type>film</type>
<vendor_id>09736156444</vendor_id>
<title>Forrest Gump</title>
<synopsis>…</synopsis>
<production_company>Paramount Pictures</production_company>
<rating system="mpaa" code="PG-13">
<reason>thematic elements, drug use, language</reason>
</rating>
<chaptering>…</chaptering>
<assets>…</assets>
<previews>…</previews>
<artwork>…</artwork>
<products>…</products>
</video>
</package>
| Element | Purpose | Notes |
|---|---|---|
<provider> | Your provider short name | Must match Apple’s records exactly. Capitalized identifier. |
<type> | Content kind | film, tv, music_video, etc. |
<vendor_id> | Permanent provider-generated ID | Alphanumeric + underscore. No spaces, dashes, or punctuation. Case-sensitive. Cannot start with underscore. |
<title> / <title_locale> | Display title | Repeat per locale for multi-language films |
<synopsis> | Per-locale description | |
<rating> | System + code + reason | Cross-reference the rating codes PDF. Wrong code = rejection. |
<chaptering> | Chapter list | Per chapter: <title>, <start_time> in HH:MM:SS:FF (timecode) |
<assets> | All deliverable files | See below |
<previews> | Trailer files per territory | WW allowed as default |
<artwork> | Poster files per territory | WW allowed as default |
<products> | Per-territory rights and pricing | See below — WW not allowed here |
The <assets> block
Each asset is a <data_file> with a role:
<assets>
<asset type="full">
<data_file role="source">
<file_name>09736156444.mov</file_name>
<size>4823920128</size>
<checksum type="md5">a1b2c3d4e5f6789…</checksum>
</data_file>
<data_file role="captions">
<file_name>09736156444-english.scc</file_name>
<size>184320</size>
<checksum type="md5">…</checksum>
</data_file>
</asset>
</assets>
Apple validates the MD5 of every referenced file against the value in the XML. A mismatch fails the upload before it leaves your machine (iTMSTransporter -m verifyPackage).
The <products> block — Apple’s territory rights & pricing
This is the XML form of what the Rights & Pricing CSV updates piecemeal:
<products>
<product>
<territory>US</territory> <!-- ISO 3166 alpha-2; WW NOT accepted -->
<cleared_for_sale>true</cleared_for_sale>
<cleared_for_hd_sale>true</cleared_for_hd_sale>
<wholesale_price_tier>3</wholesale_price_tier> <!-- Apple's contracted tier number -->
<preorder_sales_start_date>2006-02-10</preorder_sales_start_date>
<sales_start_date>2006-03-12</sales_start_date> <!-- YYYY-MM-DD -->
<sales_end_date></sales_end_date> <!-- usually omitted -->
<cleared_for_vod>true</cleared_for_vod>
<vod_type>New Release</vod_type>
<available_for_vod_date>2007-11-12</available_for_vod_date>
<unavailable_for_vod_date>2008-11-12</unavailable_for_vod_date>
<physical_release_date>2007-08-01</physical_release_date>
</product>
<product>
<territory>GB</territory>
…
</product>
</products>
Three things distributors get wrong:
WWis fine in<previews>and<artwork>but invalid in<products>. Pricing is per-country, every territory needs its own<product>block.<sales_end_date>should almost always be empty. It is for limited-time licensing windows, not for indicating contract end. Apple takes content down automatically when a contract expires.<wholesale_price_tier>is required when<cleared_for_sale>true</cleared_for_sale>(EST). The tier is a contract artifact, not something you choose freely.
Ship it
Apple’s Transporter (Java CLI) handles schema retrieval, validation, and upload:
# Download Apple's current Relax NG schema for local validation
iTMSTransporter -m provideSchema
# Validate before upload — runs schema check + MD5 check + size check
iTMSTransporter -m verifyPackage -f 09736156444.itmsp
# Ship it
iTMSTransporter -m upload -f 09736156444.itmsp -u <username> -p <password>
# Check status of a previously uploaded package
iTMSTransporter -m status -vendor_id 09736156444
What this template does NOT cover
- TV episodes and seasons — different schema (
<video><type>tv</type>), and TV uses a<container_id>element to tie episodes to a season. See Apple’s Transactional TV Specification. - iTunes Extras packages — separate format documented at
help.apple.com/itc/videoextras/. - Asset encoding requirements — codec, bitrate, container format. See Apple’s Video and Audio Asset Guide.
- Music videos — different XML profile.
Related
- Apple Rights & Pricing CSV — the bulk-update channel for an existing title
- Apple TV Delivery: Avails CSV vs
.itmspMetadata Package — the full research synthesis - EMA Avails Spreadsheet — Movies (v2.5) — the cross-platform avails standard most aggregators normalize to before emitting Apple-flavored deliveries
Get New Templates
We release new templates regularly. Subscribe to get them in your inbox.