API Reference

YouTube 数据 API 可让您将通常在 YouTube 网站上执行的函数整合到您自己的网站或应用中。以下列表指明了您可以使用 API 检索的不同资源类型。该 API 还支持插入、更新或删除其中许多资源的方法。

本参考指南介绍了如何使用该 API 执行所有这些操作。本指南按资源类型组织整理。资源表示构成 YouTube 体验的一类内容,例如视频、播放列表或订阅。对于每种资源类型,指南都会列出一种或多种数据表示形式,资源表示为 JSON 对象。本指南还针对每种资源类型列出了一个或多个受支持的方法(LISTPOSTDELETE 等),并说明了如何在应用中使用这些方法。

调用 API

以下要求适用于 YouTube Data API 请求:

  1. 每个请求都必须指定一个 API 密钥(通过 key 参数)或提供 OAuth 2.0 令牌。您可以在 Developer ConsoleAPI 访问权限窗格中找到您项目的 API 密钥。

  2. 必须为每个插入、更新和删除请求发送授权令牌。对于任何检索经过身份验证的用户的私有数据的请求,您还必须发送授权令牌。

    此外,某些用于检索资源的 API 方法可能支持需要授权的参数,或者在请求获得授权后可能包含其他元数据。例如,如果检索某个用户上传的视频的请求获得了该特定用户的授权,那么其中也可能包含私有视频。

  3. 该 API 支持 OAuth 2.0 身份验证协议。您可以通过以下任一方式提供 OAuth 2.0 令牌:

    • 按照以下方式使用 access_token 查询参数:?access_token=oauth2-token
    • 请使用 HTTP Authorization 标头,如下所示:Authorization: Bearer oauth2-token

    有关如何在应用中实现 OAuth 2.0 身份验证的完整说明,请参阅身份验证指南

资源类型

活动

activity 资源包含特定频道或用户在 YouTube 上采取的操作的相关信息。活动 Feed 中报告的操作包括对视频评分、分享视频、将视频标记为收藏、上传视频等。每个 activity 资源都标识了操作类型、与操作相关联的频道以及与操作相关联的资源,例如已评分或上传的视频。

如需详细了解此资源,请参阅其资源表示形式属性列表。

方法 HTTP 请求 说明
相对于 https://www.googleapis.com/youtube/v3 的 URI
list GET /activities 返回符合请求条件的渠道活动事件列表。例如,您可以检索与特定频道或用户自己的频道相关的事件。
insert POST /activities 注意:此方法已弃用,不再受支持。

字幕

caption 资源表示 YouTube 字幕轨道。一个字幕轨道只能与一个 YouTube 视频相关联。

如需详细了解此资源,请参阅其资源表示形式属性列表。

方法 HTTP 请求 说明
相对于 https://www.googleapis.com/youtube/v3 的 URI
delete DELETE /captions 删除指定的字幕轨道。
download GET /captions/id 下载字幕轨。除非请求为 tfmt 参数指定了值,否则系统会以原始格式返回字幕轨道;并且,除非该请求为 tlang 参数指定了值,否则将使用原始语言。
insert POST /captions 上传字幕轨。
list GET /captions 返回与指定视频相关联的字幕轨道列表。请注意,API 响应不包含实际字幕,并且 captions.download 方法提供了检索字幕轨道的功能。
update PUT /captions 更新字幕轨道。在更新字幕轨道时,您可以更改轨道的草稿状态和/或上传新的字幕文件。

频道横幅

channelBanner 资源包含用于将新上传的图片设置为频道的横幅图片的网址。

如需详细了解此资源,请参阅其资源表示形式属性列表。

方法 HTTP 请求 说明
相对于 https://www.googleapis.com/youtube/v3 的 URI
insert POST /channelBanners/insert 将频道横幅图片上传到 YouTube。在更新频道横幅图片的三步流程中,此方法的前两个步骤如下:

  1. 调用 channelBanners.insert 方法将二进制图片数据上传到 YouTube。图片的宽高比必须为 16:9,尺寸必须至少为 2048x1152 像素。我们建议您上传一张 2560x1440 像素的图片。
  2. 从 API 针对第 1 步返回的响应中提取 url 属性的值。
  3. 调用 channels.update 方法来更新频道的品牌信息设置。将 brandingSettings.image.bannerExternalUrl 属性的值设为第 2 步中获得的网址。

频道版块

channelSection 资源包含频道选择推介的一组视频的相关信息。例如,一个版块中可以展示频道最新上传的视频、最热门的上传视频或一个或多个播放列表中的视频。

