bbs a écrit 3 commentaires

  • # 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 ⚙).

  • [^] # Re: Alternative à Flatpak ?

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

    Merci encore pour le PKGBUILD, ça a vraiment lancé la dynamique pour l'installation native !
    Depuis ton test, pas mal de choses ont évolué — voici un résumé des changements qui impactent directement ton build :
    updater.py — la détection Flatpak/natif est intégrée proprement avec _IS_FLATPAK = os.path.exists("/app") et une méthode _build_cmd() qui adapte les appels automatiquement. Plus besoin de patch.
    player.py — le plus important : le socket IPC MPV est maintenant dans ~/.var/app/io.mpv.Mpv/ en mode Flatpak (accessible par les deux sandboxes), et dans XDG_RUNTIME_DIR en mode natif. Ce changement a débloqué la reprise de lecture et le retour de la fenêtre WebKit après la fin naturelle d'une vidéo. Plusieurs correctifs importants : fermeture propre de l'app et de MPV, titre dans l'historique via yt-dlp, détection de fin de lecture par événement IPC.
    app.py — signal close-request ajouté pour la fermeture propre, instance unique via Gio.ApplicationFlags, mode éco WebKit (WebGL/WebAudio désactivés, Shorts redirigés vers MPV).
    Tout est dans le dépôt. Le Makefile et wrapper-native.sh sont inchangés. Pour ton PKGBUILD, seul le patch updater.py peut être retiré — le reste du build devrait fonctionner tel quel.

  • [^] # Re: Alternative à Flatpak ?

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

    Bonjour Christophe,

    J'ai bien pris en compte ta remarque. J'ai ajouté un Makefile ainsi qu'un script wrapper-native.sh au dépôt pour faciliter l'installation manuelle et la création de paquets natifs par la communauté.

    Pour l'instant, je privilégie officiellement le format Flatpak durant cette phase bêta afin de garantir un environnement d'exécution stable et contrôlé.

    Est-ce que cela répond à tes attentes ?