CLI to search TV shows, movies & anime via TMDB/AniList, scrape m3u8 links, and play in VLC/mpv
Project description
cinnamon
Watch TV shows, movies, and anime from your terminal. Search, pick a title, and it plays in mpv or VLC.
Quick start
You'll need Python 3.10+ and either mpv or VLC.
Install
pip install https://github.com/pizza-droid/cinnamon/archive/refs/tags/v0.2.19.tar.gz
cinnamon setup
The setup wizard asks for a TMDB API key (free account), your preferred player, and a color theme.
Get a player
Please note that MacOS version has not been tested since we dont have access to a mac
| Platform | mpv | VLC |
|---|---|---|
| Windows | scoop install mpv or download from mpv.io |
videolan.org |
| macOS | brew install mpv |
brew install --cask vlc |
| Linux | apt install mpv (Debian/Ubuntu) |
apt install vlc |
| Termux | pkg install mpv |
pkg install vlc |
Watch a show or movie
cinnamon search "Breaking Bad"
Pick a title, pick an episode (for TV) or just play (for movies), and it plays. Anime is detected automatically:
cinnamon search "Chainsaw Man"
Movies work the same way — search returns both TV and movies, and you pick:
cinnamon search "Inception"
cinnamon watch --type movie --query "Inception"
Download episodes
Needs yt-dlp:
| Platform | Command |
|---|---|
| Windows | scoop install yt-dlp |
| macOS | brew install yt-dlp |
| Linux | pip install yt-dlp |
| Termux | pkg install yt-dlp |
cinnamon search "Breaking Bad" -d -e 1-5
Commands
| If you run this… | …this happens |
|---|---|
cinnamon anime <query> |
Search anime via AniList (no API key needed) |
cinnamon search <query> |
Find a show, pick an episode, watch it |
cinnamon watch --id 123 -s 2 -e 5 |
Go straight to S2E5 without menus |
cinnamon play-url <url> |
Play any m3u8/mp4 link |
cinnamon resume |
Continue an interrupted download |
cinnamon history |
Show watch history and resume from the next unwatched episode |
cinnamon history --clear |
Clear all watch history |
cinnamon scrapers |
See available streaming sources |
cinnamon install <name> |
Add an optional scraper (vidsrc, torrentio) |
cinnamon update |
Check for and install the latest version |
cinnamon config show |
View your settings |
Common flags
| Flag | What it does |
|---|---|
-s <N> |
Season number |
-e <N> or -e <start-end> |
Episode or range (e.g. -e 1-10) |
-d |
Download instead of streaming |
--scraper <name> |
Force a specific scraper |
--player mpv or --player vlc |
Choose player |
-q 720p |
Pick quality (480p, 720p, 1080p, best, worst) |
--info-only |
Just print the stream URL |
Scrapers (streaming sources)
Built-in (work out of the box):
| Name | For |
|---|---|
webstream |
TV shows & movies from vixsrc.to and vidlink.pro (HLS) |
anime |
Anime from allanime.day via mp4upload |
Optional (install with cinnamon install <name>):
| Name | Needs |
|---|---|
vidsrc |
pip install "cinnamon[scrapers]" then playwright install chromium |
torrentio |
npm install (torrent playback) |
cinnamon install torrentio
cinnamon config default-scraper torrentio
Configuration
Settings are stored in ~/.config/cinnamon/config.json (Linux/macOS/Termux) or %APPDATA%/cinnamon/config.json (Windows). Change them anytime:
cinnamon config default-player mpv
cinnamon config default-scraper webstream
cinnamon config set-api-key YOUR_KEY
Notes
This project is mostly vibe coded and our lazy ass didnt even write more than 300 lines. feel free to give us feedback so we can improve this project and make it as good as possible.
inspired by ani-cli
Project details
Release history Release notifications | RSS feed
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 cinnamon_cli-0.2.19.tar.gz.
File metadata
- Download URL: cinnamon_cli-0.2.19.tar.gz
- Upload date:
- Size: 49.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
242061e0df5ab2af92eacec551a2f9c1f0be28f5592230987b26eff958ff4d58
|
|
| MD5 |
484623b487fdd4242d58cf0df6847ecc
|
|
| BLAKE2b-256 |
b93ca388b8a6f8edda2aa6ac3321777f6f0219a6d64665bfc371747805b515f4
|
Provenance
The following attestation bundles were made for cinnamon_cli-0.2.19.tar.gz:
Publisher:
workflow.yml on pizza-droid/cinnamon
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
cinnamon_cli-0.2.19.tar.gz -
Subject digest:
242061e0df5ab2af92eacec551a2f9c1f0be28f5592230987b26eff958ff4d58 - Sigstore transparency entry: 2189633136
- Sigstore integration time:
-
Permalink:
pizza-droid/cinnamon@85a92e3547cffb04454a5c02291cb341be70fb50 -
Branch / Tag:
refs/tags/v0.2.19 - Owner: https://github.com/pizza-droid
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
workflow.yml@85a92e3547cffb04454a5c02291cb341be70fb50 -
Trigger Event:
push
-
Statement type:
File details
Details for the file cinnamon_cli-0.2.19-py3-none-any.whl.
File metadata
- Download URL: cinnamon_cli-0.2.19-py3-none-any.whl
- Upload date:
- Size: 44.2 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 |
07bb5dd97c14e2b10eaa6fd22c475e48a889b761f763265075cb5c028fc89e05
|
|
| MD5 |
9978ff9fd76f38e2bbd5ad932e466469
|
|
| BLAKE2b-256 |
d3edfd17c0e8ddc9a4b4ef1187f8bbd2f16cf5ef2a93d6e6901279fc949a1239
|
Provenance
The following attestation bundles were made for cinnamon_cli-0.2.19-py3-none-any.whl:
Publisher:
workflow.yml on pizza-droid/cinnamon
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
cinnamon_cli-0.2.19-py3-none-any.whl -
Subject digest:
07bb5dd97c14e2b10eaa6fd22c475e48a889b761f763265075cb5c028fc89e05 - Sigstore transparency entry: 2189633249
- Sigstore integration time:
-
Permalink:
pizza-droid/cinnamon@85a92e3547cffb04454a5c02291cb341be70fb50 -
Branch / Tag:
refs/tags/v0.2.19 - Owner: https://github.com/pizza-droid
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
workflow.yml@85a92e3547cffb04454a5c02291cb341be70fb50 -
Trigger Event:
push
-
Statement type: