2022-07-08 18:17:56 +00:00
# cobalt
2022-08-06 15:21:48 +00:00
Best way to save content you love.
2022-08-01 15:48:37 +00:00
2022-08-06 15:21:48 +00:00
[co.wukko.me ](https://co.wukko.me/ )
2022-07-08 18:17:56 +00:00
2022-07-30 09:12:32 +00:00
![cobalt logo ](https://raw.githubusercontent.com/wukko/cobalt/current/src/front/icons/wide.png "cobalt logo" )
2022-09-04 05:37:09 +00:00
2022-09-04 05:36:45 +00:00
[![Crowdin ](https://badges.crowdin.net/cobalt/localized.svg )](https://crowdin.com/project/cobalt) [![DeepSource ](https://deepsource.io/gh/wukko/cobalt.svg/?label=active+issues&token=MsmsJ9zUOKwcQor0yaiFot84 )](https://deepsource.io/gh/wukko/cobalt/?ref=repository-badge) [![DeepSource ](https://deepsource.io/gh/wukko/cobalt.svg/?label=resolved+issues&token=MsmsJ9zUOKwcQor0yaiFot84 )](https://deepsource.io/gh/wukko/cobalt/?ref=repository-badge)
2022-07-08 18:17:56 +00:00
2022-08-01 15:48:37 +00:00
## What's cobalt?
2022-09-03 15:32:39 +00:00
cobalt is social media downloader with zero bullshit. It's friendly, efficient, works on anything with a browser, and doesn't bother you with porn ads or privacy invasion "consent" popups.
2022-08-06 15:21:48 +00:00
It preserves original media quality so you get best downloads possible (unless you change that in settings).
2022-07-08 18:17:56 +00:00
2022-09-03 15:34:23 +00:00
## Supported services
2022-09-03 15:32:39 +00:00
| Service | Video + Audio | Only audio | Additional features |
2022-09-03 15:34:23 +00:00
| -------- | :---: | :---: | :----- |
| Twitter | ✅ | ✅ | |
2022-09-08 16:35:02 +00:00
| YouTube | ✅ | ✅ | Supports HDR and high FPS videos; quality picking |
2022-09-03 15:34:23 +00:00
| YouTube Music | ❌ | ✅ | |
| Reddit | ✅ | ✅ | |
2022-09-03 16:14:24 +00:00
| TikTok & douyin | ✅ | ✅ | Videos can be downloaded with or without watermark, preference is set by user; image slideshow downloads are always without watermark. |
2022-09-03 15:34:23 +00:00
| SoundCloud | ❌ | ✅ | |
| bilibili.com | ✅ | ✅ | |
| Tumblr | ✅ | ✅ | |
2022-09-08 16:35:02 +00:00
| Vimeo | ✅ | ⚒️ | Quality picking |
| VK | ✅ | ⚒️ | Quality picking |
2022-08-01 15:48:37 +00:00
## Translations
2022-08-19 17:54:20 +00:00
- Spanish: [@adrigoomy ](https://github.com/adrigoomy ) (translation is outdated, update needed)
- French: [@lexito-o ](https://github.com/lexito-o ) (translation is outdated, update needed)
- Indonesian: [@LyfeV ](https://github.com/LyfeV ) (translation is outdated, update needed)
2022-08-04 18:17:51 +00:00
- Polish: [@hexandcube ](https://github.com/hexandcube )
2022-08-19 17:54:20 +00:00
- Ukrainian: Löffel
2022-08-01 15:48:37 +00:00
2022-08-22 14:10:54 +00:00
Other languages may be missing some strings or changes, you can help with updating those!
2022-09-03 15:32:39 +00:00
## How to contribute translations
2022-09-04 10:31:00 +00:00
You can translate cobalt to any language you want on [cobalt's crowdin ](https://crowdin-co.wukko.me/ ). 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.
2022-08-01 15:48:37 +00:00
2022-09-03 15:32:39 +00:00
### Translation guidelines:
- Avoid formal language. Leave it for boring big tech companies. Use informal language on all occasions.
- Strings are **ALWAYS** stylized as lowercase unless it's STRESSED LIKE THIS or is an internal value like `{ContactLink}` .
- Keep translations lively, friendly, and fun. Translate strings as if cobalt user was your buddy.
- Automatic translations from original language are not valid, and will be ignored.
- You can (and should) rephrase sentences as long as they keep the same point, if you think it'd be better that way.
2022-08-01 15:48:37 +00:00
- You can add wordplays or puns if it feels natural to do so.
2022-09-03 15:32:39 +00:00
- Even though I love cursing, keep that to minimum in translations, and do **NOT** use any offensive words.
- Check if there are issues in UI with your localization, and optimize it accordingly, or open an issue.
- Add "(in english)" translated to your language at the end of `ChangelogLastCommit` and `ChangelogLastMajor` . Those are always kept exclusively in English, due to how often changelog changes.
- Example of translation to Russian: `"ChangelogLastCommit": "последний коммит (на английском)"`
2022-08-01 15:48:37 +00:00
- Be nice.
2022-07-13 20:32:00 +00:00
## Host an instance yourself
2022-09-03 15:32:39 +00:00
You might find cobalt's source code a bit messy, but I do my best to improve it with every commit.
2022-07-08 18:17:56 +00:00
### Requirements
2022-07-08 18:18:52 +00:00
- Node.js 14.16 or above
2022-07-08 18:17:56 +00:00
- git
### npm modules
2022-07-13 20:32:00 +00:00
- cors
2022-07-08 18:17:56 +00:00
- dotenv
2022-07-30 12:01:51 +00:00
- esbuild
2022-07-28 16:03:17 +00:00
- express
2022-07-08 18:17:56 +00:00
- express-rate-limit
- ffmpeg-static
2022-07-28 16:03:17 +00:00
- got
2022-07-08 18:17:56 +00:00
- node-cache
2022-07-28 16:03:17 +00:00
- url-pattern
- xml-js
2022-07-08 18:17:56 +00:00
- ytdl-core
2022-08-01 15:48:37 +00:00
Setup script installs all needed `npm` dependencies, but you have to install `Node.js` and `git` yourself.
2022-07-08 18:17:56 +00:00
1. Clone the repo: `git clone https://github.com/wukko/cobalt`
2. Run setup script and follow instructions: `npm run setup`
2022-07-13 20:32:00 +00:00
3. Run cobalt via `npm start`
2022-07-08 18:17:56 +00:00
4. Done.
2022-08-01 15:48:37 +00:00
## Disclaimer
2022-09-03 15:32:39 +00:00
cobalt is my passion project, so new feature release schedule depends solely on my motivation and mood. Don't expect any consistency in that.
2022-08-01 15:48:37 +00:00
2022-07-08 18:17:56 +00:00
## License
2022-08-01 15:48:37 +00:00
cobalt is under [AGPL-3.0 ](https://github.com/wukko/cobalt/blob/current/LICENSE ).
2022-09-03 15:34:43 +00:00
2022-08-16 07:14:19 +00:00
[Fluent Emoji ](https://github.com/microsoft/fluentui-emoji ) by Microsoft is under [MIT ](https://github.com/microsoft/fluentui-emoji/blob/main/LICENSE ).