Prerequisites
Before you begin, make sure you have the following installed:- Node.js 18+ — required for ESM module support
- TypeScript 5+ — used to compile the server source
- Git — to clone the repository
Set up the server
Install dependencies
Install the required runtime and development dependencies:This installs
cheerio (XML parsing), edge.js (templating), and TypeScript type definitions.Build the project
Compile the TypeScript source to JavaScript:Output files are written to the
out/ directory. The compiler targets ESNext with NodeNext module resolution.Add a video to your gallery
Open Update
resources/gallery.json and add your video entries. Each entry needs an id, title, mimeType, and a publicly accessible url.resources/gallery.json
The
url field must point to a location that your DLNA client device can reach over the network. A direct HTTP URL to the video file is required — the server does not proxy or transcode media.totalVideos to match the number of entries in the videos array.What to expect
Once started, the server logs two lines confirming both services are active:- The SOAP server listens on port
8080and handles HTTP requests from DLNA clients — device description, ContentDirectory browsing, and event subscriptions. - The SSDP socket listens on UDP port
1900and joins the239.255.255.250multicast group to advertise the server on your local network.
Connect a DLNA client
No manual configuration is needed on client devices. Because the server responds to UPnPM-SEARCH discovery messages, any DLNA-compatible device on the same network will find it automatically.
Smart TVs — open the media source or device list; the server appears as a media server.
VLC — go to View > Playlist, then expand Local Network > Universal Plug’n’Play to find the server and browse your gallery.
Other clients — any UPnP/DLNA MediaRenderer or control point app (Kodi, Infuse, BubbleUPnP) will discover and connect automatically.
The server advertises itself on the network as “NodeJS Media Server” using the
SERVER header node/[version] UPnP/1.1. This is the name DLNA clients display in their device lists.