Releases: Kl4rkx/free-iptv-player
Releases · Kl4rkx/free-iptv-player
v2.0.0
🎉 Free IPTV Player v2.0.0 - Xtream Codes & Production Ready
🚀 Major Features
✨ Xtream Codes Integration
- Full Xtream Codes API support with automatic fallback (M3U → JSON)
- Serverless proxy deployed on Vercel for CORS-free Xtream requests
- Auto-detection of environment (localhost, Vercel, GitHub Pages)
- Smart credential handling with secure POST requests
🔒 HTTPS Mixed Content Solution
- Stream proxy endpoint (
/api/stream) converts HTTP streams to HTTPS - Transparent proxying - works automatically on GitHub Pages
- No more Mixed Content errors in production
🌐 Production Deployments
- Vercel serverless functions with Node.js 20+ (
enginesin package.json) - GitHub Pages integration with Actions-injected secrets
- Auto-deployment on push to
mainbranch - Same-origin API calls for optimal performance
🔧 Technical Improvements
Backend & Infrastructure
- ✅ Modern Vercel configuration (no legacy
builds) - ✅ Node.js 20+ runtime (future-proof, 18.x EOL in Aug 2025)
- ✅ Dynamic proxy URL resolution based on deployment context
- ✅ CORS-enabled serverless functions for Xtream and streaming
- ✅ Security: Fixed ReDoS vulnerability in URL normalization
Frontend Enhancements
- ✅ Improved error handling with user-friendly messages
- ✅ Console logging for debugging Xtream connections
- ✅ Loading states and back buttons for better UX
- ✅ Safe channel sanitization (HTTP logos → fallback in HTTPS)
Configuration & Secrets
- ✅ Runtime config injection via GitHub Actions
- ✅
CONFIG.getProxyUrl()auto-detects Vercel/Pages/localhost - ✅ GitHub Secret
VERCEL_PROXY_URLfor Pages deployment - ✅ Zero hardcoded URLs in production code
📦 New API Endpoints
/api/xtream (POST)
Proxy for Xtream Codes servers. Accepts:
{
"server": "http://your-server:port",
"username": "user",
"password": "pass"
}Returns M3U or JSON channel list.
/api/stream (GET)
HTTP-to-HTTPS streaming proxy. Usage:
/api/stream?url=http://example.com/stream.m3u8
Forwards Range headers for HLS compatibility.
🐛 Bug Fixes
- Fixed "Function Runtimes must have a valid version" error
- Fixed "Se queda en cargando canales..." when using Xtream
- Fixed parseM3U/parseXtreamJson scope issues (moved to class)
- Fixed NOT_FOUND errors in Vercel deployments
- Fixed Mixed Content blocking HTTP streams on HTTPS sites
📚 Documentation Updates
- Added DEPLOYMENT.md - Full deployment guide
- Added GITHUB-SECRETS.md - Secrets configuration
- Updated README.md with Vercel deployment instructions
- Added deploy.ps1 helper script for Windows users
🔄 Migration Guide
From v1.x to v2.0.0
For Vercel users:
- Ensure package.json has
"engines": { "node": ">=20.x" } - Remove any
functions.runtimefrom vercel.json - Redeploy with
vercel --prod
For GitHub Pages users:
- Set GitHub Secret:
VERCEL_PROXY_URL=https://your-vercel-app.vercel.app/api/xtream - Push to
main- Actions will inject the secret automatically
For Xtream users:
- Use the Xtream Codes tab in the app
- Enter server URL (without
/api/xtreamsuffix) - Enter username and password
- The app will use the proxy automatically in production
⚙️ System Requirements
- Node.js: 20.x or higher
- Browsers: Chrome 90+, Firefox 88+, Safari 14+, Edge 90+
- Vercel: Free tier (100GB bandwidth/month)
- GitHub Pages: Enabled in repository settings
🎯 What's Next (v2.1.0)
- Channel categories from Xtream API
- EPG (Electronic Program Guide) integration
- Favorites and history
- VOD (Video on Demand) support
- Multi-language EPG
🙏 Contributors
Special thanks to all contributors and the Vercel community for deployment guidance!
Full Changelog: v1.0.0...v2.0.0
v1.0.0 — First stable release
Release v1.0.0 — Free IPTV Player (English)
Tag
-
v1.0.0 -
First stable release of Free IPTV Player — a lightweight web/PWA player for M3U/M3U8 (HLS) streams. No ads, no subscriptions. Includes support for 11,815+ live TV channels (content depends on provided lists).
Key features
- Play M3U / M3U8 (HLS) streams
- PWA-ready (installable on supported devices)
- Lightweight UI (JavaScript/HTML/CSS) optimized for desktop and mobile
- Channel search and basic filtering
- Favorites (local storage)
- Import/export M3U lists
- Basic EPG support when provided by source
- Robust playback error handling (retries + user messages)
Quick start
- Clone the repo or download the release
- Serve the project over HTTP(S) (recommended), e.g.:
- python -m http.server 8000
- Open index.html in a browser or install as PWA
- Import a M3U file or paste a M3U URL in the UI
Compatibility & requirements
- Modern browsers with HLS support or use HLS.js where needed
- Serving over HTTPS recommended for mobile playback
Known issues
- Some public M3U sources include offline or geo-restricted streams
- EPG availability and quality depend on the source
- iOS playback may require specific stream configurations
Security & privacy
- No user credentials stored by default
- Favorites and settings stored locally (localStorage)