Skip to content

Releases: Chocobozzz/PeerTube

v8.1.5

07 Apr 09:57
v8.1.5
3a5abc9

Choose a tag to compare

IMPORTANT NOTES

  • Follow v8.1.0 IMPORTANT NOTES if you upgrade from PeerTube <= v8.0.2

Bug fixes

  • Fix infinite loop when processing some GIF images
  • Correctly inject custom admin colors in dark theme
  • Fix broken player when loading the page in background

v8.1.4

31 Mar 06:59
v8.1.4
a316c9f

Choose a tag to compare

IMPORTANT NOTES

  • Follow v8.1.0 IMPORTANT NOTES if you upgrade from PeerTube <= v8.0.2

Bug fixes

  • Don't fetch too big image sizes for thumbnails
  • Prevent the player from crashing when the user quits the watch page
  • Prevent invalid start/end timecode when cutting the video in studio
  • Fix blocklist error when listing many users
  • Fix broken transcoding when remote runners is enabled

v8.1.3

19 Mar 07:37
v8.1.3
f83b4cc

Choose a tag to compare

IMPORTANT NOTES

  • Follow v8.1.0 IMPORTANT NOTES if you upgrade from PeerTube <= v8.0.2

SECURITY

  • Updates vulnerable dependencies

Bug fixes

  • Fix error 500 in home page if there are many channels
  • Prevent 500 error for podcast feed
  • Re-fetch remote videos if the thumbnail if not found
  • Handle non jpg remote thumbnails

v8.1.2

13 Mar 15:49
v8.1.2
0db8cd0

Choose a tag to compare

IMPORTANT NOTES

  • Follow v8.1.0 IMPORTANT NOTES if you upgrade from PeerTube <= v8.0.2

Bug fixes

  • Fix broken thumbnails on account page
  • Fix broken initial channel import
  • Fix broken root password generation

v8.1.1

11 Mar 09:56
v8.1.1
0d4d8bb

Choose a tag to compare

Blog post: https://joinpeertube.org/news/release-8.1

IMPORTANT NOTES

  • Follow v8.1.0 IMPORTANT NOTES if you upgrade from PeerTube <= v8.0.2

Bug fixes

  • Fix bad URL for objects stored in object storage
  • Fix broken actor avatar in "Discover" page

v8.1.0

11 Mar 08:21
v8.1.0
55f0e2f

Choose a tag to compare

Blog post: https://joinpeertube.org/news/release-8.1

IMPORTANT NOTES

  • You need to manually execute a migration script after upgrading, while PeerTube is running and the database migration is complete (Migrations finished. New migration version schema: 1000 in PeerTube startup logs):
    • 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-8.1.js
    • Docker installation: cd /var/www/peertube-docker && docker compose exec -u peertube peertube node dist/scripts/migrations/peertube-8.1.js
  • Running regenerate-thumbnails and prune-storage scripts after the upgrade and migration script is highly recommended
  • If you run PostgreSQL or Redis with TLS connection and self signed certificates, you must explicitly set reject_unauthorized to true or fill ca, cert and key settings in your production.yaml

Maintenance

  • Migrate to the sharp NodeJS dependency to process images. This is a native dependency that provides prebuilt binaries for most system.
    FreeBSD systems, however, require an additional step after PeerTube dependencies installation:
  • Merge the previews directory into the thumbnails directory. The migration script will automatically move files
    The previews directory and configuration are kept for compatibility reasons
  • The cache directory is no longer deleted at PeerTube startup, to keep files cached from the previous run

Configuration

This section is not exhaustive

  • Important Generate more thumbnail sizes for videos in thumbnails.sizes. We recommend admins apply the same settings
  • Update default object storage configuration to use different prefix values with the same bucket_name for each object type (web_videos, user_exports, etc.), so it is easier to add more object types in the future
  • Use the lucide player theme by default
  • import.videos.http.force_ipv4 is now true by default to reduce rate limiting on some platforms
  • Add On Primary color configuration (theme.customization.on_primary_color) to choose the foreground color when the background color is Primary

Docker

  • Add va-driver-all to the PeerTube Docker image #7346

