Details of Productions and Presets

The basic syntax for creating and changing productions and presets is very similar, only the URLs are different.

Create a production/preset:

https://auphonic.com/api/{presets|productions}.json

This creates a new preset or production, where {presets|productions} should be either presets or productions.

All details can be set in JSON format, see Set all Details in one Request for an example.

Change a production/preset:

https://auphonic.com/api/{preset|production}/{uuid}/{command}.json

Here {uuid} is the UUID of the preset/production you want to change and {command} may be one of:

  • metadata: change metadata tags
  • output_files: add audio or video output files
  • outgoing_services: add outgoing external services
  • algorithms: change parameters for audio algorithms
  • chapters: add chapter marks (in productions only)
  • multi_input_files: add intro or outro files

Or use https://auphonic.com/api/{preset|production}/{uuid}.json to change multiple fields at once (algorithms, output_files, metadata, etc). See also Update a Production or Preset and Reset Data.

Upload files:

https://auphonic.com/api/{preset|production}/{uuid}/upload.json

File uploads must be handled in an additional request (encoded in multipart/form-data, not JSON). Set the field image to add a cover image and set input_file to upload an audio or video file (in productions only).

See Image and Audio Upload Example.

Start a production:

https://auphonic.com/api/production/{uuid}/start.json

This starts the audio post production of the production with the given UUID.

For the creation of multitrack productions and presets, see Multitrack Productions and Presets.

Create a Production with Detailed Audio Metadata

Audio metadata can be set using the metadata parameter, metadata tags from input files are also imported if not set here:

curl -X POST -H "Content-Type: application/json" \
    https://auphonic.com/api/productions.json \
    -u username:password \
    -d '{
            "metadata": {
                "title": "Production Title",
                "artist": "The Artist",
                "album": "Our Album",
                "track": 1,
                "subtitle": "Our subtitle",
                "append_chapters": true,
                "summary": "Our very long summary.",
                "genre": "Podcast",
                "year": 2012,
                "publisher": "that's me",
                "url": "https://auphonic.com",
                "license": "Creative Commons Attribution 3.0 Austria",
                "license_url": "http://creativecommons.org/licenses/by/3.0/at/",
                "tags": ["podcast", "auphonic api", "metadata"],
                "location": {
                    "latitude": "47.070",
                    "longitude": "15.439"
                }
            }
        }'

The response contains the UUID of the created production/preset:

{
    "status_code": 200,
    ...
    "data": {
        ...
        "uuid": "KKw7AxpLrDBQKLVnQCBtCh",
        ...
    }
}

Now let’s add an input file and a cover image to the newly created production:

curl -X POST https://auphonic.com/api/production/KKw7AxpLrDBQKLVnQCBtCh/upload.json \
    -u username:password \
    -F "input_file=@/home/user/your_audio_file.mp3" \
    -F "image=@/home/user/your_cover_image.jpeg"

You may also add a cover image by just referencing a valid picture URL:

curl -X POST -H "Content-Type: application/json" https://auphonic.com/api/production/KKw7AxpLrDBQKLVnQCBtCh.json \
    -u username:password \
    -d '{"image": "https://auphonic.com/static/images/logo.png"}'

Output Files

Add output files to an existing production/preset:

curl -H "Content-Type: application/json" -X POST \
    https://auphonic.com/api/production/{uuid}/output_files.json \
    -u username:password \
    -d '[{"format":"mp3","bitrate":"96"},{"format":"aac","bitrate":"64"},{"format":"flac"}]'
The following output files are available:
  • mp3
  • mp3-vbr: MP3 with variable bitrate encoding
  • vorbis: Ogg Vorbis
  • opus: Opus Codec
  • aac (MP4/M4A)
  • flac
  • alac (MP4/M4A)
  • wav: uncompressed WAV 16-bit PCM
  • video: Video Output, format is the same as the input video
  • input: unprocessed original input audio/video file, some format as input
  • descr: Production Description in xml/json/yaml
  • stats: Audio Processing Statistics in txt/json/yaml
  • chaps: Chapter Marks as txt file (as used by mp4chaps)
  • image: a copy of the Cover Image
  • waveform: Waveform Image of output audio file

It’s also possible to query all available formats, bitrates and filename endings:

curl https://auphonic.com/api/info/output_files.json

which returns:

