saveapi.org vs cobalt — self-hosted downloader or a hosted API
cobalt is excellent software and its authors say clearly what it is: a self-hosted tool with no publicly available pre-hosted API. Choosing between it and a hosted API is therefore not a feature comparison but an operations decision — who runs the instance, who keeps the cookies alive, whose bandwidth the file crosses, and what the licence asks of you. This page lays those out, from cobalt's own README and instance guide.
Aspectcobaltsaveapi.org
How you use itRun your own instance (Docker Compose recommended); no public pre-hosted APIHosted HTTPS API, one GET per link
CostFree software; you pay for the server, bandwidth and upkeepCredits: 1.5 per download, 5 per Instagram story, 3 Rutube, 0.1 per refused link; 1,000 free
LicenceAGPL-3.0 — modified code you serve must be released under the same licenceCommercial API; your code stays yours
Where the file goesThrough your instance ("works like a fancy proxy")Direct CDN URL; the file never touches the API
Sites needing a sessionYou provide cookies.json for services that require authentication to view public contentNo cookies or accounts on your side
Public-facing protectionTurnstile and/or API keys recommended to protect your instance from abusePer-key rate limit and IP allow-list, handled by the service
Coverage21 services incl. YouTube, Reddit, Vimeo, Twitch clips, SoundCloud, Bilibili, Bluesky13 platforms incl. YouTube up to 1080p and Twitch clips + VODs; no music by design
InstagramReels, photos, videos; pick from multi-media posts (stories not listed)Reels, posts, carousels, single stories and all active stories of an account
OutputMuxed/encoded file via ffmpeg, rich file names on some servicesJSON with direct URLs, type per media, metadata; you fetch the bytes
Where cobalt is the better choice
- You want Reddit, Vimeo, SoundCloud, 4K YouTube or any of the services on cobalt's list that this API does not touch.
- You want the file muxed and named for you, not a URL to fetch.
- You are fine running and updating a server, and your volume is low enough that the server is cheaper than credits.
- AGPL-3.0 is acceptable for how you deploy it.
Where a hosted API is the better choice
- Your instance would run on a datacenter IP. cobalt's own guide expects cookies.json for services that need a session to show public content — Instagram is the usual case — and keeping those sessions alive from a server is the part that decays. The API's sources are measured and re-ordered from a server address so you never hold a session.
- Bandwidth: a cobalt instance proxies every file. With a hosted API the file goes CDN → your user; nothing crosses a box you pay for.
- You need Instagram stories, which cobalt's Instagram notes do not list.
- You would rather have a stable error code and a per-request price than a process to monitor.
Not a fair fight in one direction
cobalt covers roughly twice as many services and does things a link-resolving API structurally cannot — remuxing, audio extraction, picking a rendition. If those are your requirements, run cobalt. The comparison only becomes close when the question is "who operates it" rather than "what does it do".
Questions before you build
- Can I use cobalt's public instance instead of running my own?
- cobalt's api README states there is currently no publicly available pre-hosted API and recommends deploying your own instance.
- Does AGPL-3.0 affect a closed-source app that calls my cobalt instance?
- The licence terms apply to the cobalt code you run and modify; read the licence text in the repository and take your own advice on how it applies to your setup. saveapi.org has no such condition.
- Does saveapi.org proxy the file like cobalt does?
- No. You receive a direct URL to the platform's CDN and fetch it yourself, which is why the file's speed depends on that CDN and not on us.