Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/wraient/curd

Watch anime in cli with Anilist Integration and Discord RPC
https://github.com/wraient/curd

anilist anilist-api anime anime-scraper cli discord filler golang intro outro recap skip stream

Last synced: about 1 month ago
JSON representation

Watch anime in cli with Anilist Integration and Discord RPC

Awesome Lists containing this project

README

        

# Curd

A cli application to stream anime with [Anilist](https://anilist.co/) integration and Discord RPC written in golang.
Works on Windows and Linux

## Join the discord server

https://discord.gg/cNaNVEE3B6

## Demo Video
Normal mode:

https://github.com/user-attachments/assets/376e7580-b1af-40ee-82c3-154191f75b79

Rofi with Image preview

https://github.com/user-attachments/assets/cbf799bc-9fdd-4402-ab61-b4e31f1e264d

## Features
- Stream anime online
- Update anime in Anilist after completion
- Skip anime Intro and Outro
- Skip Filler and Recap episodes
- Discord RPC about the anime
- Rofi support
- Image preview in rofi
- Local anime history to continue from where you left off last time
- Save mpv speed for next episode
- Configurable through config file

## Installing and Setup
> **Note**: `Curd` requires `mpv`, `rofi`, and `ueberzugpp` for Rofi support and image preview. These are included in the installation instructions below for each distribution.

### Linux

Arch Linux / Manjaro (AUR-based systems)

Using Yay:

```bash
yay -Sy curd
```

or using Paru:

```bash
paru -Sy curd
```

Or, to manually clone and install:

```bash
git clone https://aur.archlinux.org/curd.git
cd curd
makepkg -si
sudo pacman -S rofi ueberzugpp
```

Debian / Ubuntu (and derivatives)

```bash
sudo apt update
sudo apt install mpv curl rofi ueberzugpp
curl -Lo curd https://github.com/Wraient/curd/releases/latest/download/curd
chmod +x curd
sudo mv curd /usr/local/bin/
curd
```

Fedora Installation

```bash
sudo dnf update
sudo dnf install mpv curl rofi ueberzugpp
curl -Lo curd https://github.com/Wraient/curd/releases/latest/download/curd
chmod +x curd
sudo mv curd /usr/local/bin/
curd
```

openSUSE Installation

```bash
sudo zypper refresh
sudo zypper install mpv curl rofi ueberzugpp
curl -Lo curd https://github.com/Wraient/curd/releases/latest/download/curd
chmod +x curd
sudo mv curd /usr/local/bin/
curd
```

Generic Installation

```bash
# Install mpv, curl, rofi, and ueberzugpp (required for image preview)
curl -Lo curd https://github.com/Wraient/curd/releases/latest/download/curd
chmod +x curd
sudo mv curd /usr/local/bin/
curd
```

Uninstallation

```bash
sudo rm /usr/local/bin/curd
```

For AUR-based distributions:

```bash
yay -R curd
```

### [Windows Installer](https://github.com/Wraient/curd/releases/latest/download/CurdInstaller.exe)

## Usage

Run `curd` with the following options:

```bash
curd [options]
```

### Options

> **Note**:
> - To use rofi you need rofi and ueberzug installed.
> - Rofi .rasi files are at default `~/.local/share/curd/`
> - You can edit them as you like.
> - If there are no rasi files with specific names, they would be downloaded from this repo.

| Flag | Description | Default |
|---------------------------|-------------------------------------------------------------------------|---------------|
| `-c` | Continue the last episode | - |
| `-change-token` | Change your authentication token | - |
| `-dub` | Watch the dubbed version of the anime | - |
| `-sub` | Watch the subbed version of the anime | - |
| `-new` | Add a new anime to your list | - |
| `-e` | Edit the configuration file | - |
| `-skip-op` | Automatically skip the opening section of each episode | `true` |
| `-skip-ed` | Automatically skip the ending section of each episode | `true` |
| `-skip-filler` | Automatically skip filler episodes | `true` |
| `-skip-recap` | Automatically skip recap sections | `true` |
| `-discord-presence` | Enable or disable Discord presence | `true` |
| `-image-preview` | Show an image preview of the anime | - |
| `-no-image-preview` | Disable image preview | - |
| `-next-episode-prompt` | Prompt for the next episode after completing one | - |
| `-rofi` | Open anime selection in the rofi interface | - |
| `-no-rofi` | Disable rofi interface | - |
| `-percentage-to-mark-complete` | Set the percentage watched to mark an episode as complete | `85` |
| `-player` | Specify the player to use for playback | `"mpv"` |
| `-save-mpv-speed` | Save the current MPV speed setting for future sessions | `true` |
| `-score-on-completion` | Prompt to score the episode on completion | `true` |
| `-storage-path` | Path to the storage directory | `"$HOME/.local/share/curd"` |
| `-subs-lang` | Set the language for subtitles | `"english"` |
| `-u` | Update the script | - |

### Examples

- **Continue the Last Episode**:
```bash
curd -c
```

- **Add a New Anime**:
```bash
curd -new
```

- **Play with Rofi and Image Preview**:
```bash
curd -rofi -image-preview
```

## Configuration

All configurations are stored in a file you can edit with the `-e` option.

```bash
curd -e
```

Script is made in a way that you use it for one session of watching.

You can quit it anytime and the resume time would be saved in the history file

more settings can be found at config file.
config file is located at ```~/.config/curd/curd.conf```

## Dependencies
- mpv - Video player (vlc support might be added later)
- rofi - Selection menu
- ueberzug - Display images in rofi

## API Used
- [Anilist API](https://anilist.gitbook.io/anilist-apiv2-docs) - Update user data and download user data
- [AniSkip API](https://api.aniskip.com/api-docs) - Get anime intro and outro timings
- [AllAnime Content](https://allanime.to/) - Fetch anime url
- [Jikan](https://jikan.moe/) - Get filler episode number

## Credits
- [ani-cli](https://github.com/pystardust/ani-cli) - Code for fetching anime url
- [jerry](https://github.com/justchokingaround/jerry) - For the inspiration