Skip to main content

Welcome

DLNA Media Server is a lightweight, TypeScript-based DLNA server built on Node.js. Run it on any machine and instantly stream your video library to smart TVs, game consoles, media players, and any other DLNA-compatible device on your local network — no configuration needed.

Quickstart

Get the server running and streaming in minutes

How It Works

Understand the DLNA/UPnP protocol stack

Configure Your Gallery

Add your video files to the media gallery

Architecture

Explore the server’s internal structure

How it works

1

Server starts up

The server auto-detects your local IPv4 address and starts two listeners: an HTTP server on port 8080 (for SOAP/UPnP control) and a UDP multicast socket on port 1900 (for SSDP device discovery).
2

DLNA clients discover the server

When a DLNA client (smart TV, VLC, etc.) searches for media servers, the server responds to its M-SEARCH broadcast with its location and identity — no manual IP entry required.
3

Client browses your library

The client fetches the device description, then sends a SOAP Browse request. The server responds with your video catalog from gallery.json in DIDL-Lite XML format.
4

Streaming begins

The client uses the video URLs from the catalog to stream content directly. The server stays running to handle further discovery and browse requests.

Key features

  • Zero-config discovery — SSDP multicast advertises the server automatically on your LAN
  • ContentDirectory:1 — full Browse, GetSortCapabilities, and GetSearchCapabilities support
  • JSON media catalog — add videos by editing a single gallery.json file; no database required
  • Edge.js XML templates — clean, editable templates generate all UPnP XML responses
  • Pure TypeScript — fully typed, minimal dependencies (cheerio and edge.js)