An open API service indexing awesome lists of open source software.

https://github.com/coletdjnz/yt-dlp-ytse

Experimental YouTube streaming features for yt-dlp
https://github.com/coletdjnz/yt-dlp-ytse

yt-dlp-plugins

Last synced: 2 months ago
JSON representation

Experimental YouTube streaming features for yt-dlp

Awesome Lists containing this project

README

        

# YouTube Streaming Experiments (YTSE)

Experimental YouTube streaming features for yt-dlp.

> [!CAUTION]
> These features are experimental. They may change without notice.

* [YouTube Streaming Experiments (YTSE)](#youtube-streaming-experiments-ytse)
* [Features](#features)
* [Installing](#installing)
* [pip/pipx](#pippipx)
* [Usage](#usage)
* [UMP Downloader](#ump-downloader)
* [SABR Downloader](#sabr-downloader)
* [Acknowledgements](#acknowledgements)

## Features

- [UMP Downloader](#ump-downloader)
- [SABR Downloader](#sabr-downloader)

## Installing

**Requires yt-dlp `2025.01.26` or above.**

If yt-dlp is installed through `pip` or `pipx`, you can install the plugin with the following:

### pip/pipx

```
pipx inject yt-dlp yt-dlp-ytse
```
or

```
python3 -m pip install -U yt-dlp-ytse
```

If installed correctly, you should see the YTSE YouTubeIE plugin override in `yt-dlp -v` output:

[debug] Extractor Plugins: YTSE (YoutubeIE)

## Usage

### UMP Downloader

Enable UMP formats:

`--extractor-args youtube:formats=ump`

Prioritize UMP formats:

`-S proto:ump`

Debug UMP messages:

`--extractor-args "youtube:ump_debug=1;formats=ump"`

### SABR Downloader

Enable SABR formats:

`--extractor-args youtube:formats=sabr`

Debug SABR messages:

`--extractor-args "youtube:sabr_debug=1;formats=sabr"`

Supports:
- Standard video downloading
- Note: SABR does not natively support downloading only video stream, so an audio stream is always downloaded (but discarded)
- Livestreams (including `--live-from-start`)

Not supported:
- `--download-sections`
- `--concurrent-fragments/-N`
- Resume downloads

See also:
- [mitmproxy SABR parser script](utils/mitmproxy_sabrdump.py)
- [Read SABR Request Python script](utils/read_sabr_request.py)
- [Read SABR Response Python script](utils/read_sabr_response.py)

## Acknowledgements

- [googlevideo](https://github.com/LuanRT/googlevideo) by [@LuanRT](https://github.com/LuanRT)
- [innertube](https://github.com/davidzeng0/innertube) by [@davidzeng0](https://github.com/davidzeng0)
- [googleapi_tools](https://github.com/ddd/googleapi_tools) by [@ddd (brutecat)](https://github.com/ddd)