Building a movie finder from a few seconds of video

A clip catches your attention, but there is no title, no actor you recognise and often nothing useful to search for. I built a mobile app that combines audio, faces and web evidence to identify what you are watching.

Role

Solo Engineer, Client and Server

Organisation

Self-directed

Industry

Consumer · Media · Applied AI

Focus

Mobile · AI · Full-stack

/ Problem

You are scrolling through TikTok or Instagram and a scene from a film catches your attention.

You want to watch it, so you check the comments. Nobody mentions the title.

Searching is difficult because you have almost nothing to search with. You may not recognise the actors, remember the dialogue or even know whether the clip came from a film or television series.

This kept happening to me. Most times I eventually gave up, kept scrolling and forgot about whatever I wanted to watch.

After enough of those moments, the question became simple:

What if there was a Shazam for movies?

/ Solution

Ovelo splits each clip into audio and visual evidence.

The audio is transcribed while the video is sampled every few seconds. Faces are detected, cropped and compared so repeated appearances of the same actor are removed before recognition. A sixty-second clip might produce thirty frames but only four or five unique faces.

Amazon Rekognition identifies those faces, while the reasoning model combines the actor names with the transcript and web evidence to narrow down the title.

I also cache results using the original social video ID. If the same TikTok is submitted again, Ovelo can return the answer immediately. If it is already being processed, the second request joins the existing job.

Across more than 200 personal tests, processing averaged about 25 seconds.

/ What I learned

Ovelo became better when I stopped thinking only about adding more AI and started removing unnecessary work.

One actor can be ambiguous. One line of dialogue can be ambiguous. Several actors, a transcript and web evidence together are much stronger.

The same applies to performance. There is no reason to recognise the same face thirty times or process the same TikTok twice.

That combination of weaker signals, plus aggressive reuse of previous work, made the system both faster and more reliable.

/ Skills demonstrated

Mobile DevelopmentAI PipelinesRealtime (WebSockets)System DesignCost Engineering

/ Built with

React NativeExpoTypeScriptPythonFastAPIRedisWebSocketsyt-dlpFFmpegOpenCVAmazon Rekognitionfaster-whisperOpenAI APITMDbSupabaseDocker
Source on GitHub