實作:影片

下列範例說明如何使用 YouTube Data API (v3) 執行與影片相關的函式。

擷取頻道上傳的影片

這個範例會擷取上傳至特定頻道的影片。這個範例包含兩個步驟:

本例示範如何擷取 YouTube 最熱門的影片清單。這類影片是透過演算法選出,該演算法會結合多種信號,判斷影片的整體熱門程度。

如要擷取熱門影片清單,請呼叫 videos.list 方法,並將 chart 參數的值設為 mostPopularmostPopular排行榜包含發燒音樂、電影和遊戲影片。

接著,您可以視需要設定下列參數:

  • regionCode:指示 API 傳回指定區域的影片清單。參數值為 ISO 3166-1 alpha-2 國家/地區代碼。你可以使用 i18nRegions.list 方法,擷取 YouTube 支援的區域代碼清單。
  • videoCategoryId:識別要擷取熱門影片的影片類別。您可以使用 videoCategories.list 方法,擷取 YouTube 支援的類別 ID 清單。

舉例來說,下列要求會擷取西班牙最熱門的運動影片:

https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.videos.list?
        part=snippet
        &chart=mostPopular
        &regionCode=es
        &videoCategoryId=17
  

上傳影片

由於 API 探索工具不支援上傳檔案,因此這份說明不會連結至可執行的範例。下列資源可協助您修改應用程式,以便使用 v3 API 上傳影片:

  • API 的 videos.insert 方法說明文件包含多個程式碼範例,說明如何使用不同程式設計語言上傳影片。

  • 支援續傳的上傳作業指南說明應用程式用來透過支援續傳的上傳程序上傳影片的 HTTP 要求順序。本指南主要適用於無法使用 Google API 用戶端程式庫的開發人員,因為部分程式庫原生支援可恢復上傳功能。

  • 上傳影片的 JavaScript 範例會使用 CORS (跨源資源共用),示範如何透過網頁上傳影片檔案。第 3 版 API 使用的 CORS 上傳程式庫自然支援可續傳的上傳作業。此外,這個範例也示範如何擷取 video 資源的 processingDetails 部分,藉此檢查上傳影片的狀態,以及如何處理上傳影片的狀態變更。

查看上傳影片的狀態

這個範例說明如何檢查已上傳影片的狀態。上傳的影片會立即顯示在已驗證使用者的上傳影片動態消息中。不過,影片處理完畢後才會在 YouTube 上顯示。

注意:應用程式可以輪詢 API,定期檢查新上傳影片的狀態。影片處理完畢後,應用程式可以建立公告,或根據影片狀態執行其他動作。

更新影片

這個範例說明如何更新影片,加入影片錄製時間和地點的資訊。這個範例包含下列步驟:

  • 步驟 1:擷取影片 ID

    按照上述步驟擷取目前已驗證使用者頻道上傳的影片。這份清單可用於顯示影片清單,並以每個影片的 ID 做為鍵。

    注意:取得影片 ID 的方法有很多,例如擷取搜尋結果或列出播放清單中的項目。不過,由於只有影片擁有者可以更新影片,因此在這個程序中,很可能要先擷取授權 API 要求的使用者所擁有的影片清單。

  • 步驟 2:更新影片

    呼叫 videos.update 方法來更新特定影片。將 part 參數的值設為 recordingDetails。(參數值取決於要更新哪個影片的中繼資料欄位)。

    要求主體是 video 資源,其中的 id 屬性會指定要更新的影片 ID。在本例中,資源也包含 recordingDetails 物件。

    下方範例資源指出影片是在 2013 年 10 月 30 日於波士頓錄製:

    {
      "id": "VIDEO_ID",
      "recordingDetails": {
        "location": {
          "latitude": "42.3464",
          "longitude": "-71.0975"
        }
        "recordingDate": "2013-10-30T23:15:00.000Z"
      }
    }

    如要在 APIs Explorer 中完成要求,請設定 id 屬性的值。

    https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.videos.update?
            part=snippet

上傳自訂縮圖圖片並設為影片縮圖

你可以使用 v3 API 的 thumbnails.set 方法上傳自訂縮圖圖片,並設為影片縮圖。在要求中,videoId 參數的值會識別要使用縮圖的影片。

由於 APIs Explorer 不支援上傳媒體檔案,因此無法使用 APIs Explorer 測試這項查詢,而這是這個方法的要求。

相關程式碼範例:PHPPython

刪除影片

這個範例說明如何刪除影片。這個範例包含下列步驟:

  • 步驟 1:擷取影片 ID

    按照上述步驟擷取目前已驗證使用者頻道上傳的影片。這份清單可用於顯示影片清單,並以每個影片的 ID 做為鍵。

    注意:取得影片 ID 的方法有很多,例如擷取搜尋結果或列出播放清單中的項目。不過,由於只有影片擁有者才能刪除影片,因此在這個程序中,很可能要先擷取授權 API 要求的使用者所擁有的影片清單。

  • 步驟 2:刪除影片

    呼叫 videos.delete 方法即可刪除特定影片。在要求中,id 參數會指定要刪除的影片 ID。要求必須使用 OAuth 2.0 授權。如果您要在 APIs Explorer 中測試這項查詢,請務必將 id 參數值替換為有效的影片 ID。

    https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.videos.delete?
            id=VIDEO_ID
    

檢舉不當影片

以下範例說明如何檢舉含有不當內容的影片。這個範例包含下列步驟:

  • 步驟 1:擷取說明檢舉影片原因的 ID

    將授權要求傳送至 videoAbuseReportReasons.list 方法,即可擷取標記影片的有效原因清單。下方的範例 videoAbuseReportReason 資源包含標記含有垃圾內容或誤導性內容的影片時所需的資訊。

    {
      "kind": "youtube#videoAbuseReportReason",
      "etag": "\"tbWC5XrSXxe1WOAx6MK9z4hHSU8/Or2VqBIilpHU7j__oPzUFCvGVBw\"",
      "id": "S",
      "snippet": {
        "label": "Spam or misleading",
        "secondaryReasons": [
          {
            "id": "27",
            "label": "Spam or mass advertising"
          },
          {
            "id": "28",
            "label": "Misleading thumbnail"
          },
          {
            "id": "29",
            "label": "Malware or phishing"
          },
          {
            "id": "30",
            "label": "Pharmaceutical drugs for sale"
          },
          {
            "id": "31",
            "label": "Other misleading info"
          }
        ]
      }
    }

    如資源所示,這個原因與次要原因清單相關聯。檢舉影片含有垃圾內容時,您必須提供原因 ID,並強烈建議提供次要原因。

  • 步驟 2:檢舉影片含有濫用內容

    將授權要求傳送至 videos.reportAbuse 方法,實際檢舉影片。要求主體是 JSON 物件,可識別要檢舉的影片和檢舉原因。如步驟 1 所述,系統支援並強烈建議為某些類型的原因提供次要原因。

    JSON 物件的 videoId 屬性會指出要標記的影片。

    以下 JSON 物件範例會標記影片含有垃圾內容或誤導性內容,更具體來說,是使用誤導性縮圖。如上方的 JSON 物件範例所示,「垃圾內容或誤導性內容」的 ID 為「S」。「縮圖與內容不符」的 ID 為 28

    {
      "videoId": "VIDEO_ID",
      "reasonId": "S",
      "secondaryReasonId": "28",
      "comments": "Testing the video flagging feature.",
      "language": "en"
    }

    必須使用 OAuth 2.0 授權 videos.reportAbuse 要求。下方的連結會在 APIs Explorer 中載入上述 JSON 物件。如要測試查詢,請將 videoId 屬性值替換為有效的影片 ID。請注意,提交這項要求後,系統會實際檢舉影片。

    https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.videos.reportAbuse