2022-07-08 19:17:56 +01:00
# cobalt
2022-08-06 16:21:48 +01:00
Best way to save content you love.
2022-08-01 16:48:37 +01:00
2022-08-06 16:21:48 +01:00
[co.wukko.me ](https://co.wukko.me/ )
2022-07-08 19:17:56 +01:00
2022-07-30 10:12:32 +01:00
![cobalt logo ](https://raw.githubusercontent.com/wukko/cobalt/current/src/front/icons/wide.png "cobalt logo" )
2022-07-08 19:17:56 +01:00
2022-08-01 16:48:37 +01:00
## What's cobalt?
2022-08-06 16:21:48 +01:00
cobalt is social media downloader with zero bullshit. It's efficient, easy to use, and doesn't bother you with ads or privacy invasion "consent" popups.
It preserves original media quality so you get best downloads possible (unless you change that in settings).
2022-07-08 19:17:56 +01:00
2022-08-01 16:48:37 +01:00
## Supported services
2022-07-08 19:17:56 +01:00
- bilibili.com
2022-08-16 11:31:41 +01:00
- douyin (with or without watermark, preference set by user)
2022-07-08 19:17:56 +01:00
- Reddit
2022-08-16 11:31:41 +01:00
- TikTok (with or without watermark, preference set by user)
2022-08-01 18:53:44 +01:00
- Tumblr
2022-08-01 16:48:37 +01:00
- Twitter
2022-08-13 12:14:09 +01:00
- Vimeo
2022-07-08 19:17:56 +01:00
- VK
2022-08-16 12:20:22 +01:00
- YouTube (with HDR support)
2022-08-01 16:48:37 +01:00
- YouTube Music
## Translations
2022-08-19 18:54:20 +01: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 19:17:51 +01:00
- Polish: [@hexandcube ](https://github.com/hexandcube )
2022-08-19 18:54:20 +01:00
- Ukrainian: Löffel
2022-08-01 16:48:37 +01:00
2022-08-22 15:10:54 +01:00
## Languages that are always up to date
- English
- Russian
- Ukrainian
Other languages may be missing some strings or changes, you can help with updating those!
2022-08-01 16:48:37 +01:00
## How you can help cobalt speak your language
Take English or Russian localization from [this directory ](https://github.com/wukko/cobalt/tree/current/src/localization/languages ) and use it as a base for your translation. Then simply make a pull request and it'll be out for everyone upon review!
### What you should keep in mind:
- Do **NOT** use formal language, that's boring and lame. Use informal language on all occasions.
- Strings are **ALWAYS** lowercase unless it's an internal value like {ContactLink} or STRESSED LIKE THIS.
2022-08-19 18:54:20 +01:00
- Keep translations as friendly and fun as possible. Just as if cobalt user was your buddy.
- Robotic translations from original language are not valid.
- You can (and should) rephrase sentences as long as they keep the same sense, if you think it'd be better that way.
2022-08-01 16:48:37 +01:00
- You can add wordplays or puns if it feels natural to do so.
2022-08-19 18:54:20 +01:00
- Even though I love cursing, keep that to minimum in translations, and do **NOT** use offensive words.
2022-08-12 14:36:19 +01:00
- Always check if there are issues in UI with your localization.
2022-08-13 12:14:09 +01:00
- There's no need to translate `ChangelogContentTitle` and `ChangelogContent` , because those are very often changed. You can remove both of them from your translation file.
2022-08-19 18:54:20 +01:00
- Add "(in english)" translated to your language at the end of `ChangelogLastCommit` and `ChangelogLastMajor` . Those are almost always kept exclusively in English. Remove that phrase if you do translate major update changelog.
- Example: `"ChangelogLastCommit": "последний коммит (на английском)"`
2022-08-01 16:48:37 +01:00
- Be nice.
2022-07-28 17:03:17 +01:00
## TO-DO
2022-08-01 16:48:37 +01:00
### Services
2022-07-30 10:11:25 +01:00
- [ ] niconico support
2022-07-28 17:03:17 +01:00
- [ ] Instagram support
2022-08-01 18:53:44 +01:00
- [ ] SoundCloud support
2022-08-01 16:48:37 +01:00
- [ ] Quality switching for bilibili
2022-08-16 11:31:41 +01:00
- [x] Find a way to get TikTok videos without a watermark
- [x] Add an option to keep watermark on TikTok videos
2022-08-01 16:48:37 +01:00
### Other
2022-08-16 08:14:19 +01:00
- [ ] Remake video quality picking
2022-08-12 14:36:19 +01:00
- [ ] Add support for emoji in localization
2022-07-17 13:58:51 +01:00
- [ ] Language picker in settings
2022-08-01 16:48:37 +01:00
- [ ] Make cobalt fully PWA compatible (add a service worker)
2022-07-08 19:17:56 +01:00
2022-07-13 21:32:00 +01:00
## Host an instance yourself
2022-07-28 17:03:17 +01:00
Code might be a little messy, but I do my best to improve it with every commit.
2022-07-08 19:17:56 +01:00
### Requirements
2022-07-08 19:18:52 +01:00
- Node.js 14.16 or above
2022-07-08 19:17:56 +01:00
- git
### npm modules
2022-07-13 21:32:00 +01:00
- cors
2022-07-08 19:17:56 +01:00
- dotenv
2022-07-30 13:01:51 +01:00
- esbuild
2022-07-28 17:03:17 +01:00
- express
2022-07-08 19:17:56 +01:00
- express-rate-limit
- ffmpeg-static
2022-07-28 17:03:17 +01:00
- got
2022-07-08 19:17:56 +01:00
- node-cache
2022-07-28 17:03:17 +01:00
- url-pattern
- xml-js
2022-07-08 19:17:56 +01:00
- ytdl-core
2022-08-01 16:48:37 +01:00
Setup script installs all needed `npm` dependencies, but you have to install `Node.js` and `git` yourself.
2022-07-08 19:17:56 +01: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 21:32:00 +01:00
3. Run cobalt via `npm start`
2022-07-08 19:17:56 +01:00
4. Done.
2022-08-01 16:48:37 +01:00
## Disclaimer
This is my passion project, so update scheduele depends solely on my motivation. Don't expect any consistency in that.
2022-07-08 19:17:56 +01:00
## License
2022-08-01 16:48:37 +01:00
cobalt is under [AGPL-3.0 ](https://github.com/wukko/cobalt/blob/current/LICENSE ).
2022-08-16 08:14:19 +01:00
[Fluent Emoji ](https://github.com/microsoft/fluentui-emoji ) by Microsoft is under [MIT ](https://github.com/microsoft/fluentui-emoji/blob/main/LICENSE ).