如果频道有自定义网址,如何使用Youtube数据API获取Youtube频道详细信息

use*_*272 10 youtube youtube-api

我想获取有自定义网址的YouTube频道的详细信息,例如https://www.youtube.com/c/pratiksinhchudasamaisawesome.

自定义渠道网址遵循以下格式:https://www.youtube.com/c/{custom_channel_name}.

我可以通过频道ID和用户名获取YouTube频道的详细信息,而不会出现任何问题.不幸的是,我需要使用自定义渠道网址,这是我遇到此问题的唯一时间.

几个月前我开发了我的应用程序,自定义渠道网址直到几天前才开始运作.现在,如果我尝试使用自定义名称获取详细信息,则YouTube数据API不会返回YouTube自定义渠道网址的任何内容.

要获取此频道的详细信息:例如https://www.youtube.com/user/thenewboston,请求将为:

GET https://www.googleapis.com/youtube/v3/channels?part=snippet&forUsername=thenewboston&key={YOUR_API_KEY}
Run Code Online (Sandbox Code Playgroud)

响应

200
- SHOW HEADERS -
{
 "kind": "youtube#channelListResponse",
 "etag": "\"zekp1FB4kTkkM-rWc1qIAAt-BWc/8Dz6-vPu69KX3yZxVCT3-M9YWQA\"",
 "pageInfo": {
  "totalResults": 1,
  "resultsPerPage": 5
 },
 "items": [
  {

   "kind": "youtube#channel",
   "etag": "\"zekp1FB4kTkkM-rWc1qIAAt-BWc/KlQLDlUPRAmACwKt9V8V2yrOfEg\"",
   "id": "UCJbPGzawDH1njbqV-D5HqKw",
   "snippet": {
    "title": "thenewboston",
    "description": "Tons of sweet computer related tutorials and some other awesome videos too!",
    "publishedAt": "2008-02-04T16:09:31.000Z",
    "thumbnails": {
     "default": {
      "url": "https://yt3.ggpht.com/--n5ELY2uT-U/AAAAAAAAAAI/AAAAAAAAAAA/d9JvaIEpstw/s88-c-k-no-rj-c0xffffff/photo.jpg"
     },
     "medium": {
      "url": "https://yt3.ggpht.com/--n5ELY2uT-U/AAAAAAAAAAI/AAAAAAAAAAA/d9JvaIEpstw/s240-c-k-no-rj-c0xffffff/photo.jpg"
     },
     "high": {
      "url": "https://yt3.ggpht.com/--n5ELY2uT-U/AAAAAAAAAAI/AAAAAAAAAAA/d9JvaIEpstw/s240-c-k-no-rj-c0xffffff/photo.jpg"
     }
    },
    "localized": {
     "title": "thenewboston",
     "description": "Tons of sweet computer related tutorials and some other awesome videos too!"
    }
   }
  }
 ]
}
Run Code Online (Sandbox Code Playgroud)

它完美地运作.

现在我们必须获得这些渠道的详细信息:

然后我们得到:

GET https://www.googleapis.com/youtube/v3/channels?part=snippet&forUsername=annacavalli&key={YOUR_API_KEY}
Run Code Online (Sandbox Code Playgroud)

响应

200
- SHOW HEADERS -
{
 "kind": "youtube#channelListResponse",
 "etag": "\"zekp1FB4kTkkM-rWc1qIAAt-BWc/TAiG4jjJ-NTZu7gPKn7WGmuaZb8\"",
 "pageInfo": {
  "totalResults": 0,
  "resultsPerPage": 5
 },
 "items": [
 ]
}
Run Code Online (Sandbox Code Playgroud)

使用API资源管理器可以轻松地重现这一点.

jko*_*icz 10

最简单的解决方案,仅使用API​​,就是使用YouTube Data API的搜索:列表方法.从我所知道的(请注意,这是来自我自己的研究,官方文档对此主题没有任何说明!),如果您使用自定义URL组件进行搜索,使用"频道"结果类型过滤器和"相关性"(默认)排序,第一个结果应该是你正在寻找的.

因此,以下查询得到16个结果,第一个是您正在寻找的结果.我测试的所有其他自定义渠道网址也是如此,所以我认为这是最可靠的方法.

GET https://www.googleapis.com/youtube/v3/search?part=id%2Csnippet&q=annacavalli&type=channel&key={YOUR_API_KEY}
Run Code Online (Sandbox Code Playgroud)

另一个想法是在自定义网址上抓取YouTube页面,您可以在其中的HTML代码中的某个元标记中找到ChannelID.但这是违反YouTube使用条款的无效,不可靠和AFAIK.

编辑:嗯,它没有返回较小通道的结果,所以它根本不可靠.