https://github.com/2bc4/streamlink-ttvlol
Streamlink Twitch plugin modified to work with the TTV.LOL API
https://github.com/2bc4/streamlink-ttvlol
adblock plugin proxy streaming streamlink twitch
Last synced: 2 months ago
JSON representation
Streamlink Twitch plugin modified to work with the TTV.LOL API
- Host: GitHub
- URL: https://github.com/2bc4/streamlink-ttvlol
- Owner: 2bc4
- License: bsd-2-clause
- Created: 2022-12-05T10:16:03.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2025-11-11T22:55:39.000Z (8 months ago)
- Last Synced: 2025-11-12T00:23:48.181Z (8 months ago)
- Topics: adblock, plugin, proxy, streaming, streamlink, twitch
- Language: Python
- Homepage:
- Size: 205 KB
- Stars: 226
- Watchers: 11
- Forks: 8
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# streamlink-ttvlol
## About
[Streamlink](https://streamlink.github.io) Twitch plugin modified to work with the [TTV.LOL](https://github.com/TTV-LOL/extensions) API. This proxies the playlist request to a country where Twitch does not serve ads. Note that TTV.LOL-like APIs can still rarely return a playlist with ads, if this happens you'll need to restart streamlink to get a different playlist or switch between proxies.
Not compatible with TTV-LOL-PRO v2 proxies.
## Installation
***Follow the instructions below for your specific operating system.***
[Windows](#windows), [Linux](#linux), [MacOS](#macos).
If you wish to install manually, you can get the latest release [here](https://github.com/2bc4/streamlink-ttvlol/releases/latest/download/twitch.py). ***(If you're not using git Streamlink please try the twitch.py from the releases page first. The twitch.py from the master branch tracks Streamlink master and may break on stable Streamlink releases.)***
After installation you will need to point Streamlink at a playlist proxy server with [plugin arguments](#arguments).
More info on Streamlink plugin sideloading [here](https://streamlink.github.io/latest/cli/plugin-sideloading.html).
## Windows
### Automatically
Copy the command below and paste it into powershell. ***Do not run powershell as admin.***
If you don't know how to open powershell. Press windows key + r and type `powershell` into the box and press enter. Copy the contents of the box below and then right click in the powershell window and press enter:
```powershell
$null= New-Item -ItemType Directory -Path $env:APPDATA\streamlink\plugins -Force; iwr -Uri 'https://github.com/2bc4/streamlink-ttvlol/releases/latest/download/twitch.py' -OutFile $env:APPDATA\streamlink\plugins\twitch.py
```
**NOTE:** If you cannot resolve the URL (receive an error), this is likely due to your TLS version. Run the command below to set your TLS version to 1.2 and re-run the above command:
```powershell
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
```
### Manually
Navigate to:
```powershell
C:\Users\YOURUSERNAME\AppData\Roaming\streamlink
```
Then create the `plugins` folder and drop the `twitch.py` inside of it.
## Linux
### Automatically
Run the below command in a terminal:
```bash
INSTALL_DIR="${XDG_DATA_HOME:-${HOME}/.local/share}/streamlink/plugins"; mkdir -p "$INSTALL_DIR"; curl -L -o "$INSTALL_DIR"/twitch.py 'https://github.com/2bc4/streamlink-ttvlol/releases/latest/download/twitch.py'
```
### Manually
Copy the `twitch.py` file to:
```bash
~/.local/share/streamlink/plugins
```
## MacOS
### Automatically
Run the below command in terminal:
```zsh
INSTALL_DIR="${HOME}/Library/Application Support/streamlink/plugins"; mkdir -p "$INSTALL_DIR"; curl -L -o "$INSTALL_DIR"/twitch.py 'https://github.com/2bc4/streamlink-ttvlol/releases/latest/download/twitch.py'
```
### Manually
Copy the `twitch.py` file to:
```zsh
${HOME}/Library/Application Support/streamlink/plugins
```
## Arguments
streamlink-ttvlol adds the following plugin arguments:
`--twitch-proxy-playlist`
Proxy playlist request through a server that supports the TTV.LOL API (or a server that doesn't with a custom URL, see [here](https://github.com/2bc4/streamlink-ttvlol/releases/tag/5.3.0-20230313)). It can also be pointed at multiple comma separated servers which will try each server in order until successful.
Example:
--twitch-proxy-playlist=https://eu.luminous.dev,https://lb-eu.cdn-perfprod.com
---
`--twitch-proxy-playlist-exclude`
Can be used to exclude channels from being proxied (eg. you're subscribed to the channel and want to use your OAuth token to avoid ads instead)
Example:
--twitch-proxy-playlist-exclude=forsen,twitch,twitchgaming
---
`--twitch-proxy-playlist-fallback`
Enable if Streamlink should fallback to Twitch servers if all requests to playlist proxies fail.
## Known compatible public proxy servers
[TTV-LOL-PRO](https://github.com/younesaassila/ttv-lol-pro/discussions/37#discussioncomment-5426032) v1 servers:
- `https://lb-eu.cdn-perfprod.com` (Europe)
- `https://lb-eu2.cdn-perfprod.com` (Europe 2)
- `https://lb-eu3.cdn-perfprod.com` (Europe 3, using Russia-only proxies)
- `https://lb-eu4.cdn-perfprod.com` (Europe 4)
- `https://lb-eu5.cdn-perfprod.com` (Europe 5)
- `https://lb-na.cdn-perfprod.com` (NA)
- `https://lb-as.cdn-perfprod.com` (Asia)
- `https://lb-sa.cdn-perfprod.com` (SA)
[luminous-ttv](https://github.com/AlyoshaVasilieva/luminous-ttv) servers:
- `https://eu.luminous.dev` (Europe)
- `https://eu2.luminous.dev` (Europe 2)
- `https://as.luminous.dev` (Asia)
## streamlink-twitch-gui
If you're using [streamlink-twitch-gui](https://github.com/streamlink/streamlink-twitch-gui) then you'll need to check the "Enable advanced settings and features" box on the `Main` tab in settings. You can then add the above argument of your choosing to the "Custom parameters" box on the `Streaming` tab.
## Chatterino
If you're using [Chatterino](https://github.com/Chatterino/chatterino2) with Streamlink you'll need to add the above argument of your choosing to Settings -> External Tools -> Streamlink -> Additional options.