
Netflix Clone — Local Streaming
Web DevelopmentProject Overview
A self-hosted, Netflix-style streaming application that serves a personal movie library straight from local storage. The Node.js backend scans the library, builds a searchable catalog, enriches it with TMDB metadata, and streams video with full HTTP Range support — so seeking and resuming feel instant. Built with zero runtime dependencies, using only Node's native modules on the server and vanilla JavaScript on the front-end.
What I Built
Streaming engine. Implemented HTTP Range streaming from scratch on Node's native http module — every title plays back with instant seek, resume, and partial-content support.
Catalog pipeline. A scanner walks the local library, builds a catalog keyed by id, and enriches each entry with TMDB posters, backdrops, and episode stills.
Security by design. No raw filesystem path ever reaches the client — everything is resolved server-side against the catalog, and the TMDB token stays on the server.
Full Netflix UX. Recreated the login, profile selection, and browsing experience, plus FFmpeg thumbnails and the option to open a title in the OS default player.
Application Gallery






Technical Implementation
Backend. Pure Node.js on the native http module — no Express, no framework. Serves static files, a catalog API, thumbnail generation, and the streaming endpoint.
Streaming. GET /stream honours the Range header and returns 206 Partial Content, enabling seek without downloading the whole file.
Thumbnails. FFmpeg is spawned to extract poster frames, which are cached on disk and reused on later requests.
Metadata. A server-side TMDB client enriches the catalog with artwork and episode data; the API token never crosses to the browser.
Front-end. Vanilla JS modules — app, auth, config, data, and a custom i18n layer — with a CSS-only Netflix-style UI and HTML5 video playback.