{
    "status_code": 200,
    ...
    "data": {

        "mp3": {
            "type": "lossy",
            "bitrates": ["32", "40", "48", ... ],
            "bitrate_strings": ["32 kbps (~14MB/h)", "40 kbps (~18MB/h)" , ...],
            "display_name": "MP3",
            "default_bitrate": "96",
            "endings": ["mp3"]
        },
        "opus": {
            "type": "lossy",
            "bitrates": ["6", "12", "16", ...],
            "bitrate_strings": ["~6 kbps (~3MB/h)", "~12 kbps (~5MB/h)", ...],
            "display_name": "Opus",
            "default_bitrate": "48",
            "endings": ["opus"],
        },
        "aac": {
            "type": "lossy",
            "bitrates": ["24", "32", "40", "48", ... ],
            "bitrate_strings": ["24 kbps, HE AAC (~11MB/h)", "32 kbps, HE AAC (~14MB/h)", ...],
            "display_name": "AAC (M4A, MP4, M4B)",
            "default_bitrate": "64",
            "endings": ["mp4", "m4a", "m4b"]
        },
        "vorbis": {
            "type": "lossy",
            "bitrates": ["32", "40", "48", ... ],
            "bitrate_strings": ["~32 kbps (~14MB/h)", "~40 kbps (~18MB/h)" , ...],
            "display_name": "Ogg Vorbis",
            "default_bitrate": "80",
            "endings": ["ogg", "oga"]
        },
        "flac": {
            "type": "lossless",
            "bitrate_strings": ["optimal (stereo ~125MB/h, mono ~62MB/h)"],
            "display_name": "FLAC",
            "endings": ["flac"]
        },
        "alac": {
            "type": "lossless",
            "bitrate_strings": ["optimal (stereo ~130MB/h, mono ~65MB/h)"],
            "display_name": "ALAC (M4A, MP4)",
            "endings": ["mp4", "m4a"]
        },
        "mp3-vbr": {
            "type": "lossy",
            "bitrates": ["32", "40", "48", ... ],
            "bitrate_strings": ["~32 kbps (~14MB/h)", "~40 kbps (~18MB/h)" , ...],
            "display_name": "MP3 Variable Bitrate",
            "default_bitrate": "96",
            "endings": ["mp3"]
        }
        "wav": {
            "type": "lossless",
            "bitrate_strings": ["optimal (stereo ~635MB/h, mono ~318MB/h)"],
            "display_name": "WAV 16-bit PCM",
            "endings": ["wav"]
        }
        "video": {
            "display_name": "Video (same format as input)",
            "bitrate_strings": ["same bitrate as input"],
            "type": "video"
        },
        "chaps": {
            "type": "description",
            "display_name": "Chapters File",
            "endings": ["chapters.txt"]
        },
        "psc": {
            "type": "description",
            "display_name": "Podlove Simple Chapters",
            "endings": ["psc", "xml"]
        },
        "image": {
            "type": "description",
            "display_name": "Cover Image"
        },
        "stats": {
            "display_name": "Audio Processing Statistics",
            "type": "description",
            "endings": ["txt", "json", "yaml"]
        },
        ...
    }
}

If no bitrate is specified in lossy audio formats, the default_bitrate is taken - type can be lossy for lossy audio files, lossless for lossless audio files, video for video output files and description for data about a production.

If you want to create a Mono Mixdown or use the Split On Chapters feature, set a flag in JSON:

[
    {"format": "mp3", "bitrate": "96"},
    {"format": "wav", "mono_mixdown": true},
    {"format": "vorbis","bitrate": "64", "split_on_chapters": true, "mono_mixdown": true},
    {"format": "video", "mono_mixdown": true}
]

Setting Filenames

It’s possible to control how output filenames are constructed:

{"format":"mp3", "bitrate":"48", "filename":"MyFilename.mp3", "mono_mixdown":true}
Directly generates the file MyFilename.mp3. Must have a correct ending!
{"format":"aac", "bitrate":"64", "ending":"mp4"}
This will take the input file basename and adds mp4 as ending, e.g. original-filename.mp4.
{"format":"aac", "bitrate":"32", "suffix":"-small", "ending":"m4a"}
Takes the input file basename and adds suffix and ending, e.g. original-filename-small.m4a.

A filename in auphonic consists of an output_basename, suffix and an ending. The output basename can be set using the URL https://auphonic.com/api/productions.json or https://auphonic.com/api/production/{uuid}.json:

