VideoUpscaler API
自分のコードから動画を 1080p・2K・4K にアップスケールできます。動画の URL を送信し、タスクをポーリングして、結果をダウンロードするだけです。
VideoUpscaler API は、videoupscaler.co と同じ AI 動画アップスケーラーで動作し、同じクレジットを使用します。すべてのリクエストは JSON ボディを持つシンプルな HTTPS 呼び出しなので、どのプログラミング言語からでも利用できます。
ベース URL: https://videoupscaler.co/api/v1
有料アカウント専用
API は、クレジットを購入したことがあるアカウント、またはサブスクリプションを契約しているアカウントで利用できます。料金ページでいずれかのクレジットパックを購入すると利用可能になります。無料アカウントには 403 paid_plan_required が返されます。
仕組み
- 動画を送信します。公開されている
video_url、または事前にアップロードしたファイルを指定します。 - 動画の長さを読み取り、それに応じたクレジットを差し引いてジョブを開始します。
- タスクが
completedになるまでポーリングし、output_urlからダウンロードします。
クイックスタート
APIキーを作成する
クレジットを購入したことがある、またはサブスクリプションを契約しているアカウントでサインインし、設定 → APIキー を開きます。キーを作成してコピーしてください。キーは一度しか表示されません。キーは vu_live_… のような形式です。
アップスケールを開始する
curl https://videoupscaler.co/api/v1/upscale \
-H "Authorization: Bearer $VIDEOUPSCALER_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: my-video-001" \
-d '{"video_url": "https://example.com/clip.mp4", "resolution": "4k"}'const res = await fetch('https://videoupscaler.co/api/v1/upscale', {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.VIDEOUPSCALER_API_KEY}`,
'Content-Type': 'application/json',
'Idempotency-Key': 'my-video-001',
},
body: JSON.stringify({ video_url: 'https://example.com/clip.mp4', resolution: '4k' }),
});
const task = await res.json();
console.log(task.id, task.status);import os, requests
res = requests.post(
"https://videoupscaler.co/api/v1/upscale",
headers={
"Authorization": f"Bearer {os.environ['VIDEOUPSCALER_API_KEY']}",
"Idempotency-Key": "my-video-001",
},
json={"video_url": "https://example.com/clip.mp4", "resolution": "4k"},
)
task = res.json()
print(task["id"], task["status"])レスポンスはステータスが processing のタスクです。
完了までポーリングする
curl https://videoupscaler.co/api/v1/tasks/TASK_ID \
-H "Authorization: Bearer $VIDEOUPSCALER_API_KEY"5〜10 秒ごとにポーリングするか、代わりにタスクのイベントをストリーミングします。status が completed になったら、output_url から動画をダウンロードしてください。failed の場合、クレジットは返還されており、error に失敗の理由が入っています。
エンドポイント
| メソッド | パス | 内容 |
|---|---|---|
POST | /upscale | クレジットを差し引き、動画のアップスケールを開始する |
POST | /uploads | ローカルファイルをアップロードするための署名付き URL を取得する |
GET | /tasks/{id} | タスクを 1 件取得する |
GET | /tasks/{id}/events | ステータスの変化をストリーミングする(Server-Sent Events) |
GET | /tasks | タスクを新しい順に一覧表示する |
GET | /account | クレジット残高と料金 |