]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - CHANGELOG.md
Update translations
[github/Chocobozzz/PeerTube.git] / CHANGELOG.md
index 6011c17680e2d2ecb5f5aa7a45c19173e9002ada..fec8926f9847c80087c3012bb117d938905f14fb 100644 (file)
@@ -1,9 +1,365 @@
 # Changelog
 
-## v3.1.0-rc.1 (stable ~ late March)
+## 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