请注意,只有当频道以浏览视图(而不是 Feed 视图)显示内容时,频道的版块才会显示。若要让一个频道在浏览视图中显示内容,请将指定频道的 brandingSettings.channel.showBrowseView 属性设置为 true

一个频道最多可以创建 10 个搁架。

如需详细了解此资源,请参阅其资源表示形式属性列表。

方法 HTTP 请求 说明
相对于 https://www.googleapis.com/youtube/v3 的 URI
delete DELETE /channelSections 删除频道版块。
insert POST /channelSections 向经过身份验证的用户的渠道添加渠道部分。一个频道最多可以创建 10 个搁架。
list GET /channelSections 返回符合 API 请求条件的 channelSection 资源列表。
update PUT /channelSections 更新频道版块。

频道

channel 资源包含有关 YouTube 频道的信息。

如需详细了解此资源,请参阅其资源表示形式属性列表。

方法 HTTP 请求 说明
相对于 https://www.googleapis.com/youtube/v3 的 URI
list GET /channels 返回符合请求条件的零个或多个 channel 资源的集合。
update PUT /channels 更新频道的元数据。请注意,此方法目前仅支持更新 channel 资源的 brandingSettingsinvideoPromotion 对象及其子属性。

CommentThreads

commentThread 资源包含有关 YouTube 评论会话的信息,其中包括一条顶级评论和对该评论的回复(如果有)。commentThread 资源可以表示关于视频或频道的评论。

顶级评论和回复实际上都是嵌套在 commentThread 资源中的 comment 资源。commentThread 资源不一定包含某条评论的所有回复,如果您想检索特定评论的所有回复,则需要使用 comments.list 方法。另请注意,某些评论没有回复。

如需详细了解此资源,请参阅其资源表示形式属性列表。

方法 HTTP 请求 说明
相对于 https://www.googleapis.com/youtube/v3 的 URI
list GET /commentThreads 返回与 API 请求参数匹配的评论线程列表。
insert POST /commentThreads 创建新的顶级评论。如需对现有评论添加回复,请改用 comments.insert 方法。

评论

comment 资源包含一条 YouTube 评论的相关信息。comment 资源可以表示关于视频或频道的评论。此外,该评论可以是顶级评论或对顶级评论的回复。

如需详细了解此资源,请参阅其资源表示形式属性列表。

方法 HTTP 请求 说明
相对于 https://www.googleapis.com/youtube/v3 的 URI
list GET /comments 返回与 API 请求参数匹配的注释列表。
setModerationStatus POST /comments/setModerationStatus 设置一条或多条评论的审核状态。该 API 请求必须获得与评论相关联的频道或视频的所有者授权。
insert POST /comments 创建对现有评论的回复。注意:如需创建顶级评论,请使用 commentThreads.insert 方法。
markAsSpam POST /comments/markAsSpam 注意:此方法已弃用,不再受支持。
delete DELETE /comments 删除评论。
update PUT /comments 修改评论。

指南类别

guideCategory 资源用于标识 YouTube 根据频道的内容或其他指标(例如频道的热门程度)通过算法指定的类别。该列表与视频类别类似,不同之处在于视频上传者可以指定视频类别,但只有 YouTube 可以指定频道类别。

如需详细了解此资源,请参阅其资源表示形式属性列表。

方法 HTTP 请求 说明
相对于 https://www.googleapis.com/youtube/v3 的 URI
list GET /guideCategories 返回可与 YouTube 频道相关联的类别列表。

国际化语言

i18nLanguage 资源用于标识 YouTube 网站支持的应用语言。应用语言也称为界面语言。对于 YouTube 网站,系统会根据 Google 帐号设置、浏览器语言或 IP 位置自动选择应用语言。用户还可以从 YouTube 网站页脚中手动选择所需的界面语言。

每个 i18nLanguage 资源都标识一个语言代码和名称。调用 videoCategories.listguideCategories.list 等 API 方法时,语言代码可用作 hl 参数的值。

如需详细了解此资源,请参阅其资源表示形式属性列表。

方法 HTTP 请求 说明
相对于 https://www.googleapis.com/youtube/v3 的 URI
list GET /i18nLanguages 返回 YouTube 网站支持的应用语言列表。

I18n 区域

i18nRegion 资源用于标识 YouTube 用户可以选为首选内容区域的地理区域。内容区域也称为内容语言区域。对于 YouTube 网站,系统可能会根据 YouTube 网域或用户的 IP 位置等启发法自动选择内容区域。用户还可以从 YouTube 网站页脚中手动选择所需的内容区域。

