如何提取多语言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
相关产品推荐
相关产品推荐

