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:
- API Address: https://api.cloud.telestream.net/tts/v1.0
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 | OKOK | 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 | OKOK | 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 | CreatedCreated | None |
409 | ConflictError | 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 ContentDeleted | None |
409 | ConflictError | 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,
"custom_words": "string",
"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 | OKOK | 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,
"custom_words": "string",
"created_at": "2017-01-02T03:04:05Z",
"updated_at": "2017-01-02T03:04:05Z"
}
Parameters
projectID string In path required ID of the Project |
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,
"custom_words": "string",
"created_at": "2017-01-02T03:04:05Z",
"updated_at": "2017-01-02T03:04:05Z"
}
Responses
Status | Description | Schema |
---|---|---|
201 | CreatedCreated | Job |
400 | Bad RequestInvalid request body | None |
422 | Unprocessable EntityInvalid 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"
}
],
"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,
"custom_words": "string",
"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 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 |
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 |
» job object In body optional none |
»» id string In body optional The ID of the job. |
»» name string In body optional The name of the job. |
»» original_filename string In body optional The name of the input file |
»» project_id string In body optional The ID of the project. |
»» source_url string In body optional The URL of source file. |
»» status string In body optional Determines the state of transcription job. |
»» error string In body optional If the status of the job is ‘error’, returns the state of job. |
»» progress integer In body optional A percentage that indicates the progress of the job. |
»» confidence integer In body optional The confidence score of the job in the range of 0 to 100. |
»» duration integer In body optional The duration of the input audio in milliseconds. |
»» bitrate integer In body optional The bitrate of the input audio. |
»» sample_rate integer In body optional The sample rate of the input audio. |
»» format string In body optional The format of the input audio. |
»» file_size integer(int64) In body optional The file size of the input file. |
»» custom_words string In body optional Words used for model training, separated by space. |
»» created_at string(dateTime) In body optional A date and time when the job was created |
»» updated_at string(dateTime) In body optional A date and time when the job was updated |
Enumerated Values
»» status pending |
»» status preparing |
»» status processing |
»» status success |
»» status error |
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 | CreatedCreated | 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,
"custom_words": "string",
"created_at": "2017-01-02T03:04:05Z",
"updated_at": "2017-01-02T03:04:05Z"
}
Responses
Status | Description | Schema |
---|---|---|
200 | OKOK | 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 ContentDeleted | 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 | OKOK | JobResult |
404 | Not FoundNot Found | None |
job outputs
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}/outputs',
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}/outputs', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.cloud.telestream.net/tts/v1.0/projects/{projectID}/jobs/{jobID}/outputs");
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}/outputs", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /projects/{projectID}/jobs/{jobID}/outputs
Returns the Job Outputs
Returns the Job Outputs
Parameters
projectID string In path required ID of the Project |
jobID string In path required none |
Example responses
200 Response
[
{
"format": "json",
"url": "string"
}
]
Responses
Status | Description | Schema |
---|---|---|
200 | OKOK | Inline |
404 | Not FoundNot Found | None |
Response Schema
Status Code 200
anonymous optional none undefined |
» format string optional Output file format undefined |
» url string optional URL to output (must be accessed with X-Api-Key) undefined |
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",
"capabilities": [
"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 | OKOK | 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",
"capabilities": [
"string"
],
"created_at": "2017-01-02T03:04:05Z",
"updated_at": "2017-01-02T03:04:05Z"
}
Parameters
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",
"capabilities": [
"string"
],
"created_at": "2017-01-02T03:04:05Z",
"updated_at": "2017-01-02T03:04:05Z"
}
Responses
Status | Description | Schema |
---|---|---|
201 | CreatedCreated | Project |
400 | Bad RequestInvalid request body | ErrorResponse |
422 | Unprocessable EntityInvalid 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",
"capabilities": [
"string"
],
"created_at": "2017-01-02T03:04:05Z",
"updated_at": "2017-01-02T03:04:05Z"
}
Responses
Status | Description | Schema |
---|---|---|
200 | OKOK | 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",
"capabilities": [
"string"
],
"created_at": "2017-01-02T03:04:05Z",
"updated_at": "2017-01-02T03:04:05Z"
}
Parameters
projectID string In path required ID of the Project |
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",
"capabilities": [
"string"
],
"created_at": "2017-01-02T03:04:05Z",
"updated_at": "2017-01-02T03:04:05Z"
}
Responses
Status | Description | Schema |
---|---|---|
200 | OKOK | Project |
400 | Bad RequestInvalid request body | None |
422 | Unprocessable EntityInvalid 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
Parameters
projectID string In path required ID of the Project |
Responses
Status | Description | Schema |
---|---|---|
204 | No ContentDeleted | 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 | OKOK | None |
409 | ConflictError | 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",
"capabilities": [
"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. |
capabilities [string] optional none |
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,
"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 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(int64) optional The file size of the input file. |
custom_words string optional Words used for model training, separated by space. |
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 [Result] 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 [Fragment] 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",
"capabilities": [
"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 [Project] 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,
"custom_words": "string",
"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 [Corpus] optional An array of Corpus files |
ErrorResponse
{}
ErrorResponse
Properties
None
JobOutput
{
"format": "json",
"url": "string"
}
Properties
format string optional Output file format |
url string optional URL to output (must be accessed with X-Api-Key) |