Skip to main content
   __  ______  __      ___     __
  /  |/  /| | / /      | | /| / /
 / /|_/ / | |/ /       | |/ |/ / 
/_/  /_/o |___/ie revie|__/|__/ 

Fastfetch inspired movie reviews

Catalogue your own movie review inside your terminal.

Python License GitHub Release

pipx install mvw


  ▁▁     ╭─────────────────────────────────────╮
 ▁▁▁│    │ These are some demos when using MVW │
┌┘└ ░▌   ╰─────────────────────────────────────╯
╚═══╝    F: Psst.. his name is MOAI (nice to meet u)                                     

Interactive

Default usage where you will get to experience the full experience of MVW. You will get to search, rate, review and also save your review. Every reviews will be saved in your local machine!

Interactive Command

List

You will get to see every past reviews that you had done in a simple interface supported by iterfzf) which uses the "Fuzzy Search"

List Command

Config

Everything that you can see in the config list can be configurable. From the poster_width, theme, your name, and even worldwide-boxoffice feature

Config Command

Theme

NOTE: Most modern browser supports nerdfont icons in svg, you just need to choose nerdfont as default in the settings. You can see svg below if it is supported.

  • Gruvbox (The Default Theme) Gruvbox

  • Catppuccin Catpuccin

  • Nord Nord


Features

Features Notes
Auto fetch movie data Uses OMDb API behind the hood to fetch movie data fast
Search movies Just give the movie title or imdbid to fetch the movie (no more EXACT)
Menu List every accessible feature when selected after mvw list
Change poster Change the default poster after fetch
Pixelated poster Unique way to view the poster (fully intentional)
Transparent support Transparent background from png or webp are supported
Configurable poster size Can change the poster width
Review history All review are saved in a database
Autocomplete Provided by the Typer library
Themes Gruvbox, Catppuccin, Nord
Save Review The review can be saved in svg format with the theme
Worldwide Boxoffice Use webscrap tech to find the global box office
Half-star Rating Support 0.5 star rating
Review Editor Use default editor to edit review
Caching Poster No need to download the poster everytime fetching
Easy update When searching same movie, will use past review
Reset Config Default to the factory setting with single command
Moai help Fun gimmick to help you in the process (can be hide dont worry)
  ▁▁     ╭─────────────────────────╮
 ▁▁▁│    │ Why am I at the bottom? │
┌┘└ ░▌   ╰─────────────────────────╯
╚═══╝    F: Cause heroes appear last.. right..                                  

Motivation

I have a deep interest in TUI/CLI and also movie in general. I also have a vault in Obsidian where I catalogue movies that I watch but you know how it goes.. (Legend says that it was still there waiting for me :D) At first, as someone like me whose personality (TUI + Movie) will obviously create a movie player that does everything (find, torrent, play, and done) which has already been done so many times. So instead I just want to make something different and that's where I (finally) remember about my Obsidian movie catalogue. Then the code begins..

And also, I just want to learn new things :)

Can check my personal blog for more info -> here


Installation

Method Command
pipx (recommended) pipx install mvw
uv uv tool install mvw
pip pip install mvw

NOTE: This CLI require a nerdfont to have the icon fully showed --> This repo seems legit way to install nerdfont but its up to you how to install, google it, you got this! --> Also, If you are on Windows, don't forget to set nerdfont as default font in the settings.

Usage

mvw

CLI

# Configure
mvw config -h

# All configure settings
mvw config --api-key "OMDB API key"       # Required
mvw config --name "Name"                  # Optional
mvw config --poster-width 30
mvw config --theme "gruvbox"
mvw config --moai                         # Toggle
mvw config --review                       # Toggle
mvw config --worldwide-boxoffice          # Toggle
mvw config --hide-key                     # Toggle
mvw config --reset                        # Toggle
mvw config --render                       # choose between pixel (default), blocks, ascii
mvw config --render ascii --charset       # choose between minimal (default), dots, blocks

# List all reviewed movies
mvw list

