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

如何提取多语言YouTube视频字幕?含西班牙语适配代码修改方法

如何修改代码提取YouTube西班牙语字幕?

原代码默认拉取英文字幕,是因为调用YouTubeTranscriptApi.get_transcript()时没有指定目标语言。要提取西班牙语字幕,只需要给这个方法传入languages参数指定西班牙语代码即可,具体修改如下:

核心修改点

  • 在get_transcript()中添加languages=['es']参数(es是西班牙语的ISO语言代码)
  • 可选:移除不必要的视频下载步骤(提取字幕不需要下载视频,能节省时间和存储空间)
  • 可选:添加异常处理,避免视频无西语字幕时程序崩溃

修改后的完整代码

from pytube import YouTube
from youtube_transcript_api import YouTubeTranscriptApi
from youtube_transcript_api._errors import TranscriptsDisabled, NoTranscriptFound

# 目标视频URL
video_url = 'https://www.youtube.com/watch?v=xYgoNiSo-kY'

# 提取视频ID(原逻辑保留)
video_id = video_url.split('v=')[-1]

try:
    # 指定西班牙语获取字幕
    transcript = YouTubeTranscriptApi.get_transcript(video_id, languages=['es'])
    
    # 拼接字幕文本
    captions_text = ' '.join([segment['text'] for segment in transcript])
    
    # 打印或保存结果
    print(captions_text)
    # 可选:保存到文件
    # with open('spanish_captions.txt', 'w', encoding='utf-8') as f:
    #     f.write(captions_text)

except TranscriptsDisabled:
    print("该视频未启用字幕功能")
except NoTranscriptFound:
    print("该视频没有西班牙语字幕")
except Exception as e:
    print(f"提取字幕时出错:{str(e)}")

额外说明

  • 如果需要提取其他语言字幕,替换languages里的代码即可,比如英语['en']、法语['fr']
  • 如果视频有自动生成的西语字幕,get_transcript()也能正常获取
  • 移除视频下载步骤是因为YouTubeTranscriptApi直接通过视频ID就能获取字幕,不需要本地视频文件

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 11:22:13