vot-cli - это инструмент для перевода видео или загрузки субтитров с помощью vot.js.
Данный скрипт позволит вам:
- Загрузить перевод видео или получить на него ссылку
- Загрузить субтитры к видео в формате SRT, VTT или JSON или получить на них ссылку
- Получить ссылку на готовый файл без скачивания (режим preview)
- Использовать живые голоса для перевода (en -> ru)
- Выводить результат в JSON или в виде plain-ссылок (без прогресса)
- Обрабатывать несколько ссылок за один запуск
Warning
Скрипт создан исключительно в исследовательских целях и не предназначен для коммерческого использования. Все права на оригинальное программное обеспечение принадлежат их правообладателям.
Нажмите чтобы раскрыть
- -h, --help: показать помощь по использованию
- -v, --version: показать версию скрипта
- -o, --out, --outdir=(path): установить путь для сохранения
- --outfile=(name): установить имя файла для сохранения
- --lang=(lang): установить язык исходного видео (см. вики, чтобы узнать какие языки поддерживаются). По умолчанию:
en - --reslang=(lang): установить язык звуковой дорожки или субтитров (см. вики, чтобы узнать какие языки поддерживаются). По умолчанию:
ru - --proxy=(url): установить HTTP или HTTPS прокси в формате
[<PROTOCOL>://]<USERNAME>:<PASSWORD>@<HOST>[:<port>] - --worker-host=(url): установить свой vot-worker в формате
[<PROTOCOL>://]<HOST>[:<port>][/<PREFIX>] - --vot-host=(url): установить свой vot-backend сервер в формате
[<PROTOCOL>://]<HOST>[:<port>][/<PREFIX>] - --subs: получить субтитры вместо аудио, если существуют
- --subs-format=(format): установить формат для субтитров (
json,srt,vtt. Не работает с--preview) - --preview: получить ссылку на загрузку файла, без выполнения загрузки
- --lively-voice: использовать живые голоса для доступных видео (только
en->ru) - --api-token: установить Yandex OAuth API токен для использования живых голосов. Токен можно получить через отладочную ссылку
- --no-visual: выводить результат в stdout/stderr без информации о прогрессе (1 линия = 1 ссылка)
- --json: выводить результат в stdout/stderr в формате JSON без информации о прогрессе
- --no-title: использовать ID видео в имени файла, без попытки получить название видео
Нажмите чтобы раскрыть
vot-cli [options] <link> [link2] [link3] ...- общий примерvot-cli <link>- получить перевод аудио по ссылкеvot-cli --help- показать помощь по командамvot-cli --version- показать версию утилитыvot-cli --json [options] <link>- получить результат в формате JSONvot-cli --outdir=<path> <link>- получить перевод аудио по ссылке и сохранить его по указаному путиvot-cli --outdir=<path> --reslang=en <link>- получить перевод аудио на английский и сохранить его по указаному путиvot-cli --subs --outdir=<path> --reslang=en <link>- получить английские субтитры к видео и сохранить их по указанному путиvot-cli --outdir="." "https://www.youtube.com/watch?v=X98VPQCE_WI" "https://www.youtube.com/watch?v=djr8j-4fS3A&t=900s"- пример с реальными данными
Для README все примеры были отдельно отформатированы, чтобы их было проще читать. В реальном выводе JSON будет в одну линию, а некоторые списки могут быть длиннее.
Успешное выполнение
vot-cli --json ...{
"ok": true,
"summary": {
"total": 1,
"success": 1,
"failed": 0
},
"results": [
{
"input": "https://www.youtube.com/watch?v=X98VPQCE_WI",
"status": "success",
"type": "audio",
"videoId": "X98VPQCE_WI",
"url": "https://example.com/audio.mp3",
"outputPath": "C:\\downloads\\X98VPQCE_WI.mp3"
}
]
}Ошибка обработки
vot-cli --json ...{
"ok": false,
"summary": {
"total": 1,
"success": 0,
"failed": 1
},
"results": [
{
"input": "not-a-url",
"status": "failed",
"type": "audio",
"videoId": null,
"url": null
}
]
}Версия
vot-cli --version --json{
"version": "2.0.0",
"runtime": "Bun/1.3.14"
}Помощь
vot-cli --help --json{
"usage": "vot-cli [options] <link> [link2] [link3] ...",
"options": [
{ "flags": ["-h", "--help"], "description": "Show help (You're here)" },
{
"flags": ["--json"],
"description": "Write result to stdout/stderr as JSON without progress info"
}
],
"requestLangs": ["auto", "ru", "en"],
"responseLangs": ["ru", "en", "kk"],
"subtitlesTypes": ["srt", "vtt", "json"]
}Выберите наиболее удобный для себя способ установки vot-cli.
Если не хочется устанавливать Node.js или Bun, можно просто скачать готовую сборку с GitHub Releases.
Выберите архив для своей операционной системы и архитектуры:
Распакуйте архив, сделайте файл исполняемым и переместите его в директорию, которая находится в PATH:
tar -xzf vot-linux-x64.tar.gz
chmod +x vot-linux-x64
sudo mv vot-linux-x64 /usr/local/bin/vot-cli
vot-cli --versionСкачайте vot-darwin-x64.tar.gz или vot-darwin-arm64.tar.gz (в зависимости от вашего Mac) и выполните те же команды, заменив имя файла.
Скачайте vot-windows-x64.exe.zip, распакуйте vot-windows-x64.exe, при желании переименуйте его в vot-cli.exe
Чтобы сделать его доступным из любого места, добавьте папку с ним в переменную окружения PATH.
Этот вариант подходит, если у вас уже установлен Bun.sh или Node.js 22+.
Установка для Bun:
bun install -g vot-cliУстановка для Node:
npm install -g vot-cli- Установите Bun.sh
- Установите зависимости:
bun install- Соберите vot-cli:
bun run build:bun- Установите Bun.sh
- Установите зависимости:
bun install- Запустите сборку:
bun run compileЕсли при сборке, используя ОС Windows, вы получили ошибку Failed to move cross-compiled bun binary into cache directory, используйте WSL или перенесите папку с исходным кодом на Диск С
- Свяжите директорию:
bun link- Готово, теперь, вы можете использовать vot-cli в вашем терминале
-
Версия для браузера: Ссылка
-
Скрипт для скачивания видео с встроенным переводом (надстройка над vot-cli):
OS Оболочка Автор Ссылка Windows PowerShell Dragoy Ссылка Unix Fish Musickiller Ссылка Linux Bash s-n-alexeyev Ссылка Cloud Google Colab alex2844 Ссылка
Для получения читаемых названий видео в именах выходных файлов vot-cli может использовать yt-dlp.
Если yt-dlp не найден в системе, в именах файлов будет использоваться ID видео (X98VPQCE_WI.mp3 вместо названия).
Вы можете отключить это поведение флагом --no-title.
- Оборачивайте ссылки в кавычки, чтобы избежать ошибок при работе
- Для записи в системный раздел (например на "Диск C" в Windows) необходимы права администратора
- yt-dlp используется опционально для получения названий видео (см. раздел "Опциональные возможности")
