Skip to content
This repository has been archived by the owner on Oct 19, 2024. It is now read-only.

Commit

Permalink
fast forward local branch
Browse files Browse the repository at this point in the history
  • Loading branch information
khyerdev committed Apr 29, 2024
2 parents 5d09839 + cc6bb51 commit 9bade08
Showing 1 changed file with 85 additions and 23 deletions.
108 changes: 85 additions & 23 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,31 +38,40 @@ Downloading three coding videos at once with 720p resolution each
```
tcb bulk get -q 720 'https://www.youtube.com/watch?v=qclZUQYZTzg' 'https://www.youtube.com/watch?v=wvQCIMjlxHw' 'https://www.youtube.com/watch?v=3T3ZDquDDVg'
```
Full usage help is available with `tcb help`
Full usage help is available with `tcb help`, but can also be seen in the [strings.txt](https://github.com/khyerdev/tcobalt/blob/main/src/args/strings.txt) file

tcobalt also supports `tcb --help`, `tcb -h`, `tcb --version`, and `tcb -v` for people who have not read the help or this page

## Support
As of now, tcobalt only officially supports the x86_64 architecture, but it can theoretically compile and run on others. If tcobalt compiles and runs well on your machine with a different architecture, open up an issue.
<a href="https://repology.org/project/tcobalt/versions"><img src="https://repology.org/badge/vertical-allrepos/tcobalt.svg" alt="Packaging status" align="right"></a>
As of now, tcobalt only officially supports the x86_64 architecture, but it can theoretically compile and run on others. If tcobalt compiles and runs well on your machine with a different architecture, open up an issue

tcobalt has only been packaged for Arch Linux and it's derivatives
The live packaging status can be seen on the right

### Distro Support roadmap
### OS Support roadmap
1. Arch Linux (and its derivatives) (DONE)
2. Debian (and its derivatives)
3. Windows 10/11
2. Windows 10/11 (DONE)
3. Debian (and its derivatives) (work in progress, they make it so hard to do so fjgksaertfgvsyuigfyas)
4. (if i can do this with flatpak) other distros
5. MacOS
5. WinGet
6. MacOS
7. BSD

### Architecture Support Progress
As of now, the PKGBUILD for tcobalt on the AUR only has 'x86_64' in the arch array, but someone I know was able to install it on their aarch64 system right from the AUR
1. x86_64 - YES
2. aarch64 - Compiled
3. i686 - Not Tested
4. pentium4 - Not Tested
2. arm - Not Tested
3. aarch64 - Compiled
4. i686 - Not Tested
5. pentium4 - Not Tested

## Installation
Make sure you have rust version 1.77.0 or higher before installing

### Prebuilt Binary Downloads
| Arch Linux (pkg) | Debian (pkg) | Linux | Windows | MacOS | BSD |
| ---------------- | ------------ | ----- | ------- | ----- | --- |
| [x86_64](https://github.com/khyerdev/tcobalt/releases/download/v1.0.1/tcobalt-1.0.1-1-x86_64.pkg.tar.zst) | [amd64](https://github.com/khyerdev/tcobalt/releases/download/v1.0.1/tcobalt-1.0.1-amd64.deb) | [x86_64](https://github.com/khyerdev/tcobalt/releases/download/v1.0.1/tcobalt-linux-x86_64) | [x86_64](https://github.com/khyerdev/tcobalt/releases/download/v1.0.1/tcobalt-windows-x86_64.exe) | soon | not soon |

### Arch Linux
1. Install `yay` or `paru`:
```sh
Expand All @@ -78,22 +87,69 @@ Make sure you have rust version 1.77.0 or higher before installing
```
paru -S tcobalt
```
This process will also work on arch-based distros. On Manjaro, run `pamac install` instead of `pacman -S`
OR

Get it directly from the AUR without installing an AUR helper:
```
sudo pacman -S base-devel
git clone https://aur.archlinux.org/tcobalt.git
cd tcobalt
makepkg -si
```

OR
1. Download the pkg from the above prebuilt binaries
2. Open a terminal and navigate to the directory containing the donwloaded .pkg.tar.zst file
3. Run the following command (replacing the fields in the angle brackets as necessary)
```
sudo pacman -U tcobalt-<version>-<rel>-<arch>.pkg.tar.zst
```

The PKGBUILD declares that this only supports x86_64, but since it builds from source, yay/paru will allow you to install tcobalt on any architecture

This process will also work on arch-based distros

### Other / unsupported
More support will come later. If you are on an unsupported operating system, do this:
### Debian/Ubuntu
I will soon upload this to a ppa to make this process a bit easier
1. Download the pkg from the above prebuilt binaries
2. Open a terminal and navigate to the directory containing the downloaded .deb file
3. Run the following command (replacing the fields in the angle brackets as necessary)
```
sudo dpkg -i tcobalt-<version>-<arch>.deb
```

### Windows 10/11
Download the .exe from the above prebuilt binaries, put it into any `%PATH%` folder, and rename it to `tcb`

I will figure out how to add tcobalt to winget-pkgs sometime in the future

### Other Linux
You can try downloading the x86_64 linux binary from the above prebuilt binaries, putting it into `/usr/bin`, and renaming it to `tcb`

### Unsupported OSes
More support will come later. If you are on an unsupported operating system or architecture, or downloading a prebuilt binary didnt work, do this:
1. Clone the repository
```
git clone https://github.com/khyerdev/tcobalt.git
cd tcobalt
```
2. Compile with `cargo` (make sure rust is installed and the default rust toolchain is also installed)
```
cargo build --release
```
3. Copy the `target/release/tcobalt` binary to a directory included in your `$PATH` (`%PATH%` on Windows)
4. Create a symbolic link named `tcb` in the same directory you put `tcobalt` that points to that `tcobalt` binary
On windows, you would create a batch file in a `%PATH%` folder named `tcb.bat` that would just run the `tcobalt.exe` binary, or just completely rename the binary to `tcb.exe`
2. Compile (make sure rust is installed and the default rust toolchain is also installed)
* On Linux:
```
make
```
* On Windows/MacOS:
```
cargo build --release
```
3. Install tcobalt
* On Linux:
```
sudo make install
```
* On Windows/MacOS:
Copy the tcobalt binary from `target/release` into a folder that has your PATH and rename it to `tcb` with the file extension corresponding to your OS (`.exe` on windows)
## Dependencies
tcobalt is designed to use as little dependencies as possible. Here are the ones it uses:
Expand All @@ -102,9 +158,15 @@ The [tokio](https://crates.io/crates/tokio) runtime, for easily handling asynchr
[futures](https://crates.io/crates/futures), for easily parralelizing bulk downloads
[reqwest](https://crates.io/crates/reqwest), for making web requests with HTTPS. Requires tokio to work.
[reqwest](https://crates.io/crates/reqwest), for making web requests with HTTPS. Requires tokio to work
I have reinvented the wheel for things that are possible for me to do without dependencies, like parsing json
I have reinvented the wheel for things that are possible for me to do without dependencies, like parsing json.
## Other Projects
tcobalt is not original, and a few other projects have the same concept implemented in other languages. Check them out, see if you prefer them over this one.
* [lostdusty/cobalt](https://github.com/lostdusty/cobalt): Cobalt CLI written in golang
* [lostdusty/gobalt](https://github.com/lostdusty/gobalt): Golang library for the Cobalt API
* [tskau/tobalt](https://github.com/tskau/tobalt): Typescript library for the Cobalt API
## License
This project is licensed under the [GNU GPL v3](https://www.gnu.org/licenses/gpl-3.0.en.html), meaning you are allowed to freely use, modify, and distribute this project as long as you keep it as free and open-source as this project is, and as long as you include the same lisence and indicate your changes. More information about this license is [here (fossa.com)](https://fossa.com/blog/open-source-software-licenses-101-gpl-v3/) and [here (gnu.org)](https://www.gnu.org/licenses/quick-guide-gplv3.html).
Expand Down

0 comments on commit 9bade08

Please sign in to comment.