Integration by Closed Caption Creator

Work Order API

Integrate Closed Caption Creator into your existing product or workflow.

The new Work Order API provides options to developers and product managers. Instead of building a subtitle editor, you can choose to integrate Closed Caption Creator. The Work Order API is easy to set up and customize.

Watch now:

A Subtitle Editor Made For You

Closed Caption Creator is a professional subtitle editor you don't need to build.

Editing captions is as easy as creating a link like this.

The new Work Order API provides the simplest method to seamlessly integrate Closed Caption Creator into your existing product or workflow.

Easily generate work orders using a link that can be opened in Closed Caption Creator. These work orders comprise detailed descriptions encompassing information about the project, tracks, and publish details. By initiating a project in Closed Caption Creator, you not only set the groundwork for the project but also furnish essential information regarding the designated publish destination once the work is completed.

Publish destinations can be configured with basic authentication, requiring users to enter a username and password before initiating the publish process. This username and password are subsequently authenticated on the server to ensure that the delivered file aligns with your workflow expectations.

Track profiles enable users to import and load over 30 different formats, including SRT, VTT, XML, TTML, JSON, and more.

  • Easy to setup and configure
  • Import and publish captions
  • Import multiple subtitle tracks in one work order
  • Provide media from a cloud bucket, YouTube URL, Vimeo, and more
  • Shared subscription options available
Book a Demo
ElevenLabs Display Photo showing a female robot and the text "Eleven Labs AI Voice Generator & Best Text to Speech"

Work Order Description

To integrate with Closed Caption Creator using our Work Order API, you will need to generate a Work Order Description.

The Work Order Description is a straightforward JSON schema that outlines predefined properties, including project frame rate, media information, track details, and publishing specifications. This JSON data is then URL encoded and submitted as a GET request to https://app.closedcaptioncreator.com/workorder?description=*URL ENCODED WORK ORDER*.

For more information about each Work Order Description Property, please refer to our Work Order API video at the top of this page.

Example Work Order Description

