A new application for Framaspace : OwnershipTransfer

Still more features on Framaspace? Yes! At the moment, we’re spoiling the users of this service, with the integration of quite a few features like the Forms and Tables applications, but also the ‘Intros’ app developed by Val, our summer intern. And because it’s Val, it’s festival (shameful rhyme!): just before leaving us for a well-deserved holiday and a final year of studies, he delivered a new ‘Ownership Transfer’ application that will make life easier for administrators of Framaspace spaces.

 

 

Hi Val, we’re not going to ask you to introduce yourself, as you already did in the previous interview. We’ll just remind you that you’re doing an internship at Framasoft from the beginning of May to the end of August 2024, with the aim of developing tools to support Framaspace, and therefore Nextcloud free software.

Hi! Check out my previous interview to find out more about me! I introduce Intros, a Nextcloud app to help users get to grips with Framaspace.

At the end of the interview, I mentioned I was working on another Nextcloud app, OwnershipTransfer. Back then things were only getting started, but I cooked, and now it’s ready.

OK, so let’s talk about the OwnershipTransfer App. What’s it for ? Who is the target audience ?

As mentioned in the previous article, OwnershipTransfer makes it possible to transfer data from one user to another in Nextcloud. For example, when someone leaves an association that uses Nextcloud (say, on Framaspace 😏), it can be useful to move their files to another user before deleting their account. You could avoid losing important archives, invoices… The same goes for calendars or address books.

Well worry no more, OwnershipTransfer (or « OT » from now on in this article) does all that. It allows Nextcloud admins to transfer data from whoever to whoever. Initially mostly designed for files, I extended it to calendars and contacts transfer.

OT allows a transfer of all the data, but also a more fine-grained choice. One can choose the calendar, address book or folder they want to transfer, so they don’t end up with someone’s holidays pictures in their files.

#gallery-1 { margin: auto; } #gallery-1 .gallery-item { float: left; margin-top: 10px; text-align: center; width: 50%; } #gallery-1 img { border: 2px solid #cfcfcf; } #gallery-1 .gallery-caption { margin-left: 0; } /* see gallery_shortcode() in wp-includes/media.php */

 

But… didn’t this feature already exist in Nextcloud ?

It did, but not the way we wanted it to.

Nextcloud already allows transferring your own files to another user, with a small graphical interface in the user settings section. You can only transfer your own files to another user, but not choose a source user: this isn’t suitable for an instance admin who would want to move files from one user to another.

An instance admin can also transfer files or calendars from one user to another, with an OCC command. OCC is Nexctloud’s CLI, via which admins can handle some server settings. You can only use it from the command line in a terminal, which to most human beings is… cryptical.

In short there are existing working solutions, but not with a simple graphical interface for admins. This is especially an issue in « Nextcloud farms » (an organization hosting Nextcloud instances for a lot of clients at once) like Framaspace, because admins don’t have access to the CLI in this case.

 

Technically, how does it work ?

Since it’s integrated with other Nextcloud apps, OT is heavily relying on existing Nextcloud APIs. The app also uses adapted parts of Nextcloud’s code. For example, I use the code from the existing files transfer feature, which I modified to fit with our requirements. The same goes for the calendar transfer.

However, I add to implement the contacts transfer, since it is not available in Nextcloud (not even through a cryptic CLI). It looks a lot like the calendar transfer, since both of them are based on the WebDAV protocol, so I had an example to work with.

The interface is built with Nextcloud’s Vue components, of course. They are pretty pleasant to use, and new ones are often released. It allowed me to build a complete graphical interface in no time, while staying consistent with the rest of Nextcloud’s UI.

 

Have you encountered any technical or organisational problems?

Since Nextcloud’s documentation hasn’t miraculously grown since last time, I had to wander around in Nextcloud’s source code to find the functions needed. I could almost make a hobby out of that. Almost.

At least the features exist in Nextcloud already, so adapting them wasn’t the most difficult thing ever. I could also rely on tcit’s advice, co-director of Framasoft and Nextcloud contributor. In short: I write code, he looks at it, says « cool thing, but not scalable », and I correct it.

Scalability was the most common problem. It always works on my small test environment with 5 accounts and 7 folders, but it should also (and most importantly) work on big Nextcloud instances with lots of files. For example, the files transfer can take a lot of time and resources: it has to move all the files from the source to the destination folder, which takes more or less time depending on the amount of files to move and the underlying storage type. Because of that, it is handled in the background: instead of launching it upon receiving the request, it is placed in a jobs queue that the server periodically handles.

Calendar and contacts transfers do not have this issue: they only consist of a simple SQL query to change the right property on the right element. This operation is fast, so it can be handled in the foreground.

Besides the actual transfer, building the interface was also challenging. The app allows the admin to choose which element will be transferred, so they need an interface to choose it. For calendars and contacts, it’s fairly simple: with Nextcloud’s components, I could easily build a list of calendars or address books. But for files, things are getting complicated: we need a whole tree-style view to show the subfolders’ content.

Luckily, I’ve got back up. Romain, former fellow INSA Lyon student (in Telecom, just like me!) and former Framasoft intern, worked on Sorts a few years ago. The goal was to make an app to enhance Nextcloud’s file search, mostly with filters. And Sorts has something I was really interested in: a tree-style files view. Exactly what I needed.

#gallery-2 { margin: auto; } #gallery-2 .gallery-item { float: left; margin-top: 10px; text-align: center; width: 50%; } #gallery-2 img { border: 2px solid #cfcfcf; } #gallery-2 .gallery-caption { margin-left: 0; } /* see gallery_shortcode() in wp-includes/media.php */

After a few tweaks here and there in Sorts’ code, which wasn’t necessarily easy, its tree-style view perfectly integrated with OwnershipTransfer. It helped a lot and saved a lot of dev time, and I could even improve it a bit with some lines to better view the current folder and some sharing icons.

 

Now that your internship is coming to an end, and you’ve been « eating » some Nextcloud for the past 6 months, what are your potential takes on this software ?

It’s rant time!

Anyways, besides the rant and all the things I could blame on Nextcloud (like its lightweight documentation, its occasional slowness or its imperfect UI), its a very functional software, and it’s all that matters for pretty much everyone. It could be better (and it’s already happening!), but I find it to be working just fine for most typical usages. I’ve been using it for 2 years on a Raspberry PI to backup my files and photos, and I’ve never had any major issues with it.

However, its collaborative features can definitely get better (things like multiple people writing on the same text or calc document at the same time), especially since they are very popular among the people who use Nextcloud. These features exist, but they are typically hard to use, especially the first time, and poorly optimized. So when I see Nextcloud bragging about how they now have AI integrated (which I think most people don’t find that useful anyway), while opening a shared file sometimes still causes a mess… I think they could focus on more important things. But I guess you do need something to make it look shiny.

 

We’ve been very very pleased and satisfied to work with you over the last few months! Any final words?

I was delighted to work at Framasoft! I’ve learned a lot through this internship, and I want to thank the association again for its welcoming and comfortable working conditions.

Right now it’s time to relax, for me at least (before going to « class » again, but don’t mention it), and then to go back to work on my final internship at the beginning of next year! I’m just saying, of course 😉

 


Main links for Ownership Transfer:




Une nouvelle application pour Framaspace : OwnershipTransfer

Encore des nouveautés sur Framaspace ? Et oui ! En ce moment, on gâte les utilisateur⋅ices de ce service, avec l’intégration de pas mal de fonctionnalités comme les applications Forms et Tables, mais aussi l’app « Intros » qu’a développée Val, notre stagiaire estival (rime riche !). Et comme c’est Val, c’est festival (rime honteuse !) : juste avant de nous quitter pour des vacances bien méritées et une dernière année d’études, il nous a livré une nouvelle application « Ownership Transfer » qui facilitera la vie des administrateur⋅ices d’espaces Framaspace.

 

Bonjour Val, on ne va pas te proposer de te présenter, car tu l’as déjà fait dans la précédente interview. On rappellera juste que tu es en stage à Framasoft de début mai à fin août 2024, avec pour objectif de développer des outils d’accompagnement à Framaspace, et donc au logiciel libre Nextcloud.

Salut ! N’hésitez pas à aller lire ma précédente interview pour en savoir plus sur moi ! J’y parle d’Intros, une application pour faciliter la prise en main de Framaspace.

A la fin de l’interview, je parle d’une autre application Nextcloud sur laquelle je travaillais, OwnershipTransfer. À l’époque c’était encore en cours de préparation, mais depuis j’ai cuisiné, et maintenant c’est prêt.

 

OK, donc, parlons de l’App Ownership Transfer. À quoi sert-elle ? Quel est le public visé ?

Comme indiqué dans l’article précédent, OwnershipTransfer sert à transférer des données d’un⋅e utilisateurice à l’autre dans Nextcloud. Par exemple, lorsqu’une personne quitte une association qui utilise du Nextcloud (sur Framaspace, au hasard 😏), il peut être bien pratique de transférer ses fichiers avant de supprimer son compte. Cela permet d’éviter de perdre des archives importantes, des factures,… De même pour ses agendas, ou même ses carnets d’adresses.

