Metadata-Version: 2.4 Name: yt-dlp-ejs Version: 0.3.2 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 uses [`pnpm`]() as a package manager with dependencies pinned through `pnpm-lock.yaml`. If you only have Python and a JS runtime you may instead invoke `./pnpm.py`, which will transparently invoke one of the supported JS runtimes to call `pnpm`. This pure JavaScript approach should be runtime agnostic. 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 pnpm.py install --frozen-lockfile python pnpm.py run bundle ``` This will automatically select an available runtime and invoke `pnpm` to build it. ### Tests First, make sure the project's dependencies are installed and download the player JS files: ```bash # Deno: python pnpm.py install --frozen-lockfile deno run src/yt/solver/test/download.ts # Bun: python pnpm.py install --frozen-lockfile bun --bun run src/yt/solver/test/download.ts # Node 22.6+: python pnpm.py install --frozen-lockfile 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 ``` ## 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.