Skip to content

Unofficial cobalt command line client made in go.

License

Notifications You must be signed in to change notification settings

lostdusty/cobalt

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

cobalt-cli

GitHub Release Static Badge Static Badge GitHub License

Unofficial cobalt command line client made in go. cobalt-cli uses gobalt library for communication between your machine <-> cobalt servers.

Features

  • Get directly link from the service cdn (if possible);
  • More than 15 services supported;
  • Option to check status of cobalt servers;
  • Use custom cobalt instances (see https://instances.hyper.lol);
  • Download the file directly to your computer.

Download

Platform/OS Download link
Windows x64 / x86 / arm
Linux x64 / x86 / arm64
Mac Intel / M1, M2, M3

You can also check the releases page to download the latest version according to your platform.

Alternatively, if you have Go installed, you can use go install github.com/lostdusty/cobalt@latest to install to your machine.

Roadmap

Planned features for cobalt-cli:

  • Option to save file to the current/custom folder, likely -s flag;
    • Display progress bar to track download progress (when supported by cobalt).
    • Hability to use custom downloader program (wget, curl, got, etc);
  • Translations.
  • Benchmarking.

Usage

cobalt-cli is similar to yt-dlp, just use cobalt [url]. If you use cobalt help, it will just show the help message.

By default cobalt-cli saves the request link to the current directory, use the -s flag to change to another directory, like: cobalt https://www.youtube.com/watch?v=n1a7o44WxNo -s ..\Videos

Help

usage: cobalt-cli [-h|--help] [url "<value>"] [-c|--video-codec (av1|vp9|h264)]
                  [-q|--video-quality (144|240|360|480|720|1080|1440|2160)]
                  [-f|--audio-format (opus|ogg|wav|mp3|best)]
                  [-Q|--audio-quality (64|128|192|256|320)]
                  [-p|--filename-pattern (basic|pretty|nerdy|classic)]
                  [-m|--mode (auto|audio|mute)] [-x|--proxy]
                  [-d|--disable-metadata] [-t|--tiktok-h265]
                  [-T|--tiktok-full-audio] [-g|--gif] [-s|--save "<value>"]
                  [-a|--api "<value>"] [-i|--instances] [-v|--verbose]
                  [-k|--key "<value>"] [-b|--benchmark] [-P|--print]

                  save what you want, directly from the terminal, no unwanted
                  distractions involved. powered by cobalt's api

Arguments:

  -h  --help               Print help information
      <url>                url to save
  -c  --video-codec        Video codec to be used. Applies only to youtube
                           downloads. AV1: 8K/HDR, lower support | VP9: 4K/HDR,
                           best quality | H264: 1080p, works everywhere.
                           Default: h264
  -q  --video-quality      Quality of the video, applies only to youtube
                           downloads. Default: 1080
  -f  --audio-format       Audio format/codec to be used. "best" doesn't
                           re-encodes audio. Default: best
  -Q  --audio-quality      Audio quality in kbps. Default: 320
  -p  --filename-pattern   File name pattern. Classic:
                           youtube_yPYZpwSpKmA_1920x1080_h264.mp4 | audio:
                           youtube_yPYZpwSpKmA_audio.mp3 // Basic: Video Title
                           (1080p, h264).mp4 | audio: Audio Title - Audio
                           Author.mp3 // Pretty: Video Title (1080p, h264,
                           youtube).mp4 | audio: Audio Title - Audio Author
                           (soundcloud).mp3 // Nerdy: Video Title (1080p, h264,
                           youtube, yPYZpwSpKmA).mp4 | audio: Audio Title -
                           Audio Author (soundcloud, 1242868615).mp3. Default:
                           pretty
  -m  --mode               Mode to download the video. Auto: video with audio |
                           Audio: only audio | Mute: video without audio.
                           Default: auto
  -x  --proxy              Tunnel the download through cobalt's servers,
                           bypassing potential restrictions and protecting your
                           identity and privacy. Default: false
  -d  --disable-metadata   Disable metadata in the downloaded file. Default:
                           false
  -t  --tiktok-h265        Use H265 codec for TikTok downloads. Default: false
  -T  --tiktok-full-audio  Download TikTok videos with the original sound used
                           in a TikTok video. Default: false
  -g  --gif                Convert Twitter videos to GIFs. Default: false
  -s  --save               What folder to save the file to. If not provided,
                           will use the current directory. Default:
                           D:\Docs\GitHub\cobalt
  -a  --api                Which API to use. Default is hyperdefined cobalt's
                           API. If you are hosting a custom API, or want to use
                           a different server, you can use it here. Default:
                           https://cobalt-backend.canine.tools
  -i  --instances          Show community instances and exit. Default: false
  -v  --verbose            Enable verbose logging. Default: false
  -k  --key                API key by the instance owner. You may need to
                           provide one to use download. Can be set with
                           COBALT_API_KEY environment variable. If not
                           provided, will load from keychain. Default:
  -b  --benchmark          Run a benchmark to test the download speed and
                           integrity. Default: false
  -P  --print              Print the download link only, do not download the
                           file. Default: false

Instances

The command changed, now to view other instances, use cobalt -i

Compiling

Make sure you have the lastest go compiler. Download it here.

Easy as:

  1. Clone this repository.
  2. On the root of this repository, run go mod tidy. This will download this project dependencies.
  3. To run the application, use go run .. To compile, run go build.

To add additional Windows metadata, you'll need:

  • go-winres, follow the install instructions there

Then run go-winres make on the root of this repository, it will create two .syso files.

After that, building with go build will automatically embed these files on the Windows executable.

Other projects

Check out too:

About & Thanks

  • cobalt made by wukko && jj, cool people;
  • argparse, for handling args;
  • Icon made by me;
  • You, for using my application!