4.9 KiB
Minitel Slideshow Tool
Convertisseur + Serveur Slideshow + Client WebSocket↔Série (tout-en-un)
Interface graphique Tkinter permettant :
- la conversion d’images en fichiers .vdt optimisés (encodeur intégré, compatible pic2jpeg2vdt)
- un serveur local WebSocket pour diaporamas (start/stop/reset indépendants)
- un client WebSocket ↔ port série (Minitel)
- une liste de serveurs prédéfinis + saisie manuelle
- un temps d’affichage paramétrable
Démonstration
Fonctionnalités principales
Conversion d’images → .vdt
- Redimensionnement automatique adapté Minitel (320×240 max)
- Encodage JPEG optimisé ou qualité fixe
- Génération des blocs VDT (header + chunks)
- Prévisualisation hex des premiers octets
Serveur Slideshow WebSocket
- Diffusion continue d’un dossier de
.vdt - Serveur en thread dédié
- Commandes start/stop sécurisées
Client WebSocket ↔ Port série
- Pont bidirectionnel avec keep-alive
- Support de
wss://via SSL permissif - Gestion vitesse, parité, databits, stopbits
Interface graphique Tkinter
- Sélection de serveur prédéfini ou manuel
- Sélection de dossier images et dossier VDT
- Logs détaillés
- Détection automatique des ports série
Installation
1. Cloner le dépôt
git clone https://github.com/labbej27/minitel-slideshow-tool.git
cd minitel-slideshow-tool
2. Installer les dépendances Python
Avec un environnement virtuel (recommandé) :
python3 -m venv venv
# Linux / macOS
source venv/bin/activate
# Windows (PowerShell)
venv\Scripts\Activate.ps1
# Windows (cmd)
venv\Scripts\activate.bat
Installer les dépendances :
pip install -r requirements.txt
Note : Tkinter est déjà inclus dans Python sur Windows et macOS, et sur la plupart des distributions Linux.
Utilisation
1. Lancer l’outil
python3 minitel_slideshow_tool.py
2. Convertir des images
-
Choisir un dossier d’images
-
Choisir un dossier de sortie
-
Cliquer Convert Images
3. Lancer un serveur Slideshow
-
Mettre des .vdt dans le dossier sélectionné
-
Définir la durée par image
-
Cliquer Start Slideshow Server
-
Le serveur écoute par défaut sur : ws://0.0.0.0:8765
4. Se connecter à un serveur WebSocket via Minitel
-
Choisir un serveur prédéfini ou entrer une URL
-
Sélectionner le port série
-
Cliquer Connecter & Enjoy
Compilation en exécutable (standalone)
L’outil peut être compilé en exécutable autonome (sans Python requis sur la machine cible) grâce à PyInstaller.
Prérequis
-
Python 3.14 recommandé
-
pip à jour
Système :
Installer PyInstaller :
pip install pyinstaller
Compilation simple
Depuis la racine du projet :
pyinstaller --onefile --windowed minitel_slideshow_tool.py
Options utilisées
--onefile : génère un seul fichier exécutable
--windowed : supprime la console (recommandé pour Tkinter)
L’exécutable sera généré dans :
dist/
Compilation Windows (recommandée)
pyinstaller ^
--onefile ^
--windowed ^
--name "MinitelSlideshowTool" ^
minitel_slideshow_tool.py
Résultat :
dist/MinitelSlideshowTool.exe
Compilation Linux
pyinstaller \
--onefile \
--windowed \
--name minitel-slideshow-tool \
minitel_slideshow_tool.py
L’exécutable est spécifique à l’OS :
Un .exe Windows doit être compilé sous Windows, idem pour Linux/macOS.
Compilation macOS
pyinstaller \
--onefile \
--windowed \
--name MinitelSlideshowTool \
minitel_slideshow_tool.py
Sur macOS :
L’application peut être bloquée par Gatekeeper
Utiliser clic droit → Ouvrir au premier lancement
Inclusion des dépendances
PyInstaller détecte automatiquement :
-
tkinter
-
Pillow
-
pyserial
-
websockets
Si nécessaire (rare), forcer les imports :
pyinstaller --onefile --windowed \
--hidden-import=serial \
--hidden-import=serial.tools.list_ports \
minitel_slideshow_tool.py
Débogage en cas de problème
- Compiler avec console pour voir les erreurs :
pyinstaller --onefile minitel_slideshow_tool.py
- Lancer ensuite depuis un terminal pour lire les logs.
Ports série – Permissions
- Linux Ajouter l’utilisateur au groupe dialout :
sudo usermod -a -G dialout $USER
Puis redémarrer la session.
Licence
Projet libre – utilisation et modification autorisées.
Ce projet a été développé à des fins personnelles et éducatives, en s’inspirant de projets existants de la communauté Minitel.
Crédits / Sources
Ce projet s’appuie sur et s’inspire des travaux suivants :
-
websocket2minitel par @cquest
https://github.com/cquest/websocket2minitel -
Code et expérimentations de @NathaanTFM
https://gist.github.com/NathaanTFM/2ca8687f1352b9d840d4f5efc941dd98
