Skip to main content

Tarayıcı yok, reklam yok, dikkat dağıtıcı unsur yok. Sadece siz ve eşsiz bir anime izleme deneyimi.

Project description

Weeb CLI Logo

Weeb CLI

No browser, no ads, no distractions. Just you and an unparalleled anime viewing experience.

Release License Stars Tests

InstallationFeaturesUsageSourcesTürkçe


Features

Multiple Sources

  • Turkish: Animecix, Turkanime, Anizle
  • English: HiAnime, AllAnime

Smart Streaming

  • High-quality HLS/MP4 playback with MPV
  • Resume from where you left off (timestamp-based)
  • Watch history and statistics
  • Completed (✓) and in-progress (●) episode markers

Powerful Download System

  • Aria2 for multi-connection fast downloads
  • yt-dlp for complex stream support
  • Queue system with concurrent downloads
  • Resume interrupted downloads
  • Smart file naming (Anime Name - S1E1.mp4)

Tracking & Sync

  • AniList integration with OAuth
  • MyAnimeList integration with OAuth
  • Kitsu integration with email/password
  • Automatic progress sync for online and offline viewing
  • Offline queue for pending updates
  • Smart anime title matching from filenames

Local Library

  • Auto-scan downloaded anime
  • External drive support (USB, HDD)
  • Offline anime indexing with automatic tracker sync
  • Search across all sources
  • Recommended format: Anime Name - S1E1.mp4 for best tracker compatibility