{
    "task" : "edit",
    "projectName:" : "Trailer Test",
    "incode" : "01:00:00:00",
    "frameRate" : 29.97,
    "dropFrame" : true,
    "thumbnailUrl" : "https://cc-converter-test.s3.us-east-2.amazonaws.com/thumbnail.jpg",
    "mediaUrl" : "https://firebasestorage.googleapis.com/v0/b/closed-caption-creator-app.appspot.com/o/content%2Fvideo%2Ftrailer.mp4?alt=media&token=e18df7d3-610c-44db-a888-dd8604cbf27d",
    "mediaType" : "file",
    "tracks" : [
        {
            "type" : "subtitle",
            "status" : "Do Not Publish",
            "displayName" : "English Subtitles",
            "language" : "en-US",
            "rtl" : false,
            "maxCps" : 20,
            "maxWpm" : 250,
            "maxChars" : 32,
            "maxLines" : 2,
            "overlaps" : true, 
            "illegalChars" : true,
            "importOptions" : {
                "url" : "https://firebasestorage.googleapis.com/v0/b/closed-caption-creator-app.appspot.com/o/content%2Fvideo%2Ftrailer.webvtt?alt=media&token=4a7ca1b8-8cda-43e9-84d0-29adb663c132",
                "profile" : "webVtt",
                "options" : [],
                "frameRate" : 29.97,
                "dropFrame" : true
            },
            "publishOptions" : [{
                "url" : "https://httpbin.org/anything",
                "profile" : "scenerist",
                "options" : [],
                "offset" : "00:00:00:00",
                "offsetType" : "add",
                "auth" : true,
                "frameRate" : 29.97,
                "dropFrame" : true,
                "tcMultiplier" : 1
            }]
        }
    ],
    "importAlertSuccess" : {
        "title" : "Work Order Import",
        "text" : "The workorder was imported successfully!"
    },
    "importAlertError" : {
        "title" : "Work Order Import",
        "text" : "There was an error importing the work order. Please go back and try again."
    },
    "publishAlertSuccess" : {
        "title" : "Work Order Publish",
        "text" : "Publish Complete!"
    },
    "publishAlertError" : {
        "title" : "Work Order Publish",
        "text" : ":( There was an error publishing the work order."
    },
    "publishText" : "Please leave this window open while publishing",
    "redirectUrl" : "http://127.0.0.1:8000/",
    "publishOptions" : [{
        "url" : "https://httpbin.org/anything",
        "profile" : "scenerist",
        "options" : [],
        "offset" : "00:00:00:00",
        "offsetType" : "add",
        "auth" : true,
        "frameRate" : 29.97,
        "dropFrame" : true,
        "tcMultiplier" : 1
    }]
}
PropertyDescriptionOptionsDefault ValueRequired
taskThe task property is used to determine the permission level of the user. Edit tasks allow users full control over the project including the ability to edit text, timings, and styles. Most importantly it impacts the publish workflow. Edit tasks will result in a new caption file being posted to the publish URL. Review tasks will result in a pass/fail result being posted.edit, revieweditNo
projectNameThe project display name appears in the top toolbar.String limited to 100 charactersUntitledNo
incodeSMPTE Timecode used to assign a global offset to a project.SMPTE Timecode in the format of hh:mm:ss:ff or hh:mm:ss;ff00:00:00:00No
frameRateThe video frame rate assigned to the project. This value is used to calculate timecodes and is very important when working with broadcast formats such as SCC, or EBU-STL.23.976, 24, 25, 29.97, 30, 59.94, 6024No
dropFrameThe dropFrame property will set the frame rate to either drop frame or non-drop frame. Drop Frame property is only valid for frame rates such as 29.97 and 59.94.true, falsedependent on the project frameRate.No
thumbnailUrlThe thumbnail URL is used to load an image into the video player on page load.URL TO IMAGE File (JPG, or PNG)n/aNo
mediaUrlThe media URL is used to stream video from a server or cloud bucket location. Please ensure CORS is configured for any bucket location so that it is accessible via Closed Caption Creator.Direct URL to web compatible video, YouTube video URL, Public Vimeo URL, or HLS Stream file.n/aNo
mediaTypeThe media type is used to properly load the media from the media URLfile, hls, youtube, vimeofileNo
publishTextCustom text message to display in the publish window. STRINGn/aNo
redirectUrlThe redirect URL the page will navigate to once a work order has been published.URL STRINGhttps://app.closedcaptioncreator.comNo
tracksTracks is an array of subtitle, transcript, or caption files that are imported into a project on load.Array [][] (EMPTY ARRAY)No
typeThe caption track type used to create the Event Group in Closed Caption Creator.subtitle, transcription, translation subtitleNo
statusThe status property is used to set the default publish status for a track. Tracks that should be published can have their status set to "Publish". Tracks that do not need to be published back to a server can be set to "Do Not Publish".Publish, Do Not PublishPublishNo
displayNameThe track display name is visible in the Event Group tab inside of the Closed Caption Creator UIString limited to 60 charactersUntitledNo
languageThe track language used for AI Translation and spellcheck functionality.ISO-639 language codeen-USNo
rtlThe Right-To-Left option can be set for languages written right-to-left such as Arabic.true, falsefalseNo
maxCpsThe maximum reading rate of an Event in a track list measured in characters-per-secondInteger 0-99999999No
maxWpmThe maximum reading rate of an Event in a track list measured in words-per-minuteInteger 0-99999999No
maxCharsThe maximum number of characters per line in an Event.Integer 0-999932No
maxLinesThe maximum number of lines per Event in a track list.Integer 0-99992No
overlapsEnable overlap detection in a track list. When enabled, Events will error if overlaps are found.true, falsetrueNo
illegalCharsEnable illegal character detection. Events with non-608 compliant characters will be marked with an error.true, falsefalseNo
importOptionsThe import options will indicate how a track should be imported.{}{}Yes
urlA pre-signed URL to the closed caption, transcript, or subtitle file.URL STRING""Yes
profileThe decode profile used to read the file and parse the information.scenerist, webVtt, subRip, ebuStl, and more. (Contact Support for a complete list)subRipYes
optionsImport/decode options are custom properties used to decode/read a subtitle file. Every decode profile will have a different set of options.Please contact support for a list of options depending on the profile you select.[]No
frameRateThe frame rate of the file being imported23.976, 24, 25, 29.97, 30, 59.94, 6024No
dropFrameThe dropFrame property indicates whether the frame rate should be set to drop frame or non-drop frame. This property only applies to 29.97 and 59.94 frame rates.true, falseDependent on frame rate.No
publishOptions  The publish options are used in the publish workflow to indicate how a completed project should be delivered. Publish Options are a LIST of publish destinations and properties. This allows for a single track to be published multiple times to separate destinations if required.[][]Yes
urlThe server address where a POST request will be delivered.URL Encoded Stringn/aYes
profileThe encode profile used to read the file and parse the information.scenerist, webVtt, subRip, ebuStl, and more. (Contact Support for a complete list)subRipYes
optionsExport/encode options are custom properties used to encode/write a subtitle file. Every encode profile will have a different set of options.Please contact support for a list of options depending on the profile you select.[]No
offsetA SMPTE timecode offset to be applied to the subtitle file being published.SMPTE Timecode in the format of hh:mm:ss:ff or hh:mm:ss;ff00:00:00:00No
offsetTypeThe offset to be applied can either be add, or subtract. This allows for simple offsets to be automated.add, subtractaddNo
authWhether to enable basic authentication. When enabled the user will be asked for a username/password that will be sent along with the POST message. true, falsefalseNo
frameRateThe frame rate of the file being exported23.976, 24, 25, 29.97, 30, 59.94, 6024No
dropFrameThe dropFrame property indicates whether the frame rate should be set to drop frame or non-drop frame. This property only applies to 29.97 and 59.94 frame rates.true, falseDependent on frame rate.No
tcMultiplierThe TC Multiplier allows for cases when the delivery is for a different frame rate than the project. For example, when delivering a 24 frame project in 23.976 you may need to specify a 1.001 multiplier.Number1.000No
importAlertSuccessUI Alert that is displayed when a work order is imported successfully. Alerts are handled by the Sweetalert2 library.SweetAlert2 config object {}n/aNo
titleThe title of the alert.STRING""No
textThe text of the alert.STRING""No
importAlertErrorUI Alert that is displayed when a work order is imported with an error. Alerts are handled by the Sweetalert2 library.SweetAlert2 config object {}n/aNo
titleThe title of the alert.STRING""No
textThe text of the alert.STRING""No
publishAlertSuccessUI Alert that is displayed when a work order is published successfully. Alerts are handled by the Sweetalert2 library.SweetAlert2 config object {}n/aNo
titleThe title of the alert.STRING""No
textThe text of the alert.STRING""No
publishAlertErrorUI Alert that is displayed when a work order is published with an error. Alerts are handled by the Sweetalert2 library.SweetAlert2 config object {}n/aNo
titleThe title of the alert.STRING""No
textThe text of the alert.STRING""No
publishOptions  The publish options are used in the publish workflow to indicate how a completed project should be delivered. Publish Options are a LIST of publish destinations and properties. This allows for a single track to be published multiple times to separate destinations if required.[][]Yes
urlThe server address where a POST request will be delivered.URL Encoded Stringn/aYes
profileThe encode profile used to read the file and parse the information.scenerist, webVtt, subRip, ebuStl, and more. (Contact Support for a complete list)subRipYes
optionsExport/encode options are custom properties used to encode/write a subtitle file. Every encode profile will have a different set of options.Please contact support for a list of options depending on the profile you select.[]No
offsetA SMPTE timecode offset to be applied to the subtitle file being published.SMPTE Timecode in the format of hh:mm:ss:ff or hh:mm:ss;ff00:00:00:00No
offsetTypeThe offset to be applied can either be add, or subtract. This allows for simple offsets to be automated.add, subtractaddNo
authWhether to enable basic authentication. When enabled the user will be asked for a username/password that will be sent along with the POST message. true, falsefalseNo
frameRateThe frame rate of the file being exported23.976, 24, 25, 29.97, 30, 59.94, 6024No
dropFrameThe dropFrame property indicates whether the frame rate should be set to drop frame or non-drop frame. This property only applies to 29.97 and 59.94 frame rates.true, falseDependent on frame rate.No
tcMultiplierThe TC Multiplier allows for cases when the delivery is for a different frame rate than the project. For example, when delivering a 24 frame project in 23.976 you may need to specify a 1.001 multiplier.Number1.000No

