Cobalt
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.
When to Use Cobalt
Tip: For YouTube, 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.
Downloader Classes
Each downloader implements the same BaseDownloader interface, and DownloadManager tries them in order. Download failures are AudioProcessingError; a URL no downloader claims raises UnsupportedSourceError.
Where Cobalt Fits in the Chain
Every download walks the same fallback chain, and Cobalt is the last resort before the app gives up.
When yt-dlp Is Better
Running Cobalt
Standalone
This starts Cobalt on http://localhost:9000. The summarize app automatically points to this URL via the COBALT_BASE_URL environment variable.
With Proxy
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:
Full Stack (Summarize + Cobalt)
Docker Compose Reference
Configuration
The summarize app talks to Cobalt through the --cobalt-url flag or the COBALT_BASE_URL environment variable:
In Docker, this is set automatically: