Launch Stream
curl --request POST \
--url https://streaming.lingopal.ai/v1/streams/start \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"ingest_url": "",
"dst_language": [
"en"
],
"src_language": "en",
"vocals_track": "0",
"background_track": 0,
"mix": "-9,-6",
"enable_captions_708": false,
"enable_captions_608": false,
"start_wowza": false,
"use_contextual_translation": false,
"LIPSYNC": true,
"channel_uuid": "your-channel-uuid",
"is_hls_stream": false
}
'import requests
url = "https://streaming.lingopal.ai/v1/streams/start"
payload = {
"ingest_url": "",
"dst_language": ["en"],
"src_language": "en",
"vocals_track": "0",
"background_track": 0,
"mix": "-9,-6",
"enable_captions_708": False,
"enable_captions_608": False,
"start_wowza": False,
"use_contextual_translation": False,
"LIPSYNC": True,
"channel_uuid": "your-channel-uuid",
"is_hls_stream": False
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
ingest_url: '',
dst_language: ['en'],
src_language: 'en',
vocals_track: '0',
background_track: 0,
mix: '-9,-6',
enable_captions_708: false,
enable_captions_608: false,
start_wowza: false,
use_contextual_translation: false,
LIPSYNC: true,
channel_uuid: 'your-channel-uuid',
is_hls_stream: false
})
};
fetch('https://streaming.lingopal.ai/v1/streams/start', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://streaming.lingopal.ai/v1/streams/start",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'ingest_url' => '',
'dst_language' => [
'en'
],
'src_language' => 'en',
'vocals_track' => '0',
'background_track' => 0,
'mix' => '-9,-6',
'enable_captions_708' => false,
'enable_captions_608' => false,
'start_wowza' => false,
'use_contextual_translation' => false,
'LIPSYNC' => true,
'channel_uuid' => 'your-channel-uuid',
'is_hls_stream' => false
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://streaming.lingopal.ai/v1/streams/start"
payload := strings.NewReader("{\n \"ingest_url\": \"\",\n \"dst_language\": [\n \"en\"\n ],\n \"src_language\": \"en\",\n \"vocals_track\": \"0\",\n \"background_track\": 0,\n \"mix\": \"-9,-6\",\n \"enable_captions_708\": false,\n \"enable_captions_608\": false,\n \"start_wowza\": false,\n \"use_contextual_translation\": false,\n \"LIPSYNC\": true,\n \"channel_uuid\": \"your-channel-uuid\",\n \"is_hls_stream\": false\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-Key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://streaming.lingopal.ai/v1/streams/start")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"ingest_url\": \"\",\n \"dst_language\": [\n \"en\"\n ],\n \"src_language\": \"en\",\n \"vocals_track\": \"0\",\n \"background_track\": 0,\n \"mix\": \"-9,-6\",\n \"enable_captions_708\": false,\n \"enable_captions_608\": false,\n \"start_wowza\": false,\n \"use_contextual_translation\": false,\n \"LIPSYNC\": true,\n \"channel_uuid\": \"your-channel-uuid\",\n \"is_hls_stream\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://streaming.lingopal.ai/v1/streams/start")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"ingest_url\": \"\",\n \"dst_language\": [\n \"en\"\n ],\n \"src_language\": \"en\",\n \"vocals_track\": \"0\",\n \"background_track\": 0,\n \"mix\": \"-9,-6\",\n \"enable_captions_708\": false,\n \"enable_captions_608\": false,\n \"start_wowza\": false,\n \"use_contextual_translation\": false,\n \"LIPSYNC\": true,\n \"channel_uuid\": \"your-channel-uuid\",\n \"is_hls_stream\": false\n}"
response = http.request(request)
puts response.read_body"<string>"Streams
Launch Stream
Launch a stream using the provided parameters.
POST
/
v1
/
streams
/
start
Launch Stream
curl --request POST \
--url https://streaming.lingopal.ai/v1/streams/start \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"ingest_url": "",
"dst_language": [
"en"
],
"src_language": "en",
"vocals_track": "0",
"background_track": 0,
"mix": "-9,-6",
"enable_captions_708": false,
"enable_captions_608": false,
"start_wowza": false,
"use_contextual_translation": false,
"LIPSYNC": true,
"channel_uuid": "your-channel-uuid",
"is_hls_stream": false
}
'import requests
url = "https://streaming.lingopal.ai/v1/streams/start"
payload = {
"ingest_url": "",
"dst_language": ["en"],
"src_language": "en",
"vocals_track": "0",
"background_track": 0,
"mix": "-9,-6",
"enable_captions_708": False,
"enable_captions_608": False,
"start_wowza": False,
"use_contextual_translation": False,
"LIPSYNC": True,
"channel_uuid": "your-channel-uuid",
"is_hls_stream": False
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
ingest_url: '',
dst_language: ['en'],
src_language: 'en',
vocals_track: '0',
background_track: 0,
mix: '-9,-6',
enable_captions_708: false,
enable_captions_608: false,
start_wowza: false,
use_contextual_translation: false,
LIPSYNC: true,
channel_uuid: 'your-channel-uuid',
is_hls_stream: false
})
};
fetch('https://streaming.lingopal.ai/v1/streams/start', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://streaming.lingopal.ai/v1/streams/start",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'ingest_url' => '',
'dst_language' => [
'en'
],
'src_language' => 'en',
'vocals_track' => '0',
'background_track' => 0,
'mix' => '-9,-6',
'enable_captions_708' => false,
'enable_captions_608' => false,
'start_wowza' => false,
'use_contextual_translation' => false,
'LIPSYNC' => true,
'channel_uuid' => 'your-channel-uuid',
'is_hls_stream' => false
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://streaming.lingopal.ai/v1/streams/start"
payload := strings.NewReader("{\n \"ingest_url\": \"\",\n \"dst_language\": [\n \"en\"\n ],\n \"src_language\": \"en\",\n \"vocals_track\": \"0\",\n \"background_track\": 0,\n \"mix\": \"-9,-6\",\n \"enable_captions_708\": false,\n \"enable_captions_608\": false,\n \"start_wowza\": false,\n \"use_contextual_translation\": false,\n \"LIPSYNC\": true,\n \"channel_uuid\": \"your-channel-uuid\",\n \"is_hls_stream\": false\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-Key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://streaming.lingopal.ai/v1/streams/start")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"ingest_url\": \"\",\n \"dst_language\": [\n \"en\"\n ],\n \"src_language\": \"en\",\n \"vocals_track\": \"0\",\n \"background_track\": 0,\n \"mix\": \"-9,-6\",\n \"enable_captions_708\": false,\n \"enable_captions_608\": false,\n \"start_wowza\": false,\n \"use_contextual_translation\": false,\n \"LIPSYNC\": true,\n \"channel_uuid\": \"your-channel-uuid\",\n \"is_hls_stream\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://streaming.lingopal.ai/v1/streams/start")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"ingest_url\": \"\",\n \"dst_language\": [\n \"en\"\n ],\n \"src_language\": \"en\",\n \"vocals_track\": \"0\",\n \"background_track\": 0,\n \"mix\": \"-9,-6\",\n \"enable_captions_708\": false,\n \"enable_captions_608\": false,\n \"start_wowza\": false,\n \"use_contextual_translation\": false,\n \"LIPSYNC\": true,\n \"channel_uuid\": \"your-channel-uuid\",\n \"is_hls_stream\": false\n}"
response = http.request(request)
puts response.read_body"<string>"Description
You can launch three types of streams with this endpoint: SRT, RTMP, and HLS. Each type has different requirements:- SRT: Requires an ingest URL, source language, and destination language. Optional parameters include audio tracks, captions, voice cloning, and lip sync.
- RTMP: First, create an RTMP channel to get a channel_id. Then, use this endpoint with an empty ingest_url and the channel_id in channel_uuid. Voice cloning and lip sync are always enabled for RTMP.
- HLS: Requires an HLS stream URL as ingest_url, source language, and destination language. Lip sync and voice cloning are enabled by default for HLS.
Authentication
This endpoint requires an API Key.Include your API key in the
x-api-key header:
x-api-key: YOUR_API_KEY
Request
- Method: POST
- Endpoint:
/v1/streams/start - Content-Type:
application/json
Request Body
{
"ingest_url": "string", // Required for SRT and HLS streams. Leave empty for RTMP.
"vocals_track": "string",
"background_track": 0,
"mix": "-9,-6",
"enable_captions_708": false,
"enable_captions_608": false,
"dst_language": ["en"],
"src_language": "en",
"start_wowza": false,
"use_contextual_translation": false,
"LIPSYNC": true,
"channel_uuid": "string", // Required for RTMP only. Use the channel_id returned from the Create RTMP Channel endpoint.
"is_hls_stream": false
}
Request Body Parameters
| Field | Type | Required | Description |
|---|---|---|---|
| ingest_url | string | SRT/HLS | The URL where the original stream is coming from. Required for SRT/HLS. Leave empty for RTMP. |
| vocals_track | string | No | Audio track number for vocals (default: 0). |
| background_track | integer | No | Audio track number for background (default: 0). |
| mix | string | No | Audio mix settings (default: β-9,-6β). |
| enable_captions_708 | boolean | No | Enable CEA-708 captions. |
| enable_captions_608 | boolean | No | Enable CEA-608 captions. |
| dst_language | array | Yes | List of destination languages for translation (e.g., [βenβ]). |
| src_language | string | Yes | The source language of the stream (e.g., βenβ). |
| start_wowza | boolean | No | Start Wowza server (default: false). |
| use_contextual_translation | boolean | No | Enable contextual translation (default: false). |
| LIPSYNC | boolean | No | Enable lip sync (default: true). |
| voice_cloning | boolean | No | Enable voice cloning (default: true for RTMP/HLS). |
| channel_uuid | string | RTMP | The channel_id from RTMP channel creation (required for RTMP only). |
| is_hls_stream | boolean | No | Set to true for HLS streams (default: false). |
Response
- Status: 200 OK
- Content-Type:
application/json
"string"
Example Usage (cURL)
curl -X POST "https://streaming.lingopal-dev.com/v1/streams/start" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"ingest_url": "your injest url",
"vocals_track": "0",
"background_track": 0,
"mix": "-9,-6",
"enable_captions_708": false,
"enable_captions_608": false,
"dst_language": ["en"],
"src_language": "en",
"start_wowza": false,
"use_contextual_translation": false,
"LIPSYNC": true,
"channel_uuid": "your-channel-uuid",
"is_hls_stream": false
}'
Authorizations
Body
application/json
Response
Successful Response
The response is of type string.
βI