How To Anonymize iTunes Songs

One of our readers pointed out that the application that we reviewed a while back to anonymize iTunes songs had been down for a while. He suggested another method of getting rid of user identifying data in iTunes. The iTunes plus songs contain three obvious fields that can be used to identify the user. The EFF is suspecting that each song might contain even more fields that can be used to identify the user.

The actual process of anonymizing itunes songs involves the usage of two different programs: Atomic Parsley and Hexfiend. Atomic Parsley will be used to remove the application ID which is usually the email address of the user who purchased the song and the purchase data. The software is available for Windows, Linux and Mac.

A basic command that can be very helpful is to display all information about a song using the software. To do this run the following command:

atomicparsley song.m4u -t

This will list all tags and their values in the same command window making it easy to spot the identifying ones.

Tags can be removed with the command

atomicparsley song.m4a –manualAtomRemove “moov.udta.meta.ilst.TAG”

where TAG has to be replaced with a valid name. To remove both the application ID and purchase data from an iTunes song one would issue the following command:

atomicparsley song.m4a –-manualAtomRemove “moov.udta.meta.ilst.apID” –-manualAtomRemove “moov.udta.meta.ilst.purd” -W

An alternative would be to remove all tag information at once using the following command which is currently the only way to ensure that the song will not contain user identifying information afterwards. It will however clear all tags including title, artist and other related tags.

AtomicParsley song.m4a –metaEnema

After finishing the first step of anonymizing iTunes songs we still have to remove the name of the buyer that is contained in the songs. To do that a hexeditor like Hexfiend is needed. Simply open the iTunes song in Hexfiend and search for the name. Once the name is found replace it with other chars that match the exact length of the name. Save the file under a different file name and check out that it still plays fine in your favorite music player.

Please share this article

Facebooktwittergoogle_plusredditlinkedinmail



Responses to How To Anonymize iTunes Songs

  1. loopyjoe April 8, 2010 at 3:40 am #

    Thanks, but one small error: it's --metaEnema not -metaEnema (double hyphen).

  2. Leon January 8, 2011 at 10:12 am #

    The question is, is there a way to do that with itunes applications?

  3. Søren May 23, 2011 at 12:35 am #

    I prefer to nuke all meta-data using ffmpeg:

    ffmpeg -i "input.m4a" -acodec copy "output.m4a"

    This will losslessly remux the entire file, removing all non-audio data. It ought to also remove the hidden data that EFF found, but could not identify, though I haven't tested this.

  4. Vel January 26, 2013 at 11:55 pm #

    This didn't work for me on OSX Mountain Lion.

    I ran:
    AtomicParsley song.m4a –-manualAtomRemove “moov.udta.meta.ilst.apID” –-manualAtomRemove “moov.udta.meta.ilst.purd” -W

    I got the output "No changes." When I run AtomicParsley song.m4a -t I can still see my AppleID and purchase date, so it didn't strip those tags.

    I got the executable from here - http://sourceforge.net/projects/atomicparsley/files/atomicparsley/AtomicParsley%20v0.9.0/AtomicParsley-MacOSX-0.9.0.zip/download Is there a newer version I should be using?

  5. Oli February 21, 2013 at 3:22 pm #

    I got the same results as Vel! Have Apple made any changes that prevent us from removing Atoms?

  6. FelikZ January 30, 2014 at 2:40 pm #

    Go to music and just:

    find . -name "*.m4a" -print0 | xargs -0 -n 1 -- bash -c 'atomicparsley "$0" --DeepScan --manualAtomRemove "moov.udta.meta.ilst.apID" --manualAtomRemove "moov.udta.meta.ilst.atID" --manualAtomRemove "moov.udta.meta.ilst.cnID" --manualAtomRemove "moov.udta.meta.ilst.geID" --manualAtomRemove "moov.udta.meta.ilst.plID" --manualAtomRemove "moov.udta.meta.ilst.sfID" --manualAtomRemove "moov.udta.meta.ilst.cprt" --manualAtomRemove "moov.udta.meta.ilst.flvr" --manualAtomRemove "moov.udta.meta.ilst.purd" --manualAtomRemove "moov.udta.meta.ilst.rtng" --manualAtomRemove "moov.udta.meta.ilst.soal" --manualAtomRemove "moov.udta.meta.ilst.stik" --manualAtomRemove "moov.udta.meta.ilst.xid" --manualAtomRemove "moov.udta.meta.ilst.----" --manualAtomRemove "moov.udta.meta.ilst.----" --manualAtomRemove "moov.udta.meta.ilst.----" --manualAtomRemove "moov.udta.meta.ilst.----" --manualAtomRemove "moov.trak.mdia.minf.stbl.stsd.mp4a.pinf" -W'

    • Joe May 26, 2016 at 12:48 pm #

      This is absolutely fabulous!

  7. J7N February 17, 2015 at 2:02 am #

    On Windows, I also got the result of "No changes" when trying to --manualAtomRemove "moov.trak.mdia.minf.stbl.stsd.mp4a.pinf".

    This issue seems related to a bug reported and resolved in 2012.
    https://bitbucket.org/wez/atomicparsley/issue/30/pinf-atoms

    However, I still couldn't process the file with the latest development build 0.9.6. What did work was zero-filling the 'pinf' atom up to the following one as reporteded by AtomicParsley on the same level of hierarchy, which happened to be 'free' padding space in my case. I also renamed pinf to free.

    I'm unsure if this is a valid change. The mp4 appears to work fine in all software at hand.

    The ffmpeg method is what I use often, except I generally mux to mkv, but here I'd like to preserve metadata such as the horrible itunsmpb tag and cover artwork, that are rather hard to add back in.

  8. M April 26, 2015 at 10:02 am #

    I got same as Vel, I think there are 2 sets of tags, I used kid3 http://kid3.sourceforge.net/ to delete "apID" (email) and "ownr" (name). Verified tags removed with hex editor http://www.suavetech.com/0xed/. Used Osx Snow Leopard.

  9. TheDailyWizard October 12, 2015 at 4:45 pm #

    You can try this script on macOSX : https://github.com/thedailywizard/cleanm4a
    I made it to clean my itunes library (30Gb).

    Remove all unwanted tags - Keep cover/artwork - Force trackID to "1"
    No audio re-encoding

Leave a Reply