將ApsaraVideo for VOD(VOD)中的音視頻、圖片等媒體檔案下載至本地,是媒資管理、內容分發和離線播放等情境的常見需求。本文介紹了通過控制台、API/SDK以及移動端SDK等多種方式,快速、安全、經濟地擷取媒體檔案下載地址並完成下載的完整方法。
適用情境
通過控制台下載:適用於少量檔案的快速驗證或臨時匯出。
通過API下載:適用於批量檔案的自動化處理。
通過播放器SDK離線下載:適用於自研應用情境。
情境一:通過控制台下載
下載單個檔案
控制台提供了直觀下載方式,適合少量檔案或業務測試情境。
在左側導覽列選擇媒资库 > 音/視頻,進入音/視頻列表頁面。
點擊目標檔案操作列下的管理,選擇視頻地址(音頻地址)標籤頁,點擊對應清晰度操作列下的复制地址。
將複製的地址粘貼到瀏覽器或下載工具中即可開始下載。
下載多個檔案
當需要下載多個媒資檔案時,控制台提供了大量匯出媒資資訊功能。
在左側導覽列選擇媒资库,根據檔案類型選擇音/視頻或者圖片,進入列表頁。
在列表頁面,可以使用篩選或搜尋功能定位需要匯出的媒體檔案並勾選。
點擊頁面右上方
表徵圖,完成媒資資訊匯出。將媒資對應的地址粘貼到瀏覽器或下載工具中即可開始下載。
情境二:通過API下載
擷取下載地址
API提供了靈活的下載地址擷取方式,可以擷取源檔案、轉碼檔案、封面圖等多種媒體資源的下載地址。擷取不同媒體檔案下載地址的對應API如下:
媒資類型 | 擷取API | 地址欄位 | 說明 |
源檔案 |
| 上傳的原始音視頻檔案。 | |
轉碼檔案 |
| 轉碼輸出資料流地址。 | |
視頻封面 |
| 視頻的封面圖片。 | |
視頻截圖 |
| 視頻的截圖地址數組。 | |
圖片檔案 |
| 圖片地址。 |
批量擷取下載地址
地址類型 | 擷取API | 地址欄位 | 說明 |
批量搜尋 |
| 可一次性搜尋多種媒體資訊,包含上述所有地址。 |
推薦使用服務端SDK調用API來擷取和更新媒資資訊,詳情請參見VOD SDK使用說明。
執行下載操作
使用API可以將下載能力整合到應用程式中,實現自動化處理。以下為Python SDK樣本,更多SDK樣本請參見OpenAPI 門戶。
準備環境。
安裝VOD Python SDK。
pip install aliyun-python-sdk-vod擷取下載地址。
調用擷取源檔案資訊介面擷取源檔案資訊。
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) # 設定地址有效期間為1小時(3600秒) # 2. 發送請求並擷取響應 response = client.do_action_with_exception(request) result = json.loads(response) # 3. 解析下載地址 download_url = result['Mezzanine']['FileURL'] print(f"源檔案下載地址: {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}")
情境三:通過用戶端SDK離線下載
針對行動裝置 App情境,ApsaraVideo for VOD支援將視頻緩衝到本地實現離線觀看。離線下載分為普通下載和安全下載兩種模式。
普通下載:下載的視頻檔案未加密,可被任意拷貝和播放。適用於公開內容或著作權要求不高的情境。
安全下載:下載的視頻檔案經過加密,只能通過整合了相同密鑰的阿里雲播放器SDK解密播放。適用於付費課程、獨家內容等著作權敏感情境。
實現步驟
配置下載方式。
登入ApsaraVideo for VOD控制台,進入配置管理 > 分发加速配置 > 下载设置。
根據需求選擇普通下載或安全下載。若選擇安全下載需要在此頁面產生並妥善保管加密金鑰。
整合播放器SDK。
在Android或iOS專案中,整合阿里雲播放器SDK。詳情請參見Android整合SDK和iOS整合SDK
完成視頻下載。
在Android或iOS專案中,整合視頻下載模組。詳情請參見Android視頻下載和iOS視頻下載。
計費說明
媒體檔案下載地址,分為以下兩類:
常見問題
下載的視頻為何無法播放
若轉碼輸出檔案啟用了視頻加密(如HLS標準加密),下載後仍為加密格式,需通過阿里雲播放器SDK進行解密播放。詳情請參見視頻加密。
大量媒體檔案如何進行下載
可通過SearchMedia - 搜尋媒體資訊分頁擷取媒體檔案資訊後,參照情境二:通過API下載進行下載。