本页面列出了 YouTube Data API (v3) 的变更和文档更新。
2026 年 11 月 2 日
通过未经验证的 API 项目中的 videos.insert 方法上传的视频不再仅限私享观看模式。此项变更推翻了 2020 年 7 月 28 日宣布的政策,该政策规定,在 2020 年 7 月 28 日之后创建的未经验证的 API 项目中上传的视频,在项目完成审核之前,只能以私享模式观看。
如果您未在 videos.insert 请求中为 status.privacyStatus 属性指定值,则上传的视频的隐私状态默认为 public。如 YouTube 帮助中心所述,根据创作者账号设置,某些上传内容可能会默认设为private。
2026 年 10 月 15 日
videos.list 方法已阐明,status.selfDeclaredMadeForKids 和 status.madeForKids 属性仅在请求中指定时才会更新,如果省略则不会被覆盖。
2026 年 9 月 30 日
comments 资源定义已更新,其中包含新的 snippet.imageUrl 属性,该属性提供附加到评论的图片或 GIF 动画的网址。
此功能将于 2026 年 11 月面向所有用户推出。
2026 年 9 月 14 日
此更新包含以下更改:
thumbnails.set方法说明已更新,指出上传的缩略图的文件大小上限已从 2MB 增加到 50MB。playlistImages.insert方法说明已更新,其中指出上传图片的文件大小上限已从 2MB 增加到 50MB。
2026 年 9 月 11 日
activities、liveBroadcasts、playlistItems、playlists、search 和 videos 资源的参考文档中更新了 snippet.thumbnails.(key) 属性的定义,指出现在某些视频可以使用更高分辨率的缩略图尺寸:fhd (1080p)、qhd (1440p) 和 uhd (4K)。
2026 年 9 月 1 日
videos.getRating 方法现在接受 https://www.googleapis.com/auth/youtube.readonly 授权范围。
2026 年 8 月 27 日
YouTube 将统一所有视频格式(长视频、直播和 Shorts 短视频)的公开观看次数统计方法。只要视频开始播放,YouTube 就会统计公开观看次数。
创收资格条件和大多数核心效果指标不受影响,因为它们仍然基于互动指标。创作者的收入仍将根据“感兴趣的 Shorts 观看次数”和“感兴趣的观看时长”计算,您可以在 YouTube 数据分析 > 高级模式中查看这些数据。
YouTube 合作伙伴计划的资格要求没有变化。YouTube 合作伙伴计划的加入要求现在也将称为“有效 Shorts 观看次数”和“有效观看时长”(之前称为“有效公开 Shorts 观看次数”和“有效公开视频观看时长”)。
如需了解详情,请参阅了解 YouTube 内容的表现。
| 指标 | 状态 | 触发器 | 用途 |
|---|---|---|---|
| 查看 | 已更新 | 视频从第一帧开始播放(包括自动播放、将指针悬停在视频上以及点击/点按播放)。 | 标准公开观看次数。 |
| 感兴趣的观看 | 未更改 | 播放继续,超过第一帧,或者用户点击/点按播放。 | 通过 YouTube 合作伙伴计划创收、大部分核心分析功能(点击率、平均观看时长)以及互动报告。 |
| 缩略图展示 | 未更改 | 缩略图在没有互动或自动播放的情况下显示。 | 衡量 Feed 级曝光度和打包情况。 |
API 文档更新:更新了频道和视频参考文档中 viewCount 字段的说明。
2026 年 8 月 6 日
此更新包含以下更改:
- 由于 API 不会返回
activities.contentDetails下的contentDetails.like和contentDetails.favorite字段,因此我们已从公开文档中移除了对这些字段的所有引用。
2026 年 7 月 7 日
此更新包含以下更改:
该 API 现在支持 videos 资源中的 brandPartner 部分。此部分包含与视频关联的品牌合作伙伴的详细信息,适用于由创作者发起的品牌合作伙伴访问权限。
调用以下方法时,可以指定 brandPartner 部分:
brandPartner 对象包含以下字段:
channelId:品牌合作伙伴的外部频道 ID。channelHandle:品牌合作伙伴的频道标识名。
channelId 或 channelHandle,但响应中仅返回 channelId。
2026 年 6 月 23 日
此更新包含以下更改:
liveChatMessages下对messageDeletedEvent和messageRetractedEvent资源类型(及其对应的messageDeletedDetails和messageRetractedDetails对象)的所有引用均已移除,因为 API 不会返回这些事件。
2026 年 6 月 3 日
此更新包含以下更改:
该 API 现在支持一种新方法 videos.batchGetStats,该方法可检索与 API 请求参数匹配的视频统计信息列表。
调用此方法会在其自己的精细配额存储桶中产生 1 个单位的配额费用。该方法的默认配额为每天 10,000 个单位。
2026 年 6 月 1 日
YouTube Data API 正在过渡到涵盖较小方法集的精细配额系统,首先从 videos.insert 和 search.list 开始。
此次更新简化了配额增加流程,让 YouTube 能够更轻松地根据特定方法的使用情况验证和批准请求。此次过渡也是我们致力于保障平台稳定性和安全性的关键举措,旨在确保每位开发者都能在受保护的生态系统中运营,同时保留其获批用例所需的访问权限级别。
对 videos.insert 和 search.list 方法的 API 调用将计入各自的配额桶。对所有其他方法的 API 调用将计入现有配额存储桶。开发者可以在 Google Cloud 控制台中查看配额限制,并可以通过配额扩展表单申请更多配额。
2025 年 12 月 4 日
YouTube Data API 文档和配额计算器已更新,反映了视频上传配额费用从大约 1,600 个单位更改为大约 100 个单位。
2025 年 7 月 10 日
自 2025 年 7 月 21 日起,YouTube 将调整 video.list 方法的 mostPopular 图表返回的内容。过去,mostPopular排行榜反映的是“时下流行”列表中的视频。现在,mostPopular排行榜将收录“时下流行音乐”“时下流行电影”和“时下流行游戏”排行榜中的视频。此次 API 变更与 YouTube “时下流行”页面的弃用同步进行。
2025 年 3 月 26 日
自 2025 年 3 月 31 日起,YouTube 将更改 Shorts 观看次数的统计方式。过去,短视频的播放时长达到一定的秒数之后,系统才会统计一次 Shorts 观看。现在,“观看次数”这项指标将统计短视频开始播放或重放的次数,而且没有最低观看时长要求。 了解详情
自 2025 年 3 月 31 日起,Data API 中的以下字段将根据此变更返回 Shorts 观看次数:
channels.statistics.viewCountvideos.statistics.viewCount
2024 年 10 月 30 日
该 API 现在支持识别包含逼真的加工或合成 (A/S) 内容的视频。详细了解与 A/S 内容相关的 YouTube 政策。
A/S 内容的示例包括:
- 呈现真实人物的言论或行为,但实际并非本人言行
- 加工有关真实事件或地点的视频片段
- 生成逼真但实际并不存在的场景
如需指明视频是否包含 A/S 内容,请设置 status.containsSyntheticMedia 属性。调用 videos.insert 或 videos.update 方法时,可以设置此属性。如果设置了该属性,则会在 video 资源中返回该属性。
2024 年 4 月 30 日
注意:这是一则弃用公告。
此更新包含以下更改:
该 API 不再支持插入或检索频道讨论。此变更与 YouTube 网站支持的功能一致,该网站不支持向频道发布评论。
2024 年 3 月 13 日
注意:这是一则弃用公告。
此更新包含以下更改:
captions.insert 和 captions.update 方法的 sync 参数已废弃。YouTube 将于 2024 年 4 月 12 日停止支持该参数。
由于这项变更,开发者在插入或更新字幕轨道时必须包含时间信息,否则上传将会失败。
2024 年 3 月 12 日
此更新包含以下更改:
captions 资源的文档已更新,其中指出 snippet.name 字段允许的最大长度为 150 个字符。如果轨道名称超过该长度,API 会返回 nameTooLong 错误。
2024 年 3 月 7 日
注意:这是一则弃用公告。
channel 资源属性 brandingSettings.channel.moderateComments 已弃用。YouTube 将于 2024 年 3 月 7 日停止支持该参数。
2024 年 1 月 31 日
此更新包含以下更改:
channels.list 方法的新 forHandle 参数可让您通过指定频道的 YouTube 标识名来检索该频道的相关信息。
2023 年 11 月 9 日
由于 videoId 资源未通过 API 调用返回,因此 Comments 下对 videoId 资源的所有引用均已移除。
2023 年 9 月 12 日
注意:这是一则弃用公告。
comments.markAsSpam 方法已弃用多年。YouTube 已不再支持此方法,并且该方法也不再通过 API 受支持。
所有引用 comments.markAsSpam 方法的文档中都添加了弃用通知。
2023 年 8 月 22 日
search.list 方法现在支持 videoPaidProductPlacement 参数。借助此参数,您可以过滤搜索结果,以便仅包含创作者已指明包含付费宣传内容的视频。
2023 年 8 月 18 日
video 资源的 liveStreamingDetails.concurrentViewers 的定义已更新,其中指出 YouTube Data API 返回的同时观看人数可能与通过 YouTube 数据分析提供的经过处理、去垃圾内容的同时观看人数不同。YouTube 帮助中心提供了有关直播指标的更多信息。
2023 年 8 月 7 日
正如 2023 年 6 月 12 日所宣布,search.list 方法的 relatedToVideoId 参数已被弃用。该参数不再受支持,并且对该参数的引用已从 API 文档中移除。
2023 年 6 月 28 日
thumbnails.set 方法现在支持 uploadRateLimitExceeded 错误,该错误表示频道在过去 24 小时内上传了太多缩略图,应稍后再试。
2023 年 6 月 12 日
注意:这是一则弃用公告。
search.list 方法的 relatedToVideoId 参数已弃用。YouTube 将于 2023 年 8 月 7 日停止支持该参数。
目前,search.list 方法的文档中已添加弃用通知。此参数将于 2023 年 8 月 7 日或之后从 search.list 文档中完全移除。
此外,API 实现指南中还移除了一个演示如何检索相关视频的示例。
2022 年 8 月 22 日
将 video.statistics 字段的类型注释从无符号长整型更正为字符串。
2022 年 8 月 5 日
YouTube 更改了字幕 ID 的生成方式,并在此过程中为所有字幕轨道分配了新的字幕 ID。对于存储 caption_id 值的应用,此更改可能是不向后兼容的更改,但不会影响不存储 caption_id 值的应用。
从现在到 2022 年 12 月 1 日,captions.list、captions.update、captions.download 和 captions.delete 方法将同时支持新旧字幕轨道 ID。不过,自 2022 年 12 月 1 日起,YouTube 将停止支持旧版字幕轨道 ID。届时,使用旧字幕轨道 ID 调用任何这些 API 方法都会导致 captionNotFound 错误。
为应对这一变化,您应计划在现在到 2022 年 12 月 1 日之间完全替换所有存储的字幕轨道数据。这意味着,对于您存储了字幕轨道数据的任何视频,您都应删除当前存储的数据,然后调用 captions.list 方法来检索该视频的当前字幕轨道集,并像往常一样存储 API 响应中的数据。
2022 年 7 月 12 日
《YouTube API 服务的服务条款》已更新。如需了解详情,请参阅 YouTube API 服务的服务条款 - 修订历史记录。
2022 年 4 月 27 日
videos.insert 方法说明已更新,其中指出上传视频的文件大小上限已从 128GB 增加到 256GB。
2022 年 4 月 8 日
subscriptions.list 方法的 myRecentSubscribers 和 mySubscribers 参数定义均已更新,以说明 API 返回的订阅者数量上限可能会受到限制。
此变更属于文档更正,API 行为并未发生变化。
2021 年 12 月 15 日
正如我们在 2021 年 11 月 18 日宣布的那样,随着整个 YouTube 平台上的视频“不喜欢”数量变为不公开,video 资源的 statistics.dislikeCount 属性现在也变为不公开。
如需详细了解此项变更,请访问 YouTube 的官方博客。
2021 年 11 月 18 日
随着整个 YouTube 平台上的视频“不喜欢”数量改为不公开,video 资源的 statistics.dislikeCount 属性也将于 2021 年 12 月 13 日起不公开。这意味着,只有当 API 请求由视频所有者进行身份验证时,该属性才会包含在 videos.list 端点的 API 响应中。
videos.rate 端点不受此变更的影响。
如果开发者不公开显示“不喜欢”数量,但仍需要为 API 客户端获取“不喜欢”数量,则可以申请加入许可名单,以获得豁免。如需申请豁免,您必须填写此申请表单。
如需详细了解此项变更,请访问 YouTube 的官方博客。
2021 年 7 月 2 日
注意:这是一则弃用公告。
commentThreads.update 端点已被弃用,不再受支持。
此端点复制了通过其他 API 端点提供的功能。您可以改为调用 comments.update
commentThreads 资源,请对 commentThreads.list 方法进行二次调用。
2021 年 7 月 1 日
所有使用 YouTube API 服务的开发者都必须完成 API 合规性审核,才能获得超过默认配额分配量(10,000 个单位)的配额。到目前为止,合规性审核流程和额外配额单位分配申请都是由开发者填写并提交 YouTube API 服务 - 审核和配额增加申请表单来完成的。
为了阐明这些流程并更好地满足使用我们 API 服务的开发者的需求,我们新增了三个表单,并提供了填写这些表单的指南:
- 审核及配额延期申请表单:已通过 API 合规性审核的开发者可以填写并提交此表单(在第一个问题中选择“完成合规性审核以保留当前配额(需完成重新审核)”),以申请延长分配的配额。
- 申诉表单:如果开发者的 API 项目未通过合规性审核(或被拒绝增加配额单位),可以填写并提交此表单。
- 控制权变更表单:如果开发者或代表开发者运营 API 客户端的任何一方发生与 API 项目相关的控制权变更(例如,通过股票买卖、合并或其他形式的企业交易),则必须填写并提交此表单。这样,YouTube 的 API 团队就可以更新我们的记录,审核新 API 项目的用例合规性,并验证开发者当前的配额分配情况。
每个新表单都会告知我们您对 YouTube API 的预期用途,以便我们更好地为您提供帮助。
如需了解更多详情,请参阅我们新发布的 API 合规性审核指南。
2021 年 5 月 12 日
注意:这是一则弃用公告。
此更新涵盖以下 API 变更:
-
channel资源的contentDetails.relatedPlaylists.favorites属性已被弃用。正如 2016 年 4 月 28 日的修订历史记录条目中所述,收藏视频功能已弃用数年。在此更新之前,如果 API 客户端尝试将视频添加到不存在的收藏夹播放列表,API 仍会创建一个新的播放列表。今后,在这种情况下,系统将不会创建播放列表,并且 API 会返回错误。根据之前的公告,通过添加、修改或删除内容来修改收藏夹播放列表的尝试也已被弃用,并且可能随时开始返回错误。
-
以下
channel资源属性已弃用。YouTube 工作室界面和 YouTube 已不再支持这些属性。因此,API 也不再支持这些功能。brandingSettings.channel.defaultTabbrandingSettings.channel.featuredChannelsTitlebrandingSettings.channel.featuredChannelsUrls[]brandingSettings.channel.profileColorbrandingSettings.channel.showBrowseViewbrandingSettings.channel.showRelatedChannels
所有属性都已从
channel资源表示法中移除,其定义也已从资源的属性列表中移除。此外,与这些属性相关的错误已从方法专用文档中移除。 -
以下
channelSection资源属性已弃用。YouTube 工作室界面和 YouTube 已不再支持这些属性。因此,API 也不再支持这些功能。snippet.stylesnippet.defaultLanguagesnippet.localized.titlelocalizationslocalizations.(key)localizations.(key).titletargetingtargeting.languages[]targeting.regions[]targeting.countries[]
除了这项变更之外,
channelSection.list方法的hl参数也已被弃用,因为它支持的功能不受支持。所有属性都已从
channelSection资源表示法中移除,其定义也已从资源的属性列表中移除。此外,与这些属性相关的错误已从方法专用文档中移除。 -
对于
channelSection资源的snippet.type属性,以下值已弃用。YouTube 频道页已不再支持这些值,因此,API 也不再支持这些值。likedPlaylistslikespostedPlaylistspostedVideosrecentActivityrecentPosts
-
playlist资源的snippet.tags[]属性已被弃用。YouTube 已不再支持此属性,因此,API 也不再支持此属性。
2021 年 2 月 9 日
playlistItem 资源支持两个新属性:
snippet.videoOwnerChannelId属性用于标识上传播放列表视频的频道 ID。snippet.videoOwnerChannelTitle属性用于标识上传播放列表视频的频道名称。
2021 年 1 月 28 日
此更新包含以下更改:
-
playlistItems.delete、playlistItems.insert、playlistItems.list、playlistItems.update、playlists.delete、playlists.list和playlists.update方法均支持新的playlistOperationUnsupported错误。当请求尝试执行特定播放列表不允许的操作时,就会发生此错误。例如,用户无法从其上传的视频播放列表中删除视频,也无法删除播放列表本身。在所有情况下,此错误都会返回
400HTTP 响应代码(错误请求)。 -
playlistItems.list方法的watchHistoryNotAccessible和watchLaterNotAccessible错误已从文档中移除。虽然用户的观看记录和稍后观看列表确实无法通过 API 访问,但这些特定错误并非由 API 返回。
2020 年 10 月 15 日
开发者政策中新增了两个部分:
- 新的第 III.E.4.i 节提供了有关通过 YouTube 嵌入式播放器收集和发送的数据的更多信息。在用户与播放器互动以表明播放意图之前,您通过任何 YouTube 嵌入式播放器向我们发送的任何用户数据均由您负责。您可以通过将“自动播放”设置为“false”,限制在用户与播放器互动之前与 YouTube 共享的数据。
- 新的第 III.E.4.j 节规定,在网站和应用中嵌入内容之前,必须先检查内容是否属于“面向儿童的内容”(MFK)。您有责任了解在 API 客户端上嵌入的视频何时属于面向儿童的内容,并相应地处理从嵌入式播放器收集的数据。因此,在通过任何 YouTube 嵌入式播放器将内容嵌入到 API 客户端之前,您必须使用 YouTube Data API 服务检查内容的状态。
新的查找视频的 MadeForKids 状态视频指南介绍了如何使用 YouTube Data API 服务查找视频的 MFK 状态。
除了这些变更之外,嵌入式播放器参数文档中还添加了一条提醒,说明如果您启用自动播放,则无需用户与播放器进行任何互动即可播放;因此,系统会在网页加载时收集和分享播放数据。
2020 年 10 月 8 日
此更新涵盖与 channel 资源相关的三项细微更改:
snippet.thumbnails对象用于标识频道的缩略图,对于新创建的频道,该对象可能为空,最多可能需要一天时间才能填充。statistics.videoCount属性仅反映频道公开视频的数量,即使对所有者也是如此。此行为与 YouTube 网站上显示的计数一致。- 在
brandingSettings.channel.keywords属性中标识的频道关键字如果超过 500 个字符的最大允许长度,或者包含未转义的引号 ("),则可能会被截断。请注意,500 个字符的限制不是每个关键字的限制,而是所有关键字的总长度限制。 此行为与 YouTube 网站上的行为一致。
2020 年 9 月
注意:这是一则弃用公告。
此更新涵盖以下 API 变更。所有变更都将于 2020 年 9 月 9 日(即本公告发布之日)或之后生效。因此,开发者不应再依赖下面列出的任何 API 功能。
-
以下 API 资源、方法、参数和资源属性将立即弃用,并将在本公告发布之日或之后停止运行:
- 以下
channel资源属性:statistics.commentCount属性brandingSettings.image对象及其所有子属性brandingSettings.hints列表及其所有子属性
channels.list方法的categoryId过滤条件参数guideCategories资源和guideCategories.list方法
- 以下
-
如果 API 请求将
managedByMe参数设置为true,则channels.list方法的 API 响应将不再包含prevPageToken属性。此变更不会影响其他channels.list请求的prevPageToken属性,也不会影响任何请求的nextPageToken属性。 -
channel资源的contentDetails.relatedPlaylists.watchLater和contentDetails.relatedPlaylists.watchHistory属性均已于 2016 年 8 月 11 日宣布弃用。playlistItems.insert方法和playlistItems.delete方法对这些播放列表的支持现已完全弃用,并且这两个属性已从文档中移除。 -
channels.list方法的mySubscribers参数已于 2013 年 7 月 30 日宣布弃用,现已从文档中移除。使用subscriptions.list方法及其mySubscribers参数检索经过身份验证的用户频道的订阅者列表。 -
channel资源的invideoPromotion对象及其所有子属性(已于 2017 年 11 月 27 日宣布弃用)已从文档中移除。
2020 年 7 月 29 日
我们简化了 API 请求的配额扣减流程,移除了与 part 参数相关的额外费用。即日起,我们只会针对所调用的方法收取基本费用。如需详细了解简化的配额,请点击此处。
此项变更的影响是,大多数 API 调用的配额费用会略有降低,而部分 API 调用的费用仍保持不变。此项变更不会增加任何 API 调用的费用。总体而言,可能的影响是,您在 Google Cloud 控制台中看到的分配配额将略有增加。
我们强烈建议所有开发者为其项目完成合规性审核,以确保能够继续使用 YouTube API 服务。
此修订历史记录条目最初发布于 2020 年 7 月 20 日。
2020 年 7 月 28 日
通过 videos.insert 端点从 2020 年 7 月 28 日之后创建的未经验证的 API 项目上传的所有视频都将限制为不公开观看模式。如要解除此限制,每个项目都必须接受审核,以验证是否符合服务条款。
如果创作者使用未经验证的 API 客户端上传视频,则会收到一封电子邮件,其中会说明其视频已被锁定为私享,并告知他们可以通过使用官方或经过审核的客户端来避免此限制。
2020 年 7 月 28 日之前创建的 API 项目目前不受此变更的影响。不过,我们强烈建议所有开发者都为其项目完成合规性审核,以确保能够继续使用 YouTube API 服务。
2020 年 7 月 21 日
[2020 年 7 月 28 日更新。]此修订历史记录条目中引用的文档更新已于 2020 年 7 月 28 日重新发布。
昨天,我们发布了与配额扣减流程相关的文档更新。 不过,由于不可预见的情况,配额更改尚未生效。因此,为了确保准确性,我们已还原相关文档。为避免混淆,解释此项更改的修订历史记录条目已被移除,并将在不久后重新发布。
2020 年 7 月 7 日
注意:这是一则弃用公告。
videos.insert 方法的 autoLevels 和 stabilize 参数现已弃用,并且这两个参数已从文档中移除。它们的值会被忽略,不会影响新上传视频的处理方式。
2020 年 6 月 15 日
新的遵守 YouTube 开发者政策指南提供了指导和示例,可帮助您确保 API 客户端遵守 YouTube API 服务条款和政策 (API TOS) 的特定部分。
本指南旨在帮助您了解 YouTube 如何执行《API 服务条款》的某些方面,但不会取代任何现有文档。本指南解答了开发者在 API 合规性审核期间提出的一些最常见的问题。我们希望,通过帮助您了解我们如何解读和执行政策,该指南能够简化您的功能开发流程。
2020 年 6 月 4 日
注意:这是对之前弃用公告的更新。
频道公告功能现已完全弃用。此项变更最初于 2020 年 4 月 17 日公布,现已生效。因此,activities.insert 方法不再受支持,activities.list 方法不再返回频道公告。如需了解详情,请访问 YouTube 帮助中心。
2020 年 4 月 17 日
注意:这是一则弃用公告。
YouTube 即将弃用频道公告功能。因此,activities.insert 方法将被弃用,activities.list 方法将停止返回频道公告。这些变更将于 2020 年 5 月 18 日或之后在 API 中生效。如需了解详情,请访问 YouTube 帮助中心。
2020 年 3 月 31 日
此更新包含以下更改:
-
新资源和方法
-
新的
member资源表示 YouTube 频道的频道会员。会员向创作者提供定期资金支持,并获得特殊福利。例如,当创作者为聊天开启会员专享模式时,会员可以聊天。此资源取代了
sponsor资源,后者在 YouTube Live Streaming API 文档中进行了介绍。sponsor资源现已弃用,API 客户端应更新对sponsors.list方法的调用,改为使用members.list方法。 -
新的
membershipsLevel资源用于标识由授权 API 请求的创作者管理的价格级别。membershipsLevels.list方法会检索创作者的所有会员级别的列表。
-
2020 年 1 月 10 日
该 API 现在支持识别面向儿童的内容(YouTube 称之为“面向儿童的内容”)。如需详细了解“面向儿童的内容”,请访问 YouTube 帮助中心。
channel 和 video 资源支持两个新属性,以便内容创作者和观看者识别面向儿童的内容:
-
借助
selfDeclaredMadeForKids属性,内容创作者可以指定频道或视频是否面向儿童。
对于频道,可以在调用channels.update方法时设置此属性。对于视频,可以在调用videos.insert或videos.update方法时设置此属性。
请注意,只有在频道所有者授权 API 请求的情况下,此属性才会包含在包含channel或video资源的 API 响应中。 -
借助
madeForKids属性,任何用户都可以检索频道或视频的“面向儿童”状态。例如,状态可能根据selfDeclaredMadeForKids属性的值确定。如需详细了解如何为频道、视频或直播设置观众群,请参阅 YouTube 帮助中心。
我们还更新了 YouTube API 服务的《服务条款》和《开发者政策》。如需了解详情,请参阅 YouTube API 服务的服务条款 - 修订历史记录。《YouTube API 服务条款》和《开发者政策》的变更将于 2020 年 1 月 10 日(太平洋时间)生效。
2019 年 9 月 10 日
API 参考文档已更新,以反映 YouTube 上订阅人数报告方式的变化,以及 API 响应中的相应变化。由于这项变更,对于订阅人数超过 1,000 人的频道,YouTube Data API 服务返回的订阅人数会向下舍入到三位有效数字。此变更会影响 channel 资源的 statistics.subscriberCount 属性。
注意:即使在用户发送有关其自身频道数据的授权请求时,此更改也会影响此属性值。频道所有者仍可在 YouTube 工作室中查看确切的订阅人数。
例如,如果某个频道有 123,456 位订阅者,则 statistics.subscriberCount 属性将包含值 123000。
下表举例说明了订阅人数在 API 响应中如何进行四舍五入,以及在其他公开显示的 YouTube 界面中如何进行缩写:
| 订阅人数示例 | YouTube Data API | 公开显示的 YouTube 界面 |
|---|---|---|
| 1,234 | 1230 | 1230 |
| 12,345 | 12300 | 1.23 万 |
| 123,456 | 123000 | 12.3 万 |
| 1,234,567 | 1230000 | 123 万 |
| 12,345,678 | 12300000 | 1230 万 |
| 123,456,789 | 123000000 | 1.23 亿 |
2019 年 4 月 4 日
此更新包含以下更改:
-
我们更新了 API 参考文档,以便更好地解释每种方法的常见应用场景,并通过 APIs Explorer 微件提供动态、高质量的代码示例。如需查看示例,请参阅
channels.list方法的文档。现在,介绍 API 方法的页面上有两个新元素:-
借助 APIs Explorer widget,您可以选择授权范围、输入示例参数和属性值,然后发送实际 API 请求并查看实际 API 响应。该 widget 还提供全屏视图,其中显示了完整的代码示例,这些示例会动态更新,以使用您输入的范围和值。
-
常见用例部分介绍了页面上说明的方法的一个或多个常见用例。例如,您可以调用
channels.list方法来检索特定频道的数据或检索当前用户频道的数据。您可以使用该部分中的链接,在 APIs Explorer 中填充适合您用例的示例值,或打开已填充这些值的全屏 APIs Explorer。这些变更旨在让您更轻松地查看直接适用于您尝试在自己的应用中实现的用例的代码示例。
目前支持 Java、JavaScript、PHP、Python 和 curl 的代码示例。
-
-
代码示例工具也已更新,采用了全新界面,提供上述所有相同功能。借助该工具,您可以探索不同方法的应用场景、将值加载到 APIs Explorer 中,以及打开全屏 APIs Explorer 以获取 Java、JavaScript、PHP 和 Python 语言的代码示例。
与此同时,我们移除了之前列出 Java、JavaScript、PHP 和 Python 可用代码示例的页面。
-
Java、JavaScript、PHP 和 Python 的快速入门指南已更新。修订后的指南说明了如何使用 API Explorer 中的代码示例,运行一个使用 API 密钥的示例和另一个使用 OAuth 2.0 客户端 ID 的示例。
请注意,上述变更取代了 2017 年添加到 API 文档中的互动式工具。
2018 年 7 月 9 日
此更新包含以下更改:
-
channel资源的snippet.thumbnails属性的定义已更新,其中指出,在应用中显示缩略图时,您的代码应使用 API 响应中返回的图片网址。例如,您的应用不应在 API 响应中返回的网址中使用http网域,而应使用https网域。从 2018 年 7 月开始,频道缩略图网址将仅在
https网域中提供,这也是网址在 API 响应中的显示方式。在此之后,如果您的应用尝试从http网域加载 YouTube 图片,您可能会在应用中看到损坏的图片。 -
注意:这是一则弃用公告。
video资源的recordingDetails.location.altitude属性已弃用。无法保证视频会返回此属性的值。同样,即使 API 请求尝试为该属性设置值,传入的数据也可能不会存储。
2018 年 6 月 22 日
实现指南(之前称为“实现和迁移指南”)已更新,移除了有关从 v2 API 迁移到 v3 API 的说明。此外,我们还移除了 v3 API 中已弃用的功能(例如收藏的视频)的相关说明。
2017 年 11 月 27 日
此更新包含以下更改:
-
注意:这是一则弃用公告。
YouTube 将不再支持精选视频和精选网站功能,这些功能在 API 中通过
channel资源的invideoPromotion对象提供支持。因此,该对象及其所有子属性都将被弃用。在 2017 年 12 月 14 日之前,您仍可以检索和设置
invideoPromotion数据。在付款日期后:- 调用
channels.list时,尝试检索invideoPromotion部分将返回空的invideoPromotion,或者根本不会返回任何invideoPromotion数据。 - 在调用
channels.update时尝试更新invideoPromotion数据,在 2018 年 5 月 27 日之前会返回成功响应,但这些尝试会被视为无操作,这意味着它们实际上不会执行更新。
2018 年 5 月 27 日之后,这些请求可能会返回出错提示,例如,指出
invalidPromotion是无效部分。 - 调用
2017 年 11 月 16 日
此更新包含以下更改:
-
互动式代码段工具现在支持 Node.js 代码示例。这些示例还显示在几乎所有 API 方法(例如
channels.list方法)的文档中。这些可自定义的示例旨在为您提供一个针对特定应用场景的 Node.js 应用起点。其功能与 Node.js 快速入门指南中的代码类似。不过,这些示例确实包含一些未在快速入门中出现的实用函数:
removeEmptyParameters函数接受与 API 请求参数对应的键值对列表,并移除没有值的参数。createResource函数接受与 API 资源中的属性相对应的键值对列表。然后,它会将这些属性转换为可在insert和update操作中使用的 JSON 对象。以下示例展示了一组属性名称和值,以及代码会为它们创建的 JSON 对象:# Key-value pairs: {'id': 'ABC123', 'snippet.title': 'Resource title', 'snippet.description': 'Resource description', 'status.privacyStatus': 'private'} # JSON object: { 'id': 'ABC123', 'snippet': { 'title': 'Resource title', 'description': 'Resource description', }, 'status': { 'privacyStatus': 'private' } }
所有这些示例都可供下载并在本地运行。如需了解详情,请参阅代码段工具说明中在本地运行完整代码示例的前提条件。
2017 年 10 月 25 日
此更新包含以下更改:
-
互动式代码段工具中的 Python 代码示例已更新,现在使用
google-auth和google-auth-oauthlib库,而不是现已弃用的oauth2client库。除了这项变更之外,该工具现在还为已安装的 Python 应用和 Python Web 服务器应用提供了完整的代码示例,这些应用使用的授权流程略有不同。如需查看完整示例(以及此项更改),请执行以下操作:
- 前往互动式代码段工具或任何 API 方法(例如
channels.list方法)的文档。 - 点击代码示例上方的
Python标签页。 - 点击标签页上方的切换开关,即可从查看代码段切换到查看完整示例。
- 该标签页现在应显示使用
InstalledAppFlow授权流程的完整代码示例。示例上方的说明对此进行了说明,并提供了指向 Web 服务器应用示例的链接。 - 点击链接,切换到 Web 服务器示例。该示例使用 Flask Web 应用框架和不同的授权流程。
所有这些示例都可供下载并在本地运行。如果您想运行示例,请参阅代码段工具说明中有关在本地运行完整代码示例的说明。
- 前往互动式代码段工具或任何 API 方法(例如
2017 年 8 月 29 日
此更新包含以下更改:
search.list方法的forContentOwner参数定义已更新,现在注明如果该参数设置为true,则type参数必须设置为video。search.list方法的regionCode参数的定义已更新,以阐明该参数会将搜索结果限制为可在指定区域内观看的视频。- YouTube 更新了其品牌徽标和图标。您可以从品牌推广指南页面下载新的“developed with YouTube”徽标。该页面上还显示了其他新的 YouTube 徽标和图标,您可以从 YouTube 品牌网站下载这些徽标和图标。
2017 年 7 月 24 日
此更新包含以下更改:
- iOS 平台现已推出新的 YouTube Data API 快速入门指南。本指南介绍了如何在用 Objective-C 或 Swift 编写的简单 iOS 应用中使用 YouTube Data API。
- YouTube Data API 的交互式代码段工具现在包含说明该工具部分功能的文档:
- 执行 API 请求
- 在代码段和完整代码示例之间切换
- 使用样板函数
- 加载现有资源(针对更新方法)
注意:该工具还嵌入在 API 方法的 API 参考文档中(示例)。
2017 年 6 月 1 日
此更新包含以下更改:
-
注意:这是一则弃用公告。
以下
video资源属性即将弃用。虽然这些属性在 2017 年 12 月 1 日之前仍受支持,但我们无法保证视频在 2017 年 12 月 1 日之前会继续返回这些属性的值。同样,在上述日期之前,设置这些属性值的videos.insert和videos.update请求不会生成错误,但传入的数据可能不会存储。
2017 年 5 月 17 日
此更新包含以下更改:
-
API 参考文档已更新,代码段更加普遍且更具互动性。现在,介绍 API 方法(例如
channels.list或videos.rate)的页面提供了一个互动工具,可让您查看和自定义 Java、JavaScript、PHP、Python、Ruby、Apps 脚本和 Go 语言的代码段。对于任何给定的方法,该工具都会显示一个或多个用例的代码段,每个用例都描述了调用该方法的常见方式。例如,您可以调用
channels.list方法来检索特定频道或当前用户频道的相关数据。您还可以与代码示例进行互动:
-
修改参数和属性值,代码段会动态更新,以反映您提供的值。
-
在代码段和完整示例之间切换。代码段显示了调用 API 方法的代码部分。完整示例包含该代码段以及用于授权和发送请求的样板代码。您可以复制完整示例,并通过命令行或本地 Web 服务器运行。
-
点击按钮即可执行请求。(如需执行请求,您需要授权该工具代表您调用 API。)
请注意,在提供此工具的页面上,它已取代 APIs Explorer。(每个页面都会显示一个链接,以便您也可以选择在 APIs Explorer 中加载您正在处理的请求。)
-
-
Data API Code Snippets 工具也已更新,采用了新的界面,可提供上述所有相同功能。此页面上提供的主要新功能如下:
- 支持写入数据的 API 请求。
- 支持 Java 示例。
- 更灵活、更全面的样板代码,用于授权用户和构建 API 请求。
2017 年 4 月 27 日
此更新包含以下更改:
- 新的快速入门指南介绍了如何设置一个简单的应用来发出 YouTube Data API 请求。目前,我们提供了 Android、Apps 脚本、Go、Java、JavaScript、Node.js、PHP、Python 和 Ruby 版本的指南。
2017 年 3 月 30 日
此更新包含以下更改:
channel资源的新topicDetails.topicCategories[]属性包含描述频道内容的维基百科网址列表。这些网址与资源的topicDetails.topicIds[]属性中返回的主题 ID 相对应。playlistItem资源的新contentDetails.videoPublishedAt属性用于标识视频发布到 YouTube 的时间。该资源已包含snippet.publishedAt属性,用于标识将内容添加到播放列表的时间。- 与
channel资源一样,video资源现在也会返回topicDetails.topicCategories[]属性,其中包含描述视频内容的维基百科网址列表。对于video资源,网址对应于资源的topicDetails.relevantTopicIds[]属性中返回的主题 ID。 video资源的新contentDetails.contentRating.mpaatRating属性用于标识美国电影协会为电影预告片或预览给出的分级。
2017 年 2 月 27 日
正如我们最初在 2016 年 8 月 11 日宣布的那样,YouTube 已将支持的主题 ID 列表切换为精选列表。受支持的主题 ID 的完整列表包含在 channel 和 video 资源的 topicDetails 属性中,以及 search.list 方法的 topicId 参数中。
请注意,精选列表有以下几项变更:
- 以下主题已添加为
Society的子主题:名称 主题 ID 企业 /m/09s1f健康 /m/0kt51军事 /m/01h6rj政治 /m/05qt0宗教 /m/06bvp Animated cartoon主题(之前是Entertainment的子主题)已被移除。Children's music主题(之前是Music的子主题)已被移除。
由于这项变更,与视频相关的主题现在始终在 video 资源的 topicDetails.relevantTopicIds[] 属性值中返回。
2016 年 11 月 29 日
此更新包含以下更改:
-
自 2017 年 2 月 10 日起,支持的主题 ID 列表将发生以下三项细微变化:
Professional wrestling类别之前是Sports类别的子类别,现在是Entertainment的子类别。TV shows类别是Entertainment的子类别,属于新增类别。Health类别(之前是Lifestyle的子类别)已被移除。
另请注意,有几个父级类别(
Entertainment、Gaming、Lifestyle、Music和Sports)。与子级类别(例如Tennis)相关联的任何视频也会与父级类别 (Sports) 相关联。
2016 年 11 月 10 日
此更新包含以下更改:
-
正如我们在 2016 年 8 月 11 日首次宣布的那样,由于 Freebase 和 Freebase API 弃用,我们需要对主题 ID 进行一些更改。主题 ID 用于标识与
channel和video资源相关联的主题,您还可以使用topicId搜索参数查找与特定主题相关的频道或视频。自 2017 年 2 月 10 日起,YouTube 将开始返回一小组主题 ID,而不是目前返回的更精细的 ID 组。此外,请注意,频道和视频不一定会与任何主题相关联,这与当前的 API 行为一致。
为了让您能够为这些变化做好 API 客户端准备,我们更新了以下 API 参数和属性的定义,列出了届时将支持的主题 ID。请注意,所有媒体资源的类别列表都是相同的。
channel资源的topicDetails.topicIds[]属性。video资源的topicDetails.relevantTopicIds[]属性。search.list方法的topicId参数。
-
注意:这是一则弃用公告。
以下属性即将弃用:
channel资源的topicDetails.topicIds[]属性。此属性在 2017 年 11 月 10 日之前受支持。video资源的topicDetails.relevantTopicIds[]属性。此属性在 2017 年 11 月 10 日之前受支持。video资源的topicDetails.topicIds[]属性。此属性在 2017 年 2 月 10 日之后将不包含任何值。(在该日期之后,topicDetails.relevantTopicIds[]属性值将标识与视频关联的所有主题。)
-
由于 Freebase 已被弃用,使用 Freebase 主题进行搜索指南已从文档中移除。该指南提供了代码示例,展示了应用如何与 Freebase API 搭配使用。
此外,
search.list方法的文档中还移除了多个与主题 ID 相关的代码示例。
2016 年 11 月 2 日
此更新包含以下更改:
-
新属性和参数
-
video资源包含多个新属性:-
player.embedHtml属性包含一个<iframe>标记,您可以使用该标记嵌入播放视频的播放器。新的player.embedHeight和player.embedWidth属性用于标识嵌入式播放器的尺寸。仅当 API 请求为maxHeight或maxWidth参数中的至少一个指定了值时,系统才会返回这些属性。本修订历史记录条目稍后会介绍这两个新参数。 -
新的
hasCustomThumbnail属性用于指明视频上传者是否为视频提供了自定义缩略图。请注意,此属性仅对视频上传者可见。 -
新的
fpbRatingReasons[]用于指明视频获得其 FPB(南非)分级的原因。 -
新的
mcstRating用于标识视频在越南获得的分级。
-
-
videos.list方法支持两个新参数:maxHeight和maxWidth。在检索video资源中的player部分时,您可以使用其中一个参数,也可以同时使用这两个参数。默认情况下,
player.embedHtml属性中返回的<iframe>的高度为 360 像素。宽度会根据视频的宽高比进行调整,从而确保嵌入式播放器不会在视频周围显示黑边。例如,如果视频的宽高比为 16:9,则播放器的宽度应为 640 像素。借助这些新参数,您可以指定嵌入代码应使用适合应用布局的高度和/或宽度,而不是默认尺寸。API 服务器会根据需要调整播放器尺寸,以确保嵌入式播放器不会在视频周围显示黑边。请注意,这两个参数指定的是嵌入式播放器的最大尺寸。因此,如果同时指定了这两个参数,则其中一个尺寸可能仍小于该尺寸允许的最大值。
例如,假设某个视频的宽高比为 16:9。因此,如果未设置
maxHeight或maxWidth参数,player.embedHtml代码将包含一个 640x360 的播放器。- 如果
maxHeight参数设置为720,而maxWidth参数未设置,则 API 将返回 1280x720 的播放器。 - 如果
maxWidth参数设置为960,而maxHeight参数未设置,则 API 将返回 960x540 播放器。 - 如果
maxWidth参数设置为960,maxHeight参数设置为450,则 API 会返回一个 800x450 的播放器。
新的
player.embedHeight和player.embedWidth属性(如上所述)用于标识播放器的尺寸。 - 如果
-
-
对现有方法、属性和参数的更新
-
channelSection资源说明已更新,其中指出,在不设置定位数据的情况下,一个频道最多可以创建 10 个搁架;在设置定位数据的情况下,一个频道最多可以创建 100 个搁架。此外,
channelSection资源的targeting属性已更新,以反映只能使用 API 设置定位选项这一事实。如果使用 YouTube 网站上的界面修改了频道版块,则定位选项会被删除。 -
i18nLanguage资源的snippet.name属性的定义已更正,以反映该值表示语言的名称,该名称以i18nLanguage.list方法的hl参数指定的语言书写。 -
playlistItem资源的contentDetails.note属性已更新,现在属性值的长度上限为 280 个字符。 -
playlistItem资源的contentDetails.startAt和contentDetails.endAt属性已被弃用。如果在playlistItems.insert或playlistItems.update请求中设置了这些字段,系统会忽略这些字段。 -
playlistItems.delete和playlistItems.update方法现在支持onBehalfOfContentOwner参数,其他几种方法已经支持该参数。使用该方法的请求也需要使用提供https://www.googleapis.com/auth/youtubepartner范围访问权限的令牌进行授权。 -
search.list方法的publishedBefore和publishedAfter参数均已更新,以指明参数值是包含在内的。例如,如果设置了publishedBefore参数,则 API 会返回在指定时间或之前创建的资源。 -
video资源的contentDetails.contentRating.grfilmRating属性支持另外三个值:grfilmK12、grfilmK15和grfilmK18。 -
videos.insert方法说明已更新,其中指出上传视频的文件大小上限已从 64GB 增加到 128GB。
-
-
新增和更新的错误
-
该 API 支持以下新错误:
错误类型 错误详情 说明 forbidden (403)homeParameterDeprecatedactivities.list方法会返回此错误,以指明无法通过此 API 获取用户的首页活动数据。如果您在未经授权的请求中将home参数设置为true,则可能会发生此错误。invalidValue (400)invalidContentDetailsplaylistItems.insert方法会返回此错误,以指明请求中的contentDetails对象无效。发生此错误的一个原因是contentDetails.note字段超过 280 个字符。forbidden (403)watchHistoryNotAccessibleplaylistItems.list方法会返回此错误,以指明请求尝试检索“观看记录”播放列表内容,但无法使用 API 检索这些内容。forbidden (403)watchLaterNotAccessibleplaylistItems.list方法会返回此错误,表示请求尝试检索“稍后观看”播放列表内容,但无法使用 API 检索这些内容。badRequest (400)uploadLimitExceededvideos.insert方法会返回此错误,以指明频道已超出其可上传的视频数量。forbidden (403)forbiddenEmbedSettingvideos.update方法会返回此错误,以指明 API 请求尝试为视频设置无效的嵌入设置。请注意,某些频道可能无权为直播提供嵌入式播放器。如需了解详情,请访问 YouTube 帮助中心。 -
如果您将重复的视频插入到播放列表中,
playlistItems.insert方法不再返回错误。之前,某些不允许重复视频但已不再受支持的播放列表(例如“喜欢的视频”)会出现此错误。一般来说,播放列表允许包含重复视频。
-
-
其他更新
-
2016 年 9 月 15 日的修订历史记录条目已更新,以阐明只要
channel资源的contentDetails.relatedPlaylists.watchHistory和contentDetails.relatedPlaylists.watchLater属性包含在响应中,它们就始终分别包含值HL和WL。此外,只有在授权用户检索其自己频道的数据时,这些属性才会包含在内。
-
2016 年 9 月 15 日
此更新包含以下更改:
-
2016 年 8 月 11 日的修订历史记录更新讨论了与主题 ID 相关的多项更改,包括自 2017 年 2 月 10 日起,支持的主题 ID 集将发生变化。我们将在 2016 年 11 月 10 日之前发布支持的主题列表。
-
以下变更现已生效。2016 年 8 月 11 日的修订历史记录更新中已通知这些变更:
-
如果调用
activities.list方法时将home参数设置为true,则 API 响应现在会包含与已退出登录的 YouTube 用户在首页上看到的内容类似的内容。这是一项细微的更改,旨在提供比 2016 年 8 月 11 日修订历史记录更新中所述行为更好的用户体验。该更新指出,使用
home参数的请求将返回空列表。 -
现在,对于所有频道,
channel资源的contentDetails.relatedPlaylists.watchHistory和contentDetails.relatedPlaylists.watchLater属性分别包含HL和WL值。需要说明的是,这些属性仅对检索自己频道相关数据的授权用户可见。这些属性始终包含值
HL和WL,即使是授权用户检索有关其自身频道的数据也是如此。因此,无法通过 API 检索观看记录和“稍后观看”播放列表 ID。此外,现在,如果请求检索频道观看记录或“稍后观看”播放列表的播放列表详情 (
playlists.list) 或播放列表内容 (playlistItems.list),则会返回空列表。对于新值HL和WL,以及您的 API 客户端可能已存储的任何观看记录或稍后观看播放列表 ID,此行为均适用。
-
-
video资源的fileDetails.recordingLocation对象及其子属性不再返回。以前,只有视频所有者才能检索这些数据(例如父级fileDetails对象)。
2016 年 8 月 11 日
此更新包含以下更改:
-
新发布的《YouTube API 服务的服务条款》(以下简称“更新后的条款”)在 YouTube 工程和开发者博客中进行了详细讨论,对当前《服务条款》进行了大量更新。除了将于 2017 年 2 月 10 日生效的更新后的条款之外,此次更新还包含多份支持文档,旨在帮助解释开发者必须遵守的政策。
更新后条款的修订历史记录中介绍了整套新文档。此外,未来对更新后的条款或这些支持文档所做的更改也会在该修订历史记录中进行说明。
-
Freebase 和 Freebase API 的弃用导致了与主题 ID 相关的一些变化。主题 ID 用于以下 API 资源和方法:
channel资源的topicDetails部分用于标识与频道关联的主题。video资源的topicDetails部分用于标识与视频关联的主题。- 借助
search.list方法的topicId参数,您可以搜索与特定主题相关的视频或频道。
这些功能的变化如下:
-
自 2017 年 2 月 10 日起,YouTube 将开始返回一小组主题 ID,而不是迄今为止返回的更精细的 ID 集。这组受支持的主题将识别高级别分类,例如体育或篮球,但不会识别特定球队或球员。我们将公布支持的主题集,以便您有时间为应用做好准备,应对这一变化。
-
在 2017 年 2 月 10 日之前,您可以使用已检索到的任何 Freebase 主题 ID 来搜索内容。不过,在此之后,您将只能使用上一项中列出的较小主题集来按主题检索搜索结果。
-
2017 年 2 月 10 日之后,如果您尝试使用不在较小的主题 ID 集中的主题 ID 搜索结果,API 将返回空结果集。
-
自 2016 年 9 月 12 日起,多个 API 字段和参数将被弃用:
-
activities.list方法的home参数使授权用户能够检索将在该用户的 YouTube 首页上显示的活动动态。在 2016 年 9 月 12 日之后,使用此参数的请求将返回空列表。 -
channel资源的contentDetails.relatedPlaylists.watchHistory和contentDetails.relatedPlaylists.watchLater属性仅对检索自己频道相关数据的授权用户可见。2016 年 9 月 12 日之后,contentDetails.relatedPlaylists.watchHistory将返回HL值,contentDetails.relatedPlaylists.watchLater属性将返回所有频道的WL值。2016 年 9 月 12 日之后,检索频道观看记录或稍后观看播放列表的播放列表详细信息 (
playlists.list) 的请求将返回空列表。在此之后,检索这两个播放列表中播放列表项 (playlistItems.list) 的请求也将返回空列表。对于新值HL和WL,以及您的 API 客户端可能已存储的任何观看记录或“稍后观看”播放列表 ID,都是如此。 -
2016 年 9 月 12 日之后,系统将不再返回
video资源的fileDetails.recordingLocation对象或其任何子属性。由于父级fileDetails对象只能由视频所有者检索,因此这些数据也只能由视频所有者检索。
-
2016 年 6 月 13 日
此更新包含以下更改:
-
channel资源的contentDetails.googlePlusUserId属性已弃用。以前,只有当频道与 Google+ 个人资料相关联时,该属性才会存在。弃用后,该属性将不再包含在任何channel资源中。 -
comment资源的snippet.authorGoogleplusProfileUrl属性已弃用。以前,只有当频道与 Google+ 个人资料相关联时,该属性才会存在。弃用后,该属性将不再包含在任何comment资源中。
由于弃用后不会返回这两个属性,因此这两个属性已从相应的资源文档中移除。
2016 年 5 月 31 日
此更新包含以下更改:
-
subscriptions.list方法的新myRecentSubscribers参数会按照订阅时间的倒序检索经过身份验证的用户频道的订阅者列表。请注意,新参数仅支持检索经过身份验证的用户频道中最近的 1000 位订阅者。如需检索订阅者的完整列表,请使用
mySubscribers参数。该参数不会按特定顺序返回订阅者,也不会限制可检索的订阅者数量。 -
activity、playlistItem、playlist、搜索结果、thumbnail 和 video 资源的
snippet.thumbnails.(key)属性定义已更新,以说明某些视频还提供其他缩略图尺寸。standard图片宽 640 像素,高 480 像素。maxres图片的宽度为 1280 像素,高度为 720 像素。
-
channelSection.list方法的part参数的定义已更新,其中指出,targeting部分可以消耗2个配额单位来检索。 -
现在,当未经适当授权的请求尝试检索
video资源的fileDetails、processingDetails或suggestions部分时,videos.list方法会返回禁止 (403) 错误。这些部分仅对视频所有者可见。
2016 年 5 月 17 日
新的 Data API 代码段工具可为常见的 YouTube Data API 用例提供简短的代码段。目前,Apps 脚本、Go、JavaScript、PHP、Python 和 Ruby 中所有只读 API 方法都提供了代码段。
对于每种方法,该工具都会显示一个或多个用例的代码示例。例如,它为 search.list 方法提供了五个代码段:
- 按关键字列出视频
- 按位置列出视频
- 列出直播活动
- 搜索经过身份验证的用户的视频
- 列出相关视频
对于每个用例,该工具都会显示 API 请求中使用的参数。您可以修改参数值,在这种情况下,该工具会更新代码段,以反映您提供的参数值。
最后,该工具会显示每个请求的 API 响应。如果您修改了请求参数,API 响应将基于您提供的参数值。请注意,您需要授权该工具代表您提交请求,以便显示 API 响应。
2016 年 4 月 28 日
此更新包含以下更改:
-
video资源的新contentDetails.projection属性用于指定视频的投影格式。有效的属性值为360和rectangular。 -
video资源的recordingDetails.location和fileDetails.recordingLocation属性均已更新,以说明这两个属性之间的区别:recordingDetails.location属性用于标识视频所有者想要与视频相关联的位置。此位置可修改,可在公开视频中搜索,并且可能会向公开视频的用户显示。fileDetails.recordingLocation属性值不可变,表示与上传的原始视频文件关联的位置。该值仅对视频所有者可见。
-
channel资源的contentDetails.relatedPlaylists.favorites属性的定义已更新,指出该属性值可能包含一个播放列表 ID,该 ID 指向一个空播放列表,无法提取。这是因为收藏视频功能已被弃用。请注意,此属性不受 API 弃用政策的约束。 -
ineligibleAccount错误(可由comments.insert、comments.update、commentThreads.insert或commentThreads.update方法返回)的定义已更新,以反映当用于授权 API 请求的 YouTube 账号未与用户的 Google 账号合并时,会发生该错误。
2016 年 4 月 20 日
此更新包含以下更改:
-
channels.update方法的part参数的定义已更新,指出localizations也是该参数的有效值。 -
“入门指南”的配额用量部分已更新,其中添加了指向 Google Developers Console 的链接,您可以在该控制台中查看实际配额和配额用量。
2016 年 3 月 16 日
此更新包含以下更改:
-
对现有资源和方法的更新
-
channelBanner资源文档已更新,其中指出上传的频道横幅图片的建议尺寸为 2560 像素 x 1440 像素。最小尺寸(2048x1152 像素)未发生变化。 -
channel资源的新snippet.customUrl属性用于标识与频道关联的自定义网址。(并非所有频道都有自定义网址。)YouTube 帮助中心介绍了获取自定义网址的资格要求以及如何设置网址。 -
channel资源的brandingSettings.watch对象及其所有子属性已被弃用。 -
对
search.list请求的 API 响应现在包含regionCode属性。该属性用于标识搜索查询所用的地区代码。地区代码会指示 API 返回指定国家/地区的搜索结果。属性值是用于标识地区的两位字母 ISO 国家/地区代码。
i18nRegions.list方法会返回受支持的国家/地区列表。默认值为US。如果指定了不受支持的国家/地区,YouTube 仍可能会选择其他区域(而非默认值)来处理查询。 -
videoAbuseReportReason资源的snippet.label和snippet.secondaryReasons[].label属性的定义已更新,以说明这些属性包含滥用行为报告原因的本地化标签文本。此外,
videoAbuseReportReasons.list方法现在支持hl参数,该参数指定应在 API 响应中用于标签文本的语言。默认参数值为en_US。 -
video资源的新contentDetails.contentRating.ecbmctRating属性用于标识土耳其文化和旅游部评估与分级委员会对视频的分级。此外,其他分级制度的 API 属性支持以下新属性值:
contentDetails.contentRating.fpbRating(南非)
分级:10;属性值:fpb10contentDetails.contentRating.moctwRating(中国台湾)
分级:R-12;属性值:moctwR12contentDetails.contentRating.moctwRating(中国台湾)
分级:R-15;属性值:moctwR15
-
video资源的liveStreamingDetails.activeLiveChatId属性包含与视频关联的活跃实时聊天的 ID。仅当视频是当前正在直播且已启用实时聊天的直播时,此属性值才会显示。直播结束且实时聊天结束后,系统将不再为视频返回该属性。 -
video资源的status.rejectionReason属性支持新的属性值legal。
-
-
该 API 支持以下新错误:
错误类型 错误详情 说明 badRequest (400)notEditablechannelSections.insert、channelSections.update和channelSections.delete方法会返回此错误,以指明无法创建、更新或删除指定的频道版块。badRequest (400)styleRequiredchannelSections.insert和channelSections.update方法会返回此错误,以指明 API 请求中提交的channelSection资源必须为snippet.style属性指定值。badRequest (400)typeRequiredchannelSections.insert和channelSections.update方法会返回此错误,以指明 API 请求中提交的channelSection资源必须为snippet.type属性指定值。badRequest (400)processingFailurecommentThreads.list方法会返回此错误,以指明 API 服务器未能成功处理请求。虽然这可能是暂时性错误,但通常表示请求的输入无效。检查请求正文中commentThread资源的结构,确保其有效。forbidden (403)commentsDisabledcommentThreads.list方法会返回此错误,以指明videoId参数标识的视频已停用评论功能。badRequest (400)commentTextTooLongcommentThreads.insert方法会返回此错误,以指明正在插入的comment资源的snippet.topLevelComment.snippet.textOriginal属性包含过多字符。invalidValue (400)videoAlreadyInAnotherSeriesPlaylistplaylistItems.insert方法会返回此错误,表示您尝试添加到播放列表的视频已包含在另一个系列播放列表中。如需详细了解系列播放列表,请访问 YouTube 帮助中心。badRequest (400)subscriptionForbiddensubscriptions.insert方法会返回此错误,表示您已达到订阅数量上限,或者您最近创建了过多订阅。在后一种情况下,您可以在几个小时后重试请求。badRequest (400)invalidCategoryIdvideos.update方法会返回此错误,表示上传的video资源中的snippet.categoryId属性指定了无效的类别 ID。使用videoCategories.list方法检索支持的类别。badRequest (400)invalidDescriptionvideos.update方法会返回此错误,以指明上传的video资源中的snippet.description属性指定了无效值。badRequest (400)invalidPublishAtvideos.update方法会返回此错误,表示上传的video资源中的status.publishAt属性指定了无效的预定发布时间。badRequest (400)invalidRecordingDetailsvideos.update方法会返回此错误,以指明上传的video资源中的recordingDetails对象指定了无效的录制详细信息。badRequest (400)invalidTagsvideos.update方法会返回此错误,以指明上传的video资源中的snippet.tags属性指定了无效值。badRequest (400)invalidTitlevideos.update方法会返回此错误,表示上传的video资源中的snippet.title属性指定了无效或空的视频标题。badRequest (400)invalidVideoMetadatavideos.update方法会返回此错误,以指明请求元数据无效。如果请求更新video资源的snippet部分,但未同时为snippet.title和snippet.categoryId属性设置值,则会出现此错误。
2015 年 12 月 18 日
根据欧盟 (EU) 法律规定,您必须向欧盟境内的最终用户披露相关信息并征求他们的意见。因此,对于欧盟境内的最终用户,您必须遵守《欧盟地区用户意见征求政策》。我们已在《YouTube API 服务条款》中添加了关于此要求的通知。
2015 年 11 月 19 日
该 API 现在支持为 playlist 和 video 资源的 snippet.title 和 snippet.description 属性、channelSection 资源的 snippet.title 属性以及 channel 资源的 snippet.description 属性设置和检索本地化文本。
-
设置本地化的商品名和说明
在为资源调用
insert或update方法时,您可以为该资源设置本地化值。如需为资源设置本地化值,请执行以下两项操作:-
确保为资源的
snippet.defaultLanguage属性设置了值。该属性用于标识资源的snippet.title和snippet.description属性的语言。其值可以是任何受支持的应用语言或大多数其他 ISO 639-1:2002 语言代码。例如,如果您上传的视频具有英语标题和说明,则应将snippet.defaultLanguage属性设置为en。更新
channel资源的注意事项:如需为channel资源设置snippet.defaultLanguage属性,您实际上需要更新brandingSettings.channel.defaultLanguage属性。 -
将
localizations对象添加到您要更新的资源中。每个对象键都是一个字符串,用于标识应用语言或 ISO 639-1:2002 语言代码,并且每个键都映射到一个对象,该对象包含资源的本地化标题(和说明)。以下示例代码段会将资源的默认语言设置为英语。它还会向视频添加本地化的德语和西班牙语标题和说明:
{ "kind": "youtube#video", ... "snippet": { "title": "Playing soccer", "description": "We play soccer in the park on Sundays.", "defaultLanguage": "en", ... }, "localizations": "de": { "title": "Fußball spielen", "description": "Wir spielen Fußball im Park am Sonntag" }, "es": { "title": "Jugar al fútbol", "description": "Nosotros jugamos fútbol en el parque los domingos", } } }
重要提示:请注意,在更新资源的本地化数据时,您的 API 请求必须包含该数据的所有现有本地化版本。例如,如果您在后续请求中要为上述示例中的视频添加葡萄牙语数据,则该请求需要包含德语、西班牙语和葡萄牙语的本地化数据。
-
-
检索本地化值
该 API 支持通过两种方式检索资源的本地化值:
-
将
hl参数添加到channels.list、channelSections.list、playlists.list或videos.list请求中,以检索 YouTube 网站支持的特定应用语言的本地化数据。如果该语言有本地化的资源详情,则资源的snippet.localized对象将包含本地化的值。不过,如果本地化详情不可用,snippet.localized对象将包含采用资源默认语言的资源详情。例如,假设
videos.list请求检索了上述视频的数据,其中包含本地化的德语和西班牙语数据。如果hl参数设置为de,则资源将包含以下数据:{ "kind": "youtube#video", ... "snippet": { "title": "Playing soccer", "description": "We play soccer in the park on Sundays.", "defaultLanguage": "en", "localized": { "title": "Fußball spielen", "description": "Wir spielen Fußball im Park am Sonntag" } ... } }不过,如果
hl参数设置为fr,snippet.localized对象将包含英语标题和说明,因为英语是资源的默认语言,并且没有本地化的法语详细信息。重要提示:hl参数仅支持用于标识 YouTube 网站所支持的应用语言的值。如需确定是否有其他语言的本地化文本,您需要检索资源的localizations部分并进行过滤,以确定是否存在本地化文本。
例如,您需要检索本地化内容的完整列表,以确定是否有阿巴拉契亚英语的本地化文本。
-
检索资源时,请在
part参数值中添加localizations,以检索该资源的所有本地化详细信息。如果您要检索的本地化数据所用的语言不是当前的 YouTube 应用语言,则需要使用此方法检索所有本地化数据,然后进行过滤,以确定是否存在所需的本地化数据。
-
-
与本地化文本值相关的错误
该 API 还支持以下针对本地化文本值的新错误:
错误类型 错误详情 说明 badRequest (400)defaultLanguageNotSetError此错误表示,尝试为资源插入或更新 localizations对象的请求失败,因为未为该资源设置snippet.defaultLanguage属性。channels.update、channelSections.insert、channelSections.update、playlists.insert、playlists.update、videos.insert和videos.update方法支持此错误。badRequest (400)localizationValidationError此错误表示资源的 localizations对象中的某个值未能通过验证。例如,如果对象包含无效的语言代码,就可能会发生此错误。channels.update、channelSections.insert、channelSections.update、playlists.insert和playlists.update方法支持此错误。
2015 年 11 月 4 日
此更新包含以下更改:
-
对现有资源和方法的更新
-
search.list方法的order参数已更新,其中指出,如果您按viewCount对直播进行排序,则 API 结果会按直播仍在进行时的同时观看人数进行排序。 -
search.list方法的relatedToVideoId参数已更新,以说明如果设置了该参数,则唯一支持的其他参数为part、maxResults、pageToken、regionCode、relevanceLanguage、safeSearch、type(必须设置为video)和fields。此更新并不反映 API 行为的变化。 -
video资源的snippet.publishedAt属性的定义已更新,以说明该属性值(指定视频的发布日期和时间)可能与视频的上传时间不同。例如,如果视频在上传时设为私享视频,之后又设为公开视频,则该属性值会指定视频设为公开的时间。更新后的定义还说明了如何为私享视频和不公开列出的视频填充该值。此变更并不反映 API 行为的变化。
-
video资源的status.publishAt属性的定义已更新,请注意:- 如果您在调用
videos.update方法时设置了此属性的值,则还必须将status.privacyStatus属性值设置为private,即使视频已设为私享也是如此。 - 如果请求将视频安排在过去的某个时间发布,则视频会立即发布。因此,将
status.publishAt属性设置为过去的日期和时间,其效果与将视频的privacyStatus从private更改为public相同。
- 如果您在调用
-
video资源的contentDetails.contentRating.cncRating属性指定了法国电影分级委员会 (Commission de classification cinematographique) 对视频的分级。此属性取代了现已弃用的contentDetails.contentRating.fmocRating属性。 -
channel资源的brandingSettings.channel.keywords的定义已更新,以正确反映该属性值包含以空格分隔的字符串列表,而不是之前记录的逗号分隔列表。此更新并不反映 API 行为的变化。 -
thumbnails.set方法的文档已更新,以准确反映请求正文包含您要上传并与视频关联的缩略图。请求正文不包含thumbnail资源。之前,文档中指出,调用此方法时不应提供请求正文。此更新并不反映 API 行为的变化。 -
activity资源的说明已更新,以反映activities.list方法目前不包含与新视频评论相关的资源。资源的snippet.type和contentDetails.comment也已更新。
-
-
新增和更新的错误
-
该 API 现在支持以下错误:
错误详情 activities.insertHTTP 响应代码 badRequest (400)原因 invalidMetadata说明 kind属性与所提供的 ID 类型不匹配。commentThreads.updatecomments.insertcomments.updateHTTP 响应代码 badRequest (400)原因 commentTextTooLong说明 正在插入或更新的 comment资源的snippet.topLevelComment.snippet.textOriginal属性包含过多字符。playlistItems.insertplaylistItems.updateHTTP 响应代码 forbidden (403)原因 playlistItemsNotAccessible说明 请求未获得适当授权,无法插入、更新或删除指定的播放列表项。 playlists.deleteplaylists.insertplaylists.updateHTTP 响应代码 badRequest (400)原因 playlistForbidden说明 此操作被禁止,或请求未获得适当授权。 search.listHTTP 响应代码 badRequest (400)原因 invalidLocation说明 location和/或locationRadius参数值的格式不正确。search.listHTTP 响应代码 badRequest (400)原因 invalidRelevanceLanguage说明 relevanceLanguage参数值的格式不正确。subscriptions.insertHTTP 响应代码 badRequest (400)原因 subscriptionForbidden说明 在以下任一情况下,会发生此错误: - 您尝试创建的订阅已存在
- 您的订阅数量已达上限
- 您正在尝试订阅自己的频道,但系统不支持此操作。
- 您最近创建的订阅过多,需要等待几个小时才能重试该请求。
videos.updateHTTP 响应代码 badRequest (400)原因 invalidDefaultBroadcastPrivacySetting说明 该请求尝试为默认直播设置无效的隐私设置。
-
2015 年 8 月 28 日
此更新包含以下更改:
-
对现有资源和方法的更新
-
video资源的statistics.favoriteCount属性已被弃用。根据我们的弃用政策,此属性在发布此公告后至少一年内仍会包含在
video资源中。不过,现在该属性值始终设置为0。
-
2015 年 8 月 7 日
此更新包含以下更改:
-
对现有资源和方法的更新
-
video资源的snippet.tags[]属性的定义已更新,以便提供有关 API 服务器如何计算属性值长度的更多信息。请注意,此更新并不反映 API 行为的变化。具体而言,该定义现在说明了如果标记包含空格,API 服务器会像处理用引号括起来的标记值一样处理该标记值,并且引号会计入字符数限制。因此,就字符数限制而言,标记 Foo-Baz 包含 7 个字符,而标记 Foo Baz 包含 9 个字符。
-
commentThreads.insert方法不再支持shareOnGooglePlus参数,该参数之前用于指示是否还应将评论和对该评论的回复发布到作者的 Google+ 个人资料中。如果请求提交了该参数,API 服务器会忽略该参数,但会处理该请求。
-
2015 年 6 月 18 日
此更新包含以下更改:
-
对现有资源和方法的更新
-
commentThreads.list方法的新order参数用于指定 API 响应应列出评论串的顺序。会话可以按时间或相关性排序。默认行为是按时间排序。 -
video资源的新snippet.defaultAudioLanguage属性指定了视频默认音轨中使用的语言。 -
video资源的contentDetails.licensedContent属性的定义已更新,以明确内容必须最初上传到与 YouTube 内容合作伙伴关联的频道,然后由该合作伙伴声明版权。这并不表示实际 API 行为发生了变化。 -
captions.delete、captions.download、captions.insert、captions.list和captions.update方法现在支持onBehalfOfContentOwner参数,该参数已受其他几种方法支持。使用该方法的请求也需要使用提供https://www.googleapis.com/auth/youtubepartner范围访问权限的令牌进行授权。
-
-
新增和更新的错误
-
该 API 现在支持以下错误:
错误详情 videos.rateHTTP 响应代码 badRequest (400)原因 emailNotVerified说明 用户必须先验证其邮箱,然后才能对视频进行评分。 videos.rateHTTP 响应代码 badRequest (400)原因 videoPurchaseRequired说明 只有租借了视频的用户才能对视频进行评分。 -
subscriptions.delete和subscriptions.insert方法不再支持accountClosed和accountSuspended错误。
-
2015 年 4 月 27 日
此更新包含以下更改:
-
新资源和方法
-
新的
videoAbuseReportReason资源包含视频因包含滥用内容而被举报的原因。借助videoAbuseReportReasons.list方法,您可以检索视频可能被举报的所有原因的列表。 -
新的
videos.reportAbuse方法提供了一种实际举报包含滥用内容的视频的方法。请求正文包含一个 JSON 对象,该对象指定了要举报的视频以及该视频被视为包含滥用内容的原因。有效原因可通过上述videoAbuseReportReason.list方法获取。迁移指南也已更新,其中包含一个举报滥用视频的示例。经过此次变更,v3 API 现已支持计划支持的所有 v2 API 功能。迁移指南中也对这些功能进行了说明。
-
-
对现有资源和方法的更新
-
search.list方法的新forDeveloper过滤条件参数会限制搜索,使其仅检索通过开发者的应用或网站上传的视频。forDeveloper参数可与可选搜索参数(例如q参数)搭配使用。对于此功能,每个上传的视频都会自动标记有与 Google Developers Console 中开发者的应用相关联的项目编号。
当搜索请求随后将
forDeveloper参数设置为true时,API 服务器会使用请求的授权凭据来识别开发者。因此,开发者可以限制结果,使其仅包含通过开发者自己的应用或网站上传的视频,但不能限制结果,使其仅包含通过其他应用或网站上传的视频。新功能提供的功能与 v2 API 支持的开发者标记功能类似,但并不完全相同。
-
channel资源的新snippet.country属性可让频道所有者将其频道与特定国家/地区相关联。注意:如需为
channel资源设置snippet.country属性,您实际上需要更新brandingSettings.channel.country属性。 -
该 API 现在支持定位
channelSection资源。通过频道版块定位,您可以限制只有符合特定条件的用户才能看到某个内容版块。该 API 提供了三个定位选项。用户必须满足所有定位设置,频道版块才会显示。
-
targeting.languages[]:YouTube 应用语言列表。选择了其中一种语言的用户可以看到相应的频道版块。 -
targeting.regions[]:YouTube 优选内容地区列表。如果用户选择了其中一个地区,或者系统自动为用户选择了其中一个地区,则用户可以看到该频道版块。 -
targeting.countries[]:显示频道版块的国家/地区列表。列表中的每个值都是一个 ISO 3166-1 alpha-2 国家/地区代码。
-
-
video资源的contentDetails.duration属性的定义已更正,以反映该值可以反映小时、天等。 -
channelSections.delete、playlistItems.delete、playlists.delete、subscriptions.delete和videos.delete方法的文档已更正,以反映这些方法在成功时都会返回 HTTP204响应代码 (No Content)。
-
-
新增和更新的错误
-
该 API 现在支持以下错误:
错误类型 错误详情 说明 badRequest (400)targetInvalidCountry如果插入的 channelSection资源包含无效的targeting.countries[]属性值,channelSections.insert和channelSections.update方法会返回此错误。badRequest (400)targetInvalidLanguage如果插入的 channelSection资源包含无效的targeting.languages[]属性值,channelSections.insert和channelSections.update方法会返回此错误。badRequest (400)targetInvalidRegion如果插入的 channelSection资源包含无效的targeting.regions[]属性值,channelSections.insert和channelSections.update方法会返回此错误。badRequest (400)operationNotSupported如果 API 用户无法插入评论来回复 snippet.parentId属性标识的顶级评论,comments.insert方法会返回此错误。在commentThread资源中,snippet.canReply属性表示当前观看者是否可以回复会话。badRequest (400)invalidChannelId如果请求中的 channelId参数指定了无效的频道 ID,search.list方法会返回此错误。badRequest (400)subscriptionForbidden如果 API 用户尝试订阅自己的频道, subscriptions.insert方法会返回此错误。 -
captions.update方法不再支持invalidMetadata和videoNotFound错误。
-
2015 年 4 月 16 日
此更新包含以下更改:
-
迁移指南已更新,其中说明了如何迁移仍在使用 v2 API 评论功能的应用。
本指南还指出了 v2 API 不支持但 v3 API 支持的多项评论功能。其中包括:
- 正在检索有关频道的评论
- 检索与某个频道相关的所有评论串,这意味着 API 响应可能包含有关该频道或其任何视频的评论。
- 更新评论文本
- 将评论标记为垃圾内容
- 设置评论的审核状态
-
订阅推送通知指南已更新,以反映通知仅推送到 Google PubSubHubBub 中心,而不会像之前指出的那样也推送到 Superfeedr 中心。
2015 年 4 月 9 日
此更新包含以下更改:
-
借助该 API 的新
commentThread和comment资源,您可以检索、插入、更新、删除和管理评论。-
commentThread资源包含有关 YouTube 评论串的信息,评论串由顶级评论和对该评论的回复(如果有)组成。commentThread资源可以表示关于视频或频道的评论。顶级评论和回复实际上是嵌套在
commentThread资源中的comment资源。请务必注意,commentThread资源不一定包含对某条评论的所有回复,如果您想检索对特定评论的所有回复,则需要使用comments.list方法。此外,有些评论没有回复。该 API 支持以下
commentThread资源方法:commentThreads.list- 检索评论串列表。使用此方法可检索与特定视频或频道关联的评论。commentThreads.insert- 创建新的顶级评论。(使用comments.insert方法回复现有评论。)commentThreads.update- 修改顶层评论。
-
comment资源包含单条 YouTube 评论的相关信息。comment资源可以表示关于视频或频道的评论。此外,评论可以是主评论,也可以是对主评论的回复。该 API 支持以下
comment资源方法:comments.list- 检索评论列表。使用此方法可检索对特定评论的所有回复。comments.insert- 创建对现有评论的回复。comments.update- 修改评论。comments.markAsSpam- 将一条或多条评论举报为垃圾内容。comments.setModerationStatus- 设置一条或多条评论的管理状态。例如,批准评论公开显示,或拒绝不适合显示的评论。API 请求必须由与评论关联的频道或视频的所有者授权。comments.delete- 删除评论。
请注意,调用
comments.insert、comments.update、comments.markAsSpam、comments.setModerationStatus、comments.delete、commentThreads.insert和commentThreads.update方法时,需要使用该 API 的新https://www.googleapis.com/auth/youtube.force-ssl范围(如 2015 年 4 月 2 日的修订历史记录中所述)。 -
-
新的订阅推送通知指南介绍了该 API 对通过 PubSubHubBub(一种适用于可通过网络访问的资源的服务器到服务器发布/订阅协议)发送推送通知的新支持。当频道执行以下任一活动时,您的 PubSubHubBub 回调服务器可以接收 Atom 订阅源通知:
- 上传视频
- 更新视频标题
- 更新视频的说明
-
迁移指南也已更新,其中注明了对推送通知的新支持。不过,由于 v2 API 支持许多其他类型的推送通知,而 v3 API 不支持,因此该指南的已弃用部分仍列出了对 PubSubHubBub 的支持。
-
该 API 的新
https://www.googleapis.com/auth/youtube.force-ssl范围现在是之前支持https://www.googleapis.com/auth/youtube范围的任何 API 方法的有效范围。 -
该 API 现在支持以下错误:
错误类型 错误详情 说明 badRequest (400)invalidRating如果请求中包含 rating参数的意外值,videos.rate方法会返回此错误。 -
subscriptions.insert方法不再支持subscriptionLimitExceeded错误,该错误之前表示请求中标识的订阅者已超出订阅速率限制。
2015 年 4 月 2 日
此更新包含以下更改:
-
新的
captions资源表示 YouTube 字幕轨道。字幕轨道只能与一个 YouTube 视频相关联。 -
迁移指南也已更新,其中说明了如何迁移仍在 v2 API 中使用字幕功能的应用。
-
该 API 的新
https://www.googleapis.com/auth/youtube.force-ssl范围要求通过 SSL 连接与 API 服务器进行通信。此新范围授予的访问权限与
https://www.googleapis.com/auth/youtube范围相同。事实上,这两个范围在功能上完全相同,因为 YouTube API 服务器只能通过 HTTPS 端点访问。因此,即使https://www.googleapis.com/auth/youtube范围不需要 SSL 连接,实际上也没有其他方法可以发出 API 请求。调用所有
caption资源的方法时,都需要使用新范围。
2015 年 3 月 11 日
此更新包含以下更改:
-
YouTube Data API (v3) 迁移指南包含一个名为 v3 API 中的新功能的新标签页,其中列出了 v3 API 支持但 v2 API 不支持的功能。这些功能之前已列在指南的其他标签页中,现在仍然如此。例如,频道(个人资料)标签页下还列出了说明如何更新频道视频内宣传广告系列数据的新功能。
-
YouTube Data API (v3) 迁移指南已更新,其中指出 v3 API 将支持以下 v2 API 功能:
-
YouTube Data API (v3) 迁移指南已更新,其中指出 v3 API 将不支持以下 v2 API 功能:
-
检索视频推荐 - v3 API 不会检索仅包含为当前 API 用户推荐的视频的列表。不过,您可以使用 v3 API 查找推荐视频,方法是调用
activities.list方法并将home参数值设置为true。在 API 响应中,如果
snippet.type属性的值为recommendation,则资源对应于推荐视频。在这种情况下,contentDetails.recommendation.reason和contentDetails.recommendation.seedResourceId属性将包含有关视频推荐原因的信息。请注意,我们无法保证响应中会包含特定数量的推荐视频。 -
检索新订阅视频 - v3 API 不会检索仅包含最近上传到 API 用户订阅的频道的视频的列表。不过,您可以使用 v3 API 查找新的订阅视频,方法是调用
activities.list方法并将home参数值设置为true。在 API 响应中,如果
snippet.type属性的值为upload,则资源对应于新的订阅视频。请注意,我们无法保证响应中会包含特定数量的新订阅视频。 -
Feed 更新推送通知 - v2 API 支持使用简单更新协议 (SUP) 或 PubSubHubbub 的推送通知,以监控 YouTube 用户的用户活动动态。当有新频道订阅、视频被评分、分享、标记为收藏、评论或上传时,系统会发送通知。
v3 API 将支持使用 PubSubHubbub 协议的推送通知,但这些通知仅涵盖视频上传以及视频标题或视频说明的更新。
-
频道位置 - v2 API 使用
<yt:location>标记来标识用户在频道的 YouTube 公开个人资料中输入的位置。虽然有些开发者使用此字段将频道与特定国家/地区相关联,但此字段的数据无法始终用于此目的。 -
设置或检索开发者标签 - v2 API 支持在上传视频时将关键字或开发者标签与视频相关联。开发者标签不会向 YouTube 用户显示,但视频所有者可以检索与特定开发者标签匹配的视频。
v3 API 将提供类似但不同的功能。具体而言,开发者将能够搜索由其自己的应用上传的视频。对于此功能,每个上传的视频都会自动标记有与 Google Developers Console 中开发者的应用相关联的项目编号。然后,开发者使用同一项目编号搜索视频。
-
按发布日期、观看次数或评分列出视频 - 在 v2 API 中,
orderby参数可让您按位置、时长、发布日期、标题和多个其他值对播放列表中的视频进行排序。在 v3 API 中,播放列表项通常按位置升序排序,其他排序选项不可用。但也有一些例外情况。对于以下类型的播放列表,新上传的视频、收藏的视频、赞过的视频或最近观看的视频会自动添加为第一项 (
snippet.position=0)。因此,这些列表中的每一项都会根据添加到列表中的时间,按从新到旧的顺序进行有效排序。- 用户上传
- 收藏的视频
- 顶过的视频
- 观看记录
不过请注意,添加到“稍后观看”播放列表的新内容会作为该列表中的最后一项内容添加,因此该列表实际上是按从最早到最新内容的顺序排序。
-
批处理 - v3 API 支持 v2 API 支持的其中一个批处理用例。v3 API 的
channels.list、channelSections.list、guideCategories.list、playlistItems.list、playlists.list、subscriptions.list、videoCategories.list和videos.list方法都支持id参数,该参数可用于指定以英文逗号分隔的 ID(视频 ID、频道 ID 等)列表。使用这些方法,您可以通过单个请求检索多个资源的列表。
经过这些更改后,该指南现在会指出旧版 (v2) API 中支持的所有功能,这些功能将在当前 API 版本 (v3) 中弃用。
-
2015 年 3 月 4 日
此更新包含以下更改:
-
channelSections.delete和channelSections.update方法现在支持onBehalfOfContentOwner参数,该参数已受其他几种方法支持。 -
以下属性及其子属性已被弃用:
brandingSettings.image.backgroundImageUrlbrandingSettings.image.largeBrandedBannerImageImapScriptbrandingSettings.image.largeBrandedBannerImageUrlbrandingSettings.image.smallBrandedBannerImageImapScriptbrandingSettings.image.smallBrandedBannerImageUrl
注意:这些属性均不受 API 弃用政策的约束。
-
video资源的新contentDetails.contentRating.contentDetails.contentRating.djctqRatingReasons属性用于标识视频获得 DJCQT(巴西)分级的原因。 -
该 API 现在支持以下错误:
错误类型 错误详情 说明 notFound (404)channelNotFound如果请求的 id参数指定了无法找到的频道,channels.update方法会返回此错误。badRequest (400)manualSortRequiredinvalidValue如果请求尝试设置播放列表项的位置,但播放列表未使用手动排序,则 playlistItems.insert和playlistItems.update方法会返回此错误。例如,播放列表内容可能会按日期或热门程度排序。您可以通过从请求正文中发送的资源中移除snippet.position元素来解决此错误。如果您希望播放列表内容在列表中具有特定位置,则需要先将播放列表的排序设置更新为手动。此设置可在 YouTube 视频管理器中进行调整。forbidden (403)channelClosed如果请求的 channelId参数指定了已关闭的频道,playlists.list方法会返回此错误。forbidden (403)channelSuspended如果请求的 channelId参数指定了已中止的频道,playlists.list方法会返回此错误。forbidden (403)playlistForbidden如果请求的 id参数不支持该请求,或者该请求未获得适当授权,则playlists.list方法会返回此错误。notFound (404)channelNotFound如果请求的 channelId参数指定了无法找到的频道,playlists.list方法会返回此错误。notFound (404)playlistNotFound如果请求的 id参数指定了找不到的播放列表,playlists.list方法会返回此错误。notFound (404)videoNotFound如果请求的 id参数指定了找不到的视频,videos.list方法会返回此错误。badRequest (400)invalidRating如果请求中包含 rating参数的意外值,videos.rate方法会返回此错误。
2015 年 3 月 2 日
此更新包含以下更改:
-
search.list方法现在支持relevanceLanguage参数,该参数可让您请求与特定语言最相关的结果。YouTube Data API (v3) 迁移指南也已更新,其中说明了如何使用这个新参数。该参数解决了当前 API 版本 (v3) 与已弃用的旧版本 (v2) 之间先前存在的功能差距。
-
YouTube Data API (v3) 迁移指南也已更新,其中指明了 v2 API 为描述电影、预告片、电视节目、电视季和电视分集而提供的特殊 Feed 和元数据字段已被弃用。
2015 年 1 月 14 日
此更新包含以下更改:
-
YouTube Data API (v3) 迁移指南已更新,其中说明了如何使用 v3 API 通过 JavaScript 上传视频。(如需了解详情,请参阅上传视频部分。)此功能与 v2 API 支持的基于浏览器的上传功能类似。请注意,迁移指南的这一更改并不反映实际的 API 更改,而是反映了用于通过客户端 JavaScript 上传视频的新示例代码的可用性。
鉴于 JavaScript 客户端库和 CORS 支持上传视频,迁移指南不再将基于浏览器的上传列为可能在 v3 API 中弃用的功能。
-
videos.insert方法的文档已更新,其中包含上述新的 JavaScript 代码示例。YouTube Data API (v3) 的 JavaScript 代码示例列表也已更新。
2014 年 11 月 11 日
此更新包含以下更改:
-
调用
search.list方法的配额费用已更改为 100 个单位。重要提示:在许多情况下,您可以使用其他 API 方法来检索信息,从而降低配额费用。例如,请考虑以下两种查找上传到 GoogleDevelopers 频道的视频的方法。
-
配额费用:100 个单位
调用
search.list方法并搜索GoogleDevelopers。 -
配额费用:6 个单位
调用
channels.list方法以查找正确的频道 ID。将forUsername参数设置为GoogleDevelopers,并将part参数设置为contentDetails。在 API 响应中,contentDetails.relatedPlaylists.uploads属性指定频道上传视频的播放列表 ID。然后,调用
playlistItems.list方法,并将playlistId参数设置为捕获的 ID,将part参数设置为snippet。
-
2014 年 10 月 8 日
此更新包含以下更改:
-
channel资源包含两个新属性:-
status.longUploadsStatus属性用于指明频道是否可以上传时长超过 15 分钟的视频。只有在频道所有者授权 API 请求的情况下,系统才会返回此属性。有效的属性值包括:allowed- 频道可以上传时长超过 15 分钟的视频。eligible- 该频道可以上传时长超过 15 分钟的视频,但必须先启用此功能。disallowed- 该频道无法或不符合条件上传时长超过 15 分钟的视频。
如需详细了解这些值,请参阅属性定义。YouTube 帮助中心也提供了有关此功能的更多详细信息。
-
invideoPromotion.useSmartTiming属性指示频道的宣传广告系列是否使用“智能时间安排”。此功能会尝试在视频中更有可能获得点击且不太可能干扰观看体验的时间点展示宣传内容。此功能还会选择一个宣传内容在每个视频中展示。
-
-
video资源的snippet.title和snippet.categoryId属性的定义均已更新,以阐明 API 处理对videos.update方法的调用的方式。如果您调用该方法来更新video资源的snippet部分,则必须为这两个属性设置值。如果您尝试更新
video资源的snippet部分,但未同时为这两个属性设置值,则 API 会返回invalidRequest错误。该错误的说明也已更新。 -
video资源的contentDetails.contentRating.oflcRating属性用于标识新西兰电影和文学分级办公室 (OFLC) 提供的视频分级,现在支持两个新分级:oflcRp13和oflcRp16。这些分别对应于RP13和RP16分级。 -
channelBanners.insert方法现在支持以下错误:错误类型 错误详情 说明 badRequestbannerAlbumFull频道所有者的 YouTube 频道图片影集中的图片过多。频道所有者应前往 http://photos.google.com,找到相册页面,然后从该相册中移除一些图片。
2014 年 9 月 12 日
此更新包含以下更改:
-
除了指定的资源部分的费用外,调用
search.list方法的配额费用已从 1 个单位更改为 2 个单位。
2014 年 8 月 13 日
此更新包含以下更改:
-
subscriptions.insert方法现在支持以下错误:错误类型 错误详情 说明 badRequestsubscriptionLimitExceeded请求中标识的订阅者已超出订阅速率限制。请过几个小时后再尝试订阅。
2014 年 8 月 12 日
此更新包含以下更改:
-
新指南将您的应用迁移到 YouTube Data API (v3) 介绍了如何使用 YouTube Data API (v3) 执行 YouTube Data API (v2) 中提供的功能。旧版 API 已于 2014 年 3 月 4 日正式弃用。本指南旨在帮助您将仍在使用 v2 API 的应用迁移到最新的 API 版本。
2014 年 7 月 8 日
此更新包含以下更改:
-
playlists.insert方法现在支持以下错误:错误类型 错误详情 说明 badRequestmaxPlaylistExceeded如果频道已达到允许的播放列表数量上限,导致无法创建播放列表,就会出现此错误。
2014 年 6 月 18 日
此更新包含以下更改:
-
每个 API 方法的说明都已更新,其中包含调用该方法所产生的配额费用。同样,
part参数的定义也已更新,以指定在 API 调用中可以检索的每个部分的配额费用。例如,调用subscriptions.insert方法的配额费用约为 50 个单位。subscription资源也包含三个部分(snippet、contentDetails和subscriberSnippet),每个部分的费用为 2 个单位。请注意,配额费用可能会在不发出警告的情况下发生变化。
-
video资源现在支持 43 个新的内容分级制度,这些制度可识别视频从各个国家/地区分级机构获得的分级。新支持的分级制度来自阿根廷、奥地利、比利时、保加利亚、智利(电视)、智利(电影)、捷克共和国、哥伦比亚、丹麦、埃及、爱沙尼亚、芬兰、法国、希腊、中国香港、冰岛、印度尼西亚、爱尔兰、以色列、意大利、肯尼亚、拉脱维亚、卢森堡、马来西亚、马尔代夫、马耳他、荷兰、尼日利亚、挪威、秘鲁、菲律宾、葡萄牙、罗马尼亚、新加坡、斯洛伐克、南非、瑞典、瑞士、中国台湾、泰国和委内瑞拉。
2014 年 5 月 28 日
此更新包含以下更改:
-
search.list方法现在支持location和locationRadius参数,可让您搜索与地理位置相关联的视频。请求必须同时为这两个参数指定值,才能根据地理位置检索结果;如果请求仅包含这两个参数中的一个,API 将返回错误。-
location参数用于指定圆形地理区域中心的纬度/经度坐标。 -
locationRadius参数用于指定与视频关联的位置与区域中心之间的最大距离,只有在此距离范围内的视频才会包含在搜索结果中。
-
2014 年 5 月 13 日
此更新包含以下更改:
-
channel资源的invideoPromotion.items[]属性已更新,现在会注明您通常只能为频道设置一个宣传内容。如果您尝试插入过多宣传内容,API 将返回tooManyPromotedItems错误,该错误具有 HTTP400状态代码。 -
channelSection资源现在可以包含有关几种新类型精选内容的信息。channelSection资源的snippet.type属性现在支持以下值:postedPlaylists- 频道所有者发布到频道活动动态中的播放列表postedVideos- 频道所有者发布到频道活动动态中的视频subscriptions- 频道所有者订阅的频道
-
video资源的新contentDetails.contentRating.ifcoRating属性用于标识视频从爱尔兰电影分级办公室获得的分级。 -
watermark资源的position.cornerPosition属性的定义已更新,其中指出水印始终显示在播放器的右上角。 -
search.list方法的q参数定义已更新,其中指出查询字词可以使用布尔值 NOT (-) 运算符来排除与特定搜索字词关联的视频。该值还可以使用布尔值 OR (|) 运算符来查找与多个搜索字词之一相关联的视频。 -
我们更新了在 API 响应中针对
search.list调用返回的pageInfo.totalResults属性的定义,以指出该值是近似值,可能不代表确切值。此外,最大值为 1,000,000。您不应使用此值来创建分页链接。请改用nextPageToken和prevPageToken属性值来确定是否显示分页链接。 -
watermarks.set和watermarks.unset方法已更新,以反映 API 会针对这些方法的成功请求返回 HTTP204响应代码。
2014 年 5 月 2 日
此更新包含以下更改:
-
新的
i18nLanguage资源用于标识 YouTube 网站支持的应用语言。应用语言也可以称为界面语言。对于 YouTube 网站,系统可能会根据 Google 账号设置、浏览器语言或 IP 位置信息自动选择应用语言,用户也可以从 YouTube 网站页脚手动选择所需的界面语言。该 API 支持列出受支持的应用语言的方法。在调用
videoCategories.list和guideCategories.list等 API 方法时,支持的语言可用作hl参数的值。 -
新的
i18nRegion资源标识了 YouTube 用户可以选择作为首选内容区域的地理区域。内容地区也可以称为内容语言区域。对于 YouTube 网站,系统可能会根据 YouTube 网域或用户的 IP 位置等启发式方法自动选择内容区域,用户也可以从 YouTube 网站页脚手动选择所需的内容区域。该 API 支持列出受支持的内容区域的方法。在调用
search.list、videos.list、activities.list和videoCategories.list等 API 方法时,受支持的国家/地区代码可用作regionCode参数的值。
2014 年 4 月 7 日
此更新包含以下更改:
-
新的
channelSection资源包含有关频道选择精选的一组视频的信息。例如,一个版块可以展示频道最新上传的内容、最热门的上传内容,或一个/多个播放列表中的视频。该 API 支持列出、插入、更新或删除频道版块的方法。您可以通过指定特定频道 ID 或指定唯一频道版块 ID 列表,检索经过身份验证的用户频道的频道版块列表。
错误文档也已更新,其中介绍了 API 专门针对这些新方法支持的出错提示。
-
video资源的fileDetails对象的定义已更新,说明仅当视频的processingDetails.fileDetailsAvailability属性值为available时,才会返回该对象。同样,
video资源的suggestions对象的定义也已更新,以说明只有在视频的processingDetails.tagSuggestionsAvailability属性或其processingDetails.editorSuggestionsAvailability属性的值为available时,才会返回该对象。 -
videos.insert和videos.update方法的文档已更新,以反映在调用这些方法时可以设置status.publishAt属性。 -
channel资源的invideoPromotion对象的定义已更新,说明该对象只能由频道所有者检索。 -
videos.rate方法的参数列表已更新,以反映该方法实际上不支持onBehalfOfContentOwner参数。这是一个文档错误,因为设置此参数的videos.rate请求会返回500错误。
2014 年 3 月 31 日
此更新包含以下更改:
-
借助
video资源的新status.publishAt属性,您可以指定私享视频的预定发布日期和时间。只有在视频的隐私状态为private且视频从未发布过时,才能设置此属性。此新属性不受弃用政策的约束。
2014 年 3 月 13 日
此更新包含以下更改:
-
该 API 现在支持
channel资源的contentOwnerDetails部分。新部分包含与频道关联的 YouTube 合作伙伴相关的频道数据,包括与频道关联的内容所有者的 ID,以及内容所有者和频道关联的日期和时间。请注意,此新部分不受弃用政策的约束。 -
文档现在列出了以下属性支持的最大字符长度:
资源 属性 最大长度 channelinvideoPromotion.items[].customMessage40 个字符 videosnippet.title100 个字符 videosnippet.description5000 字节 videosnippet.tags500 个字符。请注意,属性值是一个列表,列表中的项之间的英文逗号会计入限制。 -
channel资源的brandingSettings.watch.featuredPlaylistId属性已弃用。如果您尝试设置其值,API 将返回错误。 -
错误文档现在指定了每种错误类型的 HTTP 响应代码。
-
该 API 现在支持以下错误:
错误类型 错误详情 说明 badRequest (400)invalidCriteria如果请求指定的过滤条件参数无法搭配使用, channels.list方法会返回此错误。badRequest (400)channelTitleUpdateForbidden如果您尝试更新频道的 brandingSettings部分并更改brandingSettings.channel.title属性的值,channels.update方法会返回此错误。(请注意,如果您省略该属性,API 不会返回错误。)badRequest (400)invalidRecentlyUploadedBy如果 invideoPromotion.items[].id.recentlyUploadedBy属性指定了无效的频道 ID,channels.update方法会返回此错误。badRequest (400)invalidTimingOffset如果 invideoPromotion部分指定了无效的时间偏移值,channels.update方法会返回此错误。badRequest (400)tooManyPromotedItems如果 invideoPromotion部分指定的宣传内容数量超过允许的数量,channels.update方法会返回此错误。forbidden (403)promotedVideoNotAllowed如果 invideoPromotion.items[].id.videoId属性指定的视频 ID 无法找到或无法用作宣传内容,则channels.update方法会返回此错误。forbidden (403)websiteLinkNotAllowed如果 invideoPromotion.items[].id.websiteUrl属性指定的网址不符合要求,channels.update方法会返回此错误。required (400)requiredTimingType如果请求未指定 YouTube 应何时展示宣传内容的默认时间设置, channels.update方法会返回此错误。required (400)requiredTimingchannels.update方法必须为每个促销商品指定一个invideoPromotion.items[].timing对象。required (400)requiredWebsiteUrlchannels.update方法必须为每个宣传的商品指定invideoPromotion.items[].id.websiteUrl属性。badRequest (400)invalidPublishAt如果请求元数据指定了无效的预定发布时间, videos.insert方法会返回此错误。
2014 年 3 月 4 日
此更新包含以下更改:
-
YouTube Data API v3 现已受《YouTube API 服务条款》中所述的弃用政策约束。请注意,列出受弃用政策约束的 API 的页面明确指出,某些 v3 API 功能不受该政策约束。
2013 年 12 月 5 日
此更新包含以下更改:
-
search.list方法的文档已更新,以正确反映您在提交搜索请求时无需为恰好一个过滤条件参数指定值。而是可以为零个过滤条件参数或一个过滤条件参数设置值。 -
search.list方法的参数定义已更新,其中指出,如果您还为以下任一参数指定了值,则必须将type参数的值设置为video:eventTypevideoCaptionvideoCategoryIdvideoDefinitionvideoDimensionvideoDurationvideoEmbeddablevideoLicensevideoSyndicatedvideoType
-
上传的频道横幅图片的最小尺寸已缩减为 2048 像素 x 1152 像素。(之前的最小尺寸为 2120 像素 x 1192 像素。)此外,请注意,
channel资源文档指定了通过 API 提供的所有横幅图片的大小上限。例如,电视应用brandingSettings.image.bannerTvImageUrl图片的大小上限为 2120 像素 x 1192 像素,但实际图片可能为 2048 像素 x 1152 像素。YouTube 帮助中心提供了更多指导,帮助您优化频道图片,以便在不同类型的设备上显示。 -
更新了多个
channel资源属性定义,以反映以下信息:brandingSettings.channel.description属性的值长度上限为 1,000 个字符。brandingSettings.channel.featuredChannelsTitle属性的长度上限为 30 个字符。brandingSettings.channel.featuredChannelsUrls[]属性现在最多可以列出 100 个频道。brandingSettings.channel.unsubscribedTrailer属性值(如果已设置)必须指定频道所有者拥有的公开或不公开列出视频的 YouTube 视频 ID。
-
channels.update方法现在支持对invideoPromotion.items[].promotedByContentOwner属性进行更新。该属性用于指明在展示宣传内容时是否显示内容所有者的名称。只有在代表内容所有者使用onBehalfOfContentOwner参数发出设置属性值的 API 请求时,才能设置此属性。 -
playlistItems.list和playlistItems.insert方法现在支持onBehalfOfContentOwner参数,该参数已受其他几种方法支持。 -
contentDetails.contentRating.acbRating属性现在可以指定澳大利亚分级委员会 (ACB) 针对电影的分级,或澳大利亚通信和媒体管理局 (ACMA) 针对儿童电视节目的分级。 -
新的
contentDetails.contentRating.catvRating和contentDetails.contentRating.catvfrRating属性分别标识视频在加拿大电视分级制度和魁北克省使用的法语 Régie du cinéma 分级制度下获得的分级。 -
videoCategory资源的新snippet.assignable属性用于指明更新后的视频或新上传的视频是否可以与该视频类别相关联。 -
为以下方法添加了代码示例:
activities.insert(Go)channelBanners.insert(Python)channels.update(Python)playlistItems.list(Go)search.list(Go)thumbnails.set(Java)videos.insert(Go)
2013 年 10 月 24 日
此更新包含以下更改:
-
该 API 还包含两项额外功能,旨在帮助查找和展示直播内容:
搜索结果中新增的
snippet.liveBroadcastContent属性用于指明视频或频道资源是否包含直播内容。有效的属性值为upcoming、active和none。-
video资源的新snippet.liveBroadcastContent属性用于指明视频是即将开始的直播还是正在进行的直播。下表说明了该属性的可能值:upcoming- 视频是尚未开始的直播。active- 视频是正在进行的直播。none- 视频不是即将开始或正在进行的直播。对于仍可在 YouTube 上观看的已完成直播,此属性的值将为“completed”。
-
video资源的新liveStreamingDetails属性是一个对象,其中包含有关实时视频广播的元数据。如需检索此元数据,请在part参数值的资源部分列表中添加liveStreamingDetails。元数据包含以下新属性:liveStreamingDetails.actualStartTime- 广播实际开始的时间。(一旦直播状态为active,此值就会显示。)liveStreamingDetails.actualEndTime- 广播实际结束的时间。(此值将在直播结束后显示。)liveStreamingDetails.scheduledStartTime- 广播的预定开始时间。liveStreamingDetails.scheduledEndTime- 广播计划结束的时间。如果该属性值为空或该属性不存在,则直播会安排为无限期进行。liveStreamingDetails.concurrentViewers- 正在观看直播的人数。
如需检索此元数据,请在调用
videos.list、videos.insert或videos.update方法时,在part参数值中添加liveStreamingDetails。
请注意,另外两个用于识别直播内容的功能已于 2013 年 10 月 1 日发布,即
search.list方法的eventType参数和搜索结果的snippet.liveBroadcastContent属性。 -
-
videos.insert方法现在支持notifySubscribers参数,该参数用于指明 YouTube 是否应向订阅了视频所属频道的用户发送有关新视频的通知。该参数的默认值为True,表示订阅者会收到新上传视频的通知。不过,如果频道所有者要上传大量视频,则可能希望将该值设置为False,以免向频道订阅者发送有关每个新视频的通知。 -
调用
channels.update方法时可修改的属性列表已更新,其中包含invideoPromotion.items[].customMessage和invideoPromotion.items[].websiteUrl属性。此外,该列表已经过修改,以标识可修改的brandingSettings属性。这些brandingSettings属性已经可以修改,因此文档变更并不反映 API 现有功能的变更。 -
playlists.insert、playlists.update和playlists.delete方法现在支持onBehalfOfContentOwner参数,该参数已受其他几种方法支持。 -
playlists.insert方法现在支持onBehalfOfContentOwnerChannel参数,该参数已受其他几种方法支持。 -
video资源的contentDetails.contentRating.tvpgRating属性现在支持pg14值,该值对应于TV-14分级。 -
snippet.liveBroadcastContent属性(属于搜索结果的一部分)的定义已更正,以反映live是有效的属性值,而active不是有效的属性值。 -
video资源的contentDetails.contentRating.mibacRating属性现在支持另外两个分级:mibacVap(VAP) - 儿童应由成人陪同。mibacVm6(V.M.6) - 仅限年满 6 周岁者观看。mibacVm12(V.M.12) - 必须年满 12 周岁才能观看。
-
channel资源的新invideoPromotion.items[].promotedByContentOwner属性用于指明在展示宣传内容时是否显示内容所有者的名称。只有在代表内容所有者发出设置值的 API 请求时,才能设置此字段。如需了解详情,请参阅onBehalfOfContentOwner参数。
2013 年 10 月 1 日
此更新包含以下更改:
-
channel资源的新auditDetails对象包含多频道网络 (MCN) 在确定是否接受或拒绝特定频道时会评估的频道数据。请注意,任何检索此资源部分的 API 请求都必须提供包含https://www.googleapis.com/auth/youtubepartner-channel-audit范围的授权令牌。此外,当 MCN 决定接受或拒绝频道时,或者在令牌签发之日起两周内,必须撤消使用该范围的所有令牌。 -
channel资源的invideoPromotion.items[].id.type属性现在支持recentUpload值,该值表示宣传的内容是指定频道中最近上传的视频。默认情况下,该频道与设置了视频内促销活动数据的频道相同。不过,您可以通过将新
invideoPromotion.items[].id.recentlyUploadedBy属性的值设置为另一个频道的频道 ID,来宣传该频道中最近上传的视频。 -
channel资源包含三个新属性:brandingSettings.image.bannerTvLowImageUrl、brandingSettings.image.bannerTvMediumImageUrl、brandingSettings.image.bannerTvHighImageUrl,用于指定在电视应用中的频道页上显示的横幅图片的网址。 -
搜索结果中新增的
snippet.liveBroadcastContent属性用于指明视频或频道资源是否包含直播内容。有效的属性值为upcoming、active和none。- 对于
video资源,值为upcoming表示视频是尚未开始的直播,而值为active表示视频是正在进行的直播。 - 对于
channel资源,值upcoming表示频道有尚未开始的预定直播,而值acive表示频道有正在进行的直播。
- 对于
-
在
watermark资源中,targetChannelId属性已从对象更改为字符串。targetChannelId属性现在不再包含用于指定水印图片所链接到的 YouTube 频道 ID 的子属性,而是直接指定该值。因此,资源的targetChannelId.value属性已被移除。 -
thumbnails.set方法现在支持onBehalfOfContentOwner参数,该参数已受其他几种方法支持。 -
search.list方法现在支持eventType参数,该参数可限制搜索,使其仅返回正在进行、即将开始或已完成的直播活动。 -
新的
contentDetails.contentRating.mibacRating属性用于标识视频从意大利文化遗产、活动和旅游部 (Ministero dei Beni e delle Attivita Culturali e del Turismo) 获得的分级。 -
该 API 现在支持以下错误:
错误类型 错误详情 说明 badRequestinvalidImage如果提供的图片内容无效, thumbnails.set方法会返回此错误。forbiddenvideoRatingDisabled如果被评分视频的所有者已停用该视频的评分功能, videos.rate方法会返回此错误。
2013 年 8 月 27 日
此更新包含以下更改:
-
新的
watermark资源用于标识在指定频道的视频播放期间显示的图片。您还可以指定图片链接到的目标频道,以及确定水印在视频播放期间何时出现以及显示时长的详细时间信息。watermarks.set方法会上传并设置频道的水印图片。watermarks.unset方法可删除频道的水印图片。错误文档介绍了 API 专门针对
watermarks.set和watermarks.unset方法支持的出错提示。 -
channel资源的新statistics.hiddenSubscriberCount属性包含一个布尔值,用于指示频道的订阅人数是否处于隐藏状态。因此,如果频道的订阅人数公开显示,则该属性的值为false。 -
playlists.list方法现在支持onBehalfOfContentOwner和onBehalfOfContentOwnerChannel参数。其他几种方法已支持这两个参数。 -
videos.list方法现在支持regionCode参数,该参数用于标识应检索其排行榜的内容区域。此参数只能与chart参数搭配使用。参数值是 ISO 3166-1 alpha-2 国家/地区代码。 -
error documentation介绍了以下新的常见请求错误,这些错误可能会在多种 API 方法中发生:错误类型 错误详情 说明 forbiddeninsufficientPermissions为请求提供的 OAuth 2.0 令牌关联的范围不足,无法访问请求的数据。
2013 年 8 月 15 日
此更新包含以下更改:
-
channel资源的invideoPromotion对象具有以下新增和更新的属性:-
该 API 现在支持将网站指定为宣传内容。为此,请将
invideoPromotion.items[].id.type属性值设置为website,并使用新的invideoPromotion.items[].id.websiteUrl属性指定网址。此外,还可使用新的invideoPromotion.items[].customMessage属性来定义要为促销活动显示的自定义消息。链接可以指向关联的网站、商家网站或社交网站。如需详细了解如何为您的内容启用链接,请参阅 YouTube 帮助中心内有关关联网站和商家网站的说明。
添加宣传链接即表示您同意:这些链接不会用于将流量重定向到未经授权的网站,并且这些链接将遵守 YouTube 的 AdWords 政策、YouTube 广告政策、YouTube 社区准则和 YouTube 服务条款。
-
与视频播放期间展示宣传内容的计时设置相关的属性已重构:
-
invideoPromotion.timing对象已移至invideoPromotion.items[].timing。现在,您可以使用此对象为invideoPromotion.items[]列表中的每个宣传内容项自定义时间数据。 -
新的
invideoPromotion.defaultTiming对象用于指定促销活动的默认时间设置。这些设置决定了宣传内容在频道视频播放期间的展示时机。您可以使用invideoPromotion.items[].timing对象替换任何给定宣传商品的默认时间。 -
新的
invideoPromotion.items[].timing.durationMs属性用于指定宣传广告应显示的时长(以毫秒为单位)。invideoPromotion.defaultTiming对象还包含一个durationMs字段,用于指定宣传内容的默认展示时长。
-
-
invideoPromotion.items[].type和invideoPromotion.items[].videoId属性均已移至invideoPromotion.items[].id对象中。
-
-
subscriptions.list方法现在支持onBehalfOfContentOwner和onBehalfOfContentOwnerChannel参数。其他几种方法已支持这两个参数。 -
在对
thumbnails.set请求的 API 响应中,kind属性值已从youtube#thumbnailListResponse更改为youtube#thumbnailSetResponse。 -
为以下方法添加了代码示例:
channels.update(Java、Python)playlists.insert(.NET、PHP)subscriptions.insert(PHP、Python)thumbnails.set(PHP、Python)videos.insert(PHP)videos.list(PHP)videos.rate(Python)videos.update(Java、PHP、Python)
请注意,
playlistItems.insert方法的 Python 示例也已移除,因为其演示的功能现在由videos.rate方法处理。 -
error documentation介绍了以下新的请求上下文错误,该错误可能会在支持mine请求参数的任何 API 方法中发生:错误类型 错误详情 说明 badRequestinvalidMine如果经过身份验证的用户是 YouTube 合作伙伴,则无法在请求中使用 mine参数。您应移除mine参数,通过移除onBehalfOfContentOwner参数以 YouTube 用户身份进行身份验证,或通过提供onBehalfOfContentOwnerChannel参数(如果所调用的方法支持该参数)以合作伙伴的某个频道身份执行操作。
2013 年 8 月 8 日
此更新包含以下更改:
-
YouTube Data API 使用入门指南的配额用量部分已更新,反映了视频上传的配额费用从大约 16,000 个单位更改为大约 1,600 个单位。
2013 年 7 月 30 日
此更新包含以下更改:
-
在
channelBanner资源中,kind属性的值已从youtube#channelBannerInsertResponse更改为youtube#channelBannerResource。此资源会在响应channelBanners.insert请求时返回。 -
channel资源的新brandingSettings.channel.profileColor属性指定了一种与频道内容相得益彰的醒目颜色。属性值为一个井号 (#) 后跟一个六字符十六进制字符串,例如#2793e6。 -
该 API 现在支持指定订阅是针对频道的所有活动还是仅针对新上传的内容。
subscription资源的新contentDetails.activityType属性用于标识订阅者将收到通知的活动类型。有效的属性值为all和uploads。 -
videos.list方法支持用于检索 YouTube 上最热门视频排行榜的新参数:chart参数用于标识您要检索的图表。目前,唯一支持的值是mostPopular。请注意,chart参数是一个过滤条件参数,这意味着它不能与同一请求中的其他过滤条件参数(id和myRating)一起使用。videoCategoryId参数用于标识应检索哪个视频类别的排行榜。此参数只能与chart参数搭配使用。默认情况下,图表不限于特定类别。
-
video资源的新topicDetails.relevantTopicIds[]属性提供了与视频或其内容相关的 Freebase 主题 ID 列表。视频中可能会提及或出现这些主题的内容。 -
video资源的recordingDetails.location.elevation属性已重命名为recordingDetails.location.altitude,其fileDetails.recordingLocation.location.elevation属性已重命名为fileDetails.recordingLocation.location.altitude。 -
video资源的contentDetails.contentRating对象指定了视频在各种分级方案(包括 MPAA 分级、TVPG 分级等)下获得的分级。对于每个分级制度,API 现在都支持一个分级值,用于表示视频尚未分级。请注意,对于 MPAA 分级,“无分级”分级通常用于标识电影的未剪辑版本,而电影的剪辑版本确实获得了官方分级。 -
video资源的新contentDetails.contentRating.ytRating属性用于标识有年龄限制的内容。如果 YouTube 认定视频包含不适合未满 18 周岁用户观看的内容,则属性值为ytAgeRestricted。如果该属性不存在或属性值为空,则表示内容未被标识为有年龄限制。 -
channels.list方法的mySubscribers参数已弃用。使用subscriptions.list方法及其mySubscribers参数检索经过身份验证的用户频道的订阅者列表。 -
channelBanners.insert、channels.update、videos.getRating和videos.rate方法现在都支持onBehalfOfContentOwner参数。该参数表示,经过身份验证的用户代表参数值中指定的内容所有者行事。 -
channels.update方法的文档已更新,以反映该方法可用于更新channel资源的brandingSettings对象及其子属性。该文档现在还列出了您可以为channel资源的invideoPromotion对象设置的更新后的属性列表。 -
error documentation描述了以下新错误:错误类型 错误详情 说明 forbiddenaccountDelegationForbidden此错误并非特定于某个 API 方法。这表示经过身份验证的用户无权代表指定的 Google 账号执行操作。 forbiddenauthenticatedUserAccountClosed此错误并非特定于某个 API 方法。这表示经过身份验证的用户的 YouTube 账号已关闭。如果该用户代表另一个 Google 账号行事,则此错误表示另一个账号已关闭。 forbiddenauthenticatedUserAccountSuspended此错误并非特定于某个 API 方法。这表示经过身份验证的用户 YouTube 账号已被中止。如果用户代表另一个 Google 账号行事,则此错误表示另一个账号已被中止。 forbiddenauthenticatedUserNotChannel此错误并非特定于某个 API 方法。这表示 API 服务器无法识别与 API 请求关联的渠道。如果请求已获得授权并使用 onBehalfOfContentOwner参数,您还应设置onBehalfOfContentOwnerChannel参数。forbiddencmsUserAccountNotFound此错误并非特定于某个 API 方法。CMS 用户无权代表指定的内容所有者执行操作。 notFoundcontentOwnerAccountNotFound此错误并非特定于某个 API 方法。找不到指定的内容所有者账号。 badRequestinvalidPart此错误并非特定于某个 API 方法。请求的 part参数指定了无法同时写入的部分。badRequestvideoChartNotFound如果请求指定了不受支持或不可用的视频排行榜, videos.list方法会返回此错误。notFoundvideoNotFoundvideos.update方法会返回此错误,表示找不到您尝试更新的视频。请检查请求正文中id属性的值,确保其正确无误。
2013 年 6 月 10 日
此更新包含以下更改:
-
channels.list方法的新forUsername参数使您能够通过指定频道的 YouTube 用户名来检索有关该频道的信息。 -
activities.list方法现在支持regionCode参数,该参数会指示 API 返回与指定国家/地区相关的结果。当授权用户之前在 YouTube 上的活动无法提供足够的信息来生成活动动态时,YouTube 会使用此值。 -
播放列表资源现在包含
snippet.tags属性。此属性仅会返回给正在检索其自身播放列表相关数据的授权用户。授权用户还可以在调用playlists.insert或playlists.update方法时设置播放列表标签。 -
onBehalfOfContentOwner参数之前仅受channels.list和search.list方法支持,现在也受videos.insert、videos.update和videos.delete方法支持。请注意,在调用videos.insert方法时使用此参数时,请求还必须为新的onBehalfOfContentOwnerChannel参数指定一个值,该参数用于标识视频将添加到的频道。该频道必须与onBehalfOfContentOwner参数指定的内容所有者相关联。该参数表示请求的授权凭据标识的是代表参数值中指定的内容所有者行事的 YouTube 内容管理系统用户。用户用于身份验证的内容管理系统账号必须与指定的 YouTube 内容所有者相关联。
此参数适用于拥有和管理许多不同 YouTube 频道的内容合作伙伴。借助该参数,这些合作伙伴只需进行一次身份验证,即可访问其所有视频和频道数据,而无需为每个频道单独提供身份验证凭证。
具体而言,在此版本中,该参数现在允许内容合作伙伴在自己拥有的任何 YouTube 频道中插入、更新或删除视频。
-
error documentation描述了以下新错误:错误类型 错误详情 说明 forbiddeninsufficientCapabilities此错误并非特定于某个 API 方法。这表示调用 API 的 CMS 用户没有足够的权限来执行请求的操作。此错误与 onBehalfOfContentOwner参数的使用有关,该参数受多种 API 方法支持。unauthorizedauthorizationRequired当请求使用 home参数但未获得适当授权时,activities.list方法会返回此错误。 -
在
channels资源中,invideoPromotion.channelId属性已被移除,因为频道 ID 已使用资源的id属性指定。 -
新的使用频道 ID 指南介绍了 API 如何使用频道 ID。对于从旧版 API 迁移过来的开发者,以及其应用会请求
default用户的内容或依赖于“每个 YouTube 频道都有一个唯一用户名”这一概念(现在已不再是这种情况)的开发者,本指南可能特别有用。
2013 年 5 月 22 日
此更新包含以下更改:
-
借助新的
channelBanners.insert方法,您可以上传横幅图片,随后可以使用channel资源的新brandingSettings.image.bannerExternalUrl属性将该图片设置为频道的横幅图片。 -
channels.update方法的文档已更新,其中列出了调用该方法时可以修改的属性。 -
video资源文档不再将unspecified列为suggestions.processingErrors[]、suggestions.processingHints[]、suggestions.processingWarnings[]和suggestions.editorSuggestions[]属性的有效属性值。 -
videos.list方法的maxResults参数现在具有默认值5。 -
error documentation现在会列出channelBanners.insert和subscriptions.list方法的错误。此外,还列出了channels.update方法的几个新错误。
2013 年 5 月 14 日
此更新包含以下更改:
2013 年 5 月 10 日
此更新包含以下更改:
-
YouTube 不再标识实验性 API 功能和服务。现在,我们提供了一份受弃用政策约束的 YouTube API 列表。
2013 年 5 月 8 日
此更新包含以下更改:
-
频道资源现在支持
inVideoPromotion对象,该对象封装了与频道关联的宣传广告系列的相关信息。频道可以使用视频内宣传广告系列,在频道视频播放期间,在视频播放器中显示推荐视频的缩略图。您可以在
channels.list请求中将invideoPromotion包含在part参数值中,以检索此数据。 -
新的
channels.update方法可用于更新频道的视频内宣传广告系列数据。请注意,该方法仅支持更新channel资源的invideoPromotion部分,尚不支持更新该资源的其他部分。
2013 年 5 月 2 日
此更新包含以下更改:
-
频道资源现在支持
status.isLinked属性,该属性用于指明频道数据是否标识已与 YouTube 用户名或 Google+ 账号关联的用户。拥有其中一个链接的用户已经拥有公开的 YouTube 身份,这是执行多项操作(例如上传视频)的前提条件。 -
订阅资源现在支持
subscriberSnippet部分。该对象封装了订阅者频道的容器代码段数据。 -
该 API 现在支持
videos.getRating方法,该方法可检索经过身份验证的用户为一个或多个视频列表给出的评分。 -
借助
videos.list方法的新myRating参数,您可以检索经过身份验证的用户评分为like或dislike的视频列表。myRating参数和id参数现在都被视为过滤条件参数,这意味着 API 请求必须指定其中一个参数。(以前,id参数是此方法的必需参数。)如果请求尝试检索视频分级信息,但未获得适当授权,则该方法会返回
forbidden错误。 -
随着
myRating参数的引入,videos.list方法也已更新,以支持分页。不过请注意,只有使用myRating参数的请求才支持分页参数。(对于使用id参数的请求,不支持分页参数和信息。)-
maxResults参数指定 API 可以在结果集中返回的视频数量上限,pageToken参数标识您要检索的结果集中的特定页面。 -
youtube#videoListResponse资源(作为对videos.list请求的响应而返回)现在包含pageInfo对象,其中包含结果总数和当前结果集中包含的结果数等详细信息。youtube#videoListResponse资源还可以包含nextPageToken和prevPageToken属性,每个属性都提供一个令牌,可用于检索结果集中的特定页面。
-
-
videos.insert方法支持以下新参数:autoLevels- 将此参数值设置为true,以指示 YouTube 自动增强视频的光线和色彩。stabilize- 将此参数值设置为true,以指示 YouTube 通过消除相机运动引起的抖动来调整视频。
-
channelTitle属性已添加到以下资源的snippet中:playlistItem- 该属性指定添加了播放列表内容的频道的名称。playlist- 该属性指定创建播放列表的频道的名称。subscription- 该属性指定了订阅的频道名称。
-
为以下方法添加了代码示例:
activities.insert(Ruby)playlistItems.list(.NET)search.list(.NET)subscriptions.insert(Java、Ruby)videos.insert(.NET、Ruby)
-
subscriptions.list方法的新mySubscribers参数可让您检索当前经过身份验证的用户的订阅者列表。此参数只能在经过适当授权的请求中使用。注意:此功能旨在取代
channels.list方法目前支持的mySubscribers参数。该参数将被弃用。 -
在
video资源中,属性值unspecified不再是以下任何属性的可能值: -
现在,包含意外参数的 API 请求会返回
badRequest错误,并且报告的错误原因为unexpectedParameter。 -
当播放列表已包含允许的最大内容数量时,
playlistItems.insert方法返回的错误已更新。现在,该错误会报告为forbidden错误,错误原因为playlistContainsMaximumNumberOfVideos。
2013 年 4 月 19 日
此更新包含以下更改:
-
借助新的
videos.rate方法,用户可以对视频设置like或dislike评分,也可以移除视频的评分。错误文档也已更新,其中列出了 API 在响应
videos.rate方法调用时可能会返回的错误。 -
缩略图现在在 API 文档中被标识为单独的资源,新的
thumbnails.set方法可让您将自定义视频缩略图上传到 YouTube 并将其设置为视频缩略图。错误文档也已更新,其中列出了 API 在响应
thumbnails.set方法调用时可能会返回的错误。请注意,此变更实际上不会影响返回缩略图的现有资源。缩略图在这些资源中的返回方式与之前相同,但文档现在列出了 API 可能返回的不同缩略图尺寸的名称。
-
channel资源的新brandingSettings部分用于标识频道页和视频观看页面的设置、文本和图片。 -
playlistItem资源包含以下新属性:-
新的
status对象封装了播放列表项的状态信息,status.privacyStatus属性标识了播放列表项的隐私状态。
-
-
video资源包含以下新属性:-
status.publicStatsViewable属性用于指明观看页面上的扩展视频统计信息是否可公开查看。默认情况下,这些统计信息是可见的,即使此属性的值设置为false,视频的观看次数和评分等统计信息仍会公开显示。您可以在调用videos.insert或videos.update方法时设置此属性的值。 -
contentDetails.contentRating对象封装了视频在各种分级方案下获得的分级。下表列出了支持的分级制度,并提供了与每个分级制度关联的属性的链接。属性定义会标识每个制度支持的分级值。
-
-
playlistItems.update方法的文档已更新,以反映必须在作为请求正文发送的资源中指定snippet.resourceId属性。 -
search.list方法现在支持以下功能:-
新的
forMine参数会限制搜索,使其仅检索经过身份验证的用户视频。 -
order参数现在支持按标题字母顺序 (order=title) 或按视频数量降序 (order=videoCount) 对结果进行排序。 -
新的
safeSearch参数用于指示搜索结果是否应包含受限内容。
-
-
videos.insert方法支持多个新错误,下表中列出了这些错误:错误类型 错误详情 说明 badRequestinvalidCategoryIdsnippet.categoryId属性指定的类别 ID 无效。使用videoCategories.list方法检索支持的类别。badRequestinvalidRecordingDetailsmetadata指定了无效的录制详细信息。badRequestinvalidVideoGameRating请求元数据指定了无效的电子游戏分级。 badRequestinvalidVideoMetadata请求元数据无效。 -
onBehalfOfContentOwner参数已从videos.update和videos.delete方法支持的参数列表中移除。
2013 年 3 月 12 日
此更新包含以下更改:
-
channelTitle属性已添加到以下资源的snippet中: -
search.list方法支持以下新参数:-
借助
channelType参数,您可以限制频道搜索范围,以检索所有频道或仅检索节目。 -
借助
videoType参数,您可以限制视频搜索范围,以检索所有视频,或仅检索电影或仅检索剧集。
-
-
video资源的recordingDetails部分的定义已更新,其中指出,只有在设置了视频的地理定位数据或录制时间后,系统才会返回视频的对象。 -
playlistItems.update方法现在会返回invalidSnippet错误,如果 API 请求未指定有效的代码段,就会返回该错误。 -
多种 API 方法支持专为 YouTube 内容合作伙伴提供的新参数。YouTube 内容合作伙伴包括电影和电视制片厂、唱片公司以及在 YouTube 上提供内容的其他内容创作者。
-
onBehalfOfContentOwner参数表示请求的授权凭据标识的是代表参数值中指定的内容所有者行事的 YouTube 内容管理系统用户。用户用于身份验证的内容管理系统账号必须与指定的 YouTube 内容所有者相关联。此参数适用于拥有和管理许多不同 YouTube 频道的内容合作伙伴。借助该参数,这些合作伙伴只需进行一次身份验证,即可访问其所有视频和频道数据,而无需为每个频道单独提供身份验证凭证。
channels.list、search.list、videos.delete、videos.list和videos.update方法都支持此参数。 -
managedByMe方法支持channels.list参数,该参数指示 API 返回onBehalfOfContentOwner参数指定的内容所有者拥有的所有频道。 -
forContentOwner参数(受search.list方法支持)指示 API 限制搜索结果,使其仅包含onBehalfOfContentOwner参数指定的内容所有者所拥有的资源。
-
2013 年 2 月 25 日
此更新包含以下更改:
-
该 API 支持
video资源的多个新部分和属性:-
新的
fileDetails、processingDetails和suggestions部分可向视频所有者提供有关其上传视频的信息。这些数据在支持视频上传的应用中非常有用,包括:- 处理状态和进度
- 处理视频时遇到的错误或其他问题
- 缩略图的可用性
- 有关如何提高视频或元数据质量的建议
- 上传到 YouTube 的原始文件的详细信息
所有这些部分只能由视频所有者检索。下表简要介绍了这些新部分,
video资源文档定义了每个部分包含的所有属性。-
fileDetails对象包含有关上传到 YouTube 的视频文件的信息,包括文件的分辨率、时长、音频和视频编解码器、视频流比特率等。 -
processingProgress对象包含有关 YouTube 处理上传的视频文件的进度的信息。该对象的属性可标识当前的处理状态,并估算 YouTube 完成视频处理所需的剩余时间。此部分还会指明视频是否提供不同类型的数据或内容,例如文件详细信息或缩略图。此对象旨在进行轮询,以便视频上传者可以跟踪 YouTube 在处理上传的视频文件方面取得的进展。
-
suggestions对象包含一些建议,这些建议指出了可以改进已上传视频的视频画质或元数据的机会。
-
contentDetails部分包含四个新属性。这些属性可以通过未经身份验证的请求进行检索。dimension- 指示视频是 2D 还是 3D。definition- 指示视频是以标清还是高清晰度画质提供。caption- 指示视频是否有字幕。licensedContent- 指示视频是否包含已被 YouTube 内容合作伙伴主张版权的内容。
-
status部分包含两个新属性。视频所有者可以在插入或更新视频时为这两个属性设置值。这些属性也可以通过未经身份验证的请求进行检索。embeddable- 指示视频是否可以嵌入到其他网站中。license- 指定视频的许可。有效值为creativeCommon和youtube。
-
-
videos.list、videos.insert和videos.update方法的part参数定义已更新,以列出上述新添加的部分以及之前不小心省略的recordingDetails部分。 -
channel资源的新contentDetails.googlePlusUserId属性指定与频道关联的 Google+ 个人资料 ID。此值可用于生成指向 Google+ 个人资料的链接。 -
现在,每个缩略图对象都会指定图片的宽度和高度。缩略图目前在
activity、channel、playlist、playlistItem、search result、subscription和video资源中返回。 -
playlistItems.list现在支持videoId参数,该参数可与playlistId参数结合使用,以便仅检索代表指定视频的播放列表项。如果播放列表中找不到该参数标识的视频,API 会返回
notFound错误。 -
channel资源的snippet.channelId属性已被移除。资源的id属性提供相同的值。
2013 年 1 月 30 日
此更新包含以下更改:
-
新的错误页面列出了该 API 可能会返回的错误。该页面包含可能针对多个不同 API 方法发生的一般错误,以及特定于方法的错误。
2013 年 1 月 16 日
此更新包含以下更改:
-
现在,下表所示的方法和语言均有代码示例:
activities.insert- JavaplaylistItems.insert- PythonplaylistItems.list- Java、JavaScript、PHP、Python、Rubyplaylists.insert- Java、JavaScript、Pythonsearch.list- Java、JavaScript、Python、Rubyvideos.insert- Java
-
activity资源现在可以报告channelItem操作,当 YouTube 将视频添加到自动生成的 YouTube 频道时,就会发生此操作。(YouTube 会通过算法识别在 YouTube 网站上出现频率较高的主题,并自动为这些主题生成频道。) -
以下
search.list参数已更新:q参数不再指定为过滤条件,这意味着…relatedToVideo参数已重命名为relatedToVideoId。published参数已替换为两个新参数:publishedAfter和publishedBefore,如下所述。
-
search.list方法支持以下新参数:参数名称 值 说明 channelIdstring返回由指定渠道创建的资源。 publishedAfterdatetime返回在指定时间之后创建的资源。 publishedBeforedatetime返回在指定时间之前创建的资源。 regionCodestring返回指定国家/地区的资源。 videoCategoryIdstring过滤视频搜索结果,使其仅包含与指定视频类别相关联的视频。 videoEmbeddablestring过滤视频搜索结果,仅包含可在网页上的嵌入式播放器中播放的视频。将参数值设置为 true,以便仅检索可嵌入的视频。videoSyndicatedstring过滤视频搜索结果,使其仅包含可在 YouTube.com 之外播放的视频。将参数值设置为 true,以便仅检索联合发布的视频。 -
多个 API 资源支持新属性。下表列出了这些资源及其新属性:
资源 属性名称 值 说明 activitycontentDetails.playlistItem.playlistItemIdstringYouTube 分配的播放列表项 ID,用于唯一标识播放列表中的项。 activitycontentDetails.channelItemobject一个对象,其中包含有关已添加到频道中的资源的信息。仅当 snippet.type为channelItem时,此属性才会存在。activitycontentDetails.channelItem.resourceIdobject一个对象,用于标识已添加到频道中的资源。与其他 resourceId属性一样,它包含一个kind属性,用于指定资源类型,例如视频或播放列表。它还包含多个属性(videoId、playlistId等)中的一个,用于指定唯一标识该资源的 ID。channelstatusobject此对象封装了有关频道隐私状态的信息。 channelstatus.privacyStatusstring频道的隐私状态。有效值为 private和public。playlistcontentDetailsobject此对象包含播放列表内容的元数据。 playlistcontentDetails.itemCountunsigned integer播放列表中的视频数量。 playlistplayerobject此对象包含您在嵌入式播放器中播放播放列表时要使用的信息。 playlistplayer.embedHtmlstring一个 <iframe>标记,用于嵌入播放列表的视频播放器。videorecordingDetailsobject此对象封装了用于标识或描述视频录制地点和时间的信息。 videorecordingDetails.locationobject此对象包含与视频关联的地理定位信息。 videorecordingDetails.location.latitudedouble纬度(以度为单位)。 videorecordingDetails.location.longitudedouble经度(以度为单位)。 videorecordingDetails.location.elevationdouble海拔高度(以米为单位)。 videorecordingDetails.locationDescriptionstring视频录制地点的文字说明。 videorecordingDetails.recordingDatedatetime视频的录制日期和时间。该值采用 ISO 8601 ( YYYY-MM-DDThh:mm:ss.sZ) 格式指定。 -
现在,多个 API 方法的文档中都指明了必须在请求正文中指定的属性,或根据请求正文中的值更新的属性。下表列出了这些方法以及必需或可修改的属性。
注意:其他方法的文档可能已列出必需属性和可修改属性。
方法 属性 activities.insert必需的属性: snippet.description
snippet.descriptioncontentDetails.bulletin.resourceId
playlists.update必需的属性: id
playlistItems.update必需的属性: id
videos.update必需的属性: id
-
如果您尝试创建或更新播放列表,而该播放列表与同一频道中已存在的播放列表同名,则 API 不会再报告
playlistAlreadyExists错误。 -
多种 API 方法支持新的错误类型。下表列出了该方法和新支持的错误:
方法 错误类型 错误详情 说明 guideCategories.listnotFoundnotFound找不到 id参数标识的指南类别。使用 guideCategories.list 方法检索有效值列表。playlistItems.deleteforbiddenplaylistItemsNotAccessible请求未获得适当授权,无法删除指定的播放列表内容。 videoCategories.listnotFoundvideoCategoryNotFound找不到 id参数标识的视频类别。使用 videoCategories.list 方法检索有效值列表。