Главная → Блог → Автоматические субтитры SRT и VTT из видео и вебинаров
Автоматические субтитры SRT и VTT из видео и вебинаров
Субтитры повышают досматриваемость роликов, делают контент доступным без звука и помогают поисковикам понять содержание видео. Вручную набирать их долго — покажем, как получать готовые файлы SRT и VTT автоматически.
Чем SRT отличается от VTT
Оба формата — текст с таймкодами, различия минимальны:
- SRT — самый распространённый: понимают YouTube, VK Видео, монтажные программы и большинство плееров. Время пишется через запятую:
00:00:12,500. - VTT (WebVTT) — стандарт для веба и HTML5-плеера, поддерживает стили и позиционирование. Время пишется через точку:
00:00:12.500.
Правило простое: для загрузки на видеоплощадки берите 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
Каждую часть отправляйте отдельно, а при склейке прибавляйте к таймкодам смещение куска. Для получасовых фрагментов это несколько строк кода, зато ограничение перестаёт мешать.
Как улучшить читаемость субтитров
- Подскажите терминологию. Названия продуктов и фамилии спикеров передайте в
prompt— в субтитрах они появятся в правильном написании. - Укажите язык, если он заведомо один:
language="ru"уберёт редкие ошибки автоопределения. - Вычитайте результат. Автоматические субтитры экономят часы работы, но финальную правку пунктуации и терминов лучше делать глазами.
- Используйте verbose_json, если нужны свои правила разбивки на строки: там есть сегменты с точным временем начала и конца.
Попробуйте на своих записях. Регистрация занимает минуту, бесплатных минут хватает, чтобы оценить качество.
Получить ключ бесплатноЧастые вопросы
Можно ли отправить видеофайл напрямую?
Практичнее извлечь звуковую дорожку: она в десятки раз меньше и быстрее загружается. Одна команда ffmpeg решает задачу.
Подойдут ли субтитры для YouTube?
Да, формат SRT загружается в YouTube и другие видеоплощадки без конвертации.
Как быть с записью длиннее часа?
Разрежьте её на части по 20–30 минут, расшифруйте по отдельности и склейте субтитры со сдвигом таймкодов.
Насколько точны таймкоды?
Достаточно точны для просмотра: реплики совпадают с речью. Для покадровой точности в монтаже субтитры обычно дополнительно подгоняют вручную.
Поддерживаются ли субтитры на других языках?
Да, распознаются 99 языков, язык определяется автоматически. Для двуязычных записей лучше обрабатывать фрагменты по отдельности.
Читайте также
- Как расшифровать запись звонка в текст — Пошаговое руководство: как перевести аудиозапись телефонного разговора в текст через API за несколько минут. Примеры кода на Python и C#, разбор ошибок.
- Транскрибация голосовых сообщений: Telegram, WhatsApp и другие мессенджеры — Как автоматически переводить голосовые сообщения в текст: работа с форматом ogg/opus, обработка коротких записей, примеры кода для чат-ботов.