Skip to content

Releases: Chocobozzz/PeerTube

v8.0.1

16 Dec 08:46
v8.0.1
7cb0c9f

Choose a tag to compare

IMPORTANT NOTES

  • Follow v8.0.0 IMPORTANT NOTES if you upgrade from PeerTube <= v7.3.0

NGINX

  • Fix HTTP3 compatibility issue in nginx template: 412df6c

Bug fixes

  • Prevent transcription error when the video has been deleted
  • Fix select button style for redundancy
  • Fix invalid form after admin configuration update
  • Fix alert styling in watch page
  • Fix left menu collapse when accessing admin configuration
  • Fix config wizard not applying config
  • Correctly do not open again welcome modal
  • Fix decaching node modules paths of plugins
  • Send 401 HTTP code instead of 404 when fetching the HTML page of a password protected video
  • More precise date interval (x min ago, x months ago, etc.)
  • Reorder account management dropdown entries
  • Fix youtube playlist detection for channel synchronization
  • Fix filtering on privacy when listing my videos

v8.0.0

09 Dec 09:01
v8.0.0
90f293c

Choose a tag to compare

IMPORTANT NOTES

  • Database migrations of this version can take a long time (up to 30 minutes on an instance with many users/federation actors and a slow database disk)
  • You need to manually execute a migration script after your upgrade while PeerTube is running and the database migration is complete (Migrations finished. New migration version schema: 970 in PeerTube startup logs):
    • Classic installation: cd /var/www/peertube/peertube-latest && sudo -u peertube NODE_CONFIG_DIR=/var/www/peertube/config NODE_ENV=production node dist/scripts/migrations/peertube-8.0.js
    • Docker installation: cd /var/www/peertube-docker && docker compose exec -u peertube peertube node dist/scripts/migrations/peertube-8.0.js
  • yarn NodeJS packages manager has been removed in favor of pnpm. Follow the dependencies guide to install pnpm on your system before the upgrade
  • Ensure storage.uploads directory is set in your production.yaml
  • Supported NodeJS versions are >= 20.19 and < 21 or >= 22.12 and <23
  • For Docker users, please read the Docker section below

Configuration

  • Remove http_server unused section from .yaml configuration files
  • Introduce views.videos.local.max_age configuration to cleanup old views from local videos
  • Add more STUN Servers to webrtc.stun_servers to improve P2P robustness
  • Add ability to increase video transcription timeout in video_transcription.timeout
  • Add client.new_features_info configuration to disable popups explaining new features to users
  • Add user.password_constraints.min_length config to specify user password minimum length #6945

Docker

  • PeerTube Dockerfile is now based on Debian Trixie. chocobozzz/peertube:production can be used instead of chocobozzz/peertube:production-bookworm (Debian suffix version is deprecated)
  • PostgreSQL version has been upgraded in Docker Compose. Please follow this guide if you want to upgrade PostgreSQL in your Docker Compose
  • Redis version has been upgraded in Docker Compose. No maintenance task is required if you upgrade Redis in your Docker Compose

Plugins/Themes/Embed/REST APIs

  • REST API:
    • Remove deprecated filename field from VideoSource object
    • Remove deprecated commentsEnabled field from Video object
    • Remove deprecated redundancies.filesfield from VideoRedundancy object
    • Deprecate captionPath field from VideoCaption object. Use fileUrl instead
    • Deprecate storyboardPath from Storyboard object. Use fileUrl instead
    • Deprecate path from ActorImage object (avatars, banners). Use fileUrl instead
    • The HTTP response code for password-protected videos can be either 401 or 403, depending on the request headers
  • Theme:
    • Rename --input-placeholder CSS variables into --input-placeholder-color
    • Introduce --input-placeholder-font-size CSS variable

