Sobre el proyecto

MyMovieStore es una aplicación nativa de Android para explorar y reproducir contenido audiovisual desarrollada en Kotlin, cuyo mismo APK es compatible tanto con teléfonos como con Android TV/cajas. La aplicación divide sus funciones en una capa de descubrimiento de contenido y una capa de reproducción de contenido: la capa de descubrimiento de contenido extrae contenido audiovisual de páginas de Douban y admite navegación por categorías como películas, series de televisión, programas de variedades y anime; la capa de reproducción de contenido agrega 19 fuentes de reproducción mediante rastreadores (como Jujiwu, Yinghua Dongman, Dianying Tiantang, etc.), y admite búsqueda paralela multifuente, ordenación por método de inserción en huecos, análisis de detalles y reproducción con Media3 ExoPlayer. El proyecto cuenta con un sistema funcional relativamente completo: el reproductor admite sistema de danmaku (búsqueda multifuente, caché, prioridad local, tamaño de fuente adaptable), historial de reproducción, historial de búsqueda, gestión remota de configuración de fuentes de video, limpieza de caché por categorías, gestión de descargas M3U8 (incluida desencriptación de flujos cifrados AES-128, reanudación desde punto de interrupción, reproducción sin conexión), limitación de tasa de los rastreadores (cola independiente por fuente, intervalo mínimo de 3 segundos, apropiación por prioridad) y respuestas anti-scraping como superación de Cloudflare y degradación ante interceptación por huella TLS. La adaptación a Android TV se implementa mediante determinación de forma en tiempo de ejecución; la capa de red, Repository, ViewModel y el encapsulado del reproductor se comparten por completo, y el alcance de la adaptación se limita a la capa de UI. El lado de TV ofrece una UI de 10 pies (densidad ampliada 1,45 veces), sistema de foco D-pad del mando a distancia, barra de navegación superior, búsqueda mediante escaneo de código QR desde el teléfono, protecciones ante capacidades ausentes, etc. El stack tecnológico utiliza Kotlin 2.0.0, Gradle 8.9, minSdk 24, targetSdk 36, y componentes como Room, OkHttp, Media3 ExoPlayer y ZXing. El proyecto se posiciona como una práctica de rastreadores en código Kotlin, con una estructura de código clara; para agregar una nueva fuente de reproducción solo es necesario heredar de CrawlerVideoSource e implementar dos métodos de análisis.