PeerTube Versions Save

ActivityPub-federated video streaming platform using P2P directly in your web browser

v5.2.0-rc.1

10 months ago

IMPORTANT NOTES

Maintenance

  • Remove npm run create-transcoding-job and npm run print-transcode-command unmaintained scripts
  • Add Redis sentinel support #5593
  • Improve upgrade script (used when you will upgrade from PeerTube 5.2 to its next version) for classic installation:
    • Automatically generate a config/production.yaml.new file after the upgrade, which is the fusion between the new PeerTube configuration keys and your current production.yaml. After a review you can replace your old config/production.yaml with this new file so you don't have to add new keys manually
    • Add ls option compatibility with FreeBSD #5785

Docker

  • Make database name configurable using env variable #5734

Plugins/Themes/Embed API

  • Add filter:html.client.json-ld.result hook

Features

Bug fixes

  • Fix live stream object storage sync resulting in broken playback on iOS after a few minutes
  • Correctly proxify HTTP 206 content-range header from object storage #5703
  • Filter out already watched videos from recommended videos #5739
  • Prevent exception when HTTP headers are already sent
  • Fix remote instance following/followers links in about page
  • Prevent error when updating a running live stream if the privacy hasn't changed
  • Prevent crash on plugin websocket error
  • Don't call register/unregister plugin API when installing/uninstalling plugins using script/plugin scripts (offline mode)
  • Fix error on missing plugin CSS file at PeerTube startup #5746
  • Prevent "invalid end watch section" server log warnings
  • Support remote subscribe with a handle starting with a @ character
  • Actor preferred username (account/channel handle) is now case insensitive
  • Fix RTL layout inconsistencies
  • Prevent user video notification when the subscription is still in Pending state
  • Correctly remove Pending subscription
  • Fix PeerTube subtitles import

v5.1.0

1 year ago

IMPORTANT NOTES

  • If your instance has signup enabled, user registration approval is automatically enabled by the default configuration of this release. You can change this setting in your production.yaml or in the configuration page in the web admin
  • 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
  • Deprecate NodeJS 14: support will be removed in the next release (PeerTube 5.2)

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

Docker

  • Add env variables to configure object storage

Documentation

Plugins/Themes/Embed API

  • Add ability to set playbackRate in URL (watch page and embed) #5486
  • Auth plugins:
  • Server plugin hooks (https://docs.joinpeertube.org/api/plugins):
    • Add filter:api.user.me.subscription-videos.list.params & filter:api.user.me.subscription-videos.list.result #5648
    • Add filter:activity-pub.activity.context.build.result to update ActivityPub JSON-LD context
    • Add filter:activity-pub.video.json-ld.build.result to update Video ActivityPub JSON-LD object
    • Add action:activity-pub.remote-video.created & action:activity-pub.remote-video.updated to react on remote video creation/update
  • Client plugin hooks (https://docs.joinpeertube.org/api/plugins):
    • Add action:video-edit.form.updated fired every time the video upload/import/live/update form values change
    • Add filter:video-watch.video-plugin-metadata.result to add custom video metadata in watch page
    • Existing action:video-edit.init hook now contains a updateForm attribute in options that you can use to update video upload/import/live/update form values
  • Add server plugin helpers:
    • getServerListeningConfig to get PeerTube listening configuration
  • Convert some colors to PeerTube CSS variables to improve theme compatibility

Features

  • :tada: 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:
    • Add option in video/playlist share modal to create a responsive embed #5690
    • Use 99+ instead of 99 when having more than 99 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
    • Improve/fix main pages keyboard navigation
  • Custom markup:
    • Support mailto links
    • Support short UUID to fetch a video
  • 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:
    • Fix live buffering with small latency setting
    • 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
    • Fix saving last video current time for anonymous users
    • Fix player keyboard shortcuts for non latin keyboards #5684
  • 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
    • Fix confirmation modal that contains 2 text inputs
  • 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
  • Fix listing all my channels in My library
  • Fix displaying remote avatars
  • Fix 404 HTTP code in watch page when having ;threadId param in URL
  • Correctly re-inject video file token in .m3u8 resolution playlists to fetch private mp4 video file #5677
  • Don't process live when moving videos to external storage
  • Handle Redis disconnection gracefully #5599

v5.1.0-rc.1

1 year ago

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

Plugins/Themes/Embed API

  • Add ability to set playbackRate in URL (watch page and embed) #5486
  • Auth plugins:
  • 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

  • :tada: 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 of 99 when having more than 99 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
  • Custom markup:
    • Support mailto links
    • Support short UUID to fetch a video
  • 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

1 year ago

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

1 year ago

IMPORTANT NOTES

Documentation

Maintenance

  • REST API breaking change:
    • role is now role.id and roleLabel is role.label in user response
    • We now store the complete remote video description:
      • Deprecate description in favour of truncatedDescription when listing videos
      • Complete description is sent by the server in description when getting a specific video
      • Deprecate /api/v1/videos/:id/description endpoint
  • 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

CLI tools

  • Add ability to install alpha/beta/rc plugin versions

Features

  • :tada: Support object storage for live streams :tada:
  • :tada: Support Two Factor authentication (OTP) :tada:
  • 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

1 year ago

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 in videos/ and streaming-playlists/ directories
      • Nginx doesn't serve these private files anymore, the requests are forwarded to PeerTube that will check authentication
    • 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
  • 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
  • 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

Documentation

Maintenance

  • REST API breaking change:
    • role is now role.id and roleLabel is role.label in user response
    • We now store the complete remote video description:
      • Deprecate description in favour of truncatedDescription when listing videos
      • Complete description is sent by the server in description when getting a specific video
      • Deprecate /api/v1/videos/:id/description endpoint
  • 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

CLI tools

  • Add ability to install alpha/beta/rc plugin versions

Features

  • :tada: Support object storage for live streams :tada:
  • :tada: Support Two Factor authentication (OTP) :tada:
  • 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

1 year ago

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

1 year ago

IMPORTANT NOTES

  • Redis < 5.x is not supported anymore
  • FFmpeg < 4.3 is not supported anymore

Maintenance

  • Use yt-dlp by default instead of youtube-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
  • 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 #5098
    • action: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

  • :tada: Add ability for users to synchronize a remote channel #5135 :tada:
    • 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

1 year ago

Maintenance

  • Use yt-dlp by default instead of youtube-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
  • 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 #5098
    • action: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

  • :tada: Add ability for users to synchronize a remote channel #5135 :tada:
    • 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

1 year ago

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