Giới thiệu
Tài liệu này hướng dẫn bạn về suốt thời gian phát sóng trực tiếp trên YouTube bằng cách sử dụ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 duy nhấ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 được xác định trong API dữ liệu YouTube hoặc API Content ID của YouTube. Các tài nguyên được liệt kê trong tiêu đề API Phát trực tiếp của YouTube về mặt kỹ thuật được xác định trong các API khác đó nhưng được liệt kê riêng vì các tài nguyên này chỉ được dùng để 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ề API Dữ liệu của YouTube
Tài nguyên về Content ID của YouTube
Tạo và quản lý chương trình phát sóng trực tiếp
Những bước sau giải thích cách tạo và quản lý sự kiện trực tiếp trên YouTube. Các bước này được chia thành các giai đoạn sau:
- Thiết lập tính năng phát đi thông báo
- Xác nhận quyền sở hữu nội dung của bạn
- Thử nghiệm
- Phát đi thông báo
- Kết thúc thông báo
- 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 sự kiện trực tiếp của YouTube. Tài nguyên liveBroadcast
bạn đang chèn phải xác định giá trị cho các 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ó một giai đoạn thử nghiệm cho nội dung phát của mình, thì khi xem video phát mà không có những người xem khác cũng có thể xem nội dung phát, bạn phải đặt thuộc tính
contentDetails.monitorStream.enableMonitorStream
thànhtrue
và thuộc tínhcontentDetails.enableAutoStart
thànhfalse
. Đây là các giá trị mặc định cho cả hai thuộc tính.Nếu muốn tạo tệp đối chiếu từ chương trình phát sóng đã ghi, bạn phải đặt thuộc tính
contentDetails.recordFromStart
của chương trình phát thànhtrue
. Nếu muốn cung cấp video đã ghi để phát lại 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ínhcontentDetails.enableDvr
thànhtrue
. (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 thông báo vẫn làcreated
hoặcready
.Bạn có thể cập nhật thời gian bắt đầu theo lịch của chương trình phát và thời gian kết thúc của lịch phát sóng, miễn là trạng thái của chương trình phát là
created
,ready
hoặctesting
.Bạn có thể cập nhật tiêu đề, nội dung mô tả và trạng thái quyền riêng tư của chương trình phát sóng cũng như 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 cung cấp video của mình cho những người dùng YouTube cụ thể, hãy đặt giá trị thuộc tínhstatus.privacyStatus
thànhunlisted
hoặcprivate
phù hợp với nhu cầu của bạn.
Xử lý phản hồi API
Khi 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 sẽ trích xuất và lưu trữ id
từ tài nguyên đó. Bạn sẽ cần giá trị đó để xác định nội dung phát trong các yêu cầu API trong tương lai. (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ách sử dụ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 sang YouTube và mô tả nội dung mà bạn đang truyền. Mỗi chương trình phát phải được liên kết với đúng một luồng.
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 luồng, bạn không thể cập nhật các giá trị này sau khi tạo luồng. 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 sẽ đượ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 đề luồng, nội dung mô tả luồng có thể được cập nhật sau khi tạo luồng. Cả tiêu đề và nội dung mô tả đều không hiển thị cho người dùng YouTube.contentDetails.isReusable
– Cho biết luồng có thể sử dụng lại hay không, tức là luồng có thể được liên kết với nhiều thông báo. Giá trị của thuộc tính này xác định hiệu quả kênh có mối quan hệ nhiều với một hay giữa tài nguyênliveBroadcast
vớiliveStream
:- Nếu sử dụng giá trị mặc định là thuộc tính
true
của thuộc tính, bạn có thể sử dụng cùng một tài nguyênliveStream
cho tất cả các thông báo của 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 nội dung phát. Thay vào đó, bạn chỉ cần sử dụng lại mã luồng cho các thông báo tiếp theo. - Nếu đặt giá trị thuộc tính thành
false
, bạn cần tạo một luồng mới cho mỗi chương trình phát.
- Nếu sử dụng giá trị mặc định là thuộc tính
Sau khi bạn gửi yêu cầu API theo 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 sẽ 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 trong tương lai.
Bước 1.3: Liên kết chương trình phát sóng với luồng của sự kiện
Sau khi tạo tài nguyên liveBroadcast
và liveStream
, bạn cần liên kết cả hai bằng phương thức liveBroadcasts.bind
. Thao tác này sẽ liên kết các video
mà bạn sẽ truyền đến YouTube cùng với sự kiện phát sóng cho video đó.
Khi gọi phương thức liveBroadcasts.bind
, hãy đặt thông số id
thành mã nhận dạng thông báo thu được ở bước 1.1 và thông số streamId
thành mã luồng nhận được ở bước 1.2.
Giai đoạn 2: Xác nhận quyền sở hữu nội dung của bạn
Nếu muốn hiển thị quảng cáo trong quá trình phát, bạn cần xác nhận quyền sở hữu video phát trước khi sự kiện bắt đầu. Các bước sau đây sẽ giải thích quy trình này. Lưu ý rằng tất cả cá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 thành phần
Tài nguyên asset
đại diện cho một phần tài sản trí tuệ. Trong trường hợp này, nội dung là thông báo của bạn. Gọi phương thức
assets.insert
để tạo
tài sản.
Phản hồi 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 thành phần đó trong các yêu cầu API trong tương lai.
Bước 2.2: Xác định quyền sở hữu tài sản
Dữ liệu về quyền sở hữu của một tài sản sẽ 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 vị trí mà chủ sở hữu có thể đặt chính sách cho video đã được xác nhận quyền sở hữu.
Ví dụ: nếu bạn có quyền phát một sự kiện ở Hoa Kỳ và một đài phát khác cũng có quyền như vậy đối với Canada, thì bạn có thể xác định chính sách khác nhau cho video phát sóng và 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 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 khác sẽ được áp dụng cho các video trùng khớp ở Canada.
Để xác định các 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ữ trong
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 những việc YouTube nên làm khi người dùng tải video trùng khớp với một 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 đã tải lên khớp với video phát 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 định tạo tệp đối chiếu từ video phát sóng của bạn và sử dụng tệp đối chiếu đó để xác định các video do người dùng tải lên phù hợp với chương trình 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 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 bạn xác định chính sách này, hãy gọi phương thức
assetMatchPolicy.update
. Trong yêu cầu đó, hãy đặt thông 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 của bạn
Ở 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ẽ truyền đến nội dung mà bạn đã tạo ở bước 2.1. Thông báo xác nhận quyền sở hữu đó đặt 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 chịu sự điều chỉnh của chính sách trùng khớp đã thiết lập ở 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ênpolicy
. Bạn có thể áp dụng một chính sách hiện có bằng cách đặt thuộc tínhid
của tài nguyên đó thành mã 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ànhaudiovisual
.
Xử lý phản hồi API
Khi bạn chèn thông báo xác nhận quyền sở hữu, phản hồi API sẽ chứa tài nguyên claim
mà bạn đã tạo. Mã của bạn sẽ trích xuất và lưu trữ
id
từ tài nguyên đó. Bạn sẽ sử dụng giá trị đó sau để tạo tệp đối chiếu từ video đã xử lý của mình.
Bước 2.5: Cập nhật chế độ cài đặt quảng cáo cho nội dung truyền phát
Bạn cần đặt tùy 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 các điểm phát sóng.
- Nếu bạn bật quảng cáo trước video cho chương trình phát, thì tất cả người xem sẽ nhìn thấy quảng cáo khi họ bắt đầu xem chương trình phát đó ngay cả khi họ bắt đầu xem ở giữa chương trình phát sóng.
- Nếu bật quảng cáo trong video cho nội dung phát, bạn sẽ có thể chèn điểm dừng quảng cáo trong nội dung truyền phát.
Để 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 thông báo (broadcast) id
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: Thử nghiệm
Trong giai đoạn này, bạn sẽ nhúng một trình phát cho thấy luồng giám sát cho nội dung truyền phát để bạn 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 khi video đó xuất hiện cho người xem YouTube.
Lưu ý: Bạn chỉ có thể kiểm thử tính năng phát video nếu luồng giám sát của video đó đang bật. Theo mặc định, luồng giám sát của chương trình phát sóng được bật. Bạn có thể tắt
trình theo dõi của 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 theo dõi
Truy xuất thông báo của bạn 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 trình phát YouTube hiển thị luồng theo dõi 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 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 chương trình phát sóng của bạn. Xác nhận giá trị của thuộc tính status.streamStatus
là active
, cho biết rằng các máy chủ của YouTube đang nhận đúng dữ liệu từ bộ mã hoá của bạn.
Bước 3.4: Chuyển trạng thái của chương trình 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 thông báo. Đặt giá trị tham số id
thành mã nhận dạng thông báo 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í tối đa một phút để quá trình chuyển đổi đó hoàn tất. Trong thời gian đó, bạn nên kiểm tra API để kiểm tra trạng thái của thông báo. Trạng thái của thông báo sẽ là testStarting
cho đến khi quá trình chuyển đổi hoàn tất. 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 kiểm thử
Nếu thử nghiệm của bạn 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 tra thêm. Ví dụ: nếu kiểm thử cho thấy luồng video được định cấu hình không đúng cách, bạn cần phải khắc phục điều đó trước khi tiếp tục phát sóng.
Nếu luồng video không được định cấu hình chính xác, bạn cần huỷ liên kết (và xoá) luồng hiện có và tạo một luồng mới. Ví dụ: một luồng có thể không được định cấu hình chính xác nếu chỉ định định dạng video sai.
-
Để 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ànhid
thu được ở bước 1.1. Không bao gồm tham sốstreamId
trong yêu cầu. -
Để 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ànhid
thu được ở bước 1.2. -
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 các thuộc tính autoStart
và autoStop
Sau khi hoàn tất thành công giai đoạn kiểm thử, 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 kiểm thử, vì kiểm thử thực sự sẽ khiến quá trình phát sóng bắt đầu.
Giai đoạn 4: Phát đi thông báo
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 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 chương trình phát sóng của bạn. Xác nhận giá trị của thuộc tính status.streamStatus
là active
, cho biết rằng các máy chủ của YouTube đang nhận đúng dữ liệu từ bộ mã hoá của bạn.
Bước 4.3: Chuyển đổi trạng thái của nội dung truyền phát sang dạng trực tiếp
Quan trọng: Bước này giúp video của bạn hiển thị với người xem.
Gọi phương thức liveBroadcasts.transition
để cập nhật trạng thái của thông báo. Đặt giá trị tham số id
thành mã nhận dạng thông báo 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
, thì sau khi bắt đầu phát trực tuyến – bạn 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 tới một phút. Trong thời gian đó, bạn nên thăm dò ý kiến của API để kiểm tra trạng thái của thông báo. Trạng thái của thông báo sẽ là liveStarting
cho đến khi quá trình chuyển đổi hoàn tất. 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 luồng giám sát.
Hãy 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 của mình – hãy xem bước 3.1 – bạn sẽ có thể xem luồng giám sát trong 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à người xem khác có thể nhìn thấy sẽ bị trễ trong khoảng thời gian đó.
Bước 4.4: Chèn điểm chèn quảng cáo vào nội dung truyền phát
Gọi phương thức liveBroadcasts.cuepoint
để chèn điểm dừng. Điểm dừng 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 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 (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 sẽ 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 nội dung phát khi điểm dừng quảng cáo được chèn vào. 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 phân phát quảng cáo và nhật ký xem quảng cáo của người xem. Người xem có một điểm chèn quảng cáo sẽ quay lại chương trình 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 luồng phát sóng trong điểm chèn quảng cáo.
Hướng dẫn Bắt đầu cung cấp thêm thông tin về trải nghiệm xem trong thời điểm ngắt quảng cáo của 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 phát trực tiếp
Bước này kết thúc thử nghiệm hệ thống phát sóng trực tiếp trên YouTube.
Bước 5.2: Chuyển đổi trạng thái của chương trình phát để 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. Đặt giá trị tham số id
thành
mã nhận dạng thông báo thu được ở bước 1.1 và đặ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 chương trình phát sóng thành true
, thì khi sự kiện trực tiếp kết thúc, người xem có thể xem ngay sự kiện phát trực tiếp đó.
Giai đoạn 6: Tạo tệp đối chiếu
Sau khi quay xong, bạn có thể tạo tệp đối chiếu từ video đã quay. Thao tác này hướng dẫn YouTube tìm các video do người dùng tải lên khớp với chương trình phát sóng và xử lý các video đó theo chính sách so 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 chương trình phát sóng thành true
.
Bước 6.1: Thăm dò API dữ liệu về trạng thái của video
YouTube phải hoàn tất việc xử lý 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 đã hoàn tất quá trình xử lý hay chưa, hãy thăm dò phương thức videos.list
của API Dữ liệu YouTube, đặt tham số part
thành status
và tham số id
thành mã truyền phát mà bạn đã lưu trữ trong bước 1.1.
Phản hồi API của yêu cầu thăm dò ý kiế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 API Content ID và đặt thông số claimId
thành mã xác nhận quyền sở hữu mà bạn đã lưu trữ trong bước 2.4.
Cung cấp Content ID trực tiếp
Một số đối tác YouTube có thể tạo tệp đối chiếu trước khi quá trình chuyển đổi sang trạng thái testing
nhưng tính năng đó không được cung cấp cho tất cả các đối tác. Trong luồng đó, YouTube sẽ tạo và liên tục cập nhật tệp tham chiếu từ luồng phát sự kiện trực tiếp của bạn trong khi quá trình phát đang diễn ra. Ngoài ra, YouTube sẽ tìm các video trùng khớp do người dùng tải lên trong khi vẫn đang phát sóng. Lưu ý rằng việc tạo tham chiếu trước khi phát sóng sẽ tự động bật chế độ ghi lại cho nội dung truyền và bạn không thể tắt tính năng ghi sau khi tạo tham chiếu.
Để bật tính năng phát đi thông báo để phân phối trực tiếp qua Content ID, hãy thử các bước mô tả ở bước 6.2 sau khi xác nhận quyền sở hữu video ở 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 phát sóng đó diễn ra, thì API sẽ trả về lỗi fingerprintingNotAllowed
. Trong trường hợp đó, bạn cần đợi cho đến khi quá trình phát hoàn tất, như mô tả trong các bước 6.1 và 6.2 ở trên, trước khi tạo tệp tham chiếu.