概览
本指南面向使用 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 响应中标识liveBroadcast
资源,该资源的isDefaultBroadcast
属性值为true
。
弃用后,YouTube 将仅支持特定于活动的直播。
这意味着,客户端应用需要为每个单独的广播事件创建 liveBroadcast
资源,而不是依赖于默认广播。
如需创建 liveBroadcast
资源,请调用 liveBroadcasts.insert
方法。“广播的生命周期”指南的第 1.1 步中介绍了此流程。
如果您的用户界面尚未提供相关机制,则还需要提供相关机制,以便用户区分和选择即将到来的特定活动广播。
从默认视频流迁移
直播可让您将音频视频内容传输到 YouTube,并定义您向 YouTube 直播内容的方式。如果广播在不同时间播出,广播公司通常会重复使用同一直播流进行多次不同的广播。
即使您的应用无法使用默认直播流,也可以创建可重用的直播流,以便在每次广播时重复使用。如需创建 liveStream
资源,请按照“广播的生命周期”指南的第 1.2 步中的说明调用 liveStreams.insert
方法。默认情况下,新创建的流是可重用的。不过,如果您愿意,也可以将 contentDetails.isReusable
属性设置为 false
,以创建一次性使用的流,并在广播和流之间建立一对一的关系。
除了直播标题和直播说明之外,您还可以在创建新直播时设置以下四项属性。该列表显示了默认数据流针对每个媒体资源使用的值,如果您要弃用默认数据流,这些值很可能就是您要在客户端应用中使用的设置。
cdn.frameRate
-variable
cdn.ingestionType
-rtmp
cdn.resolution
-variable
contentDetails.isReusable
-true
将广播绑定到流
每个 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 步,了解如何在直播开始和结束时管理这些过渡。