134 lines
3.5 KiB
Markdown
134 lines
3.5 KiB
Markdown
# 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.
|