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

使用YouTube v3 API如何获取公开频道的视频列表

YouTube v3 API 获取频道全量公开视频方案

你的实现路径完全可行,不需要账号订阅权限,使用普通API Key即可拉取所有公开频道的上传视频,无需额外OAuth授权。

具体实现步骤

你之前通过videos.list接口从已知视频反查channel_id的逻辑是正确的,后续不需要调用搜索接口,按以下两步操作即可:

  • 第一步:获取频道专属的上传视频播放列表ID
    每个公开YouTube频道都会自动生成一个系统专属的「上传视频播放列表」,存储该账号所有公开上传的视频。你需要调用channels.list接口,传入拿到的channel_id,指定part参数为contentDetails,从返回结果的contentDetails.relatedPlaylists.uploads字段就能拿到这个播放列表ID。
    对应代码片段(适配你当前使用的Python客户端):
    channel_req = youtube.channels().list(
        part="contentDetails",
        id=extracted_channel_id  # 替换为你从视频响应中提取到的channel_id
    )
    channel_resp = channel_req.execute()
    uploads_pl_id = channel_resp["items"][0]["contentDetails"]["relatedPlaylists"]["uploads"]
    
  • 第二步:分页拉取播放列表内的所有视频
    拿到播放列表ID后,循环调用playlistItems.list接口拉取全量内容即可,单次请求最多可拉取50条结果,需要通过nextPageToken处理分页逻辑。
    对应代码片段:
    all_channel_videos = []
    next_page = None
    
    while True:
        pl_req = youtube.playlistItems().list(
            part="snippet,contentDetails",
            playlistId=uploads_pl_id,
            maxResults=50,
            pageToken=next_page
        )
        pl_resp = pl_req.execute()
    
        # 按需提取字段,示例提取视频ID、标题、发布时间
        for item in pl_resp["items"]:
            all_channel_videos.append({
                "video_id": item["contentDetails"]["videoId"],
                "title": item["snippet"]["title"],
                "published_at": item["snippet"]["publishedAt"]
            })
    
        next_page = pl_resp.get("nextPageToken")
        if not next_page:
            break
    

注意事项

  • 不推荐使用search接口拉取频道视频:search.list接口单次请求配额消耗为100单位,是playlistItems.list接口的100倍,且最多仅返回500条结果,视频量较大的频道会出现数据遗漏,排序稳定性也较差。
  • 如果需要获取视频的播放量、时长、标签等信息,可以等收集完全量video_id后,按每批50个ID的粒度批量调用videos.list接口拉取,能大幅节省API配额。
  • 你初始代码中video_id = [video_id]为占位写法,实际运行时需要替换为真实的视频ID字符串,避免触发参数类型错误。

内容的提问来源于stack exchange,提问作者C. Cooney

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 12:54:32