Netflix

Subscription streaming service for licensed and original film and TV.

NOT REALLY · consider alternatives
price $19.99/mosubscription / year $239.88estimated build time a weekendreplaced by 0 people

You can absolutely build a Netflix, the software part is the easy part. A video catalog, transcoding pipeline, adaptive streaming player, watch progress, and profiles is a genuinely fun weekend of work, and self-hosted media servers already prove it. What you cannot build is the thing you were actually paying for: thousands of hours of licensed content plus originals you legally cannot obtain. A media server pointed at an empty disk is a very nice empty shelf. The honest DIY move is Jellyfin or a hand-rolled version of it over media you already own, which changes what the product is rather than replacing it.

Build verification: not recorded. How we judge buildability

What you give up

  • The entire catalog: licensed films, TV, and originals you cannot legally acquire
  • Global CDN delivery that does not stutter on hotel wifi
  • Native apps on every TV, console, phone, and streaming stick
  • Downloads with DRM, offline playback, and multi-device sync that just works
  • Recommendations built on hundreds of millions of viewing histories

Why people still pay

Nobody subscribes for the UI, they subscribe for the shelf. Netflix spends billions a year producing and licensing things you cannot buy, torrent legally, or approximate, and then delivers them at a bitrate that holds up on a TV over a mediocre connection through apps that already exist on the hardware in your living room. A self-hosted player solves playback, which was never the bottleneck. The moment your build needs content, you are either buying discs, buying digital copies, or committing crimes, and none of those are cheaper or more convenient than the subscription.

Your build guide

The stack, security requirements, and agent rules for a focused replacement.

Before you start

  • Media files you actually have the right to store
  • A machine with disk space and enough CPU or a GPU for transcoding
  • ffmpeg installed
  • A metadata API key, for example TMDB
  • Bandwidth if you want to stream outside your own network
01
Node.js with TypeScript, Fastify for the API.
02
Model source media, edit decisions, processing jobs, and exported assets; keep stable source IDs and timestamps.
03
Interface for this streaming workflow: a focused streaming input, review, and export interface.
engineering roadmap

Implementation plan

1

Phase 1, architecture and data

Node.js with TypeScript, Fastify for the API. Model source media, edit decisions, processing jobs, and exported assets; keep stable source IDs and timestamps.

2

Phase 2, implement

Runs ffprobe on each file to record duration, resolution, codecs, and audio tracks.

3

Phase 3, implement

Serves a library browse UI: poster grid, search, filter by movie vs series, series drilldown to seasons and episodes.

4

Phase 4, review and output

Plays video at /watch/:id. If the source is browser-friendly h264/aac, stream it directly with HTTP range support. Otherwise transcode on the fly to HLS with ffmpeg, segmenting into a cache directory, and serve the playlist to hls.js. Reuse cached segments on repeat plays. Explicitly out of scope: any content acquisition, downloading, scraping, or DRM. No native mobile or TV apps. No recommendation engine beyond a recently-added row. No multi-user auth or public internet exposure; bind to localhost by default and document that exposing it is my problem.

5

Phase 5, recovery and acceptance

Keep the original media file untouched when decoding or rendering fails; show the failing job and allow retry. Verify this invariant with a saved fixture: The original hash must remain unchanged; cuts and captions must stay aligned after export despite a variable input frame rate. State the practical limit: The entire catalog: licensed films, TV, and originals you cannot legally acquire.

the pro prompt
Build a self-hosted personal media streaming server and web player. Single project, runs on my own machine, no accounts service, no cloud, no telemetry.

Stack, no substitutions:
- Node.js with TypeScript, Fastify for the API
- SQLite via better-sqlite3 for the library database
- React with Vite for the frontend, plain CSS, no component library
- ffmpeg and ffprobe invoked as child processes
- hls.js in the browser for playback

What it does:
1. Reads MEDIA_ROOT from .env and recursively scans it for video files (mp4, mkv, avi, mov). Parses filenames into title, year, and optional season/episode.
2. Runs ffprobe on each file to record duration, resolution, codecs, and audio tracks.
3. Optionally enriches each title with metadata and poster art from the TMDB API using TMDB_API_KEY from .env. If the key is missing, skip enrichment gracefully and show a generated placeholder poster.
4. Serves a library browse UI: poster grid, search, filter by movie vs series, series drilldown to seasons and episodes.
5. Plays video at /watch/:id. If the source is browser-friendly h264/aac, stream it directly with HTTP range support. Otherwise transcode on the fly to HLS with ffmpeg, segmenting into a cache directory, and serve the playlist to hls.js. Reuse cached segments on repeat plays.
6. Tracks watch progress per profile. Local profiles are just names in SQLite, no passwords, no auth provider. Resume where you left off, mark watched at 90 percent, and show a Continue Watching row.
7. Extracts embedded subtitle tracks with ffmpeg, converts to WebVTT, and exposes them as selectable tracks in the player.
8. A CLI command "npm run scan" for rescanning, plus a watcher that picks up new files while running.

