Skip to content

Latest commit

f11845c · · Sep 4, 2026

History

27 Commits

Folders and files

NameName
Last commit message
Last commit date
Aug 18, 2026
Aug 19, 2026
Aug 19, 2026
Aug 29, 2026
Sep 4, 2026
Aug 28, 2026
Aug 28, 2026
Aug 18, 2026
Aug 29, 2026
Aug 29, 2026
Aug 23, 2026
Aug 28, 2026
Aug 18, 2026
Aug 23, 2026
Aug 15, 2026
Aug 18, 2026
Aug 18, 2026
Aug 18, 2026
Aug 23, 2026
Aug 19, 2026
Aug 28, 2026
Aug 23, 2026
Aug 23, 2026
Aug 28, 2026

Repository files navigation

Colombus

A terminal browser for films and series. Search TMDB ( a database which has all the movies and series all around the world), browse what's trending, filter by genre or decade, and read ratings, reviews, cast and episode charts. Posters and trailers play in the terminal itself.

Colombus Preview

Colombus ───────────────────────────────────────────────────────────────────
 Search   Trending   Categories   Watchlist   Watched

 01  Blade Runner 2049          ⣿⣿⣿⣶⣤   Blade Runner 2049  (2017)  FILM
 02  Dune: Part Two             ⣿⣿⣿⣿⣷   Director  Denis Villeneuve
 03  Arrival                    ⢿⣿⣿⣿⡿   Runtime   2h 44m
                                          Stream    Prime Video, JioHotstar
tstar

Install

pip install -r requirements.txt
cp .env.example .env           # add TMDB_API_KEY or TMDB_ACCESS_TOKEN
pip install -U yt-dlp av       # optional: in-terminal trailers

You can get TMDB keys free from https://www.themoviedb.org/settings/api. OMDB_API_KEY is optional and adds IMDb / Rotten Tomatoes / Metacritic scores. You can get the OMDB API key from https://www.omdbapi.com/

Run (Debug Commands)

python main.py                # start empty, search interactively
python main.py dune            # search on launch
python main.py --offline       # cache only, never touch the network
python main.py --widget        # desktop widget (--widget-series for TV)
python main.py --doctor        # report what's installed, then exit
python main.py --purge-cache   # drop cached responses and posters
python main.py --env PATH      # use a specific .env

Features

  • Search films, series, both at once, or people. Pick a person to open their filmography and work history..
  • Trending today or this week, and categories by genre, industry, decade, minimum rating and sort order..
  • Film Industries includes: Hollywood, Bollywood, Tollywood, Kollywood and the rest, plus British, Korean, Japanese, Chinese, Nollywood and Europe..
  • A watchlist (ctrl+d) and a watched list (f6), both in SQLite. They survive a cache clear. Watchlisted series tell you about new episodes on startup..
  • It has a feature where it can display artwork/posters of the movie within the terminal in ASCII format (wherever ASCII is supported) or the real image itself
  • You can directly play the trailers in the terminal in full colour, with sound (f7) (All the trailers are shown in pixel format).
  • It has a offline mode which works on the previous cache and never opens a new connection.
  • The desktop widget is an always-on-top trending panel that can start with Windows..
  • You can access the TMDB content in any language. The UI itself is in en, hi or es.

f2 opens the right-hand pane: Details (facts, score bars, overview, Wikipedia summary, where to watch), Reviews in full, Cast, Episodes (a season picker and a braille chart of episode ratings), Stats, and Trailer.r.

Keys

Key Action Key Action
ctrl+s focus the search box f4 trailer in your browser
enter run the search f7 trailer in the terminal
↑ ↓ move through results f5 open the IMDb / TMDB page
escape back to the results list ctrl+d watchlist add / remove
ctrl+t next section f6 mark watched / unmark
ctrl+f show or hide the filters ctrl+r clear the cache
f2 cycle the right-hand tabs ctrl+w launch the widget
f3 recommendations for this title f8 manage widget profiles
ctrl+q quit

ctrl+shift+w also opens the profile manager. There are no bare-letter bindings, so typing in the search box never fires an action..

Trailers

f7 plays the trailer within the terminal itself in the Trailer tab, f4 plays the trailer in your browser. Needs yt-dlp and av, and ffmpeg for sound..

Picture size follows your terminal's cell count, not the stream. For a sharper image quality, drop the font size from14pt to 8pt roughly triples the pixels. Playback drops frames rather than running slow, so a smaller pane is smoother. If it fails with a yt-dlp error, run un pip install -U yt-dlp.

Widget (Debug Commands)

f8 in the main app creates named widget profiles: trending films, trending series, a genre feed, or your watch stats. Any number of profiles can be set to start with Windows. Each one runs as its own panel and remembers where you put it and how transparent you left it. The manager can also launch one right away.ay.

Inside a widget, ↑ ↓ select and enter or o opens the title in your browser. tab cycles modes, r refreshes, + and - adjust transparency, and q or escape closes it. Drag by the header, or click a title to select it.

python main.py --widget                       # trending films
python main.py --widget-series                 # trending series
python main.py --startup-add                   # launch on boot
python main.py --widget-series --startup-add
python main.py --startup-list                   # what is registered
python main.py --startup-removee

Configuration (Compulsory Environment Variables)

Read from the environment or a .env, including one sitting beside the packaged executable..

Variable Default Meaning
TMDB_API_KEY — TMDB v3 key (one credential required)
TMDB_ACCESS_TOKEN — TMDB v4 token
OMDB_API_KEY — optional extra ratings and reviews

Layout

Path Working
main.py Main file, and compiles the whole project
app.py Textual app: layout, key bindings, background workers
config.py Variables and .env loading
service.py Fans one lookup across all sources into a single Movie
sources/ TMDB (required), OMDb and Wikipedia (both optional)
widgets/ Results, poster, detail, reviews, cast, episodes, stats, player
render.py Rich renderables: facts, score bars, charts, stats
cache.py SQLite store for cached JSON, posters, watchlist and history
models.py SearchHit, Movie, Person, Season, Filters, Stats
player.py Trailer streams: resolving, decoding, letterbox, audio
videoart.py Turns frames into half-block Strips
widget.py Always-on-top desktop widget (tkinter)
i18n.py Message catalogue for the app's own strings

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Languages