• # Mise à jour et v0.1.0

    Posté par . En réponse au message [v0.1.0] BBS pOpcOrn 🍿 – Client YouTube léger (GTK4 + MPV). Évalué à 1 (+1/-1).

    Première version stable — toutes les fonctionnalités prévues sont implémentées et les bugs connus de la bêta sont corrigés.

    Corrections

    Fermeture de l'application

    MPV restait actif en arrière-plan après fermeture — corrigé via kill_all_mpv() et signal close-request GTK (merci tycooon)
    Le processus pOpcOrn lui-même ne se terminait pas — corrigé avec self.quit() + Gio.ApplicationFlags
    Plusieurs instances de MPV pouvaient s'accumuler — le socket IPC est maintenant ciblé précisément
    Communication IPC avec MPV

    Le socket IPC utilisait /tmp (privé dans le sandbox Flatpak) — déplacé vers ~/.var/app/io.mpv.Mpv/ accessible par les deux sandboxes
    Broken pipe lors du chargement d'un fichier traité comme une erreur — corrigé, c'est un comportement normal de MPV
    La fenêtre WebKit ne revenait pas après fin naturelle d'une vidéo — corrigé via un événement _playback_ended déclenché par le tracking IPC

    Historique

    Le titre affiché était "YouTube" au lieu du titre de la vidéo — remplacé par une récupération asynchrone via yt-dlp
    yt-dlp dans le sandbox Flatpak utilisait un mauvais wrapper — remplacé par le binaire standalone officiel

    Reprise de lecture

    Les URLs YouTube contiennent des paramètres de tracking (pp=, si=) qui changeaient à chaque session — normalisées via urllib.parse pour ne conserver que v= et list=
    La position n'était pas appliquée au relancement via IPC — corrigé avec un seek absolute après le premier time-pos valide

    Stabilité

    Instance unique : plusieurs lancements simultanés pouvaient créer plusieurs fenêtres — corrigé avec Gio.ApplicationFlags.DEFAULT_FLAGS

    Nouvelles fonctionnalités

    Mode éco WebKit : WebGL et WebAudio désactivés, Shorts redirigés vers MPV — accessible dans les réglages ⚙
    Installation native : Makefile + wrapper-native.sh pour une installation sans Flatpak
    Détection automatique Flatpak/natif dans updater.py — plus besoin de patch pour les builds natifs (merci Christophe !)
    README bilingue français / anglais

    Améliorations

    La fenêtre WebKit se cache uniquement quand MPV joue réellement — supprime le gap visuel noir entre les deux fenêtres
    Détection de fin de lecture accélérée (polling 1s au lieu de 5s) — la fenêtre WebKit revient en ~2s
    Socket IPC pré-chauffé utilisé systématiquement — délai de lancement réduit

    Navigation

    Interface YouTube complète via WebKitGTK — recherche, recommandations, chaînes, Shorts, tout fonctionne comme dans un navigateur classique.

    Lecture vidéo

    La lecture est déléguée à MPV avec décodage matériel automatique (VAAPI/VDPAU). MPV étant un lecteur natif, les publicités YouTube ne sont pas lues — effet de bord bienvenu, non garanti selon les évolutions de YouTube.

    Qualité cible configurable : 480p / 720p / 1080p / 1440p / 2160p
    Mode fenêtré ou plein écran, taille ajustable
    Retour automatique à l'interface YouTube après la lecture

    Historique et reprise

    Fonctionne quelle que soit la page YouTube d'origine (page d'accueil, recherche, chaîne...)

    Confidentialité

    Aucune télémétrie, aucun serveur tiers. Tout reste local : cookies, historique, positions de reprise.
    SponsorBlock : Saut automatique des segments sponsorisés dans les vidéos (désactivé par défaut, activable dans les réglages ⚙).