Cobalt is a self-hosted media downloader that runs as a separate container alongside summarize. It fetches video and audio from platforms that yt-dlp cannot handle, or situations where yt-dlp fails due to rate limits, geo-restrictions, or missing cookies.
Cobalt handles direct video links from sites not covered by yt-dlp extractors.
When yt-dlp returns rate-limit errors, geo-blocks, or login-required messages, Cobalt may succeed via its own extraction pipeline.
Some platforms block anonymous yt-dlp requests but allow Cobalt’s embed-based or API-based fetching.
If you do not want to manage per-platform cookie files, Cobalt can often download public content without them.
Tip: For Instagram, TikTok, Twitter/X, Reddit, and Facebook, yt-dlp is the primary downloader. It is faster, requires no extra container, and supports per-platform cookie authentication. Cobalt is only used as a fallback when yt-dlp fails or does not recognize the URL.
This starts Cobalt on http://localhost:9000. The summarize app automatically points to this URL via the COBALT_BASE_URL environment variable.
If Cobalt needs to connect through a proxy (for geo-unblocking or CDN access):
Copy the template:
Fill in your proxy credentials:
Start with the proxy overlay:
The summarize app talks to Cobalt through the --cobalt-url flag or the COBALT_BASE_URL environment variable:
In Docker, this is set automatically: