Vòng đời của một tính năng Truyền phát

Giới thiệu

Tài liệu này hướng dẫn bạn về vòng đời của một sự kiện phát sóng trực tiếp trên YouTube được tạo và quản lý bằng API Phát trực tiếp trên YouTube và API Content ID của YouTube.

Tài nguyên và loại tài nguyên

Như đã giải thích trong hướng dẫn bắt đầu, tài nguyên là một thực thể dữ liệu riêng lẻ có giá trị nhận dạng riêng biệt. Để tạo và quản lý các sự kiện trực tiếp trên YouTube, bạn sẽ sử dụng một số loại tài nguyên khác nhau được xác định trong YouTube Data API hoặc YouTube Content ID API. Các tài nguyên được liệt kê trong tiêu đề API phát trực tiếp trên YouTube được xác định về mặt kỹ thuật trong các API khác, nhưng được liệt kê riêng vì chúng chỉ được dùng cho các chương trình phát sóng trực tiếp.

Tài nguyên về API Phát trực tiếp trên YouTube

Tài nguyên về YouTube Data API

Tài nguyên về API Content ID của YouTube

Tạo và quản lý chương trình phát sóng trực tiếp

Các bước sau đây giải thích cách tạo và quản lý sự kiện phát trực tiếp trên YouTube. Các bước được chia thành các giai đoạn sau:

  1. Thiết lập chương trình phát sóng
  2. Xác nhận quyền sở hữu nội dung của bạn
  3. Kiểm thử
  4. Truyền tin
  5. Kết thúc buổi phát sóng
  6. Tạo tệp đối chiếu

Giai đoạn 1: Thiết lập chương trình phát sóng

Bước 1.1: Tạo chương trình phát sóng

Gọi phương thức liveBroadcasts.insert để thêm chương trình phát sóng của bạn vào lịch phát sóng trực tiếp của YouTube. Tài nguyên liveBroadcast mà bạn đang chèn phải xác định các giá trị cho những thuộc tính được liệt kê bên dưới.

Vui lòng xem xét các nguyên tắc sau khi thiết lập chương trình phát sóng:

  • Nếu muốn có giai đoạn thử nghiệm cho chương trình phát sóng, trong đó bạn có thể xem chương trình phát sóng video của mình mà những người xem khác không thể xem, thì bạn phải đặt thuộc tính contentDetails.monitorStream.enableMonitorStream thành true và thuộc tính contentDetails.enableAutoStart thành false. Đây là các giá trị mặc định cho cả hai thuộc tính.

  • Nếu muốn tạo một tệp đối chiếu từ chương trình phát sóng đã ghi hình, bạn phải đặt thuộc tính contentDetails.recordFromStart của chương trình phát sóng thành true. Nếu muốn cung cấp video đã ghi để phát ngay sau khi sự kiện phát sóng kết thúc, bạn cũng phải đặt thuộc tính contentDetails.enableDvr thành true. (Cả hai thuộc tính này đều có giá trị mặc định là true.)

  • Nếu muốn hạn chế khu vực có thể xem chương trình phát sóng, bạn có thể đặt thuộc tính contentDetails.availabilityConfig. Thuộc tính này cho phép bạn chặn một số khu vực cụ thể hoặc giới hạn phạm vi cung cấp cho một danh sách khu vực được xác định. Bạn cũng có thể chỉ định khoảng thời gian cho tình trạng còn hàng theo khu vực.

  • Bạn có thể chỉ định danh mục video cho sự kiện phát sóng bằng thuộc tính snippet.categoryId. Nếu không được chỉ định, danh mục sẽ mặc định là Entertainment.

  • Bạn có thể cập nhật bất kỳ thuộc tính nào của contentDetails miễn là trạng thái của sự kiện phát sóng vẫn là created hoặc ready.

  • Bạn có thể cập nhật thời gian bắt đầu và thời gian kết thúc theo lịch của sự kiện phát sóng, miễn là trạng thái của sự kiện phát sóng là created, ready hoặc testing.

  • Bạn có thể cập nhật tiêu đề, nội dung mô tả, danh mục, trạng thái riêng tư và các trường siêu dữ liệu khác thuộc tài nguyên video của chương trình phát sóng bất cứ lúc nào.

    Lưu ý: Nếu bạn chỉ muốn video của mình xuất hiện với một số người dùng YouTube cụ thể, hãy đặt giá trị thuộc tính status.privacyStatus thành unlisted hoặc private (tuỳ theo nhu cầu của bạn).

