IMPORTANT NOTES
- Remove NodeJS 20 support. Please upgrade to NodeJS 22 (>= 22.12) before upgrading PeerTube
- The public access of
/api/v1/accountsAPI endpoint is deprecated for privacy reasons and will be behind an admin/moderator auth access in PeerTube v9, planned for the end of 2027 - iOS versions < 15.4 are not supported anymore
NGINX
- Fix an important NGINX I/O issue when users download a video: 5fa456e
Please upgrade your NGINX configuration
Sysadmin
- prune-storage script can now be run without stopping PeerTube
- Add video
pivacytag forpeertube_videos_totalOTEL metric
Configuration
This section is not exhaustive
- Add
download.max_total_bytes_per_secondanddownload.max_bytes_per_ip_per_secondconfiguration keys to throttle video downloads.
These new keys help prevent instability when botnets download the entire PeerTube catalog - Add ability to provide cookies to
yt-dlp#7510.
See the documentation for more information: https://docs.joinpeertube.org/maintain/configuration#use-cookies-for-youtube-imports-when-needed - Increase the default refresh token lifetime
oauth2.token_lifetime.refresh_tokento4 weeks(instead of2 weeks) - Allow admins to configure the default state of the Automatically publish a replay when your live ends option #7414
Docker
- The entire PeerTube configuration can be set using environment variables.
Keep in mind that environment variable configuration keys override web admin configuration
Plugins/Themes/Embed API
- Add server plugin hooks (https://docs.joinpeertube.org/api/plugins):
filter:api.user.signup.requires-approval.resultfilter:notifier.notification.enabled.result
- Add a server plugin helper:
storageManager.deleteData(key: string)
Features
- 🎉 Add ability to transfer a video channel to another user of the same instance 🎉
- 🎉 Add live DVR allowing users to seek within and pause the live #7396 🎉
- 🎉 Add ability to remove segments of a video in Studio 🎉
- Support Romanian and Korean languages in web client
- Improve video ownership change UX:
- Better table UI in My Videos -> More -> Ownership changes. It also lists ownership change requests for users' videos
- The video management page now includes a section to transfer ownership of a video and cancel a pending request
- Add notifications when video ownership is requested/accepted/rejected
- Add bulk actions to accept/reject an ownership change request
- Player:
- Restore playback rates and manual video resolution choice between sessions in the same web browser
- Add ability to flip the video horizontally #7478
- Redesign loading spinner
- Support podcast feed for playlists
- Add video download stats for video makers #7437
- Improve global UX:
- Introduce a new table filter component that is simpler to use
- Default runner job route is the page that lists runner jobs
- Clicking on a type/state tag automatically filters data for local/runner job states and types, follow states, registration states, and user roles
- Add video tag information and filter when listing my videos
- Add ability to bulk accept/reject registration requests
- Add ability to filter users by role in users overview
- Improve comments UI on mobile
- Display subscribe button when subscription state is loaded
- Add
g photkeys to go to My playlists page
- Improve videos overview for admins:
- Add ability to filter videos by state
- Add a mute badge if the video owner is muted by the instance
- Add ability to filter out videos from muted accounts
- Improve video blocks overview for admins:
- Add video privacy column
- Add bulk actions to unblock, switch to manual block or delete the selected videos
- Add a mute badge if the video owner is muted by the instance
- Improve abuses overview for admins:
- Add bulk action to update internal note, mark as accepted/rejected, delete report, mute reporter/reportee, block/unblock the video, delete the video/comment
- Add a mute badge if the reporter/reportee is muted by the instance
- Improve comments overview for admins and users:
- Clicking on account name filters comments
- Add a mute badge if the account that commented the video is muted by the instance
- Add ability to filter out comments from muted accounts
- Performance:
- Reduce SQL joins when loading a video from the database
- Faster video SQL query to retrieve my videos
- Faster video comments SQL queries for users that list comments on their videos
- Faster video redundancies SQL queries
- Reduce number of rows returned by video SQL queries
- Reduce number of rows returned by comments SQL queries
- Faster loading of My channels page
- Add
/aboutendpoint caching in the client to reduce unnecessary API calls - Process ActivityPub
ViewandDownloadactivities in parallel - Forward ActivityPub
Viewusing parallel broadcast
- Support ActivityPub
indexablefield for actors - Expose runner and runner job queue OpenTelemetry metrics #7469
- Prevent stale follows by periodically re-sending
FollowActivityPub requests to remote instances - Improve follows reliability algorithm to reject followers that have been consistently down for ~7 days
Bug fixes
- Fix plugin settings to display default values when not configured in the DB #7484
- Fix actor host link in miniature instance dropdown if search index is disabled
- Fix missing stream error handling in web video object storage proxy #7535
- Fix caption filename overflow
- Fix setting a thumbnail from a video that is stored in object storage
- Fix instance redundancies pagination
- Filter out non-text languages for captions
- Increase lazy static files cache time (thumbnails, captions, actor avatars/banners, etc.) to 1 year
- Correctly log uncaught exceptions or unhandled promise rejections in file logger
- Prevent page scrolling when applying filters while browsing instance/account/channel videos
- Fix infinite scroll when listing my followers
- Handle errors when updating a video playlist
- Fix download filename if the video contains non-Latin characters
- Fix font colors in emails by only injecting custom admin colors when the default theme is
light-beigeordark-brown, to prevent accessibility issues - Fix broken audio stream P2P for lives
- Fix broke HLS transcoding on concurrent video privacy change
- Don't unpause the player when clicking on a transcription segment
- Fix table page navigation on registration action