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

如何通过YouTube API低配额获取指定频道最新视频

更低配额的YouTube频道最新视频获取方案

你当前使用的search.list接口单次请求消耗100配额是所有YouTube Data API读接口里配额成本最高的一档,完全可以用总配额消耗仅1-2点的方案替代,数据结果和原有方案完全一致。

实现原理

每个YouTube频道创建时,系统会自动生成一个和频道绑定的「上传视频专属播放列表」,列表内默认按视频发布时间倒序排列该频道所有公开上传的视频,不需要走全局搜索逻辑就能直接取到最新视频内容。

具体步骤

  • 首次配置时调用channels.list接口获取频道绑定的上传播放列表ID:该接口单次仅消耗1配额,请求仅需传目标频道ID,返回结果中relatedPlaylists.uploads字段即为所需的播放列表ID。这个ID是频道固定属性,一次获取后永久有效,后续不需要重复调用该接口。
  • 日常拉取最新视频时调用playlistItems.list接口:该接口单次同样仅消耗1配额,传入之前拿到的上传播放列表ID,设置maxResults=1,返回的第一条结果就是频道最新发布的公开视频,元数据字段和原有search接口返回的snippet内容基本对齐。

注意:该方案仅返回频道自主上传的公开视频,和你原有请求中加了type=video、order=date筛选条件的返回结果完全匹配,不会混入频道转发、收藏的其他内容,不存在数据偏差。

优化后代码

日常调用版本(单次请求仅耗1配额,需要提前缓存上传播放列表ID)

import requests
from urllib.parse import urlencode

# 提前获取后永久固定填写即可
UPLOADS_PLAYLIST_ID = "目标频道对应的上传播放列表ID"
YOUR_API_KEY = "你的YouTube API密钥"

url_params = {
    "part": "snippet",
    "playlistId": UPLOADS_PLAYLIST_ID,
    "key": YOUR_API_KEY,
    "maxResults": 1
}
req = f"https://www.googleapis.com/youtube/v3/playlistItems?{urlencode(url_params)}"
data = requests.get(req).json()
# 最新视频ID可从 data['items'][0]['snippet']['resourceId']['videoId'] 取到

首次获取上传播放列表ID代码(仅需运行1次,消耗1配额)

CHANNEL_ID = "目标频道ID"
channel_params = {
    "part": "contentDetails",
    "id": CHANNEL_ID,
    "key": YOUR_API_KEY
}
channel_req = f"https://www.googleapis.com/youtube/v3/channels?{urlencode(channel_params)}"
channel_data = requests.get(channel_req).json()
UPLOADS_PLAYLIST_ID = channel_data['items'][0]['contentDetails']['relatedPlaylists']['uploads']

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 14:54:27