Skip to content

Repository files navigation

Netflix Remote

A self-hosted web app that turns your phone or browser into a remote control for your Smart TV. Built for controlling Netflix, but works as a full TV remote.

Run it on your local network, open it on your phone, and control your TV — no app store needed.

Supported TVs

Brand D-Pad Keyboard Media Volume Apps
LG webOS Yes Yes Yes Yes Yes
Samsung Yes Yes Yes Yes Yes
Roku Yes Yes Yes Yes Yes

Features

  • D-pad navigation — Arrow keys, OK, back, home
  • Media controls — Play, pause, stop, rewind, fast-forward
  • Volume control — Volume up/down, mute
  • Keyboard input — Type text on your TV from your phone
  • Quick actions — Launch Netflix, power off
  • Auto-discovery — Finds TVs on your network via SSDP
  • Auto-reconnect — Reconnects automatically if the connection drops
  • Dark theme — Netflix-inspired UI designed for mobile

Getting Started

Prerequisites

  • Node.js 18+
  • A Smart TV on the same network

Install & Run

git clone https://github.com/jdcodes1/netflixremote.git
cd netflixremote
npm install
npm run dev

Open http://localhost:3000 on your phone or browser.

Setup

  1. The app will scan your network for TVs
  2. Select your TV or enter its IP address manually
  3. Accept the pairing prompt on your TV (LG/Samsung)
  4. Start controlling your TV

How It Works

Phone/Browser → HTTP → Next.js API routes → TV protocol → Smart TV

The backend is required because browsers can't connect directly to TV protocols (WebSocket/SSAP for LG, WebSocket for Samsung, HTTP for Roku). The Next.js server acts as a bridge.

Tech Stack

  • Next.js 14 — Frontend + API backend
  • Tailwind CSS — Styling
  • TypeScript — Type safety
  • lgtv2 — LG webOS control (SSAP over WebSocket)
  • ws — Samsung control (WebSocket)
  • node-ssdp — TV network discovery

Important Notes

  • This app must run on your local network — it connects directly to your TV
  • Cloud deployments (Vercel, etc.) won't be able to reach your TV
  • LG webOS TVs must be powered on (not standby) to accept connections
  • First connection to LG/Samsung TVs requires accepting a pairing prompt on the TV

License

ISC

About

Next.js + TypeScript web remote for controlling Smart TVs (LG webOS, Samsung, Roku) — SSDP auto-discovery, WebSocket device pairing, D-pad/keyboard input, and media/volume control from any browser

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages