Skip to content

Releases: Chocobozzz/PeerTube

v4.2.0-rc.1

23 May 06:34
v4.2.0-rc.1
2e94dde
Compare
Choose a tag to compare
v4.2.0-rc.1 Pre-release
Pre-release

IMPORTANT NOTES

  • Important You need to execute manually a migration script (can be executed after your upgrade, while your PeerTube instance is running) to generate smaller avatar miniatures:
    • 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-4.2.js
    • Docker installation: cd /var/www/peertube-docker && docker-compose exec -u peertube peertube node dist/scripts/migrations/peertube-4.2.js
  • Important SQL migrations (in particular 0685-multiple-actor-images) can take several minutes to complete
  • Important You must update your nginx configuration to support video web editor: https://docs.joinpeertube.org/install-any-os?id=nginx
  • REST API:

Maintenance

  • Add client.videos.resumable_upload.max_chunk_size config option #4857
  • Add object_storage.upload_acl config option #4861
  • Add ability to set RTMP/RTMPS listening hostname using rtmp.hostname/rtmps.hostname and public RTMP/RTMPS hostname using rtmp.public_hostname/rtmps.public_hostname

Docker

  • Use NodeJS 16 in PeerTube docker image: administrators may have to reinstall PeerTube plugins that use native NodeJS dependencies
  • Support readonly tmp directory (if you want to use tmp directory as a volume)

Plugins/Themes/Embed API

  • Theme:
    • Add --mainBackgroundHoverColor and --greySecondaryBackgroundColor CSS variables
  • Add server plugin hooks
    • filter:api.video-playlist.videos.list.params and filter:api.video-playlist.videos.list.result
  • Support getSettings(), isLoggedIn() and getAuthHeader() client plugin helpers in embed
  • Player URL query parameters:
    • Support controlBar=0 to hide player control bar. See the documentation for more information

Features

  • 🎉 Add video edition from the PeerTube web interface 🎉
    • Cut the video (set a new start/new end)
    • Add an intro at the beginning and/or an outro at the end of the video
    • Add an icon/watermark in the top right corner of the video
    • PeerTube will automatically transcode the new video and replace the original one
    • Funded by "la Direction du numérique du Ministère de l'Éducation Nationale, de la Jeunesse et des Sports"
  • 🎉 Add advanced statistics of a specific video 🎉
    • Provide Average watch time, Total watch time and Peak viewers video statistics
    • Display total viewers, aggregated watch time and audience retention in interactive time series graphs
    • Display viewer countries in bar chart if not disabled by admins
    • Funded by HowlRound Theatre Commons at Emerson College
  • 🎉 Add latency setting support for lives (small latency without P2P or high latency to increase P2P ratio) 🎉
  • 🎉 Add ability to save a replay of every streaming session of a permanent live 🎉
    • Funded by HowlRound Theatre Commons at Emerson College
  • Add simple subtitle edition from video captions tab in video edition form #4666
  • Display live streaming sessions details in permanent live information modal
  • Add ability to also mute users when banning them #4660
  • UI improvements:
    • Add ability for admins to display author avatar in video miniatures #4639 #4823
    • Display author avatar in embed
    • Move admin comments list in Overviews menu
    • Add a Refresh button to admin comments list
    • Add ability to sort videos by total views
  • Add Persian locale support
  • Add previous page redirection support on external auth login
  • Support proxy for object storage #4973
  • Add "Only display embed URL" checkbox in share modal

Bug fixes

  • Video uploads fixes:
    • Fix invalid token during long uploads
    • Fix upload on server with a slow disk
    • Fix upload of some videos with unknown duration (.m2v for example)
    • Fix 2 hours limit on uploads
    • Fix upload page title #4904
    • Fix video upload with some characters in filename
    • Fix .ac3 and .mts upload on some OS
  • Fix avatar with account username starting with a number
  • Fix client html cache on theme update
  • Disallow unlisted video indexation
  • Allow oembed to fetch unlisted videos
  • Stop removing remote Mastodon rates
  • Fix email links displayed twice in text version
  • Fix user quota inconsistencies in admin when users use lives
  • Fix admin instance following list when sorting by Redundancy allowed
  • More reliable object storage upload when using multipart #4903
  • Correctly handle HTTP signature draft 11 requests (without date header but with (created))
  • Fix ctrl + 0-9 player hotkeys conflicting with web browser hotkeys

v4.1.1

08 Mar 09:46
v4.1.1
70f3012
Compare
Choose a tag to compare

