如何获取 Chrome 选项卡中播放的音频的名称
How to get the name of audio playing in a Chrome tab
我们正在开发 Chrome 扩展,我们正在尝试弄清楚如何获取当前在 Chrome 中播放的音频的名称。我们知道在Chrome中播放音频时,会有一个图标显示正在播放的音频名称。下面的屏幕截图说明了这方面的一个示例,其中正在播放名为“Chrome and the web in 2020”的视频。
有什么方法可以通过我们的 Chrome 扩展程序获取正在播放的视频的标题(在本例中是“Chrome and the web in 2020”)?我们希望我们的扩展能够知道用户正在收听的视频或歌曲。谢谢!
根据Video resource, the title of a given YouTube video is to be found as value of the property snippet.title
的官方文档。
可以通过 Videos.list
端点从 API 查询此 属性(属于视频资源的任何其他内容)。
例如,在以下 URL 上发出 curl
:
https://www.googleapis.com/youtube/v3/videos?key=$APP_KEY&id=14pb8t1lHws&part=snippet&fields=items/snippet/title&maxResults=1
将调用将生成 JSON response 仅包含该视频标题的文本的端点:
{
"items": [
{
"snippet": {
"title": "Chrome and the web in 2020"
}
}
]
}
对于 Javascript GAPI
(即 Google 的 Browser-side JavaScript 的客户端库)实现,代码如下所示:
var app_key = ...;
var videoTitle;
function loadAPIClientInterfaces() {
gapi.client.load('youtube', 'v3', function() {
getVideoTitle('14pb8t1lHws');
});
}
function getVideoTitle(videoId) {
var request = gapi.client.youtube.videos.list({
id: videoId,
part: 'snippet',
fields: 'items/snippet/title',
key: app_key
});
request.execute(function(response) {
if ('error' in response) {
displayMessage(response.error.message);
} else {
videoTitle = response.items[0].snippet.title;
}
});
}
请注意,上面的代码使用 fields
请求参数仅从 Videos.list
端点获取视频的标题(最好只从 API 请求实际使用的信息)。
另请注意,$APP_KEY
和 app_key
分别是(shell 和 Javascript)变量,设置为包含一个有效的 API 键关联到通过 Google's developers console.
创建的项目
我们正在开发 Chrome 扩展,我们正在尝试弄清楚如何获取当前在 Chrome 中播放的音频的名称。我们知道在Chrome中播放音频时,会有一个图标显示正在播放的音频名称。下面的屏幕截图说明了这方面的一个示例,其中正在播放名为“Chrome and the web in 2020”的视频。
有什么方法可以通过我们的 Chrome 扩展程序获取正在播放的视频的标题(在本例中是“Chrome and the web in 2020”)?我们希望我们的扩展能够知道用户正在收听的视频或歌曲。谢谢!
根据Video resource, the title of a given YouTube video is to be found as value of the property snippet.title
的官方文档。
可以通过 Videos.list
端点从 API 查询此 属性(属于视频资源的任何其他内容)。
例如,在以下 URL 上发出 curl
:
https://www.googleapis.com/youtube/v3/videos?key=$APP_KEY&id=14pb8t1lHws&part=snippet&fields=items/snippet/title&maxResults=1
将调用将生成 JSON response 仅包含该视频标题的文本的端点:
{
"items": [
{
"snippet": {
"title": "Chrome and the web in 2020"
}
}
]
}
对于 Javascript GAPI
(即 Google 的 Browser-side JavaScript 的客户端库)实现,代码如下所示:
var app_key = ...;
var videoTitle;
function loadAPIClientInterfaces() {
gapi.client.load('youtube', 'v3', function() {
getVideoTitle('14pb8t1lHws');
});
}
function getVideoTitle(videoId) {
var request = gapi.client.youtube.videos.list({
id: videoId,
part: 'snippet',
fields: 'items/snippet/title',
key: app_key
});
request.execute(function(response) {
if ('error' in response) {
displayMessage(response.error.message);
} else {
videoTitle = response.items[0].snippet.title;
}
});
}
请注意,上面的代码使用 fields
请求参数仅从 Videos.list
端点获取视频的标题(最好只从 API 请求实际使用的信息)。
另请注意,$APP_KEY
和 app_key
分别是(shell 和 Javascript)变量,设置为包含一个有效的 API 键关联到通过 Google's developers console.