YouTube IFrame Player API getVideoData 已删除:如何获取标题?
YouTube IFrame Player API getVideoData is removed: how to get title?
11 月 13 日,我接到一位客户的电话,报告说 YouTube 播放器不再工作了。在dev tool中快速查看了一下,发现报错了:
Uncaught TypeError: a.getVideoData is not a function
查看播放器 object 包含的内容,我了解到不再有功能 getVideoData
。
函数getVideoData
提供了一种获取视频标题的方法。现在,如何获得标题?
Google 是否有关于此更改的文章?
要获取视频的标题,您可以查询 YouTube Data API v3:
GET https://www.googleapis.com/youtube/v3/videos
?part=snippet
&id=VIDEO_ID
&key=YOUR_API_KEY
为此,您需要在 Google Cloud Console 上注册并创建一个 API 密钥(免费)。您可以将 API 键限制为仅在您的网站上使用,这样您就可以在您的 JS 源 code/html 代码中安全地将其设置为 public,而其他人无法代表您进行查询.确保同时在控制台中启用 YouTube 数据 API v3,否则您的查询将 return 错误。
以上查询将 return JSON 表示您感兴趣的视频信息(snippet
部分)。假设您将 JSON 解析为名为 result
的 object。然后你可以通过
获取视频标题
result.items[0].snippet.title
getVideoData()
似乎回来了(2017 年 12 月)。所以,再试一次!
从今天(2020 年 10 月 1 日)开始,我正在从 YouTube API object:
中检索视频的标题
// Assigning YouTube's ID to your ID variable
const playerID = "xxxxxxx";
// Creating an object for the video using YouTube's API.
const yPlayer = new YT.Player(playerID, {
events: {
'onReady': onPlayerReady(),
'onStateChange': onPlayerStateChange()
}
});
function onPlayerReady() {
}
function onPlayerStateChange() {
// Title retrieved here
let videoTitle = yPlayer.j.videoData.title;
}
onYouTubeIframeAPIReady();
11 月 13 日,我接到一位客户的电话,报告说 YouTube 播放器不再工作了。在dev tool中快速查看了一下,发现报错了:
Uncaught TypeError: a.getVideoData is not a function
查看播放器 object 包含的内容,我了解到不再有功能 getVideoData
。
函数getVideoData
提供了一种获取视频标题的方法。现在,如何获得标题?
Google 是否有关于此更改的文章?
要获取视频的标题,您可以查询 YouTube Data API v3:
GET https://www.googleapis.com/youtube/v3/videos
?part=snippet
&id=VIDEO_ID
&key=YOUR_API_KEY
为此,您需要在 Google Cloud Console 上注册并创建一个 API 密钥(免费)。您可以将 API 键限制为仅在您的网站上使用,这样您就可以在您的 JS 源 code/html 代码中安全地将其设置为 public,而其他人无法代表您进行查询.确保同时在控制台中启用 YouTube 数据 API v3,否则您的查询将 return 错误。
以上查询将 return JSON 表示您感兴趣的视频信息(snippet
部分)。假设您将 JSON 解析为名为 result
的 object。然后你可以通过
result.items[0].snippet.title
getVideoData()
似乎回来了(2017 年 12 月)。所以,再试一次!
从今天(2020 年 10 月 1 日)开始,我正在从 YouTube API object:
中检索视频的标题// Assigning YouTube's ID to your ID variable
const playerID = "xxxxxxx";
// Creating an object for the video using YouTube's API.
const yPlayer = new YT.Player(playerID, {
events: {
'onReady': onPlayerReady(),
'onStateChange': onPlayerStateChange()
}
});
function onPlayerReady() {
}
function onPlayerStateChange() {
// Title retrieved here
let videoTitle = yPlayer.j.videoData.title;
}
onYouTubeIframeAPIReady();