Metadata-Version: 2.4 Name: yt-dlp-ejs Version: 0.8.0 Summary: External JavaScript for yt-dlp supporting many runtimes Project-URL: Documentation, https://github.com/yt-dlp/ejs#readme Project-URL: Issues, https://github.com/yt-dlp/ejs/issues Project-URL: Source, https://github.com/yt-dlp/ejs Author-email: Simon Sawicki License-Expression: Unlicense AND MIT AND ISC License-File: LICENSE Keywords: yt-dlp Classifier: Development Status :: 5 - Production/Stable Classifier: Programming Language :: Python Classifier: Programming Language :: Python :: 3.10 Classifier: Programming Language :: Python :: 3.11 Classifier: Programming Language :: Python :: 3.12 Classifier: Programming Language :: Python :: 3.13 Classifier: Programming Language :: Python :: 3.14 Classifier: Programming Language :: Python :: Implementation :: CPython Classifier: Programming Language :: Python :: Implementation :: PyPy Requires-Python: >=3.10 Description-Content-Type: text/markdown # yt-dlp-ejs External JavaScript for yt-dlp supporting many runtimes ## Manual Installation Install ejs into the same environment as yt-dlp: ```console 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: ```bash 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: ```bash # 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: ```bash # 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: ```bash # 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.