1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Cloudflare Stream:APIトークン取得方法・料金体系・API種類・実装チェックリスト

Last updated at Posted at 2025-09-06

1. Cloudflare / Cloudflare Stream とは

Cloudflare はグローバルCDNとセキュリティ基盤を提供。
Cloudflare Stream は、アップロード→保存→自動エンコード→配信を1つのAPIで提供する動画基盤です。料金は「保存(minutes stored)+配信(minutes delivered)」のみとシンプルで、エンコード費用や帯域追加課金はなし。(Cloudflare Docs, Cloudflare)


2. APIトークンの取得方法

  1. ダッシュボードへログイン → My Profile → API Tokens → Create Token
  2. Create Custom Token を選び、PermissionsAccount → Stream → Edit(用途に応じて Read/Write)を付与。
  3. Accounts で対象アカウントを指定 → Create Token
  4. 表示された APIトークンを安全に保管(.env など)。
    公式のAPIガイドでも「API Tokens から作成」が基本動線です。(Cloudflare Docs)

例:Direct Upload URL を発行(Basic / 200MB未満)

curl -X POST "https://api.cloudflare.com/client/v4/accounts/${ACCOUNT_ID}/stream/direct_upload" \
  -H "Authorization: Bearer ${API_TOKEN}" \
  -H "Content-Type: application/json" \
  --data '{"maxDurationSeconds":600}'

“エンドユーザー直アップロード”用のワンタイムURLをサーバー側で発行して渡します。200MB未満はBasic、200MB超はtus推奨が公式の推奨方針です。(Cloudflare Docs)


3. 料金体系(2025年9月時点)

  • 保存(Minutes Stored)$5 / 1,000分前払い(プリペイド)。ファイルサイズは不問。残高はダッシュボードで確認できます。(Cloudflare Docs)
  • 配信(Minutes Delivered)$1 / 1,000分後払い(従量)。VOD再生・HLS/DASH・MP4ダウンロード・ライブ配信などが対象。ダッシュボードの Billable Usage / Stream Analytics で確認可能。(Cloudflare Docs)
  • Stream Live も同一課金(録画=保存、視聴=配信、エンコード追加費用なし)。(Cloudflare Docs)
  • Pro/Businessプランには無料枠の案内(例:保存100分+配信10,000分)があります。最新のプラン表記を確認してください。(Cloudflare)

例:10分動画×100回再生 → 配信1,000分 = $1。保存は10分×本数で消費(1,000分枠=$5)。合計は使用状況により概ね $1〜数ドルに収まります。


4. 支払い設定(Billing / Payment)

  • 決済手段の登録:ダッシュボード → Billing → PaymentManage から クレジットカード / PayPal を追加。バックアップ決済手段も登録可。(Cloudflare Docs)
  • 請求先/税情報(VAT/GST):Billing ページで更新。請求メールや住所変更も同ページ。(Cloudflare Docs)
  • 支払い失敗の再決済Invoices & documentsPay Now。(Cloudflare Docs)
  • 使用量の可視化Billing → Usage(Usage based billing の説明も参照)。(Cloudflare Docs)

5. Cloudflare Stream の主なAPI

5.1 アップロード

  • Direct Creator Uploads(Basic/200MB未満 or tus)
    エンドユーザー直アップロードのためのURLを発行。200MB未満はBasic、200MB超や再開可否が必要ならtus。(Cloudflare Docs)
  • tus(レジューム)
    POST /accounts/{account_id}/streamTus-Resumable)→ 201 + Location で以後PATCH。(Cloudflare Docs)
  • Link Upload(URL取り込み)
    POST /accounts/{account_id}/stream/copy で外部URL(例:S3)から直接取り込み。(Cloudflare Docs)

5.2 管理

  • 一覧/詳細/削除GET /accounts/{account_id}/stream(最大1000件)、GET/DELETE /stream/{video_uid}。(Cloudflare Docs)

