What is DLNA Media Server?
DLNA Media Server is a lightweight, TypeScript-based implementation of a DLNA (Digital Living Network Alliance) media server. It runs on Node.js and enables you to stream video content from your machine to any DLNA-compatible device on your local network — smart TVs, game consoles, media players, and more. The server implements the UPnP (Universal Plug and Play)MediaServer:1 device specification, including:
- SSDP (Simple Service Discovery Protocol) for automatic device advertisement
- ContentDirectory:1 service for browsing and serving media metadata
- SOAP over HTTP for UPnP service control messages
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
Key features
- Zero-config device discovery — SSDP multicast automatically advertises the server on your LAN; no manual IP entry needed on client devices
- ContentDirectory browsing — DLNA clients can browse, search, and fetch your video library via standard UPnP SOAP actions
- JSON-driven media gallery — add videos by editing a single
gallery.jsonfile; no database required - Auto IP detection — the server detects your local IPv4 address at startup, so it works across network changes
- Edge.js XML templates — all UPnP XML responses are rendered from clean, editable Edge.js templates
- Pure TypeScript — fully typed source with minimal dependencies (
cheerioandedge.js)
Requirements
- Node.js 18 or later (ESM support required)
- TypeScript 5+ (for development)
- A local network with DLNA-capable devices to stream to