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

如何解决YouTube播放列表标题仅对应字幕单个字符的问题

解决YouTube播放列表标题与字幕配对异常问题

问题出在你用单个变量存储字幕,每次循环都会覆盖之前的内容,最终只剩最后一个视频的字幕字符串。当你用zip(titles, get_key_text)时,字符串会被当作字符序列迭代,所以每个标题会对应这个字符串里的单个字符。

修正思路

不要用单个变量存储字幕,改用列表来保存每个视频的完整字幕内容,确保标题列表和字幕列表的长度一一对应,这样zip就能正确配对每个标题和它的完整字幕。

修正后的代码示例

# 初始化两个列表分别存储标题和字幕
video_titles = []
video_subtitles = []

# 遍历播放列表中的每个视频ID
for video_id in your_video_ids_list:  # 替换成你获取的播放列表视频ID列表
    # 1. 通过YouTube Data API获取视频标题
    video_details = youtube.videos().list(part='snippet', id=video_id).execute()
    title = video_details['items'][0]['snippet']['title']
    video_titles.append(title)
    
    # 2. 通过YouTube Transcript API获取并拼接完整字幕
    try:
        transcript_segments = YouTubeTranscriptApi.get_transcript(video_id)
        # 将字幕片段拼接成完整文本
        full_subtitle = " ".join([seg['text'] for seg in transcript_segments])
        video_subtitles.append(full_subtitle)
    except Exception as e:
        # 处理无字幕、字幕不可用的情况
        video_subtitles.append(f"该视频无可用字幕: {str(e)}")

# 配对并输出标题与对应完整字幕
for title, subtitle in zip(video_titles, video_subtitles):
    print(f"【标题】: {title}")
    print(f"【字幕】: {subtitle}\n")

关键修改点

  • 用video_subtitles列表替代单个变量,每次循环把当前视频的完整字幕追加到列表,保留所有视频的字幕内容。
  • 确保video_titles和video_subtitles的元素数量一致(每个视频对应一个标题和一个字幕条目),zip时会按顺序一一配对。
  • 增加异常捕获,处理没有字幕的视频,避免程序中断。

内容的提问来源于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.21 16:06:25