An unofficial library for interacting with Yandex VOT API, providing easy-to-use methods and enhanced functionality. https://votdocs.toil.cc/
Find a file
NullVerdict 917ba16bd9 chore: improve video extraction for reddit, udemy, and videojs
Enhanced video and subtitle extraction logic for Reddit, Udemy, and VideoJS helpers to support more player variants and edge cases. Updated Udemy API origin handling, improved error detection, and expanded video source selection to include stream and download URLs. Adjusted selectors and parsing for Reddit and VK, and improved robustness in VideoJS player detection and subtitle extraction.
2026-01-01 21:33:26 +04:00
.config updated jsons 2024-11-20 17:50:02 +03:00
.github chore: added support authorization with oauth token to useLivelyVoice 2025-05-14 14:27:40 +03:00
examples chore: added more info about translation help 2025-05-26 03:31:14 +03:00
packages chore: improve video extraction for reddit, udemy, and videojs 2026-01-01 21:33:26 +04:00
scripts chore: updated get actual version logic 2025-05-31 17:50:33 +03:00
tests chore: added more info about translation help 2025-05-26 03:31:14 +03:00
.gitignore chore: migrated husky & prettier -> lefthook & biome 2025-06-01 03:43:52 +03:00
.oxlintrc.json chore: removed oxlint eslint plugin && updated oxlint config 2025-06-01 03:42:00 +03:00
biome.json fix: getVideoId on some vimeo link 2025-06-24 00:57:35 +03:00
bun.lock merge 2025-06-24 01:02:25 +03:00
changelog.md chore: improve video extraction for reddit, udemy, and videojs 2026-01-01 21:33:26 +04:00
CONTRIBUTING.md docs: removed note about ts-proto v2 2025-01-27 22:41:06 +03:00
lefthook.yml chore: migrated husky & prettier -> lefthook & biome 2025-06-01 03:43:52 +03:00
LICENSE initial commit 2024-06-05 16:24:07 +03:00
package.json chore: improve video extraction for reddit, udemy, and videojs 2026-01-01 21:33:26 +04:00
README-RU.md docs: added rights notice 2025-01-28 03:33:28 +03:00
README.md docs: added rights notice 2025-01-28 03:33:28 +03:00
tsconfig.build.json updated jsons 2024-11-20 17:50:02 +03:00
tsconfig.json updated 2024-11-20 17:39:05 +03:00
UPGRADING.md updated 2024-11-20 17:39:05 +03:00

vot.js

GitHub Actions npm ru en

An unofficial library for interacting with the Yandex VOT API, which supports working with JavaScript, TypeScript, and also has built-in parted types for Typebox.

The library supports working with worker servers, to do this, you need to create a VOTWorkerClient client and specify the domain of the worker server, for example vot-worker.toil.cc.

Warning

The library was created exclusively for research purposes and isn't intended for commercial use. All rights to the original software belong to their respective right holders. The library isn't affiliated with the original rights holders

Installation

To work with Node, Bun, or other runtimes, install the @vot.js/node:

bun install @vot.js/node

To develop browser extensions, install the @vot.js/ext:

bun install @vot.js/ext

If you only need part of the functionality, use the @vot.js/core and @vot.js/shared

Getting started

To start working with the API, you need to create a VOT Client. This can be done using the line provided below.

Standard Client:

const client = new VOTClient();

const videoData = await client.getVideoData("https://youtu.be/LK6nLR1bzpI");

const result = await client.translateVideo({ videoData });

Proxying via vot-worker:

const client = new VOTWorkerClient({
  host: "vot-worker.toil.cc",
});

You can see more code examples here

Limitations

  1. The library can't translate videos longer than 4 hours

Build

To build, you must have:

  • Bun
  • Protoc (if you are building with the update of the .proto file)

Don't forget to install the dependencies:

bun install

Start building:

bun build:all

Build without updating proto and without generating docs:

bun build:skip-proto

Tests

The library has minimal test coverage to check its performance.

Run the tests:

bun test