YouTube Data API V3:如何根据频道名称获取用户ID?

时间:2013-04-24 08:26:40

标签: youtube-api

我想以编程方式将相应的用户ID(UCWLptbzZ ....)替换为虚名(如“thejntest”)。我在Channels-List电话

中找不到任何可能性

在stackoverflow上搜索之后,我找到了以下线程(Retrieve Youtube Channel info for "Vanity" channel),其中描述了Search-List调用的用法。虽然在youtube上搜索给定的用户名和contenttype =“频道”是个好主意,但我根本没有收到令人满意的结果。 (有时结果太多了)

所以我想知道是否有另一种可能性来获取基于用户名的用户ID?或者依靠搜索查询的第一个结果,或者通过仔细检查返回的用户名是否与给定的搜索查询相对应是否安全?

2 个答案:

答案 0 :(得分:6)

我知道答案是1年后,但在youtube API的V3中,您可以使用频道ID(param id)或用户名(param forUsername

进行调用

用户名示例:

https://www.googleapis.com/youtube/v3/channels?part=id%2Csnippet%2Cstatistics%2CcontentDetails%2CtopicDetails&forUsername=KarlWolfVEVO&key={YOUR_API_KEY}

频道ID的示例:

https://www.googleapis.com/youtube/v3/channels?part=id%2Csnippet%2Cstatistics%2CcontentDetails%2CtopicDetails&id=UC8FAXi_Vb4kDocI1UrH_sKQ&key={YOUR_API_KEY}

答案 1 :(得分:3)

我同意这似乎违反直觉,但我通过Youtube开发者关系团队得到保证,给定频道名称的搜索方法的第一个结果将始终返回正确的频道项目(和id)。

确保在搜索中保留type =“channel”,并且可以通过在通话中加入“maxResults = 1”将结果集限制为1。

例如,以下调用:

  

https://www.googleapis.com/youtube/v3/search?part=id%2Csnippet&maxResults=1&q=thejntest&type=channel&key={YOUR_API_KEY}

返回:

{
 "kind": "youtube#searchListResponse",
 "etag": "\"4IfXb8Dc78bqDKapqHxgOpqGpzM/lKqCVcHLORctmp6mp9sgSil_W0w\"",
 "pageInfo": {
  "totalResults": 1,
  "resultsPerPage": 1
 },
 "items": [
  {
   "kind": "youtube#searchResult",
   "etag": "\"4IfXb8Dc78bqDKapqHxgOpqGpzM/UoEAOMl45xX5SIWjDGxyS-74WKE\"",
   "id": {
    "kind": "youtube#channel",
    "channelId": "UCWLptbzZMaxQ7doUzgjMg_A"
   },
   "snippet": {
    "publishedAt": "2013-04-23T08:28:54.000Z",
    "channelId": "UCWLptbzZMaxQ7doUzgjMg_A",
    "title": "TheJNtest",
    "description": "What a wonderful testing world it is!",
    "thumbnails": {
     "default": {
      "url": "https://i.ytimg.com/i/WLptbzZMaxQ7doUzgjMg_A/1.jpg"
     },
     "medium": {
      "url": "https://i.ytimg.com/i/WLptbzZMaxQ7doUzgjMg_A/mq1.jpg"
     },
     "high": {
      "url": "https://i.ytimg.com/i/WLptbzZMaxQ7doUzgjMg_A/hq1.jpg"
     }
    },
    "channelTitle": "TheJNtest"
   }
  }
 ]
}

其中“UCWLptbzZMaxQ7doUzgjMg_A”是您的channelId。