ChatGPT Subtitle Translator CLI

ChatGPT Subtitle Translator — CLI для длинных SRT: учитывает предыдущий перевод и продолжает работу после прерывания.

  • 391 ★ репозитория
  • Последний коммит
  • MIT
CLI

Расширенный доступ

Почему такой уровень

  • Переводчик читает субтитры и отправляет реплики выбранному API, если используется сетевой поставщик.
  • CLI сохраняет перевод и прогресс на диске, запросы расходуют квоту аккаунта.
Все причины и проверки

cerlancism/chatgpt-subtitle-translator

Установка

Ручная установка

git clone https://github.com/Cerlancism/chatgpt-subtitle-translator

Первый шаг Setup README. Далее нужны `npm install`, права на CLI и `.env`.

Доступ и проверки

Как мы проверяем

Расширенный доступИнструмент запускает код или ходит в сеть, а внешние данные только читает.

  • Переводчик читает субтитры и отправляет реплики выбранному API, если используется сетевой поставщик.
  • CLI сохраняет перевод и прогресс на диске, запросы расходуют квоту аккаунта.

Это чужой код. Посмотрите файлы в репозитории перед установкой.

Что делает

ChatGPT Subtitle Translator — CLI для перевода субтитров SRT и обычного текста через OpenAI-совместимый API. Программа отделяет реплики от служебных строк SRT, объединяет их в порции и получает перевод в заданном формате. В обычном режиме она сверяет число входных и выходных реплик и повторяет запрос при расхождении. В режиме `agent` модель сначала описывает содержание файла и планирует перевод по участкам. Затем переводчик использует общий контекст для имен и тона диалога. Доступен локальный поставщик через Ollama, если он поддерживает нужный API.

Для кого. Редакторам видео, которым надо перевести длинный SRT, сохранить привязку реплик и продолжить работу после прерывания.

Подходит, если

  • Переводчик обрабатывает длинный диалог и сохраняет контекст предыдущих порций.
  • После сбоя редактор продолжает перевод в режиме `array` из сохраненного файла прогресса.
  • В фильме повторяются имена и термины, и автор сначала запускает обзор и планирование.
  • Редактор переключает перевод на локальный Ollama с совместимым API.

Не подходит, если

  • Монтажеру нужна расшифровка звука, а исходного текста субтитров еще нет.
  • Редактор выбирает `timestamp`, но рассчитывает продолжить работу по сохраненному прогрессу.
  • Поставщик модели не поддерживает выбранный структурированный формат ответа.

Пример запроса к агенту

Переведи этот SRT на русский в режиме array, сохрани результат отдельным файлом и не объединяй реплики.

Ограничения

Для CLI нужен Node.js 20 или новее; после клонирования пользователь устанавливает зависимости и заполняет `.env` ключом выбранного поставщика. Возможности структурированного ответа зависят от API модели. В режиме `timestamp` переводчик может объединять соседние реплики, а продолжение по файлу прогресса не поддерживается. Повторные запросы при несовпадении строк и дополнительные проходы агентского режима увеличивают число обращений к модели.

Как отключить. Остановите процесс переводчика и уберите его из заданий. Сохраните выходной SRT и файл прогресса, затем удалите ключ из `.env` или отзовите его у поставщика.

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

Как выбрать между array и timestamp?

По умолчанию выбран `array`: переводчик сохраняет соответствие входных и выходных реплик. В `timestamp` соседние реплики могут объединиться, а продолжить работу из файла прогресса нельзя. Выберите `array`, если важны отдельные реплики и возобновление после сбоя.

Что меняется в агентском режиме?

В режиме `agent` модель сначала составляет обзор героев, имен и тона, затем планирует перевод. Это добавляет обращения к API; выбирайте режим для диалогов, где одни и те же имена и выражения повторяются на протяжении файла.

Можно ли использовать свой API?

Да. В `.env` задайте `OPENAI_BASE_URL` с OpenAI-совместимым адресом `/v1` и ключ этого поставщика. Для локального варианта README называет Ollama; затем выберите поддерживаемую модель.

Как указать исходный и выходной файлы?

Параметры `--input` и `--output` выбирают файлы, `--to` задает целевой язык. В CLI режима `array` выход сохраняет соответствие реплик; выберите новое имя, чтобы оставить исходник.

Что происходит при разном числе строк?

В обычных режимах переводчик повторяет запрос меньшими порциями, вплоть до одной реплики. Если включен `timestamp`, он сравнивает границы времени и допускает объединение соседних реплик.

Обсуждение

Вопросов и отзывов пока нет.

Gemini SRT Translator, CLI на Python, переводит субтитры SRT и ASS через Gemini с таймкодами и ставит скилл для агентов.

CLIРасширенный доступ362Звезды репозитория

VideoCaptioner расшифровывает речь, переводит субтитры и вшивает их в видео одной командой из Claude Code.

СкиллРасширенный доступ16,5 тыс.Звезды репозитория

Навык вытаскивает текст и конспект из видео и подкастов по ссылке или файлу, используя субтитры платформы и Whisper.

СкиллРасширенный доступ3,4 тыс.Звезды репозитория

Скилл расшифровывает видео, дает проверить субтитры в браузере и вшивает китайские и английские субтитры.

СкиллРасширенный доступ127Звезды репозитория

Скилл для Codex и Claude Code: субтитры и краткий пересказ по ссылке на ролик Douyin, Xiaohongshu, Bilibili, YouTube или по файлу

СкиллРасширенный доступ256Звезды репозитория

CLI и скиллы для кодового агента собирают черновой монтаж из ваших видео и сохраняют проект для дальнейшей правки

CLIРасширенный доступ965Звезды репозитория

Коротко о README

При явном `--output` файл прогресса получает имя `<file>.progress.csv`; это относится к режимам с поддержкой продолжения. Параметром `--guard-repetition` пользователь задает, после скольких повторов ответа прервать поток и повторить запрос.

Бейдж для README

Сообщить о проблеме