curl -X POST -H "Content-Type: application/json" https://auphonic.com/api/productions.json \
     -u username:password \
     -d '{
           ...
           "output_basename": "production-filename",
           "output_files": [
             {"format":"aac", "bitrate":"32", "suffix":"-small", "ending":"m4a"}
             {"format":"aac", "bitrate":"128", "ending":"m4a"}
           ]
           ...
         }'

This will create the output files production-filename-small.m4a and production-filename.m4a.

It’s also possible to set the full output filename for an output format. The full filename has priority over the single components like suffix, basename, etc.:

curl -X POST -H "Content-Type: application/json" \
     https://auphonic.com/api/production/KKw7AxpLrDBQKLVnQCBtCh.json \
     -u username:password \
     -d '{
           ...
           "output_basename": "production-filename",
           "output_files": [
             {"format":"mp3", "bitrate":"48", "filename":"MyFilename1.mp3", "suffix": "-small"}
             {"format":"aac", "bitrate":"96", "filename":"MyFilename2.mp4", "ending": "m4a"}
           ]
           ...
         }'

This will create the output files MyFilename1.mp3 and MyFilename2.mp4.

Outgoing File Transfers

Similar to Upload Files with SFTP/FTP/Dropbox, external services can be referenced for outgoing file transfers:

curl -H "Content-Type: application/json" -X POST \
    https://auphonic.com/api/production/{uuid}/outgoing_services.json \
    -u username:password \
    -d '[{"uuid": "{service1_uuid}"}, {"uuid": "{service2_uuid}"}, ...]'

where {service1_uuid}, {service2_uuid}, etc. is the UUID of the external service you want to add for outgoing file transfers.

In SoundCloud, YouTube and Spreaker outgoing file transfers, additional parameters are available:
  • YouTube:
  • SoundCloud:
  • Spreaker:
    • downloadable: true or false
    • sharing: public or private
    • show: one of your available shows on Spreaker, as returned by Query Service Types

For example an outgoing file transfer to SoundCloud:

curl -H "Content-Type: application/json" -X POST \
    https://auphonic.com/api/production/{uuid}/outgoing_services.json \
    -u username:password \
    -d '[{"uuid": "gxr975w3MzRS9ywnWsu6tL", "downloadable": true, "sharing": "public", "track_type": "podcast"}]'

They support the same values as documented in the SoundCloud API Reference.

It’s also possible to query all registered external services of a user:

curl https://auphonic.com/api/services.json -u username:password

which returns:

{
    "status_code": 200,
    ...
    "data": [
        {
            "display_name": "Georg Holzmann",
            "type": "dropbox",
            "uuid": "UC6aoChNZNt7KYZNxJTgUn",
            "email": "georg@myserver.at",
            "incoming": true,
            "outgoing": true
        },
        {
            "display_name": "my soundcloud account",
            "type": "soundcloud",
            "uuid": "Asu5PxueRRxtqfZhe7zdia",
            "incoming": true,
            "outgoing": true
        },
        {
            "display_name": "my youtube vids",
            "type": "youtube",
            "uuid": "esSfxaPe6U2bNX2K9GGMeT",
            "incoming": false,
            "outgoing": true
        },
        {
            "display_name": "Auphonic Spreaker Account",
            "type": "spreaker",
            "uuid": "UL7MZvjR3tntbCvbxu5Jsi",
            "outgoing": true,
            "incoming": true
        },
        {
            "display_name": "my ftp server",
            "path": "mirror/",
            "host": "ftp.myserver.at",
            "type": "ftp",
            "uuid": "r6MSycBwyeWFAJYqUKtGeX",
            "port": 21,
            "base_url": "",
            "permissions": "",
            "incoming": true,
            "outgoing": true
        },
        {
            "display_name": "myserver.at SFTP"
            "path": "/home/user/path",
            "host": "myserver.at",
            "type": "sftp",
            "uuid": "jm7yLuiyGwQe27gQUz869K",
            "port": 22,
            "base_url": "http://myserver.at/audiofiles/",
            "permissions": "664",
            "incoming": true,
            "outgoing": true
        },
        {
            "outgoing": true,
            "display_name": "mypodcast /quickcast",
            "uuid": "h9KHD96Mks5JyfFuXYPXHk",
            "libsyn_show_slug": "mypodcast",
            "base_url": "http://traffic.libsyn.com/mypodcast/",
            "port": 21,
            "host": "ftp-server.libsyn.com",
            "path": "/mypodcast/quickcast",
            "incoming": false,
            "type": "libsyn",
            "libsyn_directory": "quickcast"
        },
        {
            "outgoing": true,
            "display_name": "auphonic bucket 1",
            "uuid": "gRNT7i5NVxPiGCG8TmhpgF",
            "type": "amazons3",
            "bucket": "auphonic1",
            "incoming": true,
            "canned_acl": "public-read",
            "key_prefix": "my-podcast/"
        },
        {
            "type": "archiveorg",
            "outgoing": true,
            "display_name": "archive",
            "uuid": "PQaZpL58TqvK9NvDnHu5Hj",
            "incoming": false
        },
        {
            "outgoing": true,
            "display_name": "My WebDAV Server",
            "uuid": "9k27BXTmvsKCdeoyXkHjVB",
            "url": "https://mywebdav.com/myfiles/",
            "base_url": "http://files.mywebdav.com/myfiles/",
            "incoming": true,
            "type": "webdav"
        },
        {
            "outgoing": true,
            "display_name": "Auphonic Blubrry Account",
            "uuid": "xJTES9PCAu3uvLE3gwSjAN",
            "program_keyword": "auphonic_blubrry_account",
            "base_url": "http://content.blubrry.com/auphonic_blubrry_account",
            "incoming": false,
            "type": "blubrry"
        }
    ]
}

