← Back to posts

I'm working on a movie stream aggregator

Early notes on the project

After the football scraper I wanted to build something with more moving parts. Something that needs a real backend and a frontend people would actually use, instead of just fetching and storing data. So I'm building a movie stream aggregator: one page where you search a title and see where it's available to stream, instead of checking four different sites.

The rough shape of it

It's a Next.js frontend for search and browsing, backed by an Express API (moving toward Go) that serves normalized availability data, with a handful of scrapers feeding metadata and availability into a shared store.

This is also where the IMDb scraper fits in. I need reliable metadata (titles, years, cast, ratings) to match against whatever the availability scrapers pull back, since streaming sites don't all name things the same way.

The hard part isn't scraping

Getting data out of a page is the easy 20%. The actual problem is matching: deciding that "The Batman (2022)" from one source and "Batman, The" from another are the same movie, without hardcoding a pile of exceptions. Right now I'm doing title and year matching with some fuzzy string comparison, which works most of the time and fails in the ways you'd expect, mainly reboots, re-releases, and foreign titles.

Where it's at

Right now it's a working prototype on my machine. Search works, one source is wired up end to end, and the rest are stubbed. Next up is getting a second source integrated and seeing if the matching logic holds up once there are two different naming conventions to reconcile instead of one.