NAV
General Flip Timed Text Speech
Quality Control Notifications

API

Telestream Cloud Timed Text Speech API lets external applications integrate with our automated transcription service to instantly create highly accurate captions and subtitles using speech to text technology.

Timed Text Speech API is REST based and returns responses in JSON. It allows you to create and manage Projects and custom vocabulary, submit transcription jobs and track their progress.

Using the REST API directly

If you don’t plan to use one of our SDKs you then you will need the following data to make calls to our API:

projects

projects

Code samples

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'X-Api-Key' => 'API_KEY'
}

result = RestClient.get 'https://api.cloud.telestream.net/tts/v1.0/projects',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'X-Api-Key': 'API_KEY'
}

r = requests.get('https://api.cloud.telestream.net/tts/v1.0/projects', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.cloud.telestream.net/tts/v1.0/projects");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "X-Api-Key": []string{"API_KEY"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.cloud.telestream.net/tts/v1.0/projects", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /projects

Returns a collection of Projects

Returns a collection of Projects

Example responses

200 Response

{
  "projects": [
    {
      "id": "tg01a16130b9418395e68f844de8ab20",
      "name": "Example project",
      "description": "string",
      "status": "available",
      "language": "en-US",
      "sample_rate": 16000,
      "profanity_filter": true,
      "generate_proxy": true,
      "custom_words": "string",
      "created_at": "2017-01-02T03:04:05Z",
      "updated_at": "2017-01-02T03:04:05Z"
    }
  ],
  "page": 1,
  "per_page": 30,
  "page_count": 1,
  "total_count": 1
}

Responses

Status Description Schema
200 OK
OK
ProjectsCollection

create project

Code samples

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'X-Api-Key' => 'API_KEY'
}

result = RestClient.post 'https://api.cloud.telestream.net/tts/v1.0/projects',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'X-Api-Key': 'API_KEY'
}

r = requests.post('https://api.cloud.telestream.net/tts/v1.0/projects', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.cloud.telestream.net/tts/v1.0/projects");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "X-Api-Key": []string{"API_KEY"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://api.cloud.telestream.net/tts/v1.0/projects", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /projects

Creates a new Project

Creates a new Project

Body parameter

{
  "id": "tg01a16130b9418395e68f844de8ab20",
  "name": "Example project",
  "description": "string",
  "status": "available",
  "language": "en-US",
  "sample_rate": 16000,
  "profanity_filter": true,
  "generate_proxy": true,
  "custom_words": "string",
  "created_at": "2017-01-02T03:04:05Z",
  "updated_at": "2017-01-02T03:04:05Z"
}

Parameters

body
In body
required
none

Example responses

201 Response

{
  "id": "tg01a16130b9418395e68f844de8ab20",
  "name": "Example project",
  "description": "string",
  "status": "available",
  "language": "en-US",
  "sample_rate": 16000,
  "profanity_filter": true,
  "generate_proxy": true,
  "custom_words": "string",
  "created_at": "2017-01-02T03:04:05Z",
  "updated_at": "2017-01-02T03:04:05Z"
}

400 Response

{}

Responses

Status Description Schema
201 Created
Created
Project
400 Bad Request
Invalid request body
ErrorResponse
422 Unprocessable Entity
Invalid request params
None

project

Code samples

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'X-Api-Key' => 'API_KEY'
}

result = RestClient.get 'https://api.cloud.telestream.net/tts/v1.0/projects/{projectID}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'X-Api-Key': 'API_KEY'
}

r = requests.get('https://api.cloud.telestream.net/tts/v1.0/projects/{projectID}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.cloud.telestream.net/tts/v1.0/projects/{projectID}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "X-Api-Key": []string{"API_KEY"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.cloud.telestream.net/tts/v1.0/projects/{projectID}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /projects/{projectID}

Returns the Project

Returns the Project

Parameters

projectID
string
In path
required
ID of the Project

Example responses

200 Response

{
  "id": "tg01a16130b9418395e68f844de8ab20",
  "name": "Example project",
  "description": "string",
  "status": "available",
  "language": "en-US",
  "sample_rate": 16000,
  "profanity_filter": true,
  "generate_proxy": true,
  "custom_words": "string",
  "created_at": "2017-01-02T03:04:05Z",
  "updated_at": "2017-01-02T03:04:05Z"
}

Responses

Status Description Schema
200 OK
OK
Project

update project

Code samples

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'X-Api-Key' => 'API_KEY'
}

