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 sẽ hướng dẫn bạn về vòng đời của một chương trình 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ý sự kiện phát 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 những API khác đó nhưng được liệt kê riêng vì chỉ được dùng cho 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 YouTube Data API

Tài nguyên Content ID API 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ý một sự kiện phát trực tiếp trên YouTube. Các bước được chia thành những 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
  3. Kiểm thử
  4. Truyền tin
  5. Kết thúc chương trình phát sóng
  6. Tạo một 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 cân nhắc các nguyên tắc sau đây 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à không có người xem khác, 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 thông tin tham khảo 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 chương trình 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.)

  • Bạn có thể cập nhật bất kỳ thuộc tính contentDetails nào miễn là trạng thái của chương trình 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 dự kiến của chương trình phát sóng miễn là trạng thái của chương trình 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ả, trạng thái riêng tư và các trường siêu dữ liệu khác của chương trình phát sóng (là một phần của 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 API

Khi bạn gọi phương thức liveBroadcasts.insert, phản hồi 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 thông báo truyền tin 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 luồng

Tài nguyên liveStream cho phép bạn truyền video của mình lên YouTube và mô tả nội dung mà bạn đang truyền. Mỗi chương trình phát sóng phải được liên kết với đúng một luồng phát.

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ê bên dưới:

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, bạn thực sự cần 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 ở 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 đề sự kiện phát trực tiếp, bạn có thể cập nhật nội dung mô tả 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 – 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 sẽ xác định xem một kênh có mối quan hệ nhiều-một hay một-một giữa các tài nguyên liveBroadcastliveStream:

    • Nếu sử dụng giá trị mặc định true của thuộc tính, thì bạn có thể sử dụng cùng một tài nguyên liveStream cho tất cả cá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 chương trình phát sóng. Thay vào đó, bạn chỉ cần sử dụng lại mã luồng cho các sự kiện 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 luồng, phản hồi 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 liveBroadcastliveStream, 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ã nhận dạng chương trình phát sóng thu được ở bước 1.1 và tham số streamId thành mã nhận dạng luồng phát 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 phải xác nhận quyền sở hữu video phát sóng trước khi sự kiện bắt đầu. Các bước sau đây giải thích quy trình này. 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 API Content ID của YouTube.

Bước 2.1: Tạo một 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, nội dung là chương trình phát sóng của bạn. Gọi phương thức assets.insert để tạo tài sả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 quyền sở hữu của tài sản xác định chủ sở hữu của tài sản cũng như những 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 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ó cùng quyền đó ở 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 trùng 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 những 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 những video trùng khớp ở Canada.

Để xác định lãnh thổ nơi bạn có quyền sở hữu 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 so khớp của một tài sản giải thích những 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 được 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 nên xử lý một video tải lên trùng khớp với chương trình phát sóng trực tiếp của bạn.

Lưu ý: Bạn nên đặt chính sách so khớp nếu dự định tạo tệp đối chiếu từ video phát sóng của mình và dùng tệp đối chiếu đó để xác định những video do người dùng tải lên 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 đối sánh, 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. (Những video do người dùng tải lên trùng khớp với video phát sóng của bạn sẽ chịu sự chi phối của chính sách so khớp được đặt ở bước trước.)

Để tạo một yêu cầ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ã 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 API

Khi bạn chèn yêu cầ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 bản tham chiếu từ video đã xử lý.

Bước 2.5: Cập nhật chế độ cài đặt quảng cáo cho chương trình phát sóng

Bạn cần đặt các lựa chọn quảng cáo cho video 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 các khoảng 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 họ bắt đầu xem chương trình phát sóng, ngay cả khi họ bắt đầu xem ở giữa chương trình.
  • 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 của bạn, hãy đặt tham số videoId thành id 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 hiển thị luồng giám sát cho chương trình phát sóng để có thể kiểm thử 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 với người xem trên YouTube.

Xin lưu ý rằng bạn chỉ có thể kiểm thử chương trình phát sóng video nếu đã bật luồng giám sát của chương trình đó. 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 chương trình 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 chương trình phát sóng đó.

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

Truy xuất thông báo truyền tin 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 hiển thị luồng phát trên màn hình của bạn.

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

Bắt đầu truyền video trên luồng video.

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 được liên kết với chương trình phát sóng của bạn. Xác nhận rằng giá trị của thuộc tính status.streamStatusactive. 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 chương trình phát sóng sang thử nghiệm

Gọi phương thức liveBroadcasts.transition để 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 chương trình phát sóng thu đượ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 kiểm thử 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 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 chưa được định cấu hình đúng cách, 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 luồng có thể không được định cấu hình đúng nếu 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 ở 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. Khô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 autoStartautoStop

Sau khi hoàn tất giai đoạn thử nghiệm, bạn có thể thiết lập các thuộc tính contentDetails.enableAutoStartcontentDetails.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 kiểm thử vì quy trình kiểm thử sẽ thực sự khiến thông báo truyền tin 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.

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 được liên kết với chương trình phát sóng của bạn. Xác nhận rằng giá trị của thuộc tính status.streamStatusactive. 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 chương trình phát sóng sang trạng thái phát trực tiếp

Lưu ý quan trọng: Bước này giúp khán giả xem được video của bạn.

Gọi phương thức liveBroadcasts.transition để 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 chương trình phát sóng thu đượ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ạn bắt đầu phát trực tuyến), bạn thường cần đợi 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 trên màn hình.

