首页博客 → 把 YouTube 视频转成文字的三种办法

把 YouTube 视频转成文字的三种办法

发布于 2026-08-18 · 6 分钟阅读

把一段 YouTube 视频变成文字有三条路,它们在质量和你能拿它做什么上差别巨大。选错路的典型下场,就是得到一大团没有标点、没有时间轴的词。

方案一:YouTube 已经生成好的字幕

热门视频基本都已经有自动字幕。展开视频下方的文字稿面板,复制走,完事——不用写代码,也不花钱。

它在哪里失效:

只想读一遍某个视频,到此为止就好——免费,十秒钟。要做成可重复的流程,继续往下看。

方案二:自己转录音轨

当文字本身重要时选这条路:自己的视频、研究素材、准备发布的内容。提取音频、送去识别,拿回带标点和时间轴的文本。

从你已经有的文件里提取音轨:

ffmpeg -i video.mp4 -vn -ac 1 -ar 16000 -b:a 48k audio.mp3

然后一个请求:

from openai import OpenAI

client = OpenAI(base_url="https://voicesscribe.com/v1", api_key="your key")

with open("audio.mp3", "rb") as f:
    r = client.audio.transcriptions.create(
        model="whisper-1", file=f, response_format="verbose_json",
    )

print(r.text)

和自动字幕的差别立刻可见:有标点、大小写正确,还有精确到秒的分段——可以直接做成章节或字幕。

关于下载别人的视频

从 YouTube 下载视频受其服务条款限制,内容本身通常也是他人的版权作品。转录自己上传的视频,或者你拥有权利的素材,没有任何问题。除此之外,站得住脚的选项是内置文字稿面板,或者直接问作者要。

这不是法律意见,各国规则也不一样——但「工具让它变得很容易」从来不是抗辩理由,在搭流水线之前先弄清自己站在线的哪一边,是值得的。

方案三:整个频道存量的批量处理

面对自己的历史内容,要做的就是批量模式:一个文件夹、一个工作队列、以及从磁盘上已有结果推导出的进度。

import pathlib
from openai import OpenAI

client = OpenAI(base_url="https://voicesscribe.com/v1", api_key="your key")
OUT = pathlib.Path("transcripts"); OUT.mkdir(exist_ok=True)

for video in pathlib.Path("videos").glob("*.mp4"):
    out = OUT / (video.stem + ".txt")
    if out.exists():
        continue                      # 已经做过——不要付两次钱
    audio = video.with_suffix(".mp3")
    # ffmpeg -i video.mp4 -vn -ac 1 -ar 16000 -b:a 48k audio.mp3
    with audio.open("rb") as f:
        out.write_text(client.audio.transcriptions.create(
            model="whisper-1", file=f).text, encoding="utf-8")

一小时视频转成单声道音频约 25 MB,正好一个请求装得下。更长的录音需要切分——单次请求上限是 25 MB。

要字幕而不是纯文本

如果目标是把字幕挂回视频而不是阅读文字,直接请求字幕格式,省掉中间的转换步骤:

srt = client.audio.transcriptions.create(
    model="whisper-1", file=f, response_format="srt",
)
open("video.srt", "w", encoding="utf-8").write(srt)

得到的 SRT 文件可以在视频的字幕设置里上传,替换掉自动生成的那一轨。对多数频道来说,仅这一步就是肉眼可见的质量跃升——你的字幕有了标点,人名也拼对了。

让文字值得发布

该选哪一种

情况最佳选项
一个视频,现在就想知道讲了什么内置文字稿面板
自己的视频,文字要发布出去自己转录音轨
整个频道的存量对音频做批量流水线
需要给视频配字幕自己转录,response_format=srt
别人的视频文字稿面板,或者问作者

用你自己的录音试一试。 注册只需一分钟,免费额度足够判断识别质量。

免费获取 API 密钥

常见问题

直接复制 YouTube 的文字稿可以吗?

单个视频完全可以——文字稿面板免费而且即时。但它是自动生成的,标点和专有名词不可靠,而且手工复制没法扩展到整个存量。

必须下载视频才能转录吗?

只需要音轨,而且只针对你拥有权利的视频。音频比视频小几十倍,画面在识别中根本不会被用到。

一小时的视频要处理多久?

几分钟:处理速度快于实时。用 ffmpeg 提取音轨通常比转录本身还慢一点。

能拿到时间戳吗?

可以。response_format=verbose_json 返回带精确起止时间的分段,srt 或 vtt 则直接给你一个现成的字幕文件。

自己转录比 YouTube 自动字幕更好吗?

同一段音频,专门跑一次转录会有标点、正确的大小写,人名和术语的处理也好得多——尤其是把词表通过 prompt 参数传进去之后。

相关阅读