A CLI tool to browse, watch, and download anime from Anime-Sama (VOSTFR/VF)
Project description
[!IMPORTANT]
Project Status
This project is actively maintained and developed by 6sfy.
[!CAUTION] The use of this module under a different name on PyPI (or another source besides this GitHub) is not associated with this library. anisama streams from Anime-Sama, Voiranime, MyFluneo, AnimesUltra, French-Anime, AnimoFlix. We are not responsible for any misuse.
About
Welcome to anisama, a Python CLI to browse, watch, and download anime from multiple sources (VOSTFR/VF).
- Inspired by ani-cli, the original shell-based anime streaming tool.
- Scrapes 6 sources: Anime-Sama, Voiranime, MyFluneo, AnimesUltra, French-Anime, AnimoFlix.
- Interactive TUI built with Rich and Questionary.
- Connects to the anisama API for fast search and video resolution.
Project Structure
anisama/
├── src/ # CLI application
│ ├── __init__.py
│ ├── __main__.py
│ ├── core/ # Backend logic
│ │ ├── config.py # Constants, headers, domains
│ │ ├── cache.py # Catalog, settings, history
│ │ ├── scraper.py # Anime-Sama + Voiranime scraping
│ │ ├── resolver.py # Video URL extraction per host
│ │ └── search.py # Fuzzy search, scoring, dedup
│ ├── cli/ # CLI-specific code
│ │ ├── app.py # Entry point, click command
│ │ ├── display.py # Banner, colors, info panels
│ │ ├── player.py # Player detection, play/download
│ │ ├── picker.py # Selection menus
│ │ ├── mirror.py # Speed tests, mirror resolution
│ │ ├── install.py # yt-dlp/ffmpeg install guides
│ │ ├── settings.py # Settings menu
│ │ └── workflow.py # Main workflow (search, play, download)
│ └── api/ # Remote API client
│ └── client.py # Wrapper for anisama API
└── data/ # Local catalog/settings storage
Features
- Search anime by title with fuzzy matching (rapidfuzz) across 6 sources
- Multi-source merge: Anime-Sama, Voiranime, MyFluneo, AnimesUltra, French-Anime, AnimoFlix
- Intelligent dedup: season/lang variants grouped under one result
- Smart search: exact match shows only relevant results, broad queries show variants
- Browse seasons (VOSTFR / VF)
- Stream episodes in your preferred video player
- Download episodes directly
- Episode range support (1-5 or 1,3,5)
- Multiple video mirrors with automatic speed-tested fallback
- Player support: mpv, VLC, IINA, MoonPlayer, ImPlay
- API-first resolve with local fallback
- "Continue watching" history menu
- AniList-powered info panel (score, status, episodes, studios, tags, synopsis)
- Prefer MP4 sources over HLS/m3u8 for faster playback
- Automatic m3u8 → mp4 conversion for downloads
- More sources / languages
Installation
From PyPI (recommended)
pip install anisama
From source
git clone https://github.com/6sfy/anisama.git
cd anisama
pip install -e .
Usage
Interactive mode
anisama
CLI mode
anisama "demon slayer"
anisama "one piece" -e 1-5
anisama "attack on titan" -e 1,3,5 --lang vf
anisama "jujutsu kaisen" -d -e 1
anisama -p vlc "berserk"
Options
| Flag | Description |
|---|---|
--lang vostfr/vf |
Language filter |
--dub |
Shorthand for VF |
-d, --download |
Download instead of streaming |
-e, --episodes |
Episode range: 5, 1-5, or 1,3,5 |
-p, --player |
Player: mpv, vlc, iina, moonplayer, implay |
-U, --update |
Force refresh the anime catalog |
-q, --quiet |
Reduce output verbosity |
--version |
Show version |
-h, --help |
Show help |
API
anisama uses a centralized API for fast search and video resolution. The API server source is available at github.com/6sfy/anisama-api.
Sources
| Source | Language | Method |
|---|---|---|
| Anime-Sama | VOSTFR/VF | HTML scraping |
| Voiranime | VOSTFR/VF | HTML scraping |
| MyFluneo | VOSTFR | Playwright |
| AnimesUltra | VOSTFR/VF | Sitemap/HTML |
| French-Anime | VOSTFR/VF | HTML scraping |
| AnimoFlix | VOSTFR | HTML + Playwright |
Contributing
- Before creating an issue, please ensure that it hasn't already been reported/suggested.
- See the contribution guide if you'd like to submit a PR.
Credits
- pystardust/ani-cli for the original idea and workflow
- Content sources: Anime-Sama, Voiranime, MyFluneo, AnimesUltra, French-Anime, AnimoFlix
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file anisama-1.1.1.tar.gz.
File metadata
- Download URL: anisama-1.1.1.tar.gz
- Upload date:
- Size: 155.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7b317dde1926cd091e276a9e1d749e14c23fef8eb8f986041f1a6301725446dd
|
|
| MD5 |
5f8529c070453c29e446c716799ea5ce
|
|
| BLAKE2b-256 |
eb782c4ee79219bb61c8750c018f14ec7ac116bb8e37b58f4b83072ad18a12a6
|
Provenance
The following attestation bundles were made for anisama-1.1.1.tar.gz:
Publisher:
publish.yml on 6sfy/anisama
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
anisama-1.1.1.tar.gz -
Subject digest:
7b317dde1926cd091e276a9e1d749e14c23fef8eb8f986041f1a6301725446dd - Sigstore transparency entry: 2194699366
- Sigstore integration time:
-
Permalink:
6sfy/anisama@9d9097e5d2e9b21af729cfbecb969d918529ba8d -
Branch / Tag:
refs/tags/v1.1.1 - Owner: https://github.com/6sfy
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@9d9097e5d2e9b21af729cfbecb969d918529ba8d -
Trigger Event:
push
-
Statement type:
File details
Details for the file anisama-1.1.1-py3-none-any.whl.
File metadata
- Download URL: anisama-1.1.1-py3-none-any.whl
- Upload date:
- Size: 164.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c1e97dde214a95b765e386960b0d433a31743c3d8be5feea8fc3a2b17a9063d5
|
|
| MD5 |
5cb524c3c18724cce29fcfbd80c0f2f2
|
|
| BLAKE2b-256 |
f293b7e281798cc430076bacedd9e19ca66b761880b8ae2938c3ecb57554a864
|
Provenance
The following attestation bundles were made for anisama-1.1.1-py3-none-any.whl:
Publisher:
publish.yml on 6sfy/anisama
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
anisama-1.1.1-py3-none-any.whl -
Subject digest:
c1e97dde214a95b765e386960b0d433a31743c3d8be5feea8fc3a2b17a9063d5 - Sigstore transparency entry: 2194699378
- Sigstore integration time:
-
Permalink:
6sfy/anisama@9d9097e5d2e9b21af729cfbecb969d918529ba8d -
Branch / Tag:
refs/tags/v1.1.1 - Owner: https://github.com/6sfy
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@9d9097e5d2e9b21af729cfbecb969d918529ba8d -
Trigger Event:
push
-
Statement type: