下列範例說明如何使用 YouTube Data API (v3) 執行與影片相關的函式。
擷取頻道上傳的影片
這個範例會擷取上傳至特定頻道的影片。這個範例包含兩個步驟:
-
步驟 1:擷取頻道上傳影片的播放清單 ID
呼叫
channels.list
方法,擷取包含頻道上傳影片的播放清單 ID。要求的part
參數值必須包含contentDetails
,做為要擷取的channel
資源部分。在 API 回應中,contentDetails.relatedPlaylists.uploads
屬性包含播放清單 ID。你可以透過下列幾種方式找出頻道:
-
將
mine
參數值設為true
,即可擷取目前已驗證使用者 YouTube 頻道的資訊。您的要求必須使用 OAuth 2.0 授權。https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.channels.list? part=contentDetails &mine=true
-
將
forUsername
參數設為 YouTube 使用者名稱,即可擷取與該使用者名稱相關聯的頻道資訊。本範例將forUsername
參數值設為Google
,以擷取 Google 官方 YouTube 頻道的資訊。https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.channels.list? part=contentDetails &forUsername=Google
-
將
id
參數設為 YouTube 頻道 ID,這個 ID 可做為您要擷取資訊的頻道專屬 ID。這個範例將id
參數設為UCK8sQmJBp8GCxrOtXWBpyEA
,這也是 Google 的官方 YouTube 頻道。https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.channels.list? part=contentDetails &id=UCK8sQmJBp8GCxrOtXWBpyEA
-
-
步驟 2:擷取已上傳影片的清單
呼叫
playlistItems.list
方法,擷取已上傳影片的清單。將playlistId
參數的值設為步驟 1 中取得的值。在本例中,參數值設為UUK8sQmJBp8GCxrOtXWBpyEA
,也就是上傳至 Google 官方 YouTube 頻道的影片清單。https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.playlistItems.list? part=snippet,contentDetails,status &playlistId=UUK8sQmJBp8GCxrOtXWBpyEA
擷取最熱門的影片
本例示範如何擷取 YouTube 最熱門的影片清單。這類影片是透過演算法選出,該演算法會結合多種信號,判斷影片的整體熱門程度。
如要擷取熱門影片清單,請呼叫 videos.list
方法,並將 chart
參數的值設為 mostPopular
。
mostPopular
排行榜包含發燒音樂、電影和遊戲影片。
接著,您可以視需要設定下列參數:
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 ®ionCode=es &videoCategoryId=17
上傳影片
由於 API 探索工具不支援上傳檔案,因此這份說明不會連結至可執行的範例。下列資源可協助您修改應用程式,以便使用 v3 API 上傳影片:
-
API 的 videos.insert 方法說明文件包含多個程式碼範例,說明如何使用不同程式設計語言上傳影片。
-
支援續傳的上傳作業指南說明應用程式用來透過支援續傳的上傳程序上傳影片的 HTTP 要求順序。本指南主要適用於無法使用 Google API 用戶端程式庫的開發人員,因為部分程式庫原生支援可恢復上傳功能。
-
上傳影片的 JavaScript 範例會使用 CORS (跨源資源共用),示範如何透過網頁上傳影片檔案。第 3 版 API 使用的 CORS 上傳程式庫自然支援可續傳的上傳作業。此外,這個範例也示範如何擷取
video
資源的processingDetails
部分,藉此檢查上傳影片的狀態,以及如何處理上傳影片的狀態變更。
查看上傳影片的狀態
這個範例說明如何檢查已上傳影片的狀態。上傳的影片會立即顯示在已驗證使用者的上傳影片動態消息中。不過,影片處理完畢後才會在 YouTube 上顯示。
-
步驟 1:上傳影片
呼叫
videos.insert
方法來上傳影片。如果要求成功,API 回應會包含video
資源,當中會列出上傳影片的專屬影片 ID。 -
步驟 2:查看影片狀態
呼叫
videos.list
方法,查看影片狀態。將id
參數的值設為步驟 1 中取得的影片 ID。將part
參數的值設為processingDetails
。如果要求處理成功,API 回應會包含
video
資源。檢查processingDetails.processingStatus
屬性的值,判斷 YouTube 是否仍在處理影片。YouTube 處理完影片後,屬性的值會變更為processing
以外的值,例如succeeded
或failed
。要求主體是
video
資源,其中的id
屬性會指定要刪除的影片 ID。在本例中,資源也包含recordingDetails
物件。以下要求會檢查影片的狀態。如要在 APIs Explorer 中完成要求,請設定
id
屬性的值。https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.videos.list? part=snippet,processingDetails &id=VIDEO_ID
注意:應用程式可以輪詢 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 測試這項查詢,而這是這個方法的要求。
刪除影片
這個範例說明如何刪除影片。這個範例包含下列步驟:
-
步驟 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:檢舉影片含有濫用內容
將授權要求傳送至
JSON 物件的videos.reportAbuse
方法,實際檢舉影片。要求主體是 JSON 物件,可識別要檢舉的影片和檢舉原因。如步驟 1 所述,系統支援並強烈建議為某些類型的原因提供次要原因。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