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

使用YouTube API获取订阅数1000-2000的频道遇参数错误求助

问题分析与解决方案

错误原因

你调用的channels().list接口不支持以下参数:

  • order='subscriberCount':该接口的order参数可选值仅为relevance、viewCount、videoCount、title,没有subscriberCount选项。
  • minSubscribers/maxSubscribers:这两个参数属于search().list接口的筛选条件,并非channels().list的合法参数。

可行实现方案

要批量获取订阅数在1000-2000之间的频道ID,需要分两步操作:

  1. 用search().list接口筛选符合订阅数范围的频道,获取候选ID。
  2. 用channels().list接口批量验证这些频道的实际订阅数(避免搜索筛选的误差,比如部分频道隐藏订阅数),最终得到符合条件的ID。

修改后的代码

api_service_name = "youtube"
api_version = "v3"

# 创建API客户端
youtube = build(api_service_name, api_version, developerKey=api_key)

# 第一步:搜索符合订阅数范围的频道
search_request = youtube.search().list(
    part='id',
    type='channel',
    maxResults=50,
    minSubscribers=1000,
    maxSubscribers=2000
)
search_response = search_request.execute()

# 提取候选频道ID
candidate_channel_ids = [item['id']['channelId'] for item in search_response['items']]

# 第二步:批量查询频道订阅数,验证并筛选有效ID
valid_channel_ids = []
if candidate_channel_ids:
    channels_request = youtube.channels().list(
        part='id,statistics',
        id=','.join(candidate_channel_ids)
    )
    channels_response = channels_request.execute()

    for item in channels_response['items']:
        # 处理订阅数隐藏的情况
        subscriber_count = int(item['statistics'].get('subscriberCount', 0))
        if 1000 <= subscriber_count <= 2000:
            valid_channel_ids.append(item['id'])

print(valid_channel_ids)

注意事项

  • 若需要获取更多结果,需处理分页逻辑:每次请求后从响应中取出nextPageToken,作为下一次search().list请求的pageToken参数,直到没有nextPageToken为止。
  • YouTube API有配额限制,search().list每次请求消耗100单位配额,channels().list每次请求消耗1单位配额,需合理控制请求次数。
  • 部分频道会隐藏订阅数,这类频道的subscriberCount字段不存在,代码中已默认按0处理并排除。

内容的提问来源于stack exchange,提问作者Navi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 05:00:14