Skip to main content

Terminal-based anime discovery and streaming tool

Project description

Kuro Anime

Terminal-based anime discovery and streaming tool. Search anime, browse airing shows, view details, download episodes, and stream them — all from your terminal.

PyPI version Python version License

Features

  • Search — Find any anime by title; persistent short codes for instant lookups
  • Currently Airing — Browse the latest releases with pagination
  • Detailed Info — Synopsis, genres, relations, recommendations, metadata
  • Episode Listings — Browse episodes with pagination and sort order
  • Streaming — Interactive episode/quality picker → mpv
  • Download — Extract video URLs or batch-download episodes

Installation

Requires Python 3.10+, mpv (for kuro watch), and ffmpeg (for kuro download).

pip install kuro-anime

To install from source:

git clone https://github.com/awtawsif/kuro_anime.git
cd kuro_anime
pip install .

Quick Start

# Search for an anime (generates short codes)
kuro search "One Piece"

# View details using a short code
kuro detail onpi

# Browse episodes and watch
kuro watch onpi

# See what's currently airing
kuro airing --page 1

Commands

kuro search <query>

Search anime by title. Displays results with short codes and saves them to state.

kuro search "Frieren"

kuro airing [--page N]

Browse currently airing anime with pagination. Assigns short codes for each entry.

kuro airing --page 1

kuro detail <anime-id>

Show full anime info: synopsis, metadata, relations, and recommendations.

Anime IDs can be a short code (onpi), a UUID (37aeb550-...), or a kebab-case slug (one-piece). Short codes persist across sessions and never require re-searching.

kuro detail onpi       # short code
kuro detail one-piece  # slug

kuro episodes <anime-id> [--page N] [--sort episode_asc|episode_desc]

List episodes with pagination.

kuro episodes onpi --page 1 --sort episode_desc

kuro watch <anime-id> [episode_id] [--episode / -e]

Interactive episode and quality picker. Extracts the video URL and streams it via mpv.

kuro watch onpi
kuro watch onpi --episode 5  # skip to episode 5

kuro download <anime-id> [episode_id] [--episode / -e] [--output / -o] [--batch / -b]

Download video files. Auto-named {Title} - EP{num:02d}.mp4.

kuro download onpi                           # interactive picker
kuro download onpi -b 1-10                   # batch episodes 1-10
kuro download onpi -b 1-5,8,10-12 -o ./eps/  # batch with custom dir

All commands accept --json for machine-readable JSON output.

Configuration

State is persisted to ~/.kuro_anime/state.json. Short codes, session mappings, and a kwik-cache live there. Delete the file to reset all state.

FAQ

"mpv not found": Install mpv — sudo apt install mpv (Debian/Ubuntu), brew install mpv (macOS).

"ffmpeg not found": Install ffmpeg — sudo apt install ffmpeg (Debian/Ubuntu), brew install ffmpeg (macOS).

"Could not resolve": The identifier wasn't a short code, UUID, or matching slug. Run kuro search <query> first.

License

GNU General Public License v3.0

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

kuro_anime-1.5.1.tar.gz (30.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

kuro_anime-1.5.1-py3-none-any.whl (33.0 kB view details)

Uploaded Python 3

File details

Details for the file kuro_anime-1.5.1.tar.gz.

File metadata

  • Download URL: kuro_anime-1.5.1.tar.gz
  • Upload date:
  • Size: 30.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.5

File hashes

Hashes for kuro_anime-1.5.1.tar.gz
Algorithm Hash digest
SHA256 2e20c79edd07b883e90c0c87c1daf867f2a21c27f2556440bf7f44ea89dae5c0
MD5 1679b8ecd9074c7c72c4543fdacb08e4
BLAKE2b-256 bab688ef1c4776e86ed1442819d9fb7571bb7aa20e97fccb97304eedf14ebb9a

See more details on using hashes here.

File details

Details for the file kuro_anime-1.5.1-py3-none-any.whl.

File metadata

  • Download URL: kuro_anime-1.5.1-py3-none-any.whl
  • Upload date:
  • Size: 33.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.5

File hashes

Hashes for kuro_anime-1.5.1-py3-none-any.whl
Algorithm Hash digest
SHA256 ef547c147146b7884394df8e23b5a5aec08e8f9aaf05e23c757dc73cd2cdb94c
MD5 01e99367cc63cb94b898aa61b0024348
BLAKE2b-256 fc3784d4905e831acb141e82cf286696b279bc4abb583c48c12a541fac5085e8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page