Главная → Блог → Как перевести видео с YouTube в текст
Как перевести видео с YouTube в текст
Превратить видео с YouTube в текст можно тремя способами, и они сильно различаются и по качеству, и по тому, что вам вообще разрешено с результатом делать. Выбор не того способа — самый частый путь к стене слов без знаков препинания и таймкодов.
Способ 1: субтитры, которые YouTube уже сделал
У популярных роликов автоматические субтитры уже есть. Откройте панель расшифровки под видео, скопируйте текст — готово, ни кода, ни расходов.
Где этот путь ломается:
- Качество непредсказуемо. Автосубтитры генерируются один раз, при загрузке, моделью, настроенной на охват, а не на точность. Первыми страдают термины, имена и числа.
- Во многих языках нет пунктуации. Вы получаете поток слов: для поиска сойдёт, для чтения — нет.
- Это не масштабируется. Копирование руками работает для одного ролика, но не для архива канала.
- Их может не быть вовсе. У небольших каналов и редких языков дорожки субтитров часто просто нет.
Если нужно один раз прочитать один ролик — остановитесь здесь: бесплатно и за десять секунд. Для всего повторяемого читайте дальше.
Способ 2: своя расшифровка звуковой дорожки
Это то, что нужно, когда текст важен: для своих видео, для исследования, для контента, который вы собираетесь публиковать. Извлекаете звук, отправляете на распознавание, получаете текст с пунктуацией и таймкодами.
Извлечение звука из файла, который у вас уже есть:
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="ваш ключ")
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 ограничено его правилами, а сам контент обычно чья-то охраняемая работа. Расшифровывать собственные загрузки или материалы, права на которые у вас есть, — нормально. Во всех остальных случаях честные варианты — встроенная панель расшифровки или запрос автору.
Это не юридическая консультация, и правила различаются по странам, но «инструмент делал это легко» никогда не было аргументом защиты. Понимать, по какую сторону линии вы находитесь, стоит до того, как строить конвейер.
Способ 3: пакетная обработка архива канала
Для собственного архива задача сводится к пакетному шаблону: папка файлов, очередь работ и состояние, выведенное из того, что уже лежит на диске.
import pathlib
from openai import OpenAI
client = OpenAI(base_url="https://voicesscribe.com/v1", api_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 МБ моно-звука — ровно один запрос. Записи длиннее придётся резать: лимит составляет 25 МБ на запрос.
Если нужны субтитры, а не просто текст
Когда цель — вернуть субтитры на видео, а не прочитать текст, запрашивайте формат субтитров напрямую и пропускайте шаг конвертации:
srt = client.audio.transcriptions.create(
model="whisper-1", file=f, response_format="srt",
)
open("video.srt", "w", encoding="utf-8").write(srt)
Полученный SRT загружается в раздел субтитров ролика и заменяет автоматическую дорожку. Для большинства каналов уже это заметный скачок качества: у ваших субтитров появляется пунктуация, а имена написаны правильно.
Как довести текст до публикации
- Передайте словарь. Название канала, имена гостей, названия продуктов и повторяющийся жаргон кладите в параметр
prompt— именно там собираются ошибки распознавания. - Укажите язык, если ролик одноязычный:
language="ru"убирает промахи определения в начале. - Сохраняйте таймкоды. Формат
verbose_jsonвозвращает сегменты с временем начала и конца — сырьё для глав, нарезок и ссылок на момент. - Прочитайте один раз перед публикацией. Десять минут на правку имён и разбивку абзацев решают, будет это страница, которую читают, или стена текста.
Какой способ выбрать
| Ситуация | Лучший способ |
|---|---|
| Один ролик, суть нужна прямо сейчас | Встроенная панель расшифровки |
| Своё видео, текст пойдёт в публикацию | Своя расшифровка звуковой дорожки |
| Архив целого канала | Пакетный конвейер по звуку |
| Нужны субтитры на видео | Своя расшифровка с response_format=srt |
| Чужой ролик | Панель расшифровки или запрос автору |
Попробуйте на своих записях. Регистрация занимает минуту, бесплатных минут хватает, чтобы оценить качество.
Получить ключ бесплатноЧастые вопросы
Можно ли просто скопировать расшифровку из YouTube?
Для одного ролика — да, панель расшифровки бесплатна и мгновенна. Но она автоматическая, поэтому пунктуация и имена собственные ненадёжны, а копирование руками не масштабируется на архив.
Нужно ли скачивать видео, чтобы его расшифровать?
Только звуковую дорожку и только для роликов, права на которые у вас есть. Звук в десятки раз меньше видео, а картинка при распознавании не используется вовсе.
Сколько обрабатывается часовой ролик?
Несколько минут: распознавание идёт быстрее реального времени. Извлечение звука через ffmpeg обычно занимает больше времени, чем сама расшифровка.
Будут ли таймкоды?
Да, с response_format=verbose_json возвращаются сегменты с точным временем начала и конца, а с srt или vtt — готовый файл субтитров.
Лучше ли своя расшифровка автосубтитров YouTube?
На том же звуке отдельный проход распознавания даёт пунктуацию, правильные заглавные буквы и заметно лучше справляется с именами и терминами — особенно если передать словарь через параметр prompt.
Читайте также
- Автоматические субтитры SRT и VTT из видео и вебинаров — Как получить готовые субтитры с таймкодами из записи вебинара или ролика: извлечение звука, форматы SRT и VTT, примеры кода и разбор частых проблем.
- Как построить пакетную транскрибацию архива записей — Как расшифровать тысячи записей и ничего не потерять: очередь работ, параллельность, повторные попытки, продолжение после сбоя и контроль расходов до запуска.
- Как повысить точность распознавания речи: восемь рабочих приёмов — Восемь изменений, которые действительно двигают качество расшифровки: подготовка звука, подсказка языка, параметр prompt, нарезка по паузам, форматы и замер ошибок.