NoSubVOD Desktop est une application locale pour regarder des VODs et des lives Twitch depuis n’importe quel appareil du réseau local (mobile, tablette, TV, PC), avec historique, watchlist et portail web intégré.
La version 0.3.5 introduit un système d'extensions intégré, une première extension DevTool Explorer, le mode Multi-View avec recherche chat, ainsi que l'intégration des mises à jour automatiques de l'application.
- Système d'extensions : architecture d'extensions complète (manager, contexte, API), activation/désactivation dans les settings.
- DevTool Explorer : nouvelle extension intégrée pour le monitoring avec UI/UX améliorée.
- Multi-View + Chat Search : navigation enrichie avec vue multiple et recherche chat intégrée.
- Auto-Update : plugin updater intégré avec configuration de clé publique pour les releases desktop.
- Qualité & CI : améliorations backend/tests et exclusion de
extensions/**des checks CI/CodeQL.
La version 0.3.4 améliore le pilotage à distance du player, la stabilité de lecture HLS, la sélection de qualité vidéo, et la robustesse du mode Screen Share sur Windows.
- Contrôle distant playback : ajout des commandes Play/Pause/Seek/Volume/Mute et d'un panneau de contrôle avec infos de session.
- Player plus stable : gestion des événements distants fiabilisée dans NSVPlayer pour un comportement plus constant.
- Qualité vidéo optimisée : tri/sélection des qualités amélioré avec configuration HLS orientée stabilité.
- Screen Share Windows renforcé : compatibilité améliorée côté service + ajustements CSS responsives.
- Maintenance : refactors structurels, nettoyage de styles et bump de version global vers 0.3.4.
La version 0.3.3 se concentre sur la stabilite de lecture VOD/Live, l'optimisation du backend Rust et l'amelioration de la maintenabilite globale.
- Streaming plus fiable : correction des 404 intermittents sur le proxy HLS (
/api/stream/variant.*) avec support du proxy segment via URL directe validee. - Perf backend Rust : regex lazy, selection proxy optimisee, client HTTP partage dans TwitchService/routes, taches async harmonisees.
- Memoire et I/O : optimisations
Arc/Cow, download manager avec verrouillage granulaire, historique en buffered I/O. - Pagination et etat : pagination history/watchlist backend+frontend, state management consolide (ScreenShareService, OAuth pending cleanup).
- Securite et robustesse : middleware/validation renforces, refactor global de la gestion d'erreurs.
- Qualite projet : compression async, tracing/logging etendus, tests unitaires supplementaires, lint cleanup.
La version 0.3.2 introduit le partage d'ecran en temps reel via WebRTC, rapproche l'experience PlayerRTC du player principal, et modernise la navigation sur tablette/desktop avec un rendu dock flottant.
- Screen Share WebRTC (Windows) : nouveau module de partage d'ecran local avec roles host/viewer et signalisation WebSocket.
- Controle distant interactif : transmission souris/clavier vers l'hote selon les permissions de session.
- PlayerRTC ameliore : plein ecran immersif, controle du son (mute + volume) et masquage automatique des controles apres inactivite.
- Navigation modernisee : navbar mobile conservee et adaptation tablette/desktop/laptop en dock centre type macOS.
- Portail LAN HTTPS : support HTTPS via certificats auto-signes et parcours de connexion mobile ameliore (QR code).
- Stabilite & qualite : nettoyage lint, corrections UI/UX et harmonisation des composants Screen Share / PlayerRTC / Player.
- Versioning : montee de version globale en
0.3.2.
La version 0.2.2 transforme l'expérience de visionnage avec un contrôle total sur la qualité vidéo, des raccourcis clavier et une intégration du chat plus robuste.
- Contrôle Qualité: Sélection manuelle, qualité préférée et qualité minimale garanties (même sur iOS/iPadOS).
- Raccourcis Clavier: Contrôle complet au clavier (F pour plein écran, Espace pour pause, flèches pour volume/seek).
- Chat Relais: Intégration du chat Twitch sur Desktop et système de secours intelligent pour les connexions via IP locale (réseau local).
- Infos Streamer: Nouvel encart dynamique avec titre, catégorie, viewers, uptime et profil.
- Adblock Renforcé: Proxy GQL, spoofing iOS et gestion des discontinuités pour éviter les freezes d'écran.
- Fiabilité: Correction des erreurs 500 sur les flux longs et fallback automatique si les proxys échouent.
La version 0.2.0 migre le desktop vers Tauri.
- Poids de l’ancienne installation:
701 Mo - Poids de la nouvelle installation:
16,3 Mo - Économie mémoire: consommation RAM divisée par 8
Résultat: démarrage plus rapide, binaire bien plus léger et meilleure stabilité générale.
- Lecture des VOD via HLS généré côté serveur local.
- Lecture des lives via endpoint local
/api/live/:login/master.m3u8. - Sélecteur de qualité (Auto + niveaux manuels) dans le player.
- Adblocking live expérimental (configurable dans Settings).
- Serveur local accessible sur le LAN.
- QR code affiché côté desktop pour ouverture rapide du portail.
- Navigation: Home, Live, Search, Trends, Channel, Player, Multi-View, History, Settings.
- Système d'extensions local intégré avec activation/désactivation depuis les settings.
- Extension DevTool Explorer incluse pour le monitoring et l'exploration d'outils.
- Diffusion d'ecran/fenetre en temps reel via WebRTC (Windows).
- Session partagee sur le reseau local avec etat host/viewer.
- Mode interactif pour piloter l'ecran distant (souris + clavier) selon configuration.
- Player desktop complet (lecture, seek, volume, vitesse, qualité, fullscreen).
- Fallback natif iOS/iPadOS.
- Contrôles auto-masqués après inactivité, réaffichage au mouvement.
- Historique de lecture avec reprise.
- Watchlist.
- Synchronisation locale optionnelle (OneSync).
- Paramètres serveur persistants (dont adblock proxy/mode).
- Intégration d'un mécanisme d'auto-update desktop via plugin updater.
- Desktop shell: Tauri v2 (Rust)
- Backend local: Rust (
src-tauri/src/server) - Portail LAN: React + Vite + TypeScript (
src/portal) - UI desktop: React + Vite + TypeScript (
src/renderer)
src/portal/: application web servie aux appareils du réseau localsrc/renderer/: interface desktop (fenêtre principale)src/shared/: types partagés TypeScriptsrc-tauri/src/: cœur Rust (commands Tauri, serveur local, routes Twitch, historique)src-tauri/tauri.conf.json: configuration packaging/resources
- Node.js 20+
- Rust stable
- npm
npm cinpm run devLe portail LAN tourne en HTTPS sur le port 5173 pour autoriser l'acces camera sur mobile (iOS/Android).
Au premier acces, le navigateur peut afficher un avertissement de certificat local: acceptez-le pour continuer.
URL type a ouvrir sur mobile:
https://<ip-locale-du-pc>:5173
npm run lint
npm run type-checknpm run build- Le portail local doit être accessible sur le même réseau local que l’appareil client.
- Certaines disponibilités de contenus dépendent des endpoints Twitch.
- En build desktop (.exe), le portail public mobile est servi en HTTPS sur
23456et l'API interne reste en HTTP sur23455.
Développé avec ❤️ par Theorhd