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)ハイライトリールを作成
1つ以上のアップロードされた入力ファイルからハイライトリールジョブを作成します。
Parameters
入力キーlist[string]
upload() によって返されるアップロード済みファイルキーのリスト。入力キーの順序が出力ビデオ内のメディアの順序を決定します。動画カテゴリstring
例:
ball-sports のようなビデオカテゴリ。利用可能なカテゴリは podcast、ball-sports、non-ball-sports、beauty-product-demo、wedding、travel、others です。最良の結果を得るには、コンテンツに最も近いカテゴリを指定してください。コンテンツがどのカテゴリにも当てはまらない場合は others を使用してください。出力時間(秒)integer, optional
出力の希望長(秒)。
cut_method が ai-cut の場合は必須;cut_method が no-cut の場合は必須ではありません。出力長はすべての入力ビデオの合計長以下である必要があります。アスペクト比string
landscape、portrait、square のような出力のアスペクト比。カット方法string, optional
レンダリング前にソースビデオがどのようにカットされるかを制御します。サポートされる値は
ai-cut と no-cut です。デフォルトは ai-cut です。音楽カテゴリstring, optional
出力に適用するプリセットの音楽カテゴリ。サポートされる値は
corporate、romantic、sports、kids_and_comedy、ambient_and_nature、horror_and_suspense、documentary、trending_vlogs です。出力の長さが音楽の長さより短い場合、選択されたトラックは出力に合わせてループします。音楽ボリュームinteger, optional
BGM(背景音楽)の音量(
0~100)。指定がない場合のデフォルトは 100 です。元の音声ボリュームinteger, 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)ジェイソン
{
"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)