The response contains different datasets for each external service, but each service must have a type and a uuid. incoming and outgoing indicates, if the service can be used as incoming and/or outgoing file transfer.

All possible external service types on auphonic.com and their parameters can be queried with:

curl https://auphonic.com/api/info/service_types.json -u username:password

which returns:

{
    "status_code": 200,
    ...
    "data": {
            "youtube": {
                "display_name": "YouTube",
                "parameters": {
                    "category": {
                        "default_value": "",
                        "type": "select",
                        "display_name": "Category",
                        "options": [
                            {
                                "display_name": "Autos & Vehicles",
                                "value": "Autos"
                            },
                            ...
                        ]
                    },
                    ...
                }
            },
            "soundcloud": {
                "display_name": "SoundCloud",
                "parameters": {
                    "downloadable": {
                        "default_value": true,
                        "type": "checkbox",
                        "display_name": "Downloadable"
                    },
                    ...
                }
            },
            "dropbox": {
                "display_name": "Dropbox",
                "parameters": null
            },
            ...
    }
}

The response also includes all available parameter values for YouTube, SoundCloud and Spreaker outgoing file transfers!

Reference Output Files for Outgoing File Transfers

If you want to export a specific output file to an outgoing external service, you can reference the external service account while setting the output file details:

curl -H "Content-Type: application/json" -X POST \
    https://auphonic.com/api/production/{uuid}/output_files.json \
    -u username:password \
    -d '[{"format":"mp3", "outgoing_services": ["uO7yLuiyGwQe27gQUz869K"]}]'

which means that the mp3 output file will be copied to the outgoing external service with the UUID uO7yLuiyGwQe27gQUz869K. If this service was not added as an outgoing file transfer to the current production, then these settings will be ignored.

If you don’t use the outgoing_services parameter in your output files, then the optimal set of output files will be created automatically:

  • all files are copied to FTP, SFTP, Dropbox, WebDAV, AmazonS3, Archive.org and blubrry accounts
  • the lossy audio file with the highest bitrate is exported to a SoundCloud account
  • for YouTube outgoing file transfers, the video output is selected, or otherwise a video will be generated from your audio file with optimal quality settings
  • an MP3 output file will be generated for libsyn outgoing file transfers

Audio Algorithms

Setting audio algorithm parameters:

curl -H "Content-Type: application/json" -X POST \
    https://auphonic.com/api/production/{uuid}/algorithms.json \
    -u username:password \
    -d '{
          "leveler": true, "normloudness": true, "loudnesstarget": -23,
          "hipfilter": true,  "denoise": false, "denoiseamount": 0
        }'

Note

A denoiseamount of 0 (default value) means automatic denoiseamount estimation!

This works exactly as in the production/preset form!

Available Audio Algorithms and parameters can be queried by:

