IMPORTANT NOTES
- If your instance has signup enabled, user registration approval is automatically enabled by the default configuration of this release. You can change this setting in your
production.yaml
or in the configuration page in the web admin - Update web browsers support list:
- Drop support of Safari 11 on iOS
- Drop support of Safari 11 on desktop
- Drop support of Firefox 68 on desktop
- Minimum recommended Redis version is 6.2. Version 6.0 should still work: see this comment for more information
- Deprecate NodeJS 14: support will be removed in the next release (PeerTube 5.2)
Maintenance
- PeerTube OpenTelemetry
- Add BitTorrent tracker metrics
- Add ability to disable HTTP request duration metrics (can have a high tag cardinality)
- Add
x-powered-by
HTTP header in PeerTube response. Can be disabled in PeerTube configuration
Docker
- Add env variables to configure object storage
Documentation
- PeerTube documentation website now uses VitePress: https://docs.joinpeertube.org
- Add Server code documentation explaining the database model typing and how to add a new feature in PeerTube server: https://docs.joinpeertube.org/support/doc/development/server
Plugins/Themes/Embed API
- Add ability to set
playbackRate
in URL (watch page and embed) #5486 - Auth plugins:
- Can set default
adminFlags
,videoQuota
andvideoQuotaDaily
user attributes - Introduce
userUpdater
hook function so external auth plugins can update the user on user login: https://docs.joinpeertube.org/contribute/plugins#add-external-auth-methods - Automatically redirect to the default external auth on PeerTube refresh token expiration
- Can set default
- Server plugin hooks (https://docs.joinpeertube.org/api/plugins):
- Add
filter:api.user.me.subscription-videos.list.params
&filter:api.user.me.subscription-videos.list.result
#5648 - Add
filter:activity-pub.activity.context.build.result
to update ActivityPub JSON-LD context - Add
filter:activity-pub.video.json-ld.build.result
to updateVideo
ActivityPub JSON-LD object - Add
action:activity-pub.remote-video.created
&action:activity-pub.remote-video.updated
to react on remote video creation/update
- Add
- Client plugin hooks (https://docs.joinpeertube.org/api/plugins):
- Add
action:video-edit.form.updated
fired every time the video upload/import/live/update form values change - Add
filter:video-watch.video-plugin-metadata.result
to add custom video metadata in watch page - Existing
action:video-edit.init
hook now contains aupdateForm
attribute in options that you can use to update video upload/import/live/update form values
- Add
- Add server plugin helpers:
getServerListeningConfig
to get PeerTube listening configuration
- Convert some colors to PeerTube CSS variables to improve theme compatibility
Features
- 🎉 Implement user registration approval (https://docs.joinpeertube.org/admin/managing-users#registration-approval) #5544
- If enabled, the user has to fill a Registration reason input
- Moderators have to to accept/reject the registration with a Moderation response that will be sent by email to the user
- If the registration is accepted, the user and its channel are automatically created
- Add "back to live" button in player
- The Live button is red when the player is synced with the live
- It becomes grey when behind the live edge
- Clicking on the grey button re-sync the player with the live edge
- Add Icelandic & Ukrainian locales
- Add Global views default trending algorithm option in admin configuration #5471
- Performance:
- Blocked IPs by the tracker are now stored in NodeJS memory instead of Redis, reducing PeerTube load
- Optimize video comments SQL requests
- Optimize custom markup live rendering in admin
- UI/UX:
- Add option in video/playlist share modal to create a responsive embed #5690
- Use
99+
instead of99
when having more than99
notifications - Use channel display name instead of channel handle in My videos input filter #5575
- Display channel name in playlist element instead of account name
- Display channel as author in RSS feeds
- Improve/fix main pages keyboard navigation
- Custom markup:
- Support
mailto
links - Support short UUID to fetch a video
- Support
- Admins can customize access and refresh tokens lifetime
Bug fixes
- Fix object storage incompatibility with some S3 providers that don't support ACL
- Fix signup limit
- Prevent
500
on invalid short UUID parameter - Player:
- Fix live buffering with small latency setting
- More robust player "stats for nerds" popup if there is not stream available
- Don't display playback rate setting for lives
- Don't handle playback rate hotkeys for lives
- Fix clicking on PeerTube instance button
- Fix always resuming the end of the video
- Fix saving last video current time for anonymous users
- Fix player keyboard shortcuts for non latin keyboards #5684
- Process videos list requests in correct order
- Correctly fill the Support field when updating a video
- Fix Auto play video setting for anonymous users
- UI:
- Fix table columns max width
- Use Unknown instead of Misc when the video category is not set
- Prevent layout shift when listing videos
- Fix instance stats anchor link
- Fix menu content overlay on tablets
- Fix button overflows
- Handle
502
HTTP errors in client notifier - Fix resetting chart zoom in video stats page
- Fix search page not loading all available results
- Fix confirmation modal that contains 2 text inputs
- Display the update button when the stable release of beta/alpha plugin is available
- Always list NSFW videos in playlists (the frontend is in charge to blur the video element if the NSFW setting is Hide or Blur)
- Always list NSFW videos in admin
- Improve client log report:
- Don't send client error on 404
- Prevent sending invalid error/warn logs coming from HLS player #5484
- Fix out of sync audio when cutting a video in Studio
- Fix "unique viewers" inconsistency with countries
- Fix mention detection in comments
- Fix listing all my channels in My library
- Fix displaying remote avatars
- Fix 404 HTTP code in watch page when having
;threadId
param in URL - Correctly re-inject video file token in
.m3u8
resolution playlists to fetch private mp4 video file #5677 - Don't process live when moving videos to external storage
- Handle Redis disconnection gracefully #5599