result = RestClient.put 'https://api.cloud.telestream.net/tts/v1.0/projects/{projectID}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'X-Api-Key': 'API_KEY'
}

r = requests.put('https://api.cloud.telestream.net/tts/v1.0/projects/{projectID}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.cloud.telestream.net/tts/v1.0/projects/{projectID}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "X-Api-Key": []string{"API_KEY"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "https://api.cloud.telestream.net/tts/v1.0/projects/{projectID}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PUT /projects/{projectID}

Updates an existing Project

Updates an existing Project

Body parameter

{
  "id": "tg01a16130b9418395e68f844de8ab20",
  "name": "Example project",
  "description": "string",
  "status": "available",
  "language": "en-US",
  "sample_rate": 16000,
  "profanity_filter": true,
  "generate_proxy": true,
  "custom_words": "string",
  "created_at": "2017-01-02T03:04:05Z",
  "updated_at": "2017-01-02T03:04:05Z"
}

Parameters

body
In body
required
none

Example responses

200 Response

{
  "id": "tg01a16130b9418395e68f844de8ab20",
  "name": "Example project",
  "description": "string",
  "status": "available",
  "language": "en-US",
  "sample_rate": 16000,
  "profanity_filter": true,
  "generate_proxy": true,
  "custom_words": "string",
  "created_at": "2017-01-02T03:04:05Z",
  "updated_at": "2017-01-02T03:04:05Z"
}

Responses

Status Description Schema
200 OK
OK
Project
400 Bad Request
Invalid request body
None
422 Unprocessable Entity
Invalid request params
None

delete project

Code samples

require 'rest-client'
require 'json'

headers = {
  'X-Api-Key' => 'API_KEY'
}

result = RestClient.delete 'https://api.cloud.telestream.net/tts/v1.0/projects/{projectID}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'X-Api-Key': 'API_KEY'
}

r = requests.delete('https://api.cloud.telestream.net/tts/v1.0/projects/{projectID}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.cloud.telestream.net/tts/v1.0/projects/{projectID}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "X-Api-Key": []string{"API_KEY"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "https://api.cloud.telestream.net/tts/v1.0/projects/{projectID}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

DELETE /projects/{projectID}

Deletes the Project

Deletes the Project

Responses

Status Description Schema
204 No Content
Deleted
None

train project

Code samples

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'X-Api-Key' => 'API_KEY'
}

result = RestClient.post 'https://api.cloud.telestream.net/tts/v1.0/projects/{projectID}/train',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'X-Api-Key': 'API_KEY'
}

r = requests.post('https://api.cloud.telestream.net/tts/v1.0/projects/{projectID}/train', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.cloud.telestream.net/tts/v1.0/projects/{projectID}/train");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "X-Api-Key": []string{"API_KEY"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://api.cloud.telestream.net/tts/v1.0/projects/{projectID}/train", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /projects/{projectID}/train

Queues training

Queues training

Parameters

projectID
string
In path
required
ID of the Project

Example responses

409 Response

{}

Responses

Status Description Schema
200 OK
OK
None
409 Conflict
Error
ErrorResponse

jobs

jobs

Code samples

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'X-Api-Key' => 'API_KEY'
}

result = RestClient.get 'https://api.cloud.telestream.net/tts/v1.0/projects/{projectID}/jobs',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'X-Api-Key': 'API_KEY'
}

