Skip to content

FOSWLY/vot-cli

Repository files navigation

VOT-CLI

GitHub Actions en ru

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> - получить результат в формате JSON
  • vot-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" - пример с реальными данными

Примеры JSON-вывода

Для 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.

Выберите архив для своей операционной системы и архитектуры:

Linux

Распакуйте архив, сделайте файл исполняемым и переместите его в директорию, которая находится в 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

macOS

Скачайте vot-darwin-x64.tar.gz или vot-darwin-arm64.tar.gz (в зависимости от вашего Mac) и выполните те же команды, заменив имя файла.

Windows

Скачайте vot-windows-x64.exe.zip, распакуйте vot-windows-x64.exe, при желании переименуйте его в vot-cli.exe

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

С помощью NPM/Bun (Кросс-платформенная)

Этот вариант подходит, если у вас уже установлен Bun.sh или Node.js 22+.

  1. Установите Bun.sh или Node.js.
  2. Установите vot-cli глобально:

Установка для Bun:

bun install -g vot-cli

Установка для Node:

npm install -g vot-cli

Сборка для NPM

  1. Установите Bun.sh
  2. Установите зависимости:
bun install
  1. Соберите vot-cli:
bun run build:bun

Сборка бинарников

  1. Установите Bun.sh
  2. Установите зависимости:
bun install
  1. Запустите сборку:
bun run compile

Если при сборке, используя ОС Windows, вы получили ошибку Failed to move cross-compiled bun binary into cache directory, используйте WSL или перенесите папку с исходным кодом на Диск С

Локальное тестирование с помощью команды vot-cli:

  1. Свяжите директорию:
bun link
  1. Готово, теперь, вы можете использовать vot-cli в вашем терминале

📁 Полезные ссылки

  1. Версия для браузера: Ссылка

  2. Скрипт для скачивания видео с встроенным переводом (надстройка над vot-cli):

    OS Оболочка Автор Ссылка
    Windows PowerShell Dragoy Ссылка
    Unix Fish Musickiller Ссылка
    Linux Bash s-n-alexeyev Ссылка
    Cloud Google Colab alex2844 Ссылка

✨ Опциональные возможности

Использование yt-dlp для названий видео

Для получения читаемых названий видео в именах выходных файлов vot-cli может использовать yt-dlp.

Если yt-dlp не найден в системе, в именах файлов будет использоваться ID видео (X98VPQCE_WI.mp3 вместо названия).

Вы можете отключить это поведение флагом --no-title.

❗ Примечание

  1. Оборачивайте ссылки в кавычки, чтобы избежать ошибок при работе
  2. Для записи в системный раздел (например на "Диск C" в Windows) необходимы права администратора
  3. yt-dlp используется опционально для получения названий видео (см. раздел "Опциональные возможности")

example btn

About

voice-over-translation but it's a CLI

Topics

Resources

Stars

257 stars

Watchers

6 watching

Forks

Packages

 
 
 

Contributors