Account Management

By default, the user opening the work order must have a Closed Caption Creator account and an active subscription. Enterprise customers can circumvent this requirement by registering a Work Order Project and obtaining a unique token for the user. When a token is identified in a work order, it is matched with the Enterprise account, utilizing that account's subscription to authenticate the user.

Please contact our sales and support team to learn more about account management and subscription requirements. 

Ready to integrate?

Sign up for a trial of Closed Caption Creator

You will need a trial account to get started. Once you've signed up for a trial and created your first Work Order Description, the rest is easy.

Watch the video at the top of this page to learn more.

Sign Up Now

More Solutions

Closed Captioning

Create closed captioning and subtitles for your broadcast videos using Closed Caption Creator. Create, edit, and review closed captioning using our intuitive timed-text editor.

Learn More

Translation & Localization

Translate and localize closed captioning, and subtitles in our dedicated Translation UI. View the original source language alongside the translated text to ensure an accurate translation.

Learn More

Transcripts & Dialogue Lists

Create as-broadcast scripts, and dialogue lists with custom notes, tags, Speaker IDs, and more using Closed Caption Creator. Support for Microsoft Word (.docx), CSV, and plaintext formats. 

Learn More

Audio Description & DV

Create lifelike audio descriptions and described video (DV) using the power of synthetic voice. Unlock the ability to create closed captioning and audio descriptions all in one application. 

Learn More

Embed & Extract 608/708 Closed Captioning

Package broadcast-ready files with the CC Embed & Extract plugin for Closed Caption Creator. Supports MXF, MP4, MOV, and more.

Learn More

File Converter API

Automate your closed caption and subtitle workflows using our dedicated Closed Caption Converter API. Support over 30 different closed caption and subtitle file formats. 

Learn More