curl https://auphonic.com/api/info/algorithms.json

which returns:

{
    "status_code": 200,
    "form_errors": {},
    "error_code": null,
    "error_message": "",
    "data": {
        "hipfilter": {
            "default_value": true,
            "type": "checkbox",
            "display_name": "Filtering",
            "description": "Filters unnecessary and disturbing low frequencies depending on the context (speech, music, noise)."
        },
        "leveler": {
            "default_value": true,
            "type": "checkbox",
            "display_name": "Adaptive Leveler ",
            "description": "Corrects level differences between speakers, music and speech, etc. to achieve a balanced overall loudness."
        },
        "normloudness": {
            "default_value": true,
            "type": "checkbox",
            "display_name": "Global Loudness Normalization",
            "description": "Adjusts the global, overall loudness to the specified Loudness Target, so that all processed files have a similar average loudness."
        },
        "loudnesstarget": {
            "default_value": -18,
            "type": "select",
            "display_name": "Loudness Target",
            "belongs_to": "normloudness",
            "description": "Select the loudness target in LUFS for Global Loudness Normalization, higher values result in louder audio outputs.",
            "options": [
                {
                    "display_name": "-13 LUFS (very loud)",
                    "value": -13
                },
                ...
                {
                    "display_name": "-24 LUFS, ATSC A/85, no gate (TV, US)",
                    "value": -24
                },
                {
                    "display_name": "-31 LUFS (very dynamic audio, quiet)",
                    "value": -31
                }
            ]
        },
        "denoise": {
            "default_value": false,
            "type": "checkbox",
            "display_name": "Noise Reduction ",
            "description": "Classifies regions with different background noises and automatically removes noise and hum."
        },
        "denoiseamount": {
            "default_value": 0,
            "type": "select",
            "display_name": "Noise Reduction Amount",
            "belongs_to": "denoise",
            "description": "Maximum noise reduction amount, higher values remove more noise. Use Automatic if you are no expert!",
            "options": [
                {
                    "display_name": ""Automatic",
                    "value": 0
                },
                ...
                {
                    "display_name": ""6 dB (low)",
                    "value": 6
                },
                ...
                {
                    "display_name": "12 dB (medium)",
                    "value": 12
                },
                ...
                {
                    "display_name": "100 dB (complete)",
                    "value": 100
                }
            ]
        }
    }
}

Adding Intro and Outro

You can automatically add an intro and outro to your main audio input file.

Note

Adding intro/outro does not work with video output files!

Intros and outros for presets always need external services and can’t be uploaded directly, because we store your audio files only for a limited number of days. They are referenced in the same way as the main input file would be referenced (see Files form External Servers), using a service UUID and a filename.

The easiest way to add intros or outros to your existing production is to upload the files (this only works with productions, use an external service with presets):

curl -X POST https://auphonic.com/api/production/{uuid}/upload.json \
    -u username:password \
    -F "intro_file=@/home/user/your_audio_intro_file.mp3"
    -F "outro_file=@/home/user/your_audio_outro_file.mp3"

Note that this will always create (or replace) a single intro/outro.

The following command adds an intro from an external service to an existing production/preset:

curl -X POST -H "Content-Type: application/json" \
    https://auphonic.com/api/production/{uuid}/multi_input_files.json \
    -u username:password \
    -d '[
            {
                "service": "pmefeNCzkyT4TbRbDmoCDf",
                "input_file": "my_dropbox_file.mp3",
                "type": "intro"
            }
        ]'

If you use HTTP as incoming service, just set the URI as input_file and omit the service field:

curl -X POST -H "Content-Type: application/json" \
    https://auphonic.com/api/production/{uuid}/multi_input_files.json \
    -u username:password \
    -d '[
            {
                "input_file": "http://your_server.com/outro.mp3",
                "type": "outro"
            }
        ]'

It’s of course also possible to add intro and outro at once:

curl -X POST -H "Content-Type: application/json" \
    https://auphonic.com/api/production/{uuid}/multi_input_files.json \
    -u username:password \
    -d '[
            {
                "service": "qwsalxnVdasAOpsjeNsjQo",
                "input_file": "my_sftp_intro.mp4",
                "type": "intro"
            },
            {
                "service": "pmefeNCzkyT4TbRbDmoCDf",
                "input_file": "another_dropbox_file.mp3",
                "type": "outro"
            }
        ]'

