Releases: Chocobozzz/PeerTube
Releases · Chocobozzz/PeerTube
v5.1.0-rc.1
IMPORTANT NOTES
- 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
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
Documentation
- PeerTube documentation website now uses VitePress: https://docs.joinpeertube.org
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
- Add server plugin hooks (https://docs.joinpeertube.org/api/plugins):
filter:api.user.me.subscription-videos.list.params
&filter:api.user.me.subscription-videos.list.result
#5648
- 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:
- 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
- Use
- 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:
- 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
- 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
- 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
v5.0.1
IMPORTANT NOTES
- If you upgrade from PeerTube < 5.0.0, please follow 5.0.0 IMPORTANT NOTES
Bug fixes
- Fix HLS player infinite loading when the live stream/video ends
- Do not autoplay live without autoplay setting
- Fix private/internal video playback from Cloudflare object storage
- Fix local channel stats/OpenTelemetry metric
- Also display dropdown for videos from the homepage
- Fix broken P2P with live stream coming from object storage
- Fix responsive of table pagination
v5.0.0
IMPORTANT NOTES
- Important Private and internal video files are now protected. See #5370 for more information, but see below for most important information:
- For private/internal videos on filesystem:
- These videos are now under a
private/
subdirectory invideos/
andstreaming-playlists/
directories - Nginx doesn't serve these private files anymore, the requests are forwarded to PeerTube that will check authentication
- These videos are now under a
- For private/internal videos in object storage:
- These videos have now a private ACL
- PeerTube proxifies requests to private object storage (using pre-signed URLs is not possible as explained in #5370)
- Torrent files and magnet URIs of private/internal videos don't contain a webseed URL anymore since they require authentication
- For private/internal videos on filesystem:
- Important You need to manually execute a migration script after your upgrade to migrate private/internal video files:
- 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-5.0.js
- Docker installation:
cd /var/www/peertube-docker && docker-compose exec -u peertube peertube node dist/scripts/migrations/peertube-5.0.js
- Classic installation:
- Configuration changes (
config/production.yaml
):- There is a new
secrets.peertube
configuration:- Classic install: fill it before running PeerTube v5: https://github.com/Chocobozzz/PeerTube/blob/v5.0.0/config/production.yaml.example#L14
- Docker install: fill it using an env variable before running the containers: https://github.com/Chocobozzz/PeerTube/blob/develop/support/docker/production/.env#L27
object_storage.upload_acl
is now a parent key that you must update: https://github.com/Chocobozzz/PeerTube/blob/v5.0.0/config/production.yaml.example#L153
- There is a new
- You must update your nginx configuration:
- We introduced a new
location
for plugin websocket routes: https://github.com/Chocobozzz/PeerTube/blob/v5.0.0/support/nginx/peertube#L135 - We introduced a new
location
for private videos files: https://github.com/Chocobozzz/PeerTube/blob/v5.0.0/support/nginx/peertube#L217
- We introduced a new
Documentation
- Add Monitoring/Observability documentation using PeerTube OpenTelemetry feature
Maintenance
- REST API breaking change:
role
is nowrole.id
androleLabel
isrole.label
in user response- We now store the complete remote video description:
- Deprecate
description
in favour oftruncatedDescription
when listing videos - Complete description is sent by the server in
description
when getting a specific video - Deprecate
/api/v1/videos/:id/description
endpoint
- Deprecate
search.disable_local_search
disables local search in client search bar only and doesn't disable it on server side anymore #5411
Plugins/Themes/Embed API
- Add server plugin hooks (https://docs.joinpeertube.org/api-plugins):
filter:activity-pub.remote-video-comment.create.accept.result
- Add server plugin helpers
socket.sendNotification
andsocket.sendVideoLiveNewState
#5239
- Add ability for plugins to register a websocket route using
registerWebSocketRoute
- Add client plugin hooks (https://docs.joinpeertube.org/api-plugins):
filter:internal.player.p2p-media-loader.options.result
#5318
CLI tools
- Add ability to install alpha/beta/rc plugin versions
Features
- 🎉 Support object storage for live streams 🎉
- 🎉 Support Two Factor authentication (OTP) 🎉
- UX:
- Add explanation on disk space used for user quota admin config #5305
- Display channel in my videos list
- Show which playlists videos are added to in my videos list
- Add Channels link in left menu
- Add
...
after the truncated video name in miniature - Add object storage info badge in videos admin overview
- Add links to video files in videos admin overview
- Better indicate the live ended in embed by displaying a message and the live preview
- Force live autoplay by muting the video if necessary when the user was waiting for the live
- Handle network issues in video player #5138
- Cache chunks to upload in server to resume upload later #5224
- Add ability to serve custom static files under
/.well-known
URL path #5214 - Use account/channel avatar in account/channel RSS feeds #5325
- Add filter to sort videos by name #5351
- Add ability to configure OpenTelemetry Prometheus exporter listening hostname
Bug fixes
- Hide all user email block if we can't change it (remote auth for example)
- Display an error if trying to reset password of user configured to use a remote authentication
- Fix peers info width in live
- Fix video job error when video has been deleted
- Fix user channels list with increased max counter
- More robust channel/playlist import/sync
- Hide useless Wait Transcoding input for lives
- Fix responsive in account channels list
- Fix slow page response when listing many videos
- Reload data when deleting a blocked video
- Prevent error with metrics in HTTP player if no P2P info is available
- Fix playlist overflow in account channels page
- Fix invalid date display for jobs
- Fix conflict with player hotkeys and
alt + number
web browser hotkey - Fix horizontal overflow on rtl languages
- Fix actor follow constraint error on remote videos when Allow users to do remote URI/handle search is disabled
- Fix running again transcoding on a video that doesn't contain audio or on a video that doesn't contain video
- Fix re-transcoding of video with odd resolution
- Fix embed API with playlists
- Fix not working P2P with permanent live
- Fix following/fetching remote Pleroma actor
- Prevent high Redis memory usage when having many jobs
- Fix overall viewers stats with start/end dates
- Remove limit of countries displayed in video/live stats
v5.0.0-rc.1
IMPORTANT NOTES
- Important Private and internal video files are now protected. See #5370 for more information, but see below for most important information:
- For private/internal videos on filesystem:
- These videos are now under a
private/
subdirectory invideos/
andstreaming-playlists/
directories - Nginx doesn't serve these private files anymore, the requests are forwarded to PeerTube that will check authentication
- These videos are now under a
- For private/internal videos in object storage:
- These videos have now a private ACL
- PeerTube proxifies requests to private object storage (using pre-signed URLs is not possible as explained in #5370)
- Torrent files and magnet URIs of private/internal videos don't contain a webseed URL anymore since they require authentication
- For private/internal videos on filesystem:
- Important You need to manually execute a migration script after your upgrade to migrate private/internal video files:
- 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-5.0.js
- Docker installation:
cd /var/www/peertube-docker && docker-compose exec -u peertube peertube node dist/scripts/migrations/peertube-5.0.js
- Classic installation:
- There is a new
secrets.peertube
configuration. You must fill it before running PeerTube v5 - You must update your nginx configuration:
- We introduced a new
location
for plugin websocket routes - We introduced a new
location
for private videos files
- We introduced a new
Documentation
- Add Monitoring/Observability documentation using PeerTube OpenTelemetry feature
Maintenance
- REST API breaking change:
role
is nowrole.id
androleLabel
isrole.label
in user response- We now store the complete remote video description:
- Deprecate
description
in favour oftruncatedDescription
when listing videos - Complete description is sent by the server in
description
when getting a specific video - Deprecate
/api/v1/videos/:id/description
endpoint
- Deprecate
search.disable_local_search
disables local search in client search bar only and doesn't disable it on server side anymore #5411
Plugins/Themes/Embed API
- Add server plugin hooks (https://docs.joinpeertube.org/api-plugins):
filter:activity-pub.remote-video-comment.create.accept.result
- Add server plugin helpers
socket.sendNotification
andsocket.sendVideoLiveNewState
#5239
- Add ability for plugins to register a websocket route using
registerWebSocketRoute
- Add client plugin hooks (https://docs.joinpeertube.org/api-plugins):
filter:internal.player.p2p-media-loader.options.result
#5318
CLI tools
- Add ability to install alpha/beta/rc plugin versions
Features
- 🎉 Support object storage for live streams 🎉
- 🎉 Support Two Factor authentication (OTP) 🎉
- UX:
- Add explanation on disk space used for user quota admin config #5305
- Display channel in my videos list
- Show which playlists videos are added to in my videos list
- Add Channels link in left menu
- Add
...
after the truncated video name in miniature - Add object storage info badge in videos admin overview
- Add links to video files in videos admin overview
- Better indicate the live ended in embed by displaying a message and the live preview
- Force live autoplay by muting the video if necessary when the user was waiting for the live
- Handle network issues in video player #5138
- Cache chunks to upload in server to resume upload later #5224
- Add ability to serve custom static files under
/.well-known
URL path #5214 - Use account/channel avatar in account/channel RSS feeds #5325
- Add filter to sort videos by name #5351
- Add ability to configure OpenTelemetry Prometheus exporter listening hostname
Bug fixes
- Hide all user email block if we can't change it (remote auth for example)
- Display an error if trying to reset password of user configured to use a remote authentication
- Fix peers info width in live
- Fix video job error when video has been deleted
- Fix user channels list with increased max counter
- More robust channel/playlist import/sync
- Hide useless Wait Transcoding input for lives
- Fix responsive in account channels list
- Fix slow page response when listing many videos
- Reload data when deleting a blocked video
- Prevent error with metrics in HTTP player if no P2P info is available
- Fix playlist overflow in account channels page
- Fix invalid date display for jobs
- Fix conflict with player hotkeys and
alt + number
web browser hotkey - Fix horizontal overflow on rtl languages
- Fix actor follow constraint error on remote videos when Allow users to do remote URI/handle search is disabled
- Fix running again transcoding on a video that doesn't contain audio or on a video that doesn't contain video
- Fix re-transcoding of video with odd resolution
- Fix embed API with playlists
- Fix not working P2P with permanent live
- Fix following/fetching remote Pleroma actor
- Prevent high Redis memory usage when having many jobs
- Fix overall viewers stats with start/end dates
v4.3.1
IMPORTANT NOTES
- If you upgrade from PeerTube < 4.3.0, please follow 4.3.0 IMPORTANT NOTES
SECURITY
- Prevent XSS in sort select on pages that list videos. Thanks to Anthony Roth who reported the vulnerability!
Bug fixes
- Fix broken embed player on live reload
- Fix channel follow when manually approve instance followers is enabled
- Fix input with number overflow on small screen
- Fix moderation dropdown overflow on mobile
- Clearer instance subscription page title in admin
- Prevent "Cannot use same state" video error
- Correctly handle RTMP streams without audio
- Correctly process broadcast parallel job in parallel
v4.3.0
IMPORTANT NOTES
- Redis < 5.x is not supported anymore
- FFmpeg < 4.3 is not supported anymore
Maintenance
- Use
yt-dlp
by default instead ofyoutube-dl
for new installations (because of much more dev activity) - Support NodeJS 18
- Improved PeerTube logs:
- Reduce amount of PeerTube error logs
- Introduce
log.log_tracker_unknown_infohash
setting to disable "Unknown infoHash" warnings - Web browsers send their error logs to the server that writes them in its own logs. Can be disabled by
log.accept_client_log
setting
- Introduce experimental support of OpenTelemetry
- Enable metrics export using a Prometheus exporter
- Enable tracing export using a Jaeger exporter
- Automatically rebuild native plugin modules on NodeJS ABI change
Docker
- Add ability to easily use the docker compose stack on localhost
Plugins/Themes/Embed API
- Theme:
- Removed unused
--secondaryColor
CSS variable
- Removed unused
- Add client plugin hooks (https://docs.joinpeertube.org/api-plugins):
filter:api.my-library.video-playlist-elements.list.params
&filter:api.my-library.video-playlist-elements.list.result
#5098action:video-channel-create.init
action:video-channel-update.init
&action:video-channel-update.video-channel.loaded
action:video-channel-videos.init
&action:video-channel-videos.video-channel.loaded
&action:video-channel-videos.videos.loaded
action:video-channel-playlists.init
&action:video-channel-playlists.video-channel.loaded
&action:video-channel-playlists.playlists.loaded
filter:share.video-embed-code.build.params
&filter:share.video-embed-code.build.result
&filter:share.video-playlist-embed-code.build.params
&filter:share.video-playlist-embed-code.build.result
filter:share.video-embed-url.build.params
&filter:share.video-embed-url.build.result
&filter:share.video-playlist-embed-url.build.params
&filter:share.video-playlist-embed-url.build.result
filter:share.video-url.build.params
&filter:share.video-url.build.result
&filter:share.video-playlist-url.build.params
&filter:share.video-playlist-url.build.result
action:modal.share.shown
- Add server plugin hooks (https://docs.joinpeertube.org/api-plugins):
filter:job-queue.process.params
&filter:job-queue.process.result
filter:transcoding.manual.resolutions-to-transcode.result
&filter:transcoding.auto.resolutions-to-transcode.result
action:api.video-channel.created
&action:api.video-channel.updated
&action:api.video-channel.deleted
action:notifier.notification.created
- Add HTML placeholder (https://docs.joinpeertube.org/contribute-plugins?id=html-placeholder-elements):
share-modal-playlist-settings
&share-modal-video-settings
Features
- 🎉 Add ability for users to synchronize a remote channel #5135 🎉
- Automatically import all videos of a remote channel in your PeerTube channel
- PeerTube will watch for new publications and automatically import these new videos
- UI:
- Redesigned Create an account steps
- Improved Login page
- Use a lighter font color
- Use a bigger font size
- Don't display form errors in red while typing but only when we unfocus the input
- Display an error message when the user is unauthorized to view a page #5097
- Display latest upload date for captions
- Add an information if the live will be saved as a replay when displaying live sessions
- Move search bar at the center of the header
- Add Toki Pona and Croatian locales in client
- Embed:
- Display a message and automatically start live streams in embed
- Use the instance name instead of "PeerTube" in embed control bar
- Reuse current watch page query parameters for embed when using OEmbed #5023
- Instance follows:
- Introduce a Rejected state for follow requests to not reprocess already rejected follow requests
- Add bulk actions on instance following/followers ()
- Admins:
- Add ability to disable original resolution transcoding of the uploaded video/live stream
- Add ability to delete a specific video file in videos overview
- Display Last Login column by default in users overview
- Remember last selected columns in users overview
- Add ability to set a custom video import timeout
- Add ability to set the default feed (Atom, RSS...) items count
- Admins and moderators now bypass API rate limits
- Add ability to list comments on local videos in comments overview
- Limit video import resolution depending on enabled VOD transcoding resolutions
- Store and display the uploaded video original filename #4885
- Add Total views in the my channels list #5007
- Add Original Publication Date video sort option #4959
- Performance:
- Optimized view/watching endpoint
- Optimized video feed SQL query
- Process images (resize, convert...) in a dedicated worker thread
- Optimized emoji markup list rendering in client
- Use a worker thread to send ActivityPub Broadcast requests
- Suffix external auth username/channel name on conflict instead of throwing an exception
Bug fixes
- Fix users overview Last login sort in admin
- More robust move to object storage job failure
- Fix comment add avatar with a unauthenticated user
- Fix fetching unlisted video in client
- Fix comments/download enabled attributes when importing a video
- Fix total instance views stats
- Fix HLS player infinite buffering on seek
- Reset table pagination on search
- Host search filter can also search into channels and playlists in global search
- Fix My videos invalid counter
- Prevent error on highlighted thread
- Fix Jobs, Account blocklist and Server blocklist hidden columns on Safari
- Fix live stream max bitrate
- Fix incompatibility with OpenSSL 3
- Don't crash on redis connection error
- Transcoding:
- Fix failed transcoding with a mp3 file that contains a cover image
- Prevent duplicated HLS playlist when running transcoding
- Regenerate video file names when running transcoding manually
- Prevent job failures resulting in broken videos on concurrent transcoding
- Fix transcoding of videos with quad audio channels
- ActivityPub
- Fix random invalid HTTP signature generation
- Use unique AP id for Accept/Reject activities
- Correctly handle remote actors that don't have follow counters
- Correctly handle unknown remote actor image size
- Add years in graph legend when grouping video views stats by month
- Prevent creating multiple lives when clicking multiple times on the "Go Live" button
- Fix *undefined" resolution in player Stats for nerds
- Fix not displayed error message in administrator web config
- More robust S3 upload #5231
- Fix broken saved live stream with only one resolution
- Fix
removeEventListener
player embed api - Progressively cleanup actor images without width from the database
- Fix broken dates on localized pages
- Prevent job queue to be started before plugins
- Fix old database enum names
- Don't display remove file icon in admin videos overviews if we can't delete the file
v4.3.0-rc.1
Maintenance
- Use
yt-dlp
by default instead ofyoutube-dl
for new installations (because of much more dev activity) - Support NodeJS 18
- Improved PeerTube logs:
- Reduce amount of PeerTube error logs
- Introduce
log.log_tracker_unknown_infohash
setting to disable "Unknown infoHash" warnings - Web browsers send their error logs to the server that writes them in its own logs. Can be disabled by
log.accept_client_log
setting
- Introduce experimental support of OpenTelemetry
- Enable metrics export using a Prometheus exporter
- Enable tracing export using a Jaeger exporter
- Automatically rebuild native plugin modules on NodeJS ABI change
Docker
- Add ability to easily use the docker compose stack on localhost
Plugins/Themes/Embed API
- Theme:
- Removed unused
--secondaryColor
CSS variable
- Removed unused
- Add client plugin hooks (https://docs.joinpeertube.org/api-plugins):
filter:api.my-library.video-playlist-elements.list.params
&filter:api.my-library.video-playlist-elements.list.result
#5098action:video-channel-create.init
action:video-channel-update.init
&action:video-channel-update.video-channel.loaded
action:video-channel-videos.init
&action:video-channel-videos.video-channel.loaded
&action:video-channel-videos.videos.loaded
action:video-channel-playlists.init
&action:video-channel-playlists.video-channel.loaded
&action:video-channel-playlists.playlists.loaded
filter:share.video-embed-code.build.params
&filter:share.video-embed-code.build.result
&filter:share.video-playlist-embed-code.build.params
&filter:share.video-playlist-embed-code.build.result
filter:share.video-embed-url.build.params
&filter:share.video-embed-url.build.result
&filter:share.video-playlist-embed-url.build.params
&filter:share.video-playlist-embed-url.build.result
filter:share.video-url.build.params
&filter:share.video-url.build.result
&filter:share.video-playlist-url.build.params
&filter:share.video-playlist-url.build.result
action:modal.share.shown
- Add server plugin hooks (https://docs.joinpeertube.org/api-plugins):
filter:job-queue.process.params
&filter:job-queue.process.result
filter:transcoding.manual.resolutions-to-transcode.result
&filter:transcoding.auto.resolutions-to-transcode.result
action:api.video-channel.created
&action:api.video-channel.updated
&action:api.video-channel.deleted
action:notifier.notification.created
- Add HTML placeholder (https://docs.joinpeertube.org/contribute-plugins?id=html-placeholder-elements):
share-modal-playlist-settings
&share-modal-video-settings
Features
- 🎉 Add ability for users to synchronize a remote channel #5135 🎉
- Automatically import all videos of a remote channel in your PeerTube channel
- PeerTube will watch for new publications and automatically import these new videos
- UI:
- Redesigned Create an account steps
- Improved Login page
- Use a lighter font color
- Use a bigger font size
- Don't display form errors in red while typing but only when we unfocus the input
- Display an error message when the user is unauthorized to view a page #5097
- Display latest upload date for captions
- Add an information if the live will be saved as a replay when displaying live sessions
- Move search bar at the center of the header
- Add Toki Pona and Croatian locales in client
- Embed:
- Display a message and automatically start live streams in embed
- Use the instance name instead of "PeerTube" in embed control bar
- Reuse current watch page query parameters for embed when using OEmbed #5023
- Instance follows:
- Introduce a Rejected state for follow requests to not reprocess already rejected follow requests
- Add bulk actions on instance following/followers ()
- Admins:
- Add ability to disable original resolution transcoding of the uploaded video/live stream
- Add ability to delete a specific video file in videos overview
- Display Last Login column by default in users overview
- Remember last selected columns in users overview
- Add ability to set a custom video import timeout
- Add ability to set the default feed (Atom, RSS...) items count
- Admins and moderators now bypass API rate limits
- Add ability to list comments on local videos in comments overview
- Limit video import resolution depending on enabled VOD transcoding resolutions
- Store and display the uploaded video original filename #4885
- Add Total views in the my channels list #5007
- Add Original Publication Date video sort option #4959
- Performance:
- Optimized view/watching endpoint
- Optimized video feed SQL query
- Process images (resize, convert...) in a dedicated worker thread
- Optimized emoji markup list rendering in client
- Use a worker thread to send ActivityPub Broadcast requests
- Suffix external auth username/channel name on conflict instead of throwing an exception
Bug fixes
- Fix users overview Last login sort in admin
- More robust move to object storage job failure
- Fix comment add avatar with a unauthenticated user
- Fix fetching unlisted video in client
- Fix comments/download enabled attributes when importing a video
- Fix total instance views stats
- Fix HLS player infinite buffering on seek
- Reset table pagination on search
- Host search filter can also search into channels and playlists in global search
- Fix My videos invalid counter
- Prevent error on highlighted thread
- Fix Jobs, Account blocklist and Server blocklist hidden columns on Safari
- Fix live stream max bitrate
- Fix incompatibility with OpenSSL 3
- Don't crash on redis connection error
- Transcoding:
- Fix failed transcoding with a mp3 file that contains a cover image
- Prevent duplicated HLS playlist when running transcoding
- Regenerate video file names when running transcoding manually
- Prevent job failures resulting in broken videos on concurrent transcoding
- Fix transcoding of videos with quad audio channels
- ActivityPub
- Fix random invalid HTTP signature generation
- Use unique AP id for Accept/Reject activities
- Correctly handle remote actors that don't have follow counters
- Correctly handle unknown remote actor image size
- Add years in graph legend when grouping video views stats by month
- Prevent creating multiple lives when clicking multiple times on the "Go Live" button
- Fix *undefined" resolution in player Stats for nerds
- Fix not displayed error message in administrator web config
- More robust S3 upload #5231
- Fix broken saved live stream with only one resolution
- Fix
removeEventListener
player embed api
v4.2.2
IMPORTANT NOTES
- If you upgrade from PeerTube < 4.2.0, please follow 4.2.0 IMPORTANT NOTES
SECURITY
- Upgrade vulnerable server dependencies
Bug fixes
- Fix fast restream in permanent live
- Fix latency mode setting when creating a live
- Fix unique constraint tag violation when importing videos
- Fix latest live sessions order
- Fix server crash feed when accessing feeds that contains a live
- Fix
false
boolean attribute (data-is-live
etc) in custom markup
v4.2.1
IMPORTANT NOTES
- If you upgrade from PeerTube < 4.2.0, please follow 4.2.0 IMPORTANT NOTES
Bug fixes
- Fix live ending job that breaks new live session
- Fix search filters counter
- Fix upload banner icon margin
- Fix button icon margin
- Fix my import expander icon that should only be displayed on import error
- Fix select components styling inconsistency
- Increase max watch section to avoid too much warnings in server
- Optimize broadcast job creation
- Optimize
View
activities delivery using a dedicated broadcast job queue that can be run in parallel - Fix video selection buttons placement
- Fix searching into account blocklist
- Fix incorrect instance stats
- Fix broken player on ICE error
- Relax views federation
- Fix peertube user in docker
- Fix playlist element federation with a deleted video
v4.2.0
IMPORTANT NOTES
- Important You need to execute manually a migration script (can be executed after your upgrade, while your PeerTube instance is running) to generate smaller avatar miniatures:
- 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-4.2.js
- Docker installation:
cd /var/www/peertube-docker && docker-compose exec -u peertube peertube node dist/scripts/migrations/peertube-4.2.js
- Classic installation:
- Important SQL migrations (in particular
0685-multiple-actor-images
) can take several minutes to complete - Important You must update your nginx configuration to support video web editor: https://docs.joinpeertube.org/install-any-os?id=nginx
- REST API:
PUT /api/v1/videos/{id}/watching
is deprecated, usePOST /api/v1/videos/videos/{id}/views
instead: https://docs.joinpeertube.org/api-rest-reference.html#operation/addView
Maintenance
- Add
client.videos.resumable_upload.max_chunk_size
config option #4857 - Add
object_storage.upload_acl
config option #4861 - Add ability to set RTMP/RTMPS listening hostname using
rtmp.hostname
/rtmps.hostname
and public RTMP/RTMPS hostname usingrtmp.public_hostname
/rtmps.public_hostname
- Removed
best
default trending algorithm. It is automatically used if usinghot
algorithm with a logged in user
Docker
- Use NodeJS 16 in PeerTube docker image: administrators may have to reinstall PeerTube plugins that use native NodeJS dependencies
- Support readonly tmp directory (if you want to use
tmp
directory as a volume)
Plugins/Themes/Embed API
- Theme:
- Add
--mainBackgroundHoverColor
and--greySecondaryBackgroundColor
CSS variables
- Add
- Add server plugin hooks
filter:api.video-playlist.videos.list.params
andfilter:api.video-playlist.videos.list.result
- Support
getSettings()
,isLoggedIn()
andgetAuthHeader()
client plugin helpers in embed - Player URL query parameters:
- Support
controlBar=0
to hide player control bar. See the documentation for more information
- Support
Features
- 🎉 Add video edition from the PeerTube web interface 🎉
- Cut the video (set a new start/new end)
- Add an intro at the beginning and/or an outro at the end of the video
- Add an icon/watermark in the top right corner of the video
- PeerTube will automatically transcode the new video and replace the original one
- ✨ Funded by "la Direction du numérique du Ministère de l'Éducation Nationale, de la Jeunesse et des Sports" ✨
- 🎉 Add advanced statistics of a specific video 🎉
- Provide Average watch time, Total watch time and Peak viewers video statistics
- Display total viewers, aggregated watch time and audience retention in interactive time series graphs
- Display viewer countries in bar chart if not disabled by admins
- ✨ Funded by HowlRound Theatre Commons at Emerson College ✨
- 🎉 Add latency setting support for lives (small latency without P2P or high latency to increase P2P ratio) 🎉
- 🎉 Add ability to save a replay of every streaming session of a permanent live 🎉
- ✨ Funded by HowlRound Theatre Commons at Emerson College ✨
- Add simple subtitle edition from video captions tab in video edition form #4666
- Display live streaming sessions details in permanent live information modal
- Add ability to also mute users when banning them #4660
- UI improvements:
- Add Persian locale support
- Add previous page redirection support on external auth login
- Support proxy for object storage #4973
- Add "Only display embed URL" checkbox in share modal
Bug fixes
- Video uploads fixes:
- Fix invalid token during long uploads
- Fix upload on server with a slow disk
- Fix upload of some videos with unknown duration (
.m2v
for example) - Fix 2 hours limit on uploads
- Fix upload page title #4904
- Fix video upload with some characters in filename
- Fix
.ac3
and.mts
upload on some OS
- Fix avatar with account username starting with a number
- Fix client html cache on theme update
- Disallow unlisted video indexation
- Allow oembed to fetch unlisted videos
- Stop removing remote Mastodon rates
- Fix email links displayed twice in text version
- Fix user quota inconsistencies in admin when users use lives
- Fix admin instance following list when sorting by Redundancy allowed
- More reliable object storage upload when using multipart #4903
- Correctly handle HTTP signature draft 11 requests (without
date
header but with(created)
) - Fix
ctrl + 0-9
player hotkeys conflicting with web browser hotkeys