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
job_idstring
工作 ID。
statusstring
目前的工作狀態,例如
submitted、queued、processing、processed、rendering 或 rendered。outputslist[OutputResult]
當工作完全渲染且最後一個子工作產生輸出資料可用時返回。
startfloat | null
輸出片段的開始時間(如果有的話)。
endfloat | null
輸出片段的結束時間(如果有的話)。
thumbnailstring | null
輸出的縮圖路徑或 URL。
durationfloat | null
輸出的持續時間(秒)。
fpsfloat | null
輸出的每秒影格數(FPS)。
overlayslist[OverlayResult]
已清理(過濾)的疊加項目,包含於輸出中。
idinteger | null
疊加項目 ID。
fileIDstring | null
相關聯的檔案 ID(如可用)。
originalFileNamestring | null
與疊加項目相關的原始輸入檔案名稱(如可用)。
from_integer | float | null
疊加項目開始的影格偏移。
contentstring | null
疊加項目的內容值,例如縮圖路徑或聲音識別符。
durationInFramesinteger | null
疊加項目的持續時間(影格數)。
typestring | null
疊加項目的類型,例如
video 或 sound。srcstring | null
疊加媒體的來源 URL。
videoStartTimeinteger | 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)