This is the last minor release before v7, but it's packed with interesting new features! Let's have a look :)
Separate audio and video streams for more flexibility
Separating the audio and video streams not only reduces the size of the files on the server, as it is no longer necessary to duplicate the audio file for each video resolution, but also allows you to stream only the audio of a video via an Audio only option in the player!
This is a very useful feature for streaming music that can display an album cover, or for using less bandwidth when listening to a conference where no video is required.
This new feature also allows PeerTube to ingest an audio only live stream. This means that you can stream live music on PeerTube, which will only display an Audio player.
Finally, we've taken the opportunity to simplify the video download modal, which now displays the essential information for each available resolution, with the option to include or exclude audio in the file being downloaded. The advanced options are still available by selecting Video File next to the Download modal title.
Browse subtitles in the transcription widget
In addition to the classic subtitles integrated into the video player, it is now possible to have a subtitle panel on the right side of the video. This panel allows you to:
Follow subtitles in real time
Return to a section of the video by clicking on a sentence
Search for a sentence or word to return to a specific point in the video
Set up Youtube-dl for smoother imports
Youtube-dl is an essential tool for importing videos and related information from other video platforms (such as PeerTube, Youtube, Vimeo and many others).
This new version of PeerTube adds the ability for administrators to set up multiple proxies dedicated to youtube-dl, which PeerTube will randomly select to bypass certain restrictions. It is also now possible to use another version of youtube-dl, a binary that contains additional dependencies that enable features such as impersonation (i.e. pretending to be a real browser).
And much more
As with every release, a number of user experience and interface improvements have been made:
Better resolution label for custom video aspect: 1920x816 videos are now displayed as 1080p instead of 816p
Better visibility of chapter markers in the player's progress bar: they are now displayed as small dots in the progress bar
Smoother resume of live playback: only the video player is reloaded
Added the ability to easily copy server error logs via a dedicated button
Instance admins can now change the maximum number of frames per second for videos (limited to 60 by default)
You can find all the bug fixes, improvements and other changes in the changelog!
You can help us continue to improve PeerTube by sharing this information, suggesting improvements and, if you can afford it, making a donation to Framasoft, the association that develops PeerTube.
This new version is all about making your life easier. Easier moderation, easier subtitle creation and easier video highlighting. Let's take a look!
Comments moderation
Moderation is always the least exciting part and can also be the most time-consuming. To help you manage this, PeerTube v6.2 not only adds a new page listing all the comments made on your videos, which you can now approve manually, but also the ability to create word lists that will automatically put comments containing them in the moderation queue!
For example, if you want to prevent negative comments from appearing directly on your videos, you can create a word list:
This means that comments containing them will automatically be put on pending review for approval:
You can then approve or reject them on the page where the comments are listed:
This feature is also available for administrators! They can easily display videos uploaded to their instance that contain specific keywords. This can be useful for monitoring content that doesn't comply with your terms of service, or for monitoring a sporadic phenomenon that is particularly viral.
The idea for this feature came from the study conducted by the German ISD. Our goal is to improve this in the future, when we envision users being able to subscribe to and share lists of words to make moderation of accounts and instances easier!
Automatic transcription
In version 5.2 of PeerTube, we introduced the concept of PeerTube runner, a small program that allows PeerTube to perform heavy tasks (such as video encoding) remotely.
France Université Numérique, a public interest group running a MOOC (Massive Open Online Course) platform with a lot of videos, was interested in the flexible architecture of the PeerTube runner for their own use.
In order to improve the accessibility of videos and at the same time contribute to the PeerTube ecosystem, France Université Numérique and the NLnet Foundation, through the NGI Zero Entrust fund, funded the development of automatic video transcription within PeerTube and the PeerTube runners. This transcription makes it possible to automatically create subtitles for videos using an artificial intelligence tool, Whisper, which provides very good results. The artificial intelligence engine and its model can be customised in the configuration.
This new feature can be enabled by PeerTube admins to automatically generate subtitles for newly published videos. The creation of subtitles can also be triggered on demand, allowing administrators to create subtitles for videos published before PeerTube 6.2. This automatic subtitling can also be done by PeerTube runners, as it requires a lot of computing power. France Université Numérique is already planning to use this method to subtitle all its content, which represents 3,500 hours of video.
As well as making your moderation life easier, PeerTube offers a new way of creating a thumbnail preview for your videos (in addition to the ability to select it from your device): directly from an image in your video! Play the video down to the image that perfectly illustrates the content and display it. Thanks to Kent Anderson for this external contribution!
To make sure you don't miss a live broadcasts, they are now highlighted on the Recently Added, Trending, Account videos and Channel videos pages.
And as with every new version, you can find all the bug fixes, improvements and other changes in the changelog!
You want to help us improve PeerTube? You can do so by sharing this information, by suggesting improvements and, if you can afford it, by donating to Framasoft, the non-profit that develops PeerTube.
We're pleased to announce the 6.1 release of PeerTube 🙂
In addition to the integration of account import/export and other great features that we'll detail in this blog post, this version fixes 2 important security vulnerabilities concerning the ActivityPub federation (detailed at the end of the article).
We therefore recommend that you update your instances as soon as possible!
Account import/export
It is now possible to export all your account data (videos, channels, preferences, etc.) to a downloadable archive. This archive can be used as a backup tool or re-imported to another PeerTube instance. To be clear, this is not (yet) an account migration! Data (such as channels or videos) is duplicated and not moved from your old PeerTube account to your new instance.
You can find the list of data that will or won't be exported in our documentation!
This feature simplifies the process of creating an account on the "right" PeerTube instance, as it's now much easier to switch!
Original video file preserved
Until now, when you uploaded a video to PeerTube, it was transcoded into multiple formats and the original file was deleted. From v6.1, this version is preserved and can be downloaded from your library, as well as being present in the export archive!
In practical terms, this means that you can have an archive of your videos on a PeerTube instance (rather than taking up space on both your personal hard drive and a lower quality on the PeerTube instance).
Banner and avatar for instances
To help you better customize your instance, you can now add a banner that will be visible in the instance search on JoinPeerTube and on your PeerTube instance on the About page, login page, registration page, and also on the homepage using the special <peertube-instance-banner> tag!
As for the avatar, it will be visible on the future mobile application and can also be used on the homepage of your instance!
Shorter duration to count a view
To get closer to the behaviour of other centralised video platforms (Vimeo, Instagram, TikTok, Mux...), we've decided to count a View after 10 seconds (instead of 30 seconds).
But that's not the only thing that's changing: a view is no longer based on the user's IP address, but on a unique identifier generated by the web browser. This ensures, for example, that a video watched by 20 people in a university does not count as just one (because the computers tend to have the same IP address).
By the way, uploaders can access to detailed statistics on views and viewers. And PeerTube v6.1 now shows the number of viewers by region in addition to country.
More accessible subtitles
Access to subtitles has been made easier by adding an icon directly in the video player. Clicking on the CC button (7 in the screenshot) will display the subtitles in the last used language (or the first available in the list). You can also select a different language from the player settings menu (8 in the screenshot).
...and there's always more!
As always, there are many other improvements, bug fixes and changes. The full list can be found in the changelog, but here's a small selection:
This release fixes 2 major security issues in the ActivityPub federation. The first fix prevents data associated with private videos (likes, comments, etc.) from being leaked. The other fixes incorrect access control of objects coming from the federation. More details about this second vulnerability will be provided at a later date.
Turkish joins the family of 37 languages available on PeerTube! Thank you (merci, gracias, teşekkürler) to everyone who contributed to the thousands of translated strings!
On the UX (User eXperience) side, you can now download a video directly from your library, and admins have the ability to sort users and videos by file size stored on the server disk.
Do you want to help us improve PeerTube? You can by sharing this information, by suggesting improvements and, if you can afford it, by donating to Framasoft, the association that develops PeerTube.
PeerTube is now 6 years old 🥳!
The project has come a long way to become the mature software it is now.
Does that mean it is finished? Not at all!
Find out what we plan to do with PeerTube this year in our news from last December!
Spoiler alert: get your smartphones ready!
Speaking of smartphones apps, Ivan Agosto resumed the development of P2Play!
P2Play is an open-source Android application for PeerTube.
You can download it from Play Store and F-Droid!
By the way, did you know that we at Framasoft are also working on a mobile app? We'll let you know as soon as we're ready!
Fedi.Video, a fediverse account that helps you discover PeerTube content, has made a playlist full of retrogaming content found in different instances of PeerTube!
If you like pipes and shells, this is probably for you!
Obsidian Urbex is a channel dedicated to urban exploration videos.
If, like me, you're fascinated by abandoned places that used to be luxurious, you'll love this collection of short videos!
"How do I find PeerTube content?"
If you read about PeerTube on the Fediverse a lot, you'll see this question is getting asked a lot!
We, at Framasoft, are working on improving this aspect of PeerTube but for now, did you know about Sepia Search, the search engine we built to find out PeerTube content?
Can you believe there has been only 2 hours between the reporting of an XSS injection in embed, by Syst3m0ver from aramido GmbH, and the release (v6.0.4) with the fix? If you're the administrator of a PeerTube instance, please update as soon as possible to v6.0.4!
Reminder: If you find a vulnerability, please contact us!
If you enjoyed this first newsletter, please give it a thumbs up and click the bell… wait, no 🤔
But if you have any PeerTube related content (channel, videos, app…) that you want to highlight, feel free to share it with our mastodon's account and we may relay it in our next newsletter!
Peertube also evolves thanks to your ideas, so don't hesitate to share them on our ideas board.
We have many admins or uploaders wondering how many concurrent viewers a PeerTube instance can handle and how much its P2P feature can help the server to broadcast a live/video.
It's the reason why, with the support of NLnet and Octopuce, we have been running a real world stress tests on a regular PeerTube instance. Of course with the aim of optimizing the software, but first and foremost to be able to confidently give the number of concurrent viewers a PeerTube instance should be able to handle and understand how the P2P behaves in such conditions.
We chose to simulate 1,000 viewers as it is a symbolic number, but also because it covers 99% of the streams broadcasted on Twitch in 2022. PeerTube would then be able to technically handle 99% of these use cases, which is a large number of users ;)
If you would rather skip the technical stuff, you can jump directly to the conclusion.
Setup the benchmark
To get closer to real life testing, we decided to run 1,000 Chrome web browsers watching the same video, each one having a dedicated public IP to properly simulate actual real viewers.
In order to run 1,000 real Chrome web browsers, we decided to create a Selenium grid and to spawn 1,000 Selenium nodes using Docker. This way, each node can have its own IPv6 public address. Luc, the amazing sysadmin at Framasoft, developed scripts to automatically generate this Selenium grid using Hetzner cloud. His work can be found on https://framagit.org/framasoft/peertube/selenium-stack.
After the first conclusive tests where we reached 500 web browsers, we encountered difficulties with Hetzner cloud as they refused to increase our VPS quota to a number that would have allowed us to seamlessly run the Selenium grid with 1,000 web browsers. After spending several days trying to find alternatives, Octopuce, a French hosting company that hosts several PeerTube instances, offered us to use a powerful server to help us reach our goal of 1,000 web browsers. Shout out to them!
We have made several performance improvements in PeerTube core to reach 1,000 viewers. Some of them are already available in PeerTube V6 like federation and view events optimizations. Some others will be available in the next release (V6.1): ability to customize views/playback events interval, new viewer federation protocol to send much less messages etc.
Once the Selenium grid is ready and the PeerTube instance is updated to include the above performance improvements, we can spawn 1,000 web browsers to load a video on https://peertube2.cpy.re/ (our nightly updated PeerTube instance) using WebdriverIO. Each automated web browser is programmed to load the video watch page, play the video, and wait there until the test ends.
Benchmark conditions
The test PeerTube instance that has been installed following the official installation guide on Debian 12.2 with nginx, PostgreSQL and Redis on the same machine.
Unfortunately, network conditions don't apply on WebRTC so we were unable to limit P2P uploads/downloads. These settings apply only on HTTP requests.
Benchmark results
We ran stress tests on 4 scenarios:
A live video with Normal Latency setting
A live video with High Latency setting
A live with High Latency setting where half of the viewers had P2P disabled
A regular VOD video
Live videos provide only one resolution with a bitrate of 650kbit/s, while the VOD video provides 4 resolutions, with the highest one having a bitrate of 1.2Mbit/s.
Here are the results of our 4 scenarios where 1,000 viewers are connecting on the live/video within a few minutes.
Live with a normal latency
Using the default live settings and so a latency of ~30 seconds, we can see that PeerTube CPU usage peaks as web browsers load the video (11:08:00) and tapers off as viewers watch the video (11:11:00). The main job of PeerTube at that time is to handle playback metrics and view events coming from web browsers for statistics and federation. RAM consumption and NodeJS event loop lag remain stable.
Most viewers download the video using HTTP when they load the page to buffer the live segments, and progressively try to download more distant segments using P2P. It's the reason why we see an HTTP download peak of 150Mbit/s at the beginning of the graph (11:08:00) which gradually drops to 90Mbit/s (11:12:00). At this point, web browsers mainly exchange live segments using P2P at up to 370Mbit/s. Under optimal conditions, the P2P aspect of PeerTube reduces the bandwidth required to broadcast a live video by a factor of 3 or 4, which corroborates feedback received from some PeerTube admins.
Live with a high latency
We wanted to test a live with High latency setting set (~60 seconds) so web browsers have more time to download live segments.
We now have a ratio of 65Mbit/s for HTTP and 370Mbit/s for P2P (15:25:00). A nice improvement, but we think we can improve the HTTP/P2P ratio in the future by changing some P2P engine settings.
Live with a high latency and half of the viewers with P2P disabled
This scenario tries to mimic "real world" viewers by disabling P2P for half of them.
We have a ratio of 260Mbit/s for HTTP and 190Mbit/s for P2P (15:42:00). The swarm of 500 P2P-enabled viewers exchange segments with the same ratio as the live with a high latency, while viewers with P2P disabled just download segments from the server.
VOD video
It's interesting to focus on lives and analyze their P2P ratio since viewers are simultaneously watching and sharing the same segments. But we can also imagine use cases when a VOD video becomes viral:
Bandwidth consumption is much higher than for a live because the video bitrate is higher, but also because the web browser buffers much more the video, especially if P2P segments are available. This is the reason why we have a peak of 2,000Mbit/s for P2P at the beginning, gradually dropping to 1,150Mbit/s (15:10).
If we zoom on the HTTP graph:
We observe that web browsers download nearby segments using HTTP to avoid playback problems, and then try to download distant segments using P2P. That's why we have a peak of 200Mbit/s for HTTP download at the beginning of the graph (15:09:00).
After a few minutes the P2P/HTTP ratio becomes very big with 1150Mbit/s for P2P and 25Mbit/s for HTTP (15:14:00). It means P2P works very well on VOD videos when viewers are watching the same parts of the video. It's an expected behaviour since we have more time to exchange and buffer distant video segments using P2P.
As a bonus, here is the screen of my personal web browser during the stress test where we can see that in an optimal situation and a fiber broadband connection, "regular" viewers can have a very big P2P ratio (800MB uploaded/100MB downloaded).
Technical Overview
Here is an overview of P2P ratio of the live with normal latency and the VOD video with 1,000 viewers:
HTTP peak
HTTP after 5 minutes
P2P after 5 minutes
HTTP/P2P ratio after 5 minutes
Live
150 Mbit/s
90 Mbit/s
350 Mbit/s
25% (P2P saves 75% of bandwidth)
VOD
200 Mbit/s
25 Mbit/s
1150 Mbit/s
2% (P2P saves 98% of bandwidth)
We consider these values hold in optimal conditions, since our simulated web browsers had a fast internet connection for P2P that we could not limit. But in our experience, they seem to represent what happens in real life.
Conclusion and further work
With these results we can see that a regular PeerTube website (server rental at around 20$/month) can correctly handle 1,000 concurrent viewers if the administrator follows our scalability guide.
It means that PeerTube, a Free-Libre software funded by grassroots donations and grants from the NGI programs, that has been developed over 6 years by benevolent contributors and one paid developer, offers an affordable, resilient, efficient and solid alternative to tech giants' technology. It might be hard to realize but it is true: together, we made it this far.
Even if handling 1,000 concurrent viewers is a nice achievement, PeerTube can still go further with extra configuration.
We also have a few ideas on how to handle even more simultaneous viewers in the future:
Optimize the settings of our P2P engine for when "High latency" is set for lives
Add PeerTube configuration to specify external P2P trackers more suited to handle more peers
Distribute the work to handle views events on multiple machines
Lazy load some components in the client (like the comments section) to avoid making HTTP requests if the components are not in the web browser viewport
Thanks for reading and don't hesitate to share your experiences with PeerTube and/or limits you encountered, we'd be happy to work on them. Also, don't forget to support our work if you can, and share the good news!
Developing an ethical and emancipating alternative to YouTube, Twitch or Vimeo without Surveillance Capitalism’s means is a huge undertaking. Especially for a small French not-for-profit that already manages several projects to promote digital commons.
🦆 VS 😈: Let's take back some ground from the tech giants!
We (Bonjour! We are Framasoft!) have been developing PeerTube for six years. Two weeks after releasing the sixth version of the software, let’s take a step back on six years of work, examine the huge opportunity that the present times hold for PeerTube, and look towards what we plan to do next year to prepare for its success... if you give us the means to get there!
Not a rival, just an alternative
The realization that led us to develop PeerTube is that no one can rival YouTube or Twitch. You would need Google’s money, Amazon servers’ farms... Above all, you would need the greed to exploit millions of creators and videomakers, groom them into formatting their content to your needs, and feed them the crumbs of the wealth you gain by farming their audience into data livestock.
Monopolistic centralized video platforms can only be sustained by surveillance capitalism.
We wanted small groups such as institutions, educators, communities, artists, citizens, etc. to be able to afford to emancipate themselves from Big Tech’s platforms, without getting lost in the world wide web. We needed to develop a tool to democratize videohosting, so it had to be designed with radically different values in mind.
And that is what we did. We build PeerTube to empower people, not databases or shareholders.
Today, PeerTube is:
a Free-Libre software (transparency, protection against monopoly)
you can host on your server (self-hosting, autonomy, empowerment)
to create your video and livestream platform, with your own rules (community building, self-management)
that lets you federate (or not!) to other PeerTube platforms through ActivityPub protocol (federation, network, outreach)
that adds (optional) peer-to-peer streaming to classic streaming so it can withstand affluence (resilience, sharing, decentralization)
where more powerful servers can help less fortunate ones with redundancy (solidarity, resilience)
that can store videos externally with S3 storage (adaptability, cost-efficiency)
that can deport CPU-hungry tasks such as video or live transcoding to a dedicated server (efficiency, resilience, sustainability)
So no: PeerTube is not, and will not be a rival to YouTube or Twitch. PeerTube is powered by other values that those coded into Google’s and Amazon’s ecosystems. PeerTube is an alternative, and that’s exactly why this is so exciting.
PeerTube is a software: 6 years of developments
In the last six years, with more than 275 000 lines of code, we got:
From a POC to a fully operative federated video platform with p2p broadcasting, complete with subtitles, redundancy, video import, search tools and localization (PeerTube v1, oct. 2018)
Notifications, playlists, a plugin system, moderation tools, federation tools, a better video player, a presentation website and an instances index (PeerTube v2, nov. 2019)
Federated research tool (and a search engine https://sepiasearch.org), more moderation tools, lots of code improvement, UX revamping, and last but not least: p2p livestream (PeerTube v3, Jan. 2021)
Improved transcoding, channels and instances homepage customization, improved search, an even better video player, filtering videos on pages, advanced administration and moderation tools, new video management tool, and a big code cleaning session (PeerTube v4, Dec. 2021)
A video editing tool, improved video statistics and metrics display, replay feature for permanent livestreams, latency settings for lives, an improved video player (for mobile displays), a more powerful plugin system, more customization options, more video filtering options, a new and user friendly feedback tool and a renewed presentation website (PeerTube v5, Dec. 2022)
Account request moderation, « back to live » button, remote transcoding (to deport CPU hungry task on a dedicated server). storyboard (previews in the progress bar), video chapters, improved accessibility, upload a new version of a video, and password-protected videos. (PeerTube v6, Nov. 2023)
And that is just when you only consider the software development part of PeerTube. In order to support and promote this software, we had to build a whole ecosystem.
PeerTube is also an ecosystem
PeerTube, nowadays, is also a coding community. On the project forge (online space to contribute on developments), we’ve had more than 400 contributors, 4,300 issues (features and support requests) closed over 6 years and 500 still open, and 12,400 contributions integrated upstream.
As not anyone can familiarize themselves with more than 275 000 lines of code, an easy way to contribute to PeerTube is by developing plugins: there are hundreds of them! Among them, there are the live chat (to get a chat during livestreams), plugins to authenticate against external authentication platforms, annotations to add in the video player, a transcription plugin to automatically create subtitles for your videos or plugins to add monetization to PeerTube videos.
There are now more than a thousand PeerTube platforms all over the world (that we know of ^^), hosting almost a million videos. We created an instances index that feeds content to SepiaSearch, our search engine for PeerTube videos, channels and playlists. We moderate it according to our terms and conditions, but anyone is free to use the code we develop to create their own index and search engine.
We promote PeerTube with an official website Joinpeertube.org, where the latest news are shared on the blog and the newsletter. There is also a mastodon account (and an -almost abandoned- account on Twitter). We also spend lots of hours talking to medias, researchers, innovators, communities, contributors, etc.
Fighting dragons with toothpicks
So, how can we estimate the cost of those 6 years of work? Should we just consider development time and the management of the development community (issues, code review, support)?
Should we also count the work done on blogposts, illustrations and promotion material, establishing roadmaps, working with designers, exchanging experience with researchers, videomakers, and amazing projects, some of which we supported with funds? What about the time for moderating our search engine or cleaning after spammers on our feedback tool?
Even though we cannot pinpoint the exact budget Framasoft spent on PeerTube since 2017, our conservative estimate would be around 500 000 €. Over six years. As we got two grants from the European commission (through the NGI0 Search & Discovery and Entrust programs) totaling 132 000 €, it means that 73,6 % of PeerTube budget came from donations.
Now let’s overestimate the cost of PeerTube to 600 000 € over 6 years, to make sure we covered every expense.
Even then, PeerTube total cost would represent 22 millionth (0.0022 %) of YouTube’s ad revenues last year. Yes, we did the math.
We are – figuratively – fighting dragons with toothpicks. That’s why we think that PeerTube cannot and will not rival YouTube nor Twitch (and even less TikTok that presents a whole other experience).
But, as an alternative, PeerTube is already successful.
A success in our eyes
Today, we know of more than 1000 instances (servers on which PeerTube is installed and running), sharing almost a million videos.
As it is not limited by the captology mechanics of an ad-and-attention-based model, PeerTube offers features not available from tech giants:
compatibility with other social tools via ActivityPub (Imagine you could tweet a comment to a YouTube video: with Mastodon and PeerTube, you can.)
share a video from a start timecode to a stop timecode (YouTube has caught up with us, since)
untempered chronological access to your suscriptions feed (no need to « click the bell » in addition to subscribing)
password-protected videos (unavailable in YouTube, paid in Vimeo)
replace a video by an updated version
We intended to make PeerTube specifically for people that need (and want) to share their videos outside of the surveillance capitalism model. Obviously we all know (and like) some YouTubers and Twitch-streamers, but they are the visible part of the iceberg of online video sharing.
Institutions, Educators, Independent medias, Citizens, and even creators should have the freedom to share videos online without contributing to a company’s monopoly, having to accept forced advertisement, or sacrificing on their audience’s data and privacy. The great news is, some of them have already found such freedom, and it makes us proud:
Skeptikon (French collective, videos about critical thinking and scepticism)
TILvids (Til = Today I Learned, edutainment videos in English, with authorized and official YouTube mirroring)
Bunseed (French initiative, FOSS-based alternative to Patreon, by and for creators, built upon PeerTube)
We want to build on the recognition PeerTube is getting, that’s why we have planned a lot of work for 2024!
PeerTube’s roadmap for v7, in 2024
The features we have planned for the next year of development on PeerTube all have the same goal: facilite adoption by improving ease-of-use in several ways. As for version 6, most of those features has been chosen from the ideas you shared and voted for on our feedback tool.
We plan to:
Add a data export/import system (with or without video files), so users can easily change their instance.
Get a full accessibility audit, to facilitate use for people with specific needs, and complete the work done this year (see version 6 release). If we have time left on integrating the report’s recommandations, we will see if and how we could add speech-to-text transcription
Add a comment moderation tool usable for both instance administrators and video uploaders.
Create a new moderation tool to sort content according to preset keywords lists ( « far-right dogwhistling words in German », « queerphobic idioms in English », etc). This tool will present corresponding content to instance administrators and moderators, that will then determine if it fits their moderation policy.
(Technical) separation of audio and video streams. Such improvement will unlock the possibility, in the future, to develop and get multi-audio track videos (e.g. multiple langages), or multi-videos track with the same audio stream (e.g. multiple angles)
Add a new « audio-only » resolution (in the « 720p », « 1080p », etc. menu) for our HLS player. It will enable users to only get the audio track streamed to them, improving sustainability when they only want to listen to a video and look at other tabs.
Rethink the sensitive content characterization. At the moment, you can only tag videos as « Safe For Work » / « Not Safe For Work ». But « sensitive content » can imply lots of cases: violence, nudity, strong langage, etc. We will work with designers to think about the appropriate way to characterize and treat such cases.
Revamp the video management space. We have added lots of new features along the years (live and replay, studio editor, etc.)... it’s great, but tabs and menus accumulated. We will work with designers to rethink it from the ground up and make it easy-to-use.
Get a complete review and implement a redesign of the experience and interface of PeerTube. Even though we’ve had lots of help along the way, PeerTube has not benefited of guidance in design from the get-go. We want to think this work as a reboot, where everything (even the orange?) is on the table, if it helps with adoption and ease of use.
Doubling the dev team for resilience...
OK, when you go from one to two developers, « doubling » is easier... but it was still a big deal to us.
First, because Framasoft is a not-for-profit funded mainly by donations. So far, we’ve had the honor and privilege to get enough support to fund our expenses, the main being our 10 employees. But donation-based economics models are, by definition, highly unpredictable. That is especially true in an economy where inflation, energy costs, etc. make most of our supporters rethink their budget.
Another reason lies within our core value: we believe in decentralization and networks of small actors (over growing into giants and monopolies). We also believe that prioritizing humans and care implies to stay in a small team configuration, where we truly know each other.
And we think that the way we applied those values into our not-for-profit is key to the efficiency, the creativity and the talents expressed by our members (both volunteers and employees). That’s why we worked on limiting Framasoft’s growth, and had the symbolic limit of « ten employees tops ».
During 2022 and 2023, there were lots of discussions on this topic within Framasoft. On one hand, we can’t keep on developing PeerTube with only one developer (even though someone as talented as Chocobozzz), who could win the lottery, leave, or just change carriers. On the other hand, if we hired a new developer, what would be their profile? How can we make sure they would fit in? Can we secure a long lasting job for them?
In late 2022, Chocobozzz asked us to post an internship offer. It was both to test if, after 5 years coding solo on PeerTube, teamwork came back easily (it did) ; but also to train someone on PeerTube’s code core, see how it can be apprehended by newcomers, and how to improve its documentation.
Wicklow joined us for an internship between February and August 2023, and produced the « password protected video features » released in version 6 of PeerTube. We didn’t plan on hiring him: we had, then, other profiles in mind, and thought we wouldn’t be able to start a hiring process before 2024. We specifically told him so, as not to give him false hope... But as we benefited from a grant extension from NGI0 program, we also realized that he was a perfect fit in the project, for the team and in our not-for-profit.
Long story short: we hired Wicklow in September 2023, just as he graduated, on a one-year contract (that we hope to secure with your help!).
...and to create an iOS/Android mobile app!
This new hire has two goals. First and foremost, we want another developer to become familiar with PeerTube’s core code, and lessen the « bus factor » . Wicklow should also become gradually able to help Chocobozzz in managing the code community.
As the community grows (and we are very thankful), so does the managing workload: answering to issues and support requests on our forum, reviewing code contributions, etc. Even though being present for the community is important, it’s taking up to half of Chocobozzz’s time, and that means even less time to develop new features.
The second and main goal for Wicklow in 2024 would be, with the help of designers, to create and publish an official PeerTube mobile app. Mobile viewing has become the main way to watch videos. Even though there are already mobile apps that can play videos on PeerTube, we feel that an official app could help with PeerTube’s adoption and attractiveness.
For 2024, the app would be limited to finding and watching videos. We want users to be able to use a federated search engine, watch videos and livestreams, log in to their account on their PeerTube instance, access their notifications, subscriptions, playlists, etc. If successful, this first version of the app could be extended to other use-cases and features in the future.
Our plan is to publish this app both on iOS (pending Apple’s review, that can be tricky) and Android... and, as an extended goal (so « if all goes well »), on Android TV as well.
Promoting the PeerTube Ecosystem
PeerTube is more than code, and we want to shed a light on the incredible community that is thriving around this project.
We often see amazing plugins, interesting instances and channels, new initiatives and experimentations... that we would like to share. But we seldom have and take time to do so.
In the meantime, we also witness many people wondering if PeerTube allows livestream (it does!) if there is a chat for lives (yes: it’s a great plugin!), or if there are websites to find content on PeerTube (yes again!)
To kick off this work, we will go live and answer all your questions about PeerTube during a livestream hosted by Laurens from the Fediverse Report blog and newsletter, on our Peer.Tube channel! You can already go on Mastodon and ask your questions with the #PeerTubeAMA hashtag.
This AMA (« Ask Me Anything ») will take place tomorrow, Dec 13th, from 6 to 8pm (CET), on this link.
As we stated sooner in this (long) blogpost, we were fortunate enough to get grants from the European Commission program NGI, through the NLnet foundation (many thanks to them!). The previous grants helped us fund a quarter of our six years of work on PeerTube. We are glad to announce that we got another grant for 2024, that will cover planned development costs.
It means that, as it was for 75 % of the work until now, funding the rest of our plans relies on donations. Communicating about PeerTube and its ecosystem, sharing experience with diverse actors, design costs, community support and management, etc. All those costs will be, as usual, funded by... some of you!
Our current donation campaign will determine Framasoft budget for 2024, and from its success we will know if we can secure a stable job for our second developer, while keep on all the other projects and actions that we take on.
Once again this year we need you, your support, your sharing, to help us regain ground on the toxic GAFAM web and multiply ethical digital spaces.
So we’ve asked David Revoy to help us present this on our « Support Framasoft » page, which we invite you to visit (because it’s beautiful) and above all to share as widely as possible:
If we are to balance our budget for 2024, we have three weeks to raise €138,659: we can’t do it without your help!
It's #givingtuesday, so we're giving you PeerTube v6 today! PeerTube is the software we develop for creators, media, institutions, educators... to manage their own video platform, as an alternative to YouTube and Twitch.
🦆 VS 😈: Let's take back some ground from the tech giants!
The sixth major version is being released today and we are very proud! It is the most ambitious one since we added peer-to-peer livestreaming. There is a good reason for that: we packed this v6 with features inspired by your ideas!
We are so eager to present all the work we achieved that we'll get right into it. But stay tuned: in two weeks, we'll take more time to talk about PeerTube's history, the state of this project and the great plans we have for its future!
This year: two minor updates and a major achievement
In 2023, and before preparing this major update, we released only two minor versions... but one of them brought to the table a major technical feature that will help democratize video hosting even more.
An "asking for an account" feature, where instance moderators can manage and moderate news account requests
A back-to-live button, so when you can lag behind during a livestream, you can go back to the direct
improvements on the authentification plugin, to facilitate signing on with external credentials
June 2023: PeerTube 5.2...
As you'll find out in our 5.2 release blogpost, there were some smaller but important new features such as:
Adapting RSS feeds to podcast standards, so any podcast client could be able to read a PeerTube channel, for example
The option to set the privacy of a livestream replay, that way streamers can choose beforehand if the replay of their live will be Public, Unlisted, Private or Internal
Improved mouse-free navigation: for those who prefer or need to navigate using their keyboard
And upgrades in our documentation (it's quite thorough: check it out!)
When a creator uploads a video (or when they are streaming live), PeerTube needs to transform their video file into an efficient format. This task is called video transcoding, and it consumes lots of CPU power. PeerTube admins used to need (costly) big-CPU servers for a task that wasn't permanent... until remote transcoding.
Remote transcoding allows PeerTube admins to deport some or all of their transcoding tasks to another, more powerful server, one that can be shared with other admins, for example.
It makes the whole PeerTube administration cheaper, more resilient, more power-efficient... and opens a way of sharing resources between communities!
We want, once again to thank the NGI Entrust program and the NLnet foundation for the grant that helped us achieve such a technical improvement!
PeerTube v6: powered by your ideas!
Enough about the past, let's detail the features of this new major version. Note that, for this whole 2023 roadmap, we developed features suggested and upvoted by... you! Or at least by those of you who shared your ideas on our feedback website.
Protect your videos with passwords!
That was a very awaited feature. Password-protected videos can be used in lots of situations: to create exclusive content, mark a step in a pedagogical plan, share videos with people trusted by the ones you trust...
On their PeerTube account, creators can now set a single password when they upload, import or update the settings of their videos.
But with our REST API, admins and developers can take it a step further. They can set and store as many passwords as they want, thus easily give and revoke access to videos.
This feature was the work of Wicklow, during his internship with us.
Video storyboard: preview what's coming!
If you like to peruse your videos online, you might be used to hover the progress bar with your mouse or finger. Usually, a preview of the frame appears as a thumbnail: that's called a storyboard feature, and that's now available in PeerTube!
Please note that as Storyboards are only generated when uploading (or importing) a video, they will only be available for new videos of instances that upgraded to v6...
Or you can ask, very kindly, to your admin(s) that they use the magical npm run create-generate-storyboard-job command (warning: this task might need some CPU power), and generate storyboards for older videos.
Upload a new version of your video
Sometimes, video creators want to update a video, to correct a mistake, offer new informations... or just to propose a better cut of their work!
Now, with PeerTube, they can upload and replace an older version of their video. Though the older video file will be permanently erased (no backsies !), creators will keep the same URL, title and infos, comments, stats, etc.
Obviously, such a feature requires trust between videomakers and admins, who don't want to be responsible for a cute kitten video being "updated" into an awful advertisement for cat-hating groups.
That's why such a feature will only be available if admins choose to enable it on their PeerTube platforms, and will display a "Video re-upload" tag on updated videos.
Get chapters in your videos!
Creators can now add chapters to their videos on PeerTube. In a video settings page, they'll get a new "chapters" tab where they'll only need to specify the timecode and title of each chapter for PeerTube to add it.
If they import their video from another platform (cough YouTube cough), PeerTube should automatically recognize and import chapters set on this distant video.
When chapters are set, markers will appear and segment the progress bar. Chapter titles will be displayed when you hover or touch one of those chapters segments.
Stress tests, performance and config recommandations
Last year, thanks to French indie journalist David Dufresne's Au Poste! livestream show and his hoster Octopuce, we got a livestream stress test with more than 400 simultaneous viewers: see the report here on Octopuce's blog [FR].
Such tests are really helpful to understand where we can improve PeerTube to reduce bottlenecks, improve performance, and give advice on the best configuration for a PeerTube server if an admin plans on getting a lot of traffic.
That's why this year, we have decided to realize more tests, with a thousand simultaneous users simulated both in livestream and classic video streaming conditions. Lots of thanks and datalove to Octopuce for helping us deploy our test infrastructure.
We will soon publish a report with our conclusions and recommended server configurations depending on usecases (late 2023, early 2024). In the meantime, early tests motivated us to add many performances improvements into this v6, such as (brace yourselves for the technical terms):
Process unicast HTTP job in worker threads
Sign ActivityPub requests in worker threads
Optimize recommended videos HTTP request
Optimize videos SQL queries when filtering on lives or tags
Optimize /videos/{id}/views endpoint with many viewers
Add ability to disable PeerTube HTTP logs
...and there's always more!
A new major version always comes with its lot of changes, improvements, bugfixes, etc. You can read the complete log here, but here are the highlights:
We needed to settle a technical debt: v6 removes support for WebTorrent to focus on HLS (with WebRTC P2P). Both are technical bricks used to get peer-to-peer streaming in web browsers, but HLS is more fitted to what we are doing (and plan to do) with PeerTube
The video player is more efficient
It is not being rebuilt anymore every time the video changes
It keeps your watching settings (speed, fullscreen, etc.) when the video changes
It automatically adjust its size to match the video ratio
We have improved SEO, to help videos hosted on a PeerTube platform appear higher in the search results of search engines
We worked a lot on improving PeerTube's accessibility on many levels, to streamline the experience of people with disabilities.
What about PeerTube's future?
With YouTube waging war against adblockers, Twitch increasingly exploiting streamers, and everyone becoming more and more aware of the toxicity of this system... PeerTube is getting traction, recognition and a growing community.
We have so many announcements to make about the future we plan for PeerTube, that we will publish a separate news, in two weeks. We are also planning on hosting an "Ask Us Anything" livestream, to answer the questions you'd have about PeerTube.
In the meantime, we want to remind you that all these developments were achieved by only one full-time payed developer, an intern, and a fabulous community (lots of datalove to Chocobozzz, Wicklow, and the many, many contributors: y'all are amazing!)
Framasoft being a French not-for-profit mainly funded by grassroots donations (75% of our yearly income comes from people like you and us), PeerTube development has been funded by two main sources:
French-speaking FOSS enthusiasts
Grants from the NGI initiative, through NLnet (in 2021 & 2023)
If you are a non-French-speaking PeerTube aficionado, please consider supporting our work by making a donation to Framasoft. It will greatly help us fund our many, many projects, and balance our 2024 budget.
Once again this year we need you, your support, your sharing to help us regain ground on the toxic GAFAM web and multiply the number of ethical digital spaces. So we've asked David Revoy to help us present this on our support Framasoft page, which we invite you to visit (because it's beautiful) and above all to share as widely as possible:
If we are to balance our budget for 2024, we have five weeks to raise €176,425: we can't do it without your help!
This version comes with a small technical challenge that we're proud to have overcome! This new feature won't be as visible as a graphical change, but it will make hosting a PeerTube platform easier, more resilient and cheaper.
Let's see what it's all about :)
This is a resolution: video transcoding
Video transcoding is the process of converting a video file into different formats that can be played on different devices. In simple terms, it takes your video file (for example, mp4) and converts it into different formats that can be read by web browsers, applications, etc. Transcoding is done when a video is uploaded to the PeerTube instance, during live broadcasts or when editing your video with the PeerTube Studio.
In addition to the formats, transcoding allows you to have different video qualities (from pixel mush to the possibility of seeing an ant when zooming in on a panorama). These are the famous '720p', '1080p' and so on.
The problem is that transcoding 4k videos of kittens requires a lot of server computing resources (called "CPU"). Even a small kitten. And big CPUs mean big prices. It's a shame to have to rent a more powerful server just to transcode faster one big video a month.
If only we had a solution... 🤔
This is an evolution: remote transcoding
The solution we propose: remote transcoding! The idea is to let the servers of the PeerTube platform broadcast the videos, by having the ability to run transcoding tasks on other computers (for example, remote servers, that could be dedicated to the task, that could be shared, etc.). You can find out how to do this in the documentation.
We explain here how to set up one of these remote servers by installing a "PeerTube runner" on it. You can even turn your personal computer into a runner using command lines, just long enough to transcode your videos! Yes, it is THAT flexible!
For the more tech-savvy among us, this feature was inspired by Gitlab runners for their architecture and BOINC for their ease of use. This is one of the strengths of free-libre softwares: rather than reinventing the wheel, we take inspiration from the work of those who were there before and build a new brick for those who come after us!
You can see how it's done on this video and also learn more from this video of Jeena (who shares his chronicles as a PeerTube platform administrator on his PeerTube instance, of course) presenting how remote transcoding works.
This is a (French) revolution
With the federation of video catalogues, the peer-to-peer broadcasting in the event of a video's success, the redundancy of videos for PeerTube platforms that want to help each other, the possibility of storing videos on a dedicated server... PeerTube has always aimed to democratize online video hosting and distribution.
Remote transcoding takes a step further by encouraging the pooling of CPU-intensive tasks and (we hope) encouraging communities to work together. From now on, a PeerTube platform can be hosted on very low-power (and therefore low-cost) servers.
In addition, this new feature has been designed to, in the future, enable other CPU-intensive tasks to be performed remotely (such as audio-to-text video transcription).
A technical feature like remote transcoding isn't exactly sexy. These developments are not the easiest to fund, especially through donations. We'd like to thank NLnet for supporting us and giving us access to NGI0's funding programs that funded this feature!
These are improvements
In addition to remote transcoding, 5.2 includes a number of improvements:
RSS feeds for podcasts: a first building block has been developed to allow your PeerTube content to be integrated into podcast players!
Mouse-free navigation: if you like to navigate using only the keyboard, you'll love some improvements!
The Studio feature (introduced in version 4.2), which allows you to edit an uploaded video, has finally been documented (even though it is incredibly simple)!
Define the visibility of a replay: it is now possible to define a different visibility for a replay than for a live. This means you can make a live public, but make the replay private (or vice versa, or whatever)! This feature was developed by Wicklow, a PeerTube development intern: thanks to him!
This is a call for donations
Remote transcoding is brand new: we need your feedback on how to improve it (and you can also just tell us you like it). The best place to do this is our forum).
What's next? PeerTube is on its way to v6, towards the end of the year. In this version you'll be able to password protect videos (thanks to Wicklow!), get a preview thumbnail by hovering over the playback bar, add chapters to your video and even upload a new version of your video. In short, we've got a lot of work to do!
Do you want to help us improve PeerTube? You can do so by contributing to the software, sharing this information and (if you can afford it) making a donation to our not-for-proft, Framasoft.
Version 5.1 of PeerTube has been released! On the menu: moderation of account creation, a button to resume live broadcasting, improved management of external authentication plugins... and other useful developments. Let's take a tour of the new features!
When this feature is enabled and a person registers on an instance, they will have to fill in a field (such as "Why do I want to create an account on this platform?") and then wait for their registration to be validated before they can access their account.
The moderators see the different requests and can accept or reject them.
An email is sent directly to the user when the request is processed. The account is automatically created when the request is approved.
In this way, we hope to allow different instances to reopen their registrations without risking potential waves of spam.
New "Resume Live" button
A "resume live" button has been added to the player! The button is red when the player is synchronized with the current live stream and grey when it is not. A single click to resynchronise the live stream is quite handy!
Improved management of external authentication plugins
Developers will be able to take advantage of an improvement to the API for external authentication plugins: define a quota for users, update users or implement an automatic redirect to the external service when a session expires. These improvements were financed by the Department of Public Education (DIP) of the State of Geneva. Thanks!
And more...
This version has seen various improvements to the accessibility of the interface, as well as performance improvements (optimized rendering of the home page editor and more efficient comment retrieval).
Another development worth mentioning is the arrival of two new languages: Icelandic and Ukrainian. Thanks to the contributors for these translations!
We have also fixed many bugs reported by the community. We are now up to more than 4000 tickets processed since the beginning of the PeerTube project, and that seems huge! This time spent improving, maintaining and supporting the software is funded directly by you, through your donations. Thank you very much!
We hope you find this new version useful and we thank again all PeerTube contributors!
We (Framasoft, a small not-for-profit association!) are proud to present our roadmap for the developments and side projects we have planned for PeerTube in 2023. This roadmap combines both the progress we wanted to make to the software and the proposals you have sent us over the last few months.
It is important to note that we are dedicating only one developer to PeerTube (yes, only one!), PeerTube being one of more than fifty projects led by our association.
End of February: PeerTube 5.1
We plan to release version 5.1 at the end of February. Here are the new features we are planning to release:
Easier management of account registrations (with administrator approval)
Developers will be able to take advantage of an improved API for external authentication plugins (setting a quota, updating the user, etc.)
This May we plan to release PeerTube 5.2, which will feature remote transcoding (feature that received many votes!). This will reduce the power required for a PeerTube server by delegating power consuming tasks to external machines.
Initially this will only be for hosted videos, but will be designed to be able to evolve (for livestreams for example). Quite a technical challenge ahead!
November-December 2023: PeerTube v6
We plan to release the next major version of PeerTube at the end of the year, and the new features are all inspired by your suggestions on our feedback tool Let's Improve PeerTube. You will find:
At the beginning of this year, we welcome Wicklow in the team, for a 6 months internship. This is an opportunity to support the PeerTube developer and to familiarize more people with the code base of the software.
We will also of course continue to fix bugs, clean up the code and improve the architecture of the software and support external and community development, such as the Live-Chat plugin.
Finally, we will work on content curation for our Peer.tube showcase platform (yes, with a dot in the middle!), to allow us to present a gateway to PeerTube, which looks like Framasoft.
PeerTube, like all our projects, is mainly funded by donations to our association. On this roadmap, only the remote transcoding feature of v5.2 is already funded, thanks to a donation from the NLnet foundation.
Do you want to help us achieve this roadmap? You can support us by contributing to PeerTube, by sharing this information and (if you can afford it) by making a donation to Framasoft.
We, Framasoft, have been developing the PeerTube software for 5+ years.
Framasoft is a French non-profit of 38 members (10 employees, 28 volunteers), PeerTube is one of our 50+ projects, and we do all this work with only one developer (who is not event full time on PeerTube). Please note that maybe 2 or 3 among us understand, more or less fluently, German.
On dec. 19th, a journalist from Tagesspiegel Background informed us that a study by German researchers on the use of PeerTube by right-wing extremists was about to be published. He asked us 3 questions about the scope of the problem and what could be done, and we answered him that day.
On dec. 20th, we have been able to get this study (it is available online here) and translate it. This is why it took us time to write and publish a collective statement.
First of all, we would like to thank the researchers of the Institute for Strategic Dialogue for their work. The more we will gain knowledge of how disinformation manipulators and right-wing extremists use PeerTube, the more the PeerTube communities will learn how to effectively protect themselves from such content.
Shared knowledge is shared power.
PeerTube says no to fascists and conspiracy manipulators
Let's be crystal clear: Framasoft's values are fundamentally opposed to right-wing extremism. This is also true for conspiratorial manipulations that lead to hurting and killing people (here is our recently published manifest stating our core values - Warning: may be poorly translated from French).
We agree with the results of the study. In our experience, right-wing extremists represent a very, very small share of the PeerTube federation (called the "vidiverse"), but they know how to be very loud, energy consuming trolls.
We should not ignore the fact that, in 2022, if any society is producing fascist and Nazi groups, it is not because of technology, but because of a deeper problem, which is mainly related to the complacency of some governments with extreme right-wing ideas. Nevertheless, it is also true that some technical devices that work on the basis of audience measurement and advertising are the first to disseminate extremist ideas. The Fediverse does not work like that, but we should work to keep it healthy.
PeerTube is free software, we cannot prevent these people from using it. Germany, France and most modern democracies have already introduced laws that can lead Justice to condemn PeerTube administrators who knowingly and willingly host hateful and Nazi content.
What we can do (and have been doing and are willing to continue) is giving PeerTube communities the tools to moderate, protect themselves from and ostracize right-wing extremists and harmful PeerTube platforms.
We "moderate" (read: ban) fascist content from any tool we manage. Thus, we regularly clean the instance index. For example we removed from the index problematic instances, several of which are German. This does not prevent these instances from existing, but at least we try to keep the index healthy.
We need the communities to step up
The study clearly states it: one of the major solutions to such content relies in empowering the communities.
PeerTube-isolation is a blocklist that is maintained in total independence from us. Installing their plugin on your PeerTube platform can help you make sure you won't federate with dangerous content.
We encourage anyone who wants to help to contribute to the PeerTube-Isolation community work. We automatically pull out the instances they block from the index that feeds SepiaSearch, our PeerTube Search Engine.
Our goal is to keep harmful and hateful content isolated in their own federation bubble, where they can be as loud as they want. Thus they won't contaminate others with their dangerous filth. Thus they'll understand they are not welcomed in the PeerTube vidiverse, and they won't have any interest trying to invest it.
In addition, we are always exploring new ways to help PeerTube communities and administrators moderate hate speech and harmful content. If you can think of a feature we could add to PeerTube to help isolating such filth, please share it on Let's Improve PeerTube.
A call to (help) PeerTube instance administrators
That being said, a tool can only do so much.
Instance administrators need help, because they have several tasks to fulfill: system administration (backup, updates, etc.), content curation (do I want to host edutainment videos? original fictions? videos by Queer creators?), federation policies (which platforms do I want mine to follow? which follows do I accept?), moderation policies (and moderation can be needed in the federation choices, content hosted, comments, etc.)
It is a very complex job, and usually you should not to be alone to complete it. It is a crucial job, though. We need instance administrators to have rules about the platform they federate with, so they can enforce their own policies and - hopefully- stop the dissemination of harmful and dangerous content. But it is a lot of work, so it requires a lot of help.
If you want to help, try to join a PeerTube administration team. Offer them help. Report problematic content. If public organizations can provide training, help, and tools, it can always be useful ! But PeerTube is a Commons: we cannot address such an issue unless we work together as a (diverse and plural) community.
Shared knowledge is shared power
The PeerTube communities sure need more shared knowledge on right-wing extremists, their content, their methods, their arguments & fallacies, and how to protect ourselves from it.
But we also need more people helping and taking charge, together, as communities, because we are very invested in keeping PeerTube ecosystem healthy.