Sa télécommande est maintenant un bot Telegram auto-hébergé
Un développeur a transformé son ordinateur connecté à la TV en un centre de médias contrôlé par Telegram, sans cloud ni apps tierces. Le projet, libre et open source, est un exemple fascinant de bricolage domestique poussé à l'excès.

Anton L., un développeur francophone installé en Russie, a construit un système pour contrôler sa télévision à distance via Telegram. L'idée de départ est simple : brancher un ordinateur (un ancien ThinkPad) sur la TV via HDMI, installer mpv — un lecteur multimédia robuste — et le contrôler à travers un agent shell. Mais, comme souvent, le simple est devenu complexe.
Il a d'abord utilisé un script shell derrière un gateway LLM (Hermes). Le résultat fonctionnait, mais manquait de confort : pas d'interface visuelle, pas de navigation par menus, pas de recherche. Alors il a extrait toute la logique dans un bot autonome, tg-mpv-bot, écrit en Python avec aiogram, et hébergé localement. Le résultat ? Une quarantaine de commandes, mais un flux d'usage réduit : appuyer sur un bouton pour choisir une émission, envoyer un lien YouTube et le voir apparaître sur le grand écran, ou transférer un fichier vidéo de 2 Go depuis un chat.
Le cœur du système repose sur une communication locale : le bot envoie des commandes JSON directement à mpv via un socket IPC Unix. Aucune connexion sortante n'est nécessaire, sauf pour télécharger les contenus. Aucune app tierce, aucun cloud, aucun port forwarding. Juste une box Linux, une TV, et Telegram comme interface.
Mais la construction n'a pas été sans soucis. Anton raconte quatre "guerres" techniques qui ont coûté une nuit de son temps. La première : un socket i3 qui utilisait un PID fixe, donc obsolète après chaque redémarrage. La solution ? Supprimer la fonctionnalité et utiliser un hook générique. La deuxième : yt-dlp, outil de extraction de médias, posait des problèmes de cookies, d'extractors obsolètes et de conflits entre IPv4 et IPv6. Il a dû configurer un proxy explicite, forcer l'utilisation d'une seule version IP, et même prévoir une mise à jour automatique de yt-dlp chaque nuit.
La troisième : un fichier MP4 qui, une fois streamé, consommait 600 Mo sans rien afficher. La cause ? Une mauvaise intercalation des flux audio et vidéo dans un pipe unique. La solution : séparer les flux, utiliser des file descriptors distincts, et laisser mpv s'occuper du multiplexage. Enfin, la quatrième : l'IPv6 de son FAI ne pouvait pas atteindre les CDN de contenusvidéo. Tous les "problèmes mystérieux" étaient dus à des connexions qui atterraient sur IPv6, alors que les serveurs n'étaient pas accessibles par ce protocole.
Le résultat est un système stable, documenté, et disponible sur GitHub sous licence MIT. Anton a même packagé le bot pour AUR et Docker. C'est un projet à la fois utile et légèrement absurde : pourquoi utiliser Telegram pour contrôler sa TV ? Parce que c'est déjà là, que c'est simple, et que c'est le moyen le plus fiable qu'il ait trouvé. Un bel exemple de solution maison, un peu trop compliquée, mais parfaitement fonctionnelle.
Le code est public, testé en CI, et les releases sont automatiques. Anton a aussi ajouté des fonctions de quality-of-life : historique de lecture, minute de sommeil, normalisation du volume, et un écran de santé (/mpv_health) pour diagnostiquer les pannes. Le tout, sans intelligence artificielle, sans publicité, sans tracking. Juste un bot, un lecteur, et une TV.