Add multiple Intros or Outros

Using the same interface as in our Multitrack Productions, it is possible to add multiple intros/outros to a production as well. These intros/outros are played in series.

Every single call to multi_input_files will append another intro/outro to your production. Use the following to add two intros from an external service:

curl -X POST -H "Content-Type: application/json" \
    https://auphonic.com/api/production/{uuid}/multi_input_files.json \
    -u username:password \
    -d '[
            {
                "service": "qwsalxnVdasAOpsjeNsjQo",
                "input_file": "my_sftp_intro_1.wav",
                "type": "intro"
            },
            {
                "service": "qwsalxnVdasAOpsjeNsjQo",
                "input_file": "my_sftp_intro_2.wav",
                "type": "intro"
            }
        ]'

If you want to upload intros/outros directly (without an external service), each intro/outro needs an ID which is used to upload the audio file in a second request:

curl -X POST -H "Content-Type: application/json" \
    https://auphonic.com/api/production/{uuid}/multi_input_files.json \
    -u username:password \
    -d '[
            {
                "type": "intro",
                "id": "first intro"
            },
            {
                "type": "intro",
                "id": "second intro"
            }
        ]'

This will create empty intros. Now upload files using the IDs from above in a second request:

curl -X POST https://auphonic.com/api/production/{uuid}/upload.json \
    -u username:password \
    -F "first intro=@/home/user/your_first_audio_intro_file.mp3" \
    -F "second intro=@/home/user/your_second_audio_intro_file.mp3"

If you want to delete all current intros/outros, use the following DELETE request:

curl -X DELETE https://auphonic.com/api/production/{uuid}/multi_input_files.json -u username:password

Overlapping Intros/Outros (Intro/Outro Offsets)

When creating intros/outros, it is possible to let them overlap with the main audio file or the next/previous intro/outro (using the same interface as in Multitrack Offsets).

For example, set the offset parameter to 2 (in seconds), to let the intro overlap for 2 seconds with the next audio file:

curl -X POST -H "Content-Type: application/json" \
    https://auphonic.com/api/production/{uuid}/multi_input_files.json \
    -u username:password \
    -d '[
            {
                "service": "qwsalxnVdasAOpsjeNsjQo",
                "input_file": "my_sftp_intro_1.wav",
                "type": "intro",
                "offset": 2
            }
        ]'

Overlap for outros work the other way around: if an outro has an offset of 5 seconds, it will overlap 5 seconds with the previous audio file.

Adding Speech Recognition

First you have to register a speech recognition service at the external services page. For more information about speech recognition, please read the Auphonic Speech Recognition blog post.

Request to add a speech recognition service to a production (or preset):

curl -X POST -H "Content-Type: application/json" \
    https://auphonic.com/api/production/{uuid}/speech_recognition.json
    -u username:password
    -d '{"uuid": "{service_uuid}"}'

Depending on the speech recognition service, additional parameters can be added to the request.

If you use the Google Cloud Speech API, the paramters keywords and language are available (Language codes for languages supported by Google can be found here):

curl -X POST -H "Content-Type: application/json" \
    https://auphonic.com/api/production/{uuid}/speech_recognition.json
    -u username:password
    -d '{
            "uuid": "6m8onAcvWHmZuJtDN6mzK8",
            "keywords": ["keyword1", "keyword2", "A longer phrase"],
            "language": "en-US"
        }'

The Auphonic speech recognition API supports three types of output formats:

  • subtitle: a subtitle format, available as srt or webvtt
  • speech: a machine readable format, available as json or xml
  • transcript a pure text format readable by humans, available as html or txt

Adding speech recognition to your production will always add the necessary output files as well. If you want different output formats, use the following request:

curl -H "Content-Type: application/json" -X POST \
    https://auphonic.com/api/production/{uuid}/output_files.json \
    -u username:password \
    -d '[{"format":"speech", "ending":"xml"}]'

Set all Details in one Request

It’s also possible to set all discussed details directly in one request:

