Web app pour lire ton service IPTV via l'API Xtream Codes. Stack : Vue 3 + Vite + Tailwind (frontend) | Python FastAPI (backend proxy)
- Node.js 18+
- Python 3.10+
cd backend
python3 -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt
uvicorn main:app --reload --port 8000Le backend tourne sur → http://localhost:8000
cd frontend
npm install
npm run devLe frontend tourne sur → http://localhost:5173
Lance les deux serveurs, ouvre http://localhost:5173, et entre :
- URL du serveur :
http://ton-serveur.com:8080 - Username : ton username Xtream
- Password : ton password Xtream
iptv-app/
├── backend/
│ ├── main.py # API FastAPI + proxy stream
│ └── requirements.txt
└── frontend/
├── src/
│ ├── api/
│ │ └── xtream.js # Appels API Xtream Codes
│ ├── components/
│ │ ├── VideoPlayer.vue # Player HLS (hls.js)
│ │ ├── ChannelList.vue # Liste des chaînes
│ │ └── CategorySidebar.vue
│ ├── stores/
│ │ └── iptv.js # State global (Pinia)
│ ├── views/
│ │ ├── LoginView.vue
│ │ ├── LiveTV.vue
│ │ └── VOD.vue
│ ├── App.vue
│ ├── main.js
│ └── style.css
├── index.html
├── vite.config.js # Proxy /api → localhost:8000
├── tailwind.config.js
└── package.json
- Auth : les credentials sont stockés dans
localStorageet envoyés à chaque requête - Proxy CORS : tous les appels API et les streams passent par le backend FastAPI pour éviter les blocages CORS
- Player :
hls.jspour les streams HLS/M3U8, fallback natif pour Safari
- EPG (guide des programmes)
- Favoris (localStorage)
- Support MPEG-TS avec
mpegts.js - Séries / épisodes
- Mode plein écran amélioré
- PWA (installable sur mobile)