MovixOpenSource/API/proxiesembed
Movix eae5a24c51 feat: ajoute KissKH et fiabilise les sources, les sous-titres et le Cast — Android 2.5.8
- corrige l’extraction Fsvid/Vidzy dans proxiesembed, les extensions et le userscript avec un décodage XOR/P.A.C.K.E.R plus robuste
- rejette les URL « troll » et supprime les résultats Fsvid/Vidzy contaminés des caches
- ajoute KissKH pour les films et séries avec matching TMDB, catalogue, cache distribué, verrouillage, rotation des proxys et fallback sécurisé
- ajoute le relais KissKH HLS/MP4 dans proxiesembed, avec retry SOCKS5 sur les erreurs 403 et streaming des segments BYTERANGE
- prend en charge les sous-titres KissKH SRT/TXT/TXT2, leur déchiffrement AES et leur conversion en WebVTT
- intègre KissKH au lecteur, aux priorités de sources, aux extensions Chrome/Firefox et au userscript
- améliore la sélection, le formatage sécurisé, la traduction et l’affichage Picture-in-Picture des sous-titres
- corrige le Cast web et Android pour transmettre les sous-titres internes, externes, KissKH et traduits
- ajoute le support des pistes WebVTT inline via le relais LAN Android et améliore le suivi des sessions Cast
- protège les liens jouables des caches Cpasmal et Coflix contre les rafraîchissements vides ou concurrents
- fiabilise la sélection des saisons FStream et améliore le matching DarkiWorld par TMDB, titre et année
- simplifie les nouvelles URL TMDB tout en conservant le décodage des anciens identifiants encodés
- corrige l’opacité des icônes SVG dans toute l’interface en séparant la couleur de leur niveau d’opacité
- met à jour le Dockerfile vers Node.js 22 et installe uniquement les dépendances runtime du workspace Hono
- ajoute le workspace server avec ses dépendances dédiées et un arrêt gracieux sur SIGTERM/SIGINT
- accélère le healthcheck Docker et évite de recopier tous les node_modules du builder dans l’image finale
- retire les migrations et créations de tables automatiques au démarrage de la Main API au profit de db:init
- attribue un port CycleTLS distinct à chaque worker pour éviter les conflits en mode cluster
- ajoute des tests de non-régression pour KissKH, les caches de sources, CycleTLS et le Cast Android
- publie Android 2.5.8 build 17 avec le nouvel APK
- met à jour les extensions Chrome 1.3.13 et Firefox 1.5.10

Co-authored-by: GPT-5.6 Sol <noreply@openai.com>
2026-08-03 21:37:41 +02:00
..
app_files tird release 2026-04-28 17:55:00 +02:00
drmproxy tird release 2026-04-28 17:55:00 +02:00
.env.example tird release 2026-04-28 17:55:00 +02:00
README.md tird release 2026-04-28 17:55:00 +02:00
requirements.txt tird release 2026-04-28 17:55:00 +02:00
seekstreaming_utils.py feat: synchronise le repo privé — Cast, sources, API et mobile 2.5.7 2026-08-02 12:09:37 +02:00
server.py feat: ajoute KissKH et fiabilise les sources, les sous-titres et le Cast — Android 2.5.8 2026-08-03 21:37:41 +02:00
uqload_utils.py fix: restore Fsvid, Vidzy and Uqload extraction across all clients 2026-07-29 14:01:03 +02:00

Proxies Embed

API/proxiesembed/ est le gros proxy Python du projet. Il sert à la fois de proxy de streaming, de boîte à outils pour certains extracteurs d'hosters, de passerelle DRM et de couche de contournement pour des cas où le frontend ou le backend Node ne suffisent plus.

Le service est écrit avec aiohttp et pensé pour la charge : connexions concurrentes, caches mémoire, coalescing de requêtes, pools proxy et endpoints spécialisés par hoster.

Ce que le service fait

  • proxy générique de flux via /proxy
  • extracteurs dédiés pour plusieurs hosters embed
  • endpoints proxy spécialisés par source
  • debrid unlock via API
  • surface DRM avec extraction de manifestes et réécriture de ressources
  • vérification d'accès VIP via MySQL
  • support de pools SOCKS5 et de sessions dédiées pour certains cas comme france.tv

Démarrage

cd API/proxiesembed
cp .env.example .env
pip install -r requirements.txt
python server.py

Notes utiles :

  • le code bind actuellement sur http://localhost:25569
  • le fichier .env.example contient PORT, mais server.py écoute aujourd'hui 25569 en dur
  • certaines routes DRM s'appuient sur des utilitaires additionnels dans drmproxy/ ; si ces utilitaires sont absents, le serveur démarre quand même mais la partie DRM avancée reste limitée

Variables d'environnement utiles

Le fichier API/proxiesembed/.env.example couvre les besoins principaux :

  • base de données : DB_HOST, DB_PORT, DB_USER, DB_PASSWORD, DB_NAME
  • exposition publique : PROXY_BASE
  • pools proxies : PROXIES_SOCKS5_JSON, SIBNET_PROXY_SOCKS5_JSON
  • france.tv : FRANCETV_EMAIL, FRANCETV_PASSWORD
  • debrid : DEEPBRID_API_KEY

Endpoints à connaître

Route Rôle
GET /proxy et GET /proxy/{path} Proxy streaming générique
GET /health Healthcheck
GET /stats Stats runtime
GET /api/extract-fsvid Extraction FSVid
GET /api/extract-vidzy Extraction Vidzy
GET /api/extract-vidmoly Extraction Vidmoly
GET /api/extract-sibnet Extraction Sibnet
GET /api/extract-uqload Extraction Uqload
GET /api/extract-doodstream Extraction Doodstream
GET /api/extract-seekstreaming Extraction SeekStreaming
GET /voe-proxy, /fsvid-proxy, /vidzy-proxy, /vidmoly-proxy, /sibnet-proxy, /uqload-proxy, /doodstream-proxy, /seekstreaming-proxy, /cinep-proxy Proxies dédiés par source
GET/POST /drm/extract Extraction de manifeste DRM
GET /drm/manifest Réécriture de manifeste HLS ou DASH
GET /drm/resource Proxy de ressources DRM
GET /drm/b/{base_b64}/{subpath} Proxy path-based pour DASH
POST /api/debrid/unlock Unlock de liens debrid

Notes d'architecture

  • le serveur initialise plusieurs sessions HTTP spécialisées
  • certaines ressources lourdes sont cachées en mémoire avec eviction TTL
  • la partie france.tv peut utiliser une session SOCKS5H distincte pour l'extraction
  • la partie DRM tente de charger les utilitaires WideFrog au démarrage, mais reste optionnelle
  • la vérification VIP s'appuie sur MySQL avant d'autoriser certaines surfaces

Quand regarder aussi ailleurs

Si tu touches ce dossier, il faut souvent vérifier en miroir :

  • API/Mainapi/liveTvRoutes.js
  • API/Mainapi/routes/debrid.js
  • src/pages/Watch/
  • src/components/*Player*
  • cloudflareproxy/ ou RivestreamCloudflareProxy/ selon les flux concernés