注意:遵守 YouTube 开发者政策提供了相关指南和示例,可帮助您确保您的 API 客户端遵循 YouTube API 服务条款和政策(API TOS)的特定部分。本指南深入介绍了 YouTube 如何强制执行《API 服务条款》的某些方面,但不会取代任何现有文档。
本文档定义了实现或提供 YouTube API 服务的特定功能的 API 客户端(以下简称“API 客户端”)的最低功能要求。
这些要求和准则可确保 API 客户端提供一致的用户体验,从而保护 YouTube 用户、内容所有者和广告客户的利益。这些规则是 YouTube API 服务条款不可或缺的一部分,在开发和实现任何 API 客户端时都必须遵循这些规则。
本文件中的要求可能会发生变化,以便我们确保用户能获得更好的现有 YouTube 功能体验。随着 YouTube 推出新功能和更新功能,这些要求也会随之变化。有时,此类更改可能需要您更新 API 客户端以满足新要求。服务条款修订历史记录会记录所有更改,因此请经常查看该文档,或订阅其 RSS Feed,以确保您能够快速了解可能影响 API 客户端的更改。
除了本文档中的要求外,我们强烈建议您遵循 YouTube API 服务政策中所述的最佳实践,以及 YouTube API 服务文档中其他部分所述的最佳实践。即使不是严格要求,这些做法也有助于 API 客户端更快地从错误中恢复,并优化其配额用量(前提是客户端使用分配配额的 YouTube API 服务)。同时,这些做法有助于确保 YouTube 生态系统的健康,最重要的是,为 API 客户端和 YouTube 应用的用户提供尽可能出色的体验。
YouTube 嵌入式播放器和视频播放
本部分中的要求专门针对嵌入式 YouTube 播放器。YouTube API 服务政策还包含与播放 YouTube 视听内容的 API 客户端相关的多项政策。
嵌入式 YouTube 播放器尺寸
嵌入式播放器必须具有一个尺寸至少为200x200像素的视口。如果播放器显示控件,那么它必须足够大,可以在无需将视口缩小到最小尺寸以下的情况下完整显示控件。我们建议 16:9 播放器的宽至少为 480 像素、高至少为 270 像素。
自动播放和脚本化播放
本部分介绍了自动播放。此政策适用于使用 autoplay
播放器参数或使用 YouTube IFrame Player API 服务或其他 YouTube API 服务以编程方式启动自动播放的 YouTube 嵌入式播放器。
-
自动播放视频的内嵌播放器应在网页加载时或内嵌播放器完全可见时立即开始播放。不过,API 客户端必须等到播放器可见且超过一半的播放器在网页或屏幕上可见后,才能发起自动播放。
-
一个网页或屏幕上不得有多个同时自动播放内容的 YouTube 播放器。
-
用于启动播放的任何 YouTube 缩略图都必须至少为 120 像素宽、70 像素高。
YouTube 播放器属性
YouTube 播放器的属性和参数(例如,播放器中 YouTube 品牌的显示方式)在 YouTube API 文档和规范 (https://developers.google.com/youtube) 中进行了指定。您不得对 API 文档中未明确说明的 YouTube 播放器进行更改。
叠加层和帧
您不得在 YouTube 嵌入式播放器的任何部分(包括播放器控件)前面显示叠加层、框架或其他视觉元素。同样,您不得使用叠加层、框架或其他视觉元素遮盖嵌入式播放器的任何部分,包括播放器控件。
鼠标悬停次数
您不得在 YouTube 播放器上使用鼠标悬停或触摸事件代表用户发起任何操作,例如打开窗口或订阅频道。
上传视频
如果 API 客户端允许用户将内容上传到多个平台,用户应能够选择和取消选择要将视频上传到的平台。
数据要求
允许用户将视频上传到 YouTube 的 API 客户端必须允许用户设置以下列表中的值。未列出的任何属性都是可选属性。
名称 | 说明 | |
---|---|---|
资源属性 | ||
snippet.title |
必需。视频的标题。如果该值超过 100 个字符,YouTube 会返回错误。YouTube 支持所有有效的 UTF-8 字符,但 < 和 > 除外。
| |
snippet.description |
必需。视频的说明。如果该值超过 5000 字节,YouTube 会返回错误。YouTube 支持所有有效的 UTF-8 字符,但 < 和 > 除外。 |
|
status.privacyStatus |
必需。视频的隐私设置。用户必须能够选择上传的视频是公开、私享还是不公开列出。 | |
请求参数 | ||
onBehalfOfContentOwnerChannel |
在特定条件下必需。如果请求的授权凭据标识了内容所有者,并且设置了 onBehalfOfContentOwner 参数,API 用户还必须能够指定要将视频上传到的 YouTube 频道。 |
显示评论
名称 | 说明 | |
---|---|---|
资源属性 | ||
snippet.textDisplay |
必需。评论的文本。API 客户端必须执行以下操作之一:(a) 显示评论或评论回复的完整文本,或 (b) 截断文本,并提供一种方式供观看者从截断版本轻松访问完整文本。 无论评论与哪种类型的资源(视频、频道等)相关联,此要求都适用于所有评论和评论回复。 请注意, commentThread 资源的 snippet.topLevelComment 属性值是 comment 资源,而 replies.comments[] 属性是 comment 资源的列表。因此,此要求也适用于 snippet.topLevelComment.snippet.textDisplay 和 replies.comments[].snippet.textDisplay 属性。 |
|
snippet.title ( channel ) |
必填(建议)。频道的标题。
|
|
snippet.title ( video ) |
随条件发生变化(建议)。视频的标题。如果评论与视频相关,则必须显示此值。 | |
snippet.moderationStatus |
在特定条件下必需。如果 API 请求中的 moderationStatus 参数值为 heldForReview 或 likelySpam ,则显示屏必须使用属性值、类似用语(例如“此评论正在等待审核”)、标题(例如“待审核”)或其他明确无误的用语来明确说明该状态。commentThreads.list 方法支持根据评论的审核状态检索评论。 |
添加注释
名称 | 说明 | |
---|---|---|
资源属性 | ||
snippet.title ( channel ) |
必需。频道的标题。
|
|
snippet.title ( video ) |
必需。如果用户要添加有关视频的评论,API 客户端必须显示视频的标题。 | |
其他要求 | ||
Comment author's channel name |
必需。API 客户端必须明确指明将归因于哪个 YouTube 用户账号的评论。如果请求的授权凭据可识别内容所有者,并且已设置 onBehalfOfContentOwner 参数,API 用户还必须能够指定将归因于哪个 YouTube 频道的评论。 |
添加评论回复
名称 | 说明 | |
---|---|---|
资源属性 | ||
snippet.textDisplay |
必需。评论的文本。API 客户端必须根据本文档显示评论部分中定义的规则显示用户要回复的评论的文本。 | |
snippet.title ( channel ) |
必需。频道的标题。
|
|
snippet.title ( video ) |
必需。如果用户回复的是关于某个视频的评论,API 客户端必须显示该视频的标题。 | |
其他要求 | ||
Comment author's channel name |
必需。API 客户端必须明确指明将归因于哪个 YouTube 用户账号的评论回复。如果请求的授权凭据标识了内容所有者,并且设置了 onBehalfOfContentOwner 参数,API 用户还必须能够指定将评论回复归因到的 YouTube 频道。 |
修改或删除评论回复
名称 | 说明 | |
---|---|---|
资源属性 | ||
snippet.textDisplay |
必需。评论的文本。API 客户端必须根据本文档显示评论部分中定义的规则显示用户正在编辑或删除的评论的文本。 | |
snippet.title ( channel ) |
必需。频道的标题。
|
|
snippet.title ( video ) |
必需。如果用户正在修改或删除与视频有关的评论,API 客户端必须显示视频的标题。 | |
其他要求 | ||
Comment author's channel name |
必需。API 客户端必须明确指明该评论归属的 YouTube 用户账号。 |
禁止用户参与实时聊天(或解除禁播)
名称 | 说明 | |
---|---|---|
资源属性 | ||
snippet.title ( channel ) |
必需。被禁或解禁的 YouTube 频道的名称。此外,名称必须链接到频道,或者必须显示频道网址。 | |
其他要求 | ||
评论作者的频道名称 | 必需。API 客户端必须明确说明用于添加或移除禁令的 YouTube 用户账号。 |