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。可以是 podcastball-sportsnon-ball-sportsbeauty-product-demoweddingtravelothers。为了获得最佳效果,请指定与您的内容最接近的类别。如果您的内容不适合任何类别,请使用 others
output_lengthinteger
所需的输出长度(秒)。输出长度应小于或等于所有输入视频总长度。
aspect_ratiostring
输出纵横比,如 landscapeportraitsquare
音乐类别string, optional
要应用于输出的预设音乐类别。支持的值有 corporateromanticsportskids_and_comedyambient_and_naturehorror_and_suspensedocumentarytrending_vlogs。如果输出时长短于音乐时长,所选曲目将循环以适应输出。
music_volumeinteger, optional
背景音乐音量,范围从 0100。如果未提供,默认值为 100
original_audio_volumeinteger, optional
原始源音频音量,范围从 0100。如果未提供,默认值为 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
当前作业状态,例如 submittedqueuedprocessingprocessedrenderingrendered
输出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
叠加层类型,例如 videosound
源 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)