Features

  • 🎉 Add channel collaboration 🎉
    • Channel owners can invite users of their instance to become editors of their channel
    • Editors can accept or reject the invitation
    • Editors can manage videos, playlists & comments of the channel
    • An Activity page has been added to list actions performed within a channel
  • 🎉 Video player redesign 🎉
    • Introduce a new clean and modern theme named Lucide
    • Original theme is still used by default, and has been renamed to Galaxy
    • The player theme can be changed by the admin for the entire instance or by the channel for all its videos. It can also be changed for individual videos.
    • Use vertical audio volume control for Galaxy player theme
  • Improve video imports UX
    • Introduce an Import failed state to clearly identify failed imports
    • Display import state in video manage page and watch page
    • Add ability to retry video imports
    • Channel synchronization automatically retry failed imports
  • Redesign notifications popup and page
  • Replace yarn package manager by pnpm to provide faster PeerTube installation/upgrade and faster plugin installation/upgrade
  • Add admin options to customize default Browse videos behaviour #7193
  • Add ability to handle storyboard generation job by runners #7191
  • Add Resend verification email button to admin users list #7272
  • Improve video manage and admin config forms accessibility
  • Add ability to insert a new playlist at first position in the channel
  • Add ability to copy codecs, if possible, for HLS transcoding
  • Also search by account name when searching for channels
  • Faster start time seek on HLS videos

Bug fixes

  • Fix avatar max size information
  • Fix scroll issue when navigating from homepage
  • Fix viewers stats date filter label after a reset
  • Fix select languages component label
  • Correctly load user video language settings in video filters
  • Accept non-HTTPS URLs for the search index
  • Fix admin abuse URL in emails
  • Show videos to owners even if they are muted on the instance
  • Correctly sort scheduled videos when listing my videos
  • Fix account mention redirection
  • Display all countries/regions labels in viewer stats graph
  • Keep videos order after user import
  • Fix HTML headings hierarchy to improve SEO
  • Users logged-in by an external auth plugin can choose to display their email publicly (required by Apple for the podcast feed)
  • Fix podcast feed video bitrate attribute that can be refused by some podcast applications
  • Fix video quota information estimation
  • Translate RSS feeds title
  • Fix transcription CORS issue if the caption file is stored externally
  • Do no uppercase video tags
  • Fix resetting instance categories/languages
  • Fix black screen when updating web video resolution in player
  • Fix displaying more than 100 live sessions
  • Reload page after login to respect user lang
  • Do not run storyboard/transcription jobs without the appropriate stream

v8.0.0-rc.1

26 Nov 09:40
v8.0.0-rc.1
892dbef

Choose a tag to compare

v8.0.0-rc.1 Pre-release
Pre-release

IMPORTANT NOTES

  • Database migrations of this version can take a long time (up to 30 minutes on an instance with many users/federation actors)
  • You need to manually execute a migration script after your upgrade while PeerTube is running and the database migration is complete (Migrations finished. New migration version schema: 965 in PeerTube startup logs):
    • Classic installation: cd /var/www/peertube/peertube-latest && sudo -u peertube NODE_CONFIG_DIR=/var/www/peertube/config NODE_ENV=production node dist/scripts/migrations/peertube-8.0.js
    • Docker installation: cd /var/www/peertube-docker && docker compose exec -u peertube peertube node dist/scripts/migrations/peertube-8.0.js
  • yarn NodeJS packages manager has been removed in favor of pnpm. Follow the dependencies guide to install pnpm on your system before the upgrade
  • For Docker users, please read the Docker section below
  • Supported NodeJS versions are >= 20.19 and < 21 or >= 22.12 and <23

Configuration

  • Remove http_server unused section from .yaml configuration files
  • Introduce views.videos.local.max_age configuration to cleanup old views from local videos
  • Add more STUN Servers to webrtc.stun_servers to improve P2P robustness
  • Add ability to increase video transcription timeout in video_transcription.timeout
  • Add client.new_features_info configuration to disable popups explaining new features to users
  • Add user.password_constraints.min_length config to specify user password minimum length #6945

