2

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

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

我将以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?

4

1 回答 1

1

按照YouTube 数据 API ,您可以使用youtube.channels.list() 的forUsername参数

使用您自己的示例:

search_channel_name = 'atgoogletalks'
channels_response = youtube.channels().list(
        forUsername=search_channel_name,
        part="id, snippet, statistics, contentDetails, topicDetails"
).execute()
于 2015-07-07T19:08:15.303 回答