save what you love
Go to file
Nikurasu 71582971e6
ci/woodpecker/push/woodpecker Pipeline was successful Details
False package name
2023-04-11 14:19:19 +02:00
.github Create FUNDING.yml 2023-02-16 16:04:22 +06:00
docs 5.3.2: link sharing and nanoid 2023-04-08 22:55:44 +06:00
src there's a better way to do it oops 2023-04-10 18:32:14 +06:00
.deepsource.toml deepsource config update 2023-02-13 20:39:09 +06:00
.gitignore retweet links, new clipboard icon, mobile layout and loc improvements 2023-03-24 23:16:10 +06:00
.woodpecker.yml False package name 2023-04-11 14:19:19 +02:00
Dockerfile i don't get it 2023-04-09 11:38:37 +06:00
LICENSE changed license from gpl3.0 to agpl3.0 2022-07-21 16:36:22 +06:00
README.md update the way environment variables are checked 2023-04-09 09:40:13 +06:00
crowdin.yml Update Crowdin configuration file 2022-09-03 17:37:22 +06:00
jsconfig.json basically new readme and more languages 2022-08-01 21:48:37 +06:00
package.json change the way user ip address is retrieved 2023-04-09 10:58:23 +06:00

README.md

cobalt

Best way to save what you love.

Live: co.wukko.me

cobalt logo with repeated logo pattern background

Crowdin DeepSource DeepSource

What's cobalt?

cobalt is a social and media platform downloader that doesn't piss you off.

It's fast, friendly, and doesn't have any bullshit that modern web is filled with: no ads, trackers, or analytics. Paste the link, get the video, move on. It's that simple. Just how it should be.

Supported services

Service Video + Audio Only audio Additional features
Twitter Ability to save multiple videos/GIFs from a single tweet.
Twitter Spaces Audio metadata.
YouTube & Shorts Support for 8K, 4K, HDR, and high FPS videos. Audio metadata & dubs. h264/av1/vp9 codecs.
YouTube Music Audio metadata.
Reddit GIFs and videos.
TikTok Video downloads with or without watermark; image slideshow downloads without watermark. Full audio downloads.
SoundCloud Audio metadata, downloads from private links.
bilibili.com
Tumblr
Vimeo
VK Videos & Clips

cobalt API

cobalt has an open API that you can use for free. It's easy and straightforward to use, check out the docs and see for yourself.

How to contribute translations

You can translate cobalt to any language you want on cobalt's Crowdin. Feel free to ignore QA errors if you think you know better. If you don't see a language you want to translate cobalt to, open an issue, and I'll add it to Crowdin.

Translation guidelines:

  • All text is ALWAYS stylized as lowercase unless it's STRESSED LIKE THIS or is an internal value like {ContactLink} or {appName}.
    • Example: "this is a live video, i am yet to learn how to look into future. wait for the stream to finish and try again!".
      Notice how everything is lowercase, no matter the punctuation marks? Yes, that's cobalt's style and you have to follow it.
  • Avoid formal language. Leave it for big and classy tech companies. Use informal language wherever possible.
  • Keep translations lively, friendly, and fun. Translate strings as if the user was your buddy.
  • You can (and should) rephrase sentences as long as they keep the same sense and send the same message as original.
  • You can add wordplays or puns if it feels natural to do so.
  • Do NOT use offensive or explicit vocabulary.
  • Check if there are issues in UI with your localization, and optimize it accordingly. If impossible, open an issue.
  • Be nice.

Host an instance yourself

You might find cobalt's source code a bit messy, but I do my best to improve it with every commit.

Requirements

  • Node.js 17.5 or above
  • git

npm modules

  • cors
  • dotenv
  • esbuild
  • express
  • express-rate-limit
  • ffmpeg-static
  • got
  • node-cache
  • url-pattern
  • xml-js
  • youtubei.js

Setup script installs all needed npm dependencies, but you have to install Node.js and git yourself.

  1. Clone the repo: git clone https://github.com/wukko/cobalt
  2. Run setup script and follow instructions: npm run setup
  3. Run cobalt via npm start
  4. Done.

Docker

It's also possible to host cobalt via a Docker image, but in that case you'd need to set all environment variables by yourself. That includes:

Variable Example
selfURL https://co.wukko.me/
port 9000
streamSalt randomly generated sha512 hash
cors 0

Disclaimer

cobalt is my passion project, so update release schedule depends solely on my motivation, free time, and mood. Don't expect any consistency in that.

License

cobalt is under AGPL-3.0 license.

Fluent Emoji used in the project is under MIT license.