Security

  • Strip EXIF data when processing images

Docker

  • Fix videos import by installing python 3
  • Install git package (may be needed to install some plugins)

Bug fixes

  • Fix error when updating a live
  • Fix performance regression when rendering HTML and feeds
  • Fix player stuck by HTTP request error

v4.1.0

23 Feb 08:35
v4.1.0
57a8d07
Compare
Choose a tag to compare

IMPORTANT NOTES

  • PeerTube does not support NodeJS 12 anymore

Plugins/Themes/Embed API

  • Introduce ability for plugins to create client pages: https://docs.joinpeertube.org/contribute-plugins?id=create-client-page
  • Plugins that register custom video fields can choose in which tab they want to display them and can report errors: https://docs.joinpeertube.org/contribute-plugins?id=add-custom-fields-to-video-form
  • Add new client plugin id selectors
    • Add #plugin-selector-about-instance-moderation, #plugin-selector-about-instance-other-information, #plugin-selector-about-instance-features, #plugin-selector-about-instance-statistics, #plugin-selector-about-menu-instance, #plugin-selector-about-menu-peertube, #plugin-selector-about-menu-network in about page #4597
    • Add #plugin-selector-menu-user-dropdown-language-item in menu #4597
  • Add client plugin hooks
    • filter:login.instance-about-plugin-panels.create.result and filter:signup.instance-about-plugin-panels.create.result to add custom instance information in login/signup pages
  • Add server plugin hooks
    • filter:api.server.stats.get.result
    • filter:api.video.upload.video-attribute.result, filter:api.video.import-url.video-attribute.result, filter:api.video.import-torrent.video-attribute.result, filter:api.video.live.video-attribute.result when creating a video object
    • action:api.video-caption.created and action:api.video-caption.deleted #4650
  • Server helpers
    • videos.getFiles(videoId: number) to list video files (webtorrent, hls and thumbnail files)
    • videos.ffprobe(path: string) to get ffprobe JSON result
  • Publish @peertube/peertube-type NPM module that can be used by TypeScript plugins
  • Add ability to disable P2P in embed using p2p query parameter in embed URL

Maintenance

  • REST API
    • Deprecate webTorrentEnabled in favour of p2pEnabled for user model
    • Add ability to pause/resume the job queue
  • Also publish stable releases on https://builds.joinpeertube.org/release
  • Add ability for admins to specify youtube-dl/yt-dlp python binary path #4706
  • PeerTube server startup is faster

Security

  • Check video privacy before listing or accepting captions, comments or rates
  • Check video import target URL does not resolve to internal IP. This technique has some limits so if you have private HTTP services on your server/network publicly accessible, we recommend to use a proxy or a dedicated interface for PeerTube

CLI tools

  • Also remove HLS files when using prune-storage script
  • Support --plugin-version option when installing a plugin #4599

Features

  • 🎉 Player improvements
    • Increase control bar size on desktop & mobile
    • Add overlay on tap to easily play/pause the video on mobile
    • Automatically move to landscape when full screen a video on mobile
    • Add fast forward/rewind on double tap on mobile
    • Cleanup, fix and add player hotkeys
    • Keep control bar displayed when settings panel is opened
    • Faster hiding transition for control bar
    • Stop confusing peer indication in control bar when p2p is disabled
    • Try to fast forward video on HLS decode error
  • 🎉 More admin customizations
    • Specify default Publish video attributes (download enabled, comments enabled, privacy, licence)
    • Choose to automatically redirect users on the external auth platform on login button click
    • Set default P2P policy for the player
  • Search improvements
    • Add Result type filter in search (videos, channels or playlists)
    • Display only video results when searching on video metadata (tags, categories etc)
  • Video imports
    • Users can cancel and delete video imports
    • Add ability to filter video imports by target URL
  • Add ability for users to delete individual elements in videos history
  • Show date and views counter in playlist element miniature #4396
  • Add norsk locale support
  • Check mute status and display mute badges in channel and account pages
  • Add No linguistic content video language option #4631
  • Don't send notifications to admins/moderators if an admin/moderator reported an abuse
  • Add ability for moderators/admins to edit any channel #4608
  • Add a refresh button to admin videos overview page #4753
  • Add Official badge to official plugins in admin plugin pages
  • Automatically clean unavailable remote ActivityPub resources
  • Media RSS feed displays video file as default enclosure instead of torrent
  • Use white background for PeerTube icons (instead of transparency)
  • Show private badge for private videos in playlists #4767

Bug fixes

  • Fix weird require bug on plugin upgrade
  • Fix plugin storage return value when storing a JSON array #4640
  • Decrease delay to cleanup resumable uploads (to 1 hour)
  • Update torrent metadata on video update
  • Fix HLS player with videos that have stream duration inconsistencies
  • Fix player crash if the video contains only audio resolution
  • Fix ffmpeg crash when using a transcoding plugin encoder that doesn't support PeerTube B-frame strategy
  • Fix transcoding failure for audio only uploads
  • Don't run HLS transcoding when running manually WebTorrent transcoding from the admin
  • Don't run audio transcoding with video only file
  • Correctly send new HLS files after re-transcoding to object storage
  • Fix stuck state when move transcoding job failed
  • Correctly display internal videos of internal subscriptions
  • Correctly display all videos history to users
  • Fix video upload with big preview file
  • Fix description/comment timestamp click of external video
  • Add missing mediaType information to AP objects
  • Fix abuse list crash on deleted reporter account
  • Convert markdown to HTML/plain text for RSS feeds
  • Search on tags is now case insensitive
  • Forbid comments/captions listing of private/internal videos
  • Prevent video import on non unicast ips
  • Improve markdown to plain text converter, especially when handling lists
  • Fix scheduled publication on upload
  • Fix youtube-dl max buffer size error
  • Hide remote subscribe if user is logged in
  • Fix video file storage column inconsistency

v4.1.0-rc.1

10 Feb 09:01
v4.1.0-rc.1
adc61ac
Compare
Choose a tag to compare
v4.1.0-rc.1 Pre-release
Pre-release

IMPORTANT NOTES

  • NodeJS 12 support is deprecated and will be removed in PeerTube 4.2

Plugins/Themes/Embed API

  • Introduce ability for plugins to create client pages: https://docs.joinpeertube.org/contribute-plugins?id=create-client-page
  • Plugins that register custom video fields can choose in which tab they want to display them and can report errors: https://docs.joinpeertube.org/contribute-plugins?id=add-custom-fields-to-video-form
  • Add new client plugin id selectors
    • Add #plugin-selector-about-instance-moderation, #plugin-selector-about-instance-other-information, #plugin-selector-about-instance-features, #plugin-selector-about-instance-statistics, #plugin-selector-about-menu-instance, #plugin-selector-about-menu-peertube, #plugin-selector-about-menu-network in about page #4597
    • Add #plugin-selector-menu-user-dropdown-language-item in menu #4597
  • Add client plugin hooks
    • filter:login.instance-about-plugin-panels.create.result and filter:signup.instance-about-plugin-panels.create.result to add custom instance information in login/signup pages
  • Add server plugin hooks
    • filter:api.server.stats.get.result
    • filter:api.video.upload.video-attribute.result, filter:api.video.import-url.video-attribute.result, filter:api.video.import-torrent.video-attribute.result, filter:api.video.live.video-attribute.result when creating a video object
    • action:api.video-caption.created and action:api.video-caption.deleted #4650
  • Server helpers
    • videos.getFiles(videoId: number) to list video files (webtorrent, hls and thumbnail files)
    • videos.ffprobe(path: string) to get ffprobe JSON result
  • Publish @peertube/peertube-type NPM module that can be used by TypeScript plugins
  • Add ability to disable P2P in embed using p2p query parameter in embed URL

Maintenance

  • REST API
    • Deprecate webTorrentEnabled in favour of p2pEnabled for user model
    • Add ability to pause/resume the job queue
  • Also publish stable releases on https://builds.joinpeertube.org/release
  • Add ability for admins to specify youtube-dl/yt-dlp python binary path #4706
  • PeerTube server startup is faster

CLI tools

  • Also remove HLS files when using prune-storage script
  • Support --plugin-version option when installing a plugin #4599