Ça tombe bien, OwnershipTransfer (qu’on abrégera par la suite « OT ») fait tout ça. Elle permet aux administrateur⋅ices d’un espace Nextcloud de transférer les données de n’importe qui vers n’importe qui. À l’origine surtout destinée au transfert de fichiers, j’ai pu étendre l’application au transfert d’agendas et de contacts.

OT permet de transférer toutes les données d’une application, mais aussi de choisir plus finement ce qui devra être transféré. On peut ainsi choisir l’agenda, le carnet d’adresse ou un dossier à transférer, pour éviter de se retrouver avec les photos de vacances de quelqu’un d’autre dans ses fichiers.

#gallery-3 { margin: auto; } #gallery-3 .gallery-item { float: left; margin-top: 10px; text-align: center; width: 50%; } #gallery-3 img { border: 2px solid #cfcfcf; } #gallery-3 .gallery-caption { margin-left: 0; } /* see gallery_shortcode() in wp-includes/media.php */

 

Mais… cette possibilité n’existait pas déjà dans Nextcloud ?

Si, mais pas exactement comme on le voulait.

Nextcloud permet déjà de transférer ses propres fichiers à une autre personne, via une petite interface graphique dans les paramètres utilisateurs. On peut là uniquement transférer ses propres fichiers vers un autre utilisateur, mais pas choisir l’utilisateur source : ce n’est pas une solution pour les admins d’espace qui voudraient transférer des fichiers d’une personne à une autre.

Un⋅e administrateurice d’espace peut aussi transférer des fichiers ou des agendas d’un⋅e utilisateur⋅ice à un⋅e autre, via une commande « OCC ». OCC est la CLI de Nextcloud, via laquelle les admins peuvent lancer diverses opérations de maintenance ou de management. On y accède donc en ligne de commande via le terminal uniquement, ce qui a de quoi repousser la plupart des êtres vivants sur cette planète.

En bref cette solution fonctionne, mais ne propose pas d’interface graphique simple aux admins. Cela pose problème dans le cas de « fermes à Nextcloud » (une organisation qui héberge des instances Nextcloud pour beaucoup de clients d’un coup) comme Framaspace, dans lesquelles les administrateur⋅ices d’un espace n’ont pas accès à la ligne de commande.

 

Techniquement, comment ça marche ?

Comme elle s’intègre avec d’autres applications, OT se base essentiellement sur des APIs existantes de Nextcloud. L’application réutilise aussi des parties du code de Nextcloud que j’ai adaptées aux besoins de l’application. Par exemple, je réutilise le code de transfert de ses propres fichiers, en l’adaptant pour pouvoir choisir à la fois l’utilisateur⋅ice source et destinataire. De même pour le transfert d’agendas.

J’ai par contre dû implémenter le transfert de contacts, non disponible dans Nextcloud par défaut. Il est cependant très similaire au transfert d’agendas, dont je me suis inspiré, puisque les deux se basent sur le protocole WebDAV.

Pour l’affichage, j’utilise bien sûr les composants Vue proposés par Nextcloud. Leurs composants sont assez complets et agréables à utiliser, et ils en sortent de nouveaux régulièrement. Cela m’a permis de réaliser une interface graphique complète en peu de temps, et cohérente avec le reste du logiciel.

 

Tu as rencontré des soucis, qu’ils soient techniques, organisationnels, etc ?

La documentation de Nextcloud n’ayant pas miraculeusement centuplé en taille depuis la dernière fois, j’ai encore dû fouiller dans le code source de Nextcloud pour aller trouver les fonctions à utiliser. Ça commencerait presque à me plaire. Presque.

Mème d'un Val (avec quelques années de plus) face la (non) doc de Nextcloud.
Mème d’un Val (avec quelques années de plus) face à la (non) doc de Nextcloud.

 

Au moins, comme les fonctionnalités existaient déjà en partie dans Nextcloud, les adapter n’a pas été d’une difficulté monstre. Surtout que j’ai pu beaucoup compter sur les conseils de Tcit, codirecteur de Framasoft et contributeur bénévole de Nextcloud. En gros : j’écris du code, il le regarde, il se dit « Cool, mais ça passe pas à l’échelle ton truc », et puis je corrige.

C’était le problème la plupart du temps, le passage à l’échelle. C’est bien beau quand ça fonctionne sur mon petit environnement de test à 5 comptes et 7 dossiers, mais dans l’idéal il faut aussi que ça fonctionne sur les grosses instances Nextcloud avec beaucoup de fichiers. Par exemple, le transfert de fichiers peut prendre beaucoup de temps et de ressources : il faut déplacer tous les fichiers du dossier source vers la destination, ce qui peut être plus ou moins long en fonction de la quantité de fichiers et du type de stockage. Celui-ci est donc géré en fond : au lieu de l’exécuter au premier plan dès la réception de la requête, il est placé dans une file de « jobs » que le serveur effectue périodiquement.

Les transferts de contacts et d’agendas n’ont pas le même problème : il s’agit dans leur cas d’une simple requête SQL qui vient modifier la propriété de l’élément en question. Cette opération est rapide, et peut donc être exécutée au premier plan.

Outre le transfert en soi, réaliser l’interface a aussi été un vrai défi. L’application doit permettre à l’administrateurice de choisir quel élément doit être transféré, et doit donc lui proposer une interface pour faire son choix. Pour les agendas et les contacts, c’est plutôt simple : avec les composants de Nextcloud, j’ai pu facilement faire une liste d’agendas ou de carnets d’adresses. Pour les fichiers, ça se complexifie : il faut récréer une arborescence complète de fichiers, capable d’afficher des sous-dossiers.

Heureusement, un « insalien » n’est jamais seul. Romain, ancien étudiant INSA Lyon (du département Télécom, comme moi !) et ancien stagiaire à Framasoft, a travaillé il y a quelques années sur l’application Sorts. Le but de Sorts est d’améliorer la recherche de fichiers de Nextcloud, en proposant une recherche avec des filtres notamment. Mais Sorts a surtout quelque chose qui m’intéressait : une arborescence de fichiers en arbre. Pile ce qu’il me fallait.

#gallery-4 { margin: auto; } #gallery-4 .gallery-item { float: left; margin-top: 10px; text-align: center; width: 50%; } #gallery-4 img { border: 2px solid #cfcfcf; } #gallery-4 .gallery-caption { margin-left: 0; } /* see gallery_shortcode() in wp-includes/media.php */

Après avoir récupéré et adapté le code de Sorts, ce qui n’était pas forcément de tout repos, son arborescence s’intégrait parfaitement à OwnershipTransfer. Cela m’a permis de gagner beaucoup de temps de développement, et j’ai même pu apporter des améliorations, comme les lignes qui mettent mieux en évidence l’arborescence, ou les icônes de partage. Pas mal non ? C’est insalien 😎

Mème « Pas mal non ? C'est insalien »
Mème « Pas mal non ? C’est insalien »

 

Maintenant que ton stage s’achève, et après avoir « mangé » du Nextcloud pendant près de 6 mois, quels sont tes potentiels positionnements sur ce logiciel ?

Ah, c’est le moment où je râle !

Non blague à part, malgré toutes les critiques que je pourrais faire sur Nextcloud (notamment sa documentation légère, sa lenteur occasionnelle ou son interface qui laisse parfois à désirer), le logiciel est fonctionnel, et franchement c’est tout ce qui compte pour la plupart des gens. Des améliorations sont possibles (et sont en cours !), mais je le trouve déjà assez opérationnel pour la plupart des besoins que peuvent avoir ses utilisateur⋅ices. Je l’utilise personnellement depuis 2 ans sur ma Raspberry PI pour stocker mes fichiers, et je n’ai jamais eu de problème majeur avec.

Le logiciel peut par contre s’améliorer sur ses aspects collaboratifs, qui sont très demandés par les utilisateur⋅ices (écrire à plusieurs sur un fichier texte ou calc par exemple). Ces fonctionnalités existent, mais sont souvent encore difficiles à prendre en main et peu optimisées. Du coup, quand je les vois se vanter d’intégrer de l’IA au logiciel (alors que franchement, je pense que pour beaucoup ça n’a que très peu d’utilité) alors même que quand on ouvre un fichier texte en collaboratif c’est parfois encore le bordel… je me dis qu’ils pourraient mieux diriger leurs efforts. Mais bon, faut bien des annonces pour faire vendre.

 

Nous avons été très heureux⋅ses et satisfait⋅es de travailler avec toi pendant ces quelques mois ! Un dernier mot pour la fin ?

J’ai été très heureux de travailler à Framasoft ! Ce stage a été très enrichissant pour moi, et je remercie encore l’association pour son accueil et ses conditions de travail au top. Si les sujets que j’aborde dans cet article vous intéressent et que vous cherchez un stage dégooglisé, je vous encourage à venir à Framasoft (promis le dev Nextcloud c’est pas si terrible en vrai). Sinon, vous pouvez toujours faire un don !

Maintenant c’est l’heure des vacances pour moi (puis des « cours », mais ne le dites pas trop fort), puis de mon stage de fin d’études en début d’année prochaine. Je glisse ça là, au cas où 😉

Merci et bonne continuation, Val !


