有关弃用默认广播和流的迁移指南

概览

本指南适用于使用 YouTube 频道的默认 liveStreamliveBroadcast 资源流式传输直播内容的 API 客户端应用的开发者。旨在帮助您确保应用能够妥善处理默认广播和默认流的弃用,如果以下任一条件适用于您的应用,则与您相关:

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

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

如果您的应用受到影响,请参阅更新您的应用部分,其中介绍了您的应用由于弃用而可能需要执行的程序更改。该部分指出了广播的生命周期指南中的特定步骤。如果您的 API 客户端目前使用默认的广播和流,通常可能不会遵循该步骤。

发生了什么?

自 2015 年以来,如果频道启用了直播功能,YouTube 就会自动为频道创建默认直播和默认广播。默认流无限期存在,无法删除。同样,默认广播也被视为永久性广播。它始终存在,没有关联的开始时间或结束时间,也未绑定到特定事件。

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

API 客户端需要创建和管理 liveBroadcastliveStream 资源并将这些资源结合在一起,而不是依赖于默认资源。

更新应用

为了快速了解术语,广播表示可以在 YouTube 上观看发生的事件,是将实际视频内容发送到 YouTube 的机制。广播可以而且需要绑定到一个数据流。

从默认广播迁移

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

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

  • 它会将 broadcastType 参数值设为 persistent。此请求只会检索默认广播。
  • 它会将 broadcastType 参数值设为 all,然后在 API 响应中标识 isDefaultBroadcast 属性值为 trueliveBroadcast 资源。

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

如需创建 liveBroadcast 资源,请调用 liveBroadcasts.insert 方法。“直播的生活”指南的第 1.1 步对此过程进行了说明。

如果您还没有这样做,您的界面还需要提供机制来让用户区分和选择即将进行的特定于活动的广播。

从默认数据流迁移

流可用于将音频视频内容传输到 YouTube,并定义了有关如何将内容流式传输到 YouTube 的设置。如果多个广播发生在不同的时间,则广播器通常会重复使用同一广播进行很多不同的广播。

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

以下列表包含您在创建新数据流时可以设置的数据流标题数据流说明这四个属性。此列表显示了默认数据流针对每个属性使用的值,如果您要停止使用默认数据流,可能需要在客户端应用中使用这些设置。

将广播绑定到流

每个 liveBroadcast 资源都必须绑定到一个数据流,这样 YouTube 的直播才能真正开始。(此广播在创建时未绑定到任何数据流。)

系统会自动处理默认广播的绑定过程,默认广播与默认流密不可分。不过,在弃用日期之后,客户端应用需要管理所有广播的流程。

如需将广播绑定到流,请调用 liveBroadcasts.bind 方法,如“广播的生命周期”指南的第 1.3 步所述。

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

测试您的广播

如果不使用默认广播,您可以选择测试广播。如需进行测试,您需要嵌入一个播放器,以便您可以预览向 YouTube 观看者显示的广播视频,但其他观看者无法看到广播。

如果您的 API 客户端之前使用默认广播和流,并且您希望为流式传输过程添加测试阶段,请参阅“广播的生命周期”指南的第 3 阶段

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

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

每当您在默认流中开始流式传输视频时,默认广播就会自动开始。同样,在您停止流式传输视频后,默认广播也会结束。随后,使用这些默认资源的每个在线播放会话都会变成您频道中的视频。

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

如果您未启用新广播的自动启动和自动停止功能,则您的 API 客户端需要在启动和完成流式视频时调用 liveBroadcasts.Transition 方法以更新广播状态。在“广播的生命周期”指南中,请参阅第 4.3 步第 5.2 步,了解如何在广播开始和结束时管理这些过渡。