全新推出 BillionVerify:以 1% 的成本验证数十亿邮箱。 试用 BillionVerify

transcript.im
← 博客

YouTube 字幕提取:把视频翻译成文字并保留时间戳

作者 LeoYouTube

YouTube 字幕提取:先生成视频里的台词,再逐句翻译成文字,每句都保留原时间戳。

YouTube 字幕提取:把视频翻译成文字并保留时间戳

要把 YouTube 视频转成文字,先把说过的话记录下来,再翻译这些句子。被翻译的不是画面,而是说出来的话。YouTube 可以在视频播放时显示字幕,在部分视频里,播放器还能在你观看期间把翻译过的字幕叠在画面上。你一离开,这层字幕就消失了。而一份可以引用、可以搜索、可以交给别人的译文,是经过翻译的转录稿,每一行依然指向原始的时间点。

YouTube 的查看转录稿帮助页面介绍的是阅读视图:在简介中打开 显示转录文本,跟随当前行,点击某一行即可跳转。它没有介绍翻译后的文档,也没有介绍如何保存。本页的其余部分,就是生成这份文档的步骤顺序。先生成转录稿,再翻译句子,最后把时间留在原处。

为什么要翻译转录稿

选择翻译转录稿而不是视频文件,是因为你真正要复用的就是那些话。一场你读文字比用耳朵跟得更好的讲座、一句你需要用笔记语言引用的说法、一段你要为另一群观众配字幕的片段,都从同一个东西出发:以文字形式存在的口述句子。翻译 MP4 不会得到这些文字,配一条新的配音音轨也不会。那些是另外的工作,本页讲的不包括它们。

有些观众只需要那层字幕。如果播放器已经显示了译文,而你也只看一次,那就留在那里。但当你需要在关闭标签页之后还拿到那些措辞、需要搜索某个短语,或者要把译文放进文档或编辑器时,就得离开它。叠加字幕只是显示,转录稿才是文本。

转录稿还划出了一条明确的界线,界定什么能被翻译。讲话在范围内。压在画面里的标题卡、下三分之一字幕条,以及其它画进画面的文字不会被读取,因此也不会被翻译。几乎没有人声或完全没有的 MV 会得到很单薄的结果,因为没什么话可记录。两人同时说话、嘈杂的房间、发闷的麦克风都会削弱原始句子,而翻译无法修复一句本来就有错的话。在把译文当作引文之前,先对着时间戳读一读原文。

链接必须是公开的。私享视频、已删除的视频、仅限会员的视频,或者只能在别人账号里播放的链接,都无法通过粘贴一个公开 URL 打开。年龄限制和地区限制同样可能挡住请求。没有哪个开关能强行取到 YouTube 不提供的视频。

先生成,再翻译

翻译是第二步。第一步是得到转录稿,用字幕或讲话原本的语言。跳过这一步,就没有一行行可翻译的内容。摘要、评论区,或者视频简介都不能代替它。它们不是讲话的顺序,也不为每一行带上时间。

把 YouTube 视频翻译成文本的四个步骤:复制 URL、生成文本行、翻译,然后检查并导出

在 transcript.im 上,按这个顺序操作:

  1. 复制你想要另一种语言的公开视频的 URL。
  2. 粘贴它并生成句子,然后再选择目标语言。视频上已有的字幕就是来源。只有在字幕缺失时,才会转写讲话。
  3. 对这些句子运行 Translate,并选一种支持的语言。措辞会变,YouTube 上的原视频不会。
  4. 对照原始时间检查翻译后的句子。当译文需要离开浏览器时,就导出。

要完成 YouTube 字幕提取,你手上已经有链接。你不需要重新上传视频,也不需要手动把译文打进去,除非你是在事后修正某一行。修正只留在你自己的副本里,不会写回原始上传。

目标语言是受支持的语言之一:阿拉伯语、简体中文、英语、法语、德语、印地语、意大利语、日语、韩语、葡萄牙语、俄语和西班牙语。这里的“中文”指简体中文,没有单独的繁体目标。葡萄牙语是一个目标,不按国家拆分。如果你需要的语言不在这个列表里,这一步不会凭空造出来。选一个工具真正提供的目标语言,或者把导出的文本拿到确实提供该语言的地方去翻译,并接受第二个工具可能不会保留字幕时间,除非你自己带上它们。

源语言就是字幕或讲话本来的语言。一段用日语讲的视频,首先得到的是日语句子,即使你打算读西班牙语。翻译是之后才选择目标语言,换一个目标,就是对同一组源句子另做一次翻译。从西班牙语切到德语,不会把西班牙语的结果编辑成德语。它是把源句子重新翻译了一遍。

自动字幕只要存在,就仍然是源文本。它的质量完全取决于那条字幕轨。人名、口音和语速飞快的题外话,正是它容易出错的地方。对一部从未配过字幕的视频,直接从音频转写,也有同样的局限:文字跟着录音走。先看清你在意的那句原文,再动手翻译,别把顺序弄反。

保持时间戳对齐

