README.md
Complete FSTV Proxy Server
Docker-based IPTV proxy server with automated scraping and playlist generation.
π Features
- Encoded URLs: Clean proxy URLs like
/match/a7k9mq3x.m3u8 - Auto-scraping: Daily at 12:05 AM UTC
- Download endpoints: Direct playlist/EPG downloads (EPG Shows Live Events from when scraped -- it is messed up, no time to work on it ATM)
- Sports + TV: Combined matches and channels
- Real-time streams: Live HLS extraction from FSTV
π Setup
- Create structure:
mkdir fstv-proxy && cd fstv-proxy
mkdir src mappings playlists
Copy files:
- Copy Docker files to root
- Copy Python files to
src/ - Copy FSTV data files to root
Build and run:
docker-compose build
docker-compose up -d
π Server Endpoints
Base URL: http://your-server:6680
Download Endpoints:
GET /playlist/matches.m3u8- Sports matches playlistGET /playlist/channels.m3u8- TV channels playlistGET /playlist/combined.m3u8- Combined playlistGET /epg/matches.xml- Sports EPG
Streaming Endpoints:
GET /match/{id}.m3u8- Match streamGET /channel/{id}.m3u8- TV channel stream
Control Endpoints:
POST /scrape-now- Manual scrapeGET /scrape-status- Scrape infoGET /health- Health checkGET /stats- Server stats
β° Auto-Scraping
- Schedule: 12:05 AM UTC daily (Can add more/multiple times in main.py)
- Covers: Full day events (00:10 - 23:45)
- Updates: Mappings + playlists automatically
π§ Development
- Edit
src/main.pyorsrc/scraper.py - Run
docker-compose restart - No rebuilding needed!
π Usage Example
# Get playlists
curl http://your-server:6680/playlist/combined.m3u8
(/playlist/matches.m3u8 - Sports matches playlist)
(/playlist/channels.m3u8 - TV channels playlist)
# Manual scrape
curl -X POST http://your-server:6680/scrape-now
# Check status
curl http://your-server:6680/health