Recent Releases
6.3.319 Nov 2024 14:27
major bugfix:
: Broken thumbnails on live replay. Detecting portrait rotation of some video. Don't allow to select a frame from a live to set the thumbnail. Lost video stream with specific transcoding settings and video input. Creating playlist without thumbnail when using the REST API. `.mov` video upload on some Windows versions. `video-plugin-metadata.result` client plugin hook.
6.2.103 Sep 2024 21:25
minor bugfix:
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.
:
Stuck runner jobs due to DB concurrency Respect OS orientation settings in PWA.
"No results" not displayed on no video results.
Do not display "Download" option on lives.
Invalid current password error when updating user password.
Slow hotkeys detection.
Hidden runner jobs tab when remote runner is only enabled for transcription.
Broken HLS P2P by correctly updating HLS infohash on privacy update.
Videos filters pastille labels for categories and languages.
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.
6.2.022 Jul 2024 09:25
major bugfix:
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.
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.
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 .
Add `getUser()` client helper.
Detect internal link in plugin page to avoid reloading entire application when not needed.
Features:
:tada: Add automatic transcription of videos to generate subtitles :tada:
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.
:tada: Improve comment moderation :tada:
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.
:tada: Implement auto-tagging on comments and videos for admins and on comments for video owners :tada:
Comments and videos can be automatically tagged using PeerTube rules ("contains a link" for example)
6.2.0-rc.103 Jul 2024 13:45
major bugfix:
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.
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.
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 .
Add `getUser()` client helper.
Detect internal link in plugin page to avoid reloading entire application when not needed.
Features:
:tada: Add automatic transcription of videos to generate subtitles :tada:
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.
:tada: Improve comment moderation :tada:
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.
:tada: Implement auto-tagging on comments and videos for admins and on comments for video owners :tada:
Comments and videos can be automatically tagged using PeerTube rules ("contains a link" for example)
6.1.030 Apr 2024 09:45
major feature:
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 r 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.enabled`configs 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
6.1.0-rc.117 Apr 2024 06:45
minor feature:
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 r 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.enabled`configs 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 on the Prometheus backend due to high metric cardinality.
Maintenance:
Also genera
6.0.405 Apr 2024 11:05
minor security:
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:
Important: Prevent XSS injection in embed. Thanks Syst3m0ver!.
6.0.318 Jan 2024 11:52
minor bugfix:
### 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 (https://github.com/Chocobozzz/PeerTube/commit/12ea8f0dd11e3fb5fbb8955f5b7d52f27332d619#diff-be9f96b9b1de67284047e610821493f9a5bec86bfcdf81a7d8d6e7904474c186) (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
6.0.212 Dec 2023 06:45
minor bugfix:
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.
:
Upgrade.sh when Peertube is installed outside the standard path.
Importing videos with too long chapter name.
Don't create chapters from description if there is only one.
Ensure user is owned by the auth plugin before updating its attributes.
Improve channels and accounts SEO by ing structured JSON-LD data and canonical URLs.
Originally published and reupload date format consistency in watch page.
Cpu count when cpu info not available.
Embed when waiting for a live.
Updating already started live if live attributes don't change.
Displaying many countries in video stats.
6.0.103 Dec 2023 17:25
minor bugfix:
IMPORTANT NOTES:
If you upgrade from PeerTube v6.0.0, please follow v6.0.0 IMPORTANT NOTES.
We've made some modifications in v6.0.0 IMPORTANT NOTES, so if you upgrade from PeerTube v6.0.0:
Ensure `location = /api/v1/videos/upload-resumable ` has been replaced by `location /api/v1/videos/(upload-resumable ( / +/source/replace-resumable)) ` in your nginx configuration.
Ensure you updated `storage.web_videos` configuration value to use `web-videos/` directory name.
Ensure your directory name on filesystem is the same as `storage.web_videos` configuration value: directory on filesystem must be renamed from `videos/` to `web-videos/` to represent the value of `storage.web_videos`.
:
CPU going to 100 on odd cpu count.
Increase storyboard generation job TTL.
Add missing `generate-video-storyboard` job type in admin jobs list.
Regenerate storyboard after studio job.
6.0.029 Nov 2023 07:25
major feature:
IMPORTANT NOTES:
We have many important notes in this release. We know it's a pain for sysadmin, but consider each one as a major step forward for PeerTube quality!.
Sysadmins important notes:
Remove NodeJS 16 support (see https://nodejs.org/fr/blog/announcements/nodejs16-eol):
Please upgrade to NodeJS 18 before upgrading PeerTube.
If you use NodeSource repository, you may have to migrate to their new repository: https://github.com/nodesource/distributions/wiki/How-to-migrate-to-the-new-repository.
Check in `production.yaml` that you use `127.0.0.1` instead of `localhost` for `listen.hostname`, `database.hostname` and `redis.hostname` as Node 18 favours IPv6 for `localhost` resolution.
Remove WebTorrent support in player:
"WebTorrent videos" are renamed to "Web Video". The video format is the same, we just stop to use P2P for these videos.
There is no "Auto" quality anymore for Web Videos. The viewer has to explicitly choose the video resolution.
We still use P2P with the HLS player, which is the recommended transcoding format since several versions.
See https://github.com/Chocobozzz/PeerTube//5465 for more information.
Configuration key that you must update in your `production.yaml` if not automatically done by your upgrade script:
`storage.videos` must be renamed to `storage.web_videos`. The value of this configuration doesn't need to be changed: https://github.com/Chocobozzz/PeerTube/blob/develop/config/production.yaml.example#L151.
`transcoding.webtorrent` must be renamed to `transcoding.web_videos`: https://github.com/Chocobozzz/PeerTube/blob/develop/config/production.yaml.example#L522.
`object_storage.videos` must be renamed to `object_storage.web_videos`. The value of `object_storage.web_videos.bucket_name` doesn't need to be changed: https://github.com/Chocobozzz/PeerTube/blob/develop/config/production.yaml.example#L223.
`storage.storyboards` must be added: https://github.com/Chocobozzz/PeerTube/blob/develop/config/production.yaml.example#L157.
Peer
6.0.0-rc.220 Nov 2023 12:26
minor bugfix:
Since v6.0.0-rc.1 : Correctly generate `production.yaml.new` that should merge your current `production.yaml` with new keys defined by PeerTube. Don't break `scripts/upgrade.sh` path. If you upgraded to v6.0.0-rc.1 you can find the upgrade script in `dist/scripts/upgrade.sh`. notification scrolling. Add ability to customize frames to analyze in configuration. player ratio on mobile with portrait videos. Update page title and description on video change. Adapt storyboard sprite ratio. card font color theme. Optimize homepage videos query. Respect "transcode original resolution" setting when using remote runners. Prevent player mobile buttons flickering.
3.4.113 Oct 2021 03:24
minor feature:
broken PeerTube when cookies are disabled or if the embed iframe does not have appropriate options.
search by channel's handle with an handle containing the local host.
Don't display autoblock message in upload page it is not enabled by the admin.
Don't index /about/peertube page.
Correctly handle OEmbed with an URL containing query parameters.
More robust youtube-dl thumbnail import.
Don't send a new video notification when using create transcoding CLI script.
3.4.011 Sep 2021 03:15
minor feature:
Important: Due to a in ffmpeg, PeerTube is not compatible with ffmpeg 4.4. See #3990.
Debian Bullseye admins: Debian Bullseye removed python binary/link in favour of explicit python2/python3 binaries. But youtube-dl used by PeerTube needs it so you'll have to install python-is-python2 or python-is-python3 before upgrading PeerTube.
PeerTube now supports NodeJS 16.
Server helpers
Deprecate videoLanguageManager.addLanguage and videoLanguageManager.deleteLanguage: use videoLanguageManager.addConstant and videoLanguageManager.deleteConstant instead
Deprecate videoCategoryManager.addCategory and videoCategoryManager.deleteCategory: use videoCategoryManager.addConstant and videoCategoryManager.deleteConstant instead
Deprecate videoLicenceManager.addLicence and videoLicenceManager.deleteLicence: use videoLicenceManager.addConstant and videoLicenceManager.deleteConstant instead
Deprecate videoPrivacyManager.deletePrivacy: videoPrivacyManager.deleteConstant instead
Deprecate playlistPrivacyManager.deletePlaylistPrivacy: playlistPrivacyManager.deleteConstant instead
Introduce.getConstantValue().getConstants() and.resetConstants() for videoLanguageManager, videoCategoryManager, videoLicenceManager, videoPrivacyManager and playlistPrivacyManager
.
Deprecate videoLanguageManager.addLanguage and videoLanguageManager.deleteLanguage: use videoLanguageManager.addConstant and videoLanguageManager.deleteConstant instead.
Deprecate videoCategoryManager.addCategory and videoCategoryManager.deleteCategory: use videoCategoryManager.addConstant and videoCategoryManager.deleteConstant instead.
Deprecate videoLicenceManager.addLicence and videoLicenceManager.deleteLicence: use videoLicenceManager.addConstant and videoLicenceManager.deleteConstant instead.
Deprecate videoPrivacyManager.deletePrivacy: videoPrivacyManager.deleteConstant instead.
Deprecate playlistPrivacyManager.deletePlaylistPrivacy: playlistPrivacyManager.deleteConstant instead.
Introduce.getConstantValue().getConstants() and.
3.4.0-rc.101 Sep 2021 03:15
minor feature:
Important: v3.2.0 introduced a pg_dump export in the auto upgrade script. v3.2.1 this. To upgrade from v3.2.0:
You can upgrade manually https://docs.joinpeertube.org/install-any-os?id=manually
Or you can apply the changes introduced in this commit: 86dc0b9 and then use the auto upgrade script
.
You can upgrade manually https://docs.joinpeertube.org/install-any-os?id=manually.
Or you can apply the changes introduced in this commit: 86dc0b9 and then use the auto upgrade script.
Important: Due to a in ffmpeg, PeerTube is not compatible with ffmpeg 4.4. See #3990.
Increase max image/caption/torrent upload size to 4MB. You need to update your nginx configuration to handle this change.
Increase fetcher job concurrency to 3.
Support log level env parameter PEERTUBE_LOG_LEVEL #4149.
Add client helpers:
getBaseRouterRoute() #4153
.
getBaseRouterRoute() #4153.
Add client plugin hooks (https://docs.joinpeertube.org/api-plugins):
filter:left-menu.links.create.result to add/remove left menu links
filter:internal.player.videojs.options.result to filter options sent to videojs player #4126
.
filter:left-menu.links.create.result to add/remove left menu links.
filter:internal.player.videojs.options.result to filter options sent to videojs player #4126.
Add server plugin hooks (https://docs.joinpeertube.org/api-plugins):
action:api.video-playlist-element.created
.
action:api.video-playlist-element.created.
Add ability to create a custom homepage using HTML, markdown and custom HTML tags #4007.
Add ability to search playlists in PeerTube instance and SepiaSearch.
Shorter public URLs (old URLs are still supported):
Handle short UUID (8r4jooaQpHp8tw1E1qpSeYq instead of 3caf7bea-5ceb-4959-81a0-b44d184e897c) for playlists and videos
Use /w/:id instead of /videos/watch/:id and /w/p/:id instead of /videos/watch/playlist/:id
Use /a/:accountName instead of /accounts/:accountName and /c/:channelName instead of /video-channels/:channelName #4009
Provide /@:username page that automatica
3.3.021 Jul 2021 03:15
minor feature:
Important: v3.2.0 introduced a pg_dump export in the auto upgrade script. v3.2.1 this. To upgrade from v3.2.0:
You can upgrade manually https://docs.joinpeertube.org/install-any-os?id=manually
Or you can apply the changes introduced in this commit: 86dc0b9 and then use the auto upgrade script
.
You can upgrade manually https://docs.joinpeertube.org/install-any-os?id=manually.
Or you can apply the changes introduced in this commit: 86dc0b9 and then use the auto upgrade script.
Important: Due to a in ffmpeg, PeerTube is not compatible with ffmpeg 4.4. See #3990.
Increase max image/caption/torrent upload size to 4MB. You need to update your nginx configuration to handle this change.
Increase fetcher job concurrency to 3.
Support log level env parameter PEERTUBE_LOG_LEVEL #4149.
Add client helpers:
getBaseRouterRoute() #4153
.
getBaseRouterRoute() #4153.
Add client plugin hooks (https://docs.joinpeertube.org/api-plugins):
filter:left-menu.links.create.result to add/remove left menu links
filter:internal.player.videojs.options.result to filter options sent to videojs player #4126
.
filter:left-menu.links.create.result to add/remove left menu links.
filter:internal.player.videojs.options.result to filter options sent to videojs player #4126.
Add server plugin hooks (https://docs.joinpeertube.org/api-plugins):
action:api.video-playlist-element.created
.
action:api.video-playlist-element.created.
Add ability to create a custom homepage using HTML, markdown and custom HTML tags #4007.
Add ability to search playlists in PeerTube instance and SepiaSearch.
Shorter public URLs (old URLs are still supported):
Handle short UUID (8r4jooaQpHp8tw1E1qpSeYq instead of 3caf7bea-5ceb-4959-81a0-b44d184e897c) for playlists and videos
Use /w/:id instead of /videos/watch/:id and /w/p/:id instead of /videos/watch/playlist/:id
Use /a/:accountName instead of /accounts/:accountName and /c/:channelName instead of /video-channels/:channelName #4009
Provide /@:username page that automatica
3.3.0-rc.107 Jul 2021 03:15
minor feature:
Important: v3.2.0 introduced a pg_dump export in the auto upgrade script. To upgrade from v3.2.0:
You can upgrade manually https://docs.joinpeertube.org/install-any-os?id=manually
Or you can apply the changes introduced in this commit: 86dc0b9 and then use the auto upgrade script
.
You can upgrade manually https://docs.joinpeertube.org/install-any-os?id=manually.
Or you can apply the changes introduced in this commit: 86dc0b9 and then use the auto upgrade script.
Create account button style.
Auto upgrade script.
Live image aspect ratio in theatre mode.
3.2.102 Jun 2021 15:05
minor feature:
Important: v3.2.0 introduced a pg_dump export in the auto upgrade script. To upgrade from v3.2.0:
You can upgrade manually https://docs.joinpeertube.org/install-any-os?id=manually
Or you can apply the changes introduced in this commit: 86dc0b9 and then use the auto upgrade script
.
You can upgrade manually https://docs.joinpeertube.org/install-any-os?id=manually.
Or you can apply the changes introduced in this commit: 86dc0b9 and then use the auto upgrade script.
Create account button style.
Auto upgrade script.
Live image aspect ratio in theatre mode.
3.2.028 May 2021 03:25
minor feature:
Important: You must update your nginx configuration to add the upload-resumable endpoint: https://github.com/Chocobozzz/PeerTube/blob/develop/support/nginx/peertube#L81.
Important: Due to a in ffmpeg, PeerTube is not compatible with ffmpeg 4.4. See #3990.
Important: Drop NodeJS 10 support.
PeerTube is not compatible with NodeJS 16 yet.
By default, HLS transcoding is now enabled and webtorrent is disabled. We suggest you to reflect this change.
See the documentation for more information.
PeerTube client now displays bigger video thumbnails.
To old thumbnails quality, run regenerate-thumbnails script after your PeerTube upgrade: https://docs.joinpeertube.org/maintain-tools?id=regenerate-thumbnailsjs.
Support SSL database env parameter #4114.
Support X-Frame-Options header, enabled by default in the configuration.
Directly use node in systemd template.
Check ffmpeg version at PeerTube startup.
Add upload-resumable nginx endpoint: https://github.com/Chocobozzz/PeerTube/blob/develop/support/nginx/peertube#L81.
Add regenerate-thumbnails script to regenerate thumbnails of local videos.
Theme:
--submenuColor becomes --submenuBackgroundColor.
.
--submenuColor becomes --submenuBackgroundColor.
Support HTML placeholders for plugins. See the documentation for more information
player-next next to the PeerTube player
.
player-next next to the PeerTube player.
Support storing files for plugins in a dedicated directory. See the documentation for more information.
Transcoding:
Add inputOptions option support for transcoding profile #3917
Add scaleFilter.name option support for transcoding profile #3917
.
Add inputOptions option support for transcoding profile #3917.
Add scaleFilter.name option support for transcoding profile #3917.
Plugin settings:
Add ability to register html and select setting
Add ability to hide a plugin setting depending on the form state
.
Add ability to register html and select setting.
Add ability to hide a plugin setting depending on the form state.
Plugin
3.2.0-rc.112 May 2021 15:45
minor feature:
Important: Drop PostgreSQL 9.6 support.
Important: Deprecate NodeJS 10.
Important: Migrations for this release could be long. Please plan a downtime.
Support NodeJS 14 and 15.
Remove ES5 module support (breaks compatibility with web browsers we didn't support).
PeerTube releases now contain client source maps helping client deging (for developers and admins).
It's the reason why the release size is bigger (we think it's worth it).
Remove deprecated static routes (/static/avatars/, /static/previews/ and /static/video-captions/).
PeerTube now uses a unique name for thumbnails, previews and captions allowing to correctly cache these resources.
It could break some third party clients that guessed these filenames depending on the video UUID. We'll continue this work in the future
for video filenames, so admins can easily cache these files (using multiple reverse proxies etc).
nginx max body size configuration.
Add script printing command to generate a resolution for a given file #3507.
Add --wait-interval option to video-import script to wait between two video imports #3310.
Add server plugin hooks (https://docs.joinpeertube.org/api-plugins):
filter:api.user.me.videos.list.params and filter:api.user.me.videos.list.result
.
filter:api.user.me.videos.list.params and filter:api.user.me.videos.list.result.
Add server helpers:
videos.loadByIdOrUUID
.
videos.loadByIdOrUUID.
Add server transcoding helpers (https://docs.joinpeertube.org/contribute-plugins?id=add-new-transcoding-profiles):
transcodingManager.addVODProfile
transcodingManager.addVODEncoderPriority
transcodingManager.addLiveProfile
transcodingManager.addLiveEncoderPriority
.
transcodingManager.addVODProfile.
transcodingManager.addVODEncoderPriority.
transcodingManager.addLiveProfile.
transcodingManager.addLiveEncoderPriority.
Transcoding:
Fair transcoding jobs priority: give an higher priority to optimize jobs and decrease priority of transcoding jobs depending on the amount of videos uploaded by the user during th
3.1.025 Mar 2021 22:05
minor feature:
Important: Deprecate NodeJS 10.
Support NodeJS 14 and 15.
Remove ES5 module support (breaks compatibility with web browsers we didn't support).
PeerTube releases now contain client source maps helping client deging (for developers and admins).
It's the reason why the release size is bigger (we think it's worth it).
Remove deprecated static routes (/static/avatars/, /static/previews/ and /static/video-captions/).
PeerTube now uses a unique name for thumbnails, previews and captions allowing to correctly cache these resources.
It could break some third party clients that guessed these filenames depending on the video UUID. We'll continue this work in the future
for video filenames, so admins can easily cache these files (using multiple reverse proxies etc).
nginx max body size configuration.
Add script printing command to generate a resolution for a given file #3507.
Add --wait-interval option to video-import script to wait between two video imports #3310.
Add server plugin hooks (https://docs.joinpeertube.org/api-plugins):
filter:api.user.me.videos.list.params and filter:api.user.me.videos.list.result
.
filter:api.user.me.videos.list.params and filter:api.user.me.videos.list.result.
Add server helpers:
videos.loadByIdOrUUID
.
videos.loadByIdOrUUID.
Add server transcoding helpers (https://docs.joinpeertube.org/contribute-plugins?id=add-new-transcoding-profiles):
transcodingManager.addVODProfile
transcodingManager.addVODEncoderPriority
transcodingManager.addLiveProfile
transcodingManager.addLiveEncoderPriority
.
transcodingManager.addVODProfile.
transcodingManager.addVODEncoderPriority.
transcodingManager.addLiveProfile.
transcodingManager.addLiveEncoderPriority.
Transcoding:
Fair transcoding jobs priority: give an higher priority to optimize jobs and decrease priority of transcoding jobs depending on the amount of videos uploaded by the user during the last 7 days #3637
Higher niceness priority for live transcoding compared to vod transcoding #3577
Allow admins to ch
3.1.0-rc.105 Mar 2021 07:25
minor feature:
Important retrieving data of another user if the username contains _ when fetching my information.
Upgrade documentation.
Add live RTMP port in docker compose.
Account feed URL.
Log RTMP server error (address already in use).
NPM theme links in admin theme page.
Don't reject AP actors with empty description.
Twitter admin config description.
Duplicate entry in job list page.
nl-NL broken admin config page.
Bad tracker client IP when using a reverse proxy.
3.0.113 Jan 2021 07:05
minor feature:
Important retrieving data of another user if the username contains _ when fetching my information.
Upgrade documentation.
Add live RTMP port in docker compose.
Account feed URL.
Log RTMP server error (address already in use).
NPM theme links in admin theme page.
Don't reject AP actors with empty description.
Twitter admin config description.
Duplicate entry in job list page.
nl-NL broken admin config page.
Bad tracker client IP when using a reverse proxy.
3.0.008 Jan 2021 13:05
minor feature:
Update the default configuration to not federate unlisted videos. We recommend to admins to update this setting.
Update the default configuration to remove remote video views to reduce DB size and improve performances. We recommend to admins to update this setting.
Remove deprecated video abuse API.
Refresh nginx configuration #3313.
Replace traefik by nginx in our docker-compose template:
Better consistency with our default setup (we now use the same stack)
Use our default nginx template enabling many optimizations
Update the documentation to take into account this change: https://docs.joinpeertube.org/install-docker
.
Better consistency with our default setup (we now use the same stack).
Use our default nginx template enabling many optimizations.
Update the documentation to take into account this change: https://docs.joinpeertube.org/install-docker.
Add ability for auth plugins to redirect user on logout #32 #33.
Add input-password setting to plugins #3375.
Add server plugin hooks (https://docs.joinpeertube.org/api-plugins):
filter:api.accounts.videos.list.params
filter:api.accounts.videos.list.result
filter:api.video-channels.videos.list.params
filter:api.video-channels.videos.list.result
.
filter:api.accounts.videos.list.params.
filter:api.accounts.videos.list.result.
filter:api.video-channels.videos.list.params.
filter:api.video-channels.videos.list.result.
Authenticate the user if possible in plugin router #3400.
Support live streaming #3250.
Create a live video using the PeerTube interface and start streaming using your favorite streaming software (OBS, ffmpeg...)
If the admin allows it, add ability for users to save a replay of their live
Support live transcoding in multiple resolutions
Admins can set a limit of created lives per user/instance and a duration limit
This is the first step of live streaming, we'll consolidate the feature next year
.
Create a live video using the PeerTube interface and start streaming using your favorite streaming software
3.0.0-rc.117 Dec 2020 09:25
minor feature:
The minimum ffmpeg version required is now 4.1.
Deprecate static routes that will be removed in 3.0 (you may not have to do anything if you used paths returned by the video REST API):
/static/avatars/: use /lazy-static/avatars/ instead.
/static/previews/: use /lazy-static/previews/ instead.
/static/video-captions/: use /lazy-static/video-captions/ instead.
.
/static/avatars/: use /lazy-static/avatars/ instead.
/static/previews/: use /lazy-static/previews/ instead.
/static/video-captions/: use /lazy-static/video-captions/ instead.
Use playlistPosition URL parameter for playlists instead of videoId to set the current playlist position.
Better error message on PostgreSQL connection error.
Add ssl option support for PostgreSQL connection.
Player video annotation (alpha).
Add embed API (https://docs.joinpeertube.org/#/api-embed-player):
playNextVideo method
playPreviousVideo method
getCurrentPosition method
.
playNextVideo method.
playPreviousVideo method.
getCurrentPosition method.
Embed URL parameters
Add ability to disable PeerTube link in embed using an URL param (peertubeLink=0)
.
Add ability to disable PeerTube link in embed using an URL param (peertubeLink=0).
Add plugins support in embed.
Add client plugin hooks (https://docs.joinpeertube.org/#/api-plugins):
action:embed.player.loaded (for embed)
.
action:embed.player.loaded (for embed).
Add custom fields in video update/upload form using registerVideoField (https://docs.joinpeertube.org/#/contribute-plugins?id=add-custom-fields-to-video-form).
Moderation:
Add ability to report comments and accounts.
Add messaging system between local reporter of an abuse and moderators so they can easily communicate.
Users can now see their abuse reports, and have notifications when an abuse state changed (accepted/rejected) or when moderators added a new message.
Add embed to block list details @rigelk in #2926
.
Add ability to report comments and accounts.
Add messaging system between local reporter of an a
2.4.009 Sep 2020 13:25
minor feature:
The minimum ffmpeg version required is now 4.1.
Deprecate static routes that will be removed in 3.0 (you may not have to do anything if you used paths returned by the video REST API):
/static/avatars/: use /lazy-static/avatars/ instead.
/static/previews/: use /lazy-static/previews/ instead.
/static/video-captions/: use /lazy-static/video-captions/ instead.
.
/static/avatars/: use /lazy-static/avatars/ instead.
/static/previews/: use /lazy-static/previews/ instead.
/static/video-captions/: use /lazy-static/video-captions/ instead.
Use playlistPosition URL parameter for playlists instead of videoId to set the current playlist position.
Better error message on PostgreSQL connection error.
Add ssl option support for PostgreSQL connection.
Player video annotation (alpha).
Add embed API (https://docs.joinpeertube.org/#/api-embed-player):
playNextVideo method
playPreviousVideo method
getCurrentPosition method
.
playNextVideo method.
playPreviousVideo method.
getCurrentPosition method.
Embed URL parameters
Add ability to disable PeerTube link in embed using an URL param (peertubeLink=0)
.
Add ability to disable PeerTube link in embed using an URL param (peertubeLink=0).
Add plugins support in embed.
Add client plugin hooks (https://docs.joinpeertube.org/#/api-plugins):
action:embed.player.loaded (for embed)
.
action:embed.player.loaded (for embed).
Add custom fields in video update/upload form using registerVideoField (https://docs.joinpeertube.org/#/contribute-plugins?id=add-custom-fields-to-video-form).
Moderation:
Add ability to report comments and accounts.
Add messaging system between local reporter of an abuse and moderators so they can easily communicate.
Users can now see their abuse reports, and have notifications when an abuse state changed (accepted/rejected) or when moderators added a new message.
Add embed to block list details @rigelk in #2926
.
Add ability to report comments and accounts.
Add messaging system between local reporter of an a
2.4.0-rc.128 Aug 2020 06:45
minor feature:
Add client_overrides directory in configuration file. You must configure it in your production.yaml.
Deprecate /videos/abuse endpoint.
A new endpoint to report videos will be created in PeerTube 2.4 and will also allow to report accounts and comments (/videos/abuse will be removed in 3.0).
Renamed videos blacklist feature to videos blocks/blocklist.
Add feeds routes to the openapi spec @rigelk.
Add notifications routes to the openapi spec @rigelk.
Add redundancy routes to the openapi spec @rigelk.
Add plugins routes to the openapi spec @rigelk.
Add examples, descriptions and missing filters for abuses routes in the openapi spec @rigelk.
Update CentOS insutructions in dependencies.md @cgarwood82 in 2904.
Switched image processing library from native dependency sharp to pure JS implementation jimp. Admins don't have to compile sharp anymore and jimp is lighter.
Provide specific engine boundaries for NodeJS and Yarn @rigelk in 0c4bacb.
Add ability to set database.name config option @gramakri in #2898.
POSTGRES env variables in docker-compose.
OpenDKIM permissions in docker-compose setup @kimsible in #2868.
Auto block videos (alpha).
Add ability to override client assets: logo - favicon - PWA icons - PWA manifest name and description @kimsible in #2897.
Add global search support (has to be explicitely enabled by admins).
Add ability for admins to display a banner on their instance.
Support Vietnamese and Kabyle languages. Also re-establish Occitan language locale despite lack of support in Angular.
Federation:
Make federation of unlisted videos an instance-level server preference @Tak in #2802
Sort ActivityPub video object files by resolution in descending order
Send complete video description in ActivityPub video objects
.
Make federation of unlisted videos an instance-level server preference @Tak in #2802.
Sort ActivityPub video object files by resolution in descending order.
Send complete video description in ActivityPub video objects.
Moderation:
Add abilit
2.3.022 Jul 2020 06:05
minor feature:
Add client_overrides directory in configuration file. You must configure it in your production.yaml.
Deprecate /videos/abuse endpoint.
A new endpoint to report videos will be created in PeerTube 2.4 and will also allow to report accounts and comments (/videos/abuse will be removed in 3.0).
Renamed videos blacklist feature to videos blocks/blocklist.
Add feeds routes to the openapi spec @rigelk.
Add notifications routes to the openapi spec @rigelk.
Add redundancy routes to the openapi spec @rigelk.
Add plugins routes to the openapi spec @rigelk.
Add examples, descriptions and missing filters for abuses routes in the openapi spec @rigelk.
Update CentOS insutructions in dependencies.md @cgarwood82 in 2904.
Switched image processing library from native dependency sharp to pure JS implementation jimp. Admins don't have to compile sharp anymore and jimp is lighter.
Provide specific engine boundaries for NodeJS and Yarn @rigelk in 0c4bacb.
Add ability to set database.name config option @gramakri in #2898.
POSTGRES env variables in docker-compose.
OpenDKIM permissions in docker-compose setup @kimsible in #2868.
Auto block videos (alpha).
Add ability to override client assets: logo - favicon - PWA icons - PWA manifest name and description @kimsible in #2897.
Add global search support (has to be explicitely enabled by admins).
Add ability for admins to display a banner on their instance.
Support Vietnamese and Kabyle languages. Also re-establish Occitan language locale despite lack of support in Angular.
Federation:
Make federation of unlisted videos an instance-level server preference @Tak in #2802
Sort ActivityPub video object files by resolution in descending order
Send complete video description in ActivityPub video objects
.
Make federation of unlisted videos an instance-level server preference @Tak in #2802.
Sort ActivityPub video object files by resolution in descending order.
Send complete video description in ActivityPub video objects.
Moderation:
Add abilit
2.3.0-rc.107 Jul 2020 19:05
minor feature:
/! VERY IMPORTANT /! We added a unique index on actors usernames to some federation.
Please check now if you have conflicts:
Go inside your database using sudo -u postgres psql peertube_prod and run select "preferredUsername" from actor where "serverId" is null group by "preferredUsername" having count(*) 1;
If you have some results, it seems you have duplicate channels/accounts.
For every entry, you'll have to change the preferredUsername of the entry you want (so they are unique).
The updated actors could have some federations.
Go inside your database using sudo -u postgres psql peertube_prod and run select "preferredUsername" from actor where "serverId" is null group by "preferredUsername" having count(*) 1;.
If you have some results, it seems you have duplicate channels/accounts.
For every entry, you'll have to change the preferredUsername of the entry you want (so they are unique).
The updated actors could have some federations.
Changed auto_follow_index setting configuration: you now have to use the complete URL in index_url.
If you used the default one, you now need to use https://instances.joinpeertube.org/api/v1/instances/hosts.
This way, you can also use a direct raw URL (Gitlab, Github, pastebin, etc.) using a simple text format and easily maintain small communities or instance recommendation lists.
PeerTube requires NodeJS v10 or v12.
Add redundancy CLI: https://docs.joinpeertube.org/#/maintain-tools?id=peertube-redundancyjs.
Add ability to pass remaining options to youtube-dl binary in peertube-import script.
Important HLS storage configuration: https://github.com/Chocobozzz/PeerTube/blob/develop/support/docker/production/config/production.yaml#L48.
Add DKIM support to Docker.
Add nginx configuration to redirect videos to an S3 bucket and update of the corresponding documentation.
Add embed API (https://docs.joinpeertube.org/#/api-embed-player):
playbackState can be ended
playbackStatusUpdate has a duration field
setCaption and getCaptions method
2.2.003 Jun 2020 18:25
minor feature:
/! VERY IMPORTANT /! We added a unique index on actors usernames to some federation.
Please check now if you have conflicts:
Go inside your database using sudo -u postgres psql peertube_prod and run select "preferredUsername" from actor where "serverId" is null group by "preferredUsername" having count(*) 1;
If you have some results, it seems you have duplicate channels/accounts.
For every entry, you'll have to change the preferredUsername of the entry you want (so they are unique).
The updated actors could have some federations.
Go inside your database using sudo -u postgres psql peertube_prod and run select "preferredUsername" from actor where "serverId" is null group by "preferredUsername" having count(*) 1;.
If you have some results, it seems you have duplicate channels/accounts.
For every entry, you'll have to change the preferredUsername of the entry you want (so they are unique).
The updated actors could have some federations.
Changed auto_follow_index setting configuration: you now have to use the complete URL in index_url.
If you used the default one, you now need to use https://instances.joinpeertube.org/api/v1/instances/hosts.
This way, you can also use a direct raw URL (Gitlab, Github, pastebin, etc.) using a simple text format and easily maintain small communities or instance recommendation lists.
PeerTube requires NodeJS v10 or v12.
Add redundancy CLI: https://docs.joinpeertube.org/#/maintain-tools?id=peertube-redundancyjs.
Add ability to pass remaining options to youtube-dl binary in peertube-import script.
Important HLS storage configuration: https://github.com/Chocobozzz/PeerTube/blob/develop/support/docker/production/config/production.yaml#L48.
Add DKIM support to Docker.
Add nginx configuration to redirect videos to an S3 bucket and update of the corresponding documentation.
Add embed API (https://docs.joinpeertube.org/#/api-embed-player):
playbackState can be ended
playbackStatusUpdate has a duration field
setCaption and getCaptions method
2.2.0-rc.119 May 2020 19:45
minor feature:
Youtube-dl in docker image.
Playlist creation/update.
Fetch of instance config in client.
Manual approves followers only for the instance (and not accounts/channels).
Avatar update.
CSP for embeds.
Scroll of the menu on mobile.
CPU usage of PostgreSQL.
Embed for iOS.
2.1.128 Feb 2020 14:45
minor feature:
Youtube-dl in docker image.
Playlist creation/update.
Fetch of instance config in client.
Manual approves followers only for the instance (and not accounts/channels).
Avatar update.
CSP for embeds.
Scroll of the menu on mobile.
CPU usage of PostgreSQL.
Embed for iOS.
2.1.012 Feb 2020 20:25
minor feature:
/! VERY IMPORTANT /! You need to execute manually a script (can be executed after your upgrade, while your PeerTube instance is running) to create HLS video torrents:
cd /var/www/peertube/peertube-latest sudo -u peertube NODE_CONFIG_DIR=/var/www/peertube/config NODE_ENV=production node dist/scripts/migrations/peertube-2.1.js
.
cd /var/www/peertube/peertube-latest sudo -u peertube NODE_CONFIG_DIR=/var/www/peertube/config NODE_ENV=production node dist/scripts/migrations/peertube-2.1.js.
/! VERY IMPORTANT /! In the next PeerTube release (v2.2.0), we'll add a unique index on actors usernames to some federation.
Please check now if you have conflicts using:
Go inside your database using sudo -u postgres psql peertube_prod and run select "preferredUsername" from actor where "serverId" is null group by "preferredUsername" having count(*) 1;
If you have some results, it seems you have duplicate channels/accounts.
For every entry, you'll have to change the preferredUsername of the entry you want (so they are unique).
The updated actors could have some federations.
Go inside your database using sudo -u postgres psql peertube_prod and run select "preferredUsername" from actor where "serverId" is null group by "preferredUsername" having count(*) 1;.
If you have some results, it seems you have duplicate channels/accounts.
For every entry, you'll have to change the preferredUsername of the entry you want (so they are unique).
The updated actors could have some federations.
We now use Buster for the docker image, so the image name changed:
production-stretch becomes production-buster
v2.x.x-stretch becomes v2.x.x-buster
.
production-stretch becomes production-buster.
v2.x.x-stretch becomes v2.x.x-buster.
Users cannot create more than 20 channels now to avoid UX and actor name squatting.
We added a warning if the videos directory is the same than the redundancy one in your configuration file: it can create some.
S3 remote storage: https://docs.joinpeertube.org/#/admin
2.1.0-rc.128 Jan 2020 13:45
minor feature:
Removed old JSON LD signature implementation. There will be some federation incompatibilities with forwarded activities sent by PeerTube instances v2.0.0.
Replaced configuration key email.object with email.subject: 916937d.
Add plugin hook on registration filter:api.user.signup.allowed.result.
traefik version docker compose (you need to update your docker-compose.yml file: f1b3888).
Add --tmpdir, --first, --last and --verbose level parameters to peertube-import-videos script (Yetangitu).
Improve REST API documentation.
Improve plugin management documentation.
Better instance admin responsibility:
Add ability to set more information about your instance. This will be used in the future on https://joinpeertube.org to help people find
the appropriate PeerTube instance on which they can register:
Main Categories
Languages you/your moderators speak
Code of Conduct
Moderation information (who moderates your instance, NSFW policy etc)
Who is behind the instance (a single person? non-profit?)
Why did the admin create this instance
How long the admin plan to maintain the instance
How the administrator will finance the PeerTube server
Hardware information
Add these information in the about page and in the signup page.
Add a welcome modal at first admin login with some explanations of PeerTube and some useful links
Add warning modal when administrators enable or enabled signup but did not fill some important instance information
(for now the instance name, terms, administrator and maintenance lifetime information).
.
Add ability to set more information about your instance. This will be used in the future on https://joinpeertube.org to help people find
the appropriate PeerTube instance on which they can register:
Main Categories
Languages you/your moderators speak
Code of Conduct
Moderation information (who moderates your instance, NSFW policy etc)
Who is behind the instance (a single person? non-profit?)
Why did the admin create this instance
How long the admin plan to m
2.0.013 Nov 2019 13:35
major feature:
Features
Better instance admin responsibility:
Add ability to set more information about your instance. This will be used in the future on https://joinpeertube.org to help people find
the appropriate PeerTube instance on which they can register:
Main Categories
Languages you/your moderators speak
Code of Conduct
Moderation information (who moderates your instance, NSFW policy etc)
Who is behind the instance (a single person? non-profit?)
Why did the admin create this instance
How long the admin plan to maintain the instance
How the administrator will finance the PeerTube server
Hardware information
Add these information in the about page and in the signup page
Add a welcome modal at first admin login with some explanations of PeerTube and some useful links
Add warning modal when administrators enable or enabled signup but did not fill some important instance information
(for now the instance name, terms, administrator and maintenance lifetime information)
Add ability to automatically follow back other instances
Add ability to automatically follow the public registry instances
Add Most liked videos page (@alcalyn)
Add a drag drop delay on playlist videos to allow user scroll on small screens (@alcalyn)
Allow to toggle video publication date to display absolute date (@alcalyn)
Add statistics in about page (@alcalyn)
Improve the feature table in about page
Add contributors in about page
Clearer warning of IP address leaking on embedded videos (@robinkooli)
Case insensitive search on video tags
Add video name in "video publish notification"
Add ability to autoplay next recommended video (opt in) (@LoveIsGrief)
Add link behind the subscribe via RSS button (@frankstrater)
Support text/plain caption files
Speedup theme injection
Add ability to enable H