Initial upload: xtream-google-tv-player

This commit is contained in:
Abderrahim-Mouhcine
2026-08-16 19:57:48 +01:00
commit a93a155336
24 changed files with 1057 additions and 0 deletions
+133
View File
@@ -0,0 +1,133 @@
# Xtream Google TV Player
Projet Android TV / Google TV en Kotlin pour lire un accès Xtream compatible.
Ce ZIP contient un MVP propre : écran de connexion, appel `player_api.php`, chargement des chaînes Live et lecture vidéo avec Media3 ExoPlayer.
## Contenu
```text
XtreamGoogleTvPlayer/
├── settings.gradle.kts
├── build.gradle.kts
├── gradle/libs.versions.toml
└── app/
├── build.gradle.kts
├── proguard-rules.pro
└── src/main/
├── AndroidManifest.xml
├── java/ma/tkgraph/xtreamtv/
│ ├── MainActivity.kt
│ ├── data/
│ │ ├── model/
│ │ ├── network/
│ │ └── repository/
│ ├── ui/
│ │ ├── screens/
│ │ └── theme/
│ └── util/
└── res/
```
## Fonctionnalités incluses
- Application Android TV reconnue par le launcher Google TV.
- Connexion via serveur, username et password Xtream.
- Vérification du compte via `player_api.php`.
- Récupération des chaînes Live via `get_live_streams`.
- Lecture des flux Live en `.m3u8` avec Media3 ExoPlayer.
- Navigation simple compatible télécommande.
- Dépendances prêtes dans Gradle Version Catalog.
## Prérequis
- Android Studio récent.
- JDK 17.
- SDK Android 36 installé.
- Un appareil Google TV / Android TV ou un émulateur Android TV.
## Lancement
1. Dézipper le projet.
2. Ouvrir le dossier dans Android Studio.
3. Laisser Gradle synchroniser.
4. Lancer sur un appareil Android TV / Google TV.
Commande possible :
```bash
./gradlew :app:assembleDebug
```
Sur Windows :
```powershell
gradlew.bat :app:assembleDebug
```
> Le wrapper Gradle complet n'est pas inclus dans ce ZIP. Android Studio peut utiliser son Gradle intégré. Pour générer un wrapper : `gradle wrapper`.
## Configuration Xtream attendue
Exemple :
```text
Serveur : http://exemple.com:8080
Username : mon_user
Password : mon_pass
```
L'application appelle :
```text
/player_api.php?username=USER&password=PASS
/player_api.php?username=USER&password=PASS&action=get_live_streams
```
Puis génère une URL de lecture :
```text
/live/USER/PASS/STREAM_ID.m3u8
```
Si ton fournisseur utilise `.ts` au lieu de `.m3u8`, modifie cette ligne dans `MainActivity.kt` :
```kotlin
extension = "m3u8"
```
par :
```kotlin
extension = "ts"
```
## Fichiers principaux
| Fichier | Rôle |
|---|---|
| `MainActivity.kt` | Navigation simple entre login, accueil et lecteur |
| `LoginScreen.kt` | Écran de connexion Xtream |
| `HomeScreen.kt` | Liste des chaînes Live |
| `PlayerScreen.kt` | Lecteur vidéo Media3/ExoPlayer |
| `XtreamApi.kt` | Endpoints API Xtream |
| `XtreamApiFactory.kt` | Création Retrofit dynamique selon le serveur |
| `XtreamRepository.kt` | Couche d'accès aux données |
| `XtreamUrlBuilder.kt` | Génération des URLs Live, VOD et séries |
## À améliorer ensuite
- Stockage sécurisé des identifiants.
- Favoris.
- Catégories Live.
- VOD.
- Séries.
- EPG XMLTV.
- Reprise de lecture.
- Recherche.
- Choix automatique `.m3u8` / `.ts`.
- Design TV plus avancé avec composants TV spécialisés.
## Note légale
Cette base technique sert à lire des flux pour lesquels l'utilisateur ou le fournisseur possède les droits nécessaires. Ne l'utilise pas pour contourner des accès, redistribuer du contenu protégé ou faire n'importe quoi que les avocats adorent transformer en facture.