Rewind
Upload your Netflix history, get it handed back as something worth looking at. Your CSV never leaves the browser.
Why I built it
Netflix lets you export your entire viewing history as a CSV, and it's the most boring document you'll ever open — thousands of rows of titles and dates. But there's a whole story in there: your binges, your comfort rewatches, the month you clearly stopped sleeping. I wanted to surface it.
What it does
- Drop in the CSV and get the headline numbers — total plays, real hours watched, active days, longest streak
- The confessions: biggest binge, longest dry spell, biggest comeback, and how many things you've watched twice
- The graveyard — shows you abandoned after an episode or two, in grayscale where they belong
- The rematch — this year against last, both truncated to the same day so the fight is fair
- A 365-day heatmap, monthly rhythms, and cumulative hours — every chart hand-rolled, no chart library
How it works
Everything happens in the browser: a hand-rolled parser turns Netflix's CSV into clean records, and a single-pass stats engine computes every number from binges to the heatmap. The only thing that ever touches a server is title strings — two small API routes look up posters and real episode runtimes on TMDB, cached for a week (misses included, so failed lookups aren't retried). Without API keys it still works, just on average runtimes.
A look inside
fair fight — both years measured Jan 1 through Jul 4
The hard part
Netflix's export is messier than it looks — episodes, seasons, and films all share one flat “title” column (“Show: Season 2: Episode 4”, colons inside show names, “Limited Series”, “Part 2”), and the date format changes by locale, so the parser detects DD/MM vs MM/DD by scanning for impossible days. Matching titles against TMDB is its own gamble: picking the most-voted search result and sanity-checking runtimes to 5–400 minutes beat everything cleverer I tried.
Status
Live at rewind.mananvyas.com — try it with your own export. Your CSV never leaves the browser; the only thing sent anywhere is title strings for poster and runtime lookups.