Triển khai: Video

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:

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ức i18nRegions.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ức videoCategories.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
        &regionCode=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 processingDetails của tài nguyên video, 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ên video xá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ố id thành mã nhận dạng video nhận được ở bước 1. Đặt giá trị tham số part thành processingDetails.

    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ính processingDetails.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ác processing, chẳng hạn như succeeded hoặc failed, khi YouTube đã xử lý xong video.

    Nội dung yêu cầu là một tài nguyên video trong đó thuộc tính id chỉ đị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ượng recordingDetails.

    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ố part thành recordingDetails. (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 video trong đó thuộc tính id chỉ đị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ượng recordingDetails.

    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

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.

Mã mẫu liên quan: PHP, Python

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ố id chỉ đị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ố id bằ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ên videoAbuseReportReason mẫ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 videos.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ụ.

    Thuộc tính videoId củ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.reportAbuse bằ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ính videoId bằ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