Files
iptv-android-tv-2/README.md
T

3.5 KiB

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

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 :

./gradlew :app:assembleDebug

Sur Windows :

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 :

Serveur  : http://exemple.com:8080
Username : mon_user
Password : mon_pass

L'application appelle :

/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 :

/live/USER/PASS/STREAM_ID.m3u8

Si ton fournisseur utilise .ts au lieu de .m3u8, modifie cette ligne dans MainActivity.kt :

extension = "m3u8"

par :

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.