每个 i18nRegion 资源都标识了一个区域代码和名称。调用 search.listvideos.listactivities.listvideoCategories.list 等 API 方法时,可将地区代码用作 regionCode 参数的值。

如需详细了解此资源,请参阅其资源表示形式属性列表。

方法 HTTP 请求 说明
相对于 https://www.googleapis.com/youtube/v3 的 URI
list GET /i18nRegions 返回 YouTube 网站支持的内容区域列表。

会员

member 资源表示 YouTube 频道的频道会员。会员可定期为创作者提供资金支持,并享受特殊福利。例如,如果创作者为聊天开启会员专享模式,会员就可以聊天。

如需详细了解此资源,请参阅其资源表示形式属性列表。

方法 HTTP 请求 说明
相对于 https://www.googleapis.com/youtube/v3 的 URI
list GET /members 列出频道的成员(以前称为“赞助者”)。该 API 请求必须获得频道所有者的授权。

会员级别

membershipsLevel 资源用于标识对 API 请求进行了授权的创建者的价格级别。

如需详细了解此资源,请参阅其资源表示形式属性列表。

方法 HTTP 请求 说明
相对于 https://www.googleapis.com/youtube/v3 的 URI
list GET /membershipsLevels 返回授权 API 请求的渠道所拥有的零个或多个 membershipsLevel 资源的集合。关卡按隐式显示顺序返回。

PlaylistItem(播放列表项)

playlistItem 资源用于标识播放列表中包含的其他资源,例如视频。此外,playlistItem 资源还包含所添加资源的详细信息,这些详细信息与该资源在该播放列表中的使用方式相关。

YouTube 还使用播放列表来标识频道的已上传视频列表,其中列表中的每个 playlistItem 表示一个上传的视频。您可以从指定频道的 channel resource 中检索该列表的播放列表 ID。然后,您可以对该列表使用 playlistItems.list 方法。

如需详细了解此资源,请参阅其资源表示形式属性列表。

方法 HTTP 请求 说明
相对于 https://www.googleapis.com/youtube/v3 的 URI
delete DELETE /playlistItems 删除播放列表项。
insert POST /playlistItems 将资源添加到播放列表中。
list GET /playlistItems 返回与 API 请求参数匹配的播放列表项集合。您可以检索指定播放列表中的所有播放列表项目,也可以通过唯一 ID 检索一个或多个播放列表项目。
update PUT /playlistItems 修改播放列表项。例如,您可以更新项在播放列表中的位置。

播放列表

playlist 资源表示 YouTube 播放列表。播放列表是可以连续观看并与其他用户分享的一组视频。一个播放列表最多可包含 200 个视频,YouTube 不限制每位用户创建的播放列表数量。默认情况下,播放列表对其他用户是公开显示的,但可以是公开或私享的。

YouTube 还会使用播放列表来为频道找出特别的视频集合,例如:

  • 已上传的视频
  • 好评(顶)的视频
  • 观看记录
  • 稍后观看
更具体地说,这些列表与一个频道相关联,频道汇集了个人、群组或公司的视频、播放列表和其他 YouTube 信息。您可以从指定频道的 channel resource 中检索每个列表的播放列表 ID。

然后,您可以使用 playlistItems.list 方法来检索其中的任何列表。您还可以通过调用 playlistItems.insertplaylistItems.delete 方法,在这些列表中添加或移除项。

如需详细了解此资源,请参阅其资源表示形式属性列表。

方法 HTTP 请求 说明
相对于 https://www.googleapis.com/youtube/v3 的 URI
delete DELETE /playlists 删除播放列表。
list GET /playlists 返回与 API 请求参数匹配的播放列表集合。例如,您可以检索经过身份验证的用户拥有的所有播放列表,也可以按照唯一 ID 检索一个或多个播放列表。
insert POST /playlists 创建播放列表。
update PUT /playlists 修改播放列表。例如,您可以更改播放列表的标题、说明或隐私状态。

搜索结果包含与 API 请求中指定的搜索参数相匹配的 YouTube 视频、频道或播放列表的相关信息。虽然搜索结果指向可唯一标识的资源(如视频),但它没有自己的持久性数据。

如需详细了解此资源,请参阅其资源表示形式属性列表。

