コンテンツにスキップ

動画のダウンロード

Streamに動画をアップロードすると、HLS/DASHを使用してストリーミングできます。ただし、オフライン視聴などの特定のユースケースでは、MP4をダウンロードしたい場合があります。以下の手順に従って、動画ごとにMP4サポートを有効にできます。

  1. /downloadsエンドポイントにPOSTリクエストを送信してMP4サポートを有効にします(以下の例を参照)。
  2. /downloadsエンドポイントからのレスポンスに提供されたMP4 URLを保存します。このMP4 URLは、次のステップでMP4が準備できたときに機能します。
  3. /downloadsエンドポイントをポーリングして、statusフィールドがreadyに設定されるのを確認し、MP4が利用可能になったことを通知します。これで、ステップ2のMP4 URLを使用できます。

ダウンロード可能なファイルの生成

動画が視聴可能になったら、/downloadsエンドポイントにHTTPリクエストを送信することで、アップロードされた動画のダウンロードを有効にできます。

動画が視聴可能になったときに通知を受け取るには、Webhookの使用を参照してください。

ダウンロードAPIのレスポンスには、動画のすべての利用可能なダウンロードタイプ、各タイプのダウンロードURL、およびダウンロードファイルの処理状況が含まれます。

リクエスト
curl -X POST \
-H "Authorization: Bearer <API_TOKEN>" \
https://api.cloudflare.com/client/v4/accounts/<ACCOUNT_ID>/stream/<VIDEO_UID>/downloads
レスポンス
{
"result": {
"default": {
"status": "inprogress",
"url": "https://customer-<CODE>.cloudflarestream.com/<VIDEO_UID>/downloads/default.mp4",
"percentComplete": 75.0
}
},
"success": true,
"errors": [],
"messages": []
}

ダウンロードリンクの取得

ダウンロードAPIにGET HTTPリクエストを送信することで、動画のすべての利用可能なダウンロードを表示できます。ダウンロードの作成と取得のレスポンスは同じです。

リクエスト
curl -X GET \
-H "Authorization: Bearer <API_TOKEN>" \
https://api.cloudflare.com/client/v4/accounts/<ACCOUNT_ID>/stream/<VIDEO_UID>/downloads
レスポンス
{
"result": {
"default": {
"status": "ready",
"url": "https://customer-<CODE>.cloudflarestream.com/<VIDEO_UID>/downloads/default.mp4",
"percentComplete": 100.0
}
},
"success": true,
"errors": [],
"messages": []
}

ダウンロードファイル名のカスタマイズ

URLの末尾にfilenameクエリ文字列パラメータを追加することで、ダウンロード可能なファイルの名前をカスタマイズできます。

以下の例では、URLに?filename=MY_VIDEO.mp4を追加すると、ファイル名がMY_VIDEO.mp4に変更されます。

https://customer-<CODE>.cloudflarestream.com/<VIDEO_UID>/downloads/default.mp4?filename=MY_VIDEO.mp4

filenameは最大120文字で、abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_の文字で構成される必要があります。拡張子(.mp4)は自動的に追加されます。

ダウンロードの取得

生成されたMP4ダウンロードファイルは、ダウンロードAPIのレスポンスにあるリンクを介して取得できます。

Terminal window
curl -L https://customer-<CODE>.cloudflarestream.com/<VIDEO_UID>/downloads/default.mp4 > download.mp4

動画ダウンロードのセキュリティ

動画が公開されている場合、MP4も公開アクセス可能です。動画がプライベートで、視聴に署名付きURLが必要な場合、MP4は公開アクセスできません。プライベート動画のMP4にアクセスするには、通常の視聴と同様に、downloadableフラグをtrueに設定して署名付きURLを生成できます。

downloadableフラグがトークンに存在しない場合、すでに署名付きURLが必要な動画のダウンロードリンクは機能しません。

動画に署名付きURLを使用する詳細については、Streamのセキュリティを参照してください。

トークンペイロードの例

{
"sub": <VIDEO_UID>,
"kid": <KEY_ID>,
"exp": 1537460365,
"nbf": 1537453165,
"downloadable": true,
"accessRules": [
{
"type": "ip.geoip.country",
"action": "allow",
"country": [
"GB"
]
},
{
"type": "any",
"action": "block"
}
]
}

MP4ダウンロードの請求

MP4ダウンロードは、動画のストリーミングと同様に請求されます。動画のMP4がダウンロードされるたびに、動画の再生時間に対して請求されます。たとえば、10分の動画が月に100回ダウンロードされる場合、ダウンロードは1000分のサービス時間としてカウントされます。

MP4を有効にしても、ストレージに追加のコストは発生しません。