Sarrera
Ongi etorri Video Editor AI plataformako APIra!
Ezaugarri bakoitza gure erabiltzaileei bideoak errazago sortzen edo editatzen laguntzeko diseinatuta dago Video Editor AI-en sisteman AI bidez.
Zure API gakoa lortzeko, joan <a href="/signup/">kontuaren orrialdera</a> .
Oinarrizko URL lehenetsia
Video Editor AI APIaren oinarrizko URL lehenetsia hau da: <b>https://api.videoeditorai.com/v1/</b>
Oharra: segurtasun arrazoiengatik, Video Editor AI API guztiak HTTPS bidez soilik hornitzen dira.
Baimena
Video Editor AI APIa erabiltzeko, zure kontuarekin lotuta dagoen API gakoa beharko duzu.
Baimenaren balioa Goiburuen eskaeran bidali behar da.
Authorization: <api_key>
Sortu bideoak
import requests
import time
import shutil
import json
headers = {"Authorization": "api_key"}
params = {
"terms": "t-rex dinasour oihanean korrika",
"is_sfw": True,
}
base_api_url = "https://api.videoeditorai.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}/create-video/",
json=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))
Sortu bideoak
curl -X POST \
https://api.videoeditorai.com/v1/create-video/ \
-H 'Authorization: api_key' \
-H 'Content-Type: application/json' \
-d '{
"terms": "t-rex dinasour oihanean korrika",
"is_sfw": true
}'
Lortu emaitzaren URLa
curl -X POST \
https://api.videoeditorai.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.jpeg'];
$api_url = "https://api.videoeditorai.com/v1/edit-video/";
$results_url = "https://api.videoeditorai.com/v1/results/";
function download_file($url, $filename){
$curl = curl_init();
$url = "https://api.videoeditorai.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['terms'] = 't-rex dinasour oihanean korrika';
$post_data['is_sfw'] = true;
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/sala.png']
const api_url = 'https://api.videoeditorai.com/v1/create-video/'
const results_url = 'https://api.videoeditorai.com/v1/results/'
function convertFiles(file_list) {
let data = {
"terms": "t-rex dinasour oihanean korrika",
"is_sfw": true,
};
for (var i = 0; i < file_list.length; i++) {
formData['files'] = fs.createReadStream(file_list[i]);
}
request({
url: api_url,
method: 'post',
json: data,
headers: {
"Authorization": "api_key",
"Content-Type": "application/json",
}
}, 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(string[] args)
{
client.DefaultRequestHeaders.Add("Authorization", "api_key");
var content = new StringContent(
JsonConvert.SerializeObject(new {
terms = "t-rex dinasour oihanean korrika",
is_sfw = true
}),
System.Text.Encoding.UTF8,
"application/json"
);
var response = await client.PostAsync(
"https://api.videoeditorai.com/v1/create-video/",
content
);
var result = await response.Content.ReadAsStringAsync();
var data = JsonConvert.DeserializeObject<dynamic>(result);
// Poll for results
while ((bool)data.finished == false)
{
await Task.Delay(5000);
var pollContent = new FormUrlEncodedContent(new[] {
new KeyValuePair<string, string>("uuid", (string)data.uuid)
});
response = await client.PostAsync(
"https://api.videoeditorai.com/v1/results/",
pollContent
);
result = await response.Content.ReadAsStringAsync();
data = JsonConvert.DeserializeObject<dynamic>(result);
}
foreach (var file in data.files)
{
Console.WriteLine(file.url);
}
}
}
Erantzuna
/path/to/local/result.jpg
HTTP eskaera
POST /create-video/
Kontsulta-parametroak
| Parametroa | Mota | Deskribapena | Adibidea |
|---|---|---|---|
| terms | Beharrezkoa | Esan AIari zer bideo sortu nahi duzun. | t-rex dinasour oihanean korrika |
| is_sfw | Aukerakoa | Ezarri "true" "baldintzak" helduentzako bideo-edukiak badira | true edo false |
Editatu bideoak
import requests
import time
import shutil
import json
headers = {"Authorization": "api_key"}
params = {
"terms": "Egin ezazu Van Gogh gau izartsua",
"is_sfw": True,
}
file_path = "path/to/test.jpeg"
base_api_url = "https://api.videoeditorai.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}/edit-video/",
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))
Editatu bideoak
curl -X POST \
https://api.videoeditorai.com/v1/edit-video/ \
-H 'Authorization: api_key' \
-F 'files=@test_files/test.jpeg' \
-F 'terms=Egin ezazu Van Gogh gau izartsua' \
-F 'is_sfw=true'
Get result video
curl -X POST \
https://api.videoeditorai.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.jpeg'];
$api_url = "https://api.videoeditorai.com/v1/edit-video/";
$results_url = "https://api.videoeditorai.com/v1/results/";
function download_file($url, $filename){
$curl = curl_init();
$url = "https://api.videoeditorai.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['terms'] = 't-rex dinasour oihanean korrika';
$post_data['is_sfw'] = true;
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.jpeg']
const api_url = 'https://api.videoeditorai.com/v1/edit-video/'
const results_url = 'https://api.videoeditorai.com/v1/results/'
function convertFiles(file_list) {
let formData = {
"terms": "t-rex dinasour oihanean korrika",
"is_sfw": true,
};
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(string[] args)
{
client.DefaultRequestHeaders.Add("Authorization", "api_key");
var form = new MultipartFormDataContent();
form.Add(new ByteArrayContent(
File.ReadAllBytes("/path/to/file.mp4")),
"files",
"file.mp4"
);
form.Add(new StringContent("Egin ezazu Van Gogh gau izartsua"), "terms");
form.Add(new StringContent("true"), "is_sfw");
var response = await client.PostAsync(
"https://api.videoeditorai.com/v1/edit-video/",
form
);
var result = await response.Content.ReadAsStringAsync();
var data = JsonConvert.DeserializeObject<dynamic>(result);
// Poll for results
while ((bool)data.finished == false)
{
await Task.Delay(5000);
var pollContent = new FormUrlEncodedContent(new[] {
new KeyValuePair<string, string>("uuid", (string)data.uuid)
});
response = await client.PostAsync(
"https://api.videoeditorai.com/v1/results/",
pollContent
);
result = await response.Content.ReadAsStringAsync();
data = JsonConvert.DeserializeObject<dynamic>(result);
}
foreach (var file in data.files)
{
Console.WriteLine(file.url);
}
}
}
Erantzuna
/path/to/local/result.jpg
HTTP eskaera
POST /edit-video/
Kontsulta-parametroak
| Parametroa | Mota | Deskribapena | Adibidea |
|---|---|---|---|
| terms | Beharrezkoa | Esan AIari zer nahi duzun zure bideoan oinarrituta. | Egin ezazu Van Gogh gau izartsua |
| is_sfw | Aukerakoa | Ezarri "true" "baldintzak" helduentzako bideo-edukiak badira | true edo false |