Pour information, si vous êtes étudiant⋅e, que vous aimez Nextcloud, et que ce genre de sujet de stage vous intéresse (de préférence à Lyon pour faciliter l’encadrement, mais télétravail possible), n’hésitez pas à nous envoyer rapidement une candidature spontanée sur stages @ framasoft.org !




Intros, une app Nextcloud pour faciliter la prise en main de Framaspace

Le projet Framaspace propose, à ce jour, un espace cloud (fichiers, agendas, contacts, wiki, kanban, etc) à plus de 1 200 associations et collectifs. C’est autant d’instances du logiciel libre Nextcloud. Malheureusement, ce dernier n’est pas toujours très facile à prendre en main, malgré les documentations, les forums, etc. Framasoft a donc décidé de faire plancher un stagiaire, Val, sur le sujet de l’accompagnement des personnes utilisant Nextcloud pour la première fois. Voici son histoire.


 

Bonjour Val, peux-tu te présenter ?

Salut ! Je m’appelle Val, j’ai 22 ans. J’ai grandi en banlieue parisienne, et depuis 4 ans maintenant je fais mes études à l’INSA Lyon, école d’ingénieur qui se trouve à… Villeurbanne (c’est comme Lyon, mais avec les endroits jolis en moins). Je suis Parisien, Lyonnais, banlieusard, parfois même Suédois, selon l’humeur.
Si tout se passe bien, je serai diplômé l’an prochain comme Ingénieur en Télécommunications.

J’aime chanter et faire de la musique, aller grimper des murs en plastique, résoudre des Rubik’s cube et jouer aux jeux vidéos, quand je suis pas occupé à bidouiller du code. Ces dernières années, j’ai aussi participé à plusieurs projets associatifs, notamment dans des associations de l’INSA, ou encore avec la Croix-Rouge.

Photo de Val, stagiaire Framasoft entre mai et août 2024
Photo de Val, stagiaire Framasoft entre mai et août 2024

 

Concernant ton stage, tu as choisi Framasoft. Pourquoi ?

J’étais en Suède au moment de chercher un stage, et c’était un peu galère. Chercher à distance c’est forcément plus compliqué, surtout que je voulais si possible faire un stage qui corresponde à mes valeurs. Si vous vous posez la question, en gros, être de la main d’œuvre pas chère pour renflouer le capital de grandes entreprises c’est pas trop mon truc.

L’année précédente, j’avais participé à organiser un évènement avec l’association Exit Lyon, dans lequel une salariée de Framasoft était venue faire une conférence sur l’émancipation queer par le numérique. Étant engagé dans le milieu associatif, je connaissais déjà un peu Framasoft, je pense comme beaucoup à travers les services numériques que l’asso propose. J’avais encore son mail, donc j’ai envoyé une candidature, et voilà où j’en suis quelques mois plus tard.

C’est un peu le cas idéal pour moi : un stage dans une organisation à but non-lucratif, en rupture avec le capitalisme, et qui contribue à construire plus de justice sociale dans notre société.

Mème Val
Val choisissant son stage chez Framasoft — Allégorie

 

Venons-en au sujet de ton stage. Quel était l’objectif général ?

Depuis 2 ans Framasoft propose Framaspace, une solution de collaboration et de stockage de fichier en ligne à destination d’associations et de collectifs militants, basée sur le logiciel libre Nextcloud. Bien qu’il réponde à la problématique posée, celui-ci est loin d’être parfait, et est notamment plus difficile d’utilisation que d’autres solutions existantes (non-libres et administrées par des GAFAM, par exemple Google Drive ou Microsoft 365).

Mon sujet de stage vient s’inscrire dans cette problématique : comment faire pour que la première fois qu’une personne se connecte à Nextcloud elle ne fuit pas en courant. Mon but est de faciliter la première utilisation de Nextcloud, en accompagnant les utilisateurices et en les aidant à s’approprier le logiciel. Si tout se passe bien, cela encourage les gens à rester sur cette solution libre et respectueuse de leur vie privée, à défaut de les voir courir vers des solutions jugées plus simples d’utilisation chez les GAFAM.

Fort heureusement, Nextcloud permet à la communauté de créer des applications qui s’intègrent au logiciel pour venir l’améliorer. La première incarnation de cette mission prend donc la forme d’une Application Nextcloud, « Intros ».

OK, donc, parlons de l’App Intros. À quoi sert-elle ? Quel est le public visé ?

Intros répond à la question la plus simple qu’une personne a en arrivant sur Nextcloud : « Il est où le bouton pour [insérer une action quelconque] ? ».

Pour y répondre, Intros met en lumière des éléments, des boutons ou même des parties de l’interface de Nextcloud et explique à quoi elles servent. Par exemple, l’application va surligner la petite icône de partage d’un fichier et afficher un texte qui explique comment partager un fichier à une autre personne. C’est valable pour plusieurs des applications de Nextcloud, des fichiers aux contacts, en passant par le calendrier.

Techniquement, comment ça marche ?

L’application est basée sur la bibliothèque intro.js, qui permet justement de réaliser des tutoriels pas à pas en surlignant les éléments d’une page web. La bibliothèque s’intègre simplement à Nextcloud comme une bibliothèque javascript classique, et on peut personnaliser des visites pour les utilisateurices.

C’est tout ? Non ! La bibliothèque gère certes la plupart des aspects de l’affichage pour nous, mais il a fallu l’adapter pour qu’elle s’intègre à Nextcloud. Par exemple, gérer quand la visite d’une application a déjà été suivie, pour ne pas la proposer une nouvelle fois à l’utilisateurice, et faire un menu pour réactiver les visites en cas de besoin. Ou encore gérer différentes langues, afficher des boutons cohérents avec le reste de Nextcloud, surligner des éléments dans des menus… Bref, de nombreuses petites améliorations qui permettent à la bibliothèque de bien s’intégrer à Nextcloud, sans que les utilisateurices ne se doutent de rien.

Tu as rencontré des soucis, qu’ils soient techniques, organisationnels, etc ?

Bien sûr, sinon c’est moins marrant. Comme toujours quand je développe quelque chose, parfois ça fonctionne et je me dis que, quand même, je suis vraiment génial, et parfois (souvent) ça fonctionne pas et je me dis que, quand même, je suis stagiaire.

Par exemple, au cours du développement je me suis rendu compte que l’application avait parfois du mal à trouver certains éléments de la page. L’un des soucis d’intro.js, c’est que la bibliothèque est prévue pour être déployée sur un site qui a été conçu par la personne qui écrit les visites guidées. Cette personne aurait donc une bonne connaissance de la structure du site, et saurait quels éléments doivent être sélectionnés pour que ça fonctionne à tous les coups… Sauf que cette personne, c’est pas moi. Je l’intègre à Nextcloud, que je n’ai évidemment pas conçu, et je dois donc m’adapter à la structure des pages existantes. Comme si c’était pas assez simple, la façon dont les pages sont construites change en fonction de l’application (Fichiers, Agenda, Contacts…) ou même de la version de Nextcloud. Bref, il a fallu rétro-ingénierer le DOM HTML au cas par cas, pour trouver quels éléments il était possible de sélectionner et éviter de sélectionner des éléments qui peuvent changer de nom, de classe, ou même disparaître totalement.

Mais même en faisant attention, parfois ça ne passait pas. L’application n’arrivait pas à trouver certains éléments, et affichait une explication sur du vide. Pas idéal. Dans intro.js, par défaut, on donne une liste d’éléments à surligner et les explications qui vont avec, et la bibliothèque se charge de les détecter dans le DOM au chargement de la page. C’est ce point qui était bloquant dans ce cas : au chargement de la page. Les éléments sont tous chargés d’un coup, et ne peuvent donc pas changer en cours de route. Ça m’a posé problème spécifiquement dans deux cas :

  • d’abord, les éléments dans des menus. Parfois on veut mettre en évidence un élément qui n’est pas visible par défaut, et qui le deviendrait après un clic de l’utilisateurice sur un bouton ;
  • ensuite, les éléments qui ne sont pas chargés immédiatement au chargement de la page. Certaines applications de Nextcloud mettent un peu plus de temps à charger leurs éléments, et la bibliothèque ne peut donc pas les détecter dès le chargement.

Alors comment on fait ? Ben on appuie sur les touches du clavier, dans le bon ordre si possible, et au bout d’un moment ça fait du code qui règle le problème. Ici, au lieu de détecter tous les éléments d’un coup, j’ai fait en sorte de les détecter juste avant qu’on ait besoin d’eux. A chaque fois que l’utilisateurice appuie sur « suivant », l’application détecte l’élément suivant qui doit être surligné et remplace l’élément par défaut par cet élément avant de lancer l’étape suivante. Comme ça, on n’a pas à se soucier du temps de chargement de la page, ou du fait que le bouton soit dans un menu. Reste plus qu’à simuler un clic utilisateur avec javascript pour les boutons dans les menus et paf! ça fait des chocap… bref ça fonctionne.

Mème Val "This is fine"
Val faisant face aux disparités de gestion du DOM HTML dans Nextcloud –Allégorie

 

Maintenant que l’app est publiée, quelle est la suite des événements ?

