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
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 trailersYou 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/
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- 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,hiores.
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.
| 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..
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.
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-removeeRead 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 |
| 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 |