npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

vot-cli

v2.0.1

Published

A small script that allows you to download an audio translation from Yandex via the terminal.

Readme

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