ГлавнаяБлог → Автоматические субтитры SRT и VTT из видео и вебинаров

Автоматические субтитры SRT и VTT из видео и вебинаров

Опубликовано 2026-08-04 · 5 мин чтения

Субтитры повышают досматриваемость роликов, делают контент доступным без звука и помогают поисковикам понять содержание видео. Вручную набирать их долго — покажем, как получать готовые файлы SRT и VTT автоматически.

Чем SRT отличается от VTT

Оба формата — текст с таймкодами, различия минимальны:

Правило простое: для загрузки на видеоплощадки берите SRT, для собственного плеера на сайте — VTT.

Шаг 1. Извлеките звук из видео

Отправлять видеофайл целиком не нужно — достаточно звуковой дорожки, она в десятки раз меньше. Извлекается одной командой:

ffmpeg -i webinar.mp4 -vn -acodec libmp3lame -q:a 5 webinar.mp3

Часовой вебинар после такой конвертации весит около 25 МБ — как раз в пределах ограничения на размер запроса.

Шаг 2. Получите субтитры одним запросом

Формат задаётся параметром response_format — сервис возвращает готовый файл, разбивать текст на реплики самостоятельно не нужно:

from openai import OpenAI

client = OpenAI(base_url="https://voicesscribe.com/v1", api_key="ваш ключ")

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

open("webinar.srt", "w", encoding="utf-8").write(srt)

Для веба меняем одно слово:

vtt = client.audio.transcriptions.create(
    model="whisper-1", file=f, response_format="vtt",
)

Через терминал — так же коротко:

curl https://voicesscribe.com/v1/audio/transcriptions \
  -H "Authorization: Bearer ваш ключ" \
  -F file=@webinar.mp3 -F model=whisper-1 -F response_format=srt \
  -o webinar.srt

Шаг 3. Подключите субтитры к плееру

В HTML5 достаточно одной строки внутри тега видео:

<video controls src="webinar.mp4">
  <track kind="subtitles" src="webinar.vtt" srclang="ru" label="Русский" default>
</video>

На видеоплощадки файл SRT загружается в разделе субтитров ролика — распознанный текст остаётся только вычитать.

Длинные записи: как обойти ограничение

Если запись не помещается в 25 МБ, разрежьте её на части и склейте субтитры со сдвигом таймкодов:

ffmpeg -i long.mp3 -f segment -segment_time 1800 -c copy part%03d.mp3

Каждую часть отправляйте отдельно, а при склейке прибавляйте к таймкодам смещение куска. Для получасовых фрагментов это несколько строк кода, зато ограничение перестаёт мешать.

Как улучшить читаемость субтитров

Попробуйте на своих записях. Регистрация занимает минуту, бесплатных минут хватает, чтобы оценить качество.

Получить ключ бесплатно

Частые вопросы

Можно ли отправить видеофайл напрямую?

Практичнее извлечь звуковую дорожку: она в десятки раз меньше и быстрее загружается. Одна команда ffmpeg решает задачу.

Подойдут ли субтитры для YouTube?

Да, формат SRT загружается в YouTube и другие видеоплощадки без конвертации.

Как быть с записью длиннее часа?

Разрежьте её на части по 20–30 минут, расшифруйте по отдельности и склейте субтитры со сдвигом таймкодов.

Насколько точны таймкоды?

Достаточно точны для просмотра: реплики совпадают с речью. Для покадровой точности в монтаже субтитры обычно дополнительно подгоняют вручную.

Поддерживаются ли субтитры на других языках?

Да, распознаются 99 языков, язык определяется автоматически. Для двуязычных записей лучше обрабатывать фрагменты по отдельности.

Читайте также