La suite, j’allais dire que ça ne dépend presque plus de moi ! J’espère que l’application sera utilisée par les utilisateurices de Nextcloud, elle est en tout cas déjà utilisée au sein de Framaspace.

Par ailleurs, on a discuté avec Nextcloud d’une possible intégration de l’application au cœur du logiciel (non plus en tant qu’application tierce, mais directement dans Nextcloud). Cela faciliterait l’ajout de nouveaux tutoriels pour les applications tierces, mais Nextcloud émet des réserves quant à la pertinence de son intégration. Une des remarques faites est que l’appli vient expliquer l’interface, alors qu’on peut directement adapter l’interface pour la rendre plus facile d’utilisation (elle se passerait alors d’explications).

Capture écran de Intros dans le magasin d'application Nextcloud
Capture écran de Intros dans le magasin d’application Nextcloud

 

Et puis l’application peut encore être améliorée (après tout je ne suis qu’un modeste stagiaire) pour la rendre plus performante, plus facile à maintenir, etc. C’est également important puisqu’on souhaite qu’elle soit maintenue au fur et à mesure des mises à jour (fréquentes !) de Nextcloud.

Mon petit doigt me dit que tu travailles sur une autre application Nextcloud, tu peux nous en dire plus ?

Ton petit doigt m’a l’air très bien renseigné 😉

