You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用youtube.search().list接口返回重复channelId的问题咨询

问题根因
  • 未指定搜索结果类型参数:YouTube Data API v3的search.list接口默认返回视频、频道、播放列表三类混合内容,当前请求未设置type='channel'限定返回类型,接口优先返回regionCode='TN'对应突尼斯区域的热门视频,同一频道的多个热门视频进入返回列表时,提取出的channelId自然会重复。
  • 无去重逻辑:代码仅对返回结果的channelId做直接追加,未做去重过滤,重复的频道ID会直接保留在结果列表中。
  • 默认排序规则非随机:search.list接口默认按热度/相关性排序,并非随机返回结果,热门频道的内容权重更高,更容易多次出现在返回列表中。
修复代码示例

添加type='channel'参数限定仅返回频道结果,同时增加去重逻辑兜底即可解决重复问题:

def youtube_search():
    all_data = []
    search_response = youtube.search().list(
        part='snippet',
        maxResults=10,
        regionCode = 'TN',
        type='channel', # 限定返回结果为频道,保证每个返回项的channelId唯一
        order='date' # 可调整排序规则,避免返回频道过于集中
        )
    response = search_response.execute() 
    for item in response['items']:
       data = item['snippet']['channelId']
       all_data.append(data)
    # 去重兜底,避免特殊场景出现重复
    return list(set(all_data))
补充说明

如果需要获取更随机的频道结果,可调整order参数为viewCount、rating等不同排序规则,也可适当调大maxResults参数值,去重后取前10条即可保证拿到10个完全不同的频道ID。

内容的提问来源于stack exchange,提问作者Seif Khédija

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 15:15:02