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
    }]
}
Property Description Options Default Value Required
task The 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, review edit No
projectName The project display name appears in the top toolbar. String limited to 100 characters Untitled No
incode SMPTE Timecode used to assign a global offset to a project. SMPTE Timecode in the format of hh:mm:ss:ff or hh:mm:ss;ff 00:00:00:00 No
frameRate The 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, 60 24 No
dropFrame The 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, false dependent on the project frameRate. No
thumbnailUrl The thumbnail URL is used to load an image into the video player on page load. URL TO IMAGE File (JPG, or PNG) n/a No
mediaUrl The 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/a No
mediaType The media type is used to properly load the media from the media URL file, hls, youtube, vimeo file No
publishText Custom text message to display in the publish window.  STRING n/a No
redirectUrl The redirect URL the page will navigate to once a work order has been published. URL STRING https://app.closedcaptioncreator.com No
tracks Tracks is an array of subtitle, transcript, or caption files that are imported into a project on load. Array [] [] (EMPTY ARRAY) No
type The caption track type used to create the Event Group in Closed Caption Creator. subtitle, transcription, translation  subtitle No
status The 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 Publish Publish No
displayName The track display name is visible in the Event Group tab inside of the Closed Caption Creator UI String limited to 60 characters Untitled No
language The track language used for AI Translation and spellcheck functionality. ISO-639 language code en-US No
rtl The Right-To-Left option can be set for languages written right-to-left such as Arabic. true, false false No
maxCps The maximum reading rate of an Event in a track list measured in characters-per-second Integer 0-9999 9999 No
maxWpm The maximum reading rate of an Event in a track list measured in words-per-minute Integer 0-9999 9999 No
maxChars The maximum number of characters per line in an Event. Integer 0-9999 32 No
maxLines The maximum number of lines per Event in a track list. Integer 0-9999 2 No
overlaps Enable overlap detection in a track list. When enabled, Events will error if overlaps are found. true, false true No
illegalChars Enable illegal character detection. Events with non-608 compliant characters will be marked with an error. true, false false No
importOptions The import options will indicate how a track should be imported. {} {} Yes
url A pre-signed URL to the closed caption, transcript, or subtitle file. URL STRING "" Yes
profile The decode profile used to read the file and parse the information. scenerist, webVtt, subRip, ebuStl, and more. (Contact Support for a complete list) subRip Yes
options Import/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
frameRate The frame rate of the file being imported 23.976, 24, 25, 29.97, 30, 59.94, 60 24 No
dropFrame The 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, false Dependent 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
url The server address where a POST request will be delivered. URL Encoded String n/a Yes
profile The encode profile used to read the file and parse the information. scenerist, webVtt, subRip, ebuStl, and more. (Contact Support for a complete list) subRip Yes
options Export/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
offset A 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;ff 00:00:00:00 No
offsetType The offset to be applied can either be add, or subtract. This allows for simple offsets to be automated. add, subtract add No
auth Whether 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, false false No
frameRate The frame rate of the file being exported 23.976, 24, 25, 29.97, 30, 59.94, 60 24 No
dropFrame The 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, false Dependent on frame rate. No
tcMultiplier The 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. Number 1.000 No
importAlertSuccess UI Alert that is displayed when a work order is imported successfully. Alerts are handled by the Sweetalert2 library. SweetAlert2 config object {} n/a No
title The title of the alert. STRING "" No
text The text of the alert. STRING "" No
importAlertError UI Alert that is displayed when a work order is imported with an error. Alerts are handled by the Sweetalert2 library. SweetAlert2 config object {} n/a No
title The title of the alert. STRING "" No
text The text of the alert. STRING "" No
publishAlertSuccess UI Alert that is displayed when a work order is published successfully. Alerts are handled by the Sweetalert2 library. SweetAlert2 config object {} n/a No
title The title of the alert. STRING "" No
text The text of the alert. STRING "" No
publishAlertError UI Alert that is displayed when a work order is published with an error. Alerts are handled by the Sweetalert2 library. SweetAlert2 config object {} n/a No
title The title of the alert. STRING "" No
text The 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
url The server address where a POST request will be delivered. URL Encoded String n/a Yes
profile The encode profile used to read the file and parse the information. scenerist, webVtt, subRip, ebuStl, and more. (Contact Support for a complete list) subRip Yes
options Export/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
offset A 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;ff 00:00:00:00 No
offsetType The offset to be applied can either be add, or subtract. This allows for simple offsets to be automated. add, subtract add No
auth Whether 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, false false No
frameRate The frame rate of the file being exported 23.976, 24, 25, 29.97, 30, 59.94, 60 24 No
dropFrame The 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, false Dependent on frame rate. No
tcMultiplier The 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. Number 1.000 No

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