YouTube 列表提取:如何使用 API 和 Python 实现自动化

YouTube要管理或分析 YouTube 上的不同内容,自动提取 YouTube 列表非常有用。使用 YouTube 数据 API 和 Python,您可以轻松地从特定频道中提取短片或普通视频列表。在本文中 逐步说明如何设置 API 和编写 Python 代码以提取 YouTube 列表,包括各种使用案例。开始吧

1. 准备提取 YouTube 列表

提取 YouTube 列表 YouTube 数据应用程序接口是必需的。该 API 提供 YouTube 视频、频道、播放列表等方面的数据,你可以用它来自动收集你想要的信息。

1.1 发布 YouTube 数据 API 密钥

首先是 谷歌云平台(GCP)以启用 YouTube Data API 并获取 API 密钥。请按照以下步骤进行设置。

  1. 谷歌云控制台登录并创建一个新项目(网站顶部的 "我的第一个项目"--"新项目"--输入项目名称并单击 "创建")。
  2. 单击左上角三行菜单,转到应用程序接口和服务 > 库 YouTube 数据应用程序接口 v3并启用它(单击 "ENABLE")。
  3. 在 API 和服务 > 用户凭证(凭证)中,单击 生成并复制您的应用程序接口密钥的 API 密钥。该 API 密钥用于在 Python 代码中连接 YouTube Data API。

1.2 验证您的 YouTube 频道 ID

您还需要提取视频列表的频道 ID。您可以在频道 URL 中找到频道 ID。 https://www.youtube.com/channel/UCxxxx URL 中以 UC 开头的字符串是你的频道 ID。在 YouTube 频道控制面板上单击 "自定义频道 "时,可以在地址栏中找到它。

用 Python 提取 YouTube 短片列表

现在,您可以使用发给您的 API 密钥和频道 ID,用 Python 提取 YouTube 短片列表。我们将使用的 API 是 youtube.search()该应用程序接口允许您设置搜索条件,并提取符合这些条件的短裤列表。

쇼츠 유튜브 리스트 추출 개요 그림

Python 代码示例:提取 YouTube 短片列表


从 googleapiclient.discovery 导入构建

输入您的 # API 密钥
 api_key = 'your_api_key'

构建 # YouTube API 服务
youtube = build('youtube', 'v3', developerKey=API_KEY)

# 从特定频道提取短片列表(包括分页)
def get_shorts_titles(channel_id, max_results=100):
    titles = []
    next_page_token = None

    while len(titles) < max_results:
        request = youtube.search().list(
            part='snippet'、
            channelId=channel_id、
            maxResults=min(50, max_results - len(titles)), # 最多 50 个请求,调整请求以适应剩余计数
            type='视频'、
            videoDuration='short', # 仅获取短视频(短片)
            pageToken=next_page_token
        )

        response = request.execute()

        从 # 结果中提取标题
        titles.extend([item['snippet']['title'] for item in response['items']])

        # 转到下一页
        next_page_token = response.get('nextPageToken')

        # 如果没有下一页,则退出
        if not next_page_token:
            break

    return titles[:max_results] 返回标题[:max_results] 。

输入您的 # 频道 ID
channel_id = 'YOUR_CHANNEL_ID'

输出 # 短片标题列表
shorts_titles = get_shorts_titles(channel_id, max_results=100)
for idx, title in enumerate(shorts_titles, 1):
    print(f"{idx}. {title}")

代码说明:

  1. API 连接使用发给你的 API 密钥连接到 YouTube API 服务。
  2. 添加分页: get_shorts_titles 在函数中 下一页令牌从多个页面获取结果。 重复上述步骤,直到获取 100 个结果为止。
  3. 改变过滤器条件: q='短裤 我们删除了这一条件,使过滤不会过于严格。
  4. 提取和打印标题标题:以列表形式存储每个视频的标题,并打印指定数量的标题。

首次运行代码时 谷歌客户端 出现该错误的原因是模块未安装。在终端窗口中键入 pip install google-api-python-client 命令来安装模块。

