Skip to content

Releases: Chocobozzz/PeerTube

v6.3.1

25 Sep 12:41
v6.3.1
6116c1c
Compare
Choose a tag to compare

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

18 Sep 08:19
v6.3.0
606493f
Compare
Choose a tag to compare

IMPORTANT NOTES

  • Important You need to manually execute a migration script after your upgrade while PeerTube is running and the database migration is complete (Migrations finished. New migration version schema: 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
  • 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 to peertube.networks.default key
    • Update network top level key content

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 display 1080p instead of 816p
  • 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

06 Sep 08:44
v6.3.0-rc.1
d12e074
Compare
Choose a tag to compare
v6.3.0-rc.1 Pre-release
Pre-release

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

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 display 1080p instead of 816p
  • 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

01 Aug 08:27
v6.2.1
17cd564
Compare
Choose a tag to compare

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 to Private and then Private to Public 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

16 Jul 07:08
v6.2.0
3d4d49a
Compare
Choose a tag to compare

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

03 Jul 07:40
v6.2.0-rc.1
fb5236f
Compare
Choose a tag to compare
v6.2.0-rc.1 Pre-release
Pre-release

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.1.0

29 Apr 07:42
v6.1.0
46b45dc
Compare
Choose a tag to compare

IMPORTANT NOTES

  • You must update nginx configuration: https://github.com/Chocobozzz/PeerTube/blob/develop/support/nginx/peertube
    • Add location ~ ^/api/v1/users/[^/]+/imports/import-resumable$ { block
  • This release changes the way how PeerTube counts a video view:
    • Views are taken into account after 10 seconds instead of 30 seconds (can be changed in YAML config)
    • Views use a Session ID generated by the web browser instead of using the request IP (former behavior can be restored in YAML config)
    • The goal of this change is to get closer to how other video platforms like Mux, Vimeo, or Instagram work

SECURITY

  • Compact ActivityPub JSON-LD objects before using them to prevent incorrect access control @tesaguri
  • Protect ActivityPub information related to private/internal/blocked videos

Admin config (non-exhaustive)

  • Breaking changes:
    • Rename views.videos.ip_view_expiration to views.videos.view_expiration
  • YAML & web admin configs:
    • Add storyboards.enabled config to disable storyboard generation
    • Remove services.twitter.whitelisted: Twitter/X doesn't seem to need this anymore. This means that PeerTube will try to inject the video player in Twitter/X by default instead of using a classic image/description
  • YAML config only:
    • Add open_telemetry.metrics.playback_stats_interval config to customize how often viewers send playback stats to server
    • Add views.videos.watching_interval.{anonymous,users} configs to change how often the web browser sends "is watching" information to the server
    • Add stats.registration_requests.enabled and stats.abuses.enabled configs to hide instance registration/abuse requests public stats (average response time, total registration/abuse requests etc.)
    • Add stats.total_moderators.enabled and stats.total_admins.enabledconfigs to hide total admins/moderators public stats
    • Add object_storage.streaming_playlists.store_live_streams config to not store live stream chunks into object storage (when enabled for streaming playlists)
    • Set open_telemetry.metrics.http_request_duration.enabled to false by default to avoid performance issues on the Prometheus backend due to high metric cardinality

Maintenance

  • Also generate 600x600 and 1500x1500 avatar sizes
  • Also generate 600x100 banner size

Plugins/Themes/Embed API

Features

  • 🎉 Implement user import/export 🎉 #6215
    • This is not a migration tool: data (like channels or videos) is duplicated and not moved from the previous PeerTube instance
    • Export:
      • A ZIP is generated by PeerTube and an email is sent to the user when the archive is ready
      • The archive file contains ActivityPub data for federation compatibility and custom JSON files used by PeerTube import. It also contains video/playlist thumbnail and channel/account avatar/banner files
      • User can include video files in the archive
      • Archive files can be stored in object storage
      • Export can be disabled by the admin. They can also set an expiration time to automatically delete archive files and limit the export file size depending on the user's video quota
    • Import:
      • Update account metadata (display name, description...)
      • Update user settings (video autoplay policy, notification settings...)
      • Create entries in the mute list
      • Add watched videos in user's videos history
        Add likes/dislikes
      • Send a follow request to imported subscriptions
      • Create channels, playlists and videos (if the video files are included in the archive)
      • Admins can disable user import
  • 🎉 Add ability to keep the original video file 🎉 #6157
    • Can be stored in object storage
    • Uploader can download the original file
    • The original file is used in the user export archive (instead of the max quality file)
  • Add Turkish language support in client
  • Add ability for admins to set a banner and an avatar to the instance. The banner is used in About instance/Login/Register an account pages. Both the banner and the avatar can be used on the instance homepage using <peertube-instance-banner>/<peertube-instance-avatar> tag or on external websites/applications like the JoinPeerTube website
  • Add ability for uploaders to download and add a video to a playlist on the My videos page using the dropdown button #6008
  • Video views statistics:
    • Count a view after 10 seconds and use a web browser session id to identify a viewer (see IMPORTANT CHANGES section)
    • Add information about the location of the viewer subdivision/region
    • More accurate retention stats where PeerTube doesn't take into account empty views anymore
  • UI/UX:
    • Automatically filter on Local videos in admin
    • Add ability to sort videos by file size
    • Add total video file size column in admin users list
    • Improve admin runner jobs list by using badges with same colors for type/runner and add processed/finished columns
    • Add Recommended tags to recommended PeerTube plugins/themes
    • Improve plugins/themes default trending sort
    • Trim username on login
    • Warn if "Forgot password" email contains uppercase
    • Use more precise buttons label to save changes in My account settings
    • Add icon to owners/moderators only options
    • Always use short UUIDs instead of full UUIDs in client to prevent URL confusion
    • Add average admins/moderators response time in Request an account page
    • Add color to registration/abuse state icon
  • Player:
    • Add an enable/disable subtitle button to the control bar
    • Faster auto-resizing of the player when the video has a custom aspect ratio (only for videos uploaded on PeerTube >= 6.1)
    • Use video aspect ratio for responsive embeds (only for videos uploaded on PeerTube >= 6.1)
  • Performance:
    • Optimize watching (/api/v1/videos/:videoId/views) endpoint
    • Reduce ffprobe calls when not needed resulting in faster live stream transcoding startup and CPU/IO reduction during video upload/import
  • Federation
    • Introduce a new way to federate Views events in the federation. See the commit details for more information
    • Implements FEP-2677 to identify the Application Actor
    • Add Lemmy postingRestrictedToMods information to channels AP objects
  • Improve generated video thumbnail quality
  • Add notification when a subscribed video channel is live streaming
  • Support itunes:owner in podcast feed

Bug fixes

  • Add stripes to square video thumbnails too (like we do for portrait videos)
  • Prevent channels from being displayed multiple times on the My channels page
  • Stricter video timestamp "linkification"
  • Correctly fix downloading video files from object storage with some video names
  • Fix broken RSS feed in some (rare) cases
  • Fix local jobs count/pagination with Waiting jobs
  • Banned users cannot live stream anymore
  • Correctly escape HTML entities in meta tags #6206
  • Fix broken account channels page with high video_channels.max_per_user config
  • Add ability for moderators to approve/reject user registrations
  • Do not display empty notification settings group
  • Correctly fix WebTorrent video import crash
  • Fix video channel synchronization crash on remote channels/playlists that contain hidden videos (unavailable, deleted etc.)
  • Ensure the filename doesn't contain / character when downloading a video
  • Fix Google Search SEO (with Video is not the main content of the page error)
  • Remove password autocomplete in embed which causes issues when the parent page has a password input and the user uses the web browser's password autofill feature
  • Don't submit the login form on forgot my password keyboard click
  • Fix storyboard generation with some videos
  • Fix ffmpeg encoder after custom plugin transcoding profile deletion
  • Fix navigating from one channel related page (playlist, videos...) to another one
  • More robust live stream transcoded by a remote runner
  • Fix first video in playlist that doesn't start at "starts at"
  • Fix embed HTML code for videos/playlists that have passwords
  • Display external account/channel playlists if user is allowed to escape the federation
  • Fix view endpoint crash on geoip update failure
  • Fix setting video subtitle from URL query
  • Fix selecting "Display all languages/categories/licences" in videos search resulting in an empty search
  • Fix followers/following counter of local ActivityPub actors
  • Fix notification button link on mobile
  • Fix player subtitles on iOS

v6.1.0-rc.1

16 Apr 12:54
v6.1.0-rc.1
8e30e1f
Compare
Choose a tag to compare
v6.1.0-rc.1 Pre-release
Pre-release

IMPORTANT NOTES

  • You must update nginx configuration: https://github.com/Chocobozzz/PeerTube/blob/develop/support/nginx/peertube
    • Add location ~ ^/api/v1/users/[^/]+/imports/import-resumable$ { block
  • This release changes the way how PeerTube counts a video view:
    • Views are taken into account after 10 seconds instead of 30 seconds (can be changed in YAML config)
    • Views use a Session ID generated by the web browser instead of using the request IP (former behavior can be restored in YAML config)
    • The goal of this change is to get closer to how other video platforms like Mux, Vimeo, or Instagram work

Admin config (non-exhaustive)

  • Breaking changes:
    • Rename views.videos.ip_view_expiration to views.videos.view_expiration
  • YAML & web admin configs:
    • Add storyboards.enabled config to disable storyboard generation
    • Remove services.twitter.whitelisted: Twitter/X doesn't seem to need this anymore. This means that PeerTube will try to inject the video player in Twitter/X by default instead of using a classic image/description
  • YAML config only:
    • Add open_telemetry.metrics.playback_stats_interval config to customize how often viewers send playback stats to server
    • Add views.videos.watching_interval.{anonymous,users} configs to change how often the web browser sends "is watching" information to the server
    • Add stats.registration_requests.enabled and stats.abuses.enabled configs to hide instance registration/abuse requests public stats (average response time, total registration/abuse requests etc.)
    • Add stats.total_moderators.enabled and stats.total_admins.enabledconfigs to hide total admins/moderators public stats
    • Add object_storage.streaming_playlists.store_live_streams config to not store live stream chunks into object storage (when enabled for streaming playlists)
    • Set open_telemetry.metrics.http_request_duration.enabled to false by default to avoid performance issues on the Prometheus backend due to high metric cardinality

Maintenance

  • Also generate 600x600 and 1500x1500 avatar sizes
  • Also generate 600x100 banner size

Plugins/Themes/Embed API

Features

  • 🎉 Implement user import/export 🎉 #6215
    • This is not a migration tool: data (like channels or videos) is duplicated and not moved from the previous PeerTube instance
    • Export:
      • A ZIP is generated by PeerTube and an email is sent to the user when the archive is ready
      • The archive file contains ActivityPub data for federation compatibility and custom JSON files used by PeerTube import. It also contains video/playlist thumbnail and channel/account avatar/banner files
      • User can include video files in the archive
      • Archive files can be stored in object storage
      • Export can be disabled by the admin. They can also set an expiration time to automatically delete archive files and limit the export file size depending on the user's video quota
    • Import:
      • Update account metadata (display name, description...)
      • Update user settings (video autoplay policy, notification settings...)
      • Create entries in the mute list
      • Add watched videos in user's videos history
        Add likes/dislikes
      • Send a follow request to imported subscriptions
      • Create channels, playlists and videos (if the video files are included in the archive)
      • Admins can disable user import
  • 🎉 Add ability to keep the original video file 🎉 #6157
    • Can be stored in object storage
    • Uploader can download the original file
    • The original file is used in the user export archive (instead of the max quality file)
  • Add Turkish language support in client
  • Add ability for admins to set a banner and an avatar to the instance. The banner is used in About instance/Login/Register an account pages. Both the banner and the avatar can be used on the instance homepage using <peertube-instance-banner>/<peertube-instance-avatar> tag or on external websites/applications like the JoinPeerTube website
  • Add ability for uploaders to download and add a video to a playlist on the My videos page using the dropdown button #6008
  • Video views statistics:
    • Count a view after 10 seconds and use a web browser session id to identify a viewer (see IMPORTANT CHANGES section)
    • Add information about the location of the viewer subdivision/region
    • More accurate retention stats where PeerTube doesn't take into account empty views anymore
  • UI/UX:
    • Automatically filter on Local videos in admin
    • Add ability to sort videos by file size
    • Add total video file size column in admin users list
    • Improve admin runner jobs list by using badges with same colors for type/runner and add processed/finished columns
    • Add Recommended tags to recommended PeerTube plugins/themes
    • Improve plugins/themes default trending sort
    • Trim username on login
    • Warn if "Forgot password" email contains uppercase
    • Use more precise buttons label to save changes in My account settings
    • Add icon to owners/moderators only options
    • Always use short UUIDs instead of full UUIDs in client to prevent URL confusion
    • Add average admins/moderators response time in Request an account page
    • Add color to registration/abuse state icon
  • Player:
    • Add an enable/disable subtitle button to the control bar
    • Faster auto-resizing of the player when the video has a custom aspect ratio (only for videos uploaded on PeerTube >= 6.1)
    • Use video aspect ratio for responsive embeds (only for videos uploaded on PeerTube >= 6.1)
  • Performance:
    • Optimize watching (/api/v1/videos/:videoId/views) endpoint
    • Reduce ffprobe calls when not needed resulting in faster live stream transcoding startup and CPU/IO reduction during video upload/import
  • Federation
    • Introduce a new way to federate Views events in the federation. See the commit details for more information
    • Implements FEP-2677 to identify the Application Actor
    • Add Lemmy postingRestrictedToMods information to channels AP objects
  • Improve generated video thumbnail quality
  • Add notification when a subscribed video channel is live streaming
  • Support itunes:owner in podcast feed

Bug fixes

  • Add stripes to square video thumbnails too (like we do for portrait videos)
  • Prevent channels from being displayed multiple times on the My channels page
  • Stricter video timestamp "linkification"
  • Correctly fix downloading video files from object storage with some video names
  • Fix broken RSS feed in some (rare) cases
  • Fix local jobs count/pagination with Waiting jobs
  • Banned users cannot live stream anymore
  • Correctly escape HTML entities in meta tags #6206
  • Fix broken account channels page with high video_channels.max_per_user config
  • Add ability for moderators to approve/reject user registrations
  • Do not display empty notification settings group
  • Correctly fix WebTorrent video import crash
  • Fix video channel synchronization crash on remote channels/playlists that contain hidden videos (unavailable, deleted etc.)
  • Ensure the filename doesn't contain / character when downloading a video
  • Fix Google Search SEO (with Video is not the main content of the page error)
  • Remove password autocomplete in embed which causes issues when the parent page has a password input and the user uses the web browser's password autofill feature
  • Don't submit the login form on forgot my password keyboard click
  • Fix storyboard generation with some videos
  • Fix ffmpeg encoder after custom plugin transcoding profile deletion
  • Fix navigating from one channel related page (playlist, videos...) to another one
  • More robust live stream transcoded by a remote runner
  • Fix first video in playlist that doesn't start at "starts at"
  • Fix embed HTML code for videos/playlists that have passwords
  • Display external account/channel playlists if user is allowed to escape the federation
  • Fix view endpoint crash on geoip update failure
  • Fix setting video subtitle from URL query
  • Fix selecting "Display all languages/categories/licences" in videos search resulting in an empty search

v6.0.4

04 Apr 12:40
v6.0.4
db69b78
Compare
Choose a tag to compare

IMPORTANT NOTES

  • If you upgrade from PeerTube < v6.0.0, please follow v6.0.0 IMPORTANT NOTES
  • If you upgrade from PeerTube v6.0.0, please follow v6.0.1 IMPORTANT NOTES

SECURITY

v6.0.3

18 Jan 08:43
v6.0.3
01e4fd0
Compare
Choose a tag to compare

IMPORTANT NOTES

  • If you upgrade from PeerTube < v6.0.0, please follow v6.0.0 IMPORTANT NOTES
  • If you upgrade from PeerTube v6.0.0, please follow v6.0.1 IMPORTANT NOTES

SECURITY

  • Prevent nginx from serving private/internal/password protected HLS video static files
    • You must update your nginx configuration like in this commit (line 202 replace location ~ ^(/static/(webseed|web-videos|streaming-playlists)/private/)|^/download { by location ~ ^(/static/(webseed|web-videos|streaming-playlists/hls)/private/)|^/download {)

Bug fixes

  • Fix HTML meta tags with attributes that contain quotes
  • Fix time parsing resulting in broken video start time in some cases
  • Fix WebTorrent video import crash
  • Reload Discover page on logout
  • Fix privacy error when updating a live, even if the privacy has not changed
  • Fix invalid remote live state change notification that causes the player to reload
  • Don't apply big play button skin to settings menu
  • Fix downloading video files from object storage with some video names (that include emojis, quotes etc)
  • Fix thumbnail generation when ffmpeg cannot seek the input
  • Fix theme colors on stats page
  • Fix input mask (used for chapters, playlist timecodes...) with 10h+ videos
  • Fix chapter position width consistency
  • Fix player ratio with audio only videos
  • Also update video playlist URLs when using update-host script
  • Fix upload/import/update of videos that contain multiple chapters with the same timecode