PeerTube news!

What's new?

12/21/2023

PeerTube stress tests: resilience lies in your peers!

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.

Hardware specifications:

  • 4 vCore of i7-8700 CPU @ 3.20GHz
  • Has a hard drive (not a SSD)
  • 4Go of RAM
  • 1Gbit/s network

The important PeerTube instance settings:

  • The chat plugin is not enabled
  • Logs are in warning mode to reduce logging overhead
  • Client logs are enabled
  • Metrics are enabled but HTTP request duration metrics are disabled
  • Viewers federation V2 is enabled (feature behind a feature flag that we plan to enable in PeerTube 6.2)
  • Object Storage (S3) is not enabled

Benchmarked videos/lives are public, so static files are directly served by nginx.

The Chrome web browser has its network speed limited using:

browser.setNetworkConditions({
  offline: false,
  download_throughput: 2000 / 8 * 1024, // 2000kbit/s,
  upload_throughput: 300 / 8 * 1024, // 300kbit/s
  latency: 500
})

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!

12/12/2023

Mobile App, redesign, new dev, promotion... let’s build a bright future for PeerTube!

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!

Thanks to your donations to our not-for-profit, Framasoft is taking action to advance the ethical, user-friendly web. Find a summary of our progress in 2023 on our Support Framasoft page.

➡️ Read the series of articles from this campaign (Nov. - Dec. 2023)

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!

Click to support Framasoft and push back against the Yetube – Illustration CC-By David Revoy
Click to support Framasoft and push back against the Yetube – Illustration CC-By David Revoy

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.

Click to support Sepia – illustration David Revoy – licence: CC-By 4.0
Click to support Sepia – illustration David Revoy – licence: CC-By 4.0

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.

Contributors also helped by translating PeerTube into more than 36 languages (join them here), by providing answers on our forum, by updating our official documentation, or by sharing ideas on our Let’s Improve PeerTube feedback tool.

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.

Fortunately, others are working towards promoting and moderating PeerTube content, by creating directories [FR], recommendations threads, moderation tools, Firefox extensions, and all kinds of amazing content.

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.

(source – 29.243 B USD // 632,853 USD)

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.

Click to support Sepia against the Videoraptor – illustration David Revoy – licence: CC-By 4.0
Click to support Sepia against the Videoraptor – illustration David Revoy – licence: CC-By 4.0

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:

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.

Hep us push back against the Videoraptor- Illustration CC-By David Revoy
Hep us push back against the Videoraptor- Illustration CC-By David Revoy

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.

Sepia, PeerTube’s mascot, strong from your support – illustration David Revoy – licence: CC-By 4.0
Sepia, PeerTube’s mascot, strong from your support – illustration David Revoy – licence: CC-By 4.0

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!)

We plan to work on promoting PeerTube’s ecosystem, through the blog and newsletter on our website JoinPeerTube, our Mastodon account, and by working on a showcase Peer.tube instance.

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.

Click on the image to get to the livestream
Click on the image to get to the livestream

(and if all goes well, we’ll publish the replay on the same channel)

Funded by you... and Europa!

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!

11/28/2023

PeerTube v6 is out, and powered by your ideas !

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!

Thanks to your donations to our not-for-profit, Framasoft is taking action to advance the ethical, user-friendly web. Find a summary of our progress in 2023 on our Support Framasoft page.

➡️ Read the series of articles from this campaign (Nov. - Dec. 2023)

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.

March 2023: PeerTube v5.1

You'll get more details in the news dedicated to the 5.1 release, so to keep it short, this version brought:

  • 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!)
...with a major feature: Remote Transcoding

But the game changer in this 5.2 release was the new remote transcoding feature.

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.

Please stay tuned by subscribing to PeerTube's Newsletter, following PeerTube's Mastodon account or keeping an eye on the Framablog.

Click to support us and help Sepia push back Videoraptor – Illustration CC-By David Revoy
Click to support us and help Sepia push back Videoraptor – Illustration CC-By David Revoy

Thank you for supporting PeerTube and Framasoft

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!

Thanks again for supporting PeerTube,
Framasoft's team.

6/21/2023

Version 5.2 of PeerTube is out!

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 find out more in our documentation.

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.

Thanks in advance for your support!

Framasoft

3/28/2023

PeerTube 5.1 is out!

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!

Moderated account creation requests

First new feature in this minor release: account creation requests can now be validated a priori by administrators.

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!

Framasoft

2/8/2023

What 2023 will bring for PeerTube...

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.)
  • Optimize retrieval of video comments
  • Adding a Resume Live button in the video player
  • Improvements and bug fixes (including bugs found during the end of December load test, in French)

May 2023: PeerTube 5.2

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:

But also...

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.

Thank you in advance for your support!
Framasoft

12/21/2022

A statement about the German ISD study on PeerTube

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.