0

我们正在开发一个 Chrome 扩展程序,并试图弄清楚如何获取当前在 Chrome 中播放的音频的名称。我们知道,在 Chrome 中播放音频时,会有一个图标显示正在播放的音频的名称。下面的截图展示了一个例子,其中播放了一个名为“Chrome and the web in 2020”的视频。 在此处输入图像描述

有什么方法可以通过我们的 Chrome 扩展程序获得正在播放的视频的标题(本例中为“Chrome 和 2020 年的网络”)?我们希望我们的扩展能够知道用户正在听什么视频或歌曲。谢谢!

4

1 回答 1

2

根据Video 资源的官方文档,给定 YouTube 视频的标题将作为属性值找到snippet.title

Videos.list可以通过其端点从 API 查询此属性(属于视频资源的任何其他属性) 。

例如,curl在以下 URL 上发出:

https://www.googleapis.com/youtube/v3/videos?key=$APP_KEY&id=14pb8t1lHws&part=snippet&fields=items/snippet/title&maxResults=1

将调用将生成仅包含该视频标题的JSON 响应文本的端点:

{
  "items": [
    {
      "snippet": {
        "title": "Chrome and the web in 2020"
      }
    }
  ]
}

对于 Javascript GAPI(即 Google 的浏览器端 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请求参数 for 从Videos.list端点仅获取视频的标题(最好从 API 仅询问实际使用的信息)。

另请注意,$APP_KEYandapp_key是(shell 和,分别是 Javascript)变量设置为包含与通过Google 开发人员控制台创建的项目相关联的有效 API 密钥。

于 2021-01-16T23:24:30.630 回答