API 参考
VidioClient 是用于从 Python 与 VIDIO API 进行交互的主要入口点。使用它上传文件、创建精彩片段工作、检查工作状态、渲染输出,并等待处理完成。
API 访问目前适用于 Studio 计划及以上。
客户端模型
VidioClient 提供了一个简单的接口,用于与 VIDIO API 进行工作。在使用您的 API 密钥创建客户端后,您可以上传输入文件、创建精彩片段工作、轮询工作状态、渲染输出,并等待工作完成。
属性
api_keystring
您用于验证请求的 VIDIO API 密钥。
方法
类
VidioClient(api_key)初始化客户端
创建一个新的 VidioClient 实例。
Parameters
api_keystring
您的 VIDIO API 密钥。
Returns
一个配置好的 VidioClient 实例。
python
from vidio import VidioClient
import os
client = VidioClient(
api_key=os.getenv("VIDIO_API_KEY")
)方法
client.upload(file_path)上传文件
将本地文件上传到 VIDIO,并返回包含输入密钥的上传结果。
Parameters
file_pathstring
您想要上传的文件的本地路径。
Returns
一个包含 `input_key` 的上传结果对象。
python
result = client.upload("/path/to/video.mp4")
print(result.input_key)方法
client.create_highlight_reel(input_keys, video_category, output_length, aspect_ratio)创建精彩片段
从一个或多个上传的输入文件创建一个精彩片段工作。
Parameters
input_keyslist[string]
由
upload() 返回的上传文件密钥的列表。输入密钥的顺序决定输出视频中的媒体顺序。video_categorystring
视频类别,例如
ball-sports。可以是 podcast、ball-sports、non-ball-sports、beauty-product-demo、wedding、travel、others。为了获得最佳效果,请指定与您的内容最接近的类别。如果您的内容不适合任何类别,请使用 others。output_lengthinteger
所需的输出长度(秒)。输出长度应小于或等于所有输入视频总长度。
aspect_ratiostring
输出纵横比,如
landscape、portrait 或 square。音乐类别string, optional
要应用于输出的预设音乐类别。支持的值有
corporate、romantic、sports、kids_and_comedy、ambient_and_nature、horror_and_suspense、documentary 和 trending_vlogs。如果输出时长短于音乐时长,所选曲目将循环以适应输出。music_volumeinteger, optional
背景音乐音量,范围从
0 到 100。如果未提供,默认值为 100。original_audio_volumeinteger, optional
原始源音频音量,范围从
0 到 100。如果未提供,默认值为 100。Returns
一个包含 `job_id` 和状态信息的工作对象。
python
job = client.create_highlight_reel(
input_keys=[result.input_key],
video_category="ball-sports",
output_length=30,
aspect_ratio="landscape",
)
print(job.job_id)
print(job.status)方法
client.get_job(job_id)获取工作
获取工作当前状态。
Parameters
job_idstring
创建精彩片段工作时返回的工作 ID。
Returns
一个具有最新状态的工作对象。
Response fields
作业 IDstring
作业 ID。
状态string
当前作业状态,例如
submitted、queued、processing、processed、rendering 或 rendered。输出list[OutputResult]
当作业完全渲染且来自最后子作业的输出数据可用时返回。
开始float | null
输出片段的开始时间(如果可用)。
结束float | null
输出片段的结束时间(如果可用)。
缩略图string | null
输出的缩略图路径或 URL。
时长float | null
输出的时长(秒)。
帧率float | null
输出的每秒帧数(fps)。
叠加层list[OverlayResult]
输出中包含的已清理的叠加层。
IDinteger | null
叠加层 ID。
关联文件 IDstring | null
关联的文件 ID(如果可用)。
原始文件名string | null
与叠加层关联的原始输入文件名(如果可用)。
起始帧偏移integer | float | null
叠加层开始的帧偏移。
内容string | null
叠加层内容值,例如缩略图路径或声音标识符。
持续帧数integer | null
叠加层的帧数持续时间。
类型string | null
叠加层类型,例如
video 或 sound。源 URLstring | null
叠加媒体的源 URL。
视频开始时间integer | float | null
源视频的开始时间(如果适用)。
python
job_status = client.get_job(job.job_id)
print(job_status.status)JSON(JavaScript 对象表示法)
{
"job_id": "abc123",
"status": "已渲染",
"outputs": [
{
"start": null,
"end": null,
"thumbnail": "out/...jpg",
"duration": 15.22,
"overlays": [
{
"id": 0,
"fileID": "file_123",
"from": 0,
"content": "https://...",
"durationInFrames": 284,
"type": "video",
"src": "https://...",
"videoStartTime": 5425
},
{
"id": 876361,
"from": 0,
"content": "running-night-393139",
"durationInFrames": 912,
"type": "sound",
"src": "https://..."
}
],
"fps": 59.94
}
]
}方法
client.wait_for_job(job_id)等待工作
轮询 API,直到精彩片段工作达到完成状态。
Parameters
job_idstring
要等待的工作 ID。
Returns
最终完成的工作对象。
python
final_job = client.wait_for_job(job.job_id)
print(final_job.status)方法
client.render(job_id)渲染输出
为已完成的精彩片段工作开始渲染输出视频。
Parameters
job_idstring
已完成的精彩片段工作 ID。
output_indexinteger, optional
要呈现的
OutputResult 列表的索引。默认值为 0。一般来说,第一个输出是最佳结果。Returns
一个具有渲染状态的渲染结果对象。
python
render_result = client.render(
job_id=job.job_id
)
print(render_result.status)方法
client.wait_for_render(job_id)等待渲染
轮询直到渲染完成,输出准备就绪。
Parameters
job_idstring
与渲染相关的工作 ID。
Returns
最终渲染结果对象。
python
final_render = client.wait_for_render(job.job_id)
print(final_render.output_url)