Data inside Apple’s AAE files

by ,

An AAE file is an XML text file saved next to your JPEG images or MOV videos that describe adjustments to that file. For instance, I have a “Slo-mo” video I took with my iPhone 6 Plus, and the AAE file looks like this:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>adjustmentBaseVersion</key>
    <integer>0</integer>
    <key>adjustmentData</key>
    <data>
    YnBsaXN0MDDRAQJac2xvd01vdGlvbtIDBAUXV3JlZ2lvbnNUcmF0ZaEG0QcIWXRpbWVS
    YW5nZdIJCgsUVXN0YXJ0WGR1cmF0aW9u1AwNDg8QERITVWZsYWdzVXZhbHVlWXRpbWVz
    Y2FsZVVlcG9jaBABEQEMEQJYEADUDA0ODxUWEhMQAxEC4SI+AAAACAsWGyMoKi03PEJL
    VFpganBydXh6g4WIAAAAAAAAAQEAAAAAAAAAGAAAAAAAAAAAAAAAAAAAAI0=
    </data>
    <key>adjustmentEditorBundleID</key>
    <string>com.apple.camera</string>
    <key>adjustmentFormatIdentifier</key>
    <string>com.apple.video.slomo</string>
    <key>adjustmentFormatVersion</key>
    <string>1.1</string>
</dict>
</plist>

All the interesting bits are in the opaque hex code inside the “data” tag. If you decode that as base64, you get a binary plist file, and converting that to ascii gives you this:

{
    slowMotion = {
        rate = "0.125";
        regions = (
                        {
                timeRange = {
                    duration = {
                        epoch = 0;
                        flags = 3;
                        timescale = 600;
                        value = 737;
                    };
                    start = {
                        epoch = 0;
                        flags = 1;
                        timescale = 600;
                        value = 268;
                    };
                };
            }
        );
    };
}

So there you go – you can probably edit that data and write it back after encoding it to base64.

General
Tags: , , , , , , , .

About rae

I'm a long-time Mac and iOS developer. I'm also a big fan of Ruby on Rails and relational databases. I tend to work remotely, in my basement with occasional trips to the office. I'm also a big videophile, both TV and film, and can't wait for a good, inexpensive home 4k solution.

2 comments on “Data inside Apple’s AAE files

  1. Doron

    Hi Rae,
    Stumbled on your post and was happy: I have an AAE file from an iPhone 6 (IOS 9) and I need to know its content. However while your method works for your file (I tried too…), it doesn’t for mine. So if I have a “data” tag with the info pasted below – how do I convert it to ASCII? What does this contain?
    Thanks!

    lVPLbtswEPwXngVh+RJF3dqgaIoWTREX6SHogbZoi61ECiIVJzD8711athEUzaG8abgz
    nNldHcg2TINJD3aKLnjS0IIMNpnWJEOaAxlMTHa6tW7XJdIwIerijP1wbepIw1klChIm
    Z30yaZE4FuRp0fvktyHLrGfXt1/nYW0n0hDKP/KKFMSM4/VdQhGIm84O5t4+uQWEgoy9
    SdkiVri7FUFp0/6aYxrwvUiax8M/Alhv1r1tSZOm2aKqTcn5XcxGwnaLn7cYp8+REIOS
    AWUcmGQUoBaAcZwf5/RlyQylzAFPvA/PY4jzZE/OFuh9bza/vwXn02twylxvYzyBMXcm
    Jrc5WVi/ZpQAnGpVSSqAS10zqjCzrvOVYlpQqiqhQNY143hB4czRjMqqrpgSEjTOZN+5
    ZM+i2AEzp/Bg+jk7LXkeWgre9PfG704QCigKKKAqpYTWWRvYG9odhvlsX/JtLZGoaqVB
    KyEkQxqTb9BGuZg9A9eC46VLN8GnCXcpVwnKJFVSU6YUxXOpWXWmDfvcRqS5Fofutu60
    RKvBTOl78BZ34j+XIOKzeUDWv/O7fpnm8x3OzCFVyaqEHJMD5UJzHP5+WXUqGCtrAKm1
    AqASO3P+L6imspRVQV4uKhUrBeP6euq/7d9MYSTHn8c/

Leave a Reply

Your email address will not be published. Required fields are marked *