Docker

  • PeerTube Dockerfile is now based on Debian Trixie. chocobozzz/peertube:production can be used instead of chocobozzz/peertube:production-bookworm (Debian suffix version is deprecated)
  • PostgreSQL version has been upgraded in Docker Compose. Please follow this guide if you want to upgrade PostgreSQL in your Docker Compose
  • Redis version has been upgraded in Docker Compose. No maintenance task is required if you upgrade Redis in your Docker Compose

Plugins/Themes/Embed/REST APIs

  • REST API:
    • Remove deprecated filename field from VideoSource object
    • Remove deprecated commentsEnabled field from Video object
    • Remove deprecated redundancies.filesfield from VideoRedundancy object
    • Deprecate captionPath field from VideoCaption object
    • Deprecate storyboardPath from Storyboard object
    • The HTTP response code for password-protected videos can be either 401 or 403, depending on the request headers
  • Theme:
    • Rename --input-placeholder CSS variables into --input-placeholder-color
    • Introduce --input-placeholder-font-size CSS variable

Features

  • 🎉 Add channel collaboration 🎉
    • Channel owners can invite users of their instance to become editors of their channel
    • Editors can accept or reject the invitation
    • Editors can manage videos, playlists & comments of the channel
    • An Activity page has been added to list actions performed within a channel
  • 🎉 Video player redesign 🎉
    • Introduce a new clean and modern theme named Lucide
    • Original theme is still used by default, and has been renamed to Galaxy
    • The player theme can be changed by the admin for the entire instance or by the channel for all its videos. It can also be changed for individual videos.
    • Use vertical audio volume control for Galaxy player theme
  • Improve video imports UX
    • Introduce an Import failed state to clearly identify failed imports
    • Display import state in video manage page and watch page
    • Add ability to retry video imports
    • Channel synchronization automatically retry failed imports
  • Redesign notifications popup and page
  • Replace yarn package manager by pnpm to provide faster PeerTube installation/upgrade and faster plugin installation/upgrade
  • Add admin options to customize default Browse videos behaviour #7193
  • Add ability to handle storyboard generation job by runners #7191
  • Add Resend verification email button to admin users list #7272
  • Improve video manage and admin config forms accessibility
  • Add ability to insert a new playlist at first position in the channel
  • Add ability to copy codecs, if possible, for HLS transcoding
  • Also search by account name when searching for channels
  • Faster start time seek on HLS videos

Bug fixes

  • Fix avatar max size information
  • Fix scroll issue when navigating from homepage
  • Fix viewers stats date filter label after a reset
  • Fix select languages component label
  • Correctly load user video language settings in video filters
  • Accept non-HTTPS URLs for the search index
  • Fix admin abuse URL in emails
  • Show videos to owners even if they are muted on the instance
  • Correctly sort scheduled videos when listing my videos
  • Fix account mention redirection
  • Display all countries/regions labels in viewer stats graph
  • Keep videos order after user import
  • Fix HTML headings hierarchy to improve SEO
  • Users logged-in by an external auth plugin can choose to display their email publicly (required by Apple for the podcast feed)
  • Fix podcast feed video bitrate attribute that can be refused by some podcast applications
  • Fix video quota information estimation
  • Translate RSS feeds title
  • Fix transcription CORS issue if the caption file is stored externally

v7.3.0

09 Sep 09:17
v7.3.0
c922886

Choose a tag to compare

IMPORTANT NOTES

  • Minimum supported NodeJS version is 20.19

NGINX

  • Disable request buffering on upload endpoints to fix HTTP request timeouts: d1a35e8

