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.
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.
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.
{ "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 |
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.
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 NowCreate 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 MoreTranslate 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 MoreCreate 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 MoreCreate 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 MorePackage broadcast-ready files with the CC Embed & Extract plugin for Closed Caption Creator. Supports MXF, MP4, MOV, and more.
Learn MoreAutomate 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