v1 milestone

This commit is contained in:
YOLANDO
2026-03-25 11:20:05 +07:00
commit 4ec369c18e
7307 changed files with 873141 additions and 0 deletions

View File

@@ -0,0 +1,122 @@
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 <contact@grub4k.dev>
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](<https://github.com/yt-dlp/ejs/issues/new>).
### 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](<https://unlicense.org/>).
An exception to this is the prebuilt wheels, which contain both
[`meriyah`](<https://github.com/meriyah/meriyah>) and [`astring`](<https://github.com/davidbonnet/astring>),
licensed under [`ISC`](<https://github.com/meriyah/meriyah?tab=ISC-1-ov-file>) and [`MIT`](<https://github.com/davidbonnet/astring?tab=MIT-1-ov-file>), respectively.

View File

@@ -0,0 +1,15 @@
yt_dlp_ejs-0.8.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
yt_dlp_ejs-0.8.0.dist-info/METADATA,sha256=LW340bjSPXwLhJkgfhg-OjSn36TIzVUlqMu3gs6Assc,3471
yt_dlp_ejs-0.8.0.dist-info/RECORD,,
yt_dlp_ejs-0.8.0.dist-info/WHEEL,sha256=QccIxa26bgl1E6uMy58deGWi-0aeIkkangHcxk2kWfw,87
yt_dlp_ejs-0.8.0.dist-info/licenses/LICENSE,sha256=tQZYOMusRS38hVum5uAxSBrSxoQG9w0h6tkyE3RlPmw,1212
yt_dlp_ejs/__init__.py,sha256=_lAutxcpGhIct1bMSEndZyZ9XM7BNpVXPmuTCUKW8d0,63
yt_dlp_ejs/__pycache__/__init__.cpython-312.pyc,,
yt_dlp_ejs/__pycache__/_version.cpython-312.pyc,,
yt_dlp_ejs/_version.py,sha256=Rttl-BDadtcW1QzGnNffCWA_Wc9mUKDMOBPZp--Mnsc,704
yt_dlp_ejs/yt/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
yt_dlp_ejs/yt/__pycache__/__init__.cpython-312.pyc,,
yt_dlp_ejs/yt/solver/__init__.py,sha256=g0HGE6zeQb798DP4F9kLAsUHNSB-N5Qn2MUQ7YCZenM,509
yt_dlp_ejs/yt/solver/__pycache__/__init__.cpython-312.pyc,,
yt_dlp_ejs/yt/solver/core.min.js,sha256=GNps4HWLQW565kUIT0-IAfn51Z1sR3wF6qD_lOvYzAA,6945
yt_dlp_ejs/yt/solver/lib.min.js,sha256=xVmH_ml-W57hiDAWP3r4Uyfpu1w-Z0uWnTjI0gXqpXc,151561

View File

@@ -0,0 +1,4 @@
Wheel-Version: 1.0
Generator: hatchling 1.29.0
Root-Is-Purelib: true
Tag: py3-none-any

View File

@@ -0,0 +1,24 @@
This is free and unencumbered software released into the public domain.
Anyone is free to copy, modify, publish, use, compile, sell, or
distribute this software, either in source code form or as a compiled
binary, for any purpose, commercial or non-commercial, and by any
means.
In jurisdictions that recognize copyright laws, the author or authors
of this software dedicate any and all copyright interest in the
software to the public domain. We make this dedication for the benefit
of the public at large and to the detriment of our heirs and
successors. We intend this dedication to be an overt act of
relinquishment in perpetuity of all present and future rights to this
software under copyright law.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
OTHER DEALINGS IN THE SOFTWARE.
For more information, please refer to <https://unlicense.org/>