Explicitly out of scope: any content acquisition, downloading, scraping, or DRM. No native mobile or TV apps. No recommendation engine beyond a recently-added row. No multi-user auth or public internet exposure; bind to localhost by default and document that exposing it is my problem.

Deliver a README with setup steps, a .env.example listing MEDIA_ROOT, TMDB_API_KEY, PORT, and TRANSCODE_CACHE_DIR, and seed the database on first run. Keep the whole thing runnable with npm install then npm run dev.

$ open in your agent (prompt prefilled, you press enter), copy the prompt or copy AGENTS.md · generated from this app's build plan

prior art · use these instead of building, if you'd rather

No prior-art project is listed yet. Compare the scoped build with the paid product before choosing.

share on X ↗

Questions about Netflix

Can you build your own Netflix with AI?

A full replacement is not the recommended project. You can absolutely build a Netflix, the software part is the easy part. A video catalog, transcoding pipeline, adaptive streaming player, watch progress, and profiles is a genuinely fun weekend of work, and self-hosted media servers already prove it. What you cannot build is the thing you were actually paying for: thousands of hours of licensed content plus originals you legally cannot obtain. A media server pointed at an empty disk is a very nice empty shelf. The honest DIY move is Jellyfin or a hand-rolled version of it over media you already own, which changes what the product is rather than replacing it.

What does the Netflix build prompt cover?

The prompt starts with this scope: A self-hosted streaming site that scans a local media folder, pulls metadata and artwork, and plays it back in the browser with per-profile resume. Full-product capabilities excluded from the comparison include: The entire catalog: licensed films, TV, and originals you cannot legally acquire; Global CDN delivery that does not stutter on hotel wifi; Native apps on every TV, console, phone, and streaming stick. Follow the implementation plan and its prerequisites before expanding the build.

How do I use the prompt, AGENTS.md and agent skills?

Start with the Netflix prerequisites and stack, then copy the prompt into your coding agent. Save the project rules as AGENTS.md in the project root. Linked skills are optional packages or source instructions for specific tasks; review their current contents and install only those matching the chosen stack. A skill does not supply API credentials or verify the finished app.

How long will this Netflix project take?

The catalogue estimate is a weekend for the limited scope. Setup, integration approvals, debugging, deployment and ongoing maintenance can add time. This is an estimate, not a delivery guarantee.

What would I give up by replacing Netflix?

The entire catalog: licensed films, TV, and originals you cannot legally acquire; Global CDN delivery that does not stutter on hotel wifi; Native apps on every TV, console, phone, and streaming stick; Downloads with DRM, offline playback, and multi-device sync that just works; Recommendations built on hundreds of millions of viewing histories. Nobody subscribes for the UI, they subscribe for the shelf. Netflix spends billions a year producing and licensing things you cannot buy, torrent legally, or approximate, and then delivers them at a bitrate that holds up on a TV over a mediocre connection through apps that already exist on the hardware in your living room. A self-hosted player solves playback, which was never the bottleneck. The moment your build needs content, you are either buying discs, buying digital copies, or committing crimes, and none of those are cheaper or more convenient than the subscription.

What price is this guide comparing against?

The recorded Standard (ad-free) plan is $19.99/mo (monthly per household), checked 2026-08-18. Check the linked pricing source before buying. Building your own also has hosting, API and maintenance costs; the recorded amount is not a guaranteed saving.

What can I use instead of building Netflix?

No alternative is listed in this entry yet. That is a gap in this catalogue, not proof that no suitable product exists. Compare the paid product and the proposed scope before committing to a build.

Every week, more subscriptions die.

New verdicts, new prompts, the week's most-doomed apps.
One email. Unsubscribe in one click.

last week:100 Questions · KINDA1of10 · KINDA1Password · KINDA+1090 more

free forever · no scanner spam · the prompt stays on the site, the deaths come to you

$weekly: what got a verdict, what died.