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

如何从YouTube播放列表转录提取文本并存入GetText变量?

提取YouTube播放列表视频转录文本的解决方案

已通过API获取到目标播放列表的视频ID及对应转录内容,srt列表中每个元素为以视频ID为键、转录字典列表为值的字典(原代码中需先修正get_transcripts返回值的处理逻辑)。以下是提取所有text字段并拼接为GetText变量的完整实现:

修正后的完整代码

from googleapiclient.discovery import build
from youtube_transcript_api import YouTubeTranscriptApi
import os

api_key = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

nextPageToken = None
srt = []
vid_ids = []
vid_title = []

while True:
    # 1. 调用API获取播放列表项
    rq = build("youtube", "v3", developerKey=api_key).playlistItems().list(
            part="contentDetails, snippet",
            playlistId="PLNIs-AWhQzckr8Dgmgb3akx_gFMnpxTN5",
            maxResults=50, 
            pageToken=nextPageToken       
            ).execute()
            
    # 2. 收集视频ID和标题
    for item in rq["items"]:
        vid_ids.append(item["contentDetails"]["videoId"])
        vid_title.append(item["snippet"]["title"])
    
    nextPageToken = rq.get('nextPageToken')
    if not nextPageToken:
        break

# 3. 获取转录内容(修正:正确处理get_transcripts的返回值)
for i in vid_ids:
    try:
        # get_transcripts返回(成功转录字典, 失败ID列表),仅保留成功部分
        successful_transcripts, _ = YouTubeTranscriptApi.get_transcripts([i])
        srt.append(successful_transcripts)                      
    except Exception as e:
        print(f"{i} 无法获取转录内容: {str(e)}")

# 4. 提取所有text字段并拼接
# 方法1:循环遍历拼接(可读性强)
GetText = ""
for transcript_dict in srt:
    for transcript_list in transcript_dict.values():
        for entry in transcript_list:
            GetText += entry["text"] + " "

# 方法2:列表推导式(简洁高效)
# GetText = " ".join([entry["text"] for transcript_dict in srt for transcript_list in transcript_dict.values() for entry in transcript_list])

print(GetText)

关键说明

  • 返回值修正:YouTubeTranscriptApi.get_transcripts()返回的是元组,原代码直接存入元组会导致后续遍历异常,修正后仅提取成功的转录字典存入srt。
  • 文本提取逻辑:通过三层遍历依次处理srt中的视频转录字典、转录条目列表、单个转录条目,提取text字段并完成拼接,两种实现方式效果一致。

内容的提问来源于stack exchange,提问作者José Angel Bernal

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 10:40:25