方法 HTTP 请求 说明
相对于 https://www.googleapis.com/youtube/v3 的 URI
list GET /search 返回与 API 请求中指定的查询参数匹配的搜索结果集合。默认情况下,搜索结果集会识别匹配的 videochannelplaylist 资源,但您也可以将查询配置为仅检索特定类型的资源。

订阅数

subscription 资源包含有关 YouTube 用户订阅的信息。订阅会在频道中添加新视频或其他用户在 YouTube 上执行多项操作(例如上传视频、为视频评分或对视频发表评论)时发出通知。

如需详细了解此资源,请参阅其资源表示形式属性列表。

方法 HTTP 请求 说明
相对于 https://www.googleapis.com/youtube/v3 的 URI
delete DELETE /subscriptions 删除订阅。
insert POST /subscriptions 为经过身份验证的用户的频道添加订阅。
list GET /subscriptions 返回与 API 请求条件匹配的订阅资源。

缩略图

thumbnail 资源用于标识与资源相关联的不同缩略图图片大小。请注意缩略图的以下特征:

  • 资源的 snippet.thumbnails 属性是一个对象,用于标识该资源可用的缩略图。
  • thumbnail 资源包含一系列对象。每个对象的名称(defaultmediumhigh 等)均指缩略图大小。
  • 不同类型的资源可能支持不同的缩略图大小。
  • 不同类型的资源可能会为同名的缩略图定义不同的尺寸。例如,video 资源的 default 缩略图通常为 120 x 90 像素,channel 资源的 default 缩略图通常为 88 x 88 像素。
  • 同一类型的资源在某些图片上可能仍然具有不同的缩略图大小,具体取决于原始图片或上传到 YouTube 的内容的分辨率。例如,与非高清视频相比,高清视频支持的缩略图分辨率更高。
  • 每个包含缩略图大小相关信息的对象都有一个 width 属性和 height 属性。但是,可能无法返回该图片的宽度和高度属性。
  • 如果上传的缩略图不符合要求的尺寸,系统会调整图片尺寸以匹配正确的尺寸,而不更改其宽高比。图片未裁剪,但可能包含黑条,以便大小正确。

如需详细了解此资源,请参阅其资源表示形式属性列表。

方法 HTTP 请求 说明
相对于 https://www.googleapis.com/youtube/v3 的 URI
set POST /thumbnails/set 将自定义视频缩略图上传到 YouTube 并为视频设置该缩略图。

视频滥用举报原因

videoAbuseReportReason 资源包含有关视频因包含侮辱性内容而被举报的原因的信息。当您的应用调用 videos.reportAbuse 方法来举报滥用视频时,该请求会使用 videoAbuseReportReason 资源中的信息来确定视频被举报的原因。

如需详细了解此资源,请参阅其资源表示形式属性列表。

方法 HTTP 请求 说明
相对于 https://www.googleapis.com/youtube/v3 的 URI
list GET /videoAbuseReportReasons 检索可用于举报滥用视频的原因列表。

视频类别

videoCategory 资源用于标识已经或可与上传的视频相关联的类别。

如需详细了解此资源,请参阅其资源表示形式属性列表。

方法 HTTP 请求 说明
相对于 https://www.googleapis.com/youtube/v3 的 URI
list GET /videoCategories 返回可与 YouTube 视频相关联的类别列表。

视频

video 资源表示 YouTube 视频。

如需详细了解此资源,请参阅其资源表示形式属性列表。

方法 HTTP 请求 说明
相对于 https://www.googleapis.com/youtube/v3 的 URI
insert POST /videos 将视频上传到 YouTube,并视需要设置视频的元数据。
list GET /videos 返回与 API 请求参数匹配的视频列表。
delete DELETE /videos 删除 YouTube 视频。
update PUT /videos 更新视频的元数据。
rate POST /videos/rate 为视频添加“顶”或“踩”评分,或者移除视频的评分。
getRating GET /videos/getRating 检索授权用户对指定视频列表的评分。
reportAbuse POST /videos/reportAbuse 举报包含侮辱性内容的视频。

水印

watermark 资源用于标识在指定频道的视频播放期间显示的图片。您还可以指定图片要链接的目标频道,以及有关确定水印何时在视频播放期间出现以及显示时长的时间详情。

如需详细了解此资源,请参阅其资源表示形式属性列表。

方法 HTTP 请求 说明
相对于 https://www.googleapis.com/youtube/v3 的 URI
set POST /watermarks/set 将水印图片上传到 YouTube 并为频道设置水印。
unset POST /watermarks/unset 删除频道的水印图片。