Skip to main content
2025 Python Packaging Survey is now live!  Take the survey now

External JavaScript for yt-dlp supporting many runtimes

Project description

yt-dlp-ejs

External JavaScript for yt-dlp supporting many runtimes

Manual Installation

Install ejs into the same environment as yt-dlp:

pip install -U yt-dlp-ejs

Development

While this project does pin its dependencies, it only provides a lockfile for building with deno. You may install dependencies using any compatible package manager. If you notice differences between different runtimes' builds please open an issue here.

Build

To build the Python package you need a PEP518 compatible builder. The build hook will automatically invoke deno, bun or node as required.

Alternatively, to only build the JavaScript files you can run the bundle script manually:

# Deno:
deno install --frozen
deno task bundle

# Bun:
bun install
bun --bun run bundle

# Node:
npm install
npm run bundle

Tests

First, make sure the project's dependencies are installed and download the player JS files:

# Deno:
deno install --frozen
deno run src/yt/solver/test/download.ts

# Bun:
bun install
bun --bun run src/yt/solver/test/download.ts

# Node 22.6+:
npm install
node --experimental-strip-types src/yt/solver/test/download.ts

Then the tests can be run:

# Deno
deno test

# Bun
bun test

# Node
node --test

Licensing

This code is licensed under Unlicense.

An exception to this are the prebuilt wheels, which contain both meriyah and astring, licensed under ISC and MIT, respectively.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page