Εισαγωγή
Καλώς ήρθατε στο API της πλατφόρμας TLDWai.com!
Κάθε δυνατότητα έχει σχεδιαστεί για να βοηθά τους χρήστες μας να κάνουν πιο εύκολα περιλήψεις βίντεο με AI στο σύστημα του TLDWai.com.
Για να λάβετε το κλειδί API, μεταβείτε στη σελίδα λογαριασμού .
Προεπιλεγμένη διεύθυνση URL βάσης
Η προεπιλεγμένη διεύθυνση URL βάσης για το TLDWai.com API είναι: https://api.tldwai.com/v1/
Σημείωση: για λόγους ασφαλείας, όλα τα API του TLDWai.com εξυπηρετούνται μόνο μέσω HTTPS.
Εξουσιοδότηση
Για να χρησιμοποιήσετε το API TLDWai.com, θα χρειαστείτε το κλειδί API που είναι συνδεδεμένο με τον λογαριασμό σας .
Η τιμή εξουσιοδότησης θα πρέπει να αποσταλεί στο αίτημα κεφαλίδων.
Authorization: <api_key>
Σύνοψη αρχείου βίντεο
import requests
import time
import shutil
import json
headers = {"Authorization": "api_key"}
params = {
"language": "English",
}
file_path = "path/to/test.mp4"
base_api_url = "https://api.tldwai.com"
api_url = f"{base_api_url}/v1"
def download_file(url, local_filename):
url = f"{base_api_url}/{url}"
with requests.get(url, stream=True) as r:
with open(local_filename, "wb") as f:
shutil.copyfileobj(r.raw, f)
return local_filename
def convert_files(api_url, params, headers):
files = [eval(f'("files", open("{file_path}", "rb"))')]
r = requests.post(
url=f"{api_url}/tldw-url/",
files=files,
data=params,
headers=headers
)
return r.json()
def get_results(params):
if params.get("error"):
print(params)
return
r = requests.post(
url=f"{api_url}/results/",
data=params
)
data = r.json()
finished = data.get("finished")
while not finished:
if int(data.get("queue_count")) > 0:
print("queue: %s" % data.get("queue_count"))
time.sleep(5)
results = get_results(params)
results = json.dumps(results)
if results:
break
if finished:
for f in data.get("files"):
print(f.get("url"))
download_file("%s" % f.get("url"), "%s" % f.get("filename"))
return {"finished": "files downloaded"}
return r.json()
get_results(convert_files(api_url, params, headers))
Make summary from video file
curl -X POST \
https://api.tldwai.com/v1/tldw-url/ \
-H 'Authorization: api_key' \
-F 'files=@test_files/test.mp4' \
-F 'language=English' \
Get result
curl -X POST \
https://api.tldwai.com/v1/results/ \
-F 'uuid=response_uuid'
<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ERROR | E_PARSE);
$headers = array("Authorization: api_key");
$file_list = ['/test_files/test.mp4'];
$api_url = "https://api.tldwai.com/v1/tldw-url/";
$results_url = "https://api.tldwai.com/v1/results/";
function download_file($url, $filename){
$curl = curl_init();
$url = "https://api.tldwai.com" . $url;
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_SSLVERSION, 3);
$data = curl_exec($curl);
$error = curl_error($curl);
curl_close ($curl);
# Make sure destionation path exists
$destination_path = "/path/to/result/files/";
$destination_file = fopen($destination_path . $filename, "w+");
fwrite($destination_file, $data);
fclose($destination_file);
}
function convert_files($file_list, $headers, $api_url) {
$post_data['language'] = 'English';
foreach ($file_list as $index => $file) {
$post_data['file[' . $index . ']'] = curl_file_create(
realpath($file),
mime_content_type($file),
basename($file)
);
}
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $api_url);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$content = curl_exec($curl);
curl_close($curl);
return json_decode($content);
}
function get_results($params, $results_url, $headers) {
if ($params->error) {
print_r($params->error);
return;
}
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $results_url);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, json_decode(json_encode($params), true));
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$content = json_decode(curl_exec($curl));
curl_close($curl);
if ($content->finished == false) {
if (intval($content->queue_count) > 0) {
print_r("queue: $content->queue_count");
}
sleep(5);
$results = get_results($params, $results_url, $headers);
return;
}
foreach ($content->files as $f) {
download_file($f->url, $f->filename);
}
}
$resp = convert_files($file_list, $headers, $api_url);
get_results($resp, $results_url, $headers);
?>
const request = require('request');
const fs = require('fs');
let file_list = ['/test_files/test.mp4']
const api_url = 'https://api.tldwai.com/v1/tldw-url/'
const results_url = 'https://api.tldwai.com/v1/results/'
function convertFiles(file_list) {
let formData = {
"language": "English",
};
for (var i = 0; i < file_list.length; i++) {
formData['files'] = fs.createReadStream(file_list[i]);
}
request({
url: api_url,
method: 'post',
formData: formData,
headers: {
"Authorization": "api_key",
"Content-Type": "multipart/form-data",
}
}, function (err, res, body) {
if (err) {
console.error(err);
return err;
}
getResults(JSON.parse(body));
});
}
function getResults(data) {
if (data.error) {
console.error(data);
return data.error;
}
request({
url: results_url,
method: 'post',
formData: data
}, function (e, r, body) {
response = JSON.parse(body);
console.log(response);
if (!response.finished) {
setTimeout(
function () {
getResults(data);
}, 1000
);
}
console.log(response);
})
}
convertFiles(file_list);
using System;
using System.IO;
using System.Net.Http;
using System.Threading.Tasks;
using Newtonsoft.Json;
class Program
{
static readonly HttpClient client = new HttpClient();
static async Task Main()
{
client.DefaultRequestHeaders.Add("Authorization", "api_key");
// Upload video file
var form = new MultipartFormDataContent();
form.Add(new StringContent("English"), "language");
form.Add(new ByteArrayContent(File.ReadAllBytes("test.mp4")), "files", "test.mp4");
var response = await client.PostAsync("https://api.tldwai.com/v1/tldw-url/", form);
var result = await response.Content.ReadAsStringAsync();
var data = JsonConvert.DeserializeObject<dynamic>(result);
// Poll for results
bool finished = false;
while (!finished)
{
var pollContent = new FormUrlEncodedContent(new[]
{
new KeyValuePair<string, string>("uuid", (string)data.uuid)
});
var pollRes = await client.PostAsync("https://api.tldwai.com/v1/results/", pollContent);
var pollResult = await pollRes.Content.ReadAsStringAsync();
var pollData = JsonConvert.DeserializeObject<dynamic>(pollResult);
finished = (bool)pollData.finished;
if (!finished) await Task.Delay(5000);
else Console.WriteLine(pollResult);
}
}
}
Απάντηση
/path/to/local/result.txt
Αίτημα HTTP
POST /tldw-video/
Παράμετροι ερωτήματος
| Παράμετρος | Τύπος | Περιγραφή | Παράδειγμα |
|---|---|---|---|
| language | Απαιτείται | Πείτε στο AI τη γλώσσα στην οποία θα επιστρέψει τη σύνοψη του βίντεο | English |
Σύνοψη διεύθυνσης URL βίντεο
import requests
import time
import shutil
import json
headers = {"Authorization": "api_key"}
params = {
"language": "English",
"url": "https://www.youtube.com/watch?v=DIzyL5llx6Y",
}
file_path = "path/to/test.mp4"
base_api_url = "https://api.tldwai.com"
api_url = f"{base_api_url}/v1"
def download_file(url, local_filename):
url = f"{base_api_url}/{url}"
with requests.get(url, stream=True) as r:
with open(local_filename, "wb") as f:
shutil.copyfileobj(r.raw, f)
return local_filename
def convert_files(api_url, params, headers):
r = requests.post(
url=f"{api_url}/tldw-url/",
data=params,
headers=headers
)
return r.json()
def get_results(params):
if params.get("error"):
print(params)
return
r = requests.post(
url=f"{api_url}/results/",
data=params
)
data = r.json()
finished = data.get("finished")
while not finished:
if int(data.get("queue_count")) > 0:
print("queue: %s" % data.get("queue_count"))
time.sleep(5)
results = get_results(params)
results = json.dumps(results)
if results:
break
if finished:
for f in data.get("files"):
print(f.get("url"))
download_file("%s" % f.get("url"), "%s" % f.get("filename"))
return {"finished": "files downloaded"}
return r.json()
get_results(convert_files(api_url, params, headers))
Make summary from video URL
curl -X POST \
https://api.tldwai.com/v1/tldw-url/ \
-H 'Authorization: api_key' \
-F 'url=https://youtube.com/watch?v=DIzyL5llx6Y' \
-F 'language=English' \
Get result
curl -X POST \
https://api.tldwai.com/v1/results/ \
-F 'uuid=response_uuid'
<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ERROR | E_PARSE);
$headers = array("Authorization: api_key");
$api_url = "https://api.tldwai.com/v1/tldw-url/";
$results_url = "https://api.tldwai.com/v1/results/";
function download_file($url, $filename){
$curl = curl_init();
$url = "https://api.tldwai.com" . $url;
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_SSLVERSION, 3);
$data = curl_exec($curl);
$error = curl_error($curl);
curl_close ($curl);
# Make sure destionation path exists
$destination_path = "/path/to/result/files/";
$destination_file = fopen($destination_path . $filename, "w+");
fwrite($destination_file, $data);
fclose($destination_file);
}
function convert_files($headers, $api_url) {
$post_data['language'] = 'English';
$post_data['url'] = 'https://www.youtube.com/watch?v=DIzyL5llx6Y';
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $api_url);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$content = curl_exec($curl);
curl_close($curl);
return json_decode($content);
}
function get_results($params, $results_url, $headers) {
if ($params->error) {
print_r($params->error);
return;
}
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $results_url);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, json_decode(json_encode($params), true));
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$content = json_decode(curl_exec($curl));
curl_close($curl);
if ($content->finished == false) {
if (intval($content->queue_count) > 0) {
print_r("queue: $content->queue_count");
}
sleep(5);
$results = get_results($params, $results_url, $headers);
return;
}
foreach ($content->files as $f) {
download_file($f->url, $f->filename);
}
}
$resp = convert_files($headers, $api_url);
get_results($resp, $results_url, $headers);
?>
const request = require('request');
const fs = require('fs');
const api_url = 'https://api.tldwai.com/v1/tldw-url/'
const results_url = 'https://api.tldwai.com/v1/results/'
function convertFiles() {
let formData = {
"language": "English",
"url": "https://www.youtube.com/watch?v=DIzyL5llx6Y",
};
request({
url: api_url,
method: 'post',
formData: formData,
headers: {
"Authorization": "api_key",
"Content-Type": "multipart/form-data",
}
}, function (err, res, body) {
if (err) {
console.error(err);
return err;
}
getResults(JSON.parse(body));
});
}
function getResults(data) {
if (data.error) {
console.error(data);
return data.error;
}
request({
url: results_url,
method: 'post',
formData: data
}, function (e, r, body) {
response = JSON.parse(body);
console.log(response);
if (!response.finished) {
setTimeout(
function () {
getResults(data);
}, 1000
);
}
console.log(response);
})
}
convertFiles();
using System;
using System.Net.Http;
using System.Threading.Tasks;
using Newtonsoft.Json;
class Program
{
static readonly HttpClient client = new HttpClient();
static async Task Main()
{
client.DefaultRequestHeaders.Add("Authorization", "api_key");
// Summarize video URL
var form = new MultipartFormDataContent();
form.Add(new StringContent("English"), "language");
form.Add(new StringContent("https://www.youtube.com/watch?v=DIzyL5llx6Y"), "url");
var response = await client.PostAsync("https://api.tldwai.com/v1/tldw-url/", form);
var result = await response.Content.ReadAsStringAsync();
var data = JsonConvert.DeserializeObject<dynamic>(result);
// Poll for results
bool finished = false;
while (!finished)
{
var pollContent = new FormUrlEncodedContent(new[]
{
new KeyValuePair<string, string>("uuid", (string)data.uuid)
});
var pollRes = await client.PostAsync("https://api.tldwai.com/v1/results/", pollContent);
var pollResult = await pollRes.Content.ReadAsStringAsync();
var pollData = JsonConvert.DeserializeObject<dynamic>(pollResult);
finished = (bool)pollData.finished;
if (!finished) await Task.Delay(5000);
else Console.WriteLine(pollResult);
}
}
}
Reponse
/path/to/local/result.txt
Αίτημα HTTP
POST /tldw-url/
Παράμετροι ερωτήματος
| Παράμετρος | Τύπος | Περιγραφή | Παράδειγμα |
|---|---|---|---|
| language | Απαιτείται | Πείτε στο AI τη γλώσσα στην οποία θα επιστρέψει τη σύνοψη του βίντεο | English |