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

如何用Python结合YouTube V3 API自动获取频道新上传视频?

获取YouTube频道新上传视频:API Key vs OAuth 怎么选?

一、两种认证方式的核心区别

  • API Key方式:

    • 适用场景:只获取公开频道的公开视频数据(比如新上传内容),不需要操作用户的YouTube账号(如上传视频、修改频道设置)。
    • 优势:配置简单,无需用户授权,适合批量抓取公开内容。
    • 局限:有请求配额限制,无法访问私有内容,也不能执行需要用户权限的操作。
  • OAuth方式:

    • 适用场景:需要访问用户的私有频道数据,或是执行需用户权限的操作(如管理播放列表、上传视频)。
    • 优势:可访问私有内容,权限覆盖更全面。
    • 局限:配置繁琐,需要用户手动授权,除非保存刷新令牌,否则每次运行可能需要重新验证。

二、你的场景该选哪种?

你只是要获取频道新上传的公开视频,直接用API Key方式就足够了,OAuth完全没必要,徒增配置复杂度。

三、Python实现步骤(API Key版)

  1. 获取API Key:
    前往Google Cloud控制台创建项目,启用YouTube Data API v3,生成专属API Key。
  2. 安装依赖库:
    pip install google-api-python-client
    
  3. 示例代码:
    from googleapiclient.discovery import build
    import datetime
    
    # 替换为你的API Key
    API_KEY = "你的API_KEY"
    # 替换为目标频道ID(可从频道主页URL获取)
    CHANNEL_ID = "目标频道ID"
    
    def get_latest_videos():
        youtube = build('youtube', 'v3', developerKey=API_KEY)
        
        # 获取频道的上传列表ID
        channel_response = youtube.channels().list(
            part='contentDetails',
            id=CHANNEL_ID
        ).execute()
        uploads_playlist_id = channel_response['items'][0]['contentDetails']['relatedPlaylists']['uploads']
        
        # 获取上传列表中的最新视频
        playlist_response = youtube.playlistItems().list(
            part='snippet',
            playlistId=uploads_playlist_id,
            maxResults=5,  # 可调整获取的最新视频数量
            order='date'
        ).execute()
        
        for item in playlist_response['items']:
            video_title = item['snippet']['title']
            video_url = f"https://www.youtube.com/watch?v={item['snippet']['resourceId']['videoId']}"
            publish_time = datetime.datetime.fromisoformat(item['snippet']['publishedAt'].replace('Z', '+00:00'))
            print(f"标题: {video_title}")
            print(f"链接: {video_url}")
            print(f"发布时间: {publish_time.strftime('%Y-%m-%d %H:%M:%S')}\n")
    
    if __name__ == "__main__":
        get_latest_videos()
    
  4. 额外说明:
    • 代码逻辑是先定位频道专门存储上传视频的播放列表,再按发布时间排序抓取最新内容。
    • 若要定时检查新视频,可记录上次获取的最新视频发布时间,下次仅抓取晚于该时间的内容。

四、注意事项

  • API Key需妥善保管,避免泄露至公开代码仓库。
  • YouTube Data API有每日配额限制(默认10000单位),上述请求单次约消耗3-5单位,日常使用完全足够。
  • 仅当目标频道为私有频道时,才需要使用OAuth方式,此时需配置OAuth客户端ID,由频道所有者授权应用访问数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 01:03:15