PeerTube : les réponses à vos questions techniques !

Attention, ici ça parle technique ! Voici un florilège des questions les plus pointues que vous avez posées lors dans notre foire aux questions concernant PeerTube, le logiciel qui propulsera Framatube.

Si vous cherchez des réponses à des questions moins techniques et plus pratiques, nous avons un autre article sur les questions qui ne parlent pas de code, protocoles et autres serveurs ^^. Sachez que, sauf mention contraire, toutes les réponses sont de Chocobozzz, le développeur que nous avons accueilli dans notre équipe salariée afin qu’il puisse finaliser le code de PeerTube. De même, la plupart des questions ont été raccourcies ou reformulées pour plus de lisibilité, mais l’intégralité des échanges se trouve sur notre forum !

Illustration : CC-By-SA Emma Lidbury

Sous le capot, la techno

Skippythekangoo

— J’ai actuellement un petit serveur de 10 Go, mais qui grossira l’année prochaine, qui tourne sous Archlinux. Quelle méthode utiliser pour partager une partie de mes ressources pour le projet peertube ?

Pour l’instant le projet n’est pas encore en bêta donc attendre quelques mois. ;)

— Qu’utilisez-vous, python, ruby, asm… :) ? ? ?

Le projet tourne via NodeJS/PostgreSQL, un peu de Shell et aura besoin de ffmpeg pour générer les miniatures et faire le transcoding (qui est en option).

Guyou

— Est-ce que le pari c’est que tout le monde regarde la même vidéo en même temps ? Mon usage de Youtube consiste à regarder, de temps à autre, des vidéos de 15-30 minutes. Mais ces vidéos ne font pas forcément l’objet du buzz du moment. Parfois, j’imagine même que Youtube doit commencer à fouiller son disque pour la retrouver.

Sinon, on va vite se retrouver avec de petits serveurs qui reçoivent plein de demandes pour différentes vidéos et qui se retrouvent vite dans l’impossibilité de servir tout le monde à cause de leur propre bande passante limitée.

Tu as tout à fait raison. Pour l’instant l’aspect P2P limite le facteur bande passante mais c’est pas une recette miracle : si 1000 personnes regardent 1000 vidéos différentes le serveur tombera.

— Est-il envisagé/envisageable de faire évoluer le modèle pour que chaque serveur du réseau puisse à son tour se joindre au réseau P2P d’une vidéo demandée par l’un de ses utilisateurs ?

À court terme il n’est pas prévu d’améliorer cet aspect. En revanche si la campagne de dons est un grand succès, on peut espérer que Framasoft continue de financer le projet pour ajouter de la redondance dans PeerTube → un autre serveur télécharge la vidéo puis la seed pour aider le serveur d’origine.

Du coup tout dépendra des donateurs. :)

ropoussiere

— On parle de fédération mais grosso-modo, j’imagine qu’il y aura une seule fédération non ? (comme Diaspora ou Mastodon)

Ce sera une fédération comme Mastodon, oui, à l’exception que ce seront les administrateurs de serveurs qui choisiront quel(s) serveur(s) suivre. Ça leur donne le contrôle sur les vidéos indexées (et donc affichées) sur leur serveur. Il sera possible de copier les « follows » d’autres serveurs bien sûr, sinon ça risquerait vite d’être pénible.

— Je suis jeune hébergeur, comment je trouve des amis qui veulent bien héberger les vidéos de mon instance pour la soulager / comment je suis tenu au courant des vidéos qui viennent d’être ajoutées sur les instances de mes amis, ça peut se faire automatiquement ?

Il n’y a pas pour l’instant de système de redondance donc pas moyen de choisir quelles vidéos tu veux redonder. À l’heure actuelle les vidéos « uploadées » sur ton serveur restent sur ton serveur, et seul ce dernier possède les fichiers physiques.