r = requests.get('https://api.cloud.telestream.net/tts/v1.0/projects/{projectID}/jobs', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.cloud.telestream.net/tts/v1.0/projects/{projectID}/jobs");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "X-Api-Key": []string{"API_KEY"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.cloud.telestream.net/tts/v1.0/projects/{projectID}/jobs", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /projects/{projectID}/jobs

Returns a collection of Jobs

Returns a collection of Jobs

Parameters

projectID
string
In path
required
ID of the Project
page
integer
In query
optional
page number
per_page
integer
In query
optional
number of records per page

Example responses

200 Response

{
  "jobs": [
    {
      "id": "7c0da16130b9418395e68f844de8ab20",
      "name": "abcdef",
      "original_filename": "demo.mp4",
      "project_id": "tg01a16130b9418395e68f844de8ab20",
      "source_url": "http://example.com/path/to/file.flac",
      "status": "pending",
      "error": "string",
      "progress": 0,
      "confidence": 0,
      "duration": 0,
      "bitrate": 192000,
      "sample_rate": 0,
      "format": "OGG_OPUS",
      "file_size": 0,
      "created_at": "2017-01-02T03:04:05Z",
      "updated_at": "2017-01-02T03:04:05Z"
    }
  ],
  "page": 1,
  "per_page": 30,
  "page_count": 2,
  "total_count": 60
}

Responses

Status Description Schema
200 OK
OK
JobsCollection

create job

Code samples

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'X-Api-Key' => 'API_KEY'
}

result = RestClient.post 'https://api.cloud.telestream.net/tts/v1.0/projects/{projectID}/jobs',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'X-Api-Key': 'API_KEY'
}

r = requests.post('https://api.cloud.telestream.net/tts/v1.0/projects/{projectID}/jobs', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.cloud.telestream.net/tts/v1.0/projects/{projectID}/jobs");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "X-Api-Key": []string{"API_KEY"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://api.cloud.telestream.net/tts/v1.0/projects/{projectID}/jobs", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /projects/{projectID}/jobs

Creates a new Job

Creates a new Job

Body parameter

{
  "id": "7c0da16130b9418395e68f844de8ab20",
  "name": "abcdef",
  "original_filename": "demo.mp4",
  "project_id": "tg01a16130b9418395e68f844de8ab20",
  "source_url": "http://example.com/path/to/file.flac",
  "status": "pending",
  "error": "string",
  "progress": 0,
  "confidence": 0,
  "duration": 0,
  "bitrate": 192000,
  "sample_rate": 0,
  "format": "OGG_OPUS",
  "file_size": 0,
  "created_at": "2017-01-02T03:04:05Z",
  "updated_at": "2017-01-02T03:04:05Z"
}

Parameters

projectID
string
In path
required
ID of the Project
body
In body
required
none

Example responses

201 Response

{
  "id": "7c0da16130b9418395e68f844de8ab20",
  "name": "abcdef",
  "original_filename": "demo.mp4",
  "project_id": "tg01a16130b9418395e68f844de8ab20",
  "source_url": "http://example.com/path/to/file.flac",
  "status": "pending",
  "error": "string",
  "progress": 0,
  "confidence": 0,
  "duration": 0,
  "bitrate": 192000,
  "sample_rate": 0,
  "format": "OGG_OPUS",
  "file_size": 0,
  "created_at": "2017-01-02T03:04:05Z",
  "updated_at": "2017-01-02T03:04:05Z"
}

Responses

Status Description Schema
201 Created
Created
Job
400 Bad Request
Invalid request body
None
422 Unprocessable Entity
Invalid request params
None

upload video

Code samples

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'X-Api-Key' => 'API_KEY'
}

result = RestClient.post 'https://api.cloud.telestream.net/tts/v1.0/projects/{projectID}/jobs/upload',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'X-Api-Key': 'API_KEY'
}

