Synchronisation de clients FreeTube

FreeTube est un client lourd pour accéder aux contenus de YouTube. La protection de la vie privée est un élément clé de la conception de FreeTube. Il permet de lire les vidéos sans la publicité, de gérer ses abonnements, etc.

Contraitement à YouTube, il n'est pas nécesssaire d'avoir un compte pour gérer ses abonnements. Toutes les données sont stockées localement dans des fichiers textes (profils et abonnements, listes de lecture, historique, etc.). Si vous utilisez plusieurs ordinateurs, la seule méthode supportée pour synchroniser les données est un export/import des fichiers depuis FreeTube. De mon coté, je ne trouve pas ça pratique et encore moins automatisable. En conséquence, on ne peut pas faire évoluer ces données depuis plusieurs ordinateurs facilement.

En attendant que l'équipe de FreeTube propose une solution, j'ai travaillé sur un outil qui essaye de résoudre le problème : FT-Sync. Il est écrit en GO sous licence AGPLv3.

FT-Sync logo

FT-Sync n'est pas maintenu par l'équipe de FreeTube. Ce projet est encore expérimental et des problèmes peuvent apparaître. Je ne pourrai pas être tenu comme responsable si vous perdez des données.

Ceci étant dit, n'hésitez pas à ouvrir un ticket si vous rencontrez des problèmes 🙂

Avant d'utiliser FT-Sync, faites une sauvegarde de vos données :

  • ~/.config/FreeTube/history.db
  • ~/.config/FreeTube/profiles.db
  • ~/.config/FreeTube/playlists.db

Quels sont les prérequis ?

FT-Sync implique que le serveur soit accessible par toutes les machines où tourne FreeTube, comme dans un réseau local, à travers un VPN ou sur Internet. Veillez cependant à sécuriser les accès en configurant un pare-feu si le serveur est exposé.

Comment ça fonctionne ?

Le rôle du serveur est de stocker l'historique, les playlists et les profils des instances de FreeTube (clients).

Après avoir démarré le serveur, chaque client doit initialiser ses données locales sur le serveur. Cette action ne doit être effectuée qu'une seule fois. Chaque fois que vous souhaitez utiliser FreeTube, vous devez d'abord récupérer les données depuis le serveur. Un watcher enverra les mises à jour au serveur lorsque votre historique, vos playlists ou vos profils sont mis à jour. Lorsque FreeTube est redémarré, l'historique, les playlists et les profils seront synchronisés.

sequenceDiagram
    participant Client
    participant Server

    Note over Client, Server: Only once
    Client->>+Server: Send initial history, playlists, profiles<br>ftsync-client init
    Server-->>-Client: Response OK/KO

    Note over Client, Server: Before launching FreeTube
    Client->>+Server: Pull update to date history, playlists, profiles<br>ftsync-client pull
    Server-->>-Client: Response datas
    Client->>+Client: Update databases

    Note over Client, Server: While FreeTube is running
    loop Watch local db updates<br>ftsync-client watch
        Client->>+Server: Send updated history, playlists, profiles
        Server-->>-Client: Response OK/KO
    end

Toute la procédure d'installation est décrite dans les sources du projet : 📗 Comment l'utiliser ?.

Dans les prochains changements, je souhaite permettre de démarrer le serveur via docker afin faciliter son déploiement. J'aimerais également réaliser des statistiques sur le contenu que je consomme via des métriques type Prometheus.

J'utilise FT-Sync depuis quelques jours maintenant et il fonctionne vraiment bien. J'ai maintenant les mêmes abonnements, les mêmes listes de lecture et le même historique quelque soit l'ordinateur que j'utilise (modulo un redémarrage). C'est vraiment agréable !

Si vous avez des remarques, des suggestions ou n'importe quoi d'autre à remonter, le projet est ouvert aux contributions sous toutes leurs formes 😉

Streaming Owncast et Twitch

Streaming Owncast et Twitch

Il y a quelques années de cela, j'avais commencé à streamer des sessions de développement su…

Changements importants avec Custom Menu 5

Changements importants avec Custom Menu 5

Custom menu est un projet que j'ai lancé il y a de nombreuses années. Il a été initialement …

Gestionnaire de fonds d'écrans pour i3

Gestionnaire de fonds d'écrans pour i3

i3 est tiling window manager pour Linux. Je l'utilise depuis de nombreuses années et j'en su…


  • Balistic
  • Bonjour, une alternative serait d'intégrer Decsync (Decentralized Synchronization) à Freetube (en développant les key values adéquates) https://github.com/39aldo39/DecSync Il s'agit d'une synchronisation sans conflits basée sur des dossiers. En gros, chaque logiciel (RSS, contacts, agenda, ... ou Freetube) se synchronise avec un dossier local au format Decsync. Charge à l'utilisateur d'utiliser l'outil qu'il souhaite pour synchroniser ce dossier entre ses différents appareils (Syncthing, Google Drive, OneDrive, serveur SMB ou FTP, etc). L'un des avantages est de permettre de synchroniser sans avoir besoin de serveur (dans le cas de Syncthing par exemple) ni de nom de domaine. L'autre avantage est qu'il s'agit d'une synchro sans conflits, donc si tu n'as pas de réseau, tant pis tu peux tout de même utiliser le logiciel (sans avoir les mises à jour des autres appareils), puis la synchro se fera de nouveau lorsque le réseau revient. Tu n'auras pas d'erreurs de synchro.

    Malheureusement, le développeur semble un peu seul et le projet n' a pas l'air d'avoir motivé les foules.

Ajouter un commentaire

Votre commentaire - Vous pouvez utiliser du markdown

Renouveler