【问题标题】:How would I retrieve the username of a channel when only having the display name?只有显示名称时,如何检索频道的用户名?
【发布时间】:2019-07-27 08:47:44
【问题描述】:

我使用的是 Youtube v3.0 Data API,即 REST API,即使我使用的是 Node.js。

我只有 YouTube 频道的显示名称(例如 Traversy MediaAndroid Developers),我只需要从频道名称中获取频道 ID。

现在我正在使用他们的显示名称,只是希望它也是他们的用户名。我从中得到了他们的身份证。但大多数频道的显示名称与其用户名不同。

https://www.googleapis.com/youtube/v3/channels?key=${config.key}&forUsername=${name}&part=id

这就是我目前检索 ID 的方式,但正如我所说,用户名并不总是显示名称。

那么,我将如何从显示名称中获取 ID?

【问题讨论】:

  • 多个用户不能有相同的显示名称吗?如果是这种情况,您将不得不查询并让多个用户返回,然后选择您需要的那个。
  • @IsaacVidrine 我的目标是不使用显示名称。如果我必须依赖显示名称,我的项目将是不可能的。我需要获取 用户名
  • 是的,我明白了,但我的意思是,如果多个用户可以拥有 same 显示名称,那么获得 username 的唯一方法b> from a display name是根据显示名称查询用户,然后选择你想要的用户。
  • @IsaacVidrine 哦,我的错。你说的对。我将只做第一个结果,它将拥有最多的订阅者,因此应该可以解决。但是,是的,你是对的,我会厌倦这个的。谢谢

标签: javascript node.js rest youtube-api


【解决方案1】:

为此,您必须使用 api 的 Search 部分,例如此调用 https://www.googleapis.com/youtube/v3/search?key={KEY}&part=snippet&type=channel&maxResults=1&q=traversy+media

您显然会用从谷歌云控制台生成的 API 密钥替换 KEY。

上面的调用返回,

{
 "kind": "youtube#searchListResponse",
 "etag": "\"XpPGQXPnxQJhLgs6enD_n8JR4Qk/TA3dq6AD2oajHPE0-0Y9hZzSmi8\"",
 "nextPageToken": "CAEQAA",
 "regionCode": "US",
 "pageInfo": {
  "totalResults": 34,
  "resultsPerPage": 1
 },
 "items": [
  {
   "kind": "youtube#searchResult",
   "etag": "\"XpPGQXPnxQJhLgs6enD_n8JR4Qk/SJmA2ZkjStP6_YHYQcEsg9JrWz4\"",
   "id": {
    "kind": "youtube#channel",
    "channelId": "UC29ju8bIPH5as8OGnQzwJyA"
   },
   "snippet": {
    "publishedAt": "2009-10-30T21:33:14.000Z",
    "channelId": "UC29ju8bIPH5as8OGnQzwJyA",
    "title": "Traversy Media",
    "description": "Traversy Media features the best online web development and programming tutorials for all of the latest web technologies including Node.js, Angular 2, React.js, ...",
    "thumbnails": {
     "default": {
      "url": "https://yt3.ggpht.com/-OsgBxXITFdg/AAAAAAAAAAI/AAAAAAAAAAA/gDaUV_aSb2Q/s88-c-k-no-mo-rj-c0xffffff/photo.jpg"
     },
     "medium": {
      "url": "https://yt3.ggpht.com/-OsgBxXITFdg/AAAAAAAAAAI/AAAAAAAAAAA/gDaUV_aSb2Q/s240-c-k-no-mo-rj-c0xffffff/photo.jpg"
     },
     "high": {
      "url": "https://yt3.ggpht.com/-OsgBxXITFdg/AAAAAAAAAAI/AAAAAAAAAAA/gDaUV_aSb2Q/s800-c-k-no-mo-rj-c0xffffff/photo.jpg"
     }
    },
    "channelTitle": "Traversy Media",
    "liveBroadcastContent": "upcoming"
   }
  }
 ]
}
(忽略 sn-p 部分,仅使用它来显示响应)

【讨论】:

    猜你喜欢
    • 2014-10-13
    • 2012-11-14
    • 2016-03-12
    • 2021-12-17
    • 1970-01-01
    • 2021-04-11
    • 2020-11-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多