r = requests.post('https://api.cloud.telestream.net/tts/v1.0/projects/{projectID}/jobs/upload', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.cloud.telestream.net/tts/v1.0/projects/{projectID}/jobs/upload");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "X-Api-Key": []string{"API_KEY"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://api.cloud.telestream.net/tts/v1.0/projects/{projectID}/jobs/upload", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /projects/{projectID}/jobs/upload

Creates an upload session

Body parameter

{
  "file_size": 0,
  "file_name": "string",
  "profiles": "string",
  "multi_chunk": true,
  "extra_files": [
    {
      "tag": "string",
      "file_size": 0,
      "file_name": "string"
    }
  ]
}

Parameters

projectID
string
In path
required
ID of the Project
body
object
In body
required
none
» file_size
integer(int64)
In body
required
Size of the file that will be uploaded in bytes.
» file_name
string
In body
required
Name of the file that will be uploaded.
» profiles
string
In body
optional
none
» multi_chunk
boolean
In body
optional
none
» extra_files
In body
optional
A list of names of additional files that will be uploaded.
»» tag
string
In body
required
none
»» file_size
integer(int64)
In body
required
none
»» file_name
string
In body
required
none

Example responses

201 Response

{
  "type": "object",
  "required": [
    "id",
    "location"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "An unique identifier of the UploadSession."
    },
    "location": {
      "type": "string",
      "description": "An URL to which chunks of the uploaded file should be sent"
    },
    "parts": {
      "type": "integer",
      "description": "A number of chunks that are expected by the upstream."
    },
    "part_size": {
      "type": "integer",
      "description": "An expected size of uploaded chunks."
    },
    "max_connections": {
      "type": "integer",
      "description": "A maximum number of concurrent connections."
    },
    "extra_files": {
      "type": "object",
      "additionalProperties": null,
      "description": "An object containing additional files uploaded using the session."
    }
  }
}

Responses

Status Description Schema
201 Created
Created
UploadSession

job

Code samples

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'X-Api-Key' => 'API_KEY'
}

result = RestClient.get 'https://api.cloud.telestream.net/tts/v1.0/projects/{projectID}/jobs/{jobID}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'X-Api-Key': 'API_KEY'
}

r = requests.get('https://api.cloud.telestream.net/tts/v1.0/projects/{projectID}/jobs/{jobID}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.cloud.telestream.net/tts/v1.0/projects/{projectID}/jobs/{jobID}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "X-Api-Key": []string{"API_KEY"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.cloud.telestream.net/tts/v1.0/projects/{projectID}/jobs/{jobID}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /projects/{projectID}/jobs/{jobID}

Returns the Job

Returns the Job

Parameters

projectID
string
In path
required
ID of the Project
jobID
string
In path
required
none

Example responses

200 Response

{
  "id": "7c0da16130b9418395e68f844de8ab20",
  "name": "abcdef",
  "original_filename": "demo.mp4",
  "project_id": "tg01a16130b9418395e68f844de8ab20",
  "source_url": "http://example.com/path/to/file.flac",
  "status": "pending",
  "error": "string",
  "progress": 0,
  "confidence": 0,
  "duration": 0,
  "bitrate": 192000,
  "sample_rate": 0,
  "format": "OGG_OPUS",
  "file_size": 0,
  "created_at": "2017-01-02T03:04:05Z",
  "updated_at": "2017-01-02T03:04:05Z"
}

Responses

Status Description Schema
200 OK
OK
Job

delete job

Code samples

require 'rest-client'
require 'json'

headers = {
  'X-Api-Key' => 'API_KEY'
}

result = RestClient.delete 'https://api.cloud.telestream.net/tts/v1.0/projects/{projectID}/jobs/{jobID}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'X-Api-Key': 'API_KEY'
}

r = requests.delete('https://api.cloud.telestream.net/tts/v1.0/projects/{projectID}/jobs/{jobID}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.cloud.telestream.net/tts/v1.0/projects/{projectID}/jobs/{jobID}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "X-Api-Key": []string{"API_KEY"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "https://api.cloud.telestream.net/tts/v1.0/projects/{projectID}/jobs/{jobID}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

DELETE /projects/{projectID}/jobs/{jobID}

Deletes the Job

Deletes the Job

Parameters

projectID
string
In path
required
ID of the Project
jobID
string
In path
required
none

Responses

Status Description Schema
204 No Content
Deleted
None

job result

Code samples

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'X-Api-Key' => 'API_KEY'
}

result = RestClient.get 'https://api.cloud.telestream.net/tts/v1.0/projects/{projectID}/jobs/{jobID}/result',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'X-Api-Key': 'API_KEY'
}

