如何从频道名称或网址中检索频道 ID



我正在尝试使用新的v3 API检索YouTube频道的频道ID。我正在使用 Python 客户端,似乎没有直接的方法可以找到 YouTube 频道 URL 或名称到其频道 ID 的映射。

使用 Python API 客户端,我似乎必须为频道名称发出类型为"channel"的搜索查询,然后循环访问每个搜索结果,直到找到匹配项。

我将以 http://youtube.com/atgoogletalks 通道为例

search_channel_name = 'atgoogletalks'     #Parsed from http://youtube.com/atgoogletalks
search_response = youtube.search().list(
    type='channel',
    part='id,snippet',
    q=search_channel_name,
    maxResults=50
    ).execute()
for sri in search_response["items"]:
    channels_response = youtube.channels().list(
        id=sri["id"]["channelId"],
        part="id, snippet, statistics, contentDetails, topicDetails"
        ).execute()
    for cr in channels_response["items"]:
        channelname = cr["snippet"]["title"]
        if channelname.lower() == search_channel_name:
            return 'Success'

我已经抓取了文档,寻找一种更直接的方法,但结果很短。有没有更简单的方法?如果没有,是否有计划将此功能添加到 API?

关注 YouTube 数据 API你可以使用 youtube.channels.list() 的用户名参数

使用您自己的示例:

search_channel_name = 'atgoogletalks'
channels_response = youtube.channels().list(
        forUsername=search_channel_name,
        part="id, snippet, statistics, contentDetails, topicDetails"
).execute()

有时 forUsername 参数不会返回所需的结果。你可以做的是:

from googleapiclient import build
import requests
import json
youtube = build('youtube', 'v3', developerKey=your_key_here)
channel_id = requests.get('https://www.googleapis.com/youtube/v3/search?part=id&q={search_query_here}&type=channel&key={api_key_here}').json()['items'][0]['id']['channelId']
channels_response = youtube.channels().list(id=channel_id, part='id, snippet, statistics, contentDetails, topicDetails').execute()

相关内容

  • 没有找到相关文章

最新更新