🎬 Lecteur de sessions — Assembly Session Player
Application de bureau (GNOME / Wayland) très simple à utiliser, qui lit automatiquement, dans l'ordre, toutes les sessions vidéo disponibles sur un lien d'assemblée du type :
https://stream.jw.org/9021-8224-3277-8078
Elle retient où vous en étiez (session + position exacte) pour reprendre la lecture pile où vous vous êtes arrêté·e, y compris après un redémarrage du PC.
⚠️ Projet non officiel, réalisé pour un usage personnel. Il n'est ni développé, ni approuvé, ni affilié à watchtower.org / jw.org / stream.jw.org. Il se contente d'afficher la page officielle telle quelle dans une fenêtre (WebKitGTK) et de l'automatiser via le DOM — aucun contenu n'est téléchargé, copié ou redistribué par l'application.
✨ Fonctionnalités
- 🔗 Lien d'assemblée configurable (Paramètres, ou menu de l'icône de la barre des tâches).
- 📋 Détection automatique de la liste des sessions et lecture dans le bon ordre, enchaînement automatique d'une session à l'autre.
- ⏯️ Reprise de lecture exacte (session + position en secondes), même après fermeture complète de l'application ou redémarrage du PC.
- ⏰ Démarrage automatique au démarrage du PC (option dans les Paramètres ou le menu de l'icône), en arrière-plan (fenêtre réduite dans la barre des tâches), avec reprise automatique.
- 🖥️ Mode plein écran (bouton dédié, touche
F11, ou menu de l'icône) ;F10ouvre les Paramètres même en plein écran. - 🔔 Icône dans la barre des tâches (system tray / AppIndicator, compatible GNOME sur Wayland) avec Lecture/Pause, session précédente/suivante, plein écran, démarrage automatique et changement de lien.
- 🎨 Icône d'application dédiée, utilisée dans la fenêtre, le lanceur et la barre des tâches.
- ℹ️ Bouton discret « À propos » (barre du haut ou menu de l'icône) : nom, version et rappel du caractère non officiel de l'application.
- 📦 Paquet
.debprêt à l'emploi (make deb).
⚠️ Limitation connue (sécurité navigateur, pas un bug)
Les navigateurs (et WebKitGTK) bloquent le démarrage automatique du son/vidéo tant qu'aucun clic réel n'a eu lieu dans la page. Concrètement : au premier lancement de la fenêtre, un seul clic sur le bouton ▶ affiché dans la vidéo est nécessaire pour démarrer. Une fois ce clic fait, tout s'enchaîne ensuite automatiquement (reprise à la bonne position, passage à la session suivante) sans autre action, tant que la fenêtre reste ouverte. C'est une protection standard des navigateurs contre la lecture automatique intempestive — l'application ne peut pas (et ne doit pas) la contourner.
📋 Prérequis
Testé sur Ubuntu/GNOME (Wayland). Paquets système nécessaires :
python3-gi,python3-gi-cairogir1.2-gtk-3.0gir1.2-webkit2-4.1gir1.2-ayatanaappindicator3-0.1gir1.2-notify-0.7gir1.2-rsvg-2.0(uniquement pour générer les icônes)
Installation en une commande :
make deps
📥 Installation
make install
Installe l'application pour l'utilisateur courant dans ~/.local (binaire,
icônes, fichier .desktop). Assurez-vous que ~/.local/bin est dans votre
PATH (c'est le cas par défaut sur la plupart des distributions GNOME).
Pour une installation système (tous les utilisateurs) :
sudo make install PREFIX=/usr/local
📦 Paquet .deb
make deb
sudo apt install ./dist/assembly-player_*.deb
Génère un paquet Debian autonome (dist/assembly-player_<version>_all.deb)
avec toutes les dépendances déclarées, prêt à installer ou à partager.
▶️ Utilisation
Lancez assembly-player depuis le terminal, le menu d'applications, ou
cliquez sur l'icône Lecteur de sessions.
- La fenêtre s'ouvre sur le lien d'assemblée configuré (par défaut, celui fourni à la création du projet).
- L'application choisit automatiquement la bonne session à ouvrir (reprise, ou première session si c'est la première fois) et se positionne au bon endroit.
- Cliquez une fois sur ▶ dans la vidéo pour démarrer (voir limitation ci-dessus). Ensuite, tout est automatique.
- Fermer la fenêtre (croix) coupe la lecture et quitte complètement l'application. Pour la garder active en arrière-plan sans fenêtre visible, utilisez « Masquer la fenêtre » dans le menu de l'icône (au lieu de la croix) ; « Afficher la fenêtre » la fait réapparaître.
🔗 Changer le lien de l'assemblée
Bouton ☰ dans la fenêtre, ou clic droit sur l'icône de la barre des tâches → « Changer le lien de l'assemblée… ».
⏰ Démarrage automatique au démarrage du PC
Cochez « Lancer automatiquement au démarrage du PC » dans les Paramètres (ou le menu de l'icône), ou en ligne de commande :
make autostart-enable
make autostart-disable
Au démarrage du PC, l'application se lance réduite dans la barre des tâches et reprend automatiquement à l'endroit où vous vous étiez arrêté (un clic sur ▶ reste nécessaire, voir plus haut).
🖥️ Plein écran
Bouton dédié dans la fenêtre, touche F11, ou menu de l'icône.
En plein écran, la barre du haut (avec le bouton ☰ Paramètres) est masquée — c'est normal, GTK fait disparaître la barre de titre dans ce mode. Pour revenir en fenêtré ou ouvrir les Paramètres sans repasser par la souris :
F11: bascule plein écran / fenêtré (fonctionne même si la vidéo a le focus clavier).F10: ouvre directement les Paramètres, même en plein écran.
Une notification rappelle ces deux raccourcis à chaque entrée en plein écran.
🗂️ Emplacement des données
- Configuration (lien, options) :
~/.config/assembly-player/config.json - Progression de lecture (par assemblée) :
~/.local/state/assembly-player/state.json - Démarrage automatique :
~/.config/autostart/assembly-player.desktop
🗑️ Désinstallation
make uninstall
💻 Développement
make test # vérifie que le code Python compile
make run # lance l'application depuis les sources
make icons # régénère les icônes PNG depuis le SVG source
make deb # génère un paquet .deb dans dist/
Icône source (vecteur) : assembly_player/icons/assembly-player.svg.
🛠️ Dépannage
- L'icône n'apparaît pas dans la barre des tâches : sur GNOME/Wayland, l'extension GNOME Shell « AppIndicator and KStatusNotifierItem Support » doit être activée.
assembly-playerintrouvable aprèsmake install: vérifiez que~/.local/binfigure dans votre$PATH(echo $PATH).- La vidéo ne démarre jamais : cliquez directement sur le bouton ▶ affiché dans la vidéo (voir « Limitation connue » ci-dessus).
- La liste des sessions ne se met pas à jour : le site stream.jw.org a pu changer sa structure de page ; ouvrez une issue/PR sur le dépôt du projet.
- Impossible de revenir aux Paramètres en plein écran : appuyez sur
F10(ouvre directement les Paramètres) ouF11(revient en fenêtré), ou passez par le menu de l'icône de la barre des tâches. - Image noire ou figée (mais le son continue) en changeant de session :
bug de compositing GPU connu de WebKitGTK. Depuis la version 1.0.4,
l'accélération matérielle de la page est désactivée pour l'éviter
structurellement. Si ça se reproduit malgré tout, basculer une fois en
plein écran (
F11) puis revenir force un rafraîchissement de l'image ; et n'hésitez pas à signaler le modèle de carte graphique/pilote utilisé.