r = requests.get('https://api.cloud.telestream.net/tts/v1.0/projects/{projectID}/jobs/{jobID}/result', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.cloud.telestream.net/tts/v1.0/projects/{projectID}/jobs/{jobID}/result");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "X-Api-Key": []string{"API_KEY"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.cloud.telestream.net/tts/v1.0/projects/{projectID}/jobs/{jobID}/result", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /projects/{projectID}/jobs/{jobID}/result

Returns the Job Result

Returns the Job Result

Parameters

projectID
string
In path
required
ID of the Project
jobID
string
In path
required
none

Example responses

200 Response

{
  "results": [
    {
      "transcript": "string",
      "start_time": 0.11,
      "fragments": [
        {
          "start_time": 0.11,
          "variants": [
            {
              "fragment": "Lorem",
              "confidence": 0.9
            }
          ],
          "end_time": 0.45
        }
      ],
      "end_time": 0.99,
      "confidence": 0.95
    }
  ]
}

Responses

Status Description Schema
200 OK
OK
JobResult
404 Not Found
Not Found
None

corpora

corpora

Code samples

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'X-Api-Key' => 'API_KEY'
}

result = RestClient.get 'https://api.cloud.telestream.net/tts/v1.0/projects/{projectID}/corpora',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'X-Api-Key': 'API_KEY'
}

r = requests.get('https://api.cloud.telestream.net/tts/v1.0/projects/{projectID}/corpora', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.cloud.telestream.net/tts/v1.0/projects/{projectID}/corpora");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "X-Api-Key": []string{"API_KEY"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.cloud.telestream.net/tts/v1.0/projects/{projectID}/corpora", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /projects/{projectID}/corpora

Returns a collection of Corpora

Returns a collection of Corpora

Parameters

projectID
string
In path
required
ID of the Project

Example responses

200 Response

{
  "corpora": [
    {
      "name": "file-name",
      "status": "being_processed"
    }
  ]
}

Responses

Status Description Schema
200 OK
OK
CorporaCollection

corpus

Code samples

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'X-Api-Key' => 'API_KEY'
}

result = RestClient.get 'https://api.cloud.telestream.net/tts/v1.0/projects/{projectID}/corpora/{name}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'X-Api-Key': 'API_KEY'
}

r = requests.get('https://api.cloud.telestream.net/tts/v1.0/projects/{projectID}/corpora/{name}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.cloud.telestream.net/tts/v1.0/projects/{projectID}/corpora/{name}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "X-Api-Key": []string{"API_KEY"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.cloud.telestream.net/tts/v1.0/projects/{projectID}/corpora/{name}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /projects/{projectID}/corpora/{name}

Returns the Corpus

Returns the Corpus

Parameters

projectID
string
In path
required
ID of the Project
name
string
In path
required
Corpus name

Example responses

200 Response

{
  "name": "file-name",
  "status": "being_processed"
}

Responses

Status Description Schema
200 OK
OK
Corpus

create corpus

Code samples

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'text/plain',
  'Accept' => 'application/json',
  'X-Api-Key' => 'API_KEY'
}

result = RestClient.post 'https://api.cloud.telestream.net/tts/v1.0/projects/{projectID}/corpora/{name}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'text/plain',
  'Accept': 'application/json',
  'X-Api-Key': 'API_KEY'
}

r = requests.post('https://api.cloud.telestream.net/tts/v1.0/projects/{projectID}/corpora/{name}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.cloud.telestream.net/tts/v1.0/projects/{projectID}/corpora/{name}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"text/plain"},
        "Accept": []string{"application/json"},
        "X-Api-Key": []string{"API_KEY"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://api.cloud.telestream.net/tts/v1.0/projects/{projectID}/corpora/{name}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /projects/{projectID}/corpora/{name}

Creates a new Corpus

Creates a new Corpus

Body parameter

Parameters

projectID
string
In path
required
ID of the Project
name
string
In path
required
Corpus name
body
string
In body
required
none

Example responses

409 Response

{}

Responses

Status Description Schema
201 Created
Created
None
409 Conflict
Error
ErrorResponse

delete corpus

Code samples

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'X-Api-Key' => 'API_KEY'
}

result = RestClient.delete 'https://api.cloud.telestream.net/tts/v1.0/projects/{projectID}/corpora/{name}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'X-Api-Key': 'API_KEY'
}

