NAV
Video Editor AI
shell python php javascript C#

Giriş

Video Editor AI platforma API-yə xoş gəlmisiniz!

Hər bir funksiya istifadəçilərimizə Video Editor AI sistemində süni intellekt ilə videoları daha asan yaratmağa və ya redaktə etməyə kömək etmək üçün nəzərdə tutulmuşdur.

API açarınızı əldə etmək üçün <a href="/signup/">hesab səhifəsinə</a> keçin.

Defolt Əsas URL

Video Editor AI API üçün standart əsas URL: <b>https://api.videoeditorai.com/v1/</b>

Qeyd: təhlükəsizlik səbəbi ilə bütün Video Editor AI API-ləri yalnız HTTPS üzərindən xidmət göstərir.

Səlahiyyət

Video Editor AI API-dən istifadə etmək üçün hesabınızla əlaqələndirilmiş API açarına ehtiyacınız olacaq.

Avtorizasiya dəyəri Başlıq sorğusunda göndərilməlidir.

Authorization: <api_key>

Videolar yaradın

 import requests
import time
import shutil
import json

headers = {"Authorization": "api_key"}
params = {
    "terms": "cəngəllikdə qaçan t-rex dinasur",
    "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))
Videolar yaradın

curl -X POST \
  https://api.videoeditorai.com/v1/create-video/ \
  -H 'Authorization: api_key' \
  -H 'Content-Type: application/json' \
  -d '{
    "terms": "cəngəllikdə qaçan t-rex dinasur",
    "is_sfw": true
}'


Nəticə URL əldə edin

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'] = 'cəngəllikdə qaçan t-rex dinasur';
    $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": "cəngəllikdə qaçan t-rex dinasur",
        "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 = "cəngəllikdə qaçan t-rex dinasur",
                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);
        }
    }
}

Cavab

/path/to/local/result.jpg

HTTP sorğusu

POST /create-video/

Sorğu parametrləri

Parametr Növ Təsvir Misal
terms Tələb olunur Süni intellektə hansı videonu yaratmaq istədiyinizi deyin. cəngəllikdə qaçan t-rex dinasur
is_sfw Könüllü "true" seçin true və ya false

Videoları redaktə edin

 import requests
import time
import shutil
import json

headers = {"Authorization": "api_key"}
params = {
    "terms": "Onu Van Qoq Ulduzlu Gecəyə çevirin",
    "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))
Videoları redaktə edin

curl -X POST \
  https://api.videoeditorai.com/v1/edit-video/ \
  -H 'Authorization: api_key' \
  -F 'files=@test_files/test.jpeg' \
  -F 'terms=Onu Van Qoq Ulduzlu Gecəyə çevirin' \
  -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'] = 'cəngəllikdə qaçan t-rex dinasur';
    $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": "cəngəllikdə qaçan t-rex dinasur",
        "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("Onu Van Qoq Ulduzlu Gecəyə çevirin"), "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);
        }
    }
}

Cavab

/path/to/local/result.jpg

HTTP sorğusu

POST /edit-video/

Sorğu parametrləri

Parametr Növ Təsvir Misal
terms Tələb olunur Videonuza əsasən AI-yə nə istədiyinizi deyin. Onu Van Qoq Ulduzlu Gecəyə çevirin
is_sfw Könüllü "true" seçin true və ya false