開発者 API

動画を指定したファイルサイズに圧縮

公開動画 URL を送信するか、ローカルファイルをアップロードします。VidSmaller が非同期で圧縮し、進行状況とダウンロード可能な結果を返します。

更新日
更新日: 2026-10-10
上限の確認日
上限の確認日: 2026-09-14
VidSmaller のクレジットを使用
VidSmaller のクレジットを使用
このページの内容

3 ステップで開始

キーを作成して動画を送信し、ジョブをポーリングするか署名付き Webhook を待ちます。

  1. 1

    キーを作成

    ダッシュボードでキーに名前を付けます。API キーと Webhook Secret は一度だけ表示されるため、すぐにコピーして安全に保存してください。

  2. 2

    ジョブを作成

    公開 URL またはアップロード済みファイルを指定し、target_size_mb と必要に応じてコーデック、解像度、形式を設定します。

  3. 3

    結果を取得

    ジョブの状態を確認するか、署名付き Webhook を受信します。完了時に認証付きの短期ダウンロード URL が返ります。

無料の読み取り専用 API

上限データと見積もりは API キー不要で、IP ごとに 1 時間 600 リクエストまで利用できます。

共通の圧縮フロー

API ジョブは Web 版と同じクレジット、ファイル上限、コーデック権限、同時実行上限を使用します。

2 つの入力方法

公開動画の直接 URL、または署名付き URL を使ったローカルファイルのアップロードに対応します。

安定した v1 契約

レスポンスに新しいフィールドが追加される場合がありますが、既存の v1 フィールドの意味は変わりません。

認証とクレジット

認証が必要なのはファイルアップロードと圧縮ジョブだけです。上限データと見積もり API は公開されています。

Bearer API キー

API キーダッシュボードで作成します。完全なキーは再表示できないため、安全に保存してください。

Authorization: Bearer $VIDSMALLER_API_KEY

共通クレジット残高

API 専用プランはありません。作成時にクレジットを確保し、実際のエンコード時間で精算します。処理失敗時は自動で返金されます。

/api/v1/platforms

VidSmaller が追跡するアップロード上限、安全な圧縮目標、参照元、最終確認日を返します。

GET

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 は同じフィールド名を使います。

GET · POSTAPI キー不要
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。

レスポンスフィールド

verdictstring

fits_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 またはアップロード済みファイルのトークンを使用できます。

POSTBearer API キーが必要

方法 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

必須フィールドがない、または値が無効です。

エラーメッセージに従ってペイロードを修正してください。

401

API キーがない、無効、または削除済みです。

有効な Bearer キーを送信するか、新しいキーを作成してください。

402

ジョブに必要なクレジットが不足しています。

クレジットを追加してから再度ジョブを作成してください。

404

このキーではジョブまたはダウンロードが見つかりません。

ID と、ジョブ作成時に使用したキーを確認してください。

409

アップロードまたはジョブが必要な状態ではありません。

現在の状態を確認してから再試行してください。

429

リクエスト数または同時実行数の上限です。

待機後、バックオフを使って再試行してください。

500

VidSmaller がリクエストを完了できませんでした。

後で再試行し、続く場合はサポートへ連絡してください。

上限と適正利用

API は Web 版コンプレッサーと同じ製品上限に従います。

  • 公開の読み取り専用 API は IP ごとに 1 時間 600 リクエストまでです。
  • 圧縮ジョブはアカウントのクレジット、ファイル上限、コーデック権限、同時実行上限を使用します。
  • API v1 にはレスポンスフィールドが追加される場合がありますが、既存フィールドの意味は変わりません。
  • 商用利用が可能です。VidSmaller へのリンクは歓迎しますが、必須ではありません。

プラットフォーム上限の誤りや予期しない API 動作は、次のメールへお知らせください: support@vidsmaller.com

関連リソース

ホームへ戻る