Lưu ý những tác động sau đây 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 mộ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 nhìn thấy sẽ bị trễ một khoảng thời gian bằng giá trị đó.

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 một điểm đánh dấu. Điểm đánh dấu có thể kích hoạ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 khoảng thời gian nghỉ (tính bằng giây) mà bạn muốn hiển thị. (Giá trị mặc định là 30.)

Lúc này, YouTube sẽ tìm cách phát quảng cáo trong trình phát video cho những người xem đang xem chương trình phát sóng khi điểm đánh dấu 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 đoạn quảng cáo sẽ quay lại chương trình phát sóng của bạn khi đoạ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 luồng 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: Dừng truyền phát trực tiếp

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 trên YouTube.

Bước 5.2: Chuyển trạng thái 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 phát sóng. Đặt giá trị tham số id thành mã nhận dạng chương trình phát sóng thu được ở bước 1.1 và đặt giá trị tham số broadcastStatus thành complete.

Nếu bạn đã đặt thuộc tính contentDetails.recordFromStartcontentDetails.enableDvr của chương trình phát sóng thành true, thì khi sự kiện phát 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 phát trực tiếp đó.

Giai đoạn 6: Tạo một tệp đối chiếu

Sau khi quay xong, bạn có thể tạo tệp đối chiếu từ video đã quay. Hành động 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.

Lưu ý quan trọng: Để tạo thông tin tham chiếu, bạn phải đặt thuộc tính contentDetails.recordFromStart của chương trình phát sóng thành true.

Bước 6.1: Kiểm tra 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 thông tin tham 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 chương trình phát sóng mà bạn đã lưu trữ trong 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 một 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 thông tin tham 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ã nhận dạng quyền sở hữu mà bạn đã lưu trữ trong bước 2.4.

Phân phối Content ID cho nội dung phát trực tiếp

Một số đối tác của YouTube có thể tạo bản tham 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 này. Trong quy trình đó, YouTube sẽ tạo và liên tục cập nhật bản tham chiếu từ luồng phát của sự kiện phát trực tiếp trong khi sự kiện đang diễn ra. Ngoài ra, YouTube sẽ tìm những video do người dùng tải lên trùng khớp 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 một bản tham chiếu trước khi chương trình phát sóng bắt đầu sẽ tự động bật tính năng ghi hình cho chương trình phát sóng đó và bạn không thể tắt tính năng ghi hình sau khi tạo bản tham 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 thông tin tham 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 đến khi chương trình phát sóng kết thúc (như mô tả trong các bước 6.1 và 6.2 ở trên) rồi mới tạo bản tham chiếu.