Une nouvelle application est effectivement en cours de construction (#WIP). L’application OwnershipTransfer de son petit nom permettra à l’admin d’un Nextcloud de transférer la propriété des fichiers (ou même d’autres types de données) d’un-e utilisateurice vers un-e autre. Bien pratique par exemple quand une personne quitte une association qui utilisait Nextcloud sans penser à transférer ses fichiers importants à un-e autre membre : cela évite de perdre à tout jamais le budget prévisionnel de l’asso. Par contre, ça fait toujours pas le café… désolé.

#gallery-5 { margin: auto; } #gallery-5 .gallery-item { float: left; margin-top: 10px; text-align: center; width: 50%; } #gallery-5 img { border: 2px solid #cfcfcf; } #gallery-5 .gallery-caption { margin-left: 0; } /* see gallery_shortcode() in wp-includes/media.php */

On arrive à la fin de cette interview. Souhaites-tu nous partager un sentiment sur le travail effectué pendant ce stage ?

Je suis pleinement satisfait du travail que j’ai effectué. Au delà du fait d’avoir conçu et développé une application Nextcloud pour la première fois de A à Z, c’est surtout d’en tirer énormément de nouvelles compétences et apprentissages. Que ça soit en PHP, langage que je n’avais que peu apprivoisé avant mon stage, en développement logiciel de manière générale, gérer des releases, des issues et des merge request… Je suis très heureux de pouvoir sortir de ce stage en ayant beaucoup appris.

J’en profite pour remercier l’équipe salariée de Framasoft, qui a toujours su m’aider et répondre à mes questions quand j’en avais besoin !

Dernière question, récurrente dans nos interviews : quelle est la question que tu aurais aimé qu’on te pose, et quelle serait ta réponse ?

« Mais dis moi Val, tu la trouves comment la documentation de Nextcloud ? »

C’est un peu mon instant râleur (après tout je suis Français). Elle est… peu fournie, pour profiter d’une occasion d’utiliser une figure de style que j’aime beaucoup. Ça présente ses avantages d’un côté, si on veut y voir du positif : aller fouiller dans le code source pour comprendre comment utiliser les API c’est très formateur !

Merci beaucoup, Val !
Pour information, si vous êtes étudiant⋅e, que vous aimez Nextcloud, et que ce genre de sujet de stage vous intéresse (de préférence à Lyon pour faciliter l’encadrement, mais télétravail possible), n’hésitez pas à nous envoyer rapidement une candidature spontanée sur stages @ framasoft.org !




PeerTube v4, more power to help you present your videos

Customization, content discovery, empowering through more control… Here is an overview of the new version of our software solution to create alternative platforms to YouTube and federate them together.

« Frama is not just… »

Each week of Fall 2021, we want to present you the diversity of what Framasoft does. As these actions are funded by your donations (66% tax-free for Fench tax-payers), you can find a complete summary, in the form of cards to click and flip, on the website Support Framasoft.

➡️ Read this series of articles (FR, Oct – Dec 2021)

PeerTube is a free software that, once installed on a server, generates a video hosting platform. This platform can be federated, to share its video catalog with other PeerTube platforms. It also provides a resilient video broadcasting system, which combines peer-to-peer and traditional streaming.

Today, PeerTube is a whole ecosystem: with an index of nearly 900 public « instances » (that’s how a PeerTube server is called), a search engine, dozens of plugins to adapt one’s instance to the needs of the content creators they hosts… But also tens of thousands of lines of code and hundreds of thousands of videos.

Card "Peertube" PeerTube is an open source software that democratises video distribution, as it allows hosts to create YouTube-like video platforms. These platforms can link together to show a wider range of videos while remaining independent.

A year of work since adding live streams

Last January, the 3rd version (v3) of PeerTube was released. The big new feature was the ability to stream live videos in peer-to-peer.

Late March 2021, version 3.1 was released, with improved video transcoding, interface, subscriptions…

Version 3.2 of PeerTube was released by the end of May. It allows content creators to customize their channels. Viewers also get better control of their viewing (automatic recover of views of downloads when interrupted, improvement on the video player contextual menu…).

Late July, version 3.3 offers administrators of a PeerTube instance homepage customization: add text, banners, highlight videos, channels, playlists. In addition, playlists now appear in search results, we have also shortened the web addresses of videos, channels and accounts, and the display of languages that read from right to left is now fully supported.

Framatube homepage
Framatube homepage

In early September, PeerTube version 3.4 was released. The video player became more convenient and fluid. Instance administrators can now federate only to an account or a channel (without having to federate with the whole instance that hosts them). But above all, it is now possible to filter videos on a page that displays several videos. For example, on the page of a channel you can display only the videos that are in French and that talk about cooking.

illustration CC-By David Revoy (sources)

A v4 by 2022, to give you even more control

The fourth version of PeerTube is scheduled for late 2021/early 2022. But as of today, we are publishing the Release Candidate of this v4, that is to say, the almost finished version that we will test for bugs and unexpected behavior. So we can already tell you about the new features!

The big new feature of this v4 is the table view of all the videos of an instance. It will facilitate instances administration and moderation by allowing you to select a batch of videos to apply the same action in bulk: delete them, block them, transcode them to or delete a certain video format, etc.

Table view of video administration on PeerTube
Table view of video administration on PeerTube

The advanced filter features make this bulk processing easier, by distinguishing between local videos (hosted on one’s own server) and remote videos (hosted on servers with which one has federated), or by sorting by publication date, for example.

Content creators will also be able to benefit from features to better manage all the videos on their PeerTube channels or view their subscribers. For now, this subscriber view is basic and doesn’t allow for (much) action, but it’s a foundation we’ll be able to build on to meet many needs.

Table view of subscribers to a PeerTube account
Table view of subscribers to a PeerTube account

Another new low-tech feature in PeerTube is the introduction of 144p video resolution. This is very low bandwidth-friendly, and can be very useful for weak connections, audio broadcasts, or videos where you don’t need to see very fine details.

Finally, the release of this v4 is the occasion of a big spring winter cleaning. The configuration, the code, but also the API (that allows other software to interact with PeerTube) have been reviewed, modified and improved.

Vertical videos are more beautiful in this new version, too...
Vertical videos are more beautiful in this new version, too…

 

Our contributions to the PeerTube ecosystem

Indeed, PeerTube is now an ecosystem of instances, content creators, third party clients, plugins, contributors… An ecosystem of which we are but one member.

Throughout the year, we have improved the JoinPeertube FAQ, moderated our search engine index, responded to issues (software feedback) and reviewed pull requests (code contributions). After a recent audit offered by NGI, we worked on the code of the official JoinPeertube website to improve its accessibility.

We also funded and supported two external developments that greatly improve the live experience. On one hand, we helped the PeerTube Live Chat plugin. It allows instances adminnistrators to add chat functionality to their content creators’ live streams. On the other hand, the PeerTube Live App, which allows anyone with a PeerTube account to broadcast lives from their Android smartphones (available here on Fdroid and here on the Google Playstore).

 

 

Broadcast live from your smartphone!
Broadcast live from your smartphone!

One of the recent evolutions of the PeerTube ecosystem is the multiplication of large instances, which host many videos. This creates new uses and new expectations that we try to meet.

For example, we communicate with one team of the French Ministry of Education, that works on apps.education.fr, a tool where teachers in France can find many freeèlibre services, including PeerTube hosting. Our goal is to get a better understanding of their needs and use cases, and to find ways to facilitate their contribution to the PeerTube community.

Any plans for PeerTube in 2022…?

The first project is to test this v4 Release Candidate, collect feedback, apply fixes to release a stable v4 by the end of 2021 / early 2022. After that, it will probably be necessary to take some time to rest, and prepare a roadmap for the upcoming year.

Even if we don’t know yet what form PeerTube v5 will take, we can already tell you about our intuitions, and especially the points that caught our attention:

  • Eliminate frustration points and improve usability;
  • Work on giving even more control to instance managers as well as to video makers (mass processing of videos, acting on subscriber lists, etc.);
  • Improve the transcoding and its displaying (display of the time remaining before publishing the video, why not work on deporting transcoding tasks to a remote server…);
  • Add light-weight editing tools for videos (cut the beginning/end of a video, etc.);
  • Work on automatic import of channels and videos hosted on other mainstream platforms;
  • Basic import/export tools for a PeerTube account to facilitate migration between two instances.

The list is far from complete and we’ll keep listening to your ideas (for example on our forum)… But we already know that we won’t be able to do everything, not by ourselves.

Illustration : David Revoy (CC-By)

Support Framasoft to support PeerTube

In 2021, we received a 50 000 € grant from NLnet (from European funds) for our work on PeerTube. This external funding allowed us to avoid having to prioritize « sexier » features in order to get a successful crowdfunding. So it’s thanks to this support from NLnet that we were able to make significant improvements that are not super-bankable, but necessary when you want a mature software.

The growing success of PeerTube implies an increasing amount of work to maintain and respond to the people who use it: understanding and solving bug reports, reviewing and integration of code contributions (commits), answering questions and requests on the forum, on the chat and on the software forge (already 3100 issues processed for about 400 pending)… All this work, not very visible, is mainly done by Framasoft.

We estimate (roughly) that the NLnet grant will have financed two thirds of the total cost of this project in 2021. This means that we have taken 25 000 € from the annual budget of the Framasoft association, so from the donations of the people who support us. We did not ask NLnet for 2022 funding on PeerTube (because we did it for another of our projects: Mobilizon).

However, Framasoft is (and wishes to remain) a small not-for-profit association https://framasoft.org/en/association , with about 40 members, including 10 employees. We maintain many actions (summarized in a deck of cards to flip on our donation page), and only one of our developers can devote about three quarters of his time to PeerTube.

If you would like to support the funding of PeerTube in 2022, please donate to Framasoft. By the way, in France, the Framasoft association is recognized as being of general interest and thus gives rights to tax deductions (so that a donation of 100 € will be – after tax deduction – 34 € for French taxpayers).

Thus, in addition to supporting PeerTube, you will finance many actions to facilitate digital emancipation, and emancipation through digital.

We count on your contribution!

Support Framasoft

 

Helpful links




PeerTube v4, prenez le pouvoir pour présenter vos vidéos

Personnalisation, mise en avant des contenus, plus de pouvoir et de maîtrise… Tour d’horizon de la nouvelle version de notre solution logicielle pour créer des plateformes alternatives à YouTube et les fédérer ensemble.

« Frama, c’est pas que… »

Pour l’automne 2021, chaque semaine, nous voulons vous faire découvrir un nouveau pan des actions menées par Framasoft. Ces actions étant financées par vos dons (défiscalisables à 66 %), vous pouvez en trouver un résumé complet, sous forme de cartes à découvrir et à cliquer, sur le site Soutenir Framasoft.

➡️ Lire cette série d’articles (oct. – déc. 2021)

À noter : cet article bénéficie désormais d’une version audio.
Merci à Sualtam, auteur de lectureaudio.fr pour cette contribution active.

PeerTube est un logiciel libre qui, une fois installé sur un serveur, permet de créer une plateforme d’hébergement vidéo. Cette plateforme peut se fédérer, pour partager son catalogue de vidéos avec d’autres. Elle offre aussi une diffusion des vidéos résiliente, qui associe diffusion en pair à pair et la diffusion classique.

Or aujourd’hui, PeerTube, c’est tout un écosystème : avec un index de près de 900 instances (c’est le nom d’un serveur PeerTube), un moteur de recherche des contenus, des dizaines de plugins pour adapter son instance aux besoins des vidéastes qu’on héberge… Mais aussi des dizaines de milliers de lignes de code et des centaines de milliers de vidéos en ligne.

Carte "Peertube" PeerTube est un logiciel libre qui démocratise la diffusion de vidéos, car il permet à des hébergeurs de créer des plateformes vidéos à la YouTube. Ces plateformes peuvent se relier entre elles pour montrer un plus grand choix de vidéos tout en restant indépendantes.

Un an de travail depuis l’arrivée du live

C’est en janvier dernier qu’est sortie la 3ème version (v3) de PeerTube, avec comme grande nouveauté la possibilité de diffuser des vidéos en direct pour des live minimalistes.

Fin mars, c’est la version 3.1 qui voit le jour, avec une amélioration du transcodage des vidéos, de l’interface, des abonnements…

La version 3.2 de PeerTube a été publiée fin mai. Elle permet aux vidéastes de personnaliser leurs chaînes, et au public de mieux maîtriser leur visionnage (reprise automatique de la lecture d’une vidéo, amélioration du menu contextuel du lecteur vidéo…).

Fin juillet, la version 3.3 permet aux personnes qui administrent une instance PeerTube de personnaliser leur page d’accueil : y ajouter du texte, des bandeaux, mettre en valeur des vidéos, des chaînes, des listes de lectures. De plus, les playlists apparaissent désormais dans les résultats de recherche, nous avons raccourci les adresses web des vidéos, chaînes et comptes, et l’affichage des langues qui se lisent de droite à gauche est désormais pleinement supporté.

Page d'accueil de Framatube
Page d’accueil de Framatube

Début septembre, c’est la version 3.4 de PeerTube qui voit le jour. Le lecteur vidéo devient plus pratique et plus fluide. Les administrateurs d’instances peuvent désormais se fédérer uniquement à un compte ou une chaîne (sans avoir à se fédérer avec toute l’instance qui les héberge). Mais surtout on peut enfin filtrer les vidéos d’une page qui en affiche plusieurs. Par exemple, sur la page d’une chaîne vous pouvez afficher uniquement les vidéos qui sont en français et qui parlent de cuisine.

illustration CC-By David Revoy (sources)

Une v4 d’ici 2022, pour vous donner encore plus de maîtrise

La quatrième version de PeerTube est prévue pour fin 2021/début 2022. Mais dès aujourd’hui, nous publions la release candidate de cette v4, c’est à dire la version presque finie que l’on va tester pour en chasser les bugs et comportements inattendus. On peut donc d’ores et déjà vous décrire les nouvelles fonctionnalités !

La grosse nouveauté de cette v4 c’est la vue en tableau de toutes les vidéos d’une instance. Elle va faciliter l’administration et la modération d’une instance en permettant de sélectionner un lot de vidéos pour leur appliquer la même action : les supprimer, les bloquer, transcoder vers ou effacer tel ou tel format de vidéo, etc.

vue en tableau de l’administration de vidéos sur PeerTube
vue en tableau de l’administration de vidéos sur PeerTube

Les fonctionnalités de tri avancé permettent de faciliter ce traitement par lot, en distinguant les vidéos locales (hébergées sur son serveur) et distantes (hébergées sur des serveurs avec qui l’on s’est fédéré), ou en triant par date de publication, par exemple.

Les vidéastes aussi vont pouvoir bénéficier de fonctionnalités pour mieux gérer l’ensemble des vidéos sur leurs chaînes PeerTube ou visualiser leurs abonné·es. Pour l’instant, cette vue des abonné·es est basique et ne permet pas (beaucoup) d’actions, mais c’est là une base sur laquelle nous allons pouvoir construire pour répondre à de nombreux besoins.

Capture d'écran de la vue en tableau des abonnés à un compte PeerTube
Vue en tableau des abonné·es à un compte PeerTube

Autre nouveauté orientée low-tech dans PeerTube, c’est l’apparition de la définition 144p pour les vidéos. Très peu gourmande en bande passante, elle peut être très pratique pour les faibles connexions, les diffusions audio, ou les vidéos dont on n’a pas besoin de voir des détails très fins.

Enfin, la sortie de cette v4 est l’occasion d’un grand ménage de printemps d’hiver. La configuration, le code, mais aussi l’API (ce qui permet à d’autres logiciels d’interagir avec PeerTube) ont été revus, modifiés et améliorés.

Capture de l'onglet d'une miniature de video verticale sur PerrTube
Les vidéos verticales sont mieux présentées par cette nouvelle version, aussi. C’est peut-être un détail pour vous…

Nos contributions à l’écosystème PeerTube

En effet, PeerTube, c’est maintenant un écosystème d’instances, de vidéastes, d’applications, de plugins, de contributeurs et contributrices… dont nous faisons partie.

Tout au long de l’année, nous avons amélioré la foire aux questions de JoinPeertube, modéré l’index de notre moteur de recherche, répondu aux issues (les retours sur le logiciel) et corrigé des pull requests (proposition de contribution en code). Suite à un audit récemment offert par The Accessibility Foundation, nous avons travaillé sur le code du site officiel JoinPeertube pour améliorer son accessibilité.

Nous avons aussi financé et accompagné deux développements externes qui améliorent grandement l’expérience des live. D’une part, le plugin PeerTube Live Chat qui permet aux instances d’ajouter une fonctionnalité de chat aux lives de leurs vidéastes. D’autre part l’application PeerTube Live App, qui permet aux vidéastes de diffuser des lives depuis leur smartphone Android (disponible ici sur Fdroid et là sur le Playstore de Google).

gif montrant l'ajout d'un live sur l'applicaiton peertube live app
Diffusez en direct depuis votre smartphone !

Une des récentes évolutions de l’écosystème PeerTube, c’est la multiplication de grosses instances, qui hébergent de nombreuses vidéos. Cela crée donc de nouveaux usages et de nouvelles attentes auxquelles nous essayons de répondre.

Ainsi, nous communiquons avec l’équipe du Ministère de l’Éducation Nationale qui travaille sur apps.education.fr, un portail où les enseignant·es français⋅es peuvent trouver de nombreux services libres, dont des hébergements PeerTube. L’objectif est de mieux comprendre leurs besoins et cas d’usage, et trouver comment faciliter leur contribution au sein de la communauté PeerTube.

capture d'écran de la plateforme apps.education.fr proposant PeerTube
PeerTube est proposé aux agent·es de l’éducation nationale.

Des projets pour PeerTube en 2022…?

Le premier projet, c’est de tester cette Release Candidate de la v4, récolter vos retours, appliquer les corrections pour publier une v4 stable d’ici fin 2021 / début 2022. Ensuite, nous allons probablement prendre un temps pour se reposer, prendre des forces et préparer une feuille de route pour l’année à venir.

Si nous ne savons donc pas encore la forme que prendra PeerTube v5 on peut d’ores et déjà vous dire nos intuitions, et surtout les besoins qui ont retenu notre attention :

  • Éliminer les points de frustration et améliorer l’utilisabilité ;
  • Travailler à donner encore plus de maîtrise aux gestionnaires d’instances comme aux vidéastes (traitement en masse de vidéos, agir sur les listes d’abonné·es, etc.) ;
  • Améliorer le transcodage et sa compréhension (affichage du temps restant avant publication de la vidéo, pourquoi pas travailler à déporter le transcodage sur un serveur distant…?) ;
  • Ajouter des outils d’édition légère de vidéos (couper le début/la fin d’une vidéo, etc.) ;
  • Travailler sur l’import automatique de chaînes et vidéos hébergées sur d’autres plateformes privatives ;
  • Outils d’import/export basiques d’un compte PeerTube pour faciliter la migration entre deux instances.

La liste est loin d’être complète et nous resterons à l’écoute de vos idées (par exemple sur notre forum)… Mais nous savons dès à présent que nous ne pourrons pas tout faire, pas à nous seul·es.

Illustration : David Revoy (CC-By)

Soutenez Framasoft pour soutenir PeerTube

En 2021, nous avons bénéficié d’une bourse de 50 000 € de la fondation NLnet pour notre travail sur PeerTube. Ce financement externe nous a surtout permis de ne pas devoir s’imposer de coder des fonctionnalités plus « tape-à-l’œil » afin de réussir un crowdfunding. C’est donc grâce à ce soutien de NLnet que nous avons pu apporter des améliorations significatives qui ne sont pas hyper vendeuses, mais nécessaires si l’on veut un logiciel mature.

Le succès croissant de PeerTube implique en effet un travail croissant de maintenance et de réponses aux personnes qui l’utilisent : comprendre et résoudre les rapports de bugs, relire et traiter les contributions en code (commits), répondre aux questions et demandes sur le forum, sur le chat et sur la forge du logiciels

(déjà 3100 issues traitées pour environ 400 en attente)… Tout ce travail, peu visible, est principalement assuré par Framasoft.

Nous estimons (c’est approximatif) que la bourse de NLnet aura financé les deux tiers du coût total de ce projet en 2021. Cela induit que nous avons pris 25 000 € sur le budget annuel de l’association Framasoft, donc sur les dons des personnes qui nous soutiennent. Nous n’avons pas demandé de financement 2022 sur PeerTube à NLnet (car nous l’avons fait pour un autre de nos projets : Mobilizon).

Or Framasoft est (et souhaite rester) une petite association à but non lucratif, d’une quarantaine de membres, dont dix salarié·es. Nous maintenons de très nombreuses actions (résumées en un jeu de cartes sur notre page de dons), et seul un de nos développeurs peut consacrer les trois quarts de son temps à PeerTube.

Si vous désirez soutenir le financement de PeerTube en 2022, n’hésitez pas à faire un don à Framasoft. D’ailleurs, en France, l’association Framasoft est reconnue d’intérêt général et ouvre droit à des réductions d’impôts (ce qui fait qu’un don de 100 € reviendra -après déduction fiscale- à 34 € pour les contribuables français·es).

Ainsi, en plus de soutenir PeerTube vous financerez de nombreuses actions pour faciliter l’émancipation numérique, par le numérique.

Nous comptons sur votre contribution !

Soutenir Framasoft

Liens utiles




PeerTube v3 : it’s a live, a liiiiive !

Today we are releasing a major new version of PeerTube, our alternative to centralized video platforms like YouTube.

Please note:

Wait… What is PeerTube?

PeerTube is not a platform, it is a software.

Hosters can install this software on their servers and create a « PeerTube website » (an instance) where users can view and upload videos as an alternative to YouTube.

Unlike YouTube, PeerTube instances are :

  • Free: everyone has the right to use PeerTube software, you can look « under the hood » to see if the code is clean, you can even tweak it to your liking and share it!
  • Federated: each PeerTube site can synchronize with another to show their videos without hosting them on the server’s hard drive.
  • Decentralized: the videos use peer-to-peer streaming (from PeerTube to the internet user, but also from internet users to other internet users), to improve fluidity.
You are new to PeerTube and want to know more?
🔗 Joinpeertube.org

 

A v3 funded by your solidarity

In June 2020, we announced the steps of our roadmap for the next 6 months, up to PeerTube v3.

On this occasion, we launched a fundraising campaign, with the aim of financing the €60,000 that this development would cost us. Your have been very generous, as more than €68,000 have been raised.

A successful fundraising campaign, thanks to you!

We would like to thank you for this generosity especially in a difficult time for everyone. Thanks also to the sponsors of this v3, Octopuce (which proposes hosting and managed services of free-libre softwares, including PeerTube) and Code Lutin (development company specialising in free-libre software). But also the Debian project (one of the best known and most used free-libre GNU-Linux distributions) which, by their donation and their press release, gave PeerTube an international recognition.

Research, moderation, facilitation: key steps

The transition from v2.2 (June 2020 version) to v3 of PeerTube has been done in steps, with many minor improvements and at least one major development each time.

The global search of version 2.3, released during the summer, allows you to find videos in the whole federation (and not just in the federation-bubble of the PeerTube instance you are visiting).

The version 2.4 of September has improved the moderation tools, the display of playlists on external sites and the plugin system.

Illustration: David Revoy (CC-By)

At the end of September, we unveiled SepiaSearch, the PeerTube videos and channels search engine based on the global search feature. That feature was not intended to be a separate search engine, with its web interface and indexed PeerTube instance list. The constraint was to make it free and affordable, so that others could host their own PeerTube search engine, with their own rules. Your feedback helped us understand that this was expected and necessary, so we added this step to our roadmap.

click on the image to go to SepiaSearch, our PeerTube video and channel search engine.

From October onwards, development focused on live and peer-to-peer video streaming. It was a big undertaking. The fact that it happened in a difficult 2020 year (for everyone) didn’t help, but we managed to complete the challenge with almost no delay! (or very little? :p)

A minimalist and efficient peer-to-peer live stream

The great feature of this v3 is live streaming, and we are proud to say that it works very well! 🎉🎉🎉

Here is a link to the release, we hope that PeerTube Instances admin will apply the update soon!

We have detailed how it all works in the announcement of the publication of version 3 RC (for « release candidate ») which has been tested in the last few weeks.

Thank you to the Canard Réfractaire for their tests and feedback.

The main points to remember :

  • The lag (between video maker and audience) varies between 30 seconds and 1mn, as expected ;
  • Depending on the power of the server and its load (number of simultaneous live shows, transcoding, etc.), PeerTube can provide hundreds of simultaneous views (but we’re not sure that it will scale to thousands… at least not yet!);
  • Administration options are included for people hosting the instance;
  • The features are minimalist by design, and we have documented our recommendations for creating a live ;
  • The live can be done with most video streaming tool (we recommend the free-libre software OBS), with two options:
    • An « short-lived » live, with a unique identifier, will offer the possibility to save the video and display a replay on the same link;
    • A « permanent » live stream, which will work more like a Twitch channel, but without the replay option.

Illustration: David Revoy – License: CC-By 4.0

There is more than live in life

This v3 comes with many changes and improvements, thanks to the UX design work we did with Marie Cécile Godwin Paccard. Menus, notifications, administration and moderation tools have been redesigned.

Before menu redesign

After, with improved menus

This work on the menus is just one of the most visible examples of the many improvements that have been made to PeerTube to make its use more enjoyable. We are very pleased with the initial results and we are looking forward to continue this work.

« PeerTube, Backstage »

During the fundraising for this v3, a certain TomToom offered us an original contribution. Video director for Kintésens prod, he wanted to offer us a short behind-the-scenes movie about PeerTube. The challenge? To show the reality lived by our very small team, with our artisanal methods (we proudly claim the term), while respecting the will of Chocobozzz (the only paid developer on the project) not to show up on the screen and to devote his time to develop this v3.

The result? Here it is.

PeerTube’s Behind the Scenes, on Framatube
You can help us translate the French subtitles of this video by going on our translation tool.

PeerTube’s future

The next step? Getting some rest! In the meantime, don’t hesitate to give us as much feedback as possible on these new features, specifically on the live. It’s by reading your contributions on our forum that we can understand what is expected, what we need to prioritize, what needs to be corrected or improved.

We do not foresee any crowdfunding in 2021, nor to finance the future v4 of PeerTube. These fundraising put us in a paradoxical situation: we want to raise awareness about the software to raise funds, so people are interested in it, so they want to contribute, but we have little time to welcome them, because our very small team has to work hard to develop the features promised in the fundraising.

So we haven’t drawn up a strict roadmap for 2021, in order to keep ourselves available and react to the needs we perceive. We just know that the main theme of PeerTube v4 will be customization.

Centralized platforms give little power over the display of videos (newest, most viewed, just that category, etc.), the look of their platform, or even customization of the channels. Giving these capabilities back to the people seems to us to be an interesting and fun way to go.

If you wish to help us in this approach, do not hesitate to promote PeerTube around you (with the JoinPeertube website) or to financially support our not-for-profit.

Visit JoinPeertube.org Support Framasoft

 

Illustration: David Revoy – License: CC-By 4.0




PeerTube v3 : ça part en live

Nous publions aujourd’hui une nouvelle version majeure de PeerTube, notre alternative aux plateformes de vidéos centralisatrices à la YouTube.

À noter :

Mais… C’est quoi PeerTube ?

PeerTube n’est pas une plateforme, c’est un logiciel.

Ce logiciel, des hébergeurs peuvent l’installer sur leur serveur, et créer un « site web PeerTube » (on parle d’une instance) où des internautes peuvent voir et uploader des vidéos, comme une alternative à YouTube.

A la différence de YouTube, PeerTube permet de créer des instances :

  • Libres : tout le monde à le droit d’utiliser le logiciel PeerTube, on peut regarder « sous le capot » voir si le code est clean, on a même le droit de le bidouiller à sa sauce et de partager tout ça !
  • Fédérées : chacun des sites PeerTube peut se synchroniser avec les autres pour montrer les vidéos des copains sans les héberger sur le disque dur de leur serveur.
  • Décentralisées : les vidéos sont diffusées en pair-à-pair (de PeerTube vers l’internaute, mais aussi des internautes vers les autres internautes), pour une meilleure fluidité.
Vous découvrez PeerTube et voulez en savoir plus ?
🔗 Joinpeertube.org

Une v3 financée par votre solidarité

En juin 2020, nous avons annoncé les étapes de développement prévues sur les 6 prochains mois, jusqu’à la v3 de PeerTube.

À cette occasion, nous avons lancée une collecte, avec pour objectif de financer les 60 000 € qu’allait nous coûter ce développement. Votre générosité a été au rendez-vous puisque plus de 68 000 € ont été récoltés.

sur fond d'iamge de sepia, la mascotte de peertube, 2 textes invitant à soutenir par des dons le développement de peertube vers la version 3
Une collecte réussie, grâce à vous !

Nous tenons à vous remercier de cette générosité tout particulièrement en une période difficile pour tout le monde. Merci aussi aux mécènes de cette v3, Octopuce (spécialisé dans l’infogérance d’outils libres, dont du PeerTube) et Code Lutin (entreprise de développement spécialisée dans le logiciel libre). Mais aussi le projet Debian (qui travaille autour d’une des distributions Libres les plus connues et utilisées) qui, par leur don et leur communiqué, offre ainsi à PeerTube une reconnaissance internationale.

Recherche, modération, facilitation : des étapes clés

Le passage de la v2.2 (version de juin 2020) à la v3 de PeerTube s’est fait par étapes, avec de nombreuses améliorations mineures et, à chaque fois, au moins un développement majeur.

La recherche globale de la version 2.3, sortie durant l’été, permet de trouver des vidéos dans l’ensemble de la fédération (et pas juste dans la bulle de l’instance PeerTube que l’on visite).

La version 2.4 de septembre a permis d’améliorer les outils de modération, l’affichage des playlists sur les sites externes et le système de plugin.

dessin représentant Sepia, la mascotte de peertube, propulsée dans l'espace par des mini-réacteurs dans le dos, la créature souriante tient dans un tentacule une boîte à outils.
Illustration : David Revoy (CC-By)

Fin septembre, nous avons dévoilé SepiaSearch, le moteur de recherche des vidéos et chaînes PeerTube basé sur la fonctionnalité de recherche globale. Ce n’était pas prévu de faire un moteur de recherche à part, avec son interface web et sa liste d’instances PeerTube indexées. La contrainte était de la faire libre et abordable, pour que d’autres puissent héberger leur moteur de recherche PeerTube, avec leurs règles. Vos nombreux retours nous ont fait comprendre que c’était attendu et nécessaire, alors nous avons rajouté cette étape à notre feuille de route.

copie d'écran pour promouvoir le moteur de recherche pour peertube intitulé Sepia Search. Le champ de saisie des requêtes est surmonté par la mascotte armée d'une loupe.
cliquez sur l’image pour aller sur SepiaSearch, notre moteur de recherche de vidéos et chaînes PeerTube.

C’est à partir d’octobre que le développement s’est focalisé sur la diffusion de vidéos en direct et en pair-à-pair. C’était un gros morceau, comme on dit, et le fait de vivre une année 2020 difficile (pour tout le monde) n’a pas aidé, mais on a réussi à relever le pari avec quasiment pas de retard ! (ou très peu ? :p)

Un direct en pair-à-pair minimaliste et efficace

La grande fonctionnalité de cette v3 sera la diffusion en direct, et nous sommes fier·es de pouvoir dire que ça marche très bien ! 🎉🎉🎉

Voici un lien vers la release officielle. Nous espérons que les personnes qui administrent des instances PeerTube appliqueront rapidement la mise à jour !

Le fonctionnement a été détaillé dans l’annonce de la publication de la version 3 RC (pour « release candidate ») qui a été testée ces dernières semaines.

Merci aux équipes du Canard réfractaire pour leurs tests et retours.

Les principaux points à retenir :

  • Le décalage (entre vidéaste et audience) varie entre 30 secondes et 1mn, comme prévu ;
  • Suivant la puissance du serveur et sa charge (nombre de directs simultanés, transcoding, etc.), PeerTube peut assurer des centaines de vues en simultané (mais on n’assure pas si c’est des milliers… ou du moins pas encore !) ;
  • Des options d’administration sont incluses pour les personnes qui hébergent l’instance ;
  • Le fonctionnement est volontairement, minimaliste, et nous avons documenté nos recommandations pour créer un live ;
  • Le direct se fait avec un outil de flux vidéo (nous recommandons le logiciel libre OBS), avec deux options :
    • Un direct « éphémère », avec un identifiant unique, qui offrira la possibilité de sauvegarder la vidéo pour créer un replay sur le même lien ;
    • Un direct « permanent », dont le fonctionnement ressemblera plus à celui d’une chaîne Twitch, mais sans le replay.

sur ciel bleu et au-dessus d'une mer de nuages roses s'élève le dirigeable de peertube. Les vballons adoptent la forme d'un grand V3 par référence à la troisième version du logiciel. dans la nacelle, Sepia la mascotte agite doucement un tentacule comme pour nous faire bonjour
Illustration : David Revoy – Licence : CC-By 4.0

Il n’y a pas que le live dans la vie

Cette v3 est livrée avec de nombreux changements et améliorations, grâce au travail de design UX que nous avons fait avec Marie Cécile Godwin Paccard. Les menus, les notifications, et les outils d’administration et de modération ont été refondus.

Avant, des menus un peu confus

Après, des menus plus compréhensibles et moins fournis

Ce travail sur les menus n’est qu’un des exemples les plus visibles des nombreuses améliorations apportées à PeerTube pour rendre son utilisation plus agréable. Nous sommes ravi·es de ces premiers résultats et comptons poursuivre dans cette voie.

Les coulisses de PeerTube

À l’occasion de la collecte pour financer cette v3, un certain TomToom nous a proposé une contribution originale. Réalisateur de vidéos pour Kintésens prod., il a voulu nous offrir un reportage sur les coulisses de PeerTube. Le défi ? Montrer la réalité de notre toute petite équipe, aux méthodes artisanales (nous revendiquons le terme avec fierté), tout en respectant la volonté de Chocobozzz (l’unique développeur salarié sur le projet) de ne pas se montrer à l’écran et de consacrer son temps à développer cette v3.

Le résultat ? le voici :

Les Coulisses de PeerTube, sur Framatube
Et vous pouvez nous aider à traduire les sous-titres de cette vidéo vers d’autres langues en allant sur notre plateforme de traduction.

L’avenir de PeerTube

La prochaine étape ? Se reposer ! Pendant ce temps, n’hésitez pas à nous faire un maximum de retours sur ces nouvelles fonctionnalités, spécifiquement sur le live. C’est en lisant vos contributions sur notre forum que l’on peut comprendre ce qui est attendu, ce que l’on doit prioriser, ce qu’il faut corriger ou améliorer.

Nous ne prévoyons pas de crowdfunding en 2021, pour financer la future v4 de PeerTube. Ces collectes nous mettent dans une situation de paradoxe : on veut faire parler du logiciel pour récolter des financements, alors des personnes s’y intéressent, alors elles veulent contribuer, mais on a peu de temps pour les accueillir, car notre toute petite équipe doit travailler à développer les fonctionnalités promises dans la collecte…

Nous n’avons donc pas dressé une feuille de route stricte pour 2021, afin de garder de la disponibilité pour réagir aux besoins que nous percevrons. Nous savons juste que le thème principal de la v4 de PeerTube sera la personnalisation.

Les plateformes centralisatrices donnent peu de pouvoir sur l’affichage des vidéos (les plus récentes, les plus vues, juste cette catégorie, etc.), sur le look de leur plateforme, ou même sur la personnalisation pour les vidéastes. Redonner ces capacités aux personnes concernées nous semble une piste intéressante et amusante.

Si vous souhaitez nous accompagner dans cette démarche, n’hésitez pas à promouvoir PeerTube autour de vous (avec le site JoinPeertube) ou à soutenir financièrement notre association.

Visiter JoinPeertube.org Soutenir Framasoft

sur ciel bleu et au-dessus d'une mer de nuages roses s'élève le dirigeable de peertube. Les vballons adoptent la forme d'un grand V3 par référence à la troisième version du logiciel. dans la nacelle, Sepia la mascotte agite doucement un tentacule comme pour nous faire bonjour
Illustration : David Revoy – Licence : CC-By 4.0

 




Sepia Search : our search engine to promote PeerTube

Today we are opening a new door on PeerTube, making it easier to discover videos that are published in a federation that is growing every day.

PeerTube is the alternative we are developing so that everyone can emancipate their videos from YouTube and the likes. Except that unlike YouTube, PeerTube is not a single platform.

PeerTube is a software that specialists can install on a server to create multiple video platforms (called « instances »), which can be linked together within a federation.

Opening the door on a diverse federation

The problem with federation is that it is much more varied and complex than a one-website platform. It’s all well and good to decentralize to prevent the creation of new web giants, but where’s the front door?

Do we really need to explain the notion of instance? Insist on the need to find one’s own and therefore to learn about the federation policies of each instance? … to someone who simply asks :

But… I just wanted to watch videos!



The solution would be to create a search engine for all the videos published through PeerTube.

If you open a single gateway to the federation, then the structure that holds the keys to that gate gets great powers. They get the power to decide what will be accepted (or rejected) in the search directory. They get the power to record who searched for what, when, from where. And they get the power to intervene in the order and display of the results.

It is on such power mechanisms that Google has built its monopoly. Obviously, at Framasoft, we do not seek to be in a position of power… and even less to follow Google’s (bad) example! Nevertheless, we want to show the emancipating potential of this software which allows to reclaim the means to stream videos.

We therefore take the responsibility of opening Sepia Search, our gateway to videos and videomakers on PeerTube. It’s a door we open while limiting as much as possible the power we’d get, to keep respecting your attention as well as your browsing.

Presenting PeerTube without monopolizing attention

In the federation universe, the « fediverse », there are many PeerTube instances where people can sign up and create as many channels as they want, channels where they can upload their videos.

Our goal with Sepia Search is not to present all of this content. We simply want to show you the space of autonomy that PeerTube opens up, respecting the values of transparency, openness and freedom that we have been defending for more than 16 years.

Here is Sepia, PeerTube’s mascot – Illustration CC-By David Revoy

A publicly auditable indexing tool (transparency)

Behind Sepia Search, there are two softwares.

The first one is the engine: it is the software where you enter a search, it compares this search with the list of contents in its directory, and then gives the matching results.

The second one is the bodywork, the chassis: it is the software that will present the search bar, receive the request you typed, and show you the results, specifying in orange where you will go when you click on « Go and watch this video ».

The source code, the « recipe » of each of these softwares, is transparent. We publish it on our software forge. Anyone who is able to read this code can do so, and determine if there are tools to cheat with the results display, or others to spy on your behavior.

We already know that these codes are ethical and do not spy on you. We have a good reason: as stated in our TOS, we are really, really not interested in your data!

An a posteriori moderated search engine (openness)

Not all PeerTube instances will be referenced on Sepia Search. This search engine will be based on the list of instances we maintain at instances.joinpeertube.org.

We recently announced a change in the indexing policy for this list, to align with the policy for all of the services we offer:

Thus, if we are notified of an instance where contents explicitly condone terrorism or promote historical revisionism, we will remove it from the index (non-compliance with French laws, which we insist on in our TOS). Such removal will eliminate all videos hosted by that instance from the search results.

On the other hand, if one or more people come to abuse the time of our moderators with inappropriate and abusive reports, their word will be discredited and ignored (as indicated in our moderation policy (FR)).

This moderation, which we hope will be as light as possible, will allow us to limit the results offered by Sepia Search to videomakers who upload original content and to channels (or even instances) that contribute to emancipate.

Illustration CC-By David Revoy

A reproducible tool, adaptable to your conditions (freedom)

It may sound paradoxical to talk about openness in order to detail the conditions under which we close Sepia Search to certain content (especially illegal content).

However, at Framasoft, we believe in the paradox of tolerance, and therefore that openness can only be maintained if the limits of this openness are honestly defined and defended.

We are aware that this is a point of view we get from our French culture (or even from Western European culture). It may, for example, shock people from a North American culture (where unconditional Free Speech is a cultural norm) or from « official » Chinese culture (where, currently, the government sets strict limits on freedom of expression).

We don’t want to impose our culture, nor do we want to deny it. This is why we made sure, legally and technically, that everyone is free to set and host their own instance list, indexing engine and search site, by copying and adapting what we have created.

Sepia Search is just our gateway to PeerTube. This site aims to introduce you to the emancipatory PeerTube we work for, with our culture, activism and subjectivity.

Expecting an actor to do everything, all by theirself, is in fact a reflex of submission to the internet of platforms. It is up to you to take the power (and responsibilities) by hosting your search engine, set up according to your culture, your indexing policy and your values!

Illustration CC-By David Revoy

What Sepia Search can do for you

If we’ve done a good work , Sepia Search will allow you to discover videos and therefore channels (or even PeerTube instances) that will interest you!

The Sepia Search site has been designed to inform you while respecting your attention:

  • The results will be the same for everyone, based only on your search (and the language of your browser’s language), and absolutely not pre-sorted according to a profile (because there is no profiling, here!);
  • The results are presented in a clear and detailed way, to avoid the attention war leading to clickbait thumbnails and all caps over-the-top titles;
  • Search filters give you the power to sort the results out and display those you really want;
  • If you want to see a video from the results, Sepia Search will redirect you directly to the instance where it is hosted (since we have no interest in locking you into the search engine’s website). This is a way to help anyone experience and understand the notion of federation.

The 2 first results when you type « Talk » in.

The search engine that runs Sepia Search is a free « libre » software, which means that it is open to modifications and adaptations. More advanced uses (through what is called an API) will very quickly allow even more emancipation.

For example, Internet users using Firefox will be able to add Sepia Search to the list of search engines in their browser directly from the site. Likewise, our engine (or another installation of the same engine) will be a tool for extensions that notify you when a YouTube video is also available on PeerTube, and will probably contribute to their efficiency.

A Community Funded Tool

Sepia Search is an additional and necessary step in the roadmap to PeerTube v3, for which a crowdfunding is still underway.

Being able to search for videos in the federation was in high demand, which is why we made it the first step in our roadmap. Prior to PeerTube v2.3, when using the search bar for an instance, results were limited to the videos in the federation bubble of that instance.

Thanks to your donations which have funded our work, we released version 2.3 of PeerTube at the end of July. Since then, the same search can now display results from all PeerTube instances listed in a « Search PeerTube » search engine, including the one we provide.

However, the usage surveys conducted by Marie-Cécile (the designer who has been working with us on this roadmap to improve PeerTube) and the feedback we have received from you has made us realize that this was not enough: we also needed a specific web site to promote this search engine.

Click to try SepiaSearch

Your donations fund our freedom of action: we understood the need, so we announced in mid-August that we were going to rearrange our workload and free some time up to fulfill the need, which we felt was a priority. This is how Sepia Search was born.

Last stop before the live!

There is now one big straight line on our roadmap to PeerTube v3: implementing live, peer-to-peer video streaming! As we announced, this will be a first implementation of this feature, and it will be very spartan (no chat module, no filters, no emoticons).

Illustration CC-By David Revoy

At the time of writing, nearly 1,000 people have funded €42,000 of the €60,000 needed to fully develop this v3. While the world is facing a pandemic, we did not find it decent to condition these developments to your donations. Whether we collect the €60,000 or not, we will produce this v3, even if we have to do it on our own funds (which we did for the v2).

We still hope that some of you will share our values and our approach, and that by talking about this project as widely as possible, we will manage to raise this sum (and not to overstretch our budget for next year!).

To support PeerTube, please consider sharing the roadmap page where anyone can make a donation!

 

Learn more

Learn even more (experts)