针对弃用默认广播和流的迁移指南

概览

本指南面向使用 YouTube 频道的默认 liveStream 和 liveBroadcast 资源来直播内容的 API 客户端应用的开发者。本指南旨在帮助您确保应用妥善处理默认直播和默认数据流的废弃问题。如果以下任何陈述适用于您的应用,则本指南对您来说非常有用:

  • 它会检查 liveBroadcast 资源的 isDefaultBroadcast 属性的值。
  • 它会检查 liveStream 资源的 isDefaultStream 属性的值。
  • 它会调用 liveBroadcasts.list 方法,并将 broadcastType 参数值设置为 persistent。自废弃日期起:

    • 如果 broadcastType 参数值为 persistent,则 liveBroadcasts.list 方法不会返回任何结果。
    • 如果 broadcastType 参数值为 all,则 liveBroadcasts.list 方法不会返回在此之前存在的永久直播。

如果您的应用受到影响,请参阅更新您的 应用部分,该部分介绍了您的应用可能需要因本次废弃而做出的程序性 更改。 该部分指出了“直播的生命周期”指南中的特定步骤,如果您的 API 客户端目前使用默认直播和数据流,则可能 通常不会遵循这些步骤。

发生了什么?

自 2015 年以来,当频道启用直播功能时,YouTube 会自动为该频道创建默认数据流和默认直播。默认数据流会无限期存在,且无法删除。同样,默认直播被视为“永久”直播。 它始终存在,没有关联的开始或结束时间,并且不绑定到特定活动。

自上述废弃日期起,YouTube 将不再创建默认数据流和直播。此变更会影响依赖这些资源来直播内容的客户端应用。它还会影响用户界面经过自定义的应用,这些应用会区分这些默认资源与频道所有者创建的其他直播和数据流。

API 客户端需要创建和管理 liveBroadcast 和 liveStream 资源,并将这些资源绑定在一起,而不是依赖默认资源。

更新应用

为了快速回顾术语,直播 表示可以在 YouTube 上观看的实时活动,而数据流 是将实际视频内容发送到 YouTube 的机制。直播可以且需要绑定到恰好一个数据流。

从默认直播迁移

在本次废弃之前,API 客户端可以选择使用频道的默认直播,也可以创建特定于活动的直播。默认直播是一种永久资源,可以重复用于多个活动,而特定于活动的直播资源是一种一次性资源,恰好对应一个 YouTube 视频。

如果您的客户端应用调用 liveBroadcasts.list 方法并执行以下任一操作,则该应用会使用默认直播:

  • 它将 broadcastType 参数值设置为 persistent。此请求仅检索默认直播。
  • 它将 broadcastType 参数值设置为 all,然后在 API 响应中标识 isDefaultBroadcast 属性值为 true 的 liveBroadcast 资源。

废弃后,YouTube 将仅支持特定于活动的直播。 这意味着,客户端应用 需要为每个直播活动创建 liveBroadcast 资源,而不是依赖默认直播。

如需创建 liveBroadcast 资源,请调用 liveBroadcasts.insert 方法。 “直播的生命周期”指南的第 1.1 步介绍了此过程。

如果您的用户界面尚未提供相关机制,则还需要提供相关机制,以便用户区分和选择即将推出的特定于活动的直播。

从默认数据流迁移

借助数据流,您可以将音频视频内容传输到 YouTube,并且可以定义将内容流式传输到 YouTube 的设置。如果直播在不同时间进行,直播者通常会为许多不同的直播重复使用同一数据流。

即使您的应用无法使用默认数据流,也可以创建可重复使用的数据流,以便在每次直播时重复使用。如需创建 liveStream 资源,请按照“直播的生命周期” 指南的第 1.2 步中的说明调用 liveStreams.insert 方法。默认情况下,新创建的数据流是可重复使用的。不过,如果您愿意,可以将 contentDetails.isReusable 属性设置为 false,以创建一次性数据流,并让直播与数据流之间建立一对一的 关系。

除了 数据流标题 和 数据流说明之外,您还可以在创建新数据流时设置以下四个属性。该列表显示了默认数据流为每个属性使用的值,如果您要从使用默认数据流迁移,这些值很可能就是您希望在客户端应用中使用的设置。

将直播绑定到数据流

每个 liveBroadcast 资源都必须绑定到恰好一个数据流,然后才能在 YouTube 上实际开始直播。(直播在创建时未绑定到任何数据流。) (直播在创建时未绑定到任何直播流。)

默认直播的绑定过程是自动处理的,默认直播与默认数据流密不可分。不过,在废弃日期之后,客户端应用需要管理所有直播的该过程。

如需将直播绑定到数据流,请按照 “直播的生命周期” 指南的 第 1.3 步中的 说明调用 liveBroadcasts.bind方法。

  • 如果您使用的是可重复使用的数据流,则可以创建一次数据流,然后将每个直播绑定到该数据流。
  • 如果您使用的是不可重复使用的数据流,则需要创建直播和数据流,然后将两者绑定在一起。

测试直播

如果不使用默认直播,您可以选择测试直播。如需进行测试,您可以嵌入一个播放器,让您预览直播视频在 YouTube 观看者面前的显示效果,但其他观看者看不到该直播。

如果您的 API 客户端之前使用了默认直播和数据流,并且您想在流处理过程中添加测试阶段,请参阅“直播的生命周期”指南的第 3 阶段。

如果您确实想测试数据流,则在插入直播时,需要 将 contentDetails.monitorStream.enableMonitorStream 属性设置为 true,并将 contentDetails.enableAutoStart 属性设置为 false。这两个属性的默认值都是如此。

使用自动启动和自动停止功能

每当您在默认数据流上开始流式传输视频时,默认直播都会自动启动。同样,默认直播会在您停止流式传输视频后结束。随后,使用这些默认资源的每个流式传输会话都会成为您频道中的一个视频。

虽然自动启动和自动停止功能是默认直播的默认行为,但这些功能是可选的,需要为其他直播启用。如果您想使用这些功能,则在插入直播时, 您需要将 contentDetails.enableAutoStart 和 contentDetails.enableAutoStop 属性值设置为 true。这些功能是独立的,因此您可以选择使用其中一个,而不是另一个。

如果您未为新直播启用自动启动和自动停止功能, 您的 API 客户端需要调用 liveBroadcasts.transition 方法来更新 直播的 状态,以便在您开始和结束流式传输视频时进行更新。在“直播的生命周期” 指南中,请参阅第 4.3 步 和第 5.2 步 ,了解有关在直播开始和结束时管理这些转换的说明。