best way to save what you love https://cobalt.tools
Find a file
propagare cba14785e6 api/pr0gramm: add support for pr0gramm
pr0gramm is an imageboard, and its new frontend pr0.app uses the same public
api. every upload is a single image or a video, served over plain cdn urls
(img./vid./thumb.pr0gramm.com) that need no login for sfw items.

the extractor reads the item from the public api and picks what the site itself
offers:

  - videos exist as h264 (mp4, always with audio) and vp9 (webm, usually
    without audio), in several height classes; videoQuality caps the height
  - subtitles (.vtt) are attached for uploads that have audio
  - items without any video variant are images, and are proxied

the media path pr0gramm reports isn't always up to date: an item that was
converted after its upload keeps the old path in `fullsize` (a `.png` that is
really served as `.jpg`), and a video without any variant has only its `image`
path. rather than trusting whichever field is filled, the reachable candidate
is probed. reviewers who prefer not to make HEAD requests here can simply keep
the `fullsize || image` order instead.

item links from both pr0gramm.com and pr0.app are accepted (/top/<id>,
/new/<id>, /user/<user>/<id>, ... -- the item id is always the last path
segment), and pr0.app is canonicalized to pr0gramm.com.

the media is served with `access-control-allow-origin: https://pr0.app` and
without referer checks, so a plain redirect response works for both the api and
the web ui and no local processing is needed.

this change was written with Hermes Agent and reviewed by me before submitting.
2026-10-09 15:19:42 +02:00
.github ci: install lts node version for tests 2026-03-07 14:49:05 +00:00
api api/pr0gramm: add support for pr0gramm 2026-10-09 15:19:42 +02:00
docs api: remove support for xiaohongshu 2026-03-30 16:13:32 +06:00
packages all: update dependencies 2025-12-23 23:37:05 +06:00
web api & web: bump and sync version to 11.7 2026-04-06 15:53:41 +06:00
.deepsource.toml ci: update .deepsource.toml 2024-05-14 06:57:09 +00:00
.dockerignore docker: update dockerfile to use pnpm features 2024-08-03 16:48:57 +00:00
.gitignore api/security: implement api keys as method of authentication 2024-10-04 14:58:56 +00:00
CONTRIBUTING.md CONTRIBUTING: mention comment feature 2024-11-05 18:28:06 +00:00
Dockerfile docker: bump node version to 24 2025-06-05 18:14:01 +00:00
LICENSE README: clarify root license 2024-09-09 16:00:23 +00:00
package.json repo: set up package.json in root 2024-08-03 09:31:59 +00:00
pnpm-lock.yaml api/package: revert redis to 4.7.1 (#1536) 2026-04-06 17:59:51 +06:00
pnpm-workspace.yaml packages: add version-info package 2024-08-03 21:27:14 +06:00
README.md Revert "readme: add info about the warp sponsor" 2025-12-20 12:08:39 +00:00

cobalt is a media downloader that doesn't piss you off. it's friendly, efficient, and doesn't have ads, trackers, paywalls or other nonsense.

paste the link, get the file, move on. that simple, just how it should be.

cobalt monorepo

this monorepo includes source code for api, frontend, and related packages:

it also includes documentation in the docs tree:

ethics

cobalt is a tool that makes downloading public content easier. it takes zero liability. the end user is responsible for what they download, how they use and distribute that content. cobalt never caches any content, it works like a fancy proxy.

cobalt is in no way a piracy tool and cannot be used as such. it can only download free & publicly accessible content. same content can be downloaded via dev tools of any modern web browser.

contributing

if you're considering contributing to cobalt, first of all, thank you! check the contribution guidelines here before getting started, they'll help you do your best right away.

thank you

cobalt is sponsored by royalehosting.net. a part of our infrastructure is hosted on their network. we really appreciate their kindness and support!

licenses

for relevant licensing information, see the api and web READMEs. unless specified otherwise, the remainder of this repository is licensed under AGPL-3.0.