全部產品
Search
文件中心

ApsaraVideo VOD:下載媒體檔案

更新時間:Sep 12, 2026

將ApsaraVideo for VOD(VOD)中的音視頻、圖片等媒體檔案下載至本地,是媒資管理、內容分發和離線播放等情境的常見需求。本文介紹了通過控制台、API/SDK以及移動端SDK等多種方式,快速、安全、經濟地擷取媒體檔案下載地址並完成下載的完整方法。

適用情境

  • 通過控制台下載:適用於少量檔案的快速驗證或臨時匯出。

  • 通過API下載:適用於批量檔案的自動化處理。

  • 通過播放器SDK離線下載:適用於自研應用情境。

情境一:通過控制台下載

下載單個檔案

控制台提供了直觀下載方式,適合少量檔案或業務測試情境。

  1. 登入ApsaraVideo for VOD控制台。

  2. 在左側導覽列選擇媒资库 > 音/視頻,進入音/視頻列表頁面。

  3. 點擊目標檔案操作列下的管理,選擇視頻地址(音頻地址)標籤頁,點擊對應清晰度操作列下的复制地址。

  4. 將複製的地址粘貼到瀏覽器或下載工具中即可開始下載。

下載多個檔案

當需要下載多個媒資檔案時,控制台提供了大量匯出媒資資訊功能。

  1. 登入ApsaraVideo for VOD控制台。

  2. 在左側導覽列選擇媒资库,根據檔案類型選擇音/視頻或者圖片,進入列表頁。

  3. 在列表頁面,可以使用篩選或搜尋功能定位需要匯出的媒體檔案並勾選。

  4. 點擊頁面右上方image表徵圖,完成媒資資訊匯出。

  5. 將媒資對應的地址粘貼到瀏覽器或下載工具中即可開始下載。

情境二:通過API下載

擷取下載地址

API提供了靈活的下載地址擷取方式,可以擷取源檔案、轉碼檔案、封面圖等多種媒體資源的下載地址。擷取不同媒體檔案下載地址的對應API如下:

媒資類型

擷取API

地址欄位

說明

源檔案

擷取源檔案資訊

Mezzanine.FileURL

上傳的原始音視頻檔案。

轉碼檔案

擷取音視頻播放地址

PlayInfoList.PlayInfo.PlayURL

轉碼輸出資料流地址。

視頻封面

擷取單個音視頻資訊

Video.CoverURL

視頻的封面圖片。

視頻截圖

擷取單個音視頻資訊

Video.Snapshots

視頻的截圖地址數組。

圖片檔案

擷取單個圖片資訊

ImageInfo.URL

圖片地址。

批量擷取下載地址

地址類型

擷取API

地址欄位

說明

批量搜尋

搜尋媒體資訊

MediaList.Video/Audio/Image

可一次性搜尋多種媒體資訊,包含上述所有地址。

說明

推薦使用服務端SDK調用API來擷取和更新媒資資訊,詳情請參見VOD SDK使用說明。

執行下載操作

使用API可以將下載能力整合到應用程式中,實現自動化處理。以下為Python SDK樣本,更多SDK樣本請參見OpenAPI 門戶。

  1. 準備環境。

    安裝VOD Python SDK。

    pip install aliyun-python-sdk-vod
  2. 擷取下載地址。

    調用擷取源檔案資訊介面擷取源檔案資訊。

    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解密播放。適用於付費課程、獨家內容等著作權敏感情境。

實現步驟

  1. 配置下載方式。

    1. 登入ApsaraVideo for VOD控制台,進入配置管理 > 分发加速配置 > 下载设置。

    2. 根據需求選擇普通下載或安全下載。若選擇安全下載需要在此頁面產生並妥善保管加密金鑰。

  2. 整合播放器SDK。

    在Android或iOS專案中,整合阿里雲播放器SDK。詳情請參見Android整合SDK和iOS整合SDK

  3. 完成視頻下載。

    在Android或iOS專案中,整合視頻下載模組。詳情請參見Android視頻下載和iOS視頻下載。

  4. 多視頻並發下載。

    阿里雲播放器 SDK 不支援使用單個下載器執行個體同時下載多個視頻,每個視頻需要執行個體化獨立的 AliMediaDownloader。下載多個視頻時,需注意以下限制和建議:

    • 通過單例模式統一管理下載隊列,維護固定大小(如 3 至 5 個)的活躍下載器池並發處理。

    • 下載任務結束後,及時調用 stop() 和 release() 釋放下載器資源。

    • PlayAuth 的有效期間為 3000 秒,調用 prepare 前需確認憑證仍在有效期間內;憑證已失效時,調用 updateSource() 更新 PlayAuth 後再繼續下載。

計費說明

媒體檔案下載地址,分為以下兩類:

  • 儲存地址

    • 未配置加速網域名稱,直接使用媒資儲存地址,產生儲存流出流量費用。

  • 加速地址:

常見問題

下載的視頻為何無法播放

若轉碼輸出檔案啟用了視頻加密(如HLS標準加密),下載後仍為加密格式,需通過阿里雲播放器SDK進行解密播放。詳情請參見視頻加密。

大量媒體檔案如何進行下載

可通過SearchMedia - 搜尋媒體資訊分頁擷取媒體檔案資訊後,參照情境二:通過API下載進行下載。

下載視頻時是否支援動態添加浮水印?

ApsaraVideo for VOD不支援在下載時通過 API 動態添加浮水印。若需要實現“下載帶浮水印、播放不帶浮水印”的效果,請將帶浮水印的視頻與不帶浮水印的視頻設定為不同清晰度,再按本文情境一或情境二的方式,根據清晰度分別擷取並下載對應版本的視頻檔案。

下載過程中 URL 到期是否影響下載?

下載地址在下載過程中到期不會中斷下載,也不會降低下載速度,已開始的下載會繼續完成。若因重新發起請求導致下載失敗或速度變慢,請調用 GetPlayInfo 介面產生新的下載地址,將 OutputType 參數設定為 oss,並適當延長地址有效期間後重試。