High-performance IPTV HLS proxy, restreamer and VOD tunnel — written in C++, self-hosted, zero runtime dependencies.
Downloads, documentation and release notes:
🌐 https://ptp-proxy.webtool.es
PtP-Proxy is a multipurpose HLS streaming server that sits between your media clients (Smart TV, Android, VLC, Kodi, ffplay…) and the upstream IPTV or VOD sources. It runs as a single static binary with no external runtime required.
| Mode | Description |
|---|---|
| Proxy | Transparently rewrites remote HLS playlists and forwards segments/keys. Supports per-channel authentication headers. No FFmpeg needed. |
| Restream | Launches one FFmpeg process per channel, generates its own HLS output (disk or RAM), and serves it to any number of simultaneous clients. |
| Raw Tunnel | Range-aware HTTP tunnel for MP4/MKV VOD. Persistent TCP connection to the CDN, no memory buffering, native seek support. |
| VOD Streaming | Full VOD pipeline with #EXT-X-ENDLIST signaling, CDN URL caching and metadata caching. |
| Feature | Details |
|---|---|
| ⚡ Async I/O | Built on Boost.Asio / Boost.Beast — handles hundreds of concurrent streams |
| 🔒 TLS | Upstream TLS 1.2 + 1.3 and optional HTTPS listener |
| 🛡️ Security | Anti-SSRF controls, IP filtering, HMAC stream tokens |
| 🎬 Transcoding | Optional CPU (x264) or GPU (NVENC) via FFmpeg |
| 🧠 RAM segments | HLS segmentation in RAM — no disk writes |
| 🔑 DRM | Transparent proxy of AES-128 HLS keys |
| 📊 Metrics | Prometheus-compatible /metrics endpoint |
| 🗓️ Caching | PHP claim cache (30 s TTL), CDN URL cache (5 min), VOD metadata cache (5 min) |
| 🪟 Windows Service | Built-in --install-service support — no NSSM or Task Scheduler needed |
| 🐧 Linux | Runs as a systemd service (unit file included in zip) |
| 🏠 Self-hosted | Fully local, no cloud, no telemetry |
Pre-built binaries for all supported platforms are available on the project website:
| Platform | Architecture | Link |
|---|---|---|
| Windows | x64 | ptp-proxy.webtool.es/download |
| Linux | x64 | ptp-proxy.webtool.es/download |
| Linux | ARM64 | ptp-proxy.webtool.es/download |
| Linux | ARMv7 | ptp-proxy.webtool.es/download |
Releases are versioned by build date (e.g.
v20260307).
All past releases are also available on the Releases page.
# 1. Extract the zip
# 2. Copy the example config
cp config-example.json config.json
# 3. Edit config.json — set server.port, add your channels
# 4. Run
./ptp-proxy --config config.json # Linux
ptp-proxy.exe --config config.json # Windows
# 5. Check it's up
curl http://localhost:8180/health
# → ok
# 6. Get the M3U playlist
curl http://localhost:8180/playlist.m3u# Install
ptp-proxy.exe --install-service --config "C:\path\to\config.json"
# Start
Start-Service ptp-proxy# A systemd unit file is included in the zip
sudo cp ptp-proxy.service /etc/systemd/system/
sudo systemctl enable --now ptp-proxy| Method | Path | Description |
|---|---|---|
GET |
/health |
Liveness check — returns ok |
GET |
/playlist.m3u |
M3U playlist of all configured channels |
GET |
/channels/<id>/playlist.m3u8 |
HLS playlist for a single channel |
GET |
/stream?t=<token> |
Secure-token stream URL |
GET |
/metrics |
Prometheus metrics (localhost only) |
GET |
/api/channels |
Channel list as JSON (localhost only) |
{
"server": {
"host": "0.0.0.0",
"port": 8180
},
"logging": {
"file": "ptp-proxy.log",
"level": "info"
},
"channels": [
{
"id": "channel1",
"name": "My Channel",
"mode": "proxy",
"url": "https://example.com/live/stream.m3u8",
"headers": {
"User-Agent": "MyPlayer/1.0"
}
}
]
}See config-example.json (included in every release zip) for the full reference.
Windows: Windows 10 / Server 2016 or later, x64. OpenSSL DLLs are bundled in the zip.
Linux x64: glibc 2.31+ (Ubuntu 20.04 / Debian 11 or newer).
Linux ARM64 / ARMv7: same glibc requirement; tested on Raspberry Pi 4/5 and similar SBCs.
FFmpeg: only required if you use restream or transcoding mode.
Install separately: apt install ffmpeg / winget install FFmpeg.
Copyright (c) 2025-2026 ptp-proxy.webtool.es — All rights reserved.
Permission is granted to download and use the pre-built binaries provided
through official channels (https://ptp-proxy.webtool.es) for personal or
commercial purposes.
Redistribution, modification, reverse-engineering or sublicensing of the
binaries is not permitted without explicit written permission.
Source code is not published.