Skip to main content

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

The project provides lockfiles for every supported package manager.

If you only have Python and a JS runtime, then you may instead run ./hatch_build.py. This will transparently invoke one of the supported JS runtimes for the build.

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:

python hatch_build.py

This will automatically select an available runtime and build using it.

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 --frozen-lockfile
bun --bun run src/yt/solver/test/download.ts

# Node 22.6+:
npm ci
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

Upgrading packages

When upgrading packages in package.json, all lockfiles must be updated simultaneously. To do this, run the following commands:

# Upgrade packages automatically (or manually adjust versions)
pnpm upgrade --latest

# Generate base `package-lock.json`
rm -rf node_modules
npm install

# Migrate to other package managers
pnpm import
bun pm migrate --force

# Make sure to use a deno with lockfile v4 (<2.3)
deno install --lockfile-only

# Ensure that `deno.json` is the same as `package-lock.json`.
# Note: you may need to manually update the `ADDITIONAL_PACKAGES_NODE`
# and/or `ADDITIONAL_PACKAGES_DENO` variables in `./check.py`.
python check.py

Licensing

This code is licensed under Unlicense.

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

Metadata

Release files for yt-dlp-ejs 0.8.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for yt-dlp-ejs 0.8.0
File Size Uploaded
yt_dlp_ejs-0.8.0.tar.gz 96.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for yt-dlp-ejs 0.8.0
File Interpreter ABI Platform
yt_dlp_ejs-0.8.0-py3-none-any.whl Python 3 none any Details

Total release size: 150.0 kB

Release files / yt_dlp_ejs-0.8.0.tar.gz

Download URL yt_dlp_ejs-0.8.0.tar.gz
Size 96.6 kB
Tags Source
SHA-256 checksum
How to use checksums
d5fa1639f63b5c4af8d932495f60689d5370f1a095782c944f7f62a303eb104e
BLAKE2b-256 checksum
How to use checksums
d3e6cceb9530e8f4e5940f6f7822d90e9d94f1b85343329a16baaf47bbbb3de1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 17, 2026.

Transparency log

Release files / yt_dlp_ejs-0.8.0-py3-none-any.whl

Download URL yt_dlp_ejs-0.8.0-py3-none-any.whl
Size 53.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
79300e5fca7f937a1eeede11f0456862c1b41107ce1d726871e0207424f4bdb4
BLAKE2b-256 checksum
How to use checksums
e3bd520769863744b669440a924271a6159ddd82ad5ae26b4ac4d4b69e9f8d44
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 17, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.8.0 This release

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page