curl -X POST -H "Content-Type: application/json" \
    https://auphonic.com/api/productions.json \
    -u username:password \
    -d '{
            "metadata": {
                "title": "Production Title",
                "artist": "The Artist",
                "album": "Our Album",
                "track": 1,
                "subtitle": "Our subtitle",
                "append_chapters": true,
                "summary": "Our very long summary.",
                "genre": "Podcast",
                "year": 2012,
                "publisher": "that's me",
                "url": "https://auphonic.com",
                "license": "Creative Commons Attribution 3.0 Austria",
                "license_url": "http://creativecommons.org/licenses/by/3.0/at/",
                "tags": ["podcast", "auphonic api", "metadata"],
                "location": {
                    "latitude": "47.070",
                    "longitude": "15.439"
                }
            },
            "output_basename": "production-filename",
            "output_files": [
                {"format": "mp3", "bitrate": "96", "mono_mixdown": true},
                {"format":"aac", "bitrate":"32", "suffix":"-small", "ending":"m4a"},
                {"format": "flac", "split_on_chapters": true}
            ],
            "outgoing_services": [{"uuid": "UC6aoChNZNt7KYZNxJTgUn"}, {"uuid": "jm7yLuiyGwQe27gQUz869K"}],
            "algorithms": {
                "hipfilter": true, "leveler": true,
                "normloudness": true, "denoise": true,
                "loudnesstarget": -23, "denoiseamount": 12
            },
            "chapters": {
                {"start": "00:00:00", "title": "Start Chapter", "url": "http://auphonic.com"},
                {"start": "00:02:18", "title": "Second Chapter"},
                {"start": "00:05:41", "title": "Final Chapter"}
            },
            "input_file": "http://your_server.com/somefile.mp3",
            "multi_input_files": [
                {
                    "input_file": "http://your_server.com/intro.mp3",
                    "type": "intro",
                    "offset": 2.3
                },
                {
                    "service": "pmefeNCzkyT4TbRbDmoCDf",
                    "input_file": "dropbox_outro_file.mp3",
                    "type": "outro"
                }
            ],
            "speech_recognition": {
                "uuid": "6m8onAcvWHmZuJtDN6mzK8",
                "keywords": ["Auphonic", "Holzmann", "Rattinger"],
                "language": "de-DE"
            },
            "image": "https://auphonic.com/static/images/logo.png"
        }'

and now start the audio post production:

curl -X POST https://auphonic.com/api/production/{uuid}/start.json -u username:password

Creation of Presets

The creation of presets is mostly equivalent, with the exception that you have to provide a preset_name and that it’s not possible to add chapters or an input file:

curl -X POST -H "Content-Type: application/json" \
    https://auphonic.com/api/presets.json \
    -u username:password \
    -d '{
            "preset_name": "The New Preset",
            "metadata": {
                "artist": "The Artist",
                "album": "Our Album",
                "subtitle": "Our subtitle",
                "append_chapters": true,
                "summary": "Our very long summary.",
                "genre": "Podcast",
                "year": 2012,
                "publisher": "that's me",
                "url": "https://auphonic.com",
                "license": "Creative Commons Attribution 3.0 Austria",
                "license_url": "http://creativecommons.org/licenses/by/3.0/at/",
                "tags": ["preset", "auphonic api", "metadata", "tags"],
                "location": {
                    "latitude": "47.070",
                    "longitude": "15.439"
                }
            },
            "output_basename": "production-filename",
            "output_files": [
                {"format": "mp3", "bitrate": "64"},
                {"format":"aac", "bitrate":"48"},
                {"format": "flac"}
            ],
            "outgoing_services": [{"uuid": "UC6aoChNZNt7KYZNxJTgUn"}],
            "algorithms": {
                "hipfilter": true, "leveler": true,
                "normloudness": true, "denoise": true,
                "loudnesstarget": -23, "denoiseamount": 100
            },
            "multi_input_files": [
                {
                    "input_file": "http://your_server.com/intro.mp3",
                    "type": "intro"
                },
                {
                    "service": "pmefeNCzkyT4TbRbDmoCDf",
                    "input_file": "dropbox_outro_file.mp3",
                    "type": "outro"
                }
            ],
            "speech_recognition": {
                "uuid": "6m8onAcvWHmZuJtDN6mzK8",
                "keywords": ["Auphonic", "Holzmann", "Rattinger"],
                "language": "de-DE"
            },
            "image": "https://auphonic.com/static/images/logo.png"
        }'

Furthermore you can change and update existing presets with the command:

https://auphonic.com/api/preset/{uuid}/{command}.json

where command should be one of metadata, output_files, outgoing_services, multi_input_files, algorithms or upload.