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. |
||
|---|---|---|
| .config | ||
| .github | ||
| examples | ||
| packages | ||
| scripts | ||
| tests | ||
| .gitignore | ||
| .oxlintrc.json | ||
| biome.json | ||
| bun.lock | ||
| changelog.md | ||
| CONTRIBUTING.md | ||
| lefthook.yml | ||
| LICENSE | ||
| package.json | ||
| README-RU.md | ||
| README.md | ||
| tsconfig.build.json | ||
| tsconfig.json | ||
| UPGRADING.md | ||
vot.js
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
- The library can't translate videos longer than 4 hours
Build
To build, you must have:
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