Các ví dụ sau đây cho thấy cách sử dụng YouTube Data API (v3) để thực hiện các chức năng liên quan đến video.
Truy xuất video đã tải lên của một kênh
Ví dụ này truy xuất các video đã tải lên một kênh cụ thể. Ví dụ này có 2 bước:
-
Bước 1: Truy xuất mã nhận dạng danh sách phát cho video đã tải lên của kênh
Gọi phương thức
channels.listđể truy xuất mã nhận dạng của danh sách phát chứa các video đã tải lên của kênh. Giá trị tham sốpartcủa yêu cầu phải bao gồmcontentDetailslàm một trong các phần tài nguyênchannelđang được truy xuất. Trong phản hồi của API, thuộc tínhcontentDetails.relatedPlaylists.uploadschứa mã nhận dạng danh sách phát.Có một số cách để xác định kênh:
-
Đặt giá trị tham số
minethànhtrueđể truy xuất thông tin cho kênh YouTube của người dùng hiện được xác thực. Bạn phải uỷ quyền cho yêu cầu bằng OAuth 2.0.https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.channels.list? part=contentDetails &mine=true
-
Đặt tham số
forUsernamethành tên người dùng trên YouTube để truy xuất thông tin cho kênh được liên kết với tên người dùng đó. Ví dụ này đặt giá trị tham sốforUsernamethànhGoogleđể truy xuất thông tin cho kênh YouTube chính thức của Google.https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.channels.list? part=contentDetails &forUsername=Google
-
Đặt tham số
idthành mã nhận dạng kênh YouTube xác định duy nhất kênh mà bạn đang truy xuất thông tin. Ví dụ này đặt tham sốidthànhUCK8sQmJBp8GCxrOtXWBpyEA. Mã này cũng xác định kênh YouTube chính thức của Google.https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.channels.list? part=contentDetails &id=UCK8sQmJBp8GCxrOtXWBpyEA
-
-
Bước 2: Truy xuất danh sách video đã tải lên
Gọi phương thức
playlistItems.listđể truy xuất danh sách video đã tải lên. Đặt giá trị tham sốplaylistIdthành giá trị nhận được ở bước 1. Trong ví dụ này, giá trị tham số được đặt thànhUUK8sQmJBp8GCxrOtXWBpyEA. Đây là danh sách video đã tải lên kênh YouTube chính thức của Google.https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.playlistItems.list? part=snippet,contentDetails,status &playlistId=UUK8sQmJBp8GCxrOtXWBpyEA
Truy xuất các video phổ biến nhất
Ví dụ này cho thấy cách truy xuất danh sách các video phổ biến nhất trên YouTube. Các video này được chọn bằng một thuật toán kết hợp nhiều tín hiệu khác nhau để xác định mức độ phổ biến tổng thể.
Để truy xuất danh sách các video phổ biến nhất, hãy gọi phương thức videos.list và đặt giá trị tham số chart thành mostPopular.
Bảng xếp hạng mostPopular bao gồm các video âm nhạc, phim và video trò chơi đang thịnh hành.
Sau đó, bạn có thể tuỳ ý đặt các tham số sau:
regionCode: Hướng dẫn API trả về danh sách video cho khu vực được chỉ định. Giá trị tham số là mã quốc gia theo ISO 3166-1 alpha-2. Bạn có thể sử dụng phương thứci18nRegions.listđể truy xuất danh sách mã khu vực mà YouTube hỗ trợ.videoCategoryId: Xác định danh mục video mà bạn muốn truy xuất các video phổ biến nhất. Bạn có thể sử dụng phương thứcvideoCategories.listđể truy xuất danh sách mã danh mục mà YouTube hỗ trợ.
Ví dụ: yêu cầu sau đây truy xuất các video thể thao phổ biến nhất ở Tây Ban Nha:
https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.videos.list? part=snippet &chart=mostPopular ®ionCode=es &videoCategoryId=17
Truy xuất số liệu thống kê hàng loạt về video
Ví dụ này truy xuất số liệu thống kê cho một danh sách video bằng phương thức videos.batchGetStats.
Để sử dụng phương thức này, hãy đặt tham số id của yêu cầu thành danh sách gồm nhiều mã nhận dạng video trên YouTube được phân tách bằng dấu phẩy mà bạn muốn truy xuất số liệu thống kê. Đặt giá trị tham số part thành danh sách được phân tách bằng dấu phẩy gồm các phần tài nguyên videoStat mà bạn muốn phản hồi bao gồm. Các phần được hỗ trợ là snippet, statistics, contentDetails và id.
Bạn phải xác thực để sử dụng phương thức này đối với các video không công khai, nhưng không bắt buộc đối với các video công khai. Nếu yêu cầu truy xuất dữ liệu cho bất kỳ video không công khai nào, thì yêu cầu đó phải được uỷ quyền đúng cách.
Yêu cầu bên dưới truy xuất số liệu thống kê cho các mã nhận dạng video VIDEO_ID_1 và VIDEO_ID_2:
https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.videos.batchGetStats? part=snippet,statistics &id=VIDEO_ID_1,VIDEO_ID_2
Tải video lên
Vì Trình khám phá API không hỗ trợ tính năng tải tệp lên, nên phần mô tả này không liên kết đến một ví dụ có thể thực thi. Các tài nguyên sau đây sẽ giúp bạn sửa đổi ứng dụng để ứng dụng có thể tải video lên bằng API v3:
-
Tài liệu về phương thức videos.insert của API chứa một số mã mẫu giải thích cách tải video lên bằng nhiều ngôn ngữ lập trình.
-
Hướng dẫn về tính năng Tải lên có thể tiếp tục giải thích trình tự các yêu cầu HTTP mà một ứng dụng sử dụng để tải video lên bằng quy trình tải lên có thể tiếp tục. Hướng dẫn này chủ yếu dành cho những nhà phát triển không thể sử dụng thư viện ứng dụng API của Google. Một số thư viện trong số này cung cấp tính năng hỗ trợ gốc cho các lượt tải lên có thể tiếp tục.
-
Ví dụ về JavaScript để tải video lên sử dụng CORS (chia sẻ tài nguyên khác nguồn gốc) nhằm minh hoạ cách tải tệp video lên thông qua một trang web. Thư viện tải lên CORS mà API v3 sử dụng hỗ trợ tự nhiên tính năng tải lên có thể tiếp tục. Ngoài ra, ví dụ này minh hoạ cách kiểm tra trạng thái của một video đã tải lên bằng cách truy xuất phần
processingDetailscủa tài nguyênvideo, cũng như cách xử lý các thay đổi về trạng thái cho video đã tải lên.
Kiểm tra trạng thái của một video đã tải lên
Ví dụ này cho thấy cách kiểm tra trạng thái của một video đã tải lên. Video đã tải lên sẽ xuất hiện ngay lập tức trong nguồn cấp dữ liệu video đã tải lên của người dùng được xác thực. Tuy nhiên, video sẽ không xuất hiện trên YouTube cho đến khi được xử lý.
-
Bước 1: Tải video lên
Gọi phương thức
videos.insertđể tải video lên. Nếu yêu cầu thành công, phản hồi của API sẽ chứa một tài nguyênvideoxác định mã nhận dạng video duy nhất cho video đã tải lên. -
Bước 2: Kiểm tra trạng thái của video
Gọi phương thức
videos.listđể kiểm tra trạng thái của video. Đặt giá trị tham sốidthành mã nhận dạng video nhận được ở bước 1. Đặt giá trị tham sốpartthànhprocessingDetails.Nếu yêu cầu được xử lý thành công, phản hồi của API sẽ chứa một tài nguyên
video. Kiểm tra giá trị của thuộc tínhprocessingDetails.processingStatusđể xác định xem YouTube có đang xử lý video hay không. Giá trị của thuộc tính sẽ thay đổi thành một giá trị khácprocessing, chẳng hạn nhưsucceededhoặcfailed, khi YouTube đã xử lý xong video.Nội dung yêu cầu là một tài nguyên
videotrong đó thuộc tínhidchỉ định mã nhận dạng video của video mà bạn đang xoá. Trong ví dụ này, tài nguyên cũng chứa một đối tượngrecordingDetails.Yêu cầu bên dưới kiểm tra trạng thái của một video. Để hoàn tất yêu cầu trong APIs Explorer, bạn cần đặt giá trị của thuộc tính
id.https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.videos.list? part=snippet,processingDetails &id=VIDEO_ID
Lưu ý: Ứng dụng của bạn có thể thăm dò API để định kỳ kiểm tra trạng thái của một video mới tải lên. Sau khi video được xử lý, ứng dụng của bạn có thể tạo một thông báo hoặc tiến hành một hành động khác tuỳ thuộc vào trạng thái của video.
Cập nhật video
Ví dụ này cho thấy cách cập nhật video để thêm thông tin về thời gian và địa điểm quay video. Ví dụ này có các bước sau:
-
Bước 1: Truy xuất mã nhận dạng video
Làm theo các bước ở trên để truy xuất video đã tải lên cho kênh của người dùng hiện được xác thực. Bạn có thể sử dụng danh sách này để hiển thị danh sách video, sử dụng mã nhận dạng của từng video làm khoá.
Lưu ý: Có nhiều cách khác để lấy mã nhận dạng video, chẳng hạn như truy xuất kết quả tìm kiếm hoặc liệt kê các mục trong danh sách phát. Tuy nhiên, vì chỉ chủ sở hữu mới có thể cập nhật video, nên việc truy xuất danh sách video do người dùng uỷ quyền cho yêu cầu API sở hữu là bước đầu tiên có thể xảy ra trong quy trình này.
-
Bước 2: Cập nhật video
Gọi phương thức
videos.updateđể cập nhật một video cụ thể. Đặt giá trị tham sốpartthànhrecordingDetails. (Giá trị tham số phụ thuộc vào các trường siêu dữ liệu của video đang được cập nhật.)Nội dung yêu cầu là một tài nguyên
videotrong đó thuộc tínhidchỉ định mã nhận dạng video của video mà bạn đang cập nhật. Trong ví dụ này, tài nguyên cũng chứa một đối tượngrecordingDetails.Tài nguyên mẫu bên dưới cho biết video được quay vào ngày 30 tháng 10 năm 2013 tại Boston:
{ "id": "VIDEO_ID", "recordingDetails": { "location": { "latitude": "42.3464", "longitude": "-71.0975" } "recordingDate": "2013-10-30T23:15:00.000Z" } }Để hoàn tất yêu cầu trong APIs Explorer, bạn cần đặt giá trị của thuộc tính
id.https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.videos.update? part=snippet
Quản lý quyền truy cập cho đối tác thương hiệu (Quyền truy cập cho đối tác thương hiệu do nhà sáng tạo cấp)
Quyền truy cập cho đối tác thương hiệu do nhà sáng tạo cấp (CI BPA) cho phép chủ sở hữu video chia sẻ quyền truy cập vào video của họ với kênh đối tác thương hiệu. Bạn cần có phần brandPartner.
Thiết lập quyền truy cập (Chèn)
Để thiết lập quyền truy cập khi tải video lên, hãy thêm brandPartner vào tham số part và cung cấp đối tượng brandPartner trong nội dung yêu cầu. Bạn phải chỉ định channelId (mã nhận dạng kênh bên ngoài bắt đầu bằng "UC") hoặc channelHandle (bắt đầu bằng "@") để xác định kênh thương hiệu.
POST /youtube/v3/videos?part=snippet,status,brandPartner { "snippet": { "title": "Video Title", "description": "Video Description", "categoryId": "22" }, "status": { "privacyStatus": "private" }, "brandPartner": { "channelHandle": "@brandchannel" } }
Chỉ channelId đã phân giải mới được trả về trong phản hồi.
Cập nhật hoặc xoá quyền truy cập (Cập nhật)
Để cập nhật quyền truy cập vào một kênh thương hiệu khác hoặc để xoá quyền truy cập, hãy gọi phương thức videos.update bằng brandPartner trong tham số part.
Để thay thế quyền truy cập, hãy cung cấp channelId hoặc channelHandle mới trong nội dung yêu cầu:
PUT /youtube/v3/videos?part=brandPartner
{
"id": "VIDEO_ID",
"brandPartner": {
"channelId": "UC_SOME_BRAND_CHANNEL_ID"
}
}Để xoá quyền truy cập, hãy gửi yêu cầu có brandPartner trong tham số part, nhưng có đối tượng brandPartner trống trong nội dung yêu cầu:
PUT /youtube/v3/videos?part=brandPartner
{
"id": "VIDEO_ID",
"brandPartner": {}
}Tải hình thu nhỏ tuỳ chỉnh lên và đặt cho video
Bạn có thể sử dụng phương thức thumbnails.set của API v3 để tải hình thu nhỏ tuỳ chỉnh lên và đặt cho video. Trong yêu cầu của bạn, giá trị tham số videoId xác định video mà bạn sẽ sử dụng hình thu nhỏ.
Bạn không thể kiểm thử truy vấn này bằng APIs Explorer vì APIs Explorer không hỗ trợ tính năng tải tệp nội dung đa phương tiện lên. Đây là yêu cầu đối với phương thức này.
Xoá video
Ví dụ này cho thấy cách xoá video. Ví dụ này có các bước sau:
-
Bước 1: Truy xuất mã nhận dạng video
Làm theo các bước ở trên để truy xuất video đã tải lên cho kênh của người dùng hiện được xác thực. Bạn có thể sử dụng danh sách này để hiển thị danh sách video, sử dụng mã nhận dạng của từng video làm khoá.
Lưu ý: Có nhiều cách khác để lấy mã nhận dạng video, chẳng hạn như truy xuất kết quả tìm kiếm hoặc liệt kê các mục trong danh sách phát. Tuy nhiên, vì chỉ chủ sở hữu mới có thể xoá video, nên việc truy xuất danh sách video do người dùng uỷ quyền cho yêu cầu API sở hữu là bước đầu tiên có thể xảy ra trong quy trình này.
-
Bước 2: Xoá video
Gọi phương thức
videos.deleteđể xoá một video cụ thể. Trong yêu cầu, tham sốidchỉ định mã nhận dạng video của video mà bạn đang xoá. Bạn phải uỷ quyền cho yêu cầu bằng OAuth 2.0. Nếu đang kiểm thử truy vấn này trong Trình khám phá API, bạn cần thay thế giá trị tham sốidbằng một mã nhận dạng video hợp lệ.https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.videos.delete? id=VIDEO_ID
Báo cáo video có nội dung phản cảm
Ví dụ này cho thấy cách báo cáo một video có nội dung vi phạm. Ví dụ này có các bước sau:
-
Bước 1: Truy xuất mã nhận dạng giải thích lý do báo cáo video
Gửi yêu cầu được uỷ quyền đến phương thức
videoAbuseReportReasons.listđể truy xuất danh sách các lý do hợp lệ để gắn cờ video. Tài nguyênvideoAbuseReportReasonmẫu bên dưới chứa thông tin để gắn cờ một video có nội dung rác hoặc nội dung gây hiểu lầm.{ "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" } ] } }Như trong tài nguyên, lý do này được liên kết với danh sách các lý do phụ. Khi gắn cờ một video có nội dung rác, bạn cần cung cấp mã nhận dạng cho lý do đó và nên cung cấp cả lý do phụ.
-
Bước 2: Gắn cờ video có nội dung vi phạm
Gửi yêu cầu được uỷ quyền đến phương thức
Thuộc tínhvideos.reportAbuseđể thực sự báo cáo video. Nội dung yêu cầu là một đối tượng JSON xác định cả video đang được gắn cờ và lý do gắn cờ. Như đã lưu ý ở bước 1, đối với một số loại lý do, bạn có thể cung cấp lý do phụ và nên cung cấp lý do phụ.videoIdcủa đối tượng JSON xác định video đang được gắn cờ.Đối tượng JSON mẫu bên dưới gắn cờ một video có nội dung rác hoặc nội dung gây hiểu lầm và cụ thể hơn là sử dụng hình thu nhỏ gây hiểu lầm. Như trong đối tượng JSON mẫu ở trên, mã nhận dạng cho nội dung Rác hoặc gây hiểu lầm là S. Mã nhận dạng cho Hình thu nhỏ gây hiểu lầm là 28.
{ "videoId": "VIDEO_ID", "reasonId": "S", "secondaryReasonId": "28", "comments": "Testing the video flagging feature.", "language": "en" }Bạn phải uỷ quyền cho yêu cầu
videos.reportAbusebằng OAuth 2.0. Đường liên kết bên dưới tải đối tượng JSON ở trên trong APIs Explorer. Để kiểm thử truy vấn, bạn cần thay thế giá trị thuộc tínhvideoIdbằng một mã nhận dạng video hợp lệ. Xin lưu ý rằng việc gửi yêu cầu này sẽ thực sự gắn cờ video.https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.videos.reportAbuse