Features

  • 🎉 Player improvements
    • Increase control bar size on desktop & mobile
    • Add overlay on tap to easily play/pause the video on mobile
    • Automatically move to landscape when full screen a video on mobile
    • Add fast forward/rewind on double tap on mobile
    • Cleanup, fix and add player hotkeys
    • Keep control bar displayed when settings panel is opened
    • Faster hiding transition for control bar
    • Stop confusing peer indication in control bar when p2p is disabled
    • Try to fast forward video on HLS decode error
  • 🎉 More admin customizations
    • Specify default Publish video attributes (download enabled, comments enabled, privacy, licence)
    • Choose to automatically redirect users on the external auth platform on login button click
    • Set default P2P policy for the player
  • Search improvements
    • Add Result type filter in search (videos, channels or playlists)
    • Display only video results when searching on video metadata (tags, categories etc)
  • Video imports
    • Users can cancel and delete video imports
    • Add ability to filter video imports by target URL
  • Add ability for users to delete individual elements in videos history
  • Show date and views counter in playlist element miniature #4396
  • Add norsk locale support
  • Check mute status and display mute badges in channel and account pages
  • Add No linguistic content video language option #4631
  • Don't send notifications to admins/moderators if an admin/moderator reported an abuse
  • Add ability for moderators/admins to edit any channel #4608
  • Add a refresh button to admin videos overview page #4753
  • Add Official badge to official plugins in admin plugin pages
  • Automatically clean unavailable remote ActivityPub resources
  • Media RSS feed displays video file as default enclosure instead of torrent
  • Use white background for PeerTube icons (instead of transparency)
  • Show private badge for private videos in playlists #4767

Bug fixes

  • Fix weird require bug on plugin upgrade
  • Fix plugin storage return value when storing a JSON array #4640
  • Decrease delay to cleanup resumable uploads (to 1 hour)
  • Update torrent metadata on video update
  • Fix HLS player with videos that have stream duration inconsistencies
  • Fix player crash if the video contains only audio resolution
  • Fix ffmpeg crash when using a transcoding plugin encoder that doesn't support PeerTube B-frame strategy
  • Fix transcoding failure for audio only uploads
  • Don't run HLS transcoding when running manually WebTorrent transcoding from the admin
  • Don't run audio transcoding with video only file
  • Correctly send new HLS files after re-transcoding to object storage
  • Fix stuck state when move transcoding job failed
  • Correctly display internal videos of internal subscriptions
  • Correctly display all videos history to users
  • Fix video upload with big preview file
  • Fix description/comment timestamp click of external video
  • Add missing mediaType information to AP objects
  • Fix abuse list crash on deleted reporter account
  • Convert markdown to HTML/plain text for RSS feeds
  • Search on tags is now case insensitive
  • Forbid comments/captions listing of private/internal videos
  • Prevent video import on non unicast ips
  • Improve markdown to plain text converter, especially when handling lists
  • Fix scheduled publication on upload

v4.0.0

13 Dec 08:26
v4.0.0
37a5d63
Compare
Choose a tag to compare

IMPORTANT NOTES

  • Important You need to execute manually a migration script (can be executed after your upgrade, while your PeerTube instance is running) to migrate HLS files name:
    • 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-4.0.js
    • Docker installation: cd /var/www/peertube-docker && docker-compose exec -u peertube peertube node dist/scripts/migrations/peertube-4.0.js
  • Important We fixed configuration inconsistencies and added some keys. You must change/add them in your production.yaml
    • log.rotation.maxFileSize becomes log.rotation.max_file_size
    • log.rotation.maxFiles becomes log.rotation.max_files
    • log.anonymizeIP becomes log.anonymize_ip
    • Removed import.http.proxy configuration: use HTTP_PROXY and HTTPS_PROXY environment variables instead
    • Added storage.bin in configuration file
  • REST API: Deprecate filter videos list query parameter in favour of isLocal and include
  • PeerTube is compatible with ffmpeg 4.4.1 but is not compatible with ffmpeg 4.4.0
  • Removed deprecated /static/torrents route
  • We changed the live views and viewers system, that could lead to federation inconsistencies with instances < 4.0.0 for these specific counters

Maintenance

  • Add ability for sysadmins to disable web configuration edition #4315
  • YoutubeDL:
    • Support yt-dlp (recommended due to unmaintained youtube-dl)
    • Add ability to set release URL in configuration
  • Add ability to override default-playlist.png, default-avatar-account.png, default-avatar-video-channel.png using storage.client_overrides configuration #4392

Plugins/Themes/Embed API

Documentation: https://docs.joinpeertube.org/api-plugins

Docker

  • We now use Bullseye for Docker images, so the image name changed:
    • production-buster becomes production-bullseye
    • v4.x.x-buster becomes v4.x.x-bullseye
  • Allow configuration to be static/readonly #4315

CLI tools

