The BotGuard PO token microservice for TypeType-Server.
Generates YouTube Proof-of-Origin tokens via a headless Chromium instance running the BotGuard challenge. Consumed exclusively by TypeType-Server over HTTP on localhost.
Read the Manifesto to understand the project and the architectural decisions behind this separation.
Container tags are published to GHCR with:
lateston default branch buildssha-<short-sha>on every build- branch tags (for example
main) - Git tags (for example
v1.2.3) - release tags from
v*(v1.2.3publishes1.2.3and1.2)
Examples:
- commit
dbc5019onmainpublishessha-dbc5019,main, andlatest - Git tag
v1.2.3publishesv1.2.3,1.2.3, and1.2
| Role | Tool |
|---|---|
| Runtime / Package manager | Bun |
| HTTP server | Bun.serve() |
| BotGuard execution | Playwright (Chromium headless) |
| BotGuard challenge parsing | bgutils-js |
| Lint / Format | Biome |
| Tests | bun:test |
Huge thanks to the projects that made this service possible.
- deniscerri/ytdlnis - reference implementation for the BotGuard and PO token flow
- LuanRT/BgUtils -
bgutils-js, used to parse and solve BotGuard challenges - yt-dlp/yt-dlp - reference for Innertube client behavior and request compatibility
MIT