Xử lý phản hồi của API

Khi bạn gọi phương thức liveBroadcasts.insert, phản hồi của API sẽ chứa tài nguyên liveBroadcast mà bạn đã tạo. Mã của bạn phải trích xuất và lưu trữ id từ tài nguyên đó. Bạn sẽ cần giá trị đó để xác định sự kiện phát sóng trong các yêu cầu API sau này. (Bạn cũng có thể xác định tài nguyên video tương ứng với tài nguyên liveBroadcast bằng cùng một mã nhận dạng.)

Bước 1.2: Tạo sự kiện phát trực tiếp

Tài nguyên liveStream cho phép bạn truyền video đến YouTube và mô tả nội dung bạn đang truyền. Mỗi sự kiện phát sóng phải được liên kết với đúng một sự kiện phát trực tiếp.

Gọi phương thức liveStreams.insert để tạo luồng video cho sự kiện của bạn. Khi tạo luồng, bạn phải đặt giá trị cho các thuộc tính được liệt kê dưới đây:

Ngoại trừ tiêu đề của sự kiện phát trực tiếp, bạn không thể cập nhật các giá trị này sau khi tạo sự kiện phát trực tiếp. Nếu cần thay đổi các thông tin này, bạn phải tạo một luồng khác bằng cách lặp lại bước này. Quy trình này được thảo luận chi tiết hơn trong bước 3.5 ở phần sau của tài liệu này.