3. 用 Python 提取 YouTube 视频列表

现在,YouTube 允许您制作短片以及常规的 视频列表也可以使用 Python 轻松提取。提取视频列表时,还可以使用 youtube.search() 通过设置不同的搜索条件,您可以提取更长的视频。

동영상 유튜브 리스트 추출 개요

Python 代码示例:提取 YouTube 视频列表

from googleapiclient.discovery import build
从 datetime 导入 timedelta

输入您的 # API 密钥
 api_key = 'your_api_key'

构建 # YouTube API 服务
youtube = build('youtube', 'v3', developerKey=API_KEY)

# 从特定频道提取常见视频列表
def get_video_titles(channel_id, max_results=100):
    标题 = []
    next_page_token = None

    while len(titles)  60: # 仅添加超过 60 秒的内容
                titles.append(item['snippet']['title'])

        # 转到下一页
        next_page_token = search_response.get('nextPageToken')
        
        # 如果没有下一页,则退出
        if not next_page_token:
            break

    return titles[:max_results] 返回标题[:max_results] 。

# 将 ISO 8601 时长转换为秒的函数
def parse_duration(duration):
    parsed_duration = timedelta()
    if 'PT' in duration:
        time_str = duration.replace('PT', '')
        小时 = 分钟 = 秒 = 0
        if 'H' in time_str:
            hours, time_str = time_str.split('H')
            parsed_duration += timedelta(hours=int(hours))
        if 'M' in time_str:
            minutes, time_str = time_str.split('M')
            parsed_duration += timedelta(minutes=int(minutes))
        如果 time_str 中有'S',则
            seconds = time_str.replace('S', '')
            parsed_duration += timedelta(seconds=int(seconds))
    return parsed_duration.total_seconds()

输入 # 频道 ID
channel_id = "YOUR_CHANNEL_ID

输出 # 通用视频标题列表
video_titles = get_video_titles(channel_id, max_results=100)
for idx, title in enumerate(video_titles, 1):
    print(f"{idx}. {title}")

代码说明:

  1. 搜索请求第一 search().list经由 本我来获取该频道的所有视频 ID。
  2. 检查视频长度: videos().list 中每段视频的 内容详情并要求 会期只过滤超过 60 秒的视频。
  3. 保存和打印视频标题仅将长度为 60 秒或以上的视频添加到列表中,并打印标题。

4. YouTube 列表使用案例

这份摘录的 YouTube 短片或视频列表可用于多种用途。以下是一些最常见的短片

유튜브 리스트 활용사례 그림

4.1 分析内容并确定趋势

如果能自动提取和分析 YouTube 视频列表,就能快速识别内容趋势。例如,您可以分析特定频道上的热门视频,了解哪些主题或形式引起了强烈反响。提取的数据可以存储在 Excel 中,也可以与其他分析工具相结合,进行更深入的分析。

4.2 管理营销活动

如果您正在使用 YouTube 推广自己的品牌或产品,您可以提取竞争对手的视频列表,分析哪些视频的浏览量最高,标题中使用了哪些关键词。有了这些信息,您就可以为您的营销活动制定战略,并为成功的内容要素制定基准。

4.3 管理培训内容

需要管理大量视频内容的创作者或企业可以从提取的视频列表中获益,帮助他们管理内容。应用程序接口会自动收集所有视频的标题、描述和发布日期等数据,并将其整理到数据库或电子表格中,便于管理。

4.4 创建自动播放列表

您还可以使用这种方法对上传到您频道的视频进行分类,从而自动创建播放列表。例如,您可以只提取特定主题的视频,然后为该主题创建播放列表并自动更新。

5. 清理

使用 YouTube Data API 和 Python 提取 YouTube 列表可用于内容分析、营销策略、培训材料管理等。您不仅可以轻松提取短片,还可以提取常规视频列表,这些数据可用于更高效的内容规划和管理。您可以通过 API 设置和 Python 代码轻松管理 YouTube 数据!如果您是 Python 新手,可以从 安装 VS CODE - Windows 请看一下这篇文章,以便开始学习。

类似文章