ChatGPT Subtitle Translator CLI
ChatGPT Subtitle Translator — CLI для длинных SRT: учитывает предыдущий перевод и продолжает работу после прерывания.
- 391 ★ репозитория
- Последний коммит
- MIT
Расширенный доступ
Почему такой уровень
- Переводчик читает субтитры и отправляет реплики выбранному API, если используется сетевой поставщик.
- CLI сохраняет перевод и прогресс на диске, запросы расходуют квоту аккаунта.
Установка
Ручная установка
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`, он сравнивает границы времени и допускает объединение соседних реплик.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
CLI-инструментыGemini SRT Translator, CLI на Python, переводит субтитры SRT и ASS через Gemini с таймкодами и ставит скилл для агентов.
VideoCaptioner расшифровывает речь, переводит субтитры и вшивает их в видео одной командой из Claude Code.
Навык вытаскивает текст и конспект из видео и подкастов по ссылке или файлу, используя субтитры платформы и Whisper.
Скилл расшифровывает видео, дает проверить субтитры в браузере и вшивает китайские и английские субтитры.
Скилл для Codex и Claude Code: субтитры и краткий пересказ по ссылке на ролик Douyin, Xiaohongshu, Bilibili, YouTube или по файлу
CLI и скиллы для кодового агента собирают черновой монтаж из ваших видео и сохраняют проект для дальнейшей правки
Коротко о README
При явном `--output` файл прогресса получает имя `<file>.progress.csv`; это относится к режимам с поддержкой продолжения. Параметром `--guard-repetition` пользователь задает, после скольких повторов ответа прервать поток и повторить запрос.