Tổng quan
Hướng dẫn này dành cho các nhà phát triển ứng dụng API sử dụng tài nguyên liveStream
và liveBroadcast
mặc định của các kênh YouTube để phát trực tiếp nội dung. Thư viện này 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 tính năng phát mặc định và luồng mặc định một cách linh hoạt. Điều này phù hợp với bạn nếu có bất kỳ câu lệnh nào sau đây áp dụng cho ứng dụng của bạn:
- Thuộc tính này kiểm tra giá trị của thuộc tính
isDefaultBroadcast
của tài nguyênliveBroadcast
. - Thuộc tính này kiểm tra giá trị của thuộc tính
isDefaultStream
của tài nguyênliveStream
. Phương thức này gọi phương thức
liveBroadcasts.list
và đặt giá trị thông 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ề thông báo truyền phát liên tục tồn tại trước thời gian đó.
- 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 các 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 đang sử dụng luồng và luồng mặc định.
Đang có chuyện gì xảy ra?
Từ năm 2015, YouTube đã tự động tạo một sự kiện phát trực tiếp mặc định và một chương trình phát sóng mặc định cho một kênh khi kênh đó được bật để phát trực tiếp. Luồng mặc định tồn tại vô thời hạn và không thể xóa được. Tương tự như vậy, chương trình phát sóng 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 kết thúc và không bị ràng buộc với một sự kiện cụ thể.
Kể từ ngày ngừng sử dụng ở trên, YouTube sẽ không còn tạo các luồng và thông báo mặc định nữa. Thay đổi này ảnh hưởng đến các ứng dụng khách dựa vào các tài nguyên đó để phát sóng nội dung trực tiếp. Điều này cũng sẽ ảnh hưởng đến các ứng dụng mà trong đó 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 các thông báo và luồng 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, các ứng dụng API cần tạo và
quản lý tài nguyên liveBroadcast
và liveStream
để liên kết các tài nguyên đó
với nhau.
Cập nhật ứng dụng của bạn
Để xem nhanh các thuật ngữ, thông báo đại diện cho một sự kiện có thể xem trên YouTube khi sự kiện đó xảy ra và luồng là cơ chế để gửi nội dung video thực tế đến YouTube. Chương trình phát có thể và cần được liên kết với đúng một luồng.
Di chuyển từ chương trình phát mặc định
Trước khi phương thức này không được dùng nữa, ứng dụng API có thể chọn sử dụng thông báo mặc định của kênh hoặc tạo một thông báo dành riêng cho sự kiện. Thông báo mặc định là tài nguyên liên tục có thể sử dụng lại cho nhiều sự kiện, còn tài nguyên thông báo dành riêng cho sự kiện là tài nguyên dùng một lần tương ứng với đúng một video trên YouTube.
Ứng dụng khách của bạn sử dụng nội dung truyền phát mặc định nếu nó gọi phương thức liveBroadcasts.list
và thực hiện một trong những việc sau:
- Thao tác này sẽ đặt giá trị thông số
broadcastType
thànhpersistent
. Yêu cầu này chỉ truy xuất thông báo mặc định. - Phương thức này đặt giá trị thông 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 YouTube ngừng hoạt động, YouTube sẽ chỉ hỗ trợ các thông báo dành riêng cho sự kiện.
Điều này có nghĩa là thay vì dựa vào tính năng phát đi 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 thực hiện, giao diện người dùng của bạn cũng cần cung cấp cơ chế để người dùng phân biệt và chọn giữa các thông báo sắp diễn ra dành riêng cho sự kiện.
Di chuyển từ luồng mặc định
Luồng cho phép bạn truyền nội dung video âm thanh đến YouTube và xác định các chế độ cài đặt cho cách bạn truyền trực tuyến nội dung đến YouTube. Thông thường, các trình phát có thể sử dụng lại cùng một trình phát cho nhiều chương trình phát nếu các chương trình phát đó xuất hiện vào những thời điểm khác nhau.
Mặc dù ứng dụng không thể sử dụng luồng mặc định, nhưng ứng dụng đó có thể tạo một luồng có thể tái sử dụng và được sử dụng lại cho mỗi 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ể sử 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 luồng sử dụng một lần và có mối quan hệ một với một giữa chương trình phát sóng và luồng.
Danh sách sau đây chứa 4 thuộc tính, bên cạnh tiêu đề luồng và nội dung mô tả luồng mà bạn có thể đặt khi tạo luồng mới. Danh sách này hiển thị các giá trị mà luồng mặc định sử dụng cho mỗi thuộc tính, có thể là các chế độ cài đặt bạn muốn sử dụng trong ứng dụng khách nếu bạn chuyển sang 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 với luồng
Mỗi tài nguyên liveBroadcast
phải được liên kết với đúng một luồng trước khi sự kiện phát trực tiếp trên YouTube có thể bắt đầu. (Chương trình phát không bị liên kết với bất kỳ luồng nào tại thời điểm tạo.)
Quá trình liên kết được xử lý tự động cho thông báo truyền phát mặc định vốn bị ràng buộc chặt chẽ với luồng mặc định. Tuy nhiên, sau ngày ngừng sử dụng này, các ứng dụng khách cần phải quản lý quy trình đó cho tất cả các thông báo.
Để liên kết một chương trình phát sóng với một luồng, hãy gọi phương thức liveBroadcasts.bind
như 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 luồng có thể sử dụng lại, bạn có thể tạo một luồng một lần, sau đó liên kết mọi chương trình phát sóng với luồng đó.
- Nếu không sử dụng luồng có thể tái sử dụng, bạn cần tạo một chương trình phát sóng và một luồng, sau đó liên kết hai luồng đó với nhau.
Kiểm thử chương trình phát sóng
Khi không sử dụng tính năng phát đi thông báo mặc định, bạn sẽ có tuỳ chọn để kiểm thử nội dung truyền phát. Để tiến hành thử nghiệm, bạn nhúng một trình phát cho phép bạn xem trước video phát như khi video hiển thị với người xem YouTube, nhưng trình phát không hiển thị với những người xem khác.
Nếu ứng dụng API của bạn trước đây đã sử dụng tính năng phát và phát trực tuyến mặc định và 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 phầ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 thử luồng, 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 các tính năng tự động bắt đầu và tự động dừng
Quá trình phát mặc định sẽ tự động bắt đầu mỗi khi bạn bắt đầu phát trực tuyến video trên luồng mặc định. Tương tự, quá trình phát mặc định đã kết thúc sau khi bạn dừng phát trực tuyến video. Mỗi phiên phát trực tiếp bằng cách sử dụng các tài nguyên mặc định đó sau đó trở thành video trong 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 cho các thông báo mặc định, nhưng các tính năng đó 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 các 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ì vậy, bạn có thể chọn sử dụng một trong hai tính năng này thay vì tính năng còn lại.
Nếu bạn không bật các 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 khi bạn bắt đầu và hoàn tất việc phát trực tuyến video. Trong hướng dẫn "Vòng đời của quá trình phát", hãy xem bước 4.3 và bước 5.2 để biết hướng dẫn về cách quản lý các quá trình chuyển đổi này ở đầu và cuối của quá trình phát.