Features

  • 🎉 Add videos overview in admin
    • List all available videos on the instance
    • Display video information summary: file type, file size, privacy, state, embed...
    • Many filters available: videos with/without HLS/WebTorrent, remote/local videos, exclude muted accounts...
    • Run WebTorrent/HLS transcoding
    • Remove WebTorrent/HLS video files
    • Bulk actions: remove, block, run transcoding, delete video files...
  • Correctly generate thumbnails/previews for portrait videos
  • Keep input image ratio for banners, avatars, thumbnails...
  • Support 144p transcoding #4492
  • Support RTMPS
  • UI:
    • Live:
      • Specify live type at first step
      • Improve Permanent live label using Recurring live expression
    • Clearer moderation dropdowns using section titles
    • Improve admin tables responsive
    • Add warning when trying to share a private playlist/video #4469
    • Change Sort by views to Sort by recent views #4483
    • Add Next video to be played in watch page if autoplay is enabled #4497
    • Add embed preview in share modal
    • Add user username in modal when deleting a user
    • Add video name in modal when blocking/removing a video
    • Improve notification settings organization
  • Video/live views:
    • Add ability for admins to change local buffer update interval
    • Add ability for admins to change view expiration for a specific IP
    • Introduce viewers attribute for live videos and reduce delay to see viewers update in the interface
    • Take into accounts views created during the live when saving replay
  • Add markdown support for playlist description #4489
  • Improve video playback when having invalid redundancy URLs
  • Load video resolutions before video starts in player settings menu
  • Optimize federation:
    • Correctly set HTTP request timeout
    • Process slow/bad targets in a dedicated queue
    • Optimize ActivityPub outbox fetch
  • Automatically update publishedAt attribute when re-streaming in a permanent live
  • Add ability for users to view their followers
  • Add ability for users to filter their videos per channel
  • Add ability for admins to show author display name instead of username in video miniatures #4422
  • Add ability for admins to filter logs by tags
  • Add ability for admins to configure per user channels limit #4491
  • Add available instance themes and plugins in /about/peertube page
  • Remove contributors list from /about/peertube since some contributors don't want their name to be displayed on unknown PeerTube instances
  • Add Transcoding failed video state #4525
  • Add ability to make a search using a URL containing query parameters
  • Optimize channel with video component in homepage

Bug fixes

  • Alert user when aborting video upload
  • Fix youtube-dl update with proxy
  • Fix My videos search on page refresh
  • Fix homepage request error when having many elements (channels, videos...)
  • Prevent multiple post-process triggering of upload-resumable #4175
  • Fix remote interaction on remote content
  • Fix HLS transcoding job when running create-transcoding-job CLI
  • Fix import error log on failed import
  • Fix transcoding with very low input bitrate
  • Update updatedAt video attribute on thumbnail update
  • Fix local video concurrent update
  • Fix redundancy error when PeerTube tries to extend/remove redundancy
  • Fix account switch in account channels page
  • Hide job progress information for jobs that don't support it
  • Fix player settings menu keyboard navigation
  • Fix player placeholder width
  • Fix playlist miniature size with big description
  • Correctly escape meta tags
  • Fix audio upload client bug if not enabled by instance
  • Add header Vary Accept-Language #4588
  • Fix additional extensions admin config description
  • Fix upload of video with long filename
  • Fix pending transcoding counter with failed job
  • Fix client header search on ios
  • Fix iframe attribute allow-popups for oembed
  • Fix theme update when logged in
  • Fix homepage title

v4.0.0-rc.1

30 Nov 08:06
v4.0.0-rc.1
7e587ea
Compare
Choose a tag to compare
v4.0.0-rc.1 Pre-release
Pre-release

IMPORTANT NOTES

  • Important You need to execute manually a migration script (can be executed after your upgrade, while your PeerTube instance is running) to migrate HLS files name:
    • 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-4.0.js
    • Docker installation: cd /var/www/peertube-docker && docker-compose exec -u peertube peertube node dist/scripts/migrations/peertube-4.0.js
  • Important We fixed configuration inconsistencies and added some keys. You must change/add them in your production.yaml
    • log.rotation.maxFileSize becomes log.rotation.max_file_size
    • log.rotation.maxFiles becomes log.rotation.max_files
    • log.anonymizeIP becomes log.anonymize_ip
    • Removed import.http.proxy configuration: use HTTP_PROXY and HTTPS_PROXY environment variables instead
    • Added storage.bin in configuration file
  • REST API: Deprecate filter videos list query parameter in favour of isLocal and include
  • PeerTube is compatible with ffmpeg 4.4.1 but is not compatible with ffmpeg 4.4.0
  • Removed deprecated /static/torrents route
  • We changed the live views and viewers system, that could lead to federation inconsistencies with instances < 4.0.0 for these specific counters

