bgutil-ytdlp-pot-provider
What it is and what it does
This package is a yt-dlp plugin that integrates proof-of-origin (PO) token generation into the video download workflow. When YouTube flags an IP address and demands sign-in confirmation before allowing downloads, this plugin can generate a PO token to make the traffic appear more legitimate and potentially bypass that check. The plugin works by interfacing with LuanRT's Botguard library to create tokens on demand.
The plugin supports two operational modes: an HTTP server that runs continuously and generates tokens on request (faster, recommended), or a script that spawns a new process for each token generation (slower, higher overhead). Installation requires setting up the token provider separately—either via Docker, Node.js, or Deno—before installing the plugin itself into yt-dlp's plugin directory. No token generation is guaranteed; YouTube's bot checks evolve, and this tool may not work in all scenarios.
Use it for:
- Download videos from a residential or flagged IP address that YouTube has marked as suspicious.
- Automate video downloads in scripts or services where interactive sign-in is not feasible.
- Run yt-dlp in a Docker container or CI/CD environment where YouTube bot checks are common.
- Maintain a persistent token cache to reduce latency when downloading multiple videos in succession.
- Integrate proof-of-origin authentication into a custom video archival or monitoring system.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
A yt-dlp plugin that provides proof-of-origin tokens to help bypass YouTube's bot-detection checks when downloading videos from flagged IP addresses.
Yes, if you regularly download videos from a flagged IP and yt-dlp is already your download tool. The plugin is low-friction to install, actively maintained, and has no Python dependencies. However, it requires separate setup of a Node.js or Deno backend, and token generation is not guaranteed to bypass all YouTube checks—treat it as a potential workaround, not a reliable solution. Not necessary if your IP is not flagged or if you can sign in interactively.
Install
bgutil-ytdlp-pot-provider on PyPI
pip
pip install bgutil-ytdlp-pot-provideruv
uv add bgutil-ytdlp-pot-providerpoetry
poetry add bgutil-ytdlp-pot-providerInstalling bgutil-ytdlp-pot-provider
Before you install
Low friction: pure Python wheel with no runtime dependencies. Actively maintained as of March 2026. Requires yt-dlp 2025.05.22 or above, and either Node.js (≥20) or Deno (≥2.0.0) to run the token generation backend separately.
License in practice
Licensed under GPLv3 (copyleft). Any modifications or derivative works must be released under the same license; commercial use is permitted but source code must remain available.
Quickstart
pip install -U bgutil-ytdlp-pot-provider
# Set up the HTTP server (option a, recommended):
git clone --branch 1.3.1 https://github.com/Brainicism/bgutil-ytdlp-pot-provider.git
cd bgutil-ytdlp-pot-provider/server/
npm ci && npx tsc
node build/main.js
# Then use yt-dlp normally; the plugin auto-provides tokens
Requires yt-dlp 2025.05.22 or above, Node.js (≥20) or Deno (≥2.0.0), and git to clone the provider repository. The HTTP server runs on port 4416 by default.
Verify before relying
- Whether the token generation actually succeeds for all YouTube regions and account states, or only for specific IP-flagging scenarios.
- Performance impact of token generation on yt-dlp download speed when using the script method versus the HTTP server.
- Reliability of the cache mechanism (6-hour default TTL) under concurrent yt-dlp invocations.
Package facts
| License | not declared (copyleft) |
| Python support | supports the current Python release (>=3.8) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | none |
| Maintenance | actively maintained — 160 days since the last release |
| First released | |
| Downloads | 724,371/month — #5,224 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: bgutil_ytdlp_pot_provider-1.3.1-py3-none-any.whl
Keywords: yt-dlp, yt-dlp-plugin, yt-dlp-pot-provider
Tags
More WWW/HTTP packages
urllib3 is an HTTP client library that provides…
permissive · top 100 on PyPI
requestsRequests is a Python HTTP library that…
permissive · top 100 on PyPI
h11h11 is a pure-Python HTTP/1.1 protocol…
permissive · top 100 on PyPI
httpxHTTPX is a fully featured HTTP client library…
permissive · top 100 on PyPI
httpcoreA minimal low-level HTTP client library that…
permissive · top 100 on PyPI
aiohttpaiohttp is an async HTTP client and server…
permissive · top 100 on PyPI
yt-dlpyt-dlp downloads audio and video from thousands…
permissive · top 5,000 on PyPI
youtube_dlCommand-line tool to download videos from…
permissive · top 15,000 on PyPI
yt-dlp-ejsProvides external JavaScript execution support…
permissive · top 5,000 on PyPI
types-yt-dlpProvides type hints for yt-dlp, enabling static…
permissive · top 15,000 on PyPI
pytubepytube downloads YouTube videos and playlists…
permissive · top 5,000 on PyPI
spotdlspotDL downloads songs from Spotify playlists…
permissive · top 15,000 on PyPI
ytmusicapiytmusicapi lets you programmatically interact…
permissive · top 15,000 on PyPI
youtube-search-pythonSearch YouTube for videos, channels, and…
permissive · top 15,000 on PyPI
sphinxcontrib-youtubeAdds Sphinx directives to embed YouTube, Vimeo,…
permissive · top 15,000 on PyPI
django-defenderBlocks brute-force login attempts in Django by…
permissive · top 15,000 on PyPI