iTunes atom iTunMOVI

Create issue
Issue #1 resolved
Santino Fuentes created an issue

{{{ #!code

There is a special Apple iTunes atom it is called:

Atom "----" [;iTunMOVI]

This Atom is used to display various things regarding the file. It is unique in that it is an XML file and can contain lots of various data. The data is displayed in iTunes and Apple TV.

The contents of this atom look similiar to below:

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" ""> <plist version="1.0"> <dict> <key>copy-warning</key> <string>Help control the pet population. Have your pets spayed or neutered.</string> <key>studio</key> <string>A HolyRoses Production</string> <key>producers</key> <array> <dict> <key>name</key> <string>HolyRoses</string> </dict> </array> </dict> </plist>

Basically it is broken down into keys, strings, arrays, dict.

Known array type values:

cast codirectors directors producers screenwriters

These arrays are broken down into multiple dict, key, string. Example above only has 1 entry in the array. iTunes associates each Actor, director, screen writer, etc to an integer value. I can only assume they assign a value to each person and then can look it up in a database. This value is not needed for display purposes however.

Other known top level keys are:

copy-warning asset-info studio

asset-info has subkeys of file-size and screen-format.

The only value displayed in iTunes is "copy-warning". This value is displayed in iTunes if you right click on the item and select "Get Info". It is at the bottom of the screen.

On Apple TV the following values are displayed:

For ALL video: studio (displayed while video is playing and you press up arrow 2x to display the info, studio is displayed under Title)

For a TV show: cast (displayed as Actors on main info page)

For Movie: cast (displayed as Actors on main info page) directors producers

Music Video: nothing displayed other than studio.

Things with multiple values are displayed seperated by commas.

Items may be displayed on newer Apple devices such as an iPhone, but unknown/untested

To inject this data into an MP4 file you must use AtomicParsley and the --rDNSatom. An example is provided below.

Example: AtomicParsley Video.m4v --rDNSatom "cat HolyRoses-iTunMOVI.txt" name=iTunMOVI

Example atoms are provided from a iTunes store video called "Street Kings"


You can use this to see the full example syntax.

another file HolyRoses-example-iTunMOVI.txt is provided that just shows some basic data.

The only values that are known to display (according to me) anyplace at this time are copy-warning, studio, cast, directors, producers.

Proper support should be built to allow one to assign values to these items on the command line such as -actors "blah man","blah girl","Blah boy" -director "good director" -producer "chuck norris" -studio "Papa Johns" -copy-warning "dont copy this"

Attachment has text file examples and this read me.


Comments (18)

  1. Santino Fuentes reporter
    here is the iTunMOVI from 01 Special At Comic-Con.m4v ( A free star wars the clone wars download)
    In this one they use a key called "flavor" strange...
    Atom "----" [;iTunMOVI] contains: <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "">
    <plist version="1.0">
    At the end of this Atom they always have a blank line, but in my testing it doesn't matter.
  2. Santino Fuentes reporter

    This enchancement request is very similar to the existing option:

    --contentRating PG-13

    Where that basically executes

    --rDNSatom "mpaa|PG-13|300|" name=iTunEXTC

    if you run --ratings-list you will see the listing. This list is currently for USA only. Other people with other front ends have figured out more localized ratings and set them via the --rDNSatom method.

    see -rDNS-help for more help.

    This request is more difficult in that it will have to accept many more arguments and build an xml variable to hold the data preformated. currently the only keys i would focus on are copy-warning, studio, cast, directors, producers for now until more is know or requested.

  3. Santino Fuentes reporter

    I have attached a workaround ( using perl that should do everything this enhancement is requesting.

    / -h
    AtomicParsley iTunMOVI writer.
    The options cast|actors, directors, codirectors, screenwriters, producers can take multiple of the same type.
    You can issue --cast "x person"  --cast "y person" or --cast "x person,y person,b person"
    --copy_warning:         Add copy warning (displayed in iTunes)
    --studio:               Add film studio (displayed on Apple TV)
    --cast|actors:          Add Actors (displayed on Apple TV)
    --directors:            Add Directors (displayed on Apple TV)
    --producers:            Add Producers (displayed on Apple TV)
    --codirectors:          Add CoDirectors (no current use)
    --screenwriters:        Add Screen Writers (no current use)
    --write:                Write options to MP4 via calling AtomicParlsey
    --print:                Display XML information screen
    --file:                 File to write XML information to
  4. Santino Fuentes reporter

    opps, I stand corrected, cowriters and screenwriters are displayed in iTunes in the long description area!

    It looks like this:

    Joel, the owner of an Extract plant, tries to contend with myriad personal and professional problems, such as his potentially unfaithful wife and employees who want to take advantage of him.
       Jason Bateman
       Mila Kunis
       Kristen Wiig
       Mike Judge
       Jasmine Alhambra
       Maria Mantia
       John Altschuler
       Michael Flynn
       Mike Judge
  5. onlinespending

    I cannot get this to work using the 0.9.6 forked build of AtomicParsley. It adds the iTunMOVI atom but only puts the first several characters in the tag.

    <iTunMOVI>&lt;?xml version=1.0 encoding=UTF-8?&gt;&lt;!DOCTYPE plist PUBLIC -//Apple</iTunMOVI>

    And while this may work using text, Subler encodes this as base64, as this example illustrates.

    <iTunMOVI dt="binary.base64">PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4gLyA8IURPQ1RZUEUgcGxpc3QgUFVCTElDICItLy9BcHBsZS8vRFREIFBMSVNUIDEuMC8vRU4iICJodHRwOi8vd3d3LmFwcGxlLmNvbS9EVERzL1Byb3BlcnR5TGlzdC0xLjAuZHRkIj4gLyA8cGxpc3QgdmVyc2lvbj0iMS4wIj4gLyA8ZGljdD4gLyAJPGtleT5jYXN0PC9rZXk+IC8gCTxhcnJheT4gLyAJCTxkaWN0PiAvIAkJCTxrZXk+bmFtZTwva2V5PiAvIAkJCTxzdHJpbmc+RGFuaWVsIENyYWlnPC9zdHJpbmc+IC8gCQk8L2RpY3Q+IC8gCQk8ZGljdD4gLyAJCQk8a2V5Pm5hbWU8L2tleT4gLyAJCQk8c3RyaW5nPkphdmllciBCYXJkZW08L3N0cmluZz4gLyAJCTwvZGljdD4gLyAJCTxkaWN0PiAvIAkJCTxrZXk+bmFtZTwva2V5PiAvIAkJCTxzdHJpbmc+TmFvbWllIEhhcnJpczwvc3RyaW5nPiAvIAkJPC9kaWN0PiAvIAk8L2FycmF5PiAvIAk8a2V5PmRpcmVjdG9yczwva2V5PiAvIAk8YXJyYXk+IC8gCQk8ZGljdD4gLyAJCQk8a2V5Pm5hbWU8L2tleT4gLyAJCQk8c3RyaW5nPlNhbSBNZW5kZXM8L3N0cmluZz4gLyAJCTwvZGljdD4gLyAJPC9hcnJheT4gLyA8L2RpY3Q+IC8gPC9wbGlzdD4=</iTunMOVI>

    Can this functionality be fixed? How can I get it to add the entire xml contents to the iTunMOVI atom and not just the first few dozen characters?

  6. Santino Fuentes reporter

    Will need to provide exact things you are typing and its outputs. Suggest a "paste" or screen shots. I haven't worked on this code or type of thing in a few years. Worked then!

  7. Santino Fuentes reporter

    from the perl script here is an example usage line:

    #./ --cast "Jason Bateman" --cast "Mila Kunis,Kristen Wiig" --directors "Mike Judge" --producers "John Altschuler,Michael Flynn" --studio "Miramax Films" --copy_warning "FBI ANTI-PIRACY WARNING: UNAUTHORIZED COPYING IS PUNISHABLE UNDER FEDERAL LAW." --screenwriters "Mike Judge" --codirectors "Jasmine Alhambra,Maria Mantia" --print

  8. Log in to comment