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
預設要套用到輸出的音樂類別。支援的值為 corporate, romantic, sports, kids_and_comedy, ambient_and_nature, horror_and_suspense, documentary, 以及 trending_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

job_idstring
工作 ID。
statusstring
目前的工作狀態,例如 submittedqueuedprocessingprocessedrenderingrendered
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
疊加項目的類型,例如 videosound
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)