2022-07-08 19:17:56 +01:00
# cobalt
2022-08-01 16:48:37 +01:00
Sleek and easy to use social media downloader built with JavaScript.
Try it now: [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?
cobalt aims to be the ultimate social media downloader, that is efficient, pretty, and doesn't bother you with ads or privacy invasion agreement popups. It also doesn't remux anything, so you get media in best quality 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
2022-08-01 16:48:37 +01:00
### Video
2022-07-08 19:17:56 +01:00
- bilibili.com
2022-08-01 16:48:37 +01:00
- douyin
2022-07-08 19:17:56 +01:00
- Reddit
2022-08-01 16:48:37 +01:00
- TikTok
2022-08-01 18:53:44 +01:00
- Tumblr
2022-08-01 16:48:37 +01:00
- Twitter
- YouTube
- YouTube Music
2022-07-08 19:17:56 +01:00
- VK
2022-08-01 16:48:37 +01:00
### Audio
- YouTube
- YouTube Music
## Translations
- Spanish: [@adrigoomy ](https://github.com/adrigoomy )
- French: [@lexito-o ](https://github.com/lexito-o )
- Indonesian: [@LyfeV ](https://github.com/LyfeV )
## 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.
- Keep translations as friendly and fun as possible.
- Word-for-word translations from original language are not valid.
- You can rephrase sentences as long as they keep the same sense.
- You can add wordplays or puns if it feels natural to do so.
- Even though I love cursing, keep that away from translations.
- Be nice.
2022-07-28 17:03:17 +01:00
## TO-DO
2022-08-01 16:48:37 +01:00
### Services
2022-08-01 18:53:44 +01:00
- [x] Tumblr support
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
- [ ] Add an option to save Twitter GIFs as `.gif` instead of `.mp4`
- [ ] Quality switching for bilibili
### Other
2022-07-17 13:58:51 +01:00
- [ ] Language picker in settings
2022-07-08 19:17:56 +01:00
- [ ] Make switch buttons in settings selectable with keyboard
2022-08-01 18:53:44 +01:00
- [ ] Option to save audios in formats other than original
2022-08-01 16:48:37 +01:00
- [ ] Make cobalt fully PWA compatible (add a service worker)
- [ ] Make page rendering module more versatile
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 ).