Skip to content

Releases: Chocobozzz/PeerTube

v7.1.0-rc.1

04 Mar 13:56
v7.1.0-rc.1
eba4d4a
Compare
Choose a tag to compare
v7.1.0-rc.1 Pre-release
Pre-release

IMPORTANT NOTES

  • Remove NodeJS 18 support. Please upgrade to NodeJS 20 before upgrading PeerTube
  • Due to a bug in the remote video thumbnail update, we recommend running the prune storage script to clean up the filesystem
  • Let's encrypt is removing OCSP support in 2025, so remove SSL stapling from your nginx configuration: 0abaaa8
  • Safari desktop versions < 14 are not supported anymore

Plugins/Themes/Embed API

  • Add server plugin hooks:
    • filter:oauth.password-grant.get-user.params #6752
    • filter:api.email-verification.ask-send-verify-email.body #6752
    • filter:api.users.ask-reset-password.body #6752
  • Call action:api.user.deleted server hook when users delete their own account #6860
  • Add client plugin support for external links in the left menu #6784
  • Add new client scopes: admin-users, admin-comments and moderation #6692
  • Add client plugin hooks #6692:
    • filter:internal.player.p2p-media-loader.options.result
    • filter:admin-users-list.bulk-actions.create.result
    • filter:admin-video-comments-list.actions.create.result
    • filter:admin-video-comments-list.bulk-actions.create.result
    • filter:user-moderation.actions.create.result
    • filter:admin-abuse-list.actions.create.result
  • Introduce a new client API to run actions (reload the user table, reload video comments, etc.): https://docs.joinpeertube.org/contribute/plugins#run-actions

Docker

  • Add the ability to specify peertube UID and GID via environment variables #6809
  • Fix RTMPS port non exposed by the Docker container

NGINX

  • Remove SSL stapling: 0abaaa8
  • Support RSS feed gzip compression: 70dae47

Maintenance

  • Remove WebTorrent redundancy support (HLS redundancy is still supported). It hasn't been used in the player for several major versions, so there's no point in continuing to store these video files
  • Upgrade p2p-media-loader to v2
  • Reduce logging on object storage request error
  • Introduce npm run install-node-dependencies to install PeerTube yarn dependencies, so we can easily migrate from yarn in the future
  • Increase image max upload size from 4MB to 8MB

Configuration

  • Add SepiaSearch URL as default search index. Global search is still disabled by default

Features

  • 🎉 Redesign About Platform, About PeerTube and About Network pages 🎉
  • Highlight author host in video miniature using a new dropdown component that explains where the content is coming from
  • Add ability to put video captions in object storage
  • Add ability for Mastodon to verify PeerTube links
  • Enable viewer protocol V2 for better concurrent viewer scalability
  • Add ability for admins to set the default player auto play behaviour #6167
  • Improve notification label when a subscription is live streaming
  • Add Open in mobile app button when opening the website using a mobile device (can be disabled in the configuration)
  • Login, email verification and password reset use a case-insensitive email if they can #6648
  • REST API:
    • Add host filter to list videos endpoints
    • Add channelUpdatedAt sort option to list subscriptions endpoint
    • Add playlistUrl metadata to HLS video file JSON representation
    • Add typeOneOf filter to list notifications endpoint
  • Support host filter attribute to <peertube-videos-list> custom markup element
  • Prefer short UUID for embed URLs
  • Add RSS feed discovery in HTML head tag
  • Improve channel podcast feed:
    • Add missing tags so it's now possible to submit the feed to Apple Podcast
    • Use the audio file as default enclosure if possible
    • Use the download video file link to generate files that can be easily played by podcast applications
  • Add video public link to ActivityPub representation to fix federation discoverability issue with short video URL (Akkoma, Sharkey, etc.)
  • Increase search bar width on big screens
  • Add ugc to <a> rel attribute to HTML generated by users

Bug fixes

  • Fix chapter marker click precision on long videos
  • Fix HTTP signature key ID
  • Fix auto block list link in notification email
  • Add missing localization for admin plugin menu entries
  • Fix running transcoding on videos that only contain an audio resolution
  • Fix theme colors in embed and chapter markers visibility
  • Correctly delete remote thumbnails/previews on update
  • Don't mark video as transcoded before the audio is available
  • Fix adding an intro/outro on videos with split HLS streams
  • Various UI inconsistencies/new theme/contrast fixes
  • Fix live ending when using remote runners
  • Fix selecting an entry in a select box after a search
  • More robust live handler on invalid ffprobe
  • Respect original frame rate of input file, as stated in max FPS configuration documentation
  • Don't crash on GeoIP download problem
  • Fix desynchronized audio/video on live replay
  • Fix player portrait mode
  • Fix instance name link width in header
  • Fix modal text align on mobile
  • Fix select and tags height consistency
  • Fix notification loading icon
  • Fix channel lazy loading in search results