Plugins/Themes/Embed/REST APIs

  • REST API:
    • Deprecate previewfile when publishing a video. Use thumbnailfile instead
    • Deprecate thumbnailPath and previewPath Video fields. Use the thumbnails array instead
    • Deprecate the thumbnailPath VideoPlaylist field. Use the thumbnails array instead
    • Remove unused fileUrl from UserExport and VideoSource
    • Deprecate /lazy-static/previews/:filename. Use /lazy-static/thumbnails/:filename instead
  • Server plugin hooks (https://docs.joinpeertube.org/api/plugins):
    • Add filter:feed.videos.list.result #7355
    • Replace torrentPath with torrentFilename and torrentStream for remote torrents in filter:api.download.torrent.allowed.result context

Features

  • 🎉 Allow uploaders to restrict domains where their video can be embedded 🎉
  • Add an admin config to ensure an optimized podcast audio file is transcoded
  • Support 3.0x playback speed for non-premium users 😁
  • Optimize transcoding job queue:
    • Do not wait for all transcoding tasks to publish the video
    • Do not wait for all transcoding tasks to move video files in object storage
    • Lower priority on low video resolutions to avoid blocking video publication during bursts of uploads
    • More transcoding job parallelization
  • More reliable channel sync:
    • Reduce youtube-dl calls to reduce rate limiting
    • Handle cases where the video is not available/doesn't exist
    • Handle lives that are still being post-processed
    • Stop sync on get video info failure to retry at the same point next time
  • UX:
    • Support raw hex colors in color picker input #7337
    • Group notifications by date
    • Display blocked video information on the video manage page
    • Add a loading icon when updating the video
    • Improve the error message when the user password is too long
    • Add g l hotkey to go to the login page
    • Add ability to display video language on the My Videos page (column is hidden by default)
  • Improve video SEO
  • Support png and webp video thumbnails
  • Support svg logos for admins
  • Better email notification when a subscribed channel published a video #7395
  • Add compatibility with ActivityPub FEP-1b12 (used by Lemmy, PieFed, Mbin...)
  • Introduce a new cache system for remote thumbnails, storyboards, captions, and actor avatars/banners
  • Support Redis TLS connections #7404
  • Support PostgreSQL TLS connections #7366
  • Support path style requests for object storage
  • Improve channel collaboration:
    • An editor can now move a video they can manage to a channel they can manage (owner/editor)
    • An editor can send a change ownership request for a video they can manage
    • Editors can add videos to playlists of collaborated channels
    • Add quick actions (Manage, Remove) to the video dropdown for editors too
  • Performance:
    • Create video file torrents in a worker thread
    • Optimize videos list SQL query with complex sort (trending, hot, etc.)
    • When possible, send raw files directly instead of muxing when downloading a video
  • Improve podcast feed images compatibility with Apple Podcast
  • Add ability to set the default "download enabled" policy in admin configuration

Bug fixes

  • Fix videos list inconsistencies when going back to that page
  • Do not display an empty details block in embed on error
  • Prevent incomplete segment reads for live streams #7333
  • Fix video download filename on Safari
  • Fix broken P2P when updating object storage base URL
  • Fix Redis sentinel support #7365
  • Correctly use header colors defined by the admin
  • Fix broken transcoding on remote runner when split video/audio is enabled
  • Fix server config not refreshing after admin settings save #7413
  • Prevent exception when the account is not loaded yet in the user moderation dropdown
  • Prevent black borders when embedding a video
  • Fix default scope defined by the admin when browsing videos
  • Force transcoding even if the video state is not compatible
  • Fix broken video studio task when updating video privacy at the same time
  • Reset selected rows when loading data in tables
  • Take into account channel owner video quota when an editor publishes a video to a collaborated channel
  • Fix watching a password protected video as an editor
  • Fix video metadata in filter:api.video.upload.accept.result context
  • Correctly take into account the user language filter when browsing videos
  • Fix .ts video file upload #7458
  • Fix .mkv video file upload on latest Chrome
  • Fix deleting all instance logo when deleting a specific logo
  • Fix getting unsupported Node.js from PATH with yt-dlp #7468
  • Inherit border color from primary color
  • Fix PeerTube client that automatically updates interface language to English

v8.1.0-rc.1

26 Feb 09:14
v8.1.0-rc.1
ae6e03b

Choose a tag to compare

v8.1.0-rc.1 Pre-release
Pre-release

IMPORTANT NOTES

  • You need to manually execute a migration script after upgrading, while PeerTube is running and the database migration is complete (Migrations finished. New migration version schema: 1000 in PeerTube startup logs):
    • 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-8.1.js
    • Docker installation: cd /var/www/peertube-docker && docker compose exec -u peertube peertube node dist/scripts/migrations/peertube-8.1.js
  • Running regenerate-thumbnails and prune-storage scripts after the upgrade and migration script is highly recommended

Maintenance

  • Migrate to the sharp NodeJS dependency to process images. This is a native dependency that provides prebuilt binaries, but some systems (like FreeBSD) may require an additional step after PeerTube dependencies installation:
  • Merge the previews directory into the thumbnails directory. The migration script will automatically move files
    The previews directory and configuration are kept for compatibility reasons
  • The cache directory is no longer deleted at PeerTube startup, to keep files cached from the previous run

Configuration

This section is not exhaustive

  • Important Generate more thumbnail sizes for videos in thumbnails.sizes. We recommend admins apply the same settings
  • Update default object storage configuration to use different prefix values with the same bucket_name for each object type (web_videos, user_exports, etc.), so it is easier to add more object types in the future
  • Use the lucide player theme by default
  • import.videos.http.force_ipv4 is now true by default to reduce rate limiting on some platforms
  • Add On Primary color configuration (theme.customization.on_primary_color) to choose the foreground color when the background color is Primary

Docker

  • Add va-driver-all to the PeerTube Docker image #7346

Plugins/Themes/Embed/REST APIs

  • REST API:
    • Deprecate previewfile when publishing a video. Use thumbnailfile instead
    • Deprecate thumbnailPath and previewPath Video fields. Use the thumbnails array instead
    • Deprecate the thumbnailPath VideoPlaylist field. Use the thumbnails array instead
    • Remove unused fileUrl from UserExport and VideoSource
    • Deprecate /lazy-static/previews/:filename. Use /lazy-static/thumbnails/:filename instead
  • Server plugin hooks (https://docs.joinpeertube.org/api/plugins):
    • Add filter:feed.videos.list.result #7355
    • Replace torrentPath with torrentFilename and torrentStream for remote torrents in filter:api.download.torrent.allowed.result context

Features

  • 🎉 Allow uploaders to restrict domains where their video can be embedded 🎉
  • Add an admin config to ensure an optimized podcast audio file is transcoded
  • Support 3.0x playback speed for non-premium users 😁
  • Optimize transcoding job queue:
    • Do not wait for all transcoding tasks to publish the video
    • Do not wait for all transcoding tasks to move video files in object storage
    • Lower priority on low video resolutions to avoid blocking video publication during bursts of uploads
    • More transcoding job parallelization
  • More reliable channel sync:
    • Reduce youtube-dl calls to reduce rate limiting
    • Handle cases where the video is not available/doesn't exist
    • Handle lives that are still being post-processed
    • Stop sync on get video info failure to retry at the same point next time
  • UX:
    • Support raw hex colors in color picker input #7337
    • Group notifications by date
    • Display blocked video information on the video manage page
    • Add a loading icon when updating the video
    • Improve the error message when the user password is too long
    • Add g l hotkey to go to the login page
    • Add ability to display video language on the My Videos page (column is hidden by default)
  • Improve video SEO
  • Support png and webp video thumbnails
  • Support svg logos for admins
  • Better email notification when a subscribed channel published a video #7395
  • Add compatibility with ActivityPub FEP-1b12 (used by Lemmy, PieFed, Mbin...)
  • Introduce a new cache system for remote thumbnails, storyboards, captions, and actor avatars/banners
  • Support Redis TLS connections #7404
  • Support PostgreSQL TLS connections #7366
  • Support path style requests for object storage
  • Improve channel collaboration:
    • An editor can now move a video they can manage to a channel they can manage (owner/editor)
    • An editor can send a change ownership request for a video they can manage
    • Editors can add videos to playlists of collaborated channels
    • Add quick actions (Manage, Remove) to the video dropdown for editors too
  • Performance:
    • Create video file torrents in a worker thread
    • Optimize videos list SQL query with complex sort (trending, hot, etc.)
    • When possible, send raw files directly instead of muxing when downloading a video
  • Improve podcast feed images compatibility with Apple Podcast

Bug fixes

  • Fix videos list inconsistencies when going back to that page
  • Do not display an empty details block in embed on error
  • Prevent incomplete segment reads for live streams #7333
  • Fix video download filename on Safari
  • Fix broken P2P when updating object storage base URL
  • Fix Redis sentinel support #7365
  • Correctly use header colors defined by the admin
  • Fix broken transcoding on remote runner when split video/audio is enabled
  • Fix server config not refreshing after admin settings save #7413
  • Prevent exception when the account is not loaded yet in the user moderation dropdown
  • Prevent black borders when embedding a video
  • Fix default scope defined by the admin when browsing videos
  • Force transcoding even if the video state is not compatible
  • Fix broken video studio task when updating video privacy at the same time
  • Reset selected rows when loading data in tables
  • Take into account channel owner video quota when an editor publishes a video to a collaborated channel
  • Fix watching a password protected video as an editor
  • Fix video metadata in filter:api.video.upload.accept.result context
  • Correctly take into account the user language filter when browsing videos
  • Fix .ts video file upload #7458
  • Fix .mkv video file upload on latest Chrome
  • Fix deleting all instance logo when deleting a specific logo
  • Fix getting unsupported Node.js from PATH with yt-dlp #7468

v8.0.2

27 Jan 08:26
v8.0.2
4d2b0c4

Choose a tag to compare

IMPORTANT NOTES

  • Follow v8.0.0 IMPORTANT NOTES if you upgrade from PeerTube <= v7.3.0

Bug fixes

  • Fix PostgreSQL CPU usage and broken PeerTube instance on instances with a many subscriptions or big federation
  • Fix login URL in registration email
  • Remove the trailing comma in the plugins package.json files that broke the update/installation process
  • Fix broken channel sync if private privacy is removed by a plugin
  • Fix restoring My Videos sort after a search

v8.0.1

16 Dec 08:46
v8.0.1
7cb0c9f

Choose a tag to compare

IMPORTANT NOTES

  • Follow v8.0.0 IMPORTANT NOTES if you upgrade from PeerTube <= v7.3.0

NGINX

  • Fix HTTP3 compatibility issue in nginx template: 412df6c

Bug fixes

  • Prevent transcription error when the video has been deleted
  • Fix select button style for redundancy
  • Fix invalid form after admin configuration update
  • Fix alert styling in watch page
  • Fix left menu collapse when accessing admin configuration
  • Fix config wizard not applying config
  • Correctly do not open again welcome modal
  • Fix decaching node modules paths of plugins
  • Send 401 HTTP code instead of 404 when fetching the HTML page of a password protected video
  • More precise date interval (x min ago, x months ago, etc.)
  • Reorder account management dropdown entries
  • Fix youtube playlist detection for channel synchronization
  • Fix filtering on privacy when listing my videos

v8.0.0

09 Dec 09:01
v8.0.0
90f293c

Choose a tag to compare

IMPORTANT NOTES

  • Database migrations of this version can take a long time (up to 30 minutes on an instance with many users/federation actors and a slow database disk)
  • 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: 970 in PeerTube startup logs):
    • 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-8.0.js
    • Docker installation: cd /var/www/peertube-docker && docker compose exec -u peertube peertube node dist/scripts/migrations/peertube-8.0.js
  • yarn NodeJS packages manager has been removed in favor of pnpm. Follow the dependencies guide to install pnpm on your system before the upgrade
  • Ensure storage.uploads directory is set in your production.yaml
  • Supported NodeJS versions are >= 20.19 and < 21 or >= 22.12 and <23
  • For Docker users, please read the Docker section below

Configuration

  • Remove http_server unused section from .yaml configuration files
  • Introduce views.videos.local.max_age configuration to cleanup old views from local videos
  • Add more STUN Servers to webrtc.stun_servers to improve P2P robustness
  • Add ability to increase video transcription timeout in video_transcription.timeout
  • Add client.new_features_info configuration to disable popups explaining new features to users
  • Add user.password_constraints.min_length config to specify user password minimum length #6945

Docker

  • PeerTube Dockerfile is now based on Debian Trixie. chocobozzz/peertube:production can be used instead of chocobozzz/peertube:production-trixie (Debian suffix version is deprecated)
  • PostgreSQL version has been upgraded in Docker Compose. Please follow this guide if you want to upgrade PostgreSQL in your Docker Compose
  • Redis version has been upgraded in Docker Compose. No maintenance task is required if you upgrade Redis in your Docker Compose

Plugins/Themes/Embed/REST APIs

  • REST API:
    • Remove deprecated filename field from VideoSource object
    • Remove deprecated commentsEnabled field from Video object
    • Remove deprecated redundancies.filesfield from VideoRedundancy object
    • Deprecate captionPath field from VideoCaption object. Use fileUrl instead
    • Deprecate storyboardPath from Storyboard object. Use fileUrl instead
    • Deprecate path from ActorImage object (avatars, banners). Use fileUrl instead
    • The HTTP response code for password-protected videos can be either 401 or 403, depending on the request headers
  • Theme:
    • Rename --input-placeholder CSS variables into --input-placeholder-color
    • Introduce --input-placeholder-font-size CSS variable

Features

  • 🎉 Add channel collaboration 🎉
    • Channel owners can invite users of their instance to become editors of their channel
    • Editors can accept or reject the invitation
    • Editors can manage videos, playlists & comments of the channel
    • An Activity page has been added to list actions performed within a channel
  • 🎉 Video player redesign 🎉
    • Introduce a new clean and modern theme named Lucide
    • Original theme is still used by default, and has been renamed to Galaxy
    • The player theme can be changed by the admin for the entire instance or by the channel for all its videos. It can also be changed for individual videos.
    • Use vertical audio volume control for Galaxy player theme
  • Improve video imports UX
    • Introduce an Import failed state to clearly identify failed imports
    • Display import state in video manage page and watch page
    • Add ability to retry video imports
    • Channel synchronization automatically retry failed imports
  • Redesign notifications popup and page
  • Replace yarn package manager by pnpm to provide faster PeerTube installation/upgrade and faster plugin installation/upgrade
  • Add admin options to customize default Browse videos behaviour #7193
  • Add ability to handle storyboard generation job by runners #7191
  • Add Resend verification email button to admin users list #7272
  • Improve video manage and admin config forms accessibility
  • Add ability to insert a new playlist at first position in the channel
  • Add ability to copy codecs, if possible, for HLS transcoding
  • Also search by account name when searching for channels
  • Faster start time seek on HLS videos

Bug fixes

  • Fix avatar max size information
  • Fix scroll issue when navigating from homepage
  • Fix viewers stats date filter label after a reset
  • Fix select languages component label
  • Correctly load user video language settings in video filters
  • Accept non-HTTPS URLs for the search index
  • Fix admin abuse URL in emails
  • Show videos to owners even if they are muted on the instance
  • Correctly sort scheduled videos when listing my videos
  • Fix account mention redirection
  • Display all countries/regions labels in viewer stats graph
  • Keep videos order after user import
  • Fix HTML headings hierarchy to improve SEO
  • Users logged-in by an external auth plugin can choose to display their email publicly (required by Apple for the podcast feed)
  • Fix podcast feed video bitrate attribute that can be refused by some podcast applications
  • Fix video quota information estimation
  • Translate RSS feeds title
  • Fix transcription CORS issue if the caption file is stored externally
  • Do no uppercase video tags
  • Fix resetting instance categories/languages
  • Fix black screen when updating web video resolution in player
  • Fix displaying more than 100 live sessions
  • Reload page after login to respect user lang
  • Do not run storyboard/transcription jobs without the appropriate stream