Skip to content

About

A Modern IPTV Middleware to use in Jellyfin, Emby and anywehere else

Resources

Stars

3 stars

Watchers

0 watching

Forks

Latest commit

 

History

21 Commits

Folders and files

Repository files navigation

StreamForge

StreamForge is a lightweight IPTV middleware that lets you:

  • Ingest M3U and Xtream sources
  • Map XMLTV (EPG) to channels (manual, exact, or fuzzy auto-mapping)
  • Export a clean M3U
  • Serve HDHomeRun endpoints (/, /discover.json, /lineup.json)
  • Optionally transcode via FFmpeg
  • Run via Docker or as a single binary (optional)
  • Minimal, fast web UI at /web

Quick Start

Node.js (dev)

npm ci
npm start

Configuration

Environment variables:

  • PORT (default: 8000)
  • HOST (default: 0.0.0.0)
  • DATA_DIR (default: <project>/data)

FFmpeg (optional transcoding):

  • Linux default: /usr/bin/ffmpeg
  • macOS default: /opt/homebrew/bin/ffmpeg
  • Windows default: ffmpeg in PATH

Endpoints

  • Web UI: /web
  • M3U output: /m3u
  • XMLTV merged: /xmltv
  • HDHomeRun:
    • / (discover)
    • /discover.json
    • /lineup.json

EPG (XMLTV)

  • Add sources in XMLTV tab (URL + name)
  • Refresh to download & index (ETag/Last-Modified aware)
  • Mapping tab: search & assign tvg_id
  • Optional auto-mapping:
    • POST /api/mapping/auto with body { minScore?: 0.6, dryRun?: false, epgSource?: "Name" }

Single Binary (optional)

Build portable executables using pkg:

npm i -D pkg
# package.json → "pkg.targets": ["node18-linux-x64","node18-macos-arm64","node18-macos-x64","node18-win-x64"]
npm run build:bin
# outputs in dist/

Run:

./dist/streamforge-linux-x64 --port 8000
# DATA_DIR=/var/streamforge ./dist/streamforge-linux-x64

Note: native addons (e.g., better-sqlite3) require prebuilds for each target.


Disclaimer StreamForge does not provide any content or streams.
This software is only a tool for managing IPTV streams you legally own access to.
SchmittDEV are not responsible for any illegal use of this tool.


License

MIT

About

A Modern IPTV Middleware to use in Jellyfin, Emby and anywehere else

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages