]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - CHANGELOG.md
Update changelog
[github/Chocobozzz/PeerTube.git] / CHANGELOG.md
index 6011c17680e2d2ecb5f5aa7a45c19173e9002ada..9abc75cb6ceae85655ac71e02de0c52f6f883dd6 100644 (file)
@@ -1,9 +1,597 @@
 # Changelog
 
-## v3.1.0-rc.1 (stable ~ late March)
+## v4.1.0-rc.1
 
 ### 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](https://github.com/Chocobozzz/PeerTube/pull/4597)
+   * Add `#plugin-selector-menu-user-dropdown-language-item` in menu [#4597](https://github.com/Chocobozzz/PeerTube/pull/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](https://github.com/Chocobozzz/PeerTube/pull/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](https://www.npmjs.com/package/@peertube/peertube-types) 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](https://github.com/Chocobozzz/PeerTube/pull/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](https://github.com/Chocobozzz/PeerTube/pull/4599)
+
+### Features
+
+ * :tada: 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
+ * :tada: 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](https://github.com/Chocobozzz/PeerTube/issues/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](https://github.com/Chocobozzz/PeerTube/pull/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](https://github.com/Chocobozzz/PeerTube/pull/4608)
+ * Add a refresh button to admin videos overview page [#4753](https://github.com/Chocobozzz/PeerTube/pull/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](https://github.com/Chocobozzz/PeerTube/pull/4767)
+
+### Bug fixes
+
+ * Fix weird `require` bug on plugin upgrade
+ * Fix plugin storage return value when storing a JSON array [#4640](https://github.com/Chocobozzz/PeerTube/pull/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
+
+### 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](https://github.com/Chocobozzz/PeerTube/pull/4315)
+ * YoutubeDL:
+   * Support [yt-dlp](https://github.com/yt-dlp/yt-dlp/) (recommended due to unmaintained [youtube-dl](https://github.com/ytdl-org/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](https://github.com/Chocobozzz/PeerTube/pull/4392)
+
+### Plugins/Themes/Embed API
+
+*Documentation: https://docs.joinpeertube.org/api-plugins*
+
+ * Add client plugin hooks:
+   * `filter:api.video-watch.video-playlist-elements.get.params` and `filter:api.video-watch.video-playlist-elements.get.result` [#4387](https://github.com/Chocobozzz/PeerTube/pull/4387)
+ * Introduce plugin id selectors: https://docs.joinpeertube.org/contribute-plugins?id=plugin-selector-on-html-elements
+   * Add `#plugin-selector-login-form` to login form
+
+### 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](https://github.com/Chocobozzz/PeerTube/pull/4315)
+
+### CLI tools
+
+ * Add [create-move-video-storage-jobs](https://docs.joinpeertube.org/maintain-tools?id=create-move-video-storage-jobjs) script to move local video files in object storage [#4481](https://github.com/Chocobozzz/PeerTube/pull/4481)
+ * Removed `peertube-repl` and `peertube-watch` scripts
+ * Apply import interval only when reasonable [#4552](https://github.com/Chocobozzz/PeerTube/pull/4552)
+
+### Features
+
+ * :tada: 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](https://github.com/Chocobozzz/PeerTube/pull/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](https://github.com/Chocobozzz/PeerTube/pull/4469)
+    * Change *Sort by views* to *Sort by recent views* [#4483](https://github.com/Chocobozzz/PeerTube/pull/4483)
+    * Add *Next video to be played* in watch page if autoplay is enabled [#4497](https://github.com/Chocobozzz/PeerTube/pull/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](https://github.com/Chocobozzz/PeerTube/pull/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](https://github.com/Chocobozzz/PeerTube/pull/4422)
+ * Add ability for admins to filter logs by tags
+ * Add ability for admins to configure per user channels limit [#4491](https://github.com/Chocobozzz/PeerTube/pull/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](https://github.com/Chocobozzz/PeerTube/pull/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](https://github.com/Chocobozzz/PeerTube/pull/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](https://github.com/Chocobozzz/PeerTube/pull/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
+
+
+## v3.4.1
+
+### 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
+
+### IMPORTANT NOTES
+
+ * **Important:** Due to a bug in ffmpeg, PeerTube is not compatible with ffmpeg 4.4. See https://github.com/Chocobozzz/PeerTube/issues/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](https://packages.debian.org/bullseye/python-is-python2) or [python-is-python3](https://packages.debian.org/bullseye/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](https://github.com/Chocobozzz/PeerTube/pull/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
+
+ * :tada: 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
+ * :tada: **Beta:** Add support for saving video files in object storage [#4290](https://github.com/Chocobozzz/PeerTube/pull/4290)
+   * Check the documentation: https://docs.joinpeertube.org/admin-remote-storage
+ * :tada: 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](https://github.com/Chocobozzz/PeerTube/pull/4336)
+   * Display a modal when logged in to explain why and where set up the account profile [#4352](https://github.com/Chocobozzz/PeerTube/pull/4352)
+   * Display messages to inform why and where set up channels in *My library* pages [#4352](https://github.com/Chocobozzz/PeerTube/pull/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](https://github.com/Chocobozzz/PeerTube/pull/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](https://github.com/Chocobozzz/PeerTube/pull/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.3.0
+
+### 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**:
+   * You can upgrade manually https://docs.joinpeertube.org/install-any-os?id=manually
+   * Or you can apply the changes introduced in this commit: https://github.com/Chocobozzz/PeerTube/commit/86dc0b9cc9374cba7548bb613ff43d92f90570a8 and then use the auto upgrade script
+ * **Important:** Due to a bug in ffmpeg, PeerTube is not compatible with ffmpeg 4.4. See https://github.com/Chocobozzz/PeerTube/issues/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](https://github.com/Chocobozzz/PeerTube/pull/4149)
+
+### Plugins/Themes/Embed API
+
+ * Add client helpers:
+   * `getBaseRouterRoute()` [#4153](https://github.com/Chocobozzz/PeerTube/pull/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](https://github.com/Chocobozzz/PeerTube/pull/4126)
+ * Add server plugin hooks (https://docs.joinpeertube.org/api-plugins):
+   * `action:api.video-playlist-element.created`
+
+
+### Features
+
+ * :tada: Add ability to create a custom homepage using HTML, markdown and [custom HTML tags](https://docs.joinpeertube.org/api-custom-client-markup) [#4007](https://github.com/Chocobozzz/PeerTube/pull/4007)
+ * :tada: Add ability to search playlists in PeerTube instance and [SepiaSearch](https://sepiasearch.org/)
+ * :tada: 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](https://github.com/Chocobozzz/PeerTube/pull/4009)
+   * Provide `/@:username` page that automatically redirect to the account or channel page [#4009](https://github.com/Chocobozzz/PeerTube/pull/4009)
+ * :tada: Add RTL layout support
+ * Add ability to use HTML, markdown and [custom HTML tags](https://docs.joinpeertube.org/api-custom-client-markup) 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](https://github.com/Chocobozzz/PeerTube/pull/4010)
+ * Use a dedicated URL for each tab in publish page
+ * Add ability to prefill contact form using query parameters in URL [#4161](https://github.com/Chocobozzz/PeerTube/pull/4161)
+ * Accessibility/UI:
+   * Show logo in mobile view [#4141](https://github.com/Chocobozzz/PeerTube/pull/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](https://datatracker.ietf.org/doc/html/rfc7807) format to display errors [#4143](https://github.com/Chocobozzz/PeerTube/pull/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](https://github.com/Chocobozzz/PeerTube/pull/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
+
+
+## v3.2.1
+
+### IMPORTANT NOTES
+
+ * **Important:** v3.2.0 introduced a `pg_dump` export bug 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: https://github.com/Chocobozzz/PeerTube/commit/86dc0b9cc9374cba7548bb613ff43d92f90570a8 and then use the auto upgrade script
+
+### Bug fixes
+
+ * Fix create account button style
+ * Fix auto upgrade script
+ * Fix live image aspect ratio in theatre mode
+
+
+## v3.2.0
+
+### IMPORTANT NOTES
+
+ * **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 bug in ffmpeg, PeerTube is not compatible with ffmpeg 4.4. See https://github.com/Chocobozzz/PeerTube/issues/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](https://docs.joinpeertube.org/admin-configuration?id=webtorrent-transcoding-or-hls-transcoding) for more information
+ * PeerTube client now displays bigger video thumbnails.
+ To fix old thumbnails quality, run `regenerate-thumbnails` script after your PeerTube upgrade: https://docs.joinpeertube.org/maintain-tools?id=regenerate-thumbnailsjs
+
+### Docker
+
+ * Support SSL database env parameter [#4114](https://github.com/Chocobozzz/PeerTube/pull/4114)
+
+### Maintenance
+
+ * Support `X-Frame-Options` header, enabled by default in the configuration
+ * Directly use `node` in [systemd template](https://github.com/Chocobozzz/PeerTube/blob/develop/support/systemd/peertube.service)
+ * Check ffmpeg version at PeerTube startup
+ * Add `upload-resumable` nginx endpoint: https://github.com/Chocobozzz/PeerTube/blob/develop/support/nginx/peertube#L81
+
+### CLI tools
+
+ * Add `regenerate-thumbnails` script to regenerate thumbnails of local videos
+
+### Plugins/Themes/Embed API
+
+ * Theme:
+   * `--submenuColor` becomes `--submenuBackgroundColor`
+ * Support HTML placeholders for plugins. See [the documentation](https://docs.joinpeertube.org/contribute-plugins?id=html-placeholder-elements) for more information
+   * `player-next` next to the PeerTube player
+ * Support storing files for plugins in a dedicated directory. See [the documentation](https://docs.joinpeertube.org/contribute-plugins?id=storage) for more information
+ * Transcoding:
+   * Add `inputOptions` option support for transcoding profile [#3917](https://github.com/Chocobozzz/PeerTube/pull/3917)
+   * Add `scaleFilter.name` option support for transcoding profile [#3917](https://github.com/Chocobozzz/PeerTube/pull/3917)
+ * Plugin settings:
+   * Add ability to register `html` and `select` setting
+   * Add ability to hide a plugin setting depending on the form state
+ * Plugin form fields (to add inputs to video form...):
+   * Add ability to hide a plugin field depending on the form state using `.hidden` property
+ * Add client helpers:
+   * `getServerConfig()`
+   * `getAuthHeader()`
+ * Add server helpers:
+   * `config.getServerConfig()`
+   * `plugin.getBaseStaticRoute()`
+   * `plugin.getBaseRouterRoute()`
+   * `plugin.getDataDirectoryPath()`
+   * `user.getAuthUser()`
+ * Add client plugin hooks (https://docs.joinpeertube.org/api-plugins):
+   * `action:modal.video-download.shown`
+   * `action:video-upload.init`
+   * `action:video-url-import.init`
+   * `action:video-torrent-import.init`
+   * `action:go-live.init`
+   * `action:auth-user.logged-in` & `action:auth-user.logged-out`
+   * `action:auth-user.information-loaded`
+   * `action:admin-plugin-settings.init`
+ * Add server plugin hooks (https://docs.joinpeertube.org/api-plugins):
+   * `filter:api.download.video.allowed.result` & `filter:api.download.torrent.allowed.result` to forbid download
+   * `filter:html.embed.video-playlist.allowed.result` & `filter:html.embed.video.allowed.result` to forbid embed
+   * `filter:api.search.videos.local.list.params` & `filter:api.search.videos.local.list.result`
+   * `filter:api.search.videos.index.list.params` & `filter:api.search.videos.index.list.result`
+   * `filter:api.search.video-channels.local.list.params` & `filter:api.search.video-channels.local.list.result`
+   * `filter:api.search.video-channels.index.list.params` & `filter:api.search.video-channels.index.list.result`
+
+### Features
+
+ * :tada: More robust uploads using a resumable upload endpoint [#3933](https://github.com/Chocobozzz/PeerTube/pull/3933)
+ * Accessibility/UI:
+   * :tada: Redesign channel and account page
+   * :tada: Increase video miniature size
+   * :tada: Add channel banner support
+   * Use a square avatar for channels and a round avatar for accounts
+   * Use account initial as default account avatar [#4002](https://github.com/Chocobozzz/PeerTube/pull/4002)
+   * Prefer channel display in video miniature
+   * Add *support* button in channel page
+   * Set direct download as default in video download modal [#3880](https://github.com/Chocobozzz/PeerTube/pull/3880)
+   * Show less information in video download modal by default [#3890](https://github.com/Chocobozzz/PeerTube/pull/3890)
+   * Autofocus admin plugin search input
+   * Add `1.75` playback rate to player [#3888](https://github.com/Chocobozzz/PeerTube/pull/3888)
+   * Add `title` attribute to embed code [#3901](https://github.com/Chocobozzz/PeerTube/pull/3901)
+   * Don't pause player when opening a modal [#3909](https://github.com/Chocobozzz/PeerTube/pull/3909)
+   * Add link below the player to open the video on origin instance [#3624](https://github.com/Chocobozzz/PeerTube/issues/3624)
+ * Notify admins on new available PeerTube version
+ * Notify admins on new available plugin version
+ * Sort channels by last uploaded videos
+ * Video player:
+   * Add loop toggle to context menu [#3949](https://github.com/Chocobozzz/PeerTube/pull/3949)
+   * Add icons to context menu [#3955](https://github.com/Chocobozzz/PeerTube/pull/3955)
+   * Add a *Previous* button in playlist watch page [#3485](https://github.com/Chocobozzz/PeerTube/pull/3485)
+   * Automatically close the settings menu when clicking outside the player
+   * Add "stats for nerds" panel in context menu [#3958](https://github.com/Chocobozzz/PeerTube/pull/3958)
+ * Add channel and playlist stats to stats endpoint [#3747](https://github.com/Chocobozzz/PeerTube/pull/3747)
+ * Support `playlistPosition=last` and negative index (`playlistPosition=-2`) URL query parameters for playlists [#3974](https://github.com/Chocobozzz/PeerTube/pull/3974)
+ * My videos:
+   * Add ability to sort videos (publication date, most viewed...)
+   * Add ability to only display live videos
+ * Automatically resume videos for non logged-in users [#3885](https://github.com/Chocobozzz/PeerTube/pull/3885)
+ * Admin plugins:
+   * Show a modal when upgrading a plugin to a major version
+   * Display a setting button after plugin installation
+ * Add ability to search live videos
+ * Use bigger thumbnails for feeds
+ * Parse video description markdown for Opengraph/Twitter/HTML elements
+ * Open the remote interaction modal when replying to a comment if we are logged-out
+ * Handle `.srt` captions with broken durations
+ * Performance:
+   * Player now lazy loads video captions
+   * Faster admin table filters
+   * Optimize feed endpoint
+
+### Bug fixes
+
+ * More robust comments fetcher of remote video
+ * Fix database ssl connection
+ * Remove unnecessary black border above and below video in player [#3920](https://github.com/Chocobozzz/PeerTube/pull/3920)
+ * Reduce tag input excessive padding [#3927](https://github.com/Chocobozzz/PeerTube/pull/3927)
+ * Fix disappearing hamburger menu for narrow screens [#3929](https://github.com/Chocobozzz/PeerTube/pull/3929)
+ * Fix Youtube subtitle import with some languages
+ * Fix transcoding profile update in admin config
+ * Fix outbox fetch with subtitled videos
+ * Correctly unload a plugin on update/uninstall [#3940](https://github.com/Chocobozzz/PeerTube/pull/3940)
+ * Ensure to install plugins that are supported by PeerTube
+ * Fix welcome/warning modal displaying twice
+ * Fix h265 video import using CLI
+ * Fix context menu when watching a playlist
+ * Fix transcoding job priority preventing video publication when there are many videos to transcode
+ * Fix remote account/channel "joined at"
+ * Fix CLI plugins list command options [#4055](https://github.com/Chocobozzz/PeerTube/pull/4055)
+ * Fix HTTP player defaulting to audio resolution
+ * Logger warning level is "warn"
+ * Fix default boolean plugin setting [#4107](https://github.com/Chocobozzz/PeerTube/pull/4107)
+ * Fix duplicate ffmpeg preset option for live
+ * Avoid federation error when file has no torrent file
+ * Fix local user auth select
+ * Fix live ending banner display
+ * Fix redundancy max size
+ * Fix broken lives handling
+
+
+
+## v3.1.0
+
+### IMPORTANT NOTES
+
+ * **Important:** Drop PostgreSQL 9.6 support
  * **Important:** Deprecate NodeJS 10
  * Support NodeJS 14 and 15
  * Remove ES5 module support (breaks compatibility with web browsers we didn't support)
  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)
 
+### Maintenance
+
+ * Fix nginx max body size configuration
 
 ### CLI tools
 
    * Transcode audio uploads to lower configured resolutions
    * Transcode HLS playlists in a `tmp` directory (less bugs/inconsistencies)
    * Allow admins to choose the transcoding jobs concurrency
+ * Support Albanian locale
  * Video upload:
    * Async torrent creation on video upload. We hope that it should fix some weird upload errors
    * Add `.m4a` audio upload support
  * More robust channel change federation
  * Fix emptying video tags
  * Fix broken local actors that do not have a public/private key
+ * Fix bad PeerTube URL for playlist embed
  * Live:
    * Don't update live attributes if they did not change (allowing to update live metadata even if the live has started)
    * Fix live RAM usage when ffmpeg is too slow to transcode the RTMP stream
    * Correctly load live information (description and preview) when not started
+ * Fix mention notification with deleted comment
+ * Fix default boolean plugin setting
+ * Fix long text on modals [#3840](https://github.com/Chocobozzz/PeerTube/pull/3840)
 
 ## v3.0.1
 
 
 ### IMPORTANT NOTES
 
- * Update the default configuration to not federate unlisted videos. We recommend to admins to update [this setting](https://github.com/Chocobozzz/PeerTube/blob/develop/config/production.yaml.example#L182)
+ * Update the default configuration to not federate unlisted videos. We recommend to admins to update [this setting](https://github.com/Chocobozzz/PeerTube/blob/develop/config/production.yaml.example#L196)
  * Update the default configuration to remove remote video views to reduce DB size and improve performances. We recommend to admins to update [this setting](https://github.com/Chocobozzz/PeerTube/blob/develop/config/production.yaml.example#L170)
  * Remove deprecated video abuse API