開発者 API
動画を指定したファイルサイズに圧縮
公開動画 URL を送信するか、ローカルファイルをアップロードします。VidSmaller が非同期で圧縮し、進行状況とダウンロード可能な結果を返します。
- 更新日
- 更新日: 2026-10-10
- 上限の確認日
- 上限の確認日: 2026-09-14
- VidSmaller のクレジットを使用
- VidSmaller のクレジットを使用
3 ステップで開始
キーを作成して動画を送信し、ジョブをポーリングするか署名付き Webhook を待ちます。
- 1
キーを作成
ダッシュボードでキーに名前を付けます。API キーと Webhook Secret は一度だけ表示されるため、すぐにコピーして安全に保存してください。
- 2
ジョブを作成
公開 URL またはアップロード済みファイルを指定し、target_size_mb と必要に応じてコーデック、解像度、形式を設定します。
- 3
結果を取得
ジョブの状態を確認するか、署名付き Webhook を受信します。完了時に認証付きの短期ダウンロード URL が返ります。
無料の読み取り専用 API
上限データと見積もりは API キー不要で、IP ごとに 1 時間 600 リクエストまで利用できます。
共通の圧縮フロー
API ジョブは Web 版と同じクレジット、ファイル上限、コーデック権限、同時実行上限を使用します。
2 つの入力方法
公開動画の直接 URL、または署名付き URL を使ったローカルファイルのアップロードに対応します。
安定した v1 契約
レスポンスに新しいフィールドが追加される場合がありますが、既存の v1 フィールドの意味は変わりません。
認証とクレジット
認証が必要なのはファイルアップロードと圧縮ジョブだけです。上限データと見積もり API は公開されています。
API キーダッシュボードで作成します。完全なキーは再表示できないため、安全に保存してください。
Authorization: Bearer $VIDSMALLER_API_KEY
API 専用プランはありません。作成時にクレジットを確保し、実際のエンコード時間で精算します。処理失敗時は自動で返金されます。
/api/v1/platforms
VidSmaller が追跡するアップロード上限、安全な圧縮目標、参照元、最終確認日を返します。
8 プラットフォームを返します。認証とパラメータは不要です。
curl -s https://vidsmaller.com/api/v1/platformsレスポンスフィールド
statedLimitMbnumberプラットフォームが主要プランで公表しているアップロード上限。
safeTargetMbnumberエンコード誤差を考慮し、上限より少し低く設定した安全な圧縮目標。
tierNotestring | nullアカウント種別、アプリ、API 権限で上限が変わる場合の注意事項。
tiers[]array無料、有料、Bot、クライアント固有の各プランと注意事項。
verifiedAtdate公式ドキュメントを人が最後に確認した日付。
sources[]array上限の確認に使用した公式情報ページ。
/api/v1/estimate
ファイルが送信先の上限に収まるかを判定し、指定した圧縮設定の出力を見積もります。GET クエリと POST JSON は同じフィールド名を使います。
curl -s "https://vidsmaller.com/api/v1/estimate?sizeMb=150.7&durationSeconds=596&platform=discord"リクエストフィールド
sizeBytesinteger元ファイルのバイト数。sizeMb を指定しない場合は必須です。
sizeMbnumber元ファイルの MiB サイズ。1 MB = 1,048,576 バイトです。
durationSecondsnumber任意の動画時間。画質とビットレートの見積もりに必要なため、指定を強く推奨します。
width, heightinteger任意の元動画サイズ。解像度変更を見積もる場合のみ必要です。
platformstring/api/v1/platforms の任意のキー。プラットフォームの安全な目標を適用します。
targetMbnumber任意の独自ファイルサイズ上限。プラットフォームの既定目標より優先されます。
settingsobject任意の圧縮設定:mode、preset、targetSizeMb、crf、resolution、maxResolution、bitrateKbps、codec、outputFormat。
レスポンスフィールド
verdictstringfits_as_is、compress_recommended、no_target のいずれか。アプリの判定に使用できます。
estimateobject | null指定設定の出力予測。信頼できる見積もりに必要な入力が不足する場合は null です。
recommendationobject | null目標を満たすと予測される設定。動画ビットレートと画質の目安を含みます。
notes[]string[]エンドユーザーにそのまま表示できる注意事項。
compressUrlstring手動で圧縮を完了できる対応する VidSmaller Web ツール。
レスポンス例
{
"ok": true,
"input": { "sizeBytes": 158020403, "sizeMb": 150.7, "durationSeconds": 596 },
"target": {
"platform": "discord",
"safeTargetMb": 19,
"statedLimitMb": 20,
"verifiedAt": "2026-09-14"
},
"verdict": "compress_recommended",
"fitsAsIs": false,
"estimate": {
"settings": { "mode": "preset", "preset": "balanced", "codec": "libx264" },
"outputMb": 90.4,
"savedPercent": 40,
"fitsTarget": false,
"jobSeconds": 123
},
"recommendation": {
"settings": { "mode": "target_size", "targetSizeMb": 19 },
"outputMb": 19,
"quality": { "videoKbps": 134, "verdict": "rough" }
}
}/api/v1/video/jobs
target_size_mb を上限として非同期圧縮ジョブを作成します。公開 URL またはアップロード済みファイルのトークンを使用できます。
方法 A:公開動画 URL
source_url に公開アクセス可能な動画の直接 URL を指定します。クレジット確保前に実際のファイルサイズを確認します。
curl -s https://vidsmaller.com/api/v1/video/jobs \
-H "Authorization: Bearer $VIDSMALLER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"source_url": "https://cdn.example.com/input.mp4",
"target_size_mb": 25,
"codec": "h264",
"max_resolution": "1080p",
"webhook_url": "https://example.com/webhooks/vidsmaller"
}'方法 B:ローカルファイルをアップロード
署名付きアップロード URL を取得し、ストレージへ直接 PUT してから、返された upload_token でジョブを作成します。
# 1. Request a one-hour signed upload URL
curl -s https://vidsmaller.com/api/v1/video/uploads \
-H "Authorization: Bearer $VIDSMALLER_API_KEY" \
-H "Content-Type: application/json" \
-d '{"filename":"input.mp4","file_size":52428800,"content_type":"video/mp4"}'
# 2. PUT the file to upload.url with the returned Content-Type header
# 3. Create the job with the returned upload_token
curl -s https://vidsmaller.com/api/v1/video/jobs \
-H "Authorization: Bearer $VIDSMALLER_API_KEY" \
-H "Content-Type: application/json" \
-d '{"upload_token":"UPLOAD_TOKEN","target_size_mb":25}'リクエストフィールド
source_urlHTTPS URL公開動画の直接 URL。upload_token と同時には指定できません。
upload_tokenstring署名付きアップロード URL の取得後に返されるトークン。source_url と同時には指定できません。
target_size_mbnumber必須。出力ファイルの上限を MiB で指定します。
codecstring既定は h264。有料機能が有効なアカウントでは h265 も選択できます。
max_resolutionstring任意の上限:2160p、1440p、1080p、720p、576p、480p、360p。
output_formatstring任意のコンテナ形式:既定の mp4、mkv、webm、mov。
webhook_urlHTTPS URL任意の完了イベント通知先。プライベートネットワークとリダイレクトは拒否されます。
状態確認とダウンロード
job.status が completed または failed になるまで確認します。完了時は認証付きの短期 download_url が返ります。状態確認とダウンロードには同じ API キーを使います。
curl -H "Authorization: Bearer $VIDSMALLER_API_KEY" \
https://vidsmaller.com/api/v1/video/jobs/JOB_ID署名付き Webhook
ポーリングせずに、ジョブが終了状態になったときのコールバックを受け取れます。
イベントは video.job.completed、video.job.failed、video.job.expired です。
次のヘッダーを検証します: x-vidsmaller-signature に対して HMAC-SHA256 を計算します: timestamp + "." + rawBody.
API キー作成時に表示される Webhook Secret を使います。署名ヘッダーは v1= で始まります。
エラー
エラーは JSON で返されます。HTTP ステータスから、リクエスト修正、再認証、クレジット追加、後で再試行のどれが必要か判断できます。
400必須フィールドがない、または値が無効です。
エラーメッセージに従ってペイロードを修正してください。
401API キーがない、無効、または削除済みです。
有効な Bearer キーを送信するか、新しいキーを作成してください。
402ジョブに必要なクレジットが不足しています。
クレジットを追加してから再度ジョブを作成してください。
404このキーではジョブまたはダウンロードが見つかりません。
ID と、ジョブ作成時に使用したキーを確認してください。
409アップロードまたはジョブが必要な状態ではありません。
現在の状態を確認してから再試行してください。
429リクエスト数または同時実行数の上限です。
待機後、バックオフを使って再試行してください。
500VidSmaller がリクエストを完了できませんでした。
後で再試行し、続く場合はサポートへ連絡してください。
上限と適正利用
API は Web 版コンプレッサーと同じ製品上限に従います。
- 公開の読み取り専用 API は IP ごとに 1 時間 600 リクエストまでです。
- 圧縮ジョブはアカウントのクレジット、ファイル上限、コーデック権限、同時実行上限を使用します。
- API v1 にはレスポンスフィールドが追加される場合がありますが、既存フィールドの意味は変わりません。
- 商用利用が可能です。VidSmaller へのリンクは歓迎しますが、必須ではありません。
プラットフォーム上限の誤りや予期しない API 動作は、次のメールへお知らせください: support@vidsmaller.com