5.3 再生

  • Stream Player(iframe)https://customer-<CODE>.cloudflarestream.com/<VIDEO_UID>/iframe を埋め込み。(Cloudflare Docs)
  • 自前プレイヤー:HLS/DASH マニフェストURLはダッシュボード/APIで取得。(Cloudflare Docs)

5.4 セキュリティ

  • Signed URL / Tokens:動画に requireSignedURLs: true を設定し、POST /stream/{identifier}/token で署名トークン発行。公開リンクは無効化され、署名URL必須に。(Cloudflare Docs)
  • Allowed Origins:HLS/DASHの取得元ドメインを制限(自前プレイヤーでも有効)。(Cloudflare Docs)
  • Live の場合allowedOrigins/requireSignedURLsライブ入力に紐づく設定が録画にも既定として適用。(Cloudflare Docs)

5.5 字幕・サムネ・ダウンロード・透かし

  • Captions(字幕):BCP47言語ごとに VTT を PUTAI生成APIもあり。(Cloudflare Docs)
  • サムネ(thumbnails).../thumbnails/thumbnail.jpg?time=1s&height=270 など URLで即生成。既定位置は thumbnailTimestampPct で更新可。(Cloudflare Docs)
  • MP4/M4A ダウンロード/downloadsPOST→ポーリング→ready になったら取得。ライブ録画もUIから有効化可。(Cloudflare Docs)
  • ウォーターマークWatermark profile を作成→アップロード時に適用。API/ダッシュボード両対応。(Cloudflare Docs)

6. 図解:APIの使い分け


7. 実装チェックリスト(本番運用向け)

  • アップロード:サーバーで Direct Creator Upload URL を発行(Basicは1回のみ有効)。200MB超や不安定回線はtusへ。(Cloudflare Docs)

  • 再生セキュリティrequireSignedURLs:true + 短寿命トークン + Allowed Origins で二重防御。鍵は /stream/keys でローテーション。(Cloudflare Docs)

  • 状態監視:Webhooksで processing→ready を受信し、DB/通知を更新(ポーリングより確実)。(Cloudflare Docs)

  • UXreadyToStream を見て再生開始、サムネURLでポスター生成。(Cloudflare Docs)

  • アクセシビリティ:字幕(VTT)を用意。多言語は追加音声トラックも検討。(Cloudflare Docs)

  • ダウンロード:必要動画のみ /downloads を有効化し、ready になってからリンク配布。(Cloudflare Docs)

  • 料金/運用

    • 保存は前払い:残高が尽きると新規アップロード不可 → 月初にチャージ or 監視。(Cloudflare Docs)
    • 配信は後払い:使用量は Billable Usage / Analytics で確認。(Cloudflare Docs)
    • 支払い:Billing → Payment でカード/PayPal、未払いは Invoices で Pay Now。(Cloudflare Docs)

8. すぐ試せるサンプル(cURL)

(A) Basic 直アップロードURL(200MB未満)

curl -X POST "https://api.cloudflare.com/client/v4/accounts/${ACCOUNT_ID}/stream/direct_upload" \
  -H "Authorization: Bearer ${API_TOKEN}" \
  -H "Content-Type: application/json" \
  --data '{"maxDurationSeconds":600}'
# => result.uploadURL, result.uid

(B) tus 初期化(大容量・再開可)

curl -i -X POST "https://api.cloudflare.com/client/v4/accounts/${ACCOUNT_ID}/stream" \
  -H "Authorization: Bearer ${API_TOKEN}" \
  -H "Tus-Resumable: 1.0.0" \
  -H "Upload-Length: 734003200"
# => 201 + Location ヘッダ

(C) 再生(iframe)

<iframe
  src="https://customer-<CODE>.cloudflarestream.com/<VIDEO_UID>/iframe"
  width="1280" height="720" style="border:none" allow="accelerometer; autoplay; clipboard-write; encrypted-media; picture-in-picture" allowfullscreen>
</iframe>

(Cloudflare Docs)


9. 参考(公式ドキュメント)


1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?