— Je viens de regarder une vidéo. À partir de quel moment je cesse de la partager ? (quand je quitte le site ? quand je ferme mon navigateur ? quand je redémarre mon pc ?)

Au moment où tu quittes la page de la vidéo (là où y’a le lecteur).

— On peut supposer que Framatube sera une instance PeerTube très majoritairement utilisée et qu’une très grande partie des utilisateurs ajouteront leurs vidéos via Framatube sans trop se poser de questions. Est-ce qu’un mécanisme est prévu pour téléverser la vidéo directement sur une autre instance pour ne pas remplir le disque dur de Framatube de vidéos de chats en quelques jours ?

À voir si Framatube ouvre et s’ils ouvrent à tout le monde pour n’importe quelles vidéos (je ne peux pas personnellement répondre), mais non il n’y a pas de mécanisme pour téléverser des vidéos sur d’autres instances. Par contre on peut fermer les inscriptions lorsqu’on atteint un certain nombre d’utilisateurs, et mettre un quota en octets par utilisateur. Si tu fais bien ton calcul tu peux donc gérer ton serveur sans remplir totalement le disque. Après à toi de voir si tu veux ouvrir d’autres instances pour accueillir de nouveaux utilisateurs.

— Suggestion : une interface pour ajouter des sous-titres ?

Ça tombe bien y’a une issue :)

— Autre suggestion : flux RSS sur des catégories ou un auteur ?

Ça tombe bien y’a aussi une issue :)

Chilperik

— Bonjour, l’installation sur un raspberry3 est-elle possible ? Viable ?

J’ai jamais testé mais « normalement » ça devrait être possible. Les seuls points bloquants pourraient être la compilation de certains modules Node (mais y’en a pas tant que ça).

— Est il possible d’utiliser un autre répertoire pour les médias ? Où sont ils stockés ?

Il stocke les vidéos dans le dossier spécifié dans la configuration.

JonathanMM

— Pourquoi ne pas se reposer sur le protocole torrent, qui propose déjà un catalogue et un réseau déjà pas mal ? Le lecteur vidéo ne serait alors qu’un client comme un autre, et le serveur servirait à la fois de serveur de trackers (et même aussi d’un client comme un autre, histoire d’augmenter les peers).

Ce serait bien mais malheureusement :

la plupart des vidéos sont dans un format incompatible avec le Web (.avi, .mkv etc.) ;

le navigateur ne peut se connecter aux autres pairs que via WebRTC, pas directement en TCP/UDP. Donc ton navigateur ne peut pas se connecter à un client Transmission/uTorrent par exemple ;

ça reste le protocole BitTorrent mais sur WebRTC, donc si les principales librairies de torrent ajoutent le support de WebRTC il sera possible de « seeder » une vidéo via un client torrent classique pour ton navigateur. Une issue est en cours pour suivre les évolutions d’implémentation de WebRTC dans les principales librairies torrent ;

encore une fois l’aspect P2P dans PeerTube c’est du BitTorrent, donc chaque serveur a effectivement un tracker (ton navigateur s’y connecte via websocket).

JonathanMM

— Ok, je comprends mieux […] Après, un truc qui je pense pourrait-être sympa serait d’avoir pour l’admin un système d’ajout rapide d’une vidéo sur le serveur, où on balance un lien ou un fichier torrent, et le système regarde si la vidéo est OK ou pas avant de la mettre sur son réseau. Ça permettrait d’avoir déjà une base de sources pour le jour où les libs utiliseront le WebRTC. Voir ça permettrait aux serveurs de s’échanger entre eux des vidéos ?

Yep, un import via torrent ou via URL serait utile. Un import via YouTube serait aussi le top.

Aitua

— Faut-il avoir son ordinateur connecté 24h/24 pour que la vidéo que l’on héberge soit disponible à tout moment ? Ou le serveur fait le relais ?

