Probably the friendliest social media downloader.

Overview

cobalt

Sleek and easy to use social media downloader built on JavaScript. Try it out live: co.wukko.me!

cobalt logo

What is cobalt?

Everyone is annoyed by the mess video downloaders are on the web, and 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.

cobalt doesn't remux any videos, so you get videos of max quality available (unless you change that in settings).

What's supported?

  • Twitter
  • YouTube and YouTube Music
  • bilibili.com
  • Reddit
  • VK

What still has to be done

  • Quality switching for bilibili and Twitter
  • Language picker in settings
  • Clean up the mess that localisation is right now
    • Sort contents of .json files
    • Rename each entry key to be less linked to specific service (entries like youtubeBroke are awful, I'm sorry)
  • Add support for more languages when localisation clean up is done
  • Use esmbuild to minify frontend css and js
  • Make switch buttons in settings selectable with keyboard
  • Do something about changelog because the way it is right now is not really great
  • Remake page rendering module to be more versatile
  • Matching could be redone, I'll see what I can do
  • Facebook and Instagram support
  • TikTok support (?)
  • Support for bilibili.tv (?)

Disclaimer

This is my passion project, so update scheduele depends on my motivation. Don't expect any consistency in that.

Host an instance yourself

Code might be a little messy, but I promise to improve it over time.

Requirements

  • Node.js 14.16 or above
  • git

npm modules

  • express
  • cors
  • got
  • url-pattern
  • xml-js
  • dotenv
  • express-rate-limit
  • ffmpeg-static
  • node-cache
  • ytdl-core

Setup script installs all needed npm dependencies, but you have to install Node.js and git yourself, if you don't have those already.

  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.

License

cobalt is under GPL-3.0 license, please keep that in mind.

Comments
  • Audios downloaded displaying unusually long lengths in Music (MacOS)

    Audios downloaded displaying unusually long lengths in Music (MacOS)

    Whenever I download just the audio from a YouTube/Soundcloud link, Music app displays song as being 6+ hours long image image

    Consistently 6:12:49, displays as normal length in audio data

    opened by xxDementia 17
  • Tiktok workflow is broken

    Tiktok workflow is broken

    Tested it locally on latest version, and also manually tested script part for tiktok. Looks like it gives an error on step when you're trying to get html body of post page, before searching of file src.

    Also I've found something strange in response

    rejectUnauthorized: true,
    session: undefined,
    

    Maybe now we need to login before trying to find source link. Any ideas?

    opened by Port2all 10
  • Youtube MP4 encoding seems broken, at least on iOS/macOS

    Youtube MP4 encoding seems broken, at least on iOS/macOS

    MP4's that I download from Youtube won't play in QuickTime and can't be saved to the Photos app. VLC can play it so it's not completely broken, but there's something up with the encoding that's causing issues.

    opened by videah 5
  • YouTube mp4 videos are impossible to play properly on less advanced players

    YouTube mp4 videos are impossible to play properly on less advanced players

    i downloaded a youtube video and tried to trim it using the windows video trimmer, it wouldnt let me trim it. also this happened image (i dowloaded it as a max-quality mp4) if i tried to import it into any other video editor it shows an error

    when i try to view the file's properties it shows a null length, and 0kbps audio??? im not exactly an ffmpeg master so i dont exactly know what causes this image

    also the file opens normally when viewing it image

    invalid 
    opened by SirAxolot 5
  • CORS restricts API access

    CORS restricts API access

    I'm not sure if this is intentional or not, but trying to access an API endpoint at co.wukko.me via JavaScript (in this case, within a Firefox extension) will throw a CORS error, probably due to the header access-control-allow-origin: https://co.wukko.me/. I'm not sure, but I'd assume this is not intended behavior for an open API. Screen Shot 2022-11-17 at 9 47 01 AM

    opened by kotobdev 4
  • I'm not able to download anything

    I'm not able to download anything

    Hello,

    I tried going to https://co.wukko.me/ and I pasted the link https://www.youtube.com/watch?v=OvhVLmD0DfQ with auto mode on and I got the error saying that I have sent too many requests. However, the issue is that I haven't even used the site yet. I have visited the site before to check it out and see how it worked but never used it to download anything. And no, I didn't spam the button, I pressed it once.

    Hope this issue is resolved soon, this site looks promising!

    opened by tygerxqt 4
  • Fix & Upgrade setup.js

    Fix & Upgrade setup.js

    Corrected many inaccuracies to get rid of double interpretation of some parts of this code. The problem related to wrong connection was also solved. When trying to load a file, the initiator bounces to an address with no port or no port specified at all. Trying to connect with Only HTTPS Mode enabled resets the connection. What about localhost and 127.0.0.1 are not exactly the same thing and you need to fix the internals of the initiator code to resolve this discrepancy. The initial setup script has fixed and made some improvements that are more user-friendly.

    opened by xavetar 4
  • Setup script is confusing

    Setup script is confusing

    Current and Crowdin (3.5.2). Test on YouTube and VK (audio, video):

    cobalt

    Trying to download from YouTube resulted in a warning:

    cobalt

    After trying to update: "npm install npm@latest -g". There is no result, no matter what the order. Problem with code or with npm 8.19.2/node 18.9.0, maybe this version does not work correctly with this code.

    Your service on co.wukko.me is now work. And yes turn that shit off: https://github.com/wukko/cobalt/blob/current/src/modules/sub/currentCommit.js

    opened by xavetar 4
  • Support for tiktok's /t/ URLs.

    Support for tiktok's /t/ URLs.

    When sharing from TikTok via the app, some URLs show up as:

    https://www.tiktok.com/t/:ID/?k=1, similar to vm.tiktok.com/:ID urls, cobalt doesn't recognize the first style of links. This should fix that, I think.

    Edit: I've tested this with multiple videos, it works.

    opened by 37501992512 4
  • downloading from twitter is not working

    downloading from twitter is not working

    when i trying to downloading video from any tweets, it just says "an error occurred when i tried to get info about your link." i guess time to check twitter parser lol

    video proof: https://files.catbox.moe/7zln7c.mp4

    opened by msowho 3
  • Twitter links return 400

    Twitter links return 400

    image

    Test both on my own instance (running https://github.com/wukko/cobalt/commit/af1fc24b4d81ff6c6c1f4c600a3ce82539fa6ae7) and on https://co.wukko.me.

    Tested with this link: (and many other random videos) https://twitter.com/FreelanceMocha/status/1576304807794552833, returns 400.

    https://co.wukko.me/api/json?audioFormat=best&quality=max&url=https%3A%2F%2Ftwitter.com%2FFreelanceMocha%2Fstatus%2F1576304807794552833
    
    https://co.hyper.lol/api/json?audioFormat=best&quality=max&url=https%3A%2F%2Ftwitter.com%2FFreelanceMocha%2Fstatus%2F1576304807794552833
    

    image

    opened by hyperdefined 3
  • .ogg audio downloaded from Twitter videos can be actually videos

    .ogg audio downloaded from Twitter videos can be actually videos

    I don't know how this was fixed before my bug report, but yeah...

    image

    This looks like FFmpeg misconfiguration and it does Thoera codec video with default settings.

    opened by lurkook 2
  • Support for Twitch Clips/Videos

    Support for Twitch Clips/Videos

    Support for Twitch Clips and Videos would be amazing.

    Clip URL Format: https://www.twitch.tv/tpain/clip/TenderSuspiciousPotatoRaccAttack-L3MAL-BTve06zRqW Video/Stream URL Format: https://www.twitch.tv/videos/1681039790

    Thanks for an amazing tool!

    opened by PulsarFTW 0
  • Possible memory leak issue (could be related to my nginx config and not cobalt)

    Possible memory leak issue (could be related to my nginx config and not cobalt)

    no idea if this is caused by cobalt itself or my nginx configuration, but after a few days way more ram is used by the server that cobalt is hosted on. i'll have a look into this issue in a few days (if ram usage ramps up again). if you host your own instance, you can help by checking if this issue applies to you too.

    image

    bug help wanted 
    opened by wukko 1
  • YouTube drops packets near the end of audio during live render

    YouTube drops packets near the end of audio during live render

    the only possible reason could be downloading speed. can't think of anything else. dunno if it's possible for ffmpeg to pre-fetch one of inputs before merging them together, but this would be THE perfect solution.

    of course, cobalt could simply cache the audio before live rendering the video, but that would lead to even more issues.

    bug help wanted 
    opened by wukko 0
  • NicoNico support

    NicoNico support

    This will be useful because other downloaders are hard to find and it might just not work.

    Some research

    NicoNico video pages has authorization data for guest user in HTML attribute with id="js-initial-watch-data".

    Front-end web sends to POST request to https://api.dmc.nico/api/sessions?_format=json (The DMC service; Modern delivery system) with JSON body of some data from authorization data.

    The DMC service will respond with authorized URL to the master M3U8. And yes, NicoNico uses HLS VOD...

    Preview URLs

    • https://www.nicovideo.jp/watch/sm13876659
      • Can be without WWW in start of the hostname
    • https://sp.nicovideo.jp/watch/sm6287843
      • Poster mode
    feature request 
    opened by lurkook 0
Telegram BOT For TikTok/Douyin downloader (TikTok video downloader without watermark)

TikDo Telegram BOT This is BOT Telegram downloader TikTok/Douyin. Download videos without watermark by pasting share link in send message. How to depl

0xC0FFEE 7 Dec 1, 2022
Sharerbox - Free, minimalist and lightweight JavaScript-based social-media sharer for websites

Sharerbox Free minimalist and lightweight JavaScript-based social-media sharer for websites. Version: 0.8.1 Description SharerBox is a free, minimalis

Juan Astudillo 3 Aug 22, 2022
A collection of social media strategies for remix-auth

Remix Auth Socials A collection of Remix Auth strategies for Oauth2 Social logins. ?? If you are interested in creating one of the planned strategies,

Tom Rowe 80 Jan 5, 2023
Lets you add a character to Hacker News links to add social media and OpenGraph previews for sharing on things like Slack or Twitter.

news.ycombinator1.com Lets you add a character to Hacker News links to add social media and OpenGraph previews for sharing on things like Slack or Dis

Ian Langworth ☠ 38 Sep 18, 2022
A health-focused app for users to be able to track workouts and nutritional data with a social media component to inspire friendly competition among the users.

A health-focused app for users to be able to track workouts and nutritional data with a social media component to inspire friendly competition among the users.

Jon Jackson 3 Aug 26, 2022
Chrome extension for replacing addictive and annoying features of various social media sites with inspirational quotes.

Saner Social Media Chrome extension for replacing addictive and annoying features of various social media sites with inspirational quotes. Saner Socia

Tobi Dalhof 9 Oct 4, 2022
Social media platform that hosts community-driven challenges where everyone can play and compete

Komo A social media platform that hosts community-driven challenges where everyone can play and compete. How To Install Komo TBA Preview Home Screen A

null 2 Jun 13, 2022
Updog is an open-source social media webapp intended to allow everyday people to share their thoughts in a welcoming community.

SE701-Updog Updog is an open-source social media webapp intended to allow everyday people to share their thoughts in a welcoming community. This proje

SE 701 Team 2 UoA 14 Apr 18, 2022
Software for the next generation of social media. https://gitlab.com/soapbox-pub/soapbox-fe

Soapbox FE Soapbox FE is a frontend for Mastodon and Pleroma with a focus on custom branding and ease of use. It's part of the Soapbox project. Try it

Soapbox 52 Dec 30, 2022
Lenster is a decentralized, and permissionless social media app built with Lens Protocol 🌿

Lenster Decentralized, and permissionless social media app ?? lenster.xyz » Discord • Issues ?? About Lenster Lenster is a decentralized, and permissi

Lenster 11.8k Jan 7, 2023
A social-media mock app for the ones who love to read - and maybe show it off

?? ?? Cachalote ?? ?? Share what you are reading and find people who also likes it - or not! What does it do? This app focuses on three main questions

Thaís França 3 May 22, 2022
A full fledged social media app for foodies :)

Foodzo Site is deployed on netlify : https://fooodzo.netlify.app/ and Server is deployed on heroku. This website is basically a social media for all t

Raunak Agarwal 12 Oct 1, 2022
A Lambda-Powered Social Media Tracker

A Lambda-Powered Social Media Dashboard Angular: the frontend application (=> ./app) Terraform: to create our infrastructure (=> ./infra) Precondition

Tobias Schmidt 14 May 14, 2022
A new social media site for Pokemon lovers, where you can connect with other Pokemon lovers and share messages.

PokeBook Description A new social media site for Pokemon lovers, where you can connect with other Pokemon lovers and share messages. Tools and Languag

Chris Burton 2 Jun 18, 2022
An app for spinning up social media micro-platforms.

Note: This project is super early. It's not in a usable state at this point. Though I'm working on this full-time, and it's moving ahead at a fast pac

Paul Go 10 Oct 21, 2022
This is a Google Chrome Extension which blocks social media sites.

Social Media Blocks (1.0.3) This is a Google Chrome Extension which blocks social media sites like Twitter: Facebook, Instagram, LinkedIn, WhatsApp, R

Helitha Rupasinghe 20 Dec 15, 2022
Easy Social Media Login Authentication integrator

AuthJs Easy Social Media Login Authentication integrator CDN authjs.min.js https://cdn.jsdelivr.net/npm/@rohit-chouhan/authjs/authjs.min.js authjs.js

Rohit Chouhan 4 Jan 30, 2022
Decentralized video-sharing social media platform, built using Lens protocol. 🌿

Lenstube Decentralized video-sharing social media platform. lenstube.xyz About Lenstube is a decentralized video-sharing social media platform, built

Lenstube 2.4k Jan 1, 2023