مقدمة
مرحبًا بك في واجهة برمجة تطبيقات منصة VideoEditorAI.com!
تم تصميم كل ميزة لمساعدة مستخدمينا بسهولة أكبر في إنشاء مقاطع الفيديو أو تحريرها باستخدام AI على نظام VideoEditorAI.com.
للحصول على مفتاح API الخاص بك يرجى الذهاب إلى <a href="/signup/">صفحة الحساب</a> .
URL الأساسي الافتراضي
عنوان URL الأساسي الافتراضي لواجهة برمجة تطبيقات VideoEditorAI.com هو: <b>https://api.videoeditorai.com/v1/</b>
ملاحظة: لأسباب أمنية ، يتم تقديم جميع واجهات برمجة تطبيقات VideoEditorAI.com عبر HTTPS فقط.
تفويض
لاستخدام VideoEditorAI.com API ، ستحتاج إلى مفتاح API المرتبط بحسابك .
يجب إرسال قيمة التفويض في طلب العناوين.
Authorization: <api_key>
إنشاء مقاطع فيديو
import requests
import time
import shutil
import json
headers = {"Authorization": "api_key"}
params = {
"terms": "t-rex dinasour يجري في الغابة",
"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))
إنشاء مقاطع فيديو
curl -X POST \
https://api.videoeditorai.com/v1/create-video/ \
-H 'Authorization: api_key' \
-H 'Content-Type: application/json' \
-d '{
"terms": "t-rex dinasour يجري في الغابة",
"is_sfw": true
}'
الحصول على عنوان URL للنتيجة
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 يجري في الغابة';
$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 يجري في الغابة",
"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);
إجابة
/path/to/local/result.jpg
طلب HTTP
POST /create-video/
معلمات الاستعلام
معامل | يكتب | وصف | مثال |
---|---|---|---|
terms | مطلوب | أخبر الذكاء الاصطناعي بالفيديو الذي تريد إنشاءه. | t-rex dinasour يجري في الغابة |
is_sfw | خياري | عيّن "true" إذا كانت "الشروط" تخص محتوى فيديو للبالغين | true أو false |
تحرير مقاطع الفيديو
import requests
import time
import shutil
import json
headers = {"Authorization": "api_key"}
params = {
"terms": "اجعلها ليلة فان جوخ المرصعة بالنجوم",
"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))
تحرير مقاطع الفيديو
curl -X POST \
https://api.videoeditorai.com/v1/edit-video/ \
-H 'Authorization: api_key' \
-F 'files=@test_files/test.jpeg' \
-F 'terms=اجعلها ليلة فان جوخ المرصعة بالنجوم' \
-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 يجري في الغابة';
$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 يجري في الغابة",
"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);
إجابة
/path/to/local/result.jpg
طلب HTTP
POST /edit-video/
معلمات الاستعلام
معامل | يكتب | وصف | مثال |
---|---|---|---|
terms | مطلوب | أخبر منظمة العفو الدولية بما تريده بناءً على الفيديو الخاص بك. | اجعلها ليلة فان جوخ المرصعة بالنجوم |
is_sfw | اختياري | عيّن "true" إذا كانت "الشروط" تخص محتوى فيديو للبالغين | true أو false |