Le serveur fait relais, c’est lui qui s’occupe de constamment « seeder » la vidéo pour qu’elle soit toujours disponible. Pour info, il seed la vidéo via HTTP (ce qui ne demande aucun effort constant) via l’extension WebSeed du protocole BitTorrent

CamilleKaze57

— Est-ce que Peertube utilisera le protocole ActivityPub pour se fédérer avec Mastodon et GnuSocial ? Une vidéo pourrait apparaître sous la forme d’une publication et les commentaires comme des réponses. Je rappelle qu’Activitypub est soutenu par le W3C et a vocation à devenir un standard. En plus pouvoir se connecter avec son compte Mastodon ce serait génial !

Oui, PeerTube utilisera ActivityPub.

Donc, oui, en théorie on pourra se fédérer avec Mastodon et consorts (ça demandera quand même des adaptations au niveau code), et c’est tout ce qu’on espère. :)

Olivier Massain a profité de notre foire aux questions pour proposer son aide sur le design de PeerTube : ça va péter la classe !

« Ça ressemblerait pas un peu à… »

sossa

— Connaissez-vous BitChute qui fonctionne sur exactement le même principe ? Y-a-t-il un problème inhérent à BitChute qui vous pousserait à créer un autre outil ?

BitChute n’est pas libre, pas installable sur son serveur et pas fédéré.

Le seul point commun avec PeerTube est qu’il utilise WebTorrent, afin de soulager la bande passante pour ses propres besoins.

sossa

— OK, c’est très clair, merci ! Il est vrai que je l’avais regardé à son lancement, où ils parlaient d’ouverture et « d’installabilité », et deux ans après, rien n’a bougé, ce qui est au minimum suspicieux.

hyamanieu

— Je me demandais si vous aviez remarqué qu’il y a un projet similaire, dont le premier commit date d’août 2015 (quelques mois avant vous), et qui a beaucoup plus d’élan ? Ils sont toujours en bêta (vous alpha), mais ils ont déjà ramené beaucoup de YouTubers anglophones et bientôt des francophones : lbry

Je ne connaissais pas lbry, que je viens de découvrir.

Si j’ai bien compris il s’agit plus d’un protocole, s’utilisant via un démon que tu lances et qui écoute sur un port particulier ? Et ils veulent utiliser un plugin pour pouvoir être disponible via le web. Le projet veut faire de la décentralisation avec un système de financement pour les créateurs.

PeerTube quant à elle est une application web donc difficilement comparable à lbry. De plus notre idée est de pouvoir faire communiquer différentes plateformes web (MediaGoblin, Mastodon etc) via ActivityPub, pas de s’enfermer dans un protocole particulier (que je ne remets pas en question, hein :)).

hyamanieu

— En effet, il s’agit d’un protocole. Quelles que soient les solutions techniques envisagées, ce qui compte est l’utilisation finale. Mais je ne pense pas que ça cause de grands problèmes la compétition, peut-être même l’inverse. Sur des projets open source c’est un peu dommage, c’est tout.

Je suis bien d’accord, c’est pour ça qu’on migre le protocole de fédération vers ActivityPub pour avoir une coopération entre plateformes différentes plutôt que de la compétition.

www

— Que pensez-vous de DTube ? (basé sur STEEM et IPFS)

Je n’en pense pas grand-chose, je ne connais pas assez les deux technos.

J’ai juste l’impression qu’IPFS n’est pas tout à fait prêt (d’où leur ajout de WebTorrent en secours si j’ai bien compris) et assez complexe (faut mettre en place des passerelles etc.).

Il ne me semble pas que DTube soit libre non plus.

Mais je suis le projet, c’est assez innovant comme manière de fonctionner.

Pour aller plus loin :

Présentation de PeerTube

Poser des questions sur PeerTube

Voir le code de PeerTube

Soutenir Framasoft permettra de financer…

Le développement de PeerTube

Le maintien des services Dégooglisons Internet

Notre campagne Contributopia (et l’année consacrée aux services)