À propos du projet
MyMovieStore est une application Android native de navigation et de lecture de films développée en Kotlin. Un seul APK est compatible à la fois avec les téléphones et Android TV/boîtiers. L'application divise ses fonctionnalités en une couche de découverte de contenu et une couche de lecture de contenu : la couche de découverte extrait le contenu vidéo des pages Douban, prenant en charge la navigation par catégories telles que films, séries télévisées, variétés et anime ; la couche de lecture agrège 19 sources de lecture par crawler (telles que Juji Wu, Yinghua Anime, Dianying Tiantang, etc.), prenant en charge la recherche parallèle multi-source, le tri par méthode d'insertion, l'analyse détaillée et la lecture via Media3 ExoPlayer.
Le projet dispose d'un système fonctionnel relativement complet : le lecteur prend en charge un système de sous-titres animés (recherche multi-source, mise en cache, priorité locale, adaptation de la taille des caractères), l'historique de lecture, l'historique de recherche, la gestion à distance de la configuration des sources vidéo, le nettoyage du cache par catégorie, la gestion des téléchargements M3U8 (incluant le décryptage des flux chiffrés AES-128, la reprise de téléchargement, la lecture hors ligne), la limitation de débit des crawlers (file d'attente indépendante par source, intervalle minimum de 3 secondes, priorité préemptive), ainsi que des mesures anti-crawling telles que le contournement de Cloudflare et la dégradation en cas d'interception d'empreintes TLS.
L'adaptation à Android TV est réalisée via une détection du facteur de forme à l'exécution. Les couches réseau, Repository, ViewModel et l'encapsulation du lecteur sont entièrement partagées, l'adaptation étant limitée à la couche UI. Le côté TV propose une interface utilisateur 10-foot (densité agrandie de 1,45 fois), un système de focus D-pad pour télécommande, une barre de navigation supérieure, une recherche par scan de code QR sur téléphone, et des gardes de fonctionnalités manquantes.
La pile technique utilise Kotlin 2.0.0, Gradle 8.9, minSdk 24, targetSdk 36, avec des composants tels que Room, OkHttp, Media3 ExoPlayer et ZXing. Le projet est conçu comme un exercice de crawling en code Kotlin, avec une structure de code claire. Pour ajouter une nouvelle source de lecture, il suffit d'hériter de CrawlerVideoSource et d'implémenter deux méthodes d'analyse.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.