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)

Local Library

  • Auto-scan downloaded anime
  • External drive support (USB, HDD)
  • Offline anime indexing
  • Search across all sources

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

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

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
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

Planned

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

License

This project is licensed under CC BY-NC-ND 4.0.


Project Structure

weeb-cli/
├── weeb_cli/                    # Main application package
│   ├── commands/                # CLI command handlers
│   │   ├── downloads.py         # Download management commands
│   │   ├── search.py            # Anime search functionality
│   │   ├── 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
│   │   ├── 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_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                      # CC BY-NC-ND 4.0 license
└── README.md                    # This file

Tech Stack

Core Technologies

  • Python 3.8+ - Main programming language
  • Typer - CLI framework with rich terminal support
  • Rich - Terminal formatting and styling
  • Questionary - Interactive prompts and menus
  • SQLite - Local database (WAL mode)

Web & Networking

  • requests - HTTP client
  • curl_cffi - Advanced HTTP with browser impersonation
  • BeautifulSoup4 - HTML parsing
  • lxml - Fast XML/HTML processing

Media & Download

  • FFmpeg - Video processing and conversion
  • MPV - High-quality video player
  • Aria2 - Multi-connection downloader
  • yt-dlp - Complex stream downloader (HLS, DASH)

Encryption & Security

  • pycryptodome - Encryption/decryption (Turkanime)

Additional Features

  • pypresence - Discord Rich Presence
  • py7zr - 7z archive handling
  • winotify - Windows notifications
  • pyfiglet - ASCII art headers
  • packaging - Version comparison

Development & Testing

  • pytest - Testing framework
  • pyinstaller - Executable builder
  • build - Python package builder

Architecture Patterns

  • Provider Pattern - Pluggable anime sources
  • Registry Pattern - Dynamic provider registration
  • Service Locator - Lazy-loaded services
  • Queue Pattern - Thread-safe download queue
  • Decorator Pattern - Caching decorator
  • Observer Pattern - Progress tracking
  • Strategy Pattern - Multiple download strategies

WebsiteReport Issue

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.7.1.tar.gz (87.4 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.7.1-py3-none-any.whl (107.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: weeb_cli-2.7.1.tar.gz
  • Upload date:
  • Size: 87.4 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.7.1.tar.gz
Algorithm Hash digest
SHA256 2c074771cbe8c698f613ce0089b82357dcdb7891321f56176e27e086bef312d7
MD5 f2e3b1156f5a618c155d9a3c621dfa22
BLAKE2b-256 d7e1b8125343983c6047b8bcea9d0be7968b6087a605a2b275bd55fafb14266b

See more details on using hashes here.

Provenance

The following attestation bundles were made for weeb_cli-2.7.1.tar.gz:

Publisher: publish.yml on ewgsta/weeb-cli

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

File details

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

File metadata

  • Download URL: weeb_cli-2.7.1-py3-none-any.whl
  • Upload date:
  • Size: 107.1 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.7.1-py3-none-any.whl
Algorithm Hash digest
SHA256 0eafc1fb5e0e42a3efe8df4a82df298951114c04480121babc5b0318c6efac9b
MD5 2b84b4da126ca81e908fd09a606e65ca
BLAKE2b-256 e08c808da417c8c1830cfd3cc05ea8c265fb7a8f9e66457e44d51aaad09fe88d

See more details on using hashes here.

Provenance

The following attestation bundles were made for weeb_cli-2.7.1-py3-none-any.whl:

Publisher: publish.yml on ewgsta/weeb-cli

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