r = requests.delete('https://api.cloud.telestream.net/tts/v1.0/projects/{projectID}/corpora/{name}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.cloud.telestream.net/tts/v1.0/projects/{projectID}/corpora/{name}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "X-Api-Key": []string{"API_KEY"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "https://api.cloud.telestream.net/tts/v1.0/projects/{projectID}/corpora/{name}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

DELETE /projects/{projectID}/corpora/{name}

Creates a new Corpus

Creates a new Corpus

Parameters

projectID
string
In path
required
ID of the Project
name
string
In path
required
Corpus name

Example responses

409 Response

{}

Responses

Status Description Schema
204 No Content
Deleted
None
409 Conflict
Error
ErrorResponse

Schemas

Project

{
  "id": "tg01a16130b9418395e68f844de8ab20",
  "name": "Example project",
  "description": "string",
  "status": "available",
  "language": "en-US",
  "sample_rate": 16000,
  "profanity_filter": true,
  "generate_proxy": true,
  "custom_words": "string",
  "created_at": "2017-01-02T03:04:05Z",
  "updated_at": "2017-01-02T03:04:05Z"
}

Properties

id
string
optional
The ID of the Project.
name
string
optional
The name of the Project.
description
string
optional
The description of the Project.
status
string
optional
Determines a stage of training.
language
string
optional
The language code of model.
sample_rate
integer
optional
The sample rate of model.
profanity_filter
boolean
optional
If true, the service replaces profanity from output with asterisks.
generate_proxy
boolean
optional
Indicates whether video preview should be generated.
custom_words
string
optional
Words used for model training, separated by space.
created_at
string(dateTime)
optional
A date and time when the project was created
updated_at
string(dateTime)
optional
A date and time when the project was updated

Enumerated Values

status
available
status
modified
status
training
status
failed

Job

{
  "id": "7c0da16130b9418395e68f844de8ab20",
  "name": "abcdef",
  "original_filename": "demo.mp4",
  "project_id": "tg01a16130b9418395e68f844de8ab20",
  "source_url": "http://example.com/path/to/file.flac",
  "status": "pending",
  "error": "string",
  "progress": 0,
  "confidence": 0,
  "duration": 0,
  "bitrate": 192000,
  "sample_rate": 0,
  "format": "OGG_OPUS",
  "file_size": 0,
  "created_at": "2017-01-02T03:04:05Z",
  "updated_at": "2017-01-02T03:04:05Z"
}

Properties

id
string
optional
The ID of the job.
name
string
optional
The name of the job.
original_filename
string
optional
The name of the input file
project_id
string
optional
The ID of the project.
source_url
string
optional
The URL of source file.
status
string
optional
Determines the state of transcription job.
error
string
optional
If the status of the job is ‘error’, returns the state of job.
progress
integer
optional
A percentage that indicates the progress of the job.
confidence
integer
optional
The confidence score of the job in the range of 0 to 100.
duration
integer
optional
The duration of the input audio in milliseconds.
bitrate
integer
optional
The bitrate of the input audio.
sample_rate
integer
optional
The sample rate of the input audio.
format
string
optional
The format of the input audio.
file_size
integer
optional
The file size of the input file.
created_at
string(dateTime)
optional
A date and time when the job was created
updated_at
string(dateTime)
optional
A date and time when the job was updated

Enumerated Values

status
pending
status
preparing
status
processing
status
success
status
error

JobResult

{
  "results": [
    {
      "transcript": "string",
      "start_time": 0.11,
      "fragments": [
        {
          "start_time": 0.11,
          "variants": [
            {
              "fragment": "Lorem",
              "confidence": 0.9
            }
          ],
          "end_time": 0.45
        }
      ],
      "end_time": 0.99,
      "confidence": 0.95
    }
  ]
}

Properties

results
optional
An array of Results

Result

{
  "transcript": "string",
  "start_time": 0.11,
  "fragments": [
    {
      "start_time": 0.11,
      "variants": [
        {
          "fragment": "Lorem",
          "confidence": 0.9
        }
      ],
      "end_time": 0.45
    }
  ],
  "end_time": 0.99,
  "confidence": 0.95
}

Properties

transcript
string
optional
none
start_time
number
optional
The start time in seconds of the transcript from the input audio
fragments
optional
An array of Fragments
end_time
number
optional
The end time time in seconds of the transcript from the input audio
confidence
number
optional
The confidence score of the result in the range of 0 to 1

Fragment

{
  "start_time": 0.11,
  "variants": [
    {
      "fragment": "Lorem",
      "confidence": 0.9
    }
  ],
  "end_time": 0.45
}

Properties

start_time
number
optional
The start time in seconds of the fragment from the input audio
variants
optional
An array of FragmentVariants
end_time
number
optional
The end time in seconds of the fragment from the input audio

FragmentVariant

{
  "fragment": "Lorem",
  "confidence": 0.9
}

Properties

fragment
string
optional
An alternative hypothesis for a fragment from the input audio.
confidence
number
optional
The confidence score of the fragment variant hypothesis in the range of 0 to 1.

ExtraFile

{
  "tag": "string",
  "file_size": 0,
  "file_name": "string"
}

Properties

tag
string
required
none
file_size
integer(int64)
required
none
file_name
string
required
none

UploadSession

{
  "type": "object",
  "required": [
    "id",
    "location"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "An unique identifier of the UploadSession."
    },
    "location": {
      "type": "string",
      "description": "An URL to which chunks of the uploaded file should be sent"
    },
    "parts": {
      "type": "integer",
      "description": "A number of chunks that are expected by the upstream."
    },
    "part_size": {
      "type": "integer",
      "description": "An expected size of uploaded chunks."
    },
    "max_connections": {
      "type": "integer",
      "description": "A maximum number of concurrent connections."
    },
    "extra_files": {
      "type": "object",
      "additionalProperties": null,
      "description": "An object containing additional files uploaded using the session."
    }
  }
}