Maintenance

  • Add ability for sysadmins to disable web configuration edition #4315
  • YoutubeDL:
    • Support yt-dlp (recommended due to unmaintained youtube-dl)
    • Add ability to set release URL in configuration
  • Add ability to override default-playlist.png, default-avatar-account.png, default-avatar-video-channel.png using storage.client_overrides configuration #4392

Plugins/Themes/Embed API

Documentation: https://docs.joinpeertube.org/api-plugins

Docker

  • We now use Bullseye for Docker images, so the image name changed:
    • production-buster becomes production-bullseye
    • v4.x.x-buster becomes v4.x.x-bullseye
  • Allow configuration to be static/readonly #4315

CLI tools

Features

  • 🎉 Add videos overview in admin
    • List all available videos on the instance
    • Display video information summary: file type, file size, privacy, state, embed...
    • Many filters available: videos with/without HLS/WebTorrent, remote/local videos, exclude muted accounts...
    • Run WebTorrent/HLS transcoding
    • Remove WebTorrent/HLS video files
    • Bulk actions: remove, block, run transcoding, delete video files...
  • Correctly generate thumbnails/previews for portrait videos
  • Keep input image ratio for banners, avatars, thumbnails...
  • Support 144p transcoding #4492
  • Support RTMPS
  • UI:
    • Live:
      • Specify live type at first step
      • Improve Permanent live label using Recurring live expression
    • Clearer moderation dropdowns using section titles
    • Improve admin tables responsive
    • Add warning when trying to share a private playlist/video #4469
    • Change Sort by views to Sort by recent views #4483
    • Add Next video to be played in watch page if autoplay is enabled #4497
    • Add embed preview in share modal
    • Add user username in modal when deleting a user
    • Add video name in modal when blocking/removing a video
    • Improve notification settings organization
  • Video/live views:
    • Add ability for admins to change local buffer update interval
    • Add ability for admins to change view expiration for a specific IP
    • Introduce viewers attribute for live videos and reduce delay to see viewers update in the interface
    • Take into accounts views created during the live when saving replay
  • Add markdown support for playlist description #4489
  • Improve video playback when having invalid redundancy URLs
  • Load video resolutions before video starts in player settings menu
  • Optimize federation:
    • Correctly set HTTP request timeout
    • Process slow/bad targets in a dedicated queue
    • Optimize ActivityPub outbox fetch
  • Automatically update publishedAt attribute when re-streaming in a permanent live
  • Add ability for users to view their followers
  • Add ability for users to filter their videos per channel
  • Add ability for admins to show author display name instead of username in video miniatures #4422
  • Add ability for admins to filter logs by tags
  • Add ability for admins to configure per user channels limit #4491
  • Add available instance themes and plugins in /about/peertube page
  • Remove contributors list from /about/peertube since some contributors don't want their name to be displayed on unknown PeerTube instances
  • Add Transcoding failed video state #4525
  • Add ability to make a search using a URL containing query parameters
  • Optimize channel with video component in homepage

Bug fixes

  • Alert user when aborting video upload
  • Fix youtube-dl update with proxy
  • Fix My videos search on page refresh
  • Fix homepage request error when having many elements (channels, videos...)
  • Prevent multiple post-process triggering of upload-resumable #4175
  • Fix remote interaction on remote content
  • Fix HLS transcoding job when running create-transcoding-job CLI
  • Fix import error log on failed import
  • Fix transcoding with very low input bitrate
  • Update updatedAt video attribute on thumbnail update
  • Fix local video concurrent update
  • Fix redundancy error when PeerTube tries to extend/remove redundancy
  • Fix account switch in account channels page
  • Hide job progress information for jobs that don't support it
  • Fix player settings menu keyboard navigation
  • Fix player placeholder width
  • Fix playlist miniature size with big description
  • Correctly escape meta tags

v3.4.1

11 Oct 07:29
v3.4.1
3edbafb
Compare
Choose a tag to compare

Bug fixes

  • Fix broken PeerTube when cookies are disabled or if the embed iframe does not have appropriate options
  • Fix 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

v3.4.0

09 Sep 08:59
v3.4.0
c6fb386
Compare
Choose a tag to compare

IMPORTANT NOTES

  • Important: Due to a bug 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

Plugins/Themes/Embed API