# Change the poster
mvw poster --id "ttxxxxxx" "poster_path"
mvd poster --title "Inception" "poster_path"

# Preview the reviewed movies
mvw preview --id "ttxxxxxx"
mvd preview --title "Inception"

# Delete the reviewed movies
mvw delete --id "ttxxxxxx"
mvd delete --title "Inception"

The --charset flag is only available for --render ascii. A custom minimal charset was created to better fit the constrained size of the poster. You can also choose dots ("•") and blocks (unicode blocks). This latter option is already similar to what you would get with --render pixel or with --render blocks. It will give you a lower resolution.


Configuration

Settings are automatically configured using mvw config

FAQ

  ▁▁     ╭─────────────────╮
 ▁▁▁│    │ Why am I here?  │
┌┘└ ░▌   ╰─────────────────╯
╚═══╝     F: Just for fun i guess

Why does the poster pixelated?

During the early build of the project, I could not figure out a way to pipe a kitty image into the iterfzf preview section. It took a long time to process so I try another method which is using rich_pixel library which supports rich and also works on every OS. As of now, thats what I could think of to solve it. TLDR: you can think it as the intended style

Why do I need to register an API key?

Short answer: It's easier for me to implement and it's very fast!

Long answer: During the early build, I tried to use an API from TMDb, however I found that the registering process are quite intimidating. Then, I found OMDb (which is almost the same as TMDb but easier API key registration). Later down the road, I also tried a no-API-key path Cinemagoer. However, I couldn't (as of now) make it work yet. Naybe in the future, another non-API option will arise?!

Who is MOAI?

It is just a console.print that I decided to add a face. I choose Moai because, the emoji 🗿 is just too perfect and one of my friends has used it during the phonk era (a lot). The emoji name is also MOAI so I thought why not just MO(AI) it. Same to LLM in Ollama, just too good to not use.


Inspiration

mvw is built with Typer + iterfzf and inspired by:

  • fastfetch - Visual system information Display.

License

GPL-3.0

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mvw-0.6.3.tar.gz (5.9 MB view details)

Uploaded Source

Built Distribution

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

mvw-0.6.3-py3-none-any.whl (48.5 kB view details)

Uploaded Python 3

File details

Details for the file mvw-0.6.3.tar.gz.

File metadata

  • Download URL: mvw-0.6.3.tar.gz
  • Upload date:
  • Size: 5.9 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.0 {"installer":{"name":"uv","version":"0.12.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for mvw-0.6.3.tar.gz
Algorithm Hash digest
SHA256 da12a59c0a7f08d1b650aa8c726717b28ada1268fc11b9a0648b4e7040931564
MD5 d9a8668d57421903241f325055762381
BLAKE2b-256 4a725f0eea3d76c39571171ad7fc326686b4438ea26eefee3d92e156f3185c33

See more details on using hashes here.

File details

Details for the file mvw-0.6.3-py3-none-any.whl.

File metadata

  • Download URL: mvw-0.6.3-py3-none-any.whl
  • Upload date:
  • Size: 48.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.0 {"installer":{"name":"uv","version":"0.12.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for mvw-0.6.3-py3-none-any.whl
Algorithm Hash digest
SHA256 1d69efda0a2dd6f33b1c2793e0f69e48f127fcbf9c5c5cbc73526ed1fed7db16
MD5 1e23920815bb0143c73a09c328ad797c
BLAKE2b-256 28fe1a21cf7e928721ac6bc7ea3ce754a9cb87ac54aeca33571b5eba064f9454

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.6.3 This release

2 files

0.6.1

2 files

0.6.0

2 files

0.5.3

2 files

0.5.2

2 files

0.5.1

2 files

0.5.0

2 files

0.4.3

2 files

0.4.0

2 files

0.3.0

2 files

0.2.2

2 files

0.2.1

2 files

0.2.0

2 files

0.1.7

2 files

0.1.5

2 files

0.1.4

2 files

0.1.2

2 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page