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
  • Doctorkuro doctor checks all system dependencies with install instructions
  • Shell Completionkuro completion bash|zsh|fish generates completion scripts
  • Historykuro history tracks recent searches, watches, and downloads
  • Config Initkuro init generates a commented default configuration

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 .

Configuration

A default config is auto-generated on first run. Edit ~/.kuro_anime/config.toml to customize:

[defaults]
output_dir = "~/Videos"        # download destination
quality = "best"               # preferred resolution: "best", "1080", "720", etc.
language = "jpn"               # preferred audio language: "jpn", "eng", etc.
player = "mpv"                 # video player binary (mpv, vlc, iina, etc.)

[download]
filename_template = "{title} - EP{episode:02d}.mp4"

You can also run kuro init --force to regenerate the default config. CLI flags override config values when both are supplied.

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

Run kuro <command> --help for full usage. All commands accept --json for machine-readable output.

Command Description
search <query> Search anime by title (generates short codes)
airing Browse currently airing anime
detail <anime> Show synopsis, metadata, relations, recommendations
episodes <anime> List episodes with pagination and sort
watch <anime> Interactive episode/quality picker → mpv
download <anime> Download episodes (single or batch)
doctor Check system dependencies
completion <shell> Generate shell completion (bash/zsh/fish)
history Show recent searches, watches, downloads
init Generate commented default config

Identifiers can be a short code (onpi), a UUID, or a kebab-case slug (one-piece). Short codes persist across sessions.

State

Persisted to ~/.kuro_anime/state.json. Short codes, session mappings, a kwik-cache, and activity history 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), sudo dnf install mpv (Fedora).

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

"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.7.4.2.tar.gz (35.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.7.4.2-py3-none-any.whl (40.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: kuro_anime-1.7.4.2.tar.gz
  • Upload date:
  • Size: 35.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for kuro_anime-1.7.4.2.tar.gz
Algorithm Hash digest
SHA256 a714123c5e0d091435a4e4fb774786a72cff3bbaf3c89fb9a63a467302b61a9f
MD5 5aed0b1562ad79239b9a73d4022254e4
BLAKE2b-256 3a1d13839639d6dfddc30a0a1d5bbae61e0cf50d75f478b7c0fd89839570c3b5

See more details on using hashes here.

Provenance

The following attestation bundles were made for kuro_anime-1.7.4.2.tar.gz:

Publisher: publish.yml on awtawsif/kuro_anime

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

  • Download URL: kuro_anime-1.7.4.2-py3-none-any.whl
  • Upload date:
  • Size: 40.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for kuro_anime-1.7.4.2-py3-none-any.whl
Algorithm Hash digest
SHA256 e168b341917920f533f32f05674dbb302031985e0b946f34ed5a3d474e6cc53b
MD5 1875c75c05f77f36c945eeec2f36e58a
BLAKE2b-256 4c7402403a0c7ae58f5404eba550e42d00c30d5c3bb8872e596fbec9aee0e84b

See more details on using hashes here.

Provenance

The following attestation bundles were made for kuro_anime-1.7.4.2-py3-none-any.whl:

Publisher: publish.yml on awtawsif/kuro_anime

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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