NAV
VideoEditorAI.com
shell python php javascript C#

Introduktion

Velkommen til VideoEditorAI.com platform API!

Hver funktion er designet til at hjælpe vores brugere med lettere at oprette eller redigere videoer med AI på VideoEditorAI.com's system.

For at få din API-nøgle skal du gå til <a href="/signup/">kontosiden</a> .

Standard base-URL

Standard-basis-URL'en for VideoEditorAI.com API er: <b>https://api.videoeditorai.com/v1/</b>

Bemærk: af sikkerhedsmæssige årsager serveres alle VideoEditorAI.com API'er kun via HTTPS.

Bemyndigelse

For at bruge VideoEditorAI.com API skal du bruge API-nøglen, der er knyttet til din konto .

Godkendelsesværdien skal sendes i Headers-anmodning.

Authorization: <api_key>

Opret videoer

 import requests
import time
import shutil
import json

headers = {"Authorization": "api_key"}
params = {
    "terms": "t-rex dinasour kører i junglen",
    "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))
Opret videoer

curl -X POST \
  https://api.videoeditorai.com/v1/create-video/ \
  -H 'Authorization: api_key' \
  -H 'Content-Type: application/json' \
  -d '{
    "terms": "t-rex dinasour kører i junglen",
    "is_sfw": true
}'


Få resultat-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 kører i junglen';
    $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 kører i junglen",
        "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 kører i junglen",
                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);
        }
    }
}

Respons

/path/to/local/result.jpg

HTTP-anmodning

POST /create-video/

Forespørgselsparametre

Parameter Type Beskrivelse Eksempel
terms Påkrævet Fortæl AI, hvilken video du vil oprette. t-rex dinasour kører i junglen
is_sfw Valgfri Indstil "true" , hvis "vilkårene" er for voksenvideoindhold true eller false

Rediger videoer

 import requests
import time
import shutil
import json

headers = {"Authorization": "api_key"}
params = {
    "terms": "Gør det til Van Gogh Starry Night",
    "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))
Rediger videoer

curl -X POST \
  https://api.videoeditorai.com/v1/edit-video/ \
  -H 'Authorization: api_key' \
  -F 'files=@test_files/test.jpeg' \
  -F 'terms=Gør det til Van Gogh Starry Night' \
  -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 kører i junglen';
    $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 kører i junglen",
        "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("Gør det til Van Gogh Starry Night"), "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);
        }
    }
}

Respons

/path/to/local/result.jpg

HTTP-anmodning

POST /edit-video/

Forespørgselsparametre

Parameter Type Beskrivelse Eksempel
terms Påkrævet Fortæl AI'en, hvad du vil have baseret på din video. Gør det til Van Gogh Starry Night
is_sfw Valgfri Indstil "true" , hvis "vilkårene" er for voksenvideoindhold true eller false