Personal Android app · Sideloaded

MOFY

A private cinema for the movies and TV you already own.

Browse, search, and watch your own library in a dark, fast interface that runs entirely on your phone. No accounts, no cloud, no tracking. Just your collection.

Android 8.0+ (minSdk 26) · arm64 · ~122 MB · installs directly from GitHub Releases. Not on the Play Store.

Mofy home screen with horizontal rows for Continue Watching, Recently Added, All Time Classics, and New Releases.
Home
Mofy Discover screen showing the query “dark psychological thriller” and matching results such as Seven, The Sixth Sense, and The Silence of the Lambs.
Discover

WHY

Own your media. Keep your media.

A film I'd already paid for was marked "Leaving Soon." That's streaming: you rent access, and it disappears on someone else's schedule.

Mofy keeps what you care about on your own device, in a player you control. Buy it if you have to, then keep it with you.

What it does

Built for one person

Mofy is a single-user media app, made for exactly one person: you. There is no sign-up, no shared account, and no recommendation engine trying to sell you something. Just your library, your progress, and the things you actually want to watch.

Home

Pick up exactly where you left off

Home keeps Continue Watching, Recently Added, All Time Classics, and New Releases on one screen. The first two are drawn from your own library, the classics from a curated shelf that comes with the app. Watch progress is tracked as you go, so whatever you were part-way through is always one tap away.

  • Continue Watching
  • Recently Added
  • New Releases
Mofy home screen with rows of movie posters, including Continue Watching and New Releases.
Home

Discover

Search by mood, not just by title

Type something like “dark psychological thriller” and Mofy searches by meaning instead of exact names. The embedding model and vector index run on your phone, so nothing you search for leaves the device. A small language model also reads genre, mood, date, and rating from what you type.

  • EmbeddingGemma-300m
  • sqlite-vec KNN
  • Runs on-device
Mofy Discover screen with a natural-language query and a list of matching movies and shows with year and rating.
Discover

Details

Everything about a title, without the clutter

Poster, synopsis, genres, year, and type sit above a clear Play button, with source linking and a shortcut into Watch Together. Rate what you have seen with a quick thumbs up or down, and Mofy remembers it.

  • Movies & TV
  • Ratings
  • Watch Party shortcut
Mofy detail screen for a movie, showing poster, title, year, genres, synopsis, rating buttons, a red Play button, linking status, and Watch Party.
Details

Sources

Link a source, then press play

Mofy plays what you point it at. Pick a single video file, choose a whole folder, or link a title from YouTube. YouTube videos are resolved on the device and play inside Mofy itself. No browser window, no WebView. libVLC handles the formats, torrent links included, and Mofy never downloads anything on its own.

  • Local files
  • Folders
  • YouTube
  • Torrent links
  • libVLC
Mofy detail screen for Star Wars: Episode V - The Empire Strikes Back, showing the poster, synopsis, and a Link button next to Watch Party.
Tap Link on a title
Mofy Link screen offering Pick a single video file, Pick a folder, and Link from YouTube.
Pick a file, folder or YouTube
Mofy YouTube search screen, titled YOUTUBE, showing a full-movie query and results that mix trailers with a full-length upload and their durations.
Search, then pick a resolution

Library

A library that stays yours

Import files from your device or look titles up on TMDB, then sort and filter the whole catalog by genre, type, or date. Everything is stored locally, on storage you control.

  • Import from device
  • TMDB lookup
  • Filters & sort
Mofy Library screen listing saved movies with posters, type labels, and dates added, above an All / Movies / TV filter and a Filters button.
Library
Mofy import screen searching TMDB by title and showing a matching result ready to save to the library.
TMDB lookup

Adding a title from a local file

  1. Open Import

    From your library, tap Import to add a new title.

  2. Pick a file or a folder

    Pick one video file, or a whole folder, then say which file is the movie and which are the subtitles.

  3. Match it on TMDB

    Search, confirm the title, and save. It becomes a new entry in your library.

Importing adds a new entry to your library. Linking (the flow in the Sources section) attaches a playable source to a title that is already in it.

Curated

A shelf of classics, already picked

Mofy arrives with a curated collection of vintage and classic films: rows like Vintage Picks and All Time Classics that are chosen by hand, not generated from whatever happens to be sitting on your phone. They live alongside your own imports, so there is always something to watch before you add a single file.

  • Vintage Picks
  • All Time Classics
  • Hand-picked
The All Time Classics row on Mofy's home screen, showing poster artwork for classic films with their titles and years.
Vintage & ClassicsHand-picked, on Home

Watch Together

Same film. Same moment.

Start a room, share the code or scan the QR, and playback stays in sync over a WebRTC data channel. There is no central server in the middle. The room is just the two of you.

  • Room code & QR invite
  • WebRTC data channel
Mofy Watch Together screen showing a room code, a QR invite code, a waiting message, and a Share invite button.
Watch Together

Settings

Your models, your key

The on-device models behind semantic search and facet detection are managed from Settings, where you can download or re-download them whenever you like. Mofy also takes your own free TMDB API key (the button opens TMDB in-app so you can get one), and falls back to the shared default key if you would rather not use your own.

  • On-device models
  • Re-download anytime
  • Bring your own TMDB key
  • Shared default key
Mofy Settings screen with a TMDB API key field, a Get a free TMDB API key button, and a Model downloads section listing distilbert-onnx and embeddinggemma as complete with Re-download buttons.
Settings

Under the hood

Everything runs on the phone

The interesting parts are local: models, index, and player all live on the device. Nothing is sent off to be processed somewhere else.

01

Semantic search

EmbeddingGemma-300m embeddings paired with a sqlite-vec KNN index let you search the catalog by meaning, entirely on-device.

02

Facet detection

A distilbert ONNX model pulls genre, mood, date, and rating out of plain language, so filters follow what you described.

03

Playback

libVLC handles the formats. Sources include local files and folders, YouTube videos resolved and played in-app with no WebView, and torrent links.

04

Watch Together

Synced playback carried over a WebRTC data channel between the people in the room. No central relay server.

05

Release feed

New-release lists are synced from TMDB: upcoming, now playing, and on the air, ready on the Home screen.

06

Private by design

Everything runs on-device. There are no API-based LLM calls anywhere in the app, and no account to sign in to.

Get Mofy

Ready when you are

Download the APK, install it straight on your Android phone, and start watching: your own library, a curated classic, or a title linked from YouTube. It is a direct download: no store, no account, no waiting.

  • Android 8.0+ · minSdk 26
  • arm64
  • ~122 MB
  • Direct APK download

Mofy is a personal project, not a Play Store app. You install it yourself.