Releases: Chocobozzz/PeerTube
Releases · Chocobozzz/PeerTube
v8.1.5
v8.1.4
IMPORTANT NOTES
- Follow v8.1.0 IMPORTANT NOTES if you upgrade from PeerTube <= v8.0.2
Bug fixes
- Don't fetch too big image sizes for thumbnails
- Prevent the player from crashing when the user quits the watch page
- Prevent invalid start/end timecode when cutting the video in studio
- Fix blocklist error when listing many users
- Fix broken transcoding when remote runners is enabled
v8.1.3
IMPORTANT NOTES
- Follow v8.1.0 IMPORTANT NOTES if you upgrade from PeerTube <= v8.0.2
SECURITY
- Updates vulnerable dependencies
Bug fixes
- Fix error 500 in home page if there are many channels
- Prevent 500 error for podcast feed
- Re-fetch remote videos if the thumbnail if not found
- Handle non jpg remote thumbnails
v8.1.2
IMPORTANT NOTES
- Follow v8.1.0 IMPORTANT NOTES if you upgrade from PeerTube <= v8.0.2
Bug fixes
- Fix broken thumbnails on account page
- Fix broken initial channel import
- Fix broken root password generation
v8.1.1
Blog post: https://joinpeertube.org/news/release-8.1
IMPORTANT NOTES
- Follow v8.1.0 IMPORTANT NOTES if you upgrade from PeerTube <= v8.0.2
Bug fixes
- Fix bad URL for objects stored in object storage
- Fix broken actor avatar in "Discover" page
v8.1.0
Blog post: https://joinpeertube.org/news/release-8.1
IMPORTANT NOTES
- You need to manually execute a migration script after upgrading, while PeerTube is running and the database migration is complete (
Migrations finished. New migration version schema: 1000in 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.1.js - Docker installation:
cd /var/www/peertube-docker && docker compose exec -u peertube peertube node dist/scripts/migrations/peertube-8.1.js
- Classic installation:
- Running regenerate-thumbnails and prune-storage scripts after the upgrade and migration script is highly recommended
- If you run PostgreSQL or Redis with TLS connection and self signed certificates, you must explicitly set
reject_unauthorizedtotrueor fillca,certandkeysettings in your production.yaml
Maintenance
- Migrate to the
sharpNodeJS dependency to process images. This is a native dependency that provides prebuilt binaries for most system.
FreeBSD systems, however, require an additional step after PeerTube dependencies installation:- Install
sharpbuild dependencies: https://sharp.pixelplumbing.com/install/#building-from-source - Run
npm explore sharp -- npm run buildinpeertube-latestdirectory
- Install
- Merge the
previewsdirectory into thethumbnailsdirectory. The migration script will automatically move files
Thepreviewsdirectory and configuration are kept for compatibility reasons - The
cachedirectory is no longer deleted at PeerTube startup, to keep files cached from the previous run
Configuration
This section is not exhaustive
- Important Generate more thumbnail sizes for videos in
thumbnails.sizes. We recommend admins apply the same settings - Update default object storage configuration to use different
prefixvalues with the samebucket_namefor each object type (web_videos,user_exports, etc.), so it is easier to add more object types in the future - Use the
lucideplayer theme by default import.videos.http.force_ipv4is nowtrueby default to reduce rate limiting on some platforms- Add On Primary color configuration (
theme.customization.on_primary_color) to choose the foreground color when the background color is Primary
Docker
- Add
va-driver-allto the PeerTube Docker image #7346
Plugins/Themes/Embed/REST APIs
- REST API:
- Deprecate
previewfilewhen publishing a video. Usethumbnailfileinstead - Deprecate
thumbnailPathandpreviewPathVideofields. Use thethumbnailsarray instead - Deprecate the
thumbnailPathVideoPlaylistfield. Use thethumbnailsarray instead - Remove unused
fileUrlfromUserExportandVideoSource - Deprecate
/lazy-static/previews/:filename. Use/lazy-static/thumbnails/:filenameinstead
- Deprecate
- Server plugin hooks (https://docs.joinpeertube.org/api/plugins):
- Add
filter:feed.videos.list.result#7355 - Replace
torrentPathwithtorrentFilenameandtorrentStreamfor remote torrents infilter:api.download.torrent.allowed.resultcontext
- Add
Features
- 🎉 Allow uploaders to restrict domains where their video can be embedded 🎉
- Add an admin config to ensure an optimized podcast audio file is transcoded
- Support 3.0x playback speed for non-premium users 😁
- Optimize transcoding job queue:
- Do not wait for all transcoding tasks to publish the video
- Do not wait for all transcoding tasks to move video files in object storage
- Lower priority on low video resolutions to avoid blocking video publication during bursts of uploads
- More transcoding job parallelization
- More reliable channel sync:
- Reduce youtube-dl calls to reduce rate limiting
- Handle cases where the video is not available/doesn't exist
- Handle lives that are still being post-processed
- Stop sync on get video info failure to retry at the same point next time
- UX:
- Support raw hex colors in color picker input #7337
- Group notifications by date
- Display blocked video information on the video manage page
- Add a loading icon when updating the video
- Improve the error message when the user password is too long
- Add
g lhotkey to go to the login page - Add ability to display video language on the
My Videospage (column is hidden by default)
- Improve video SEO
- Support
pngandwebpvideo thumbnails - Support
svglogos for admins - Better email notification when a subscribed channel published a video #7395
- Add compatibility with ActivityPub FEP-1b12 (used by Lemmy, PieFed, Mbin...)
- Introduce a new cache system for remote thumbnails, storyboards, captions, and actor avatars/banners
- Support Redis TLS connections #7404
- Support PostgreSQL TLS connections #7366
- Support path style requests for object storage
- Improve channel collaboration:
- An editor can now move a video they can manage to a channel they can manage (owner/editor)
- An editor can send a change ownership request for a video they can manage
- Editors can add videos to playlists of collaborated channels
- Add quick actions (Manage, Remove) to the video dropdown for editors too
- Performance:
- Create video file torrents in a worker thread
- Optimize videos list SQL query with complex sort (trending, hot, etc.)
- When possible, send raw files directly instead of muxing when downloading a video
- Improve podcast feed images compatibility with Apple Podcast
- Add ability to set the default "download enabled" policy in admin configuration
Bug fixes
- Fix videos list inconsistencies when going back to that page
- Do not display an empty details block in embed on error
- Prevent incomplete segment reads for live streams #7333
- Fix video download filename on Safari
- Fix broken P2P when updating object storage base URL
- Fix Redis sentinel support #7365
- Correctly use header colors defined by the admin
- Fix broken transcoding on remote runner when split video/audio is enabled
- Fix server config not refreshing after admin settings save #7413
- Prevent exception when the account is not loaded yet in the user moderation dropdown
- Prevent black borders when embedding a video
- Fix default scope defined by the admin when browsing videos
- Force transcoding even if the video state is not compatible
- Fix broken video studio task when updating video privacy at the same time
- Reset selected rows when loading data in tables
- Take into account channel owner video quota when an editor publishes a video to a collaborated channel
- Fix watching a password protected video as an editor
- Fix video metadata in
filter:api.video.upload.accept.resultcontext - Correctly take into account the user language filter when browsing videos
- Fix
.tsvideo file upload #7458 - Fix
.mkvvideo file upload on latest Chrome - Fix deleting all instance logo when deleting a specific logo
- Fix getting unsupported Node.js from PATH with yt-dlp #7468
- Inherit border color from primary color
- Fix PeerTube client that automatically updates interface language to English
v8.1.0-rc.1
IMPORTANT NOTES
- You need to manually execute a migration script after upgrading, while PeerTube is running and the database migration is complete (
Migrations finished. New migration version schema: 1000in 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.1.js - Docker installation:
cd /var/www/peertube-docker && docker compose exec -u peertube peertube node dist/scripts/migrations/peertube-8.1.js
- Classic installation:
- Running regenerate-thumbnails and prune-storage scripts after the upgrade and migration script is highly recommended
Maintenance
- Migrate to the
sharpNodeJS dependency to process images. This is a native dependency that provides prebuilt binaries, but some systems (like FreeBSD) may require an additional step after PeerTube dependencies installation:- Install
sharpdependencies: https://sharp.pixelplumbing.com/install/#building-from-source - Run
npm explore sharp -- npm run buildinpeertube-latestdirectory
- Install
- Merge the
previewsdirectory into thethumbnailsdirectory. The migration script will automatically move files
Thepreviewsdirectory and configuration are kept for compatibility reasons - The
cachedirectory is no longer deleted at PeerTube startup, to keep files cached from the previous run
Configuration
This section is not exhaustive
- Important Generate more thumbnail sizes for videos in
thumbnails.sizes. We recommend admins apply the same settings - Update default object storage configuration to use different
prefixvalues with the samebucket_namefor each object type (web_videos,user_exports, etc.), so it is easier to add more object types in the future - Use the
lucideplayer theme by default import.videos.http.force_ipv4is nowtrueby default to reduce rate limiting on some platforms- Add On Primary color configuration (
theme.customization.on_primary_color) to choose the foreground color when the background color is Primary
Docker
- Add
va-driver-allto the PeerTube Docker image #7346
Plugins/Themes/Embed/REST APIs
- REST API:
- Deprecate
previewfilewhen publishing a video. Usethumbnailfileinstead - Deprecate
thumbnailPathandpreviewPathVideofields. Use thethumbnailsarray instead - Deprecate the
thumbnailPathVideoPlaylistfield. Use thethumbnailsarray instead - Remove unused
fileUrlfromUserExportandVideoSource - Deprecate
/lazy-static/previews/:filename. Use/lazy-static/thumbnails/:filenameinstead
- Deprecate
- Server plugin hooks (https://docs.joinpeertube.org/api/plugins):
- Add
filter:feed.videos.list.result#7355 - Replace
torrentPathwithtorrentFilenameandtorrentStreamfor remote torrents infilter:api.download.torrent.allowed.resultcontext
- Add
Features
- 🎉 Allow uploaders to restrict domains where their video can be embedded 🎉
- Add an admin config to ensure an optimized podcast audio file is transcoded
- Support 3.0x playback speed for non-premium users 😁
- Optimize transcoding job queue:
- Do not wait for all transcoding tasks to publish the video
- Do not wait for all transcoding tasks to move video files in object storage
- Lower priority on low video resolutions to avoid blocking video publication during bursts of uploads
- More transcoding job parallelization
- More reliable channel sync:
- Reduce youtube-dl calls to reduce rate limiting
- Handle cases where the video is not available/doesn't exist
- Handle lives that are still being post-processed
- Stop sync on get video info failure to retry at the same point next time
- UX:
- Support raw hex colors in color picker input #7337
- Group notifications by date
- Display blocked video information on the video manage page
- Add a loading icon when updating the video
- Improve the error message when the user password is too long
- Add
g lhotkey to go to the login page - Add ability to display video language on the
My Videospage (column is hidden by default)
- Improve video SEO
- Support
pngandwebpvideo thumbnails - Support
svglogos for admins - Better email notification when a subscribed channel published a video #7395
- Add compatibility with ActivityPub FEP-1b12 (used by Lemmy, PieFed, Mbin...)
- Introduce a new cache system for remote thumbnails, storyboards, captions, and actor avatars/banners
- Support Redis TLS connections #7404
- Support PostgreSQL TLS connections #7366
- Support path style requests for object storage
- Improve channel collaboration:
- An editor can now move a video they can manage to a channel they can manage (owner/editor)
- An editor can send a change ownership request for a video they can manage
- Editors can add videos to playlists of collaborated channels
- Add quick actions (Manage, Remove) to the video dropdown for editors too
- Performance:
- Create video file torrents in a worker thread
- Optimize videos list SQL query with complex sort (trending, hot, etc.)
- When possible, send raw files directly instead of muxing when downloading a video
- Improve podcast feed images compatibility with Apple Podcast
Bug fixes
- Fix videos list inconsistencies when going back to that page
- Do not display an empty details block in embed on error
- Prevent incomplete segment reads for live streams #7333
- Fix video download filename on Safari
- Fix broken P2P when updating object storage base URL
- Fix Redis sentinel support #7365
- Correctly use header colors defined by the admin
- Fix broken transcoding on remote runner when split video/audio is enabled
- Fix server config not refreshing after admin settings save #7413
- Prevent exception when the account is not loaded yet in the user moderation dropdown
- Prevent black borders when embedding a video
- Fix default scope defined by the admin when browsing videos
- Force transcoding even if the video state is not compatible
- Fix broken video studio task when updating video privacy at the same time
- Reset selected rows when loading data in tables
- Take into account channel owner video quota when an editor publishes a video to a collaborated channel
- Fix watching a password protected video as an editor
- Fix video metadata in
filter:api.video.upload.accept.resultcontext - Correctly take into account the user language filter when browsing videos
- Fix
.tsvideo file upload #7458 - Fix
.mkvvideo file upload on latest Chrome - Fix deleting all instance logo when deleting a specific logo
- Fix getting unsupported Node.js from PATH with yt-dlp #7468
v8.0.2
IMPORTANT NOTES
- Follow v8.0.0 IMPORTANT NOTES if you upgrade from PeerTube <= v7.3.0
Bug fixes
- Fix PostgreSQL CPU usage and broken PeerTube instance on instances with a many subscriptions or big federation
- Fix login URL in registration email
- Remove the trailing comma in the plugins
package.jsonfiles that broke the update/installation process - Fix broken channel sync if private privacy is removed by a plugin
- Fix restoring My Videos sort after a search
v8.0.1
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
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: 970in 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
- Classic installation:
yarnNodeJS packages manager has been removed in favor ofpnpm. Follow the dependencies guide to installpnpmon your system before the upgrade- Ensure
storage.uploadsdirectory is set in your production.yaml - Supported NodeJS versions are
>= 20.19 and < 21or>= 22.12 and <23 - For Docker users, please read the Docker section below
Configuration
- Remove
http_serverunused section from.yamlconfiguration files - Introduce
views.videos.local.max_ageconfiguration to cleanup old views from local videos - Add more STUN Servers to
webrtc.stun_serversto improve P2P robustness - Add ability to increase video transcription timeout in
video_transcription.timeout - Add
client.new_features_infoconfiguration to disable popups explaining new features to users - Add
user.password_constraints.min_lengthconfig to specify user password minimum length #6945
Docker
- PeerTube Dockerfile is now based on Debian Trixie.
chocobozzz/peertube:productioncan be used instead ofchocobozzz/peertube:production-trixie(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
filenamefield fromVideoSourceobject - Remove deprecated
commentsEnabledfield fromVideoobject - Remove deprecated
redundancies.filesfield fromVideoRedundancyobject - Deprecate
captionPathfield fromVideoCaptionobject. UsefileUrlinstead - Deprecate
storyboardPathfromStoryboardobject. UsefileUrlinstead - Deprecate
pathfromActorImageobject (avatars, banners). UsefileUrlinstead - The HTTP response code for password-protected videos can be either 401 or 403, depending on the request headers
- Remove deprecated
- Theme:
- Rename
--input-placeholderCSS variables into--input-placeholder-color - Introduce
--input-placeholder-font-sizeCSS variable
- Rename
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
yarnpackage manager bypnpmto 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