Documentation: https://docs.joinpeertube.org/api-plugins

  • 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
  • Add server plugin hooks:
    • filter:api.overviews.videos.list.params and filter:api.overviews.videos.list.result

Custom markup API

Documentation: https://docs.joinpeertube.org/api-custom-client-markup

  • Add ability to only display VOD or live videos in <peertube-videos-list> element
  • <peertube-container> fills all available width. Can be changed using data-justify-content attribute

Maintenance

  • Remove StandardOutput and StandardError settings from systemd service template #4300
  • Use random UUIDs for video, torrent and streaming playlist files
    • Filename is regenerated when the file content changes: allows admins to use aggressive caching

CLI tools

  • Remove unmaintened optimize-old-videos.js script
  • Add short UUID support in video scripts

Features

  • 🎉 Add video filters to common video pages (account videos, channel videos, recently added/local/trending videos...)
    • Change video sort (recently added, hot, views...)
    • Only display live/VOD videos
    • Filter by languages/categories
    • Hide or display sensitive content
    • Choose to display all videos or only local videos
  • 🎉 Beta: Add support for saving video files in object storage #4290
  • 🎉 Add ability for instances to follow any actor (so specific accounts and channels)
  • Updated HLS.js (library to play HLS playlists in PeerTube player) to V1:
    • Remember last bandwidth to prevent resolution change at the beginning of the video
    • Automatically downgrade resolution if bandwidth is too low
    • Add latency metric for live videos in stats for nerd card
    • Immediate quality change when the user clicks on a specific resolution
  • Add ability to search by PeerTube host in search filters
  • Disallow search engine indexation of remote channels/accounts
  • Transcoding:
    • Improve bitrate calculation using "bit per pixel" method
    • Limit live bitrate to input bitrate
  • Accessibility/UI:
    • Alert user for low quota and video auto-block on upload page #4336
    • Display a modal when logged in to explain why and where set up the account profile #4352
    • Display messages to inform why and where set up channels in My library pages #4352
    • Display a warning when using capitalized letter for the email/username in the login form
    • Display a message in embed on unsupported web browser
  • Support out proxy using env variables (HTTP_PROXY and HTTPS_PROXY) #4346
  • Support Latin language for videos

Bug fixes

  • Fix PeerTube button link in embed
  • Don't remove existing redundancies on host redundancy update
  • Remove thumbnail flash when autoplay is enabled in embed
  • Fetch data in bulk for the homepage, fixing API rate limit errors
  • Fix channel name validator consistency between client and server
  • Fix resumable upload without preview file in the body
  • Fix redundancy of big HLS files
  • Fix stats for nerd card label width
  • Fix stats for nerd card resolution
  • Fix uploading videos with empty tags in CLI tools
  • Fix HLS player on non HTTPS instances
  • Hide schedule privacy if private was removed by a plugin
  • Fix moderation embeds
  • Fix description timestamp click
  • Fix privacy descriptions
  • Safer avatar, banner and video preview
  • Fix broken delete buttons of admin federation lists #4378
  • More robust webtorrent redundancy download
  • Fix hls redundancy in pruning script
  • Fix compat' with old web browsers (Pale Moon, Safari 11, iOS 11, old webkit...))
  • Fix silent 500 after resumable upload
  • Fix HTML config injection with custom HTML/CSS
  • Fix video upload on iOS

v3.4.0-rc.1

31 Aug 06:47
v3.4.0-rc.1
92cb986
Compare
Choose a tag to compare
v3.4.0-rc.1 Pre-release
Pre-release

IMPORTANT NOTES

  • Important: Due to a bug 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

Plugins/Themes/Embed API

Documentation: https://docs.joinpeertube.org/api-plugins

  • 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
  • Add server plugin hooks:
    • filter:api.overviews.videos.list.params and filter:api.overviews.videos.list.result

Custom markup API

Documentation: https://docs.joinpeertube.org/api-custom-client-markup

  • Add ability to only display VOD or live videos in <peertube-videos-list> element
  • <peertube-container> fills all available width. Can be changed using data-justify-content attribute

Maintenance

  • Remove StandardOutput and StandardError settings from systemd service template #4300
  • Use random UUIDs for video, torrent and streaming playlist files
    • Filename is regenerated when the file content changes: allows admins to use aggressive caching

CLI tools

  • Remove unmaintened optimize-old-videos.js script
  • Add short UUID support in video scripts

