ApsaraVideo VOD(VOD)からメディアファイルをダウンロードする必要が頻繁に生じます。これらのファイルには、音声、動画、画像が含まれます。一般的な利用シーンには、メディアアセット管理、コンテンツ配信、オフライン再生などがあります。本トピックでは、コンソール、API または SDK、およびモバイル SDK を使用してダウンロード URL を取得し、ファイルをダウンロードする方法について説明します。いずれの方法も高速・安全・コスト効率に優れています。
シナリオ
コンソールからダウンロード:少数のファイルを迅速に検証または一時的にエクスポートする場合に適しています。
API を使用したダウンロード:ファイルの自動バッチ処理に適しています。
プレーヤー SDK を使用したオフラインダウンロード:カスタムアプリケーションの利用シーンに適しています。
シナリオ 1:コンソールからのダウンロード
単一ファイルのダウンロード
コンソールでは、ファイルを簡単にダウンロードできます。この方法は、少数のファイルをダウンロードする場合や業務テストに最適です。
ApsaraVideo VOD コンソール にログインします。
左側のナビゲーションウィンドウで、メディアファイル > 音声/動画 を選択し、音声/動画 の一覧ページへ移動します。
対象ファイルを見つけ、[操作] 列の 管理 をクリックします。[動画 URL] または [音声 URL] タブを選択し、目的の画質に対応する [操作] 列で コピー をクリックします。
コピーした URL をブラウザまたはダウンロードツールに貼り付けて、ダウンロードを開始します。
複数ファイルのダウンロード
多数のファイルをダウンロードする場合は、コンソールのメディアアセット情報のバッチエクスポート機能をご利用ください。
ApsaraVideo VOD コンソール にログインします。
左側のナビゲーションウィンドウで、メディアファイル を選択し、ファイルタイプに応じて 音声/動画 または イメージ をクリックして一覧ページへ移動します。
一覧ページで、フィルターまたは 検索 機能を用いて、エクスポート対象のメディアファイルを特定・選択します。
ページ右上隅の
アイコンをクリックして、メディアアセット情報をエクスポートします。エクスポートされたメディアアセットの URL をブラウザまたはダウンロードツールに貼り付けて、ダウンロードを開始します。
シナリオ 2:API を使用したダウンロード
ダウンロード URL の取得
API を使用すると、ソースファイル、トランスコード済みファイル、サムネイルなど、さまざまなメディアリソースのダウンロード URL を柔軟に取得できます。以下の表に、各メディアファイルタイプに対応するダウンロード URL 取得 API を示します。
メディアアセットの種類 | 取得 API | アドレスフィールド | 説明 |
ソースファイル |
| アップロードされた元の音声または動画ファイルです。 | |
トランスコード済みファイル |
| トランスコード済みストリームの URL です。 | |
動画サムネイル |
| 動画のサムネイル画像です。 | |
動画スナップショット |
| 動画のスナップショット URL の配列です。 | |
イメージファイル |
| イメージの URL です。 |
複数のダウンロード URL の一括取得
アドレスタイプ | 取得 API | アドレスフィールド | 説明 |
バッチ検索 |
| 複数のメディアタイプに関する情報を一度に検索できます。応答には、上記のすべての URL タイプが含まれます。 |
メディアアセット情報の取得および更新には、サーバーサイド SDK を使用して API を呼び出してください。詳細については、「VOD SDK 使用ガイド」をご参照ください。
ダウンロード操作の実行
アプリケーションにダウンロード機能を統合することで、API を用いたダウンロードプロセスを自動化できます。以下に Python SDK の例を示します。その他の SDK の例については、OpenAPI ポータルをご参照ください。
環境を準備します。
VOD Python SDK をインストールします。
pip install aliyun-python-sdk-vodダウンロード URL を取得します。
GetMezzanineInfo 操作を呼び出して、ソースファイル情報を取得します。
import json from aliyunsdkcore.client import AcsClient from aliyunsdkvod.request.v20170321 import GetMezzanineInfoRequest # クライアントの初期化 # ご利用の AccessKey ID、AccessKey Secret、リージョン ID に置き換えてください client = AcsClient('YOUR_ACCESS_KEY_ID', 'YOUR_ACCESS_KEY_SECRET', 'cn-shanghai') # 1. リクエストの作成 request = GetMezzanineInfoRequest() request.set_accept_format('json') request.set_VideoId("YOUR_VIDEO_ID") # 動画 ID に置き換えてください request.set_OutputType("oss") # 推奨:コスト削減のため、OSS ストレージのアドレスを返します request.set_AuthTimeout(3600) # URL の有効期間を 1 時間(3600 秒)に設定 # 2. リクエストの送信と応答の取得 response = client.do_action_with_exception(request) result = json.loads(response) # 3. ダウンロード URL の解析 download_url = result['Mezzanine']['FileURL'] print(f"ソースファイルのダウンロード URL: {download_url}") # (任意)requests ライブラリを使用してファイルをダウンロード import requests print("ファイルのダウンロードを開始中...") file_response = requests.get(download_url, stream=True) if file_response.status_code == 200: with open('downloaded_video.mp4', 'wb') as f: for chunk in file_response.iter_content(chunk_size=8192): f.write(chunk) print("ファイルのダウンロードが完了しました: downloaded_video.mp4") else: print(f"ダウンロードに失敗しました。状態コード: {file_response.status_code}") print(f"エラーメッセージ: {file_response.text}")
シナリオ 3:クライアント SDK を使用したオフラインダウンロード
モバイルアプリケーションの利用シーンにおいて、ApsaraVideo VOD は動画をローカルにキャッシュしてオフライン視聴を可能にする機能を提供しています。オフラインダウンロードは、標準ダウンロードとセキュアダウンロードの 2 種類のモードで利用可能です。
標準ダウンロード:ダウンロードされた動画ファイルは暗号化されず、任意のプレーヤーでコピーおよび再生が可能です。このモードは、パブリックコンテンツや著作権要件が低いシーンに適しています。
セキュアダウンロード:ダウンロードされた動画ファイルは暗号化されます。同一の暗号鍵を組み込んだ ApsaraVideo Player SDK のみが、当該ファイルを復号・再生できます。このモードは、有料講座や独占コンテンツなど、著作権保護が重要なシーンに適しています。
手順
ダウンロードモードを設定します。
ApsaraVideo VOD コンソール にログインします。設定の管理 > 配信の高速化設定 > ダウンロードの設定 へ移動します。
必要に応じて、標準ダウンロードまたはセキュアダウンロードを選択します。セキュアダウンロードを選択した場合は、このページで暗号鍵を生成し、安全に保管する必要があります。
プレーヤー SDK を統合します。
Android または iOS プロジェクトに ApsaraVideo Player SDK を統合します。詳細については、「Android SDK の統合」および「iOS SDK の統合」をご参照ください。
動画のダウンロードを完了します。
Android または iOS プロジェクトに動画ダウンロードモジュールを統合します。詳細については、「Android 向け動画ダウンロード」および「iOS 向け動画ダウンロード」をご参照ください。
課金
メディアファイルのダウンロード URL は、以下の 2 種類に分類されます。
ストレージアドレス
CDN ドメイン名を設定していない場合、システムはメディアアセットのストレージの場所を直接使用し、アウトバウンドトラフィック 料金が発生します。
高速化アドレス:
CDN ドメイン名を設定 すると、より高速なアクセス速度を実現できます。ダウンロード URL は高速化アドレスとなり、高速化サービス 料金が発生します。
ブラックリストおよびホワイトリスト を設定した場合、リファラーによるホットリンク保護や IP ブラックリストなどの制限が適用されます。これらの制限は、オンライン再生のルールと一致します。
よくある質問
ダウンロードした動画が再生できないのはなぜですか?
トランスコード済み出力ファイルに対して HLS 暗号化などの動画暗号化が有効になっている場合、ダウンロードしたファイルも暗号化されたままになります。このファイルを復号・再生するには、ApsaraVideo Player SDK を使用する必要があります。詳細については、「動画暗号化」をご参照ください。
多数のメディアファイルをダウンロードするにはどうすればよいですか?
SearchMedia - メディア情報の検索 を使用して、ページング機能付きでメディアファイル情報を取得し、その後、「シナリオ 2:API を使用したダウンロード」の手順に従ってダウンロードを行ってください。