動画のダウンロード
Streamに動画をアップロードすると、HLS/DASHを使用してストリーミングできます。ただし、オフライン視聴などの特定のユースケースでは、MP4をダウンロードしたい場合があります。以下の手順に従って、動画ごとにMP4サポートを有効にできます。
/downloadsエンドポイントにPOSTリクエストを送信してMP4サポートを有効にします(以下の例を参照)。/downloadsエンドポイントからのレスポンスに提供されたMP4 URLを保存します。このMP4 URLは、次のステップでMP4が準備できたときに機能します。/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のレスポンスにあるリンクを介して取得できます。
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がダウンロードされるたびに、動画の再生時間に対して請求されます。たとえば、10分の動画が月に100回ダウンロードされる場合、ダウンロードは1000分のサービス時間としてカウントされます。
MP4を有効にしても、ストレージに追加のコストは発生しません。