@schmittdev/streamforge
v0.6.0
Published
StreamForge is a lightweight IPTV middleware that lets you:
Readme
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 startConfiguration
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:
ffmpegin 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/autowith 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-x64Note: 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
