Skip to main content

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

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

yt_dlp_ejs-0.6.0.tar.gz (95.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

yt_dlp_ejs-0.6.0-py3-none-any.whl (53.4 kB view details)

Uploaded Python 3

File details

Details for the file yt_dlp_ejs-0.6.0.tar.gz.

File metadata

  • Download URL: yt_dlp_ejs-0.6.0.tar.gz
  • Upload date:
  • Size: 95.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for yt_dlp_ejs-0.6.0.tar.gz
Algorithm Hash digest
SHA256 50ad37866aa6d1d069ab20f6d0fccf41e7f07f249b4feb80eff7a66fd5928de7
MD5 10d180798d0f8e0787a776ded7e339eb
BLAKE2b-256 bb55652a0e537a86af6d8c9e6f865172ff6c9609ee0a2e89a3a96920c4ae96ac

See more details on using hashes here.

Provenance

The following attestation bundles were made for yt_dlp_ejs-0.6.0.tar.gz:

Publisher: release.yml on yt-dlp/ejs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file yt_dlp_ejs-0.6.0-py3-none-any.whl.

File metadata

  • Download URL: yt_dlp_ejs-0.6.0-py3-none-any.whl
  • Upload date:
  • Size: 53.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for yt_dlp_ejs-0.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 cce9d168a354af6438b6c61db8aff4e69b262f251d457c4bab964ad02db3563a
MD5 58a4fcc9958f3b5f0ff2c0874bf44a66
BLAKE2b-256 b058b3db51f702e0d6b9116a16cf04d8a0cf07ea182c6e4c9855a3fff1bf83c7

See more details on using hashes here.

Provenance

The following attestation bundles were made for yt_dlp_ejs-0.6.0-py3-none-any.whl:

Publisher: release.yml on yt-dlp/ejs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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