Properties

id
string
required
An unique identifier of the UploadSession.
location
string
required
An URL to which chunks of the uploaded file should be sent
parts
integer
optional
A number of chunks that are expected by the upstream.
part_size
integer
optional
An expected size of uploaded chunks.
max_connections
integer
optional
A maximum number of concurrent connections.
extra_files
object
optional
An object containing additional files uploaded using the session.

Corpus

{
  "name": "file-name",
  "status": "being_processed"
}

Properties

name
string
optional
The name of the Corpus.
status
string
optional
Determines the status of the Corpus.

ProjectsCollection

{
  "projects": [
    {
      "id": "tg01a16130b9418395e68f844de8ab20",
      "name": "Example project",
      "description": "string",
      "status": "available",
      "language": "en-US",
      "sample_rate": 16000,
      "profanity_filter": true,
      "generate_proxy": true,
      "custom_words": "string",
      "created_at": "2017-01-02T03:04:05Z",
      "updated_at": "2017-01-02T03:04:05Z"
    }
  ],
  "page": 1,
  "per_page": 30,
  "page_count": 1,
  "total_count": 1
}

Properties

projects
optional
none
page
integer
optional
A number of the fetched page.
per_page
integer
optional
A number of projects per page.
page_count
integer
optional
A number of pages.
total_count
integer
optional
A number of all projects.

JobsCollection

{
  "jobs": [
    {
      "id": "7c0da16130b9418395e68f844de8ab20",
      "name": "abcdef",
      "original_filename": "demo.mp4",
      "project_id": "tg01a16130b9418395e68f844de8ab20",
      "source_url": "http://example.com/path/to/file.flac",
      "status": "pending",
      "error": "string",
      "progress": 0,
      "confidence": 0,
      "duration": 0,
      "bitrate": 192000,
      "sample_rate": 0,
      "format": "OGG_OPUS",
      "file_size": 0,
      "created_at": "2017-01-02T03:04:05Z",
      "updated_at": "2017-01-02T03:04:05Z"
    }
  ],
  "page": 1,
  "per_page": 30,
  "page_count": 2,
  "total_count": 60
}

Properties

jobs
[Job]
optional
none
page
integer
optional
A number of the fetched page.
per_page
integer
optional
A number of jobs per page.
page_count
integer
optional
A number of pages.
total_count
integer
optional
A number of all jobs.

CorporaCollection

{
  "corpora": [
    {
      "name": "file-name",
      "status": "being_processed"
    }
  ]
}

Properties

corpora
optional
An array of Corpus files

ErrorResponse

{}

ErrorResponse

Properties

None