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

如何通过编程方式从YouTube handle获取所有播放列表

通过YouTube Handle获取频道全部播放列表的实现方案

核心思路

要通过YouTube Handle获取播放列表,需分两步调用YouTube Data API v3:

  1. 先通过Handle获取对应频道的ID
  2. 再用频道ID拉取该频道下的所有公开播放列表

具体实现步骤

1. 从Handle获取频道ID

调用channels.list接口,指定forHandle参数为目标Handle(无需带@前缀),同时指定part=id仅返回频道ID。

示例代码(Python)

from googleapiclient.discovery import build

# 替换为你的YouTube Data API密钥
API_KEY = "YOUR_API_KEY"
YOUTUBE_HANDLE = "10WeekBibleStudy"  # 不带@前缀

youtube = build('youtube', 'v3', developerKey=API_KEY)

# 调用接口获取频道ID
response = youtube.channels().list(
    part="id",
    forHandle=YOUTUBE_HANDLE
).execute()

# 提取频道ID
channel_id = response['items'][0]['id']
print(f"频道ID: {channel_id}")

2. 获取频道下所有播放列表

调用playlists.list接口,传入上一步得到的channelId,指定part=id,snippet获取播放列表基础信息,同时处理分页(API默认单次最多返回50条,需通过pageToken遍历所有结果)。

示例代码(Python)

def get_all_playlists(youtube, channel_id):
    playlists = []
    next_page_token = None

    while True:
        response = youtube.playlists().list(
            part="id,snippet",
            channelId=channel_id,
            maxResults=50,  # 单次请求最大返回数
            pageToken=next_page_token
        ).execute()

        playlists.extend(response['items'])
        next_page_token = response.get('nextPageToken')

        if not next_page_token:
            break

    return playlists

# 获取所有播放列表
all_playlists = get_all_playlists(youtube, channel_id)

# 输出播放列表信息
for idx, playlist in enumerate(all_playlists):
    print(f"播放列表 {idx+1}:")
    print(f"ID: {playlist['id']}")
    print(f"标题: {playlist['snippet']['title']}")
    print(f"描述: {playlist['snippet']['description']}\n")

关键注意事项

  • API密钥:需在Google Cloud控制台创建项目并启用YouTube Data API v3,生成专属API密钥。
  • 配额限制:YouTube Data API有每日配额限制,channels.list和playlists.list每次调用各消耗1单位配额,需合理控制请求频率。
  • 内容权限:仅能获取频道的公开播放列表,私有播放列表需频道所有者通过OAuth授权后才能访问。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 01:52:12