Metadata-Version: 2.4
Name: aninishi
Version: 0.1.1
Summary: Unified anime streaming CLI — German & English, Desktop & Server mode
Author-email: aninishi Contributors <contact@aninishi.dev>
License: MIT
Project-URL: Homepage, https://github.com/DeathNaitsa/aninishi
Project-URL: Documentation, https://github.com/DeathNaitsa/aninishi#readme
Project-URL: Repository, https://github.com/DeathNaitsa/aninishi.git
Project-URL: Issues, https://github.com/DeathNaitsa/aninishi/issues
Keywords: anime,streaming,cli,api,aniworld,german,english
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: End Users/Desktop
Classifier: Topic :: Multimedia :: Video
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Operating System :: OS Independent
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: click>=8.0
Requires-Dist: rich>=13.0
Requires-Dist: pyyaml>=6.0
Requires-Dist: requests>=2.28
Requires-Dist: fastapi>=0.100
Requires-Dist: uvicorn[standard]>=0.20
Requires-Dist: aniworld>=4.0
Requires-Dist: anipy-api>=3.0
Dynamic: license-file

# aninishi 🎬

> **German + English Anime Streaming CLI/Server** — Watch anime from aniworld.to (German) and gogoanime (English) directly in your terminal or via REST API.

![Python Version](https://img.shields.io/badge/python-3.10%2B-blue)
![License](https://img.shields.io/badge/license-MIT-green)
![Release](https://img.shields.io/badge/release-0.1.0-brightgreen)

## Features

✅ **German Anime** - Stream from aniworld.to with German Dub/Sub  
✅ **English Anime** - Fallback to gogoanime for English content  
✅ **Desktop Mode** - Auto-launch mpv/vlc with stream URL  
✅ **Server Mode** - FastAPI REST API for integration  
✅ **Config Persistence** - YAML-based settings at `~/.aninishi/config.yaml`  
✅ **Cross-Platform** - Works on Windows, macOS, Linux  

## Installation

### Via PyPI (Recommended)
```bash
pip install aninishi
```

### From Source
```bash
git clone https://github.com/yourusername/aninishi.git
cd aninishi
pip install -e .
```

## Quick Start

### Desktop Mode - Watch Anime
```bash
aninishi watch naruto --episode 1 --language "German Dub"
aninishi watch "one piece" --episode 100 --language "German Sub"
```

### Search Anime
```bash
aninishi search "attack on titan"
aninishi info naruto
```

### Server Mode - REST API
```bash
aninishi server --port 8080
```

Then in another terminal:
```bash
curl "http://localhost:8080/stream/naruto/1?lang=German+Dub"
```

## Commands

```bash
# Watch anime (resolves stream + launches player)
aninishi watch <slug> --episode <N> [--language <LANG>]

# Get stream URL only (no player)
aninishi stream <slug> --episode <N> [--language <LANG>] [--json-out]

# Search anime
aninishi search <query> [--provider <NAME>]

# Get anime info
aninishi info <slug>

# Manage configuration
aninishi config show
aninishi config set <key> <value>

# Start REST API server
aninishi server [--port <PORT>] [--api-only]
```

## Configuration

Config file location: `~/.aninishi/config.yaml`

```yaml
mode: desktop              # desktop | server
language: "German Dub"     # German Dub | German Sub | English Dub | English Sub
provider: auto             # aniworld | english | auto
desktop:
  player: mpv              # mpv | vlc
  player_path: null        # or /path/to/player
  fullscreen: true
  keep_watching: false
server:
  host: 127.0.0.1
  port: 8080
  api_only: true
```

## Dependencies

- **aniworld** (v4.5.1) - German anime scraper
- **anipy-api** (v3.8.12) - English anime provider
- **Click** (v8.1.8) - CLI framework
- **Rich** (v13.3.3) - Terminal formatting
- **FastAPI** (v0.100+) - REST API
- **Uvicorn** - ASGI server
- **PyYAML** (v6.0.3) - Config persistence

## Supported Players

- **mpv** (recommended)
- **VLC** (fallback)

## API Endpoints (Server Mode)

```
GET  /search?q=<query>&lang=<language>      # Search anime
GET  /info/<slug>                            # Get anime metadata
GET  /stream/<slug>/<episode>                # Get stream URL
     ?lang=<lang>&season=<n>&provider=<name>&vprovider=<name>&with_info=<bool>
GET  /config                                 # Show config
POST /config                                 # Update config
```

## License

MIT © 2026 - Feel free to fork and extend!

## Disclaimer

⚠️ **Legal Notice**: This tool is for personal use only. Respect copyright laws in your country. The developers are not responsible for any misuse.

---

Made with ❤️ for German anime fans

