開発者ドキュメントを参照する

REST API

ファイルをアップロードして共有する

このチュートリアルでは、demo.mp4 という名前の 1 つのローカル ファイルを取得し、それを作業用共有 URL に変換します。手順を順番に完了してください。各応答は、次の要求で使用される値を提供します。

1

API キーを作成して保存する

開発者設定を開き、uploads:write、files:read、shares:write、および shares:read を選択して、キーを作成します。今すぐコピーしてください。完全なシークレットは 1 回だけ表示されます。

使用可能なスコープ: アップロード:書き込み、files:read、shares:write、および shares:read。

期待される結果:Video2URL キー プレフィックスで始まるシークレットがあります。プライベートにしておいてください。
2

端末を準備する

キーを環境変数に入れて、すべてのコマンドやシェル履歴にそのキーが表示されないようにします。 Enterを押す前にプレースホルダーを置き換えてください。

Terminal
read -s VIDEO2URL_API_KEY
echo "key loaded"
期待される結果:このコマンドは、シークレット自体ではなく、読み込まれたキーを出力します。
3

アップロードジョブを作成する

正確なファイル名、MIME タイプ、バイト サイズを Video2URL に伝えます。これにより、一時的な R2 アップロード URL が返されます。まだビデオはアップロードされていません。

POST /api/v1/uploads

curl
curl -sS -X POST https://video2url.com/api/v1/uploads \
  -H "Authorization: Bearer $VIDEO2URL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"filename":"demo.mp4","mimeType":"video/mp4","sizeBytes":1048576}'
期待される結果:data.uploadId と data.upload.url を含む JSON 応答。次のステップのために両方の値を保存します。
Save response values
export UPLOAD_ID="paste data.uploadId here"
export UPLOAD_URL="paste data.upload.url here"
4

ビデオバイトを送信する

demo.mp4 を一時 URL に直接アップロードします。この PUT リクエストに Video2URL API キーを追加しないでください。作成アップロード応答によって返された Content-Type を使用します。 返されたコンテンツ タイプを使用して、生のファイルを署名付き URL にアップロードします。

curl · PUT
curl --fail-with-body -X PUT "$UPLOAD_URL" \
  -H "Content-Type: video/mp4" \
  --data-binary @demo.mp4
期待される結果:アップロード サーバーは HTTP 200 を返します。空の応答本文は正常です。
5

アップロードを完了して確認する

PUT が成功したら、保存されたオブジェクトを検証し、ファイル レコードを作成するように Video2URL に指示します。 PUT が終了する前にこのステップを呼び出さないでください。

POST /api/v1/uploads/{uploadId}/complete · GET /api/v1/uploads/{uploadId}

curl
curl -sS -X POST "https://video2url.com/api/v1/uploads/$UPLOAD_ID/complete" \
  -H "Authorization: Bearer $VIDEO2URL_API_KEY"
期待される結果:応答には data.file.fileId が含まれます。 FILE_ID を保存します。完成したファイルを識別します。
Save FILE_ID
export FILE_ID="paste data.file.fileId here"
6

最終共有を作成します URL

FILE_ID から非公開リンクを作成します。非公開とは、URL を持つ誰でも開くことができますが、パブリック ディレクトリには配置されないことを意味します。

  • タイトルは任意です。
  • パスワードはオプションです。
  • 可視性はオプションです。
  • 可視性のデフォルトは非公開です。

POST /api/v1/shares · GET / DELETE /api/v1/shares/{shareId}

curl
curl -sS -X POST https://video2url.com/api/v1/shares \
  -H "Authorization: Bearer $VIDEO2URL_API_KEY" \
  -H "Content-Type: application/json" \
  -d "{"fileId":"$FILE_ID","visibility":"unlisted"}"
期待される結果:応答には共有レコードと URL が含まれます。プライベート ブラウザ ウィンドウで SHARE_URL を開いて確認します。
Open SHARE_URL
export SHARE_URL="paste the returned share URL here"
open "$SHARE_URL" # macOS; use xdg-open on Linux

JavaScript & Python

必要な最も狭いキーを作成します。古いキーを取り消す前に、代替キーを作成して展開することでローテーションします。有料アクセスが終了すると、キーは保存されたままになりますが、通話は一時停止します。対象となるプランを更新すると、アクセスが復元されます。

JavaScript
const response = await fetch('https://video2url.com/api/v1/uploads', {
  method: 'POST',
  headers: { Authorization: `Bearer ${process.env.VIDEO2URL_API_KEY}`, 'Content-Type': 'application/json' },
  body: JSON.stringify({ filename: 'demo.mp4', mimeType: 'video/mp4', sizeBytes: file.size }),
});
const created = await response.json();
Python
import os, requests
headers = {"Authorization": f"Bearer {os.environ['VIDEO2URL_API_KEY']}"}
created = requests.post("https://video2url.com/api/v1/uploads", headers=headers, json={"filename": "demo.mp4", "mimeType": "video/mp4", "sizeBytes": 1048576})
created.raise_for_status()
with open("demo.mp4", "rb") as video:
    requests.put(created.json()["data"]["upload"]["url"], data=video).raise_for_status()