使用 youtube.search().list 时获取相同的 youtube 频道 ID
Posted
技术标签:
【中文标题】使用 youtube.search().list 时获取相同的 youtube 频道 ID【英文标题】:Gestting same youtube Channel id's when use youtube.search().list 【发布时间】:2021-12-04 05:36:14 【问题描述】:我使用 Youtube api 获取 10 个随机 youtube 频道 ID 并将它们放在一个列表中,所以我创建了一个函数来返回这个列表:
def youtube_search():
all_data = []
search_response = youtube.search().list(
part='snippet',
maxResults=10,
location=None,
locationRadius=None,
regionCode = 'TN',
)
response = search_response.execute()
for i in range(len(response['items'])):
data = response['items'][i]['snippet']['channelId']
all_data.append(data)
return all_data
问题是它返回了 10 次相同的 id,恰好只有 2 个不同的 id(1 个 id 2 次,另一个 8 次):
channel_data = youtube_search()
channel_data
['UC6UL29enLNe4mqwTfAyeNuw',
'UC6UL29enLNe4mqwTfAyeNuw',
'UCvR2R7j218tzejtTsb_X6Rw',
'UCvR2R7j218tzejtTsb_X6Rw',
'UCvR2R7j218tzejtTsb_X6Rw',
'UCvR2R7j218tzejtTsb_X6Rw',
'UCvR2R7j218tzejtTsb_X6Rw',
'UCvR2R7j218tzejtTsb_X6Rw',
'UCvR2R7j218tzejtTsb_X6Rw',
'UCvR2R7j218tzejtTsb_X6Rw']
怎么了?为什么我得到相同的 id 而不是完全不同?
【问题讨论】:
当我使用 type = "channel" 时它可以工作,但为什么我得到的是随机频道而不是在我在 search.list endpint 中提到的特定区域? ( regionCode='TN'),这意味着我想在我的示例中获得突尼斯频道。 可能是TN
区域不受支持(引用自 here):如果指定了不受支持的区域,YouTube 可能仍会选择另一个区域,而不是默认值,用于处理查询。
【参考方案1】:
为了从Search.list
API 端点获取仅通道项,有以下请求参数:
type
(字符串)
type
参数将搜索查询限制为仅检索特定类型的资源。该值是以逗号分隔的资源类型列表。默认值为video,channel,playlist
。可接受的值为:
channel
playlist
video
因此,请将您的 API 调用更改为:
search_response = youtube.search().list(
type='channel',
part='snippet',
maxResults=10,
location=None,
locationRadius=None,
regionCode = 'TN',
)
您将返回的 items
数组将仅包含引用 YouTube 频道的项目。
【讨论】:
它工作正常,但你知道为什么我得到的是随机频道,而不是我在 search.list endpint 中提到的特定区域吗? ( regionCode='TN'),这意味着我想在我的示例中获得突尼斯频道。 可能是TN
区域不受支持(引用自 here):如果指定了不受支持的区域,YouTube 可能仍会选择另一个区域,而不是默认值,用于处理查询。
您也可以通过公司的own issue tracker site 直接向 Google 提交有关此问题的错误报告。
我使用了另一个区域代码,但它总是让我得到具有相同 id 的相同列表,我认为 RegionCode 参数甚至没有被考虑,即使我删除了它,它也会显示相同的列表。跨度>
我认为这种行为是 API 的错误。因此,我建议向 Google 提交错误报告。他们有办法知道为什么这不能按照Search.list
的官方文档的规定工作。以上是关于使用 youtube.search().list 时获取相同的 youtube 频道 ID的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 YouTube Data API v3 更改页面结果