Releases: Chocobozzz/PeerTube
Releases · Chocobozzz/PeerTube
v7.0.0
IMPORTANT NOTES
- Classic install only (for Docker admins see v6.3 IMPORTANT NOTES) Ensure you have
storage.original_video_files
set in your configuration file: https://github.com/Chocobozzz/PeerTube/blob/develop/config/production.yaml.example#L159.
If you did not configure this key but have already enabled "Keep a version of the input file" configuration, original files may have been saved inversions/peertube-v6.x.x/storage/original-video-files/
directories. If this is the case, you must move these files in the new directory location specified by yourstorage.original_video_files
configuration - Safari desktop versions < 13 are not supported anymore
- iOS versions < 14.5 are not supported anymore
- PeerTube instance requires python >= 3.8 for transcription
Docker
- Fix private IPv6 subnet (we used a subnet reserved for examples)
Plugins/Themes/Embed API
- Remove client plugin hooks:
filter:api.recently-added-videos.videos.list.{params,result}
,filter:api.local-videos.videos.list.{params,result}
,filter:api.trending-videos.videos.list.{params,result}
filter:api.trending-videos.videos.list.result
in favour offilter:api.browse-videos.videos.list.{params,result}
- Header logo doesn't have the
.icon
class anymore (it still has theicon-logo
class) - All CSS variables have been replaced so it's easier to theme PeerTube:
- PeerTube generates a color palette based on a few main colors (
primary
,fg
,bg
,bg-secondary
...): https://github.com/Chocobozzz/PeerTube/blob/develop/client/src/sass/application.scss#L27 - Some new variables fallback to old variables to limit theme breaks
- PeerTube generates a color palette based on a few main colors (
Admin config (non-exhaustive)
- Ensure
instance.default_client_route
(in web admin ->Configuration
->Basic
->Landing page
) has a correct path:/videos/trending
,/videos/local
and/videos/recently-added
have been removed in favour of/videos/browse
- Add ability to configure STUN servers IPs:
webrtc.stun_servers
- Remove
client.videos.miniature.display_author_avatar
config: author avatars are now always displayed
Features
- 🎉 Global client redesign 🎉
- Introduce a new Light/Beige theme that replaces the current one (black/orange)
- Add a Dark/Brown theme directly in PeerTube core
- Split My library pages into:
- Video Space pages (that contains account channels, videos...)
- My library pages (that contains account playlists, subscriptions...)
- Split Administration pages into:
- Overview pages (to list instance users, videos...)
- Moderation pages (to list abuses, blocks, registrations...)
- Settings pages (instance configuration, list runners...)
- Reorganize the header and the left menu:
- Account settings and notifications are now in the header
- Add instance name and description in the left menu for anonymous users
- Merge Recently Added and Trending and Local videos videos pages into a Browse videos page that includes quick filters
- Improve Discover videos page UX
- Redesign the left menu, the horizontal menus, form controls, buttons and video filters panel
- Replace/remove/add some icons
- 🎉 Introduce a modal to easily add/edit/remove subtitle segments 🎉
- Improve accessibility:
- Fix contrast issues
- Add missing labels
- Fix progress bar, custom select components, tag input components, notification component accessibility
- Add underlining to links
- Add "skip menu" links
- Improve keyboard navigation
- Fix various screen readers issues
- Add Slovakian language support to the client
- SEO:
- Various UX improvements:
- Improve player control bar responsive
- Add refresh button to following list
- Clearer signup limit label
- Add
0.25
playback rate in player
Bug fixes
- Fix My channel search
- Fix channel sync edition/listing
- Fix adding video tags on Android
- Fix fetching client comment URL using ActivityPub resolver (Mastodon search bar...)
- Fix crash when logging SQL requests and enabled prettify option
- Correctly delete web videos with hls without audio
- Fix auto blacklisting unlisted videos
- Fix ERR_BUFFER_OUT_OF_BOUNDS error on some node version
- Add ability to set max channel sync in admin config
- Allow plugins to pass client params when listing videos (
filter:api.browse-videos.videos.list.params
hook) - Respect user export expiration admin configuration
- Fix studio edition on an audio only file
- Fix embed crash on telegram web browser
v7.0.0-rc.1
IMPORTANT NOTES
- Ensure you have
storage.original_video_files
set in your configuration file: https://github.com/Chocobozzz/PeerTube/blob/develop/config/production.yaml.example#L159.
If you did not configure this key but have already enabled "Keep a version of the input file" configuration, original files may have been saved inversions/peertube-v6.x.x/storage/original-video-files/
directories. If this is the case, you must move these files in the new directory location specified by yourstorage.original_video_files
configuration - Safari desktop versions < 13 are not supported anymore
- iOS versions < 14.5 are not supported anymore
- PeerTube instance requires python >= 3.8 for transcription
Docker
- Fix private IPv6 subnet (we used a subnet reserved for examples)
Plugins/Themes/Embed API
- Remove client plugin hooks:
filter:api.recently-added-videos.videos.list.{params,result}
,filter:api.local-videos.videos.list.{params,result}
,filter:api.trending-videos.videos.list.{params,result}
filter:api.trending-videos.videos.list.result
in favour offilter:api.browse-videos.videos.list.{params,result}
- Header logo doesn't have the
.icon
class anymore (it still has theicon-logo
class) - All CSS variables have been replaced so it's easier to theme PeerTube:
- PeerTube generates a color palette based on a few main colors (
primary
,fg
,bg
,bg-secondary
...): https://github.com/Chocobozzz/PeerTube/blob/develop/client/src/sass/application.scss#L27 - Some new variables fallback to old variables to limit theme breaks
- PeerTube generates a color palette based on a few main colors (
Admin config (non-exhaustive)
- Add ability to configure STUN servers IPs:
webrtc.stun_servers
- Remove
client.videos.miniature.display_author_avatar
config: author avatars are now always displayed
Features
- 🎉 Global client redesign 🎉
- Introduce a new Light/Beige theme that replaces the current one (black/orange)
- Add a Dark/Brown theme directly in PeerTube core
- Split My library pages into:
- Video Space pages (that contains account channels, videos...)
- My library pages (that contains account playlists, subscriptions...)
- Split Administration pages into:
- Overview pages (to list instance users, videos...)
- Moderation pages (to list abuses, blocks, registrations...)
- Settings pages (instance configuration, list runners...)
- Reorganize the header and the left menu:
- Account settings and notifications are now in the header
- Add instance name and description in the left menu for anonymous users
- Merge Recently Added and Trending and Local videos videos pages into a Browse videos page that includes quick filters
- Improve Discover videos page UX
- Redesign the left menu, the horizontal menus, form controls, buttons and video filters panel
- Replace/remove/add some icons
- 🎉 Introduce a modal to easily add/edit/remove subtitle segments 🎉
- Improve accessibility:
- Fix contrast issues
- Add missing labels
- Fix progress bar, custom select components, tag input components, notification component accessibility
- Add underlining to links
- Add "skip menu" links
- Improve keyboard navigation
- Fix various screen readers issues
- SEO:
- Various UX improvements:
- Improve player control bar responsive
- Add refresh button to following list
- Clearer signup limit label
Bug fixes
- Fix My channel search
- Fix channel sync edition/listing
- Fix adding video tags on Android
- Fix fetching client comment URL using ActivityPub resolver (Mastodon search bar...)
- Fix crash when logging SQL requests and enabled prettify option
- Correctly delete web videos with hls without audio
- Fix auto blacklisting unlisted videos
- Fix ERR_BUFFER_OUT_OF_BOUNDS error on some node version
- Add ability to set max channel sync in admin config
v6.3.3
Bug fixes
- Fix broken thumbnails on live replay
- Fix detecting portrait rotation of some video
- Don't allow to select a frame from a live to set the thumbnail
- Fix lost video stream with specific transcoding settings and video input
- Fix creating playlist without thumbnail when using the REST API
- Fix
.mov
video upload on some Windows versions - Fix
video-plugin-metadata.result
client plugin hook
v6.3.2
Bug fixes
- Fix 403 error when downloading private/internal video
- Don't crash video federation and live replay generation on missing thumbnail/preview
- Fix advanced search input with multiple automatic search tokens
- Fix player "Copy URL" when the video is fullscreen
- Fix account videos search
- Add missing max transcoding fps config in admin
- Don't add mobile buttons if the player controls are disabled
v6.3.1
IMPORTANT NOTES
- If you upgrade from PeerTube < v6.3.0, please follow v6.3.0 IMPORTANT NOTES
Bug fixes
- Fix player settings button on mobile
- Fix removed audio when splitting audio and video streams on existing videos when running HLS transcoding
v6.3.0
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: 865
in PeerTube startup logs, this migration script may take a while).
The purpose of this migration is to update video files metadata in the database.
This migration can take a long time if you have many federated/local videos, but is designed to be safe to run multiple times:- 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-6.3.js
- Docker installation:
cd /var/www/peertube-docker && docker compose exec -u peertube peertube node dist/scripts/migrations/peertube-6.3.js
- Classic installation:
- Important for Docker admins If you enabled the "Keep a version of the input file" configuration, files may have been stored in the container instead of the host volume. To prevent data loss, you must copy the files on the host before upgrading using
docker compose cp peertube:/app/storage/original-video-files docker-volume/data
Docker
- Fix IPV6 configuration. You must update your
docker-compose.yml
file:- Remove
version:
line - Add
ipv6_address
topeertube.networks.default
key - Update
network
top level key content
- Remove
Maintenance
- Reduce error and warning logs generated by clients and the federation
- Introduce
peertube_playback_buffer_stalled_count_total
OpenTelemetry playback metric - Removed
access_log: off
for static video requests in the nginx configuration template, now the player doesn't use WebTorrent anymore (which was doing a large amount of small HTTP requests) - PeerTube introduces a new download API endpoint that remuxes the videos on the fly to merge video and audio streams. A custom rate limit can be configured in the YAML configuration
Plugins/Themes/Embed API
- Reduce
@peertube/peertube-types
package size
Features
- 🎉 Separate HLS audio and video streams 🎉
- Can be enabled for VODs in the admin configuration for new videos
- Automatically enabled for lives
- If enabled, an "Audio only" resolution is available in the HLS player
- The live can ingest and output an "Audio only" stream
- Reduce video disk space used since we only store one version of the audio stream
- The download modal has a new panel so users can easily select the resolution they want to download
- 🎉 Introduce a transcription widget 🎉
- Users can open the transcription widget that appears next to the player
- The transcription is in sync with the video
- Users can search the transcript and click on a specific segment to automatically jump the video to the appropriate timecode
- UI/UX:
- More visible chapter markers in player control bar
- Add a button to copy server logs in admin
- Smoother live autoplay: only the player is reloaded
- Improve channel and account page tab title
- Better resolution label for custom video aspect. For example with a
1920x816
video, we now display1080p
instead of816p
- Support max FPS configuration: the admin can allow videos with more than 60FPS, which is the current default limit
- Max resolution file preserves input FPS even if < 720p, allowing users to upload and broadcast a 480p resolution at 60FPS
- Add ability for admins to set multiple proxies for youtube-dl that PeerTube will randomly select
- Support youtube-dl executable (for example Linux standalone x64 binary that includes additional features like impersonation)
- Add a cover to the file if the user only downloads the audio version of the video
- Forward watch page
start
query param to the OEmbed service so that the embed starts at the correct time - Notify local users on when an Internal video is published
- Add ability for admins to disable federation (disabling ActivityPub endpoints)
- Improve local video search relevance
Bug fixes
- Fix broken object storage playlist on file removal
- Set live tags to replays
- Fix hidden delete button for original file in videos admin overview
- Don't crash the embed on player error
- Prevent embed poster flickering
- Fix left menu block title ellipsis
- Fix channel name overflow in *My Videos" page
- Fix player infinite buffering issues on fast live re-stream
- Don't display orange resume bar on live miniatures
- Fix video file object storage detection in admin videos overview
- Support ActivityPub remote actors with array
url
field - Fix resetting duration filter in search page
- Use first step Public privacy when publishing lives without having validated the second step
- Fix studio page responsive
- Add CORS to oEmbed API
- Fix storyboard display at the end of the video
- Correctly cleanup permanent live empty directories
- Fix duplicated resolutions when capping fps
- Don't resize remote actor images with unknown size
- More robust caption update concurrency
v6.3.0-rc.1
IMPORTANT NOTES
- Important You need to manually execute a migration script after your upgrade while PeerTube is running.
The purpose of this migration is to update video files metadata in the database.
This migration can take a long time if you have many federated/local videos, but is designed to be safe to run multiple times:- 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-6.3.js
- Docker installation:
cd /var/www/peertube-docker && docker-compose exec -u peertube peertube node dist/scripts/migrations/peertube-6.3.js
- Classic installation:
Maintenance
- Reduce error and warning logs generated by clients and the federation
- Introduce
peertube_playback_buffer_stalled_count_total
OpenTelemetry playback metric - Removed
access_log: off
for static video requests in the nginx configuration template, now the player doesn't use WebTorrent anymore (which was doing a large amount of small HTTP requests) - PeerTube introduces a new download API endpoint that remuxes the videos on the fly to merge video and audio streams. A custom rate limit can be configured in the YAML configuration
Plugins/Themes/Embed API
- Reduce
@peertube/peertube-types
package size
Features
- 🎉 Separate HLS audio and video streams 🎉
- Can be enabled for VODs in the admin configuration for new videos
- Automatically enabled for lives
- If enabled, an "Audio only" resolution is available in the HLS player
- The live can ingest and output an "Audio only" stream
- Reduce video disk space used since we only store one version of the audio stream
- The download modal has a new panel so users can easily select the resolution they want to download
- 🎉 Introduce a transcription widget 🎉
- Users can open the transcription widget that appears next to the player
- The transcription is in sync with the video
- Users can search the transcript and click on a specific segment to automatically jump the video to the appropriate timecode
- UI/UX:
- More visible chapter markers in player control bar
- Add a button to copy server logs in admin
- Smoother live autoplay: only the player is reloaded
- Improve channel and account page tab title
- Support max FPS configuration: the admin can allow videos with more than 60FPS, which is the current default limit
- Max resolution file preserves input FPS even if < 720p, allowing users to upload and broadcast a 480p resolution at 60FPS
- Add ability for admins to set multiple proxies for youtube-dl that PeerTube will randomly select
- Support youtube-dl executable (for example Linux standalone x64 binary that includes additional features like impersonation)
- Add a cover to the file if the user only downloads the audio version of the video
- Better resolution label for custom video aspect. For example with a
1920x816
video, we now display1080p
instead of816p
- Forward watch page
start
query param to the OEmbed service so that the embed starts at the correct time - Notify local users on when an Internal video is published
- Add ability for admins to disable federation (disabling ActivityPub endpoints)
Bug fixes
- Fix broken object storage playlist on file removal
- Set live tags to replays
- Fix hidden delete button for original file in videos admin overview
- Don't crash the embed on player error
- Prevent embed poster flickering
- Fix left menu block title ellipsis
- Fix channel name overflow in *My Videos" page
- Fix player infinite buffering issues on fast live re-stream
- Don't display orange resume bar on live miniatures
- Fix video file object storage detection in admin videos overview
- Support ActivityPub remote actors with array
url
field - Fix resetting duration filter in search page
- Use first step Public privacy when publishing lives without having validated the second step
- Fix studio page responsive
- Add CORS to oEmbed API
v6.2.1
Maintenance
- Add ability for users to see the error details when the embed player crashed with the message "The player is not compatible with your web browser. Please try latest Firefox version." The web browser also sends a client error log to the server
Bug fixes
- Fix stuck runner jobs due to DB concurrency issue
- Respect OS orientation settings in PWA
- Fix "No results" not displayed on no video results
- Do not display "Download" option on lives
- Fix invalid current password error when updating user password
- Fix slow hotkeys detection
- Fix hidden runner jobs tab when remote runner is only enabled for transcription
- Fix broken HLS P2P by correctly updating HLS infohash on privacy update. To fix existing broken videos, update the video privacy from
Public
toPrivate
and thenPrivate
toPublic
after the PeerTube upgrade - Fix videos filters pastille labels for categories and languages
- Fix broken youtube-dl import for videos with too long chapter titles
- Display emojis in description preview in video edition form
- Avoid node-datachannel native dependency that prevents some OS to install PeerTube dependencies
v6.2.0
IMPORTANT NOTES
- Added
pip3
as required PeerTube dependency to support automatic transcription. You must install it on your system
Maintenance
- Check for latest plugin versions every 4 hours (instead of 12 hours). We recommend admins to update their current configuration to apply this change for faster plugin new version notifications
- Add a configuration to configure video thumbnail/preview sizes #6423
- Support for removing non-existent objects from object storage in prune-storage script
- Support for moving original video files to object storage/filesystem in create-move-video-storage-job script
- Add house-keeping script to recover disk space by removing remote files (thumbnails, avatars...)
- Add
max_request_attempts
object storage configuration (required by some S3 providers such as Blackblaze) #6418
Docker
- Add missing Docker env to configure object storage (user exports and original video files)
Plugins/Themes/Embed API
- Add ability to register the same setting multiple times to replace the old one #6357 & 1bfb791e0
- Add
getUser()
client helper #6358 - Detect internal link in plugin page to avoid reloading entire application when not needed
Features
- 🎉 Add automatic transcription of videos to generate subtitles 🎉 #6303
- Uses Whisper engines and models to create the subtitle and guess the video language
- Has to be enabled by admins in the configuration web interface: PeerTube will automatically download and install Whisper binaries/models
- Transcription can also be performed by PeerTube runners, as it can consume a lot of CPU
- Transcription generation can also be run manually by administrators
- 🎉 Improve comment moderation 🎉 #6399
- Introduce a new video comment policy that requires comments to be approved first
- Video owners have a dedicated page to list, view and take action on comments made on their videos
- 🎉 Implement auto-tagging on comments and videos for admins and on comments for video owners 🎉 #6399
- Comments and videos can be automatically tagged using PeerTube rules ("contains a link" for example) or watched word lists
- These tags can be used to automatically filter videos and comments
- Video owners can select auto tags that require comments to be approved first
- Add the ability to select the thumbnail directly from the video #6424
- Allow admins to force bulk transcoding
- Faster "Mark as read" user notification REST API endpoint when having many notifications in database
- Improve
Video
ActivityPub compatibility by relaxing PeerTube checks and allowing remote object to not have some fields that were required by PeerTube (missing P2P information for example) - Highlight current lives on pages that list videos ("Recently Added", "Trending", "Account videos", "Channel videos" etc.)
Bug fixes
- Fix embed API on iOS
- Fix RTL layout inconsistencies
- Fix big user export file size
- Fix concurrent live streams serialization issue
- Fix instance slowness when geoip download fails #6402
- Don't count deleted comments in instance stats
- Handle videos with FPS < 1
- Don't display stats button of remote videos
- Fix recommendation loop for anonymous users
- Handle 410 HTTP response code for AP objects
- Fix major plugin version detection when major number has two digits
- Accessibility:
- Fix focus visibility box
- Fix feed popover title state
- Fix video filter pastille accessibility
- Fix radio button focus
- Fix search typeahead information not read by screen readers
- Fix player "Back" button label
- Fix player settings menu keyboard navigation
- Fix "Update your settings" keyboard navigation and improve accessibility
- Fix checkbox description relationship
- Fix green color contrast
- Correctly label the boolean icon in instance features table
- Remove unneeded information in "Policy for sensitive videos" select
- Fix left menu list items list hierarchy
- Fix HLS audio desync on some videos
- Playlist components in custom markup can use a short UUID
- Support
Service
Activity Pub actors that should fix some federation issues with Mastodon - Fix downloading protected videos in admin
- Increase legacy upload request timeout
v6.2.0-rc.1
IMPORTANT NOTES
- Added
pip3
as required PeerTube dependency to support automatic transcription. You must install it on your system
Maintenance
- Check for latest plugin versions every 4 hours (instead of 12 hours). We recommend admins to update their current configuration to apply this change for faster plugin new version notifications
- Add a configuration to configure video thumbnail/preview sizes #6423
- Support for removing non-existent objects from object storage in prune-storage script
- Support for moving original video files to object storage/filesystem in create-move-video-storage-job script
- Add house-keeping script to recover disk space by removing remote files (thumbnails, avatars...)
- Add
max_request_attempts
object storage configuration (required by some S3 providers such as Blackblaze) #6418
Docker
- Add missing Docker env to configure object storage (user exports and original video files)
Plugins/Themes/Embed API
- Add ability to register the same setting multiple times to replace the old one #6357 & 1bfb791e0
- Add
getUser()
client helper #6358 - Detect internal link in plugin page to avoid reloading entire application when not needed
Features
- 🎉 Add automatic transcription of videos to generate subtitles 🎉 #6303
- Uses Whisper engines and models to create the subtitle and guess the video language
- Has to be enabled by admins in the configuration web interface: PeerTube will automatically download and install Whisper binaries/models
- Transcription can also be performed by PeerTube runners, as it can consume a lot of CPU
- Transcription generation can also be run manually by administrators
- 🎉 Improve comment moderation 🎉 #6399
- Introduce a new video comment policy that requires comments to be approved first
- Video owners have a dedicated page to list, view and take action on comments made on their videos
- 🎉 Implement auto-tagging on comments and videos for admins and on comments for video owners 🎉 #6399
- Comments and videos can be automatically tagged using PeerTube rules ("contains a link" for example) or watched word lists
- These tags can be used to automatically filter videos and comments
- Video owners can select auto tags that require comments to be approved first
- Add the ability to select the thumbnail directly from the video #6424
- Allow admins to force bulk transcoding
- Faster "Mark as read" user notification REST API endpoint when having many notifications in database
- Improve
Video
ActivityPub compatibility by relaxing PeerTube checks and allowing remote object to not have some fields that were required by PeerTube (missing P2P information for example) - Highlight current lives on pages that list videos ("Recently Added", "Trending", "Account videos", "Channel videos" etc.)
Bug fixes
- Fix embed API on iOS
- Fix RTL layout inconsistencies
- Fix big user export file size
- Fix concurrent live streams serialization issue
- Fix instance slowness when geoip download fails #6402
- Don't count deleted comments in instance stats
- Handle videos with FPS < 1
- Don't display stats button of remote videos
- Fix recommendation loop for anonymous users
- Handle 410 HTTP response code for AP objects
- Fix major plugin version detection when major number has two digits
- Accessibility:
- Fix focus visibility box
- Fix feed popover title state
- Fix video filter pastille accessibility
- Fix radio button focus
- Fix search typeahead information not read by screen readers
- Fix player "Back" button label
- Fix player settings menu keyboard navigation
- Fix "Update your settings" keyboard navigation and improve accessibility
- Fix checkbox description relationship
- Fix green color contrast
- Correctly label the boolean icon in instance features table
- Remove unneeded information in "Policy for sensitive videos" select
- Fix left menu list items list hierarchy
- Fix HLS audio desync on some videos
- Playlist components in custom markup can use a short UUID
- Support
Service
Activity Pub actors that should fix some federation issues with Mastodon - Fix downloading protected videos in admin
- Increase legacy upload request timeout