Additional Features

  • SQLite database (fast and reliable)
  • System notifications on download completion
  • Discord RPC integration (show what you're watching on Discord)
  • Search history
  • Debug mode and logging
  • Automatic update checks
  • Non-interactive JSON API for scripts and AI agents
  • Torznab server mode for Sonarr/*arr integration

Installation

PyPI (Universal)

pip install weeb-cli

Arch Linux (AUR)

yay -S weeb-cli

Portable

Download the appropriate file for your platform from Releases.

Developer Setup

git clone https://github.com/ewgsta/weeb-cli.git
cd weeb-cli
pip install -e .

Usage

weeb-cli

API Mode (Non-interactive)

For scripts, automation, and AI agents, weeb-cli provides JSON API commands that work headlessly without a database or TUI:

# List available providers
weeb-cli api providers

# Search for anime (returns IDs)
weeb-cli api search "Angel Beats"
# Returns: [{"id": "12345", "title": "Angel Beats!", ...}]

# List episodes (use ID from search)
weeb-cli api episodes 12345 --season 1

# Get stream URLs for an episode
weeb-cli api streams 12345 --season 1 --episode 1

# Get anime details
weeb-cli api details 12345

# Download an episode
weeb-cli api download 12345 --season 1 --episode 1 --output ./downloads

All API commands output JSON to stdout.

Sonarr/*arr Integration (Serve Mode)

weeb-cli can run as a Torznab-compatible server for Sonarr and other *arr applications:

pip install weeb-cli[serve]

weeb-cli serve --port 9876 \
  --watch-dir /downloads/watch \
  --completed-dir /downloads/completed \
  --sonarr-url http://sonarr:8989 \
  --sonarr-api-key YOUR_KEY \
  --providers animecix,anizle,turkanime

Then add http://weeb-cli-host:9876 as a Torznab indexer in Sonarr with category 5070 (TV/Anime). The server includes a blackhole download worker that automatically processes grabbed episodes.

Docker

FROM python:3.13-slim
RUN apt-get update && apt-get install -y --no-install-recommends aria2 ffmpeg && rm -rf /var/lib/apt/lists/*
RUN pip install --no-cache-dir weeb-cli[serve] yt-dlp
EXPOSE 9876
CMD ["weeb-cli", "serve", "--port", "9876", "--watch-dir", "/downloads/watch", "--completed-dir", "/downloads/completed"]

Keyboard Controls

Key Action
Navigate menu
Enter Select
s Search Anime (Main menu)
d Downloads (Main menu)
w Watchlist (Main menu)
c Settings (Main menu)
q Exit (Main menu)
Ctrl+C Go back / Exit

Note: All shortcuts can be customized in Settings > Keyboard Shortcuts.


Sources

Source Language
Animecix Turkish
Turkanime Turkish
Anizle Turkish
Weeb Turkish
HiAnime English
AllAnime English

Configuration

Config location: ~/.weeb-cli/weeb.db (SQLite)

Available Settings

Setting Description Default Type
language Interface language (tr/en) null (asks on first run) string
scraping_source Active anime source animecix string
aria2_enabled Use Aria2 for downloads true boolean
aria2_max_connections Max connections per download 16 integer
ytdlp_enabled Use yt-dlp for HLS streams true boolean
ytdlp_format yt-dlp format string bestvideo+bestaudio/best string
max_concurrent_downloads Simultaneous downloads 3 integer
download_dir Download folder path ./weeb-downloads string
download_max_retries Retry failed downloads 3 integer
download_retry_delay Delay between retries (seconds) 10 integer
show_description Show anime descriptions true boolean
discord_rpc_enabled Discord Rich Presence false boolean
shortcuts_enabled Keyboard shortcuts true boolean
debug_mode Debug logging false boolean

Tracker Settings (stored separately)

  • anilist_token - AniList OAuth token
  • anilist_user_id - AniList user ID
  • mal_token - MyAnimeList OAuth token
  • mal_refresh_token - MAL refresh token
  • mal_username - MAL username

External Drives

Managed via Settings > External Drives menu. Each drive stores:

  • Path (e.g., D:\Anime)
  • Custom name/nickname
  • Added timestamp

All settings can be modified through the interactive Settings menu.


Roadmap

Completed

  • Multiple source support (TR/EN)
  • MPV streaming
  • Watch history and progress tracking
  • Aria2/yt-dlp download integration
  • External drives and local library
  • SQLite database
  • Notification system
  • Debug mode
  • MAL/AniList integration
  • Database backup/restore
  • Keyboard shortcuts
  • Non-interactive API mode (JSON output)
  • Torznab server for Sonarr/*arr integration

Planned

  • Anime recommendations
  • Batch operations
  • Watch statistics (graphs)
  • Theme support
  • Subtitle downloads
  • Torrent support (nyaa.si)
  • Watch party

Project Structure

weeb-cli/
├── weeb_cli/                    # Main application package
│   ├── commands/                # CLI command handlers
│   │   ├── api.py               # Non-interactive JSON API commands
│   │   ├── downloads.py         # Download management commands
│   │   ├── search.py            # Anime search functionality
│   │   ├── serve.py             # Torznab server for *arr integration
│   │   ├── settings.py          # Settings menu and configuration
│   │   ├── setup.py             # Initial setup wizard
│   │   └── watchlist.py         # Watch history and progress
│   │
│   ├── providers/               # Anime source integrations
│   │   ├── extractors/          # Video stream extractors
│   │   │   └── megacloud.py     # Megacloud extractor
│   │   ├── allanime.py          # AllAnime provider (EN)
│   │   ├── animecix.py          # Animecix provider (TR)
│   │   ├── anizle.py            # Anizle provider (TR)
│   │   ├── base.py              # Base provider interface
│   │   ├── hianime.py           # HiAnime provider (EN)
│   │   ├── registry.py          # Provider registration system
│   │   └── turkanime.py         # Turkanime provider (TR)
│   │
│   ├── services/                # Business logic layer
│   │   ├── cache.py             # File-based caching system
│   │   ├── database.py          # SQLite database manager
│   │   ├── dependency_manager.py # Auto-install FFmpeg, MPV, etc.
│   │   ├── details.py           # Anime details fetcher
│   │   ├── discord_rpc.py       # Discord Rich Presence
│   │   ├── downloader.py        # Queue-based download manager
│   │   ├── error_handler.py     # Global error handling
│   │   ├── headless_downloader.py # Headless download (no DB/TUI deps)
│   │   ├── local_library.py     # Local anime indexing
│   │   ├── logger.py            # Debug logging system
│   │   ├── notifier.py          # System notifications
│   │   ├── player.py            # MPV video player integration
│   │   ├── progress.py          # Watch progress tracking
│   │   ├── scraper.py           # Provider facade
│   │   ├── search.py            # Search service
│   │   ├── shortcuts.py         # Keyboard shortcuts manager
│   │   ├── tracker.py           # MAL/AniList integration
│   │   ├── updater.py           # Auto-update checker
│   │   ├── watch.py             # Streaming service
│   │   ├── _base.py             # Base service class
│   │   └── _tracker_base.py     # Base tracker interface
│   │
│   ├── ui/                      # Terminal UI components
│   │   ├── header.py            # Header display
│   │   ├── menu.py              # Main menu
│   │   └── prompt.py            # Custom prompts
│   │
│   ├── utils/                   # Utility functions
│   │   └── sanitizer.py         # Filename/path sanitization
│   │
│   ├── locales/                 # Internationalization
│   │   ├── en.json              # English translations
│   │   └── tr.json              # Turkish translations
│   │
│   ├── templates/               # HTML templates
│   │   ├── anilist_error.html   # AniList OAuth error page
│   │   ├── anilist_success.html # AniList OAuth success page
│   │   ├── mal_error.html       # MAL OAuth error page
│   │   └── mal_success.html     # MAL OAuth success page
│   │
│   ├── config.py                # Configuration management
│   ├── exceptions.py            # Custom exception hierarchy
│   ├── i18n.py                  # Internationalization system
│   ├── main.py                  # CLI entry point
│   └── __main__.py              # Package execution entry
│
├── tests/                       # Test suite
│   ├── test_api.py              # API commands and headless downloader tests
│   ├── test_cache.py            # Cache manager tests
│   ├── test_exceptions.py       # Exception tests
│   ├── test_sanitizer.py        # Sanitizer tests
│   └── conftest.py              # Pytest fixtures
│
├── weeb_landing/                # Landing page assets
│   ├── logo/                    # Logo files (various sizes)
│   └── index.html               # Landing page
│
├── distribution/                # Build and distribution files
├── pyproject.toml               # Project metadata and dependencies
├── requirements.txt             # Python dependencies
├── pytest.ini                   # Pytest configuration
├── LICENSE                      # GPL License 
└── README.md                    # This file

Star History Chart


License

This project is licensed under the GNU General Public License v3.0.
See the LICENSE file for the full license text.

Weeb-CLI (C) 2026

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

weeb_cli-2.11.0.tar.gz (130.5 kB view details)

Uploaded Source

Built Distribution

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

weeb_cli-2.11.0-py3-none-any.whl (150.6 kB view details)

Uploaded Python 3

File details

Details for the file weeb_cli-2.11.0.tar.gz.

File metadata

  • Download URL: weeb_cli-2.11.0.tar.gz
  • Upload date:
  • Size: 130.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for weeb_cli-2.11.0.tar.gz
Algorithm Hash digest
SHA256 8e15be72babefd973d82b1280c0a70502f057b9f81d2ee8929843dafa2238c69
MD5 c9a31302f80dc8d6ec86c28010150e89
BLAKE2b-256 961c6092a819f331584a4e3cb7907490922839a397948e509c92433324e7eb70

See more details on using hashes here.

File details

Details for the file weeb_cli-2.11.0-py3-none-any.whl.

File metadata

  • Download URL: weeb_cli-2.11.0-py3-none-any.whl
  • Upload date:
  • Size: 150.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for weeb_cli-2.11.0-py3-none-any.whl
Algorithm Hash digest
SHA256 704061a25bb02a69f48b8d9ede03f81a4014931f3e140ab86d860f570e518c53
MD5 79f6408eed586d8656b503a3278619a4
BLAKE2b-256 1df38c674c4eeaebf0309baab747dae6eb5d997d90a922e459c3c8333773443f

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