const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
model: '<string>',
prompt: '<string>',
duration: 123,
input_video_duration: 1800,
input_audio_duration: 11,
size: '<string>',
resolution: '<string>',
aspect_ratio: '<string>',
seed: 123,
sample_count: 2,
negative_prompt: '<string>',
generate_audio: true,
enhance_prompt: true,
compression_quality: 123,
person_generation: '<string>',
resize_mode: '<string>',
input_references: [{type: 'image_url', image_url: {url: '<string>'}, reference_type: '<string>'}],
frame_images: [{type: 'image_url', image_url: {url: '<string>'}}],
provider_params: {},
provider_options: {},
output: {access: 'both'},
provider: {
order: ['<string>'],
only: ['<string>'],
ignore: ['<string>'],
include_alpha: true,
allow_fallbacks: true,
require_parameters: true,
required_execution_region: '<string>',
required_data_region: '<string>',
require_zero_data_retention: true,
zdr: true,
enforce_distillable_text: true,
quantizations: ['<string>'],
sort: '<string>',
max_price: {prompt: 123, completion: 123, image: 123, audio: 123, request: 123},
preferred_min_throughput: 123,
preferred_max_latency: 123
}
})
};
fetch('https://api.phaseo.app/v1/videos', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.phaseo.app/v1/videos"
payload = {
"model": "<string>",
"prompt": "<string>",
"duration": 123,
"input_video_duration": 1800,
"input_audio_duration": 11,
"size": "<string>",
"resolution": "<string>",
"aspect_ratio": "<string>",
"seed": 123,
"sample_count": 2,
"negative_prompt": "<string>",
"generate_audio": True,
"enhance_prompt": True,
"compression_quality": 123,
"person_generation": "<string>",
"resize_mode": "<string>",
"input_references": [
{
"type": "image_url",
"image_url": { "url": "<string>" },
"reference_type": "<string>"
}
],
"frame_images": [
{
"type": "image_url",
"image_url": { "url": "<string>" }
}
],
"provider_params": {},
"provider_options": {},
"output": { "access": "both" },
"provider": {
"order": ["<string>"],
"only": ["<string>"],
"ignore": ["<string>"],
"include_alpha": True,
"allow_fallbacks": True,
"require_parameters": True,
"required_execution_region": "<string>",
"required_data_region": "<string>",
"require_zero_data_retention": True,
"zdr": True,
"enforce_distillable_text": True,
"quantizations": ["<string>"],
"sort": "<string>",
"max_price": {
"prompt": 123,
"completion": 123,
"image": 123,
"audio": 123,
"request": 123
},
"preferred_min_throughput": 123,
"preferred_max_latency": 123
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)curl --request POST \
--url https://api.phaseo.app/v1/videos \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "<string>",
"prompt": "<string>",
"duration": 123,
"input_video_duration": 1800,
"input_audio_duration": 11,
"size": "<string>",
"resolution": "<string>",
"aspect_ratio": "<string>",
"seed": 123,
"sample_count": 2,
"negative_prompt": "<string>",
"generate_audio": true,
"enhance_prompt": true,
"compression_quality": 123,
"person_generation": "<string>",
"resize_mode": "<string>",
"input_references": [
{
"type": "image_url",
"image_url": {
"url": "<string>"
},
"reference_type": "<string>"
}
],
"frame_images": [
{
"type": "image_url",
"image_url": {
"url": "<string>"
}
}
],
"provider_params": {},
"provider_options": {},
"output": {
"access": "both"
},
"provider": {
"order": [
"<string>"
],
"only": [
"<string>"
],
"ignore": [
"<string>"
],
"include_alpha": true,
"allow_fallbacks": true,
"require_parameters": true,
"required_execution_region": "<string>",
"required_data_region": "<string>",
"require_zero_data_retention": true,
"zdr": true,
"enforce_distillable_text": true,
"quantizations": [
"<string>"
],
"sort": "<string>",
"max_price": {
"prompt": 123,
"completion": 123,
"image": 123,
"audio": 123,
"request": 123
},
"preferred_min_throughput": 123,
"preferred_max_latency": 123
}
}
'package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.phaseo.app/v1/videos"
payload := strings.NewReader("{\n \"model\": \"<string>\",\n \"prompt\": \"<string>\",\n \"duration\": 123,\n \"input_video_duration\": 1800,\n \"input_audio_duration\": 11,\n \"size\": \"<string>\",\n \"resolution\": \"<string>\",\n \"aspect_ratio\": \"<string>\",\n \"seed\": 123,\n \"sample_count\": 2,\n \"negative_prompt\": \"<string>\",\n \"generate_audio\": true,\n \"enhance_prompt\": true,\n \"compression_quality\": 123,\n \"person_generation\": \"<string>\",\n \"resize_mode\": \"<string>\",\n \"input_references\": [\n {\n \"type\": \"image_url\",\n \"image_url\": {\n \"url\": \"<string>\"\n },\n \"reference_type\": \"<string>\"\n }\n ],\n \"frame_images\": [\n {\n \"type\": \"image_url\",\n \"image_url\": {\n \"url\": \"<string>\"\n }\n }\n ],\n \"provider_params\": {},\n \"provider_options\": {},\n \"output\": {\n \"access\": \"both\"\n },\n \"provider\": {\n \"order\": [\n \"<string>\"\n ],\n \"only\": [\n \"<string>\"\n ],\n \"ignore\": [\n \"<string>\"\n ],\n \"include_alpha\": true,\n \"allow_fallbacks\": true,\n \"require_parameters\": true,\n \"required_execution_region\": \"<string>\",\n \"required_data_region\": \"<string>\",\n \"require_zero_data_retention\": true,\n \"zdr\": true,\n \"enforce_distillable_text\": true,\n \"quantizations\": [\n \"<string>\"\n ],\n \"sort\": \"<string>\",\n \"max_price\": {\n \"prompt\": 123,\n \"completion\": 123,\n \"image\": 123,\n \"audio\": 123,\n \"request\": 123\n },\n \"preferred_min_throughput\": 123,\n \"preferred_max_latency\": 123\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.phaseo.app/v1/videos")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"model\": \"<string>\",\n \"prompt\": \"<string>\",\n \"duration\": 123,\n \"input_video_duration\": 1800,\n \"input_audio_duration\": 11,\n \"size\": \"<string>\",\n \"resolution\": \"<string>\",\n \"aspect_ratio\": \"<string>\",\n \"seed\": 123,\n \"sample_count\": 2,\n \"negative_prompt\": \"<string>\",\n \"generate_audio\": true,\n \"enhance_prompt\": true,\n \"compression_quality\": 123,\n \"person_generation\": \"<string>\",\n \"resize_mode\": \"<string>\",\n \"input_references\": [\n {\n \"type\": \"image_url\",\n \"image_url\": {\n \"url\": \"<string>\"\n },\n \"reference_type\": \"<string>\"\n }\n ],\n \"frame_images\": [\n {\n \"type\": \"image_url\",\n \"image_url\": {\n \"url\": \"<string>\"\n }\n }\n ],\n \"provider_params\": {},\n \"provider_options\": {},\n \"output\": {\n \"access\": \"both\"\n },\n \"provider\": {\n \"order\": [\n \"<string>\"\n ],\n \"only\": [\n \"<string>\"\n ],\n \"ignore\": [\n \"<string>\"\n ],\n \"include_alpha\": true,\n \"allow_fallbacks\": true,\n \"require_parameters\": true,\n \"required_execution_region\": \"<string>\",\n \"required_data_region\": \"<string>\",\n \"require_zero_data_retention\": true,\n \"zdr\": true,\n \"enforce_distillable_text\": true,\n \"quantizations\": [\n \"<string>\"\n ],\n \"sort\": \"<string>\",\n \"max_price\": {\n \"prompt\": 123,\n \"completion\": 123,\n \"image\": 123,\n \"audio\": 123,\n \"request\": 123\n },\n \"preferred_min_throughput\": 123,\n \"preferred_max_latency\": 123\n }\n}")
.asString();<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.phaseo.app/v1/videos",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'model' => '<string>',
'prompt' => '<string>',
'duration' => 123,
'input_video_duration' => 1800,
'input_audio_duration' => 11,
'size' => '<string>',
'resolution' => '<string>',
'aspect_ratio' => '<string>',
'seed' => 123,
'sample_count' => 2,
'negative_prompt' => '<string>',
'generate_audio' => true,
'enhance_prompt' => true,
'compression_quality' => 123,
'person_generation' => '<string>',
'resize_mode' => '<string>',
'input_references' => [
[
'type' => 'image_url',
'image_url' => [
'url' => '<string>'
],
'reference_type' => '<string>'
]
],
'frame_images' => [
[
'type' => 'image_url',
'image_url' => [
'url' => '<string>'
]
]
],
'provider_params' => [
],
'provider_options' => [
],
'output' => [
'access' => 'both'
],
'provider' => [
'order' => [
'<string>'
],
'only' => [
'<string>'
],
'ignore' => [
'<string>'
],
'include_alpha' => true,
'allow_fallbacks' => true,
'require_parameters' => true,
'required_execution_region' => '<string>',
'required_data_region' => '<string>',
'require_zero_data_retention' => true,
'zdr' => true,
'enforce_distillable_text' => true,
'quantizations' => [
'<string>'
],
'sort' => '<string>',
'max_price' => [
'prompt' => 123,
'completion' => 123,
'image' => 123,
'audio' => 123,
'request' => 123
],
'preferred_min_throughput' => 123,
'preferred_max_latency' => 123
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}require 'uri'
require 'net/http'
url = URI("https://api.phaseo.app/v1/videos")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"model\": \"<string>\",\n \"prompt\": \"<string>\",\n \"duration\": 123,\n \"input_video_duration\": 1800,\n \"input_audio_duration\": 11,\n \"size\": \"<string>\",\n \"resolution\": \"<string>\",\n \"aspect_ratio\": \"<string>\",\n \"seed\": 123,\n \"sample_count\": 2,\n \"negative_prompt\": \"<string>\",\n \"generate_audio\": true,\n \"enhance_prompt\": true,\n \"compression_quality\": 123,\n \"person_generation\": \"<string>\",\n \"resize_mode\": \"<string>\",\n \"input_references\": [\n {\n \"type\": \"image_url\",\n \"image_url\": {\n \"url\": \"<string>\"\n },\n \"reference_type\": \"<string>\"\n }\n ],\n \"frame_images\": [\n {\n \"type\": \"image_url\",\n \"image_url\": {\n \"url\": \"<string>\"\n }\n }\n ],\n \"provider_params\": {},\n \"provider_options\": {},\n \"output\": {\n \"access\": \"both\"\n },\n \"provider\": {\n \"order\": [\n \"<string>\"\n ],\n \"only\": [\n \"<string>\"\n ],\n \"ignore\": [\n \"<string>\"\n ],\n \"include_alpha\": true,\n \"allow_fallbacks\": true,\n \"require_parameters\": true,\n \"required_execution_region\": \"<string>\",\n \"required_data_region\": \"<string>\",\n \"require_zero_data_retention\": true,\n \"zdr\": true,\n \"enforce_distillable_text\": true,\n \"quantizations\": [\n \"<string>\"\n ],\n \"sort\": \"<string>\",\n \"max_price\": {\n \"prompt\": 123,\n \"completion\": 123,\n \"image\": 123,\n \"audio\": 123,\n \"request\": 123\n },\n \"preferred_min_throughput\": 123,\n \"preferred_max_latency\": 123\n }\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"polling_url": "<string>",
"websocket_url": "<string>",
"model": "<string>",
"request_id": "<string>",
"session_id": "<string>",
"status": "queued",
"lifecycle_status": "pending",
"cancel_url": "<string>",
"output_access": "bytes",
"generation_id": "<string>",
"native_video_id": "<string>",
"created_at": 123,
"started_at": 123,
"completed_at": 123,
"object": "video",
"poll_after_seconds": 20,
"provider": "<string>",
"seconds": 123,
"size": "<string>",
"audio": true,
"content_url": "<string>",
"download_url": "<string>",
"expires_at": 123,
"progress": 123,
"progress_source": "<string>",
"asset": {
"id": "<string>",
"mime_type": "<string>",
"bytes": 123,
"sha256": "<string>",
"width": 123,
"height": 123,
"duration_seconds": 123
},
"outputs": [
{
"index": 123,
"mime_type": "<string>",
"bytes_available": true,
"content_url": "<string>",
"download_url": "<string>",
"expires_at": 123
}
],
"billing": {
"currency": "<string>",
"estimated_provider_cost": "<string>",
"estimated_user_cost": "<string>",
"settled_provider_cost": "<string>",
"settled_user_cost": "<string>",
"state": "pending",
"billable": true,
"total_nanos": 123,
"estimated_nanos": 123,
"reserved_nanos": 123,
"reservation_id": "<string>",
"reservation_status": "<string>",
"charge_reason": "<string>",
"charged": true,
"billed_at": "<string>"
},
"webhook": {
"url": "<string>",
"events": [
"<string>"
],
"has_secret": true,
"delivery": {
"total_attempts": 123,
"delivered_events": 123,
"delivered_event_types": [
"video.completed"
],
"pending_retries": 123,
"next_retry_at": "<string>",
"last_attempt_at": "<string>",
"last_attempt_status": "delivered",
"last_response_status": 123,
"last_delivered_at": "<string>",
"last_failure_at": "<string>",
"last_error_message": "<string>"
},
"attempts": [
{
"id": "<string>",
"delivery_key": "video.completed",
"event_type": "video.completed",
"status": "delivered",
"attempt_number": 123,
"max_attempts": 123,
"tried_at": "<string>",
"delivered_at": "<string>",
"next_retry_at": "<string>",
"response_status": 123,
"error_message": "<string>",
"response_body_preview": "<string>"
}
]
},
"next_webhook_retry_at": "<string>",
"last_webhook_progress": 123,
"last_webhook_progress_at": "<string>",
"last_webhook_dispatched_at": "<string>",
"usage": {
"cost": 123,
"is_byok": true
},
"error": null
}إنشاء فيديو
ينشئ مهمة إنشاء فيديو غير متزامنة. استعلم عن polling_url المُرجع كل 20 ثانية حتى تصل المهمة إلى حالة نهائية.
const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
model: '<string>',
prompt: '<string>',
duration: 123,
input_video_duration: 1800,
input_audio_duration: 11,
size: '<string>',
resolution: '<string>',
aspect_ratio: '<string>',
seed: 123,
sample_count: 2,
negative_prompt: '<string>',
generate_audio: true,
enhance_prompt: true,
compression_quality: 123,
person_generation: '<string>',
resize_mode: '<string>',
input_references: [{type: 'image_url', image_url: {url: '<string>'}, reference_type: '<string>'}],
frame_images: [{type: 'image_url', image_url: {url: '<string>'}}],
provider_params: {},
provider_options: {},
output: {access: 'both'},
provider: {
order: ['<string>'],
only: ['<string>'],
ignore: ['<string>'],
include_alpha: true,
allow_fallbacks: true,
require_parameters: true,
required_execution_region: '<string>',
required_data_region: '<string>',
require_zero_data_retention: true,
zdr: true,
enforce_distillable_text: true,
quantizations: ['<string>'],
sort: '<string>',
max_price: {prompt: 123, completion: 123, image: 123, audio: 123, request: 123},
preferred_min_throughput: 123,
preferred_max_latency: 123
}
})
};
fetch('https://api.phaseo.app/v1/videos', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.phaseo.app/v1/videos"
payload = {
"model": "<string>",
"prompt": "<string>",
"duration": 123,
"input_video_duration": 1800,
"input_audio_duration": 11,
"size": "<string>",
"resolution": "<string>",
"aspect_ratio": "<string>",
"seed": 123,
"sample_count": 2,
"negative_prompt": "<string>",
"generate_audio": True,
"enhance_prompt": True,
"compression_quality": 123,
"person_generation": "<string>",
"resize_mode": "<string>",
"input_references": [
{
"type": "image_url",
"image_url": { "url": "<string>" },
"reference_type": "<string>"
}
],
"frame_images": [
{
"type": "image_url",
"image_url": { "url": "<string>" }
}
],
"provider_params": {},
"provider_options": {},
"output": { "access": "both" },
"provider": {
"order": ["<string>"],
"only": ["<string>"],
"ignore": ["<string>"],
"include_alpha": True,
"allow_fallbacks": True,
"require_parameters": True,
"required_execution_region": "<string>",
"required_data_region": "<string>",
"require_zero_data_retention": True,
"zdr": True,
"enforce_distillable_text": True,
"quantizations": ["<string>"],
"sort": "<string>",
"max_price": {
"prompt": 123,
"completion": 123,
"image": 123,
"audio": 123,
"request": 123
},
"preferred_min_throughput": 123,
"preferred_max_latency": 123
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)curl --request POST \
--url https://api.phaseo.app/v1/videos \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "<string>",
"prompt": "<string>",
"duration": 123,
"input_video_duration": 1800,
"input_audio_duration": 11,
"size": "<string>",
"resolution": "<string>",
"aspect_ratio": "<string>",
"seed": 123,
"sample_count": 2,
"negative_prompt": "<string>",
"generate_audio": true,
"enhance_prompt": true,
"compression_quality": 123,
"person_generation": "<string>",
"resize_mode": "<string>",
"input_references": [
{
"type": "image_url",
"image_url": {
"url": "<string>"
},
"reference_type": "<string>"
}
],
"frame_images": [
{
"type": "image_url",
"image_url": {
"url": "<string>"
}
}
],
"provider_params": {},
"provider_options": {},
"output": {
"access": "both"
},
"provider": {
"order": [
"<string>"
],
"only": [
"<string>"
],
"ignore": [
"<string>"
],
"include_alpha": true,
"allow_fallbacks": true,
"require_parameters": true,
"required_execution_region": "<string>",
"required_data_region": "<string>",
"require_zero_data_retention": true,
"zdr": true,
"enforce_distillable_text": true,
"quantizations": [
"<string>"
],
"sort": "<string>",
"max_price": {
"prompt": 123,
"completion": 123,
"image": 123,
"audio": 123,
"request": 123
},
"preferred_min_throughput": 123,
"preferred_max_latency": 123
}
}
'package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.phaseo.app/v1/videos"
payload := strings.NewReader("{\n \"model\": \"<string>\",\n \"prompt\": \"<string>\",\n \"duration\": 123,\n \"input_video_duration\": 1800,\n \"input_audio_duration\": 11,\n \"size\": \"<string>\",\n \"resolution\": \"<string>\",\n \"aspect_ratio\": \"<string>\",\n \"seed\": 123,\n \"sample_count\": 2,\n \"negative_prompt\": \"<string>\",\n \"generate_audio\": true,\n \"enhance_prompt\": true,\n \"compression_quality\": 123,\n \"person_generation\": \"<string>\",\n \"resize_mode\": \"<string>\",\n \"input_references\": [\n {\n \"type\": \"image_url\",\n \"image_url\": {\n \"url\": \"<string>\"\n },\n \"reference_type\": \"<string>\"\n }\n ],\n \"frame_images\": [\n {\n \"type\": \"image_url\",\n \"image_url\": {\n \"url\": \"<string>\"\n }\n }\n ],\n \"provider_params\": {},\n \"provider_options\": {},\n \"output\": {\n \"access\": \"both\"\n },\n \"provider\": {\n \"order\": [\n \"<string>\"\n ],\n \"only\": [\n \"<string>\"\n ],\n \"ignore\": [\n \"<string>\"\n ],\n \"include_alpha\": true,\n \"allow_fallbacks\": true,\n \"require_parameters\": true,\n \"required_execution_region\": \"<string>\",\n \"required_data_region\": \"<string>\",\n \"require_zero_data_retention\": true,\n \"zdr\": true,\n \"enforce_distillable_text\": true,\n \"quantizations\": [\n \"<string>\"\n ],\n \"sort\": \"<string>\",\n \"max_price\": {\n \"prompt\": 123,\n \"completion\": 123,\n \"image\": 123,\n \"audio\": 123,\n \"request\": 123\n },\n \"preferred_min_throughput\": 123,\n \"preferred_max_latency\": 123\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.phaseo.app/v1/videos")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"model\": \"<string>\",\n \"prompt\": \"<string>\",\n \"duration\": 123,\n \"input_video_duration\": 1800,\n \"input_audio_duration\": 11,\n \"size\": \"<string>\",\n \"resolution\": \"<string>\",\n \"aspect_ratio\": \"<string>\",\n \"seed\": 123,\n \"sample_count\": 2,\n \"negative_prompt\": \"<string>\",\n \"generate_audio\": true,\n \"enhance_prompt\": true,\n \"compression_quality\": 123,\n \"person_generation\": \"<string>\",\n \"resize_mode\": \"<string>\",\n \"input_references\": [\n {\n \"type\": \"image_url\",\n \"image_url\": {\n \"url\": \"<string>\"\n },\n \"reference_type\": \"<string>\"\n }\n ],\n \"frame_images\": [\n {\n \"type\": \"image_url\",\n \"image_url\": {\n \"url\": \"<string>\"\n }\n }\n ],\n \"provider_params\": {},\n \"provider_options\": {},\n \"output\": {\n \"access\": \"both\"\n },\n \"provider\": {\n \"order\": [\n \"<string>\"\n ],\n \"only\": [\n \"<string>\"\n ],\n \"ignore\": [\n \"<string>\"\n ],\n \"include_alpha\": true,\n \"allow_fallbacks\": true,\n \"require_parameters\": true,\n \"required_execution_region\": \"<string>\",\n \"required_data_region\": \"<string>\",\n \"require_zero_data_retention\": true,\n \"zdr\": true,\n \"enforce_distillable_text\": true,\n \"quantizations\": [\n \"<string>\"\n ],\n \"sort\": \"<string>\",\n \"max_price\": {\n \"prompt\": 123,\n \"completion\": 123,\n \"image\": 123,\n \"audio\": 123,\n \"request\": 123\n },\n \"preferred_min_throughput\": 123,\n \"preferred_max_latency\": 123\n }\n}")
.asString();<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.phaseo.app/v1/videos",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'model' => '<string>',
'prompt' => '<string>',
'duration' => 123,
'input_video_duration' => 1800,
'input_audio_duration' => 11,
'size' => '<string>',
'resolution' => '<string>',
'aspect_ratio' => '<string>',
'seed' => 123,
'sample_count' => 2,
'negative_prompt' => '<string>',
'generate_audio' => true,
'enhance_prompt' => true,
'compression_quality' => 123,
'person_generation' => '<string>',
'resize_mode' => '<string>',
'input_references' => [
[
'type' => 'image_url',
'image_url' => [
'url' => '<string>'
],
'reference_type' => '<string>'
]
],
'frame_images' => [
[
'type' => 'image_url',
'image_url' => [
'url' => '<string>'
]
]
],
'provider_params' => [
],
'provider_options' => [
],
'output' => [
'access' => 'both'
],
'provider' => [
'order' => [
'<string>'
],
'only' => [
'<string>'
],
'ignore' => [
'<string>'
],
'include_alpha' => true,
'allow_fallbacks' => true,
'require_parameters' => true,
'required_execution_region' => '<string>',
'required_data_region' => '<string>',
'require_zero_data_retention' => true,
'zdr' => true,
'enforce_distillable_text' => true,
'quantizations' => [
'<string>'
],
'sort' => '<string>',
'max_price' => [
'prompt' => 123,
'completion' => 123,
'image' => 123,
'audio' => 123,
'request' => 123
],
'preferred_min_throughput' => 123,
'preferred_max_latency' => 123
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}require 'uri'
require 'net/http'
url = URI("https://api.phaseo.app/v1/videos")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"model\": \"<string>\",\n \"prompt\": \"<string>\",\n \"duration\": 123,\n \"input_video_duration\": 1800,\n \"input_audio_duration\": 11,\n \"size\": \"<string>\",\n \"resolution\": \"<string>\",\n \"aspect_ratio\": \"<string>\",\n \"seed\": 123,\n \"sample_count\": 2,\n \"negative_prompt\": \"<string>\",\n \"generate_audio\": true,\n \"enhance_prompt\": true,\n \"compression_quality\": 123,\n \"person_generation\": \"<string>\",\n \"resize_mode\": \"<string>\",\n \"input_references\": [\n {\n \"type\": \"image_url\",\n \"image_url\": {\n \"url\": \"<string>\"\n },\n \"reference_type\": \"<string>\"\n }\n ],\n \"frame_images\": [\n {\n \"type\": \"image_url\",\n \"image_url\": {\n \"url\": \"<string>\"\n }\n }\n ],\n \"provider_params\": {},\n \"provider_options\": {},\n \"output\": {\n \"access\": \"both\"\n },\n \"provider\": {\n \"order\": [\n \"<string>\"\n ],\n \"only\": [\n \"<string>\"\n ],\n \"ignore\": [\n \"<string>\"\n ],\n \"include_alpha\": true,\n \"allow_fallbacks\": true,\n \"require_parameters\": true,\n \"required_execution_region\": \"<string>\",\n \"required_data_region\": \"<string>\",\n \"require_zero_data_retention\": true,\n \"zdr\": true,\n \"enforce_distillable_text\": true,\n \"quantizations\": [\n \"<string>\"\n ],\n \"sort\": \"<string>\",\n \"max_price\": {\n \"prompt\": 123,\n \"completion\": 123,\n \"image\": 123,\n \"audio\": 123,\n \"request\": 123\n },\n \"preferred_min_throughput\": 123,\n \"preferred_max_latency\": 123\n }\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"polling_url": "<string>",
"websocket_url": "<string>",
"model": "<string>",
"request_id": "<string>",
"session_id": "<string>",
"status": "queued",
"lifecycle_status": "pending",
"cancel_url": "<string>",
"output_access": "bytes",
"generation_id": "<string>",
"native_video_id": "<string>",
"created_at": 123,
"started_at": 123,
"completed_at": 123,
"object": "video",
"poll_after_seconds": 20,
"provider": "<string>",
"seconds": 123,
"size": "<string>",
"audio": true,
"content_url": "<string>",
"download_url": "<string>",
"expires_at": 123,
"progress": 123,
"progress_source": "<string>",
"asset": {
"id": "<string>",
"mime_type": "<string>",
"bytes": 123,
"sha256": "<string>",
"width": 123,
"height": 123,
"duration_seconds": 123
},
"outputs": [
{
"index": 123,
"mime_type": "<string>",
"bytes_available": true,
"content_url": "<string>",
"download_url": "<string>",
"expires_at": 123
}
],
"billing": {
"currency": "<string>",
"estimated_provider_cost": "<string>",
"estimated_user_cost": "<string>",
"settled_provider_cost": "<string>",
"settled_user_cost": "<string>",
"state": "pending",
"billable": true,
"total_nanos": 123,
"estimated_nanos": 123,
"reserved_nanos": 123,
"reservation_id": "<string>",
"reservation_status": "<string>",
"charge_reason": "<string>",
"charged": true,
"billed_at": "<string>"
},
"webhook": {
"url": "<string>",
"events": [
"<string>"
],
"has_secret": true,
"delivery": {
"total_attempts": 123,
"delivered_events": 123,
"delivered_event_types": [
"video.completed"
],
"pending_retries": 123,
"next_retry_at": "<string>",
"last_attempt_at": "<string>",
"last_attempt_status": "delivered",
"last_response_status": 123,
"last_delivered_at": "<string>",
"last_failure_at": "<string>",
"last_error_message": "<string>"
},
"attempts": [
{
"id": "<string>",
"delivery_key": "video.completed",
"event_type": "video.completed",
"status": "delivered",
"attempt_number": 123,
"max_attempts": 123,
"tried_at": "<string>",
"delivered_at": "<string>",
"next_retry_at": "<string>",
"response_status": 123,
"error_message": "<string>",
"response_body_preview": "<string>"
}
]
},
"next_webhook_retry_at": "<string>",
"last_webhook_progress": 123,
"last_webhook_progress_at": "<string>",
"last_webhook_dispatched_at": "<string>",
"usage": {
"cost": 123,
"is_byok": true
},
"error": null
}التفويضات
المصادقة باستخدام رمز Bearer
الجسم
المدة المطلوبة بالثواني (تعتمد على المزوّد/النموذج).
مدة الفيديو المصدر بالثواني. مطلوبة عندما يفوتر المزوّد مدة الفيديو المصدر بشكل مستقل عن الناتج المُنشأ.
0 < x <= 3600مدة الصوت المصدر المعلنة بالثواني، المستخدمة للتحقق من نطاق المزوّد. قد يفوتر المزوّدون الذين لا يبلغون عن الاستخدام المعتمد وفق الحد الأعلى لمدة الإدخال المدعومة لديهم.
2 <= x <= 20أبعاد صريحة (مثل 1280x720). لا يمكن دمجها مع resolution أو aspect_ratio.
480p و720p و1080p و1K و2K و4K. يمكن دمجها مع aspect_ratio. لا يمكن دمجها مع size.
نسبة أبعاد مثل 16:9 أو9:16 أو1:1. يمكن دمجها مع resolution. لا يمكن دمجها مع size.
1 <= x <= 4مدخلات صور أو صوت أو فيديو عبر HTTPS لتوجيه الإنشاء. تعتمد الأنواع والأدوار والأعداد والتركيبات المدعومة على النموذج المحدد. تحقق من GET /videos/models قبل إرسال مهمة. يقبل الاسم البديل المفرد للتوافق input_reference، غير المدرج في هذا المخطط، صورة multipart أو كائناً يتضمن واحداً فقط من file_id أو image_url. يعتمد الدعم على المزوّد.
مدخل وسائط HTTPS محدد النوع. استخدم image_url للصور وmedia_url للصوت أو الفيديو. تصف الأدوار كيفية استخدام النموذج للمدخل؛ ويختلف الدعم حسب المزوّد والنموذج.
- Option 1
- Option 2
Show child attributes
Show child attributes
صور HTTPS للإطار الأول/الأخير. يمكن أن يظهر كل frame_type مرة واحدة. لا تقدم أيضاً input_reference أو أدوار الإطارات ضمن input_references.
1 - 2 elementsShow child attributes
Show child attributes
امتدادات خاصة بالمزوّد فقط. يُرفض تمرير الطلب كاملاً وتكرار حقول التوجيه أو الموجه أو رد الاتصال أو الفوترة.
امتدادات بمفاتيح معرّفات المزوّدين الأساسية (مثل atlascloud أو byteplus). تُمرر خيارات المزوّد المحدد فقط. لا يمكن دمجها مع provider_params. يجب أن تستخدم حقول التوجيه والموجه ورد الاتصال والمدة والدقة وعدد النواتج حقول المستوى الأعلى التي تم التحقق منها.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
تفضيلات توجيه المزوّد لاختياره عبر البوابة.
Show child attributes
Show child attributes
الاستجابة
استجابة الفيديو
عنوان WebSocket للاشتراك في تحديثات دورة الحياة الموحدة للمهام غير المتزامنة.
queued, processing, completed, failed, cancelled, expired حالة دورة الحياة غير المتزامنة الموحدة لمستهلكي الاستطلاع وWebSocket وwebhook.
pending, running, completed, failed, cancelled, expired محجوز للتوافق؛ قيمته حالياً null دائماً.
bytes, signed_url, both معرّف الفيديو/المهمة الأصلي لدى المزوّد عندما يختلف عن معرّف البوابة.
"video"
20
موجود عندما يتضمن output_access القيمة bytes (نقطة نهاية تتطلب المصادقة).
عنوان URL موقّع من الطرف الأول للتنزيل المباشر عندما تكون الحالة completed.
طابع Unix الزمني (بالثواني) لانتهاء صلاحية download_url الموقّع.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
إعداد webhook غير المتزامن بعد تنقيح البيانات الحساسة مع حالة التسليم. لا تُرجع الأسرار أبداً؛ يشير has_secret إلى تفعيل عمليات التسليم الموقّعة. تتضمن عمليات التسليم الموقّعة ترويسات x-phaseo-signature وx-phaseo-timestamp وx-phaseo-event-id وx-phaseo-event-type وx-phaseo-delivery-key وx-phaseo-attempt وx-phaseo-max-attempts.
Show child attributes
Show child attributes
طابع ISO الزمني لإعادة محاولة webhook المستخدم المجدولة التالية، إن كانت في قائمة الانتظار.
أحدث فئة تقدم تقريبية أُرسلت إلى مستهلكي webhook.
طابع ISO الزمني عند إرسال أحدث فئة تقدم لـwebhook.
طابع ISO الزمني لأحدث محاولة إرسال webhook.
Show child attributes
Show child attributes
هل كانت هذه الصفحة مفيدة؟