Bạn cũng có thể đặt giá trị cho các thuộc tính sau:

  • snippet.description – Giống như tiêu đề, bạn có thể cập nhật nội dung mô tả của sự kiện phát trực tiếp sau khi tạo sự kiện. Người dùng YouTube sẽ không nhìn thấy tiêu đề và nội dung mô tả.
  • [contentDetails.isReusable](

    /youtube/data/live/reference/rest/v3/liveStreams#contentDetails.isReusable)

    Cho biết liệu luồng có thể dùng lại hay không, tức là có thể liên kết với nhiều chương trình phát sóng. Giá trị của thuộc tính này xác định một cách hiệu quả xem kênh có mối quan hệ nhiều với một hay một với một giữa tài nguyên liveBroadcast và liveStream hay không:

    • Nếu sử dụng giá trị mặc định true của thuộc tính, thì bạn có thể dùng cùng một tài nguyên liveStream cho tất cả chương trình phát sóng của một kênh. Điều đó có nghĩa là bạn không cần lặp lại bước này (1.2) cho mỗi lần phát sóng. Thay vào đó, bạn chỉ cần sử dụng lại mã nhận dạng luồng cho các chương trình phát sóng tiếp theo.
    • Nếu đặt giá trị thuộc tính thành false, thì bạn cần tạo một luồng mới cho mỗi chương trình phát sóng.

Sau khi bạn đưa ra yêu cầu API cho sự kiện phát trực tiếp, phản hồi của API sẽ chứa tài nguyên liveStream mà bạn đã tạo. Mã của bạn phải trích xuất và lưu trữ id từ tài nguyên đó. Bạn sẽ cần giá trị đó để xác định luồng trong các yêu cầu API sau này.

Bước 1.3: Liên kết chương trình phát sóng với luồng phát

Sau khi tạo tài nguyên liveBroadcast và liveStream, giờ đây, bạn cần liên kết hai tài nguyên này bằng phương thức liveBroadcasts.bind. Thao tác này sẽ liên kết các đoạn video mà bạn sẽ truyền đến YouTube với sự kiện phát sóng của video đó.

Khi gọi phương thức liveBroadcasts.bind, hãy đặt tham số id thành mã sự kiện phát sóng thu được ở bước 1.1 và tham số streamId thành mã sự kiện phát trực tiếp thu được ở bước 1.2.

Giai đoạn 2: Xác nhận quyền sở hữu nội dung

Nếu muốn hiển thị quảng cáo trong chương trình phát sóng, bạn cần xác nhận quyền sở hữu video phát sóng trước khi sự kiện bắt đầu. Hãy làm theo các bước sau để thiết lập chương trình phát sóng, video và quảng cáo của chương trình phát sóng. Xin lưu ý rằng kênh của chủ sở hữu sự kiện phát sóng phải đủ điều kiện để hiển thị quảng cáo.

Xin lưu ý rằng tất cả lệnh gọi API được thảo luận trong giai đoạn này đều được xác định trong YouTube Content ID API.

Bước 2.1: Tạo tài sản

Tài nguyên asset đại diện cho một tài sản trí tuệ. Trong trường hợp này, tài sản là chương trình phát sóng của bạn. Gọi phương thức assets.insert để tạo thành phần của bạn.

Phản hồi của API sẽ chứa tài nguyên asset mà bạn đã tạo. Mã của bạn phải trích xuất và lưu trữ id từ tài nguyên đó vì bạn sẽ cần giá trị đó để xác định tài sản trong các yêu cầu API sau này.

Bước 2.2: Xác định quyền sở hữu đối với thành phần

Dữ liệu về quyền sở hữu tài sản xác định chủ sở hữu của tài sản cũng như các lãnh thổ nơi họ sở hữu tài sản đó. YouTube sử dụng dữ liệu này để xác định nơi mà chủ sở hữu có thể đặt chính sách cho một video đã được xác nhận quyền sở hữu.

Ví dụ: Nếu bạn có quyền phát sóng một sự kiện ở Hoa Kỳ và một đài truyền hình khác có quyền tương tự ở Canada, thì mỗi bên có thể xác định các chính sách khác nhau cho video phát sóng và cho video do người dùng tải lên khớp với video phát sóng. Chính sách trùng khớp của bạn sẽ áp dụng cho các video trùng khớp do người dùng tải lên ở Hoa Kỳ, còn chính sách của chủ sở hữu kia sẽ áp dụng cho các video trùng khớp ở Canada.

Để xác định lãnh thổ sở hữu của bạn cho tài sản, hãy gọi phương thức ownership.update. Trong yêu cầu đó, hãy đặt tham số assetId thành id mà bạn đã lưu trữ ở bước 2.1.

Bước 2.3: Đặt chính sách trùng khớp của tài sản

Chính sách trùng khớp của tài sản giải thích việc YouTube nên làm khi người dùng tải lên một video trùng khớp với tệp đối chiếu liên kết với tài sản đó. Trong trường hợp này, chính sách trùng khớp sẽ cho biết cách YouTube xử lý video được tải lên và trùng khớp với sự kiện phát sóng trực tiếp của bạn.

Lưu ý: Bạn nên đặt chính sách trùng khớp nếu dự định tạo tệp đối chiếu từ video phát sóng và dùng tệp đối chiếu đó để xác định những video do người dùng tải lên có nội dung trùng khớp với video phát sóng của bạn. Nếu không, bạn có thể bỏ qua bước này.

Để đặt chính sách trùng khớp, trước tiên, bạn cần xác định chính sách mà bạn muốn áp dụng. Bạn có thể truy xuất danh sách các chính sách hiện có bằng cách gọi phương thức policies.list hoặc bạn có thể xác định một chính sách mới bằng cách gọi phương thức policies.insert. Trong cả hai trường hợp, bạn cần nắm bắt id của chính sách mà bạn muốn áp dụng.

Sau khi xác định được chính sách, hãy gọi phương thức assetMatchPolicy.update. Trong yêu cầu đó, hãy đặt tham số assetId thành id mà bạn đã lưu trữ ở bước 2.1.

Bước 2.4: Xác nhận quyền sở hữu video

Trong bước này, bạn tạo một thông báo xác nhận quyền sở hữu, liên kết video mà bạn sẽ phát sóng với tài sản mà bạn đã tạo ở bước 2.1. Thông báo xác nhận quyền sở hữu này đặt ra một chính sách chỉ áp dụng cho video phát sóng của bạn. (Video do người dùng tải lên và trùng khớp với video phát sóng của bạn sẽ được áp dụng chính sách trùng khớp mà bạn đã đặt ở bước trước.)

Để tạo thông báo xác nhận quyền sở hữu, hãy gọi phương thức claims.insert. Trong tài nguyên claim mà bạn chèn, bạn cần đặt giá trị cho các thuộc tính sau:

  • assetId – Bạn đã nhận được giá trị này ở bước 2.1.
  • videoId – Đây là mã nhận dạng chương trình phát sóng mà bạn đã nhận được ở bước 1.1.
  • policy – Đây là tài nguyên policy. Bạn có thể áp dụng một chính sách hiện có bằng cách đặt thuộc tính id của tài nguyên đó thành mã nhận dạng của chính sách hiện có. Bước trước đó giải thích cách truy xuất mã nhận dạng của một chính sách hiện có.
  • contentType – Đặt giá trị này thành audiovisual.

Xử lý phản hồi của API

Khi bạn chèn thông báo xác nhận quyền sở hữu, phản hồi của API sẽ chứa tài nguyên claim mà bạn đã tạo. Mã của bạn phải trích xuất và lưu trữ id từ tài nguyên đó. Sau này, bạn sẽ dùng giá trị đó để tạo một tệp đối chiếu từ video đã xử lý.

Bước 2.5: Cập nhật chế độ cài đặt quảng cáo cho sự kiện phát sóng

Bạn cần đặt các lựa chọn quảng cáo cho video của mình nếu muốn chạy quảng cáo trước video khi người xem bắt đầu xem chương trình phát sóng hoặc chạy quảng cáo trong thời gian nghỉ của chương trình phát sóng.

  • Nếu bạn bật quảng cáo trước video cho chương trình phát sóng, thì tất cả người xem sẽ thấy quảng cáo khi bắt đầu xem chương trình phát sóng, ngay cả khi họ bắt đầu xem vào giữa chương trình phát sóng.
  • Nếu bật quảng cáo trong video cho chương trình phát sóng, bạn sẽ có thể chèn điểm chèn quảng cáo trong chương trình phát sóng.

Để bật quảng cáo, hãy gọi phương thức videoAdvertisingOptions.update. Trong yêu cầu, hãy đặt tham số videoId thành id của sự kiện phát sóng mà bạn nhận được ở bước 1.1. Sử dụng thuộc tính adFormats[] của tài nguyên videoAdvertisingOption để xác định các định dạng quảng cáo (preroll, midroll hoặc postroll) mà bạn muốn bật.

Giai đoạn 3: Kiểm thử

Trong giai đoạn này, bạn nhúng một trình phát cho thấy luồng giám sát cho chương trình phát sóng của mình để có thể kiểm tra trải nghiệm xem. Luồng giám sát là một luồng riêng tư cho phép bạn xem trước video phát sóng như cách video đó xuất hiện cho YouTube Viewers.

Xin lưu ý rằng bạn chỉ có thể thử nghiệm chương trình phát sóng video nếu luồng giám sát của chương trình đó được bật. Theo mặc định, luồng giám sát của chương trình phát sóng sẽ được bật. Bạn có thể tắt luồng giám sát của một sự kiện phát sóng bằng cách đặt thuộc tính contentDetails.monitorStream.enableMonitorStream thành false khi tạo hoặc cập nhật sự kiện phát sóng đó.

Bước 3.1: Nhúng trình phát luồng giám sát

Truy xuất sự kiện phát sóng bằng phương thức liveBroadcasts.list và trích xuất giá trị của thuộc tính contentDetails.streamDetails.monitorStreamEmbedHtml. Giá trị đó chứa HTML mà bạn cần để nhúng một trình phát YouTube cho thấy luồng giám sát của bạn.

Bước 3.2: Bắt đầu video

Bắt đầu truyền video trên luồng video của bạn.

Bước 3.3: Xác nhận rằng luồng video của bạn đang hoạt động

Gọi phương thức liveStreams.list để truy xuất tài nguyên liveStream liên kết với sự kiện phát sóng của bạn. Xác nhận rằng giá trị của thuộc tính status.streamStatus là active. Giá trị này cho biết máy chủ YouTube đang nhận dữ liệu từ bộ mã hoá của bạn một cách chính xác.

Bước 3.4: Chuyển trạng thái của sự kiện phát sóng sang trạng thái thử nghiệm

Gọi phương thức liveBroadcasts.transition để cập nhật trạng thái của sự kiện phát sóng. Đặt giá trị tham số id thành mã nhận dạng sự kiện phát sóng nhận được ở bước 1.1 và đặt giá trị tham số broadcastStatus thành testing.

Sau khi bạn gọi phương thức liveBroadcasts.transition, có thể mất vài giây hoặc thậm chí đến một phút để quá trình chuyển đổi đó hoàn tất. Trong thời gian đó, bạn nên thăm dò API để kiểm tra trạng thái của sự kiện phát sóng. Cho đến khi quá trình chuyển đổi hoàn tất, trạng thái của chương trình phát sóng sẽ là testStarting. Trạng thái sẽ là testing sau khi quá trình chuyển đổi hoàn tất.

Bước 3.5: Hoàn tất quy trình kiểm thử

Nếu quá trình thử nghiệm diễn ra suôn sẻ, bạn có thể chuyển sang giai đoạn 4. Tuy nhiên, trong một số trường hợp, bạn có thể cần phải kiểm thử thêm. Ví dụ: nếu quá trình kiểm thử cho thấy luồng video chưa được định cấu hình đúng cách, bạn cần khắc phục vấn đề đó trước khi tiếp tục phát sóng.

Nếu luồng video không được định cấu hình đúng cách, thì bạn cần huỷ liên kết (và xoá) luồng hiện có rồi tạo một luồng mới. Ví dụ: một sự kiện phát trực tiếp có thể không được định cấu hình đúng cách nếu sự kiện đó chỉ định sai định dạng video.

  1. Để huỷ liên kết luồng video, hãy gọi phương thức liveBroadcasts.bind từ bước 1.3. Trong yêu cầu API, hãy đặt tham số id thành id thu được ở bước 1.1. Đừng thêm tham số streamId vào yêu cầu.

  2. Để xoá luồng video, hãy gọi phương thức liveStreams.delete. Trong yêu cầu, hãy đặt tham số id thành id thu được ở bước 1.2.

  3. Lặp lại bước 1.2 để tạo một tài nguyên liveStream mới được định cấu hình đúng cách. Sau đó, hãy lặp lại bước 1.3 để liên kết luồng mới với chương trình phát sóng của bạn và các bước từ 3.1 đến 3.3 để kiểm thử luồng mới.

Bước 3.6: Bật thuộc tính autoStart và autoStop

Sau khi hoàn tất giai đoạn thử nghiệm, bạn có thể đặt các thuộc tính contentDetails.enableAutoStart và contentDetails.enableAutoStop của chương trình phát sóng thành true trước khi chương trình phát sóng thực tế bắt đầu. Bạn không thể đặt các thuộc tính này thành true trước giai đoạn thử nghiệm vì thử nghiệm sẽ thực sự khiến quá trình phát sóng bắt đầu.

Giai đoạn 4: Phát sóng

Trong giai đoạn này, khán giả có thể xem video phát sóng của bạn.

Bước 4.1: Bắt đầu video

Bắt đầu truyền video trên luồng video của bạn.

Bước 4.2: Xác nhận rằng luồng video của bạn đang hoạt động

Gọi phương thức liveStreams.list để truy xuất tài nguyên liveStream liên kết với sự kiện phát sóng của bạn. Xác nhận rằng giá trị của thuộc tính status.streamStatus là active. Giá trị này cho biết máy chủ YouTube đang nhận dữ liệu từ bộ mã hoá của bạn một cách chính xác.

Bước 4.3: Chuyển trạng thái của sự kiện phát sóng sang phát trực tiếp

Quan trọng: Bước này giúp khán giả nhìn thấy video của bạn.

Gọi phương thức liveBroadcasts.transition để cập nhật trạng thái của sự kiện phát sóng. Đặt giá trị tham số id thành mã nhận dạng sự kiện phát sóng nhận được ở bước 1.1 và đặt giá trị tham số broadcastStatus thành live.

Nếu đặt thuộc tính contentDetails.enableAutoStart của tài nguyên liveBroadcast thành true, thì bạn không cần gọi phương thức liveBroadcasts.transition.

Sau khi thực hiện lệnh gọi API này (hoặc nếu bạn đã đặt thuộc tính contentDetails.enableAutoStart thành true, sau khi bắt đầu phát trực tuyến), bạn thường cần đợi từ 5 đến 10 giây để quá trình chuyển đổi đó hoàn tất. Quá trình chuyển đổi có thể mất đến một phút. Trong thời gian đó, bạn nên thăm dò API để kiểm tra trạng thái của sự kiện phát sóng. Cho đến khi quá trình chuyển đổi hoàn tất, trạng thái của chương trình phát sóng sẽ là liveStarting. Trạng thái sẽ là live sau khi quá trình chuyển đổi hoàn tất và người xem có thể xem chương trình phát sóng của bạn từ thời điểm đó trong sự kiện phát trực tiếp giám sát.

Lưu ý các tác động sau của lệnh này:

  • Nếu đã bật luồng giám sát cho chương trình phát sóng của mình (xem bước 3.1), bạn sẽ có thể xem luồng giám sát trong một trình phát được nhúng.
  • Nếu bạn đã đặt giá trị cho thuộc tính contentDetails.streamDetails.broadcastStreamDelayMs của chương trình phát sóng, thì luồng phát sóng (mà những người xem khác có thể thấy) sẽ bị trễ một khoảng thời gian tương ứng.

Bước 4.4: Chèn điểm chèn quảng cáo vào chương trình phát sóng

Gọi phương thức liveBroadcasts.cuepoint để chèn điểm dừng. Điểm bắt đầu quảng cáo có thể kích hoạt một điểm chèn quảng cáo. Trong tài nguyên cuepoint được cung cấp trong phần nội dung yêu cầu, hãy đặt thuộc tính durationSecs thành thời lượng mong muốn của điểm chèn quảng cáo (tính bằng giây) mà bạn muốn hiển thị. (Giá trị mặc định là 30.)

Tại thời điểm này, YouTube cố gắng phát quảng cáo trong trình phát video cho bất kỳ người xem nào đang xem chương trình phát sóng khi điểm gợi ý quảng cáo được chèn. Việc quảng cáo có phát hay không phụ thuộc vào nhiều yếu tố, chẳng hạn như khả năng chạy quảng cáo và nhật ký xem quảng cáo của người xem. Những người xem thấy điểm chèn quảng cáo sẽ quay lại sự kiện phát sóng của bạn khi điểm chèn quảng cáo kết thúc, còn những người xem không thấy quảng cáo sẽ tiếp tục xem sự kiện phát sóng trong thời gian nghỉ giải lao.

Hướng dẫn Bắt đầu cung cấp thêm thông tin về trải nghiệm xem trong thời gian nghỉ quảng cáo của một chương trình phát sóng trực tiếp.

Giai đoạn 5: Kết thúc chương trình phát sóng

Bước 5.1: Ngừng truyền trực tuyến

Như vậy là bạn đã hoàn tất việc kiểm thử hệ thống phát sóng trực tiếp của YouTube.

Bước 5.2: Chuyển trạng thái của chương trình phát sóng thành hoàn tất

Khi bạn đã sẵn sàng dừng phát sóng, hãy gọi phương thức liveBroadcasts.transition của API để cập nhật trạng thái của chương trình phát sóng. Đặt giá trị tham số id thành mã nhận dạng của sự kiện phát sóng mà bạn nhận được ở bước 1.1, rồi đặt giá trị tham số broadcastStatus thành complete.

Nếu bạn đã đặt các thuộc tính contentDetails.recordFromStart và contentDetails.enableDvr của sự kiện phát sóng thành true, thì khi sự kiện trực tiếp kết thúc, khán giả có thể xem ngay bản phát lại của sự kiện trực tiếp đó.

Giai đoạn 6: Tạo một tài liệu tham khảo

Sau khi quay xong, bạn có thể tạo một tệp đối chiếu từ video đã quay. Thao tác này hướng dẫn YouTube tìm những video do người dùng tải lên trùng khớp với chương trình phát sóng và xử lý những video đó theo chính sách trùng khớp mà bạn đặt ở bước 2.3.

Quan trọng: Để tạo tệp đối chiếu, bạn phải đặt thuộc tính contentDetails.recordFromStart của sự kiện phát sóng thành true.

Bước 6.1: Thăm dò Data API để biết trạng thái của video

YouTube phải xử lý xong một chương trình phát sóng hoặc video đã tải lên thì bạn mới có thể tạo tệp đối chiếu từ video đó. Để xác định xem video đã xử lý xong hay chưa, hãy thăm dò phương thức videos.list của YouTube Data API, đặt tham số part thành status và tham số id thành mã nhận dạng sự kiện phát sóng mà bạn đã lưu trữ ở bước 1.1.

Phản hồi của API đối với yêu cầu thăm dò ý kiến của bạn sẽ chứa tài nguyên video. Khi giá trị của thuộc tính status.uploadStatus của tài nguyên đó là processed, hãy chuyển sang bước 6.2.

Bước 6.2: Tạo tệp đối chiếu từ video đã xử lý

Để tạo tệp đối chiếu, hãy gọi phương thức references.insert của Content ID API và đặt tham số claimId thành mã thông báo xác nhận quyền sở hữu mà bạn đã lưu trữ ở bước 2.4.

Cung cấp nội dung trực tiếp cho Content ID

Một số đối tác YouTube có thể tạo tệp đối chiếu trước khi chương trình phát sóng chuyển sang trạng thái testing, nhưng không phải đối tác nào cũng có thể sử dụng tính năng đó. Trong quy trình đó, YouTube sẽ tạo và liên tục cập nhật tệp đối chiếu từ sự kiện phát trực tiếp của bạn trong khi sự kiện đó đang diễn ra. Ngoài ra, YouTube sẽ tìm những video trùng khớp do người dùng tải lên trong khi chương trình phát sóng vẫn đang diễn ra. Xin lưu ý rằng việc tạo tệp đối chiếu trước khi một chương trình phát sóng bắt đầu sẽ tự động bật tính năng ghi lại cho chương trình phát sóng đó và bạn không thể tắt tính năng ghi lại sau khi tạo tệp đối chiếu.

Để bật tính năng phân phối Content ID trực tiếp cho chương trình phát sóng, hãy thử thực hiện các thao tác được mô tả trong bước 6.2 sau khi xác nhận quyền sở hữu video trong bước 2.4. Nếu tài khoản đối tác của bạn chưa được phê duyệt để tạo tệp đối chiếu cho một chương trình phát sóng trực tiếp trước khi chương trình đó diễn ra, thì API sẽ trả về lỗi fingerprintingNotAllowed. Trong trường hợp đó, bạn cần đợi cho đến khi chương trình phát sóng kết thúc, như mô tả trong bước 6.1 và 6.2 ở trên, rồi mới tạo tệp đối chiếu.