v7.0.1

06 Jan 09:43
v7.0.1
8e8d9f9
Compare
Choose a tag to compare

Features

  • Update translations

Bug fixes

  • Fix banner/avatar edit buttons
  • Fix banner margin in channels page
  • Textarea font size consistency
  • Fix subscribe button radius
  • Fix channel avatar info username
  • Fix maximized markdown textarea
  • Remove confusing channel message in My playlists pages
  • Fix broken infinite scroll when deleting items (Videos, Channels...)
  • Fix broadcast message overflow
  • Fix adding videos in playlist from discover page
  • Fix my videos edit/delete buttons display
  • Fix header components overflow in admin log page

v7.0.0

17 Dec 08:29
v7.0.0
401fce6
Compare
Choose a tag to compare

IMPORTANT NOTES

  • Classic install only (for Docker admins see v6.3 IMPORTANT NOTES) Ensure you have storage.original_video_files set in your configuration file: https://github.com/Chocobozzz/PeerTube/blob/develop/config/production.yaml.example#L159.
    If you did not configure this key but have already enabled "Keep a version of the input file" configuration, original files may have been saved in versions/peertube-v6.x.x/storage/original-video-files/ directories. If this is the case, you must move these files in the new directory location specified by your storage.original_video_files configuration
  • Safari desktop versions < 13 are not supported anymore
  • iOS versions < 14.5 are not supported anymore
  • PeerTube instance requires python >= 3.8 for transcription

Docker

  • Fix private IPv6 subnet (we used a subnet reserved for examples)

Plugins/Themes/Embed API

  • Remove client plugin hooks: filter:api.recently-added-videos.videos.list.{params,result}, filter:api.local-videos.videos.list.{params,result}, filter:api.trending-videos.videos.list.{params,result} filter:api.trending-videos.videos.list.result in favour of filter:api.browse-videos.videos.list.{params,result}
  • Header logo doesn't have the .icon class anymore (it still has the icon-logo class)
  • All CSS variables have been replaced so it's easier to theme PeerTube:

Admin config (non-exhaustive)

  • Ensure instance.default_client_route (in web admin -> Configuration -> Basic -> Landing page) has a correct path: /videos/trending, /videos/local and /videos/recently-added have been removed in favour of /videos/browse
  • Add ability to configure STUN servers IPs: webrtc.stun_servers
  • Remove client.videos.miniature.display_author_avatar config: author avatars are now always displayed

Features

  • 🎉 Global client redesign 🎉
    • Introduce a new Light/Beige theme that replaces the current one (black/orange)
    • Add a Dark/Brown theme directly in PeerTube core
    • Split My library pages into:
      • Video Space pages (that contains account channels, videos...)
      • My library pages (that contains account playlists, subscriptions...)
    • Split Administration pages into:
      • Overview pages (to list instance users, videos...)
      • Moderation pages (to list abuses, blocks, registrations...)
      • Settings pages (instance configuration, list runners...)
    • Reorganize the header and the left menu:
      • Account settings and notifications are now in the header
      • Add instance name and description in the left menu for anonymous users
    • Merge Recently Added and Trending and Local videos videos pages into a Browse videos page that includes quick filters
    • Improve Discover videos page UX
    • Redesign the left menu, the horizontal menus, form controls, buttons and video filters panel
    • Replace/remove/add some icons
  • 🎉 Introduce a modal to easily add/edit/remove subtitle segments 🎉
  • Improve accessibility:
    • Fix contrast issues
    • Add missing labels
    • Fix progress bar, custom select components, tag input components, notification component accessibility
    • Add underlining to links
    • Add "skip menu" links
    • Improve keyboard navigation
    • Fix various screen readers issues
  • Add Slovakian language support to the client
  • SEO:
    • Add instance avatar to OpenGraph tags
    • Hide empty accounts/channels from sitemap #6633
    • Inject additional video tags to sitemap #6633
  • Various UX improvements:
    • Improve player control bar responsive
    • Add refresh button to following list
    • Clearer signup limit label
    • Add 0.25 playback rate in player

Bug fixes

  • Fix My channel search
  • Fix channel sync edition/listing
  • Fix adding video tags on Android
  • Fix fetching client comment URL using ActivityPub resolver (Mastodon search bar...)
  • Fix crash when logging SQL requests and enabled prettify option
  • Correctly delete web videos with hls without audio
  • Fix auto blacklisting unlisted videos
  • Fix ERR_BUFFER_OUT_OF_BOUNDS error on some node version
  • Add ability to set max channel sync in admin config
  • Allow plugins to pass client params when listing videos (filter:api.browse-videos.videos.list.params hook)
  • Respect user export expiration admin configuration
  • Fix studio edition on an audio only file
  • Fix embed crash on telegram web browser