时间之所以原地不动,是因为翻译不会重建时间轴。每一行都保留措辞改变之前的开始时间和时长。被替换的只有文字。一句原本从 1:02 开始的话,在译文里依然从 1:02 开始,哪怕新措辞比原文更长或更短。

原文和译文的转录文本行并排显示,时间戳相同

翻译就是这样牢牢贴住视频里的那一刻。译文行只是原本瞬间上的一个标签,不是一段自带节奏的全新演绎。行旁边的时间,仍然是源视频里的那一刻。你听到的是原声,读到的是译文。你不会听到配音,因为没有生成任何新的音频。

导出用的也是这些时间。译文的 TXT 只有翻译后的文字,每条字幕一行,不含时间。SRT 和 VTT 会保留开始与结束时间,方便剪辑软件或网页播放器显示译文字幕。结束时间取自原行,并做了修剪,避免与下一条字幕重叠。这样播放器一次只显示一行,而不是把两行叠在一起。

译文变长,是最容易被误读的地方。字幕不会为了容纳新句子而变长。文字必须待在原本的时间窗口里。一句短短的英文变成一句长长的德文,它的结束时间仍然跟着原字幕走。在屏幕上,播放器可能会把更多文字折行塞进同一段时间里。这个文件并没有为了配合朗读译文的声音,去重新调整视频时间。如果你之后要录配音,配音的时间轴得你自己来对。这份导出不会替你完成。

阅读器可以在每条译文行旁显示开始时间,方便你核对。复制一段文字时,就像 TXT 导出那样,只带走文字,不带时间。如果时间必须跟着句子一起走,就用 SRT 或 VTT,或者在你粘贴进笔记的句子旁边手动记下时间。对齐只有在它和你即将引用的那一行保持绑定时才有用。

Clean 如果你运行它,是另一道处理。它修正文本里的语法、标点和识别错误,并保留时间。它不是翻译。Translate 才是改变语言的那道处理。当某行文字错乱时,先在原文上运行 Clean,再翻译,这样你就不会把一个识别错误,翻成另一种语言里一句自信满满的错话。

常见误区

最常见的失误,是翻错了对象。屏幕上的标题、用摄像机拍下的幻灯片、烧进画面里的字幕,都不在转录文本里,因此它们不会以另一种语言呈现。如果视频的意思藏在这些画面里,而人声从未说出来,翻译也无法把它还原。你读到的,自始至终只有说话内容。

导出翻译后的转录前的检查:屏幕上的文字、不新增语音、名称和数字,以及同一字幕块中的长文本行

下一个误区,是期待得到一条新音轨。做一次 YouTube 字幕提取、把视频翻成文字,你能留下的东西就是措辞。你不会得到替换的声音、对口型的配音,或者一条按译文句子长短重建的时间轴。原音频始终是计时的基准。配音是另一项独立的编辑工作。

另一个误区,是翻译一段简短的复述,却期待拿到行级的时间。摘要、核心要点和章节摘要,是同一份转录文本更简短的视图。在你逐行读完整篇之前,它们很有用。但它们不是翻译后的转录文本,也不会给你每句口播一条带时间的字幕。能保持对齐的译文,跑在转录文本的每一行上。学习笔记、Meeting Summary、Creator Repurpose、Moments 和思维导图,是同一份文本的其它视图。它们都不负责改变语言。思维导图可以把某个节点指向某个时刻,方便你定位。但它仍然不是每一行的译文措辞。

专有名词、数字和习语,需要人来把关。一个名字可能被音译、被半翻译,或者按听到的发音原样留下。一个依赖原语言的笑话,扛不住逐行的直译。在你把译文当作发言者的原话来引用之前,打开时间戳听一听。译文是对那一行的转述。录音才是源头。

短字幕里的快语速,和译文变长有同样的现实局限。时间窗口是由原行定下的。如果你把 SRT 拖进剪辑软件,觉得译文字幕挤得慌,就在软件里把那一条拆开或重写。别指望导出会把那个时刻拉长。

几乎没有说话的 Video,翻出来也几乎什么都没有。静音、音乐和掌声不是句子。如果转录文本只有寥寥几行,译文也只有寥寥几行。这是源素材本身的属性,不是目标语言失败了。

如果转录迟迟不开始,翻译自然也无从谈起。最常见的原因是视频并非公开可访问。

如果最终产出是给播放器用的带时间轴字幕轨,就把翻译后的字幕行导出成 SRT 或 VTT。讲如何从 YouTube 链接做出这类字幕轨(作为字幕,而不是阅读文本)的页面,是 YouTube 字幕生成器。当任务落在翻译后的措辞上,包括这段措辞对应的带时间轴文件时,用本文;当任务就是字幕轨本身时,用字幕生成器。

如果字幕叠加层已经够用,就开着它观看。当你需要另一种语言的文字,还要配上原始时间点时,就生成转录、翻译字幕行、并保留时间轴。YouTube 字幕提取工具 正是那个把公开链接变成你随后要翻译的文本的地方。

转录生成器

把任何视频变成文字

粘贴 YouTube、TikTok 或 Instagram 链接,即可阅读逐行带时间戳的转录文本。

可导出为 TXT、SRT 或 VTT。