Plugins/Themes/Embed API

  • Breaking change Plugin and themes must use :root CSS selector instead of body to inject CSS variables
  • Add server API (https://docs.joinpeertube.org/api/plugins):
    • Support externalRedirectUri for registerExternalAuth so PeerTube redirects users on another URL set by the plugin
    • If your plugin uses filter:email.template-path.result server hook: emails now use Handlebars template engine instead of Pug template engine

Features

  • 🎉 Emails can now be translated 🎉 Check the translation documentation to help us translate emails in your language!
  • 🎉 Introduce a web configuration wizard to help administrators to configure their instance automatically 🎉
    • The wizard appears once the administrators have logged in following the installation of the PeerTube instance
    • Admins can also run the wizard via a button in the web admin config
    • The main instance information (e.g. name, short description, logo, primary colour) can be entered using the wizard.
    • It also helps the admin to apply a configuration depending on the instance type (community-based, institutional, private)
  • 🎉 Redesign the admin config to use a lateral menu for navigating between subsections 🎉
    • Add a new Customization page to easily change the main colors and shape of the client interface
    • Add a new Logo page where admins can upload logos/favicon and social media images for their instances
    • Add an option to set the default licence, privacy and comments policy when publishing videos
    • The email prefix and body can now be changed in the web admin config. These configurations also support the {{instanceName}} template variable, which is replaced by the instance name
  • Improve admin federation control:
    • Add the ability for admins to completely disable remote subscriptions to local channels
    • Admins can also set up automatic rejection of video comments from remote instances
  • Add 2FA column information in admin users overview table
  • Display remote runner version in admin
  • Add ability for users to set the planned date of a live. These lives are displayed when browsing videos #7144
  • Improve data tables UX/UI
  • Improve account/channel playlists management:
    • Use a data table to manage account and channel playlists
    • Allow to manually set the order of the public playlists displayed in a channel
  • Improve sensitive content warning in embed player
  • Improve audio transcoding quality, especially with FLAC input
  • Support Creole French languages in video language metadata
  • Add ability for users to list and revoke token sessions
  • Support Free of known copyright restrictions and Copyrighted - All Rights Reserved video licence metadata
  • Play/pause the video player using k key

Bug fixes

  • Fix ActivityPub audience for unlisted videos
  • Use an array of URL in attributedTo ActivityPub field
  • Prefer og:image instead of og:image:url
  • Better thumbnail blur for sensitive content #7105
  • Prefer allow="fullscreen" for video embed iframe #7043
  • Respect the sensitive content policy, even for videos owned by the user
  • Fix the issue of the scroll position not being restored when pages load slowly #7143
  • Fix remote actor follow counter after a local subscription
  • Fix reloading videos in Browser videos when the link only changes query parameters
  • Add stall job check for remote studio and transcription runner jobs
  • Prevent metric warning for redundancy gauge
  • Fix disabling Wait transcoding checkbox
  • Correctly import new elements of a playlist in channel synchronization
  • Fix overflow in discover page
  • Fix restoring scroll position when going back in the web browser on the homepage set by the admin
  • Fill video support on channel sync
  • Respect instance default privacy setting when publishing imports and lives
  • Remove useless help for live transcoding
  • Fix RTL margins on some components

v7.3.0-rc.1

21 Aug 08:34
v7.3.0-rc.1
5894c36

Choose a tag to compare

v7.3.0-rc.1 Pre-release
Pre-release

IMPORTANT NOTES

  • Minimum supported NodeJS version is 20.17

NGINX

  • Disable request buffering on upload endpoints to fix HTTP request timeouts: d1a35e8

Plugins/Themes/Embed API

  • Add server API (https://docs.joinpeertube.org/api/plugins):
    • Support externalRedirectUri for registerExternalAuth so PeerTube redirects users on another URL set by the plugin
    • If your plugin uses filter:email.template-path.result server hook: emails now use Handlebars template engine instead of Pug template engine

Features

  • 🎉 Emails can now be translated 🎉 Check the translation documentation to help us translate emails in your language!
  • 🎉 Introduce a web configuration wizard to help administrators to configure their instance automatically 🎉
    • The wizard appears once the administrators have logged in following the installation of the PeerTube instance
    • Admins can also run the wizard via a button in the web admin config
    • The main instance information (e.g. name, short description, logo, primary colour) can be entered using the wizard.
    • It also helps the admin to apply a configuration depending on the instance type (community-based, institutional, private)
  • 🎉 Redesign the admin config to use a lateral menu for navigating between subsections 🎉
    • Add a new Customization page to easily change the main colors and shape of the client interface
    • Add a new Logo page where admins can upload logos/favicon and social media images for their instances
    • Add an option to set the default licence, privacy and comments policy when publishing videos
    • The email prefix and body can now be changed in the web admin config. These configurations also support the {{instanceName}} template variable, which is replaced by the instance name
  • Improve admin federation control:
    • Add the ability for admins to completely disable remote subscriptions to local channels
    • Admins can also set up automatic rejection of video comments from remote instances
  • Add 2FA column information in admin users overview table
  • Display remote runner version in admin
  • Add ability for users to set the planned date of a live. These lives are displayed when browsing videos #7144
  • Improve data tables UX/UI
  • Improve account/channel playlists management:
    • Use a data table to manage account and channel playlists
    • Allow to manually set the order of the public playlists displayed in a channel
  • Improve sensitive content warning in embed player
  • Improve audio transcoding quality, especially with FLAC input
  • Support Creole French languages in video language metadata
  • Add ability for users to list and revoke token sessions
  • Support Free of known copyright restrictions and Copyrighted - All Rights Reserved video licence metadata
  • Play/pause the video player using k key

Bug fixes

  • Fix ActivityPub audience for unlisted videos
  • Use an array of URL in attributedTo ActivityPub field
  • Prefer og:image instead of og:image:url
  • Better thumbnail blur for sensitive content #7105
  • Prefer allow="fullscreen" for video embed iframe #7043
  • Respect the sensitive content policy, even for videos owned by the user
  • Fix the issue of the scroll position not being restored when pages load slowly #7143
  • Fix remote actor follow counter after a local subscription
  • Fix reloading videos in Browser videos when the link only changes query parameters
  • Add stall job check for remote studio and transcription runner jobs
  • Prevent metric warning for redundancy gauge
  • Fix disabling Wait transcoding checkbox
  • Correctly import new elements of a playlist in channel synchronization

v7.2.3

22 Jul 08:58
v7.2.3
3fd4398

Choose a tag to compare

SECURITY

  • Upgrade multer dependency to prevent Denial of Service with a malformed request

Bug fixes

  • Fix channel synchronization that duplicates video imports

v7.2.2

16 Jul 11:20
v7.2.2
3a93b31

Choose a tag to compare

SECURITY

  • Prevent ReDOS from useragent package by removing deprecated Do Not Track feature. Thanks to Patrick Bohn Matthiesen and Leonora from IT University of Copenhagen for reporting this vulnerability!

Bug fixes

  • Correctly display bulk actions button in "My videos"
  • Keep playlist name original casing in "My videos"
  • Fix PIP button z-index on Firefox
  • More robust S3 upload and ACL error handler
  • Fix broken video state on S3 move failure
  • Reset filters when loading query params in "Browse videos"
  • Fix upload tab title when the file is uploaded
  • Fix follow card overflow in about page
  • Convert to full UUID request param id in filter:html.embed.video.allowed.result and filter:html.embed.video-playlist.allowed.result plugin hooks
  • Fix HLS playback issue on Chrome 138
  • Fix selecting frame on Safari
  • Fix input search with multiple prefix tokens
  • Fix channel sync duplicate after video deletion
  • Fix caption raw edition when editing segment
  • Fix accessibility issues:
    • Fix embed title/avatar accessibility
    • Add player P2P up/down info aria label
    • Support escape key in the player settings menu
    • Support arrow left/right navigation in the settings menu
    • Fix entry focus when navigating in the settings menu
    • Add aria controls attribute to settings button
    • Thanks to Woebin from Access Lab and HowlRound Theatre Commons for conducting the player accessibility audit!

v7.2.1

16 Jun 08:14
v7.2.1
5bceb37

Choose a tag to compare

Bug fixes

  • Fix federation of sensitive videos with previous PeerTube versions
  • Do not uppercase video tags to prevent accessibility issues
  • Fix support field not automatically filled from channel data when publishing a video
  • Fix "Add new playlist" broken style
  • Fix browse videos page title on web browser "History Back"
  • Fix parent menu highlighting in About Platform pages
  • Don't display description/terms titles if these blocks are empty
  • Correctly load count and rows per page when listing My videos

v7.2.0

04 Jun 13:09
v7.2.0
c43ff33

Choose a tag to compare

IMPORTANT NOTES

  • Important You need to manually execute a migration script after your upgrade while PeerTube is running and the database migration is complete (Migrations finished. New migration version schema: xxx in PeerTube startup logs):
    • Classic installation: cd /var/www/peertube/peertube-latest && sudo -u peertube NODE_CONFIG_DIR=/var/www/peertube/config NODE_ENV=production node dist/scripts/migrations/peertube-7.2.js
    • Docker installation: cd /var/www/peertube-docker && docker compose exec -u peertube peertube node dist/scripts/migrations/peertube-7.2.js

SECURITY

  • If you installed PeerTube using the official documentation, we highly recommend setting the default user shell to nologin. For example on GNU/Linux: chsh -s /usr/sbin/nologin peertube
  • If you installed PeerTube runners using the official Systemd service documentation, we highly recommend setting the default user shell to nologin. For example on GNU/Linux: chsh -s /usr/sbin/nologin prunner

Configuration

  • Prefer to not store lives in object storage by default: object_storage.streaming_playlists.store_live_streams is now false in the config template
  • Use hot trending algorithm by default: trending.videos.default is now hot in the config template
  • Add global rate limit to video download that can be changed by download_generate_video.max_parallel_downloads

Docker

  • Add missing docker env options to configure live settings #6948
  • Expose NGINX logs folder in docker-compose.yml #6963
  • Add exec to NGINX process to ensure is PID 1 and then ensure a graceful shutdown#7041

NGINX

  • Fix max body size inconsistency with PeerTube backend: a2812e4

Plugins/Themes/Embed API

  • Breaking change Theme CSS must include --is-dark: 0 or --is-dark: 1 CSS variable for the body so PeerTube understands if it's a dark or a light theme
  • Add server plugin hooks (https://docs.joinpeertube.org/api/plugins):
    • filter:email.subject.result & filter:email.template-path.result #6876

Features

  • 🎉 Redesign Manage my videos page 🎉
    • Redesign the page to list more videos for a clearer overview
    • Add sort, pagination and column display settings
    • Add channel buttons to quickly filter videos
    • Improve video search & filters
    • Add ability to display video comments count #6635
  • 🎉 Redesign video management/publication pages 🎉
    • Migrate the video update page to a Manage video tool, that includes Studio and Stats features
    • Video publication privacy choice is moved in the second step
    • Use a lateral menu to navigate between Manage video pages
    • Add information related to the video state (transcoding, etc.) and clearly display unavailable features
    • Add user agent stats to video stats #6871
    • Support drag-and-drop to replace the video file #6970
  • 🎉 Improve NSFW/sensitive content system 🎉
    • Support content warning so video authors can describe why the video is considered sensitive
    • Change the Blur sensitive content policy for viewers where the miniature name is not blurred anymore
    • Add an additional Warn sensitive content policy for viewers where the thumbnail is not blurred
    • Blur and Warn policies add a Sensitive icon below the thumbnail. A warning is also displayed in the player
    • The player embed now displays the sensitive content warning
    • Add ability to set predefined sensitive flags to videos so video authors help to identify specific sensitive content
    • If enabled by administrators, users can override their default sensitive content policy for specific flags.
      For example, they can hide all sensitive content but display with a warning content flagged as Violent by video authors
    • Add sensitive content filter in admin videos overview
  • Allow users to resend the email verification link when changing their current email
  • Inject subtitle links in HLS playlists so it's easier for external video players that use the master.m3u8 playlist to display subtitles
  • Disable log coloration when TTY does not support it #6988
  • Support more embed parameters in custom markup (<peertube-video-embed> and <peertube-playlist-embed>) #6989

Bug fixes

  • More robust theme CSS variables injection
  • Fix podcast feed URL in subscribe button
  • Fix podcast feed download extension when the file is a video
  • Fix broken downloaded audio file
  • Fix crash on download stream error
  • Fix local posts counter in NodeInfo
  • Run transcription after file replacement
  • Better video chapters parsing from the description
  • Correctly handle generateTranscription body param on upload/import
  • Fix federation compatibility with GoToSocial
  • Fix PeerTube account client redirection
  • Prevent plugins to log exceptions
  • Fix broken replay on live privacy change
  • Fix iOS/Android deep link with URL that contains query params in watch page
  • Fix ownership changes count
  • Always specify object storage content type
  • Fix broken live title in Chinese
  • Fix theme crash in embed
  • Fix broken video state on move on object storage failure
  • Fix CORS issue with object storage providers
  • Correctly display images in support modal

v7.2.0-rc.1

15 May 06:45
v7.2.0-rc.1
c7dc293

Choose a tag to compare

v7.2.0-rc.1 Pre-release
Pre-release

Configuration

  • Prefer to not store lives in object storage by default: object_storage.streaming_playlists.store_live_streams is now false in the config template
  • Use hot trending algorithm by default: trending.videos.default is now hot in the config template
  • Add global rate limit to video download that can be changed by download_generate_video.max_parallel_downloads

Docker

  • Add missing docker env options to configure live settings #6948
  • Expose NGINX logs folder in docker-compose.yml #6963

NGINX

  • Fix max body size inconsistency with PeerTube backend: a2812e4

Plugins/Themes/Embed API

Features

  • 🎉 Redesign Manage my videos page 🎉
    • Redesign the page to list more videos for a clearer overview
    • Add sort, pagination and column display settings
    • Add channel buttons to quickly filter videos
    • Improve video search & filters
    • Add ability to display video comments count #6635
  • 🎉 Redesign video management/publication pages 🎉
    • Migrate the video update page to a Manage video tool, that includes Studio and Stats features
    • Video publication privacy choice is moved in the second step
    • Use a lateral menu to navigate between Manage video pages
    • Add information related to the video state (transcoding, etc.) and clearly display unavailable features
    • Add user agent stats to video stats #6871
    • Support drag-and-drop to replace the video file #6970
  • 🎉 Improve NSFW/sensitive content system 🎉
    • Support content warning so video authors can describe why the video is considered sensitive
    • Change the Blur sensitive content policy for viewers where the miniature name is not blurred anymore
    • Add an additional Warn sensitive content policy for viewers where the thumbnail is not blurred
    • Blur and Warn policies add a Sensitive icon below the thumbnail. A warning is also displayed in the player
    • The player embed now displays the sensitive content warning
    • Add ability to set predefined sensitive flags to videos so video authors help to identify specific sensitive content
    • If enabled by administrators, users can override their default sensitive content policy for specific flags.
      For example, they can hide all sensitive content but display with a warning content flagged as Violent by video authors
    • Add sensitive content filter in admin videos overview
  • Allow users to resend the email verification link when changing their current email
  • Inject subtitle links in HLS playlists so it's easier for external video players that use the master.m3u8 playlist to display subtitles
  • Disable log coloration when TTY does not support it #6988
  • Support more embed parameters in custom markup (<peertube-video-embed> and <peertube-playlist-embed>) #6989

Bug fixes

  • More robust theme CSS variables injection
  • Fix podcast feed URL in subscribe button
  • Fix podcast feed download extension when the file is a video
  • Fix broken downloaded audio file
  • Fix crash on download stream error
  • Fix local posts counter in NodeInfo
  • Run transcription after file replacement
  • Better video chapters parsing from the description
  • Correctly handle generateTranscription body param on upload/import
  • Fix federation compatibility with GoToSocial
  • Fix PeerTube account client redirection
  • Prevent plugins to log exceptions
  • Fix broken replay on live privacy change