注意:遵守 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 Android Player API 服务或其他 YouTube API 服务以编程方式启动自动播放的 YouTube 嵌入式播放器。
-
自动播放视频的嵌入式播放器应在网页加载时或嵌入式播放器完全可见时立即开始播放。但是,除非播放器可见且播放器的一半以上显示在网页或屏幕上,否则 API 客户端不得启动自动播放。
-
一个网页或屏幕最多只能有一个可同时自动播放内容的 YouTube 播放器。
-
可开始播放的 YouTube 缩略图必须至少为 120 像素宽,至少 70 像素高。
YouTube 播放器属性
YouTube API 文档和规范 (https://developers.google.com/youtube) 指定了 YouTube 播放器的属性和参数(包括播放器中 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 资源列表。comment replies.comments[] 因此,此要求也适用于 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 用户账号。 |