Features

  • 🎉 Add video filters to common video pages (account videos, channel videos, recently added/local/trending videos...)
    • Change video sort (recently added, hot, views...)
    • Only display live/VOD videos
    • Filter by languages/categories
    • Hide or display sensitive content
    • Choose to display all videos or only local videos
  • 🎉 Beta: Add support for saving video files in object storage #4290
  • 🎉 Add ability for instances to follow any actor (so specific accounts and channels)
  • Updated HLS.js (library to play HLS playlists in PeerTube player) to V1:
    • Remember last bandwidth to prevent resolution change at the beginning of the video
    • Automatically downgrade resolution if bandwidth is too low
    • Add latency metric for live videos in stats for nerd card
    • Immediate quality change when the user clicks on a specific resolution
  • Add ability to search by PeerTube host in search filters
  • Disallow search engine indexation of remote channels/accounts
  • Transcoding:
    • Improve bitrate calculation using "bit per pixel" method
    • Limit live bitrate to input bitrate
  • Accessibility/UI:
    • Alert user for low quota and video auto-block on upload page #4336
    • Display a modal when logged in to explain why and where set up the account profile #4352
    • Display messages to inform why and where set up channels in My library pages #4352
    • Display a warning when using capitalized letter for the email/username in the login form
  • Support out proxy using env variables (HTTP_PROXY and HTTPS_PROXY) #4346

Bug fixes

  • Fix PeerTube button link in embed
  • Don't remove existing redundancies on host redundancy update
  • Remove thumbnail flash when autoplay is enabled in embed
  • Fetch data in bulk for the homepage, fixing API rate limit errors
  • Fix channel name validator consistency between client and server
  • Fix resumable upload without preview file in the body
  • Fix redundancy of big HLS files
  • Fix stats for nerd card label width
  • Fix stats for nerd card resolution
  • Fix uploading videos with empty tags in CLI tools
  • Fix HLS player on non HTTPS instances
  • Hide schedule privacy if private was removed by a plugin
  • Fix moderation embeds
  • Fix description timestamp click
  • Fix privacy descriptions

v3.3.0

20 Jul 13:13
v3.3.0
f49ff55
Compare
Choose a tag to compare

IMPORTANT NOTES

  • Important: v3.2.0 introduced a pg_dump export bug in the auto upgrade script. v3.2.1 fixed this bug. To upgrade from v3.2.0:
  • Important: Due to a bug in ffmpeg, PeerTube is not compatible with ffmpeg 4.4. See #3990

Maintenance

  • 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

Docker

  • Support log level env parameter PEERTUBE_LOG_LEVEL #4149

Plugins/Themes/Embed API

Features

  • 🎉 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 automatically redirect to the account or channel page #4009
  • 🎉 Add RTL layout support
  • Add ability to use HTML, markdown and custom HTML tags in instance description
  • Default to dark theme (if available) if requested by the web browser
  • Add ability for admins to configure minimum age required in signup page #4010
  • Use a dedicated URL for each tab in publish page
  • Add ability to prefill contact form using query parameters in URL #4161
  • Accessibility/UI:
    • Show logo in mobile view #4141
    • Improve download modal to download video subtitles
    • Better error message when trying to import a torrent containing multiple files
  • REST API errors:
    • Use RFC 7807 format to display errors #4143
    • Improve date format error messages
    • Improve video name and tag error messages
  • Performance:
    • Use raw SQL to fetch a video from database (~ latency / 2)
    • Inject server config in HTML
    • Speed up client plugin loading
    • Cache refresh actor promises
    • Optimize activity pub video update
    • Relax some database transactions
    • Use an internal cache for DNS resolution.
      This should speed up federation and fix weird acquire timeouts in sequelize pool (causing slowness in the client interface)

Bug fixes

  • Fix video upload with a capitalized extension
  • Fix "height not divisible by 2" ffmpeg error
  • Don't count deleted comment for replies
  • Fix UI bug when a plugin deleted the public privacy setting #4163
  • Fix player.getResolutions() embed API when the video is has not been played yet
  • Fix live placeholder image aspect ratio in theatre mode
  • Fix plugin modal/notifier
  • Fix some 404 errors for remote avatar
  • Fix daily quota display
  • Fix ownership change with a live video
  • Correctly handle broken plugin install
  • Fix channel deletion when it has videos
  • Force TLS for webfinger in production
  • Correctly support wav mimetype
  • Fix default video privacy when plugins deleted private video privacy
  • Fix subscribe hotkey
  • Fix HTTP fallback with a video that does not have webtorrent files
  • Fill video information when importing a peertube video