Metadata-Version: 2.4
Name: yt-jsc-youtubei
Version: 0.0.1
Summary: Js Challenge Provider based on youtubei.js
License-Expression: MIT
License-File: LICENSE.txt
Keywords: yt-dlp,yt-dlp-jsc-provider
Author: alive4ever
Author-email: alive4ever@users.noreply.github.com
Requires-Python: >=3.10
Classifier: Programming Language :: Python :: 3
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
Requires-Dist: yt-dlp (>=2025.11.12)
Project-URL: Bug tracker, https://github.com/alive4ever/yt-jsc-youtubei/issues
Project-URL: Documentation, https://github.com/alive4ever/yt-jsc-youtubei
Project-URL: Homepage, https://github.com/alive4ever/yt-jsc-youtubei
Project-URL: Repository, https://github.com/alive4ever/yt-jsc-youtubei
Description-Content-Type: text/markdown

# yt-jsc-youtubei

## Description

A `yt-dlp` plugin that uses `youtubei.js` to extract and solve `JsChallenge` for Youtube

## Installation

Clone the repo and perform `pip install .` at the repo top dir.

```sh
git clone https://github.com/alive4ever/yt-jsc-youtubei
cd yt-jsc-youtubei
pip install .
```

Or directly using `pip`

```sh
pip install git+https://github.com/alive4ever/yt-jsc-youtubei
```

Or via pypi (when it is available).

```sh
pip install yt-jsc-youtubei
```

## Usage

The `yt-jsc-youtubei` has priority score of `50`, which means it will be executed last. For comparison, the built-in `deno ejs` has `1000` scores.

The supported js runtimes are `[ 'deno', 'node', 'bun' ]` and will be tried automatically in that order.

In order to use `deno`, `--no-js-runtimes` argument is needed to avoid `ejs` taking over the challenge. For other js runtimes (`node` and `bun`), this plugin will be used automatically. No configuration is needed.

## Acknowledgments

Thanks to `@LuanRT` for `youtubei.js` package and `yt-dlp` teams for the main package.


