Tổng quan
Hướng dẫn này dành cho nhà phát triển các ứng dụng máy khách API sử dụng tài nguyên liveStream
và liveBroadcast
mặc định của kênh YouTube để phát trực tiếp nội dung. Mục đích của hướng dẫn này là giúp bạn đảm bảo rằng ứng dụng của bạn xử lý việc ngừng sử dụng các thông báo truyền tin mặc định và luồng mặc định một cách thích hợp. Hướng dẫn này sẽ hữu ích cho bạn nếu ứng dụng của bạn có bất kỳ nội dung nào sau đây:
- Thao tác này sẽ kiểm tra giá trị của thuộc tính
isDefaultBroadcast
trong tài nguyênliveBroadcast
. - Thao tác này sẽ kiểm tra giá trị của thuộc tính
isDefaultStream
trong tài nguyênliveStream
. Phương thức này gọi phương thức
liveBroadcasts.list
và đặt giá trị tham sốbroadcastType
thànhpersistent
. Kể từ ngày ngừng sử dụng:- Nếu giá trị tham số
broadcastType
làpersistent
, thì phương thứcliveBroadcasts.list
sẽ không trả về bất kỳ kết quả nào. - Nếu giá trị tham số
broadcastType
làall
, thì phương thứcliveBroadcasts.list
sẽ không trả về các thông báo truyền tin liên tục đã tồn tại trước thời điểm đó.
- Nếu giá trị tham số
Nếu ứng dụng của bạn bị ảnh hưởng, vui lòng tham khảo phần Cập nhật ứng dụng. Phần này giải thích những thay đổi về quy trình mà ứng dụng của bạn có thể cần thực hiện do việc ngừng sử dụng này. Phần đó xác định các bước cụ thể trong hướng dẫn Vòng đời của một chương trình phát sóng mà ứng dụng API của bạn có thể không tuân theo nếu hiện đang sử dụng chương trình phát sóng và luồng mặc định.
What is happening?
Kể từ năm 2015, YouTube đã tự động tạo một luồng phát mặc định và một chương trình phát sóng mặc định cho kênh khi kênh đó được bật tính năng phát trực tiếp. Luồng mặc định tồn tại vô thời hạn và không thể bị xoá. Tương tự, thông báo truyền tin mặc định được coi là liên tục. Nó luôn tồn tại, không có thời gian bắt đầu hoặc thời gian kết thúc liên kết và không bị ràng buộc với một sự kiện cụ thể.
Kể từ ngày ngừng cung cấp nêu trên, YouTube sẽ không còn tạo luồng phát và chương trình phát sóng mặc định nữa. Thay đổi này ảnh hưởng đến những ứng dụng khách dựa vào các tài nguyên đó để phát nội dung trực tiếp. Điều này cũng sẽ ảnh hưởng đến những ứng dụng có giao diện người dùng được tuỳ chỉnh để phân biệt giữa các tài nguyên mặc định đó với những chương trình phát sóng và luồng phát khác mà chủ sở hữu kênh đã tạo.
Thay vì dựa vào các tài nguyên mặc định, ứng dụng API cần tạo và quản lý các tài nguyên liveBroadcast
và liveStream
, đồng thời liên kết các tài nguyên đó với nhau.
Cập nhật ứng dụng
Để xem nhanh các thuật ngữ, chương trình phát sóng là một sự kiện có thể xem trên YouTube khi sự kiện đó diễn ra, còn luồng phát trực tiếp là cơ chế để gửi nội dung video thực tế đến YouTube. Một chương trình phát sóng có thể và cần được liên kết với chính xác một luồng.
Di chuyển từ thông báo mặc định
Trước khi ngừng cung cấp, các ứng dụng API có thể chọn sử dụng chương trình phát sóng mặc định của kênh hoặc tạo chương trình phát sóng dành riêng cho sự kiện. Chương trình phát sóng mặc định là một tài nguyên liên tục có thể được dùng lại cho nhiều sự kiện, trong khi tài nguyên chương trình phát sóng dành riêng cho sự kiện là một tài nguyên dùng một lần và tương ứng với chính xác một video trên YouTube.
Ứng dụng khách của bạn sẽ sử dụng thông báo mặc định nếu gọi phương thức liveBroadcasts.list
và thực hiện một trong những thao tác sau:
- Thao tác này đặt giá trị tham số
broadcastType
thànhpersistent
. Yêu cầu này chỉ truy xuất thông báo mặc định. - Thao tác này đặt giá trị tham số
broadcastType
thànhall
, sau đó xác định tài nguyênliveBroadcast
trong phản hồi API mà giá trị của thuộc tínhisDefaultBroadcast
làtrue
.
Sau khi ngừng cung cấp, YouTube sẽ chỉ hỗ trợ các chương trình phát sóng dành riêng cho sự kiện.
Điều này có nghĩa là thay vì dựa vào thông báo mặc định, các ứng dụng khách cần tạo tài nguyên liveBroadcast
cho từng sự kiện phát sóng riêng lẻ.
Để tạo tài nguyên liveBroadcast
, hãy gọi phương thức liveBroadcasts.insert
.
Quy trình này được giải thích trong bước 1.1 của hướng dẫn "Vòng đời của một chương trình phát sóng".
Nếu chưa có, giao diện người dùng của bạn cũng cần cung cấp các cơ chế để người dùng phân biệt và chọn giữa các chương trình phát sóng sắp tới theo từng sự kiện.
Di chuyển từ luồng mặc định
Luồng phát cho phép bạn truyền nội dung âm thanh và video đến YouTube, đồng thời xác định các chế độ cài đặt về cách bạn phát trực tiếp nội dung của mình đến YouTube. Các đài truyền hình thường sử dụng lại cùng một luồng phát cho nhiều chương trình phát sóng khác nhau nếu những chương trình đó diễn ra vào các thời điểm khác nhau.
Mặc dù ứng dụng của bạn không thể sử dụng luồng mặc định, nhưng có thể tạo một luồng có thể dùng lại cho từng chương trình phát sóng. Để tạo tài nguyên liveStream
, hãy gọi phương thức liveStreams.insert
, làm theo hướng dẫn trong bước 1.2 của hướng dẫn "Vòng đời của một chương trình phát sóng". Theo mặc định, các luồng mới tạo có thể dùng lại. Tuy nhiên, nếu muốn, bạn có thể đặt thuộc tính contentDetails.isReusable
thành false
để tạo các luồng dùng một lần và có mối quan hệ một-một giữa các chương trình phát sóng và luồng.
Danh sách sau đây chứa 4 thuộc tính, ngoài tiêu đề sự kiện trực tiếp và nội dung mô tả sự kiện trực tiếp, mà bạn có thể đặt khi tạo sự kiện trực tiếp mới. Danh sách này cho biết các giá trị mà luồng mặc định sử dụng cho từng tài sản. Đây có thể là những chế độ cài đặt mà bạn muốn sử dụng trong một ứng dụng khách nếu bạn đang di chuyển khỏi việc sử dụng luồng mặc định.
cdn.frameRate
–variable
cdn.ingestionType
–rtmp
cdn.resolution
–variable
contentDetails.isReusable
–true
Liên kết thông báo truyền tin với luồng phát
Mỗi tài nguyên liveBroadcast
phải được liên kết với đúng một luồng trước khi chương trình phát sóng trực tiếp trên YouTube thực sự bắt đầu. (Chương trình phát sóng không được liên kết với bất kỳ luồng phát nào tại thời điểm tạo.)
Quy trình liên kết được xử lý tự động cho thông báo mặc định, được liên kết chặt chẽ với luồng mặc định. Tuy nhiên, sau ngày ngừng hoạt động, các ứng dụng khách cần quản lý quy trình đó cho tất cả các thông báo truyền tin.
Để liên kết một chương trình phát sóng với một luồng phát, hãy gọi phương thức liveBroadcasts.bind
như được giải thích trong bước 1.3 của hướng dẫn "Vòng đời của một chương trình phát sóng".
- Nếu đang sử dụng một luồng phát có thể dùng lại, bạn có thể tạo một luồng phát một lần rồi liên kết mọi chương trình phát sóng với luồng phát đó.
- Nếu không sử dụng luồng phát có thể dùng lại, bạn cần tạo một chương trình phát sóng và một luồng phát, sau đó liên kết hai luồng phát đó với nhau.
Kiểm thử chương trình phát sóng
Khi không sử dụng thông báo mặc định, bạn có thể kiểm thử thông báo của mình. Để tiến hành kiểm thử, bạn nhúng một trình phá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, nhưng những người xem khác sẽ không thấy video phát sóng này.
Nếu trước đây ứng dụng API của bạn đã sử dụng chế độ phát sóng và phát trực tiếp mặc định, đồng thời bạn muốn thêm giai đoạn kiểm thử vào quy trình phát trực tiếp, hãy xem giai đoạn 3 của hướng dẫn "Vòng đời của một chương trình phát sóng".
Nếu muốn kiểm tra luồng phát, thì khi chèn một chương trình phát sóng, bạn cần đặ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.
Sử dụng tính năng tự động bắt đầu và tự động dừng
Chương trình phát sóng mặc định sẽ tự động bắt đầu mỗi khi bạn bắt đầu phát trực tiếp video trên luồng mặc định. Tương tự, sự kiện phát sóng mặc định đã kết thúc sau khi bạn ngừng phát trực tiếp video. Mỗi phiên phát trực tuyến sử dụng những tài nguyên mặc định đó sau đó sẽ trở thành một video trên kênh của bạn.
Mặc dù các tính năng tự động bắt đầu và tự động dừng là hành vi mặc định đối với các thông báo mặc định, nhưng những tính năng này là không bắt buộc và cần được bật cho các thông báo khác. Nếu muốn sử dụng các tính năng này, thì khi chèn một chương trình phát sóng, bạn cần đặt giá trị thuộc tính contentDetails.enableAutoStart và contentDetails.enableAutoStop thành true
. Các tính năng này độc lập với nhau, nên bạn có thể chọn sử dụng một tính năng mà không cần sử dụng tính năng còn lại.
Nếu bạn không bật tính năng tự động bắt đầu và tự động dừng cho các chương trình phát sóng mới, thì ứng dụng API của bạn cầ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 khi bạn bắt đầu và kết thúc phát trực tiếp video. Trong hướng dẫn "Vòng đời của một chương trình phát sóng", hãy xem bước 4.3 và bước 5.2 để biết hướng dẫn về cách quản lý những hiệu ứng chuyển cảnh này ở phần đầu và phần cuối của một chương trình phát sóng.