Все статьи

Перевод SRT-субтитров на 100 языков: техническая сторона

Что на самом деле лежит внутри SRT-файла, как YouTube хранит дорожки субтитров, почему тайминг переживает перевод и три пути от одного файла к ста языкам.

Глава гида: Локализация YouTube: полный гид

SRT-файл это самый простой формат в видео: нумерованные блоки, диапазон таймкодов и строки текста. Именно эта простота позволила ему прожить тридцать лет, и именно поэтому перевод субтитров так хорошо масштабируется: тайминг это данные, текст это данные, и меняться должен только один из них. Ниже вся механика от начала до конца применительно к YouTube.

Что на самом деле лежит внутри SRT

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

Честная оговорка: длина текста не наследуется. Немецкий длиннее английского, китайский короче. Реплика, рассчитанная на шесть английских слов, может нести девять немецких, и на краях страдает скорость чтения. Для большинства контента это приемлемо; для плотных диалогов это единственное, что стоит выборочно проверить.

Как YouTube хранит субтитры

На YouTube субтитры живут дорожками: по одной на язык, прикреплены к видео, видны в Творческой студии во вкладке «Субтитры». Дорожку можно загрузить файлом, набрать вручную или записать через официальный Data API. Зритель выбирает дорожку в плеере, а YouTube сам подставляет ту, что совпадает с его языком.

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

Три пути от одного файла к ста языкам

ПутьКак идётГде ломается
Вручную в СтудииПеревести файл под каждый язык, загрузить каждый во вкладке «Субтитры»Сто языков это сто загрузок. Дважды так не делает никто
Обычные переводчики файловПеревести SRT на стороне, а затем всё равно загружать каждый результат вручнуюПоловину работы снимает, проблему ста загрузок оставляет
Через YouTube APIИнструмент читает текст субтитров ролика, переводит и пишет каждую дорожку прямо в видеоНужна авторизация канала через экран согласия Google

YouClicker идёт третьим путём: берёт существующий текст субтитров ролика как источник, переводит на выбранные языки и публикует каждую как обычную дорожку через Data API. Дорожки появляются в Творческой студии как загруженные вручную, и каждая стоит 1 балл сверх балла за название с описанием на том же языке. Отдельной пофайловой цены нет: ролик на 50 языков с субтитрами это 100 баллов. Подробности собраны на странице перевода субтитров YouTube.

Откуда берётся исходный текст

Переводу нужен текст, а не звук. Если у ролика уже есть авторская дорожка на языке оригинала, это идеальный источник. Если нет, YouTube обычно уже сгенерировал автоматические субтитры для языка оригинала, и источником могут стать они, с одной оговоркой: ошибки распознавания в них будут переведены добросовестно. Потолок качества каждой переведённой дорожки это качество исходного текста, поэтому один раз вычистить оригинальные субтитры окупается сразу на всей сотне языков.

Чем опубликованные дорожки отличаются от автоперевода в плеере и когда какого хватает, разобрано в статье про дорожки и автоперевод субтитров.

Замечание про Shorts

Всё сказанное относится и к Shorts: они несут дорожки субтитров как любое видео, а ленты по дизайну запускаются без звука, и текст на экране берёт на себя больше нагрузки. Что это значит для контента без слов и почти без слов, разобрано в статье про Shorts и беззвучный автоплей.