v7.0.0-rc.1

27 Nov 12:47
v7.0.0-rc.1
c4c6d43
Compare
Choose a tag to compare
v7.0.0-rc.1 Pre-release
Pre-release

IMPORTANT NOTES

  • Ensure you have storage.original_video_files set in your configuration file: https://github.com/Chocobozzz/PeerTube/blob/develop/config/production.yaml.example#L159.
    If you did not configure this key but have already enabled "Keep a version of the input file" configuration, original files may have been saved in versions/peertube-v6.x.x/storage/original-video-files/ directories. If this is the case, you must move these files in the new directory location specified by your storage.original_video_files configuration
  • Safari desktop versions < 13 are not supported anymore
  • iOS versions < 14.5 are not supported anymore
  • PeerTube instance requires python >= 3.8 for transcription

Docker

  • Fix private IPv6 subnet (we used a subnet reserved for examples)

Plugins/Themes/Embed API

  • Remove client plugin hooks: filter:api.recently-added-videos.videos.list.{params,result}, filter:api.local-videos.videos.list.{params,result}, filter:api.trending-videos.videos.list.{params,result} filter:api.trending-videos.videos.list.result in favour of filter:api.browse-videos.videos.list.{params,result}
  • Header logo doesn't have the .icon class anymore (it still has the icon-logo class)
  • All CSS variables have been replaced so it's easier to theme PeerTube:

Admin config (non-exhaustive)

  • Add ability to configure STUN servers IPs: webrtc.stun_servers
  • Remove client.videos.miniature.display_author_avatar config: author avatars are now always displayed

Features

  • 🎉 Global client redesign 🎉
    • Introduce a new Light/Beige theme that replaces the current one (black/orange)
    • Add a Dark/Brown theme directly in PeerTube core
    • Split My library pages into:
      • Video Space pages (that contains account channels, videos...)
      • My library pages (that contains account playlists, subscriptions...)
    • Split Administration pages into:
      • Overview pages (to list instance users, videos...)
      • Moderation pages (to list abuses, blocks, registrations...)
      • Settings pages (instance configuration, list runners...)
    • Reorganize the header and the left menu:
      • Account settings and notifications are now in the header
      • Add instance name and description in the left menu for anonymous users
    • Merge Recently Added and Trending and Local videos videos pages into a Browse videos page that includes quick filters
    • Improve Discover videos page UX
    • Redesign the left menu, the horizontal menus, form controls, buttons and video filters panel
    • Replace/remove/add some icons
  • 🎉 Introduce a modal to easily add/edit/remove subtitle segments 🎉
  • Improve accessibility:
    • Fix contrast issues
    • Add missing labels
    • Fix progress bar, custom select components, tag input components, notification component accessibility
    • Add underlining to links
    • Add "skip menu" links
    • Improve keyboard navigation
    • Fix various screen readers issues
  • SEO:
    • Add instance avatar to OpenGraph tags
    • Hide empty accounts/channels from sitemap #6633
    • Inject additional video tags to sitemap #6633
  • Various UX improvements:
    • Improve player control bar responsive
    • Add refresh button to following list
    • Clearer signup limit label

Bug fixes

  • Fix My channel search
  • Fix channel sync edition/listing
  • Fix adding video tags on Android
  • Fix fetching client comment URL using ActivityPub resolver (Mastodon search bar...)
  • Fix crash when logging SQL requests and enabled prettify option
  • Correctly delete web videos with hls without audio
  • Fix auto blacklisting unlisted videos
  • Fix ERR_BUFFER_OUT_OF_BOUNDS error on some node version
  • Add ability to set max channel sync in admin config

v6.3.3

30 Oct 07:01
v6.3.3
c4acd92
Compare
Choose a tag to compare

Bug fixes

  • Fix broken thumbnails on live replay
  • Fix detecting portrait rotation of some video
  • Don't allow to select a frame from a live to set the thumbnail
  • Fix lost video stream with specific transcoding settings and video input
  • Fix creating playlist without thumbnail when using the REST API
  • Fix .mov video upload on some Windows versions
  • Fix video-plugin-metadata.result client plugin hook

v6.3.2

08 Oct 05:14
v6.3.2
c9856e7
Compare
Choose a tag to compare

Bug fixes

  • Fix 403 error when downloading private/internal video
  • Don't crash video federation and live replay generation on missing thumbnail/preview
  • Fix advanced search input with multiple automatic search tokens
  • Fix player "Copy URL" when the video is fullscreen
  • Fix account videos search
  • Add missing max transcoding fps config in admin
  • Don't add mobile buttons if the player controls are disabled

v6.3.1

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