]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blob - CHANGELOG.md
Remove $ for bash commands
[github/Chocobozzz/PeerTube.git] / CHANGELOG.md
1 # Changelog
2
3 ## v5.1.0
4
5 ### IMPORTANT NOTES
6
7 * If your instance has signup enabled, user registration approval is automatically enabled by the default configuration of this release. You can change this setting in your `production.yaml` or in the configuration page in the web admin
8 * Update [web browsers support list](https://joinpeertube.org/faq#what-web-browsers-are-supported-by-peertube):
9 * Drop support of Safari 11 on iOS
10 * Drop support of Safari 11 on desktop
11 * Drop support of Firefox 68 on desktop
12 * Minimum recommended Redis version is 6.2. Version 6.0 should still work: see [this comment](https://github.com/Chocobozzz/PeerTube/issues/5659#issuecomment-1449607001) for more information
13 * Deprecate NodeJS 14: support will be removed in the next release (PeerTube 5.2)
14
15 ### Maintenance
16
17 * [PeerTube OpenTelemetry](https://docs.joinpeertube.org/maintain/observability)
18 * Add BitTorrent tracker metrics
19 * Add ability to disable HTTP request duration metrics (can have a high tag cardinality)
20 * Add `x-powered-by` HTTP header in PeerTube response. Can be disabled in PeerTube configuration
21
22 ### Docker
23
24 * Add env variables to configure object storage
25
26 ### Documentation
27
28 * PeerTube documentation website now uses VitePress: https://docs.joinpeertube.org
29 * Add *Server code* documentation explaining the database model typing and how to add a new feature in PeerTube server: https://docs.joinpeertube.org/support/doc/development/server
30
31 ### Plugins/Themes/Embed API
32
33 * Add ability to set `playbackRate` in URL (watch page and embed) [#5486](https://github.com/Chocobozzz/PeerTube/pull/5486)
34 * Auth plugins:
35 * Can set default `adminFlags`, `videoQuota` and `videoQuotaDaily` user attributes
36 * Introduce `userUpdater` hook function so external auth plugins can update the user on user login: https://docs.joinpeertube.org/contribute/plugins#add-external-auth-methods
37 * Automatically redirect to the default external auth on PeerTube refresh token expiration
38 * Server plugin hooks (https://docs.joinpeertube.org/api/plugins):
39 * Add `filter:api.user.me.subscription-videos.list.params` & `filter:api.user.me.subscription-videos.list.result` [#5648](https://github.com/Chocobozzz/PeerTube/pull/5648)
40 * Add `filter:activity-pub.activity.context.build.result` to update ActivityPub JSON-LD context
41 * Add `filter:activity-pub.video.json-ld.build.result` to update `Video` ActivityPub JSON-LD object
42 * Add `action:activity-pub.remote-video.created` & `action:activity-pub.remote-video.updated` to react on remote video creation/update
43 * Client plugin hooks (https://docs.joinpeertube.org/api/plugins):
44 * Add `action:video-edit.form.updated` fired every time the video upload/import/live/update form values change
45 * Add `filter:video-watch.video-plugin-metadata.result` to add custom video metadata in watch page
46 * Existing `action:video-edit.init` hook now contains a `updateForm` attribute in options that you can use to update video upload/import/live/update form values
47 * Add server plugin helpers:
48 * `getServerListeningConfig` to get PeerTube listening configuration
49 * Convert some colors to PeerTube CSS variables to improve theme compatibility
50
51 ### Features
52
53 * :tada: Implement user registration approval (https://docs.joinpeertube.org/admin/managing-users#registration-approval) [#5544](https://github.com/Chocobozzz/PeerTube/pull/5544)
54 * If enabled, the user has to fill a *Registration reason* input
55 * Moderators have to to accept/reject the registration with a *Moderation response* that will be sent by email to the user
56 * If the registration is accepted, the user and its channel are automatically created
57 * Add "back to live" button in player
58 * The *Live* button is red when the player is synced with the live
59 * It becomes grey when behind the live edge
60 * Clicking on the grey button re-sync the player with the live edge
61 * Add Icelandic & Ukrainian locales
62 * Add *Global views* default trending algorithm option in admin configuration [#5471](https://github.com/Chocobozzz/PeerTube/pull/5471)
63 * Performance:
64 * Blocked IPs by the tracker are now stored in NodeJS memory instead of Redis, reducing PeerTube load
65 * Optimize video comments SQL requests
66 * Optimize custom markup live rendering in admin
67 * UI/UX:
68 * Add option in video/playlist share modal to create a responsive embed [#5690](https://github.com/Chocobozzz/PeerTube/pull/5690)
69 * Use `99+` instead of `99` when having more than `99` notifications
70 * Use channel display name instead of channel handle in *My videos* input filter [#5575](https://github.com/Chocobozzz/PeerTube/pull/5575)
71 * Display channel name in playlist element instead of account name
72 * Display channel as author in RSS feeds
73 * Improve/fix main pages keyboard navigation
74 * Custom markup:
75 * Support `mailto` links
76 * Support short UUID to fetch a video
77 * Admins can customize access and refresh tokens lifetime
78
79
80 ### Bug fixes
81
82 * Fix object storage incompatibility with some S3 providers that don't support ACL
83 * Fix signup limit
84 * Prevent `500` on invalid short UUID parameter
85 * Player:
86 * Fix live buffering with small latency setting
87 * More robust player "stats for nerds" popup if there is not stream available
88 * Don't display playback rate setting for lives
89 * Don't handle playback rate hotkeys for lives
90 * Fix clicking on PeerTube instance button
91 * Fix always resuming the end of the video
92 * Fix saving last video current time for anonymous users
93 * Fix player keyboard shortcuts for non latin keyboards [#5684](https://github.com/Chocobozzz/PeerTube/pull/5684)
94 * Process videos list requests in correct order
95 * Correctly fill the *Support* field when updating a video
96 * Fix *Auto play video* setting for anonymous users
97 * UI:
98 * Fix table columns max width
99 * Use *Unknown* instead of *Misc* when the video category is not set
100 * Prevent layout shift when listing videos
101 * Fix instance stats anchor link
102 * Fix menu content overlay on tablets
103 * Fix button overflows
104 * Handle `502` HTTP errors in client notifier
105 * Fix resetting chart zoom in video stats page
106 * Fix search page not loading all available results
107 * Fix confirmation modal that contains 2 text inputs
108 * Display the update button when the stable release of beta/alpha plugin is available
109 * Always list NSFW videos in playlists (the frontend is in charge to blur the video element if the NSFW setting is *Hide* or *Blur*)
110 * Always list NSFW videos in admin
111 * Improve client log report:
112 * Don't send client error on 404
113 * Prevent sending invalid error/warn logs coming from HLS player [#5484](https://github.com/Chocobozzz/PeerTube/pull/5484)
114 * Fix out of sync audio when cutting a video in Studio
115 * Fix "unique viewers" inconsistency with countries
116 * Fix mention detection in comments
117 * Fix listing all my channels in *My library*
118 * Fix displaying remote avatars
119 * Fix 404 HTTP code in watch page when having `;threadId` param in URL
120 * Correctly re-inject video file token in `.m3u8` resolution playlists to fetch private mp4 video file [#5677](https://github.com/Chocobozzz/PeerTube/pull/5677)
121 * Don't process live when moving videos to external storage
122 * Handle Redis disconnection gracefully [#5599](https://github.com/Chocobozzz/PeerTube/pull/5599)
123
124
125 ## v5.0.1
126
127 ### IMPORTANT NOTES
128
129 * If you upgrade from PeerTube **< 5.0.0**, please follow 5.0.0 IMPORTANT NOTES
130
131 ### Bug fixes
132
133 * Fix HLS player infinite loading when the live stream/video ends
134 * Do not autoplay live without autoplay setting
135 * Fix private/internal video playback from Cloudflare object storage
136 * Fix local channel stats/OpenTelemetry metric
137 * Also display dropdown for videos from the homepage
138 * Fix broken P2P with live stream coming from object storage
139 * Fix responsive of table pagination
140
141
142 ## v5.0.0
143
144 ### IMPORTANT NOTES
145
146 * **Important** Private and internal video files are now protected. See [#5370](https://github.com/Chocobozzz/PeerTube/pull/5370) for more information, but see below for most important information:
147 * For private/internal videos on filesystem:
148 * These videos are now under a `private/` subdirectory in `videos/` and `streaming-playlists/` directories
149 * Nginx doesn't serve these private files anymore, the requests are forwarded to PeerTube that will check authentication
150 * For private/internal videos in object storage:
151 * These videos have now a private ACL
152 * PeerTube proxifies requests to private object storage (using pre-signed URLs is not possible as explained in [#5370](https://github.com/Chocobozzz/PeerTube/pull/5370))
153 * Torrent files and magnet URIs of private/internal videos don't contain a webseed URL anymore since they require authentication
154 * **Important** You need to manually execute a migration script after your upgrade to migrate private/internal video files:
155 * 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-5.0.js`
156 * Docker installation: `cd /var/www/peertube-docker && docker-compose exec -u peertube peertube node dist/scripts/migrations/peertube-5.0.js`
157 * Configuration changes (`config/production.yaml`):
158 * There is a new `secrets.peertube` configuration. You must fill it before running PeerTube v5: https://github.com/Chocobozzz/PeerTube/blob/v5.0.0/config/production.yaml.example#L14
159 * `object_storage.upload_acl` is now a parent key that you must update: https://github.com/Chocobozzz/PeerTube/blob/v5.0.0/config/production.yaml.example#L153
160 * You must update your nginx configuration:
161 * We introduced a new `location` for plugin websocket routes: https://github.com/Chocobozzz/PeerTube/blob/v5.0.0/support/nginx/peertube#L135
162 * We introduced a new `location` for private videos files: https://github.com/Chocobozzz/PeerTube/blob/v5.0.0/support/nginx/peertube#L217
163
164 ### Documentation
165
166 * Add [Monitoring/Observability documentation](https://docs.joinpeertube.org/maintain/observability) using PeerTube OpenTelemetry feature
167
168 ### Maintenance
169
170 * REST API breaking change:
171 * `role` is now `role.id` and `roleLabel` is `role.label` in user response
172 * We now store the complete remote video description:
173 * Deprecate `description` in favour of `truncatedDescription` when listing videos
174 * Complete description is sent by the server in `description` when getting a specific video
175 * Deprecate `/api/v1/videos/:id/description` endpoint
176 * `search.disable_local_search` disables local search in client search bar only and doesn't disable it on server side anymore [#5411](https://github.com/Chocobozzz/PeerTube/pull/5411)
177
178 ### Plugins/Themes/Embed API
179
180 * Add server plugin hooks (https://docs.joinpeertube.org/api/plugins):
181 * `filter:activity-pub.remote-video-comment.create.accept.result`
182 * Add server plugin helpers
183 * `socket.sendNotification` and `socket.sendVideoLiveNewState` [#5239](https://github.com/Chocobozzz/PeerTube/pull/5239)
184 * Add ability for plugins to register a websocket route using `registerWebSocketRoute`
185 * Add client plugin hooks (https://docs.joinpeertube.org/api/plugins):
186 * `filter:internal.player.p2p-media-loader.options.result` [#5318](https://github.com/Chocobozzz/PeerTube/pull/5318)
187
188 ### CLI tools
189
190 * Add ability to install alpha/beta/rc plugin versions
191
192 ### Features
193
194 * :tada: Support object storage for live streams :tada:
195 * :tada: Support Two Factor authentication (OTP) :tada:
196 * UX:
197 * Add explanation on disk space used for user quota admin config [#5305](https://github.com/Chocobozzz/PeerTube/pull/5305)
198 * Display channel in my videos list
199 * Show which playlists videos are added to in my videos list
200 * Add *Channels* link in left menu
201 * Add `...` after the truncated video name in miniature
202 * Add object storage info badge in videos admin overview
203 * Add links to video files in videos admin overview
204 * Better indicate the live ended in embed by displaying a message and the live preview
205 * Force live autoplay by muting the video if necessary when the user was waiting for the live
206 * Handle network issues in video player [#5138](https://github.com/Chocobozzz/PeerTube/pull/5138)
207 * Cache chunks to upload in server to resume upload later [#5224](https://github.com/Chocobozzz/PeerTube/pull/5224)
208 * Add ability to serve custom static files under `/.well-known` URL path [#5214](https://github.com/Chocobozzz/PeerTube/pull/5214)
209 * Use account/channel avatar in account/channel RSS feeds [#5325](https://github.com/Chocobozzz/PeerTube/pull/5325)
210 * Add filter to sort videos by name [#5351](https://github.com/Chocobozzz/PeerTube/pull/5351)
211 * Add ability to configure OpenTelemetry Prometheus exporter listening hostname
212
213 ### Bug fixes
214
215 * Hide all user email block if we can't change it (remote auth for example)
216 * Display an error if trying to reset password of user configured to use a remote authentication
217 * Fix peers info width in live
218 * Fix video job error when video has been deleted
219 * Fix user channels list with increased max counter
220 * More robust channel/playlist import/sync
221 * Hide useless *Wait Transcoding* input for lives
222 * Fix responsive in account channels list
223 * Fix slow page response when listing many videos
224 * Reload data when deleting a blocked video
225 * Prevent error with metrics in HTTP player if no P2P info is available
226 * Fix playlist overflow in account channels page
227 * Fix invalid date display for jobs
228 * Fix conflict with player hotkeys and `alt + number` web browser hotkey
229 * Fix horizontal overflow on rtl languages
230 * Fix actor follow constraint error on remote videos when *Allow users to do remote URI/handle search* is disabled
231 * Fix running again transcoding on a video that doesn't contain audio or on a video that doesn't contain video
232 * Fix re-transcoding of video with odd resolution
233 * Fix embed API with playlists
234 * Fix not working P2P with permanent live
235 * Fix following/fetching remote Pleroma actor
236 * Prevent high Redis memory usage when having many jobs
237 * Fix overall viewers stats with start/end dates
238 * Remove limit of countries displayed in video/live stats
239
240
241 ## v4.3.1
242
243 ### IMPORTANT NOTES
244
245 * If you upgrade from PeerTube **< 4.3.0**, please follow 4.3.0 IMPORTANT NOTES
246
247 ### SECURITY
248
249 * Prevent XSS in sort select on pages that list videos. Thanks to Anthony Roth who reported the vulnerability!
250
251 ### Bug fixes
252
253 * Fix broken embed player on live reload
254 * Fix channel follow when manually approve instance followers is enabled
255 * Fix input with number overflow on small screen
256 * Fix moderation dropdown overflow on mobile
257 * Clearer instance subscription page title in admin
258 * Prevent "Cannot use same state" video error
259 * Correctly handle RTMP streams without audio
260 * Correctly process broadcast parallel job in parallel
261
262
263 ## v4.3.0
264
265 ### IMPORTANT NOTES
266
267 * Redis **<** 5.x is not supported anymore
268 * FFmpeg **<** 4.3 is not supported anymore
269
270 ### Maintenance
271
272 * Use `yt-dlp` by default instead of `youtube-dl` for new installations (because of much more dev activity)
273 * Support NodeJS 18
274 * Improved PeerTube logs:
275 * Reduce amount of PeerTube error logs
276 * Introduce `log.log_tracker_unknown_infohash` setting to disable "Unknown infoHash" warnings
277 * Web browsers send their error logs to the server that writes them in its own logs. Can be disabled by `log.accept_client_log` setting
278 * Introduce experimental support of [OpenTelemetry](https://opentelemetry.io/)
279 * Enable metrics export using a Prometheus exporter
280 * Enable tracing export using a Jaeger exporter
281 * Automatically rebuild native plugin modules on NodeJS ABI change
282
283 ### Docker
284
285 * Add ability to easily use the docker compose stack on localhost
286
287 ### Plugins/Themes/Embed API
288
289 * Theme:
290 * Removed unused `--secondaryColor` CSS variable
291 * Add client plugin hooks (https://docs.joinpeertube.org/api/plugins):
292 * `filter:api.my-library.video-playlist-elements.list.params` & `filter:api.my-library.video-playlist-elements.list.result` [#5098](https://github.com/Chocobozzz/PeerTube/pull/5098)
293 * `action:video-channel-create.init`
294 * `action:video-channel-update.init` & `action:video-channel-update.video-channel.loaded`
295 * `action:video-channel-videos.init` & `action:video-channel-videos.video-channel.loaded` & `action:video-channel-videos.videos.loaded`
296 * `action:video-channel-playlists.init` & `action:video-channel-playlists.video-channel.loaded` & `action:video-channel-playlists.playlists.loaded`
297 * `filter:share.video-embed-code.build.params` & `filter:share.video-embed-code.build.result` & `filter:share.video-playlist-embed-code.build.params` & `filter:share.video-playlist-embed-code.build.result`
298 * `filter:share.video-embed-url.build.params` & `filter:share.video-embed-url.build.result` & `filter:share.video-playlist-embed-url.build.params` & `filter:share.video-playlist-embed-url.build.result`
299 * `filter:share.video-url.build.params` & `filter:share.video-url.build.result` & `filter:share.video-playlist-url.build.params` & `filter:share.video-playlist-url.build.result`
300 * `action:modal.share.shown`
301 * Add server plugin hooks (https://docs.joinpeertube.org/api/plugins):
302 * `filter:job-queue.process.params` & `filter:job-queue.process.result`
303 * `filter:transcoding.manual.resolutions-to-transcode.result` & `filter:transcoding.auto.resolutions-to-transcode.result`
304 * `action:api.video-channel.created` & `action:api.video-channel.updated` & `action:api.video-channel.deleted`
305 * `action:notifier.notification.created`
306 * Add HTML placeholder (https://docs.joinpeertube.org/contribute/plugins#html-placeholder-elements):
307 * `share-modal-playlist-settings` & `share-modal-video-settings`
308
309 ### Features
310
311 * :tada: Add ability for users to synchronize a remote channel [#5135](https://github.com/Chocobozzz/PeerTube/pull/5135) :tada:
312 * Automatically import all videos of a remote channel in your PeerTube channel
313 * PeerTube will watch for new publications and automatically import these new videos
314 * UI:
315 * Redesigned *Create an account* steps
316 * Improved *Login* page
317 * Use a lighter font color
318 * Use a bigger font size
319 * Don't display form errors in red while typing but only when we unfocus the input
320 * Display an error message when the user is unauthorized to view a page [#5097](https://github.com/Chocobozzz/PeerTube/pull/5097)
321 * Display latest upload date for captions
322 * Add an information if the live will be saved as a replay when displaying live sessions
323 * Move search bar at the center of the header
324 * Add *Toki Pona* and *Croatian* locales in client
325 * Embed:
326 * Display a message and automatically start live streams in embed
327 * Use the instance name instead of "PeerTube" in embed control bar
328 * Reuse current watch page query parameters for embed when using OEmbed [#5023](https://github.com/Chocobozzz/PeerTube/pull/5023)
329 * Instance follows:
330 * Introduce a *Rejected* state for follow requests to not reprocess already rejected follow requests
331 * Add bulk actions on instance following/followers ()
332 * Admins:
333 * Add ability to disable original resolution transcoding of the uploaded video/live stream
334 * Add ability to delete a specific video file in videos overview
335 * Display *Last Login* column by default in users overview
336 * Remember last selected columns in users overview
337 * Add ability to set a custom video import timeout
338 * Add ability to set the default feed (Atom, RSS...) items count
339 * Admins and moderators now bypass API rate limits
340 * Add ability to list comments on local videos in comments overview
341 * Limit video import resolution depending on enabled VOD transcoding resolutions
342 * Store and display the uploaded video original filename [#4885](https://github.com/Chocobozzz/PeerTube/pull/4885)
343 * Add *Total views* in the my channels list [#5007](https://github.com/Chocobozzz/PeerTube/pull/5007)
344 * Add *Original Publication Date* video sort option [#4959](https://github.com/Chocobozzz/PeerTube/pull/4959)
345 * Performance:
346 * Optimized view/watching endpoint
347 * Optimized video feed SQL query
348 * Process images (resize, convert...) in a dedicated worker thread
349 * Optimized emoji markup list rendering in client
350 * Use a worker thread to send ActivityPub Broadcast requests
351 * Suffix external auth username/channel name on conflict instead of throwing an exception
352
353 ### Bug fixes
354
355 * Fix users overview *Last login* sort in admin
356 * More robust *move to object storage* job failure
357 * Fix comment add avatar with a unauthenticated user
358 * Fix fetching unlisted video in client
359 * Fix comments/download enabled attributes when importing a video
360 * Fix total instance views stats
361 * Fix HLS player infinite buffering on seek
362 * Reset table pagination on search
363 * *Host* search filter can also search into channels and playlists in global search
364 * Fix *My videos* invalid counter
365 * Prevent error on highlighted thread
366 * Fix *Jobs*, *Account blocklist* and *Server blocklist* hidden columns on Safari
367 * Fix live stream max bitrate
368 * Fix incompatibility with OpenSSL 3
369 * Don't crash on redis connection error
370 * Transcoding:
371 * Fix failed transcoding with a mp3 file that contains a cover image
372 * Prevent duplicated HLS playlist when running transcoding
373 * Regenerate video file names when running transcoding manually
374 * Prevent job failures resulting in broken videos on concurrent transcoding
375 * Fix transcoding of videos with quad audio channels
376 * ActivityPub
377 * Fix random invalid HTTP signature generation
378 * Use unique AP id for *Accept*/*Reject* activities
379 * Correctly handle remote actors that don't have follow counters
380 * Correctly handle unknown remote actor image size
381 * Add years in graph legend when grouping video views stats by month
382 * Prevent creating multiple lives when clicking multiple times on the "Go Live" button
383 * Fix *undefined" resolution in player *Stats for nerds*
384 * Fix not displayed error message in administrator web config
385 * More robust S3 upload [#5231](https://github.com/Chocobozzz/PeerTube/pull/5231)
386 * Fix broken saved live stream with only one resolution
387 * Fix `removeEventListener` player embed api
388 * Progressively cleanup actor images without width from the database
389 * Fix broken dates on localized pages
390 * Prevent job queue to be started before plugins
391 * Fix old database enum names
392 * Don't display remove file icon in admin videos overviews if we can't delete the file
393
394
395 ## v4.2.2
396
397 ### IMPORTANT NOTES
398
399 * If you upgrade from PeerTube **< 4.2.0**, please follow 4.2.0 IMPORTANT NOTES
400
401 ### SECURITY
402
403 * Upgrade vulnerable server dependencies
404
405 ### Bug fixes
406
407 * Fix fast restream in permanent live
408 * Fix latency mode setting when creating a live
409 * Fix unique constraint tag violation when importing videos
410 * Fix latest live sessions order
411 * Fix server crash feed when accessing feeds that contains a live
412 * Fix `false` boolean attribute (`data-is-live` etc) in custom markup
413
414
415 ## v4.2.1
416
417 ### IMPORTANT NOTES
418
419 * If you upgrade from PeerTube **< 4.2.0**, please follow 4.2.0 IMPORTANT NOTES
420
421 ### Bug fixes
422
423 * Fix live ending job that breaks new live session
424 * Fix search filters counter
425 * Fix upload banner icon margin
426 * Fix button icon margin
427 * Fix my import expander icon that should only be displayed on import error
428 * Fix select components styling inconsistency
429 * Increase max watch section to avoid too much warnings in server
430 * Optimize broadcast job creation
431 * Optimize `View` activities delivery using a dedicated broadcast job queue that can be run in parallel
432 * Fix video selection buttons placement
433 * Fix searching into account blocklist
434 * Fix incorrect instance stats
435 * Fix broken player on ICE error
436 * Relax views federation
437 * Fix peertube user in docker
438 * Fix playlist element federation with a deleted video
439
440
441 ## v4.2.0
442
443 ### IMPORTANT NOTES
444
445 * **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:
446 * 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`
447 * Docker installation: `cd /var/www/peertube-docker && docker-compose exec -u peertube peertube node dist/scripts/migrations/peertube-4.2.js`
448 * **Important** SQL migrations (in particular `0685-multiple-actor-images`) can take several minutes to complete
449 * **Important** You must update your nginx configuration to support video web editor: https://docs.joinpeertube.org/install/any-os#nginx
450 * REST API:
451 * `PUT /api/v1/videos/{id}/watching` is deprecated, use `POST /api/v1/videos/videos/{id}/views` instead: https://docs.joinpeertube.org/api/rest-reference.html#operation/addView
452
453 ### Maintenance
454
455 * Add `client.videos.resumable_upload.max_chunk_size` config option [#4857](https://github.com/Chocobozzz/PeerTube/pull/4857)
456 * Add `object_storage.upload_acl` config option [#4861](https://github.com/Chocobozzz/PeerTube/pull/4861)
457 * 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`
458 * Removed `best` default trending algorithm. It is automatically used if using `hot` algorithm with a logged in user
459
460 ### Docker
461
462 * Use NodeJS 16 in PeerTube docker image: administrators may have to reinstall PeerTube plugins that use native NodeJS dependencies
463 * Support readonly tmp directory (if you want to use `tmp` directory as a volume)
464
465 ### Plugins/Themes/Embed API
466
467 * Theme:
468 * Add `--mainBackgroundHoverColor` and `--greySecondaryBackgroundColor` CSS variables
469 * Add server plugin hooks
470 * `filter:api.video-playlist.videos.list.params` and `filter:api.video-playlist.videos.list.result`
471 * Support `getSettings()`, `isLoggedIn()` and `getAuthHeader()` client plugin helpers in embed
472 * Player URL query parameters:
473 * Support `controlBar=0` to hide player control bar. See [the documentation](https://docs.joinpeertube.org/api/embed-player#url-parameters) for more information
474
475 ### Features
476
477 * :tada: Add video edition from the PeerTube web interface :tada:
478 * Cut the video (set a new start/new end)
479 * Add an intro at the beginning and/or an outro at the end of the video
480 * Add an icon/watermark in the top right corner of the video
481 * PeerTube will automatically transcode the new video and replace the original one
482 * :sparkles: *Funded by "la Direction du numérique du Ministère de l'Éducation Nationale, de la Jeunesse et des Sports"* :sparkles:
483 * :tada: Add advanced statistics of a specific video :tada:
484 * Provide *Average watch time*, *Total watch time* and *Peak viewers* video statistics
485 * Display total viewers, aggregated watch time and audience retention in interactive time series graphs
486 * Display viewer countries in bar chart if not disabled by admins
487 * :sparkles: *Funded by HowlRound Theatre Commons at Emerson College* :sparkles:
488 * :tada: Add latency setting support for lives (small latency without P2P or high latency to increase P2P ratio) :tada:
489 * :tada: Add ability to save a replay of every streaming session of a permanent live :tada:
490 * :sparkles: *Funded by HowlRound Theatre Commons at Emerson College* :sparkles:
491 * Add simple subtitle edition from video captions tab in video edition form [#4666](https://github.com/Chocobozzz/PeerTube/pull/4666)
492 * Display live streaming sessions details in permanent live information modal
493 * Add ability to also mute users when banning them [#4660](https://github.com/Chocobozzz/PeerTube/pull/4660)
494 * UI improvements:
495 * Add ability for admins to display author avatar in video miniatures [#4639](https://github.com/Chocobozzz/PeerTube/pull/4639) [#4823](https://github.com/Chocobozzz/PeerTube/pull/4823)
496 * Display author avatar in embed
497 * Move admin comments list in *Overviews* menu
498 * Add a *Refresh* button to admin comments list
499 * Add ability to sort videos by total views
500 * Add *Persian* locale support
501 * Add previous page redirection support on external auth login
502 * Support proxy for object storage [#4973](https://github.com/Chocobozzz/PeerTube/pull/4973)
503 * Add "Only display embed URL" checkbox in share modal
504
505 ### Bug fixes
506
507 * Video uploads fixes:
508 * Fix invalid token during long uploads
509 * Fix upload on server with a slow disk
510 * Fix upload of some videos with unknown duration (`.m2v` for example)
511 * Fix 2 hours limit on uploads
512 * Fix upload page title [#4904](https://github.com/Chocobozzz/PeerTube/pull/4904)
513 * Fix video upload with some characters in filename
514 * Fix `.ac3` and `.mts` upload on some OS
515 * Fix avatar with account username starting with a number
516 * Fix client html cache on theme update
517 * Disallow unlisted video indexation
518 * Allow oembed to fetch unlisted videos
519 * Stop removing remote Mastodon rates
520 * Fix email links displayed twice in text version
521 * Fix user quota inconsistencies in admin when users use lives
522 * Fix admin instance following list when sorting by *Redundancy allowed*
523 * More reliable object storage upload when using multipart [#4903](https://github.com/Chocobozzz/PeerTube/pull/4903)
524 * Correctly handle HTTP signature draft 11 requests (without `date` header but with `(created)`)
525 * Fix `ctrl + 0-9` player hotkeys conflicting with web browser hotkeys
526
527
528 ## v4.1.1
529
530 ### Security
531
532 * Strip EXIF data when processing images
533
534 ### Docker
535
536 * Fix videos import by installing python 3
537 * Install `git` package (may be needed to install some plugins)
538
539 ### Bug fixes
540
541 * Fix error when updating a live
542 * Fix performance regression when rendering HTML and feeds
543 * Fix player stuck by HTTP request error
544
545
546 ## v4.1.0
547
548 ### IMPORTANT NOTES
549
550 * PeerTube does not support NodeJS 12 anymore
551
552 ### Plugins/Themes/Embed API
553
554 * Introduce ability for plugins to create client pages: https://docs.joinpeertube.org/contribute/plugins#create-client-page
555 * 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#add-custom-fields-to-video-form
556 * Add new client plugin id selectors
557 * 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)
558 * Add `#plugin-selector-menu-user-dropdown-language-item` in menu [#4597](https://github.com/Chocobozzz/PeerTube/pull/4597)
559 * Add client plugin hooks
560 * `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
561 * Add server plugin hooks
562 * `filter:api.server.stats.get.result`
563 * `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
564 * `action:api.video-caption.created` and `action:api.video-caption.deleted` [#4650](https://github.com/Chocobozzz/PeerTube/pull/4650)
565 * Server helpers
566 * `videos.getFiles(videoId: number)` to list video files (webtorrent, hls and thumbnail files)
567 * `videos.ffprobe(path: string)` to get `ffprobe` JSON result
568 * Publish [@peertube/peertube-type](https://www.npmjs.com/package/@peertube/peertube-types) NPM module that can be used by TypeScript plugins
569 * Add ability to disable P2P in embed using `p2p` query parameter in embed URL
570
571 ### Maintenance
572
573 * REST API
574 * Deprecate `webTorrentEnabled` in favour of `p2pEnabled` for user model
575 * Add ability to pause/resume the job queue
576 * Also publish stable releases on https://builds.joinpeertube.org/release
577 * Add ability for admins to specify `youtube-dl`/`yt-dlp` python binary path [#4706](https://github.com/Chocobozzz/PeerTube/pull/4706)
578 * PeerTube server startup is faster
579
580 ### Security
581
582 * Check video privacy before listing or accepting captions, comments or rates
583 * 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
584
585 ### CLI tools
586
587 * Also remove HLS files when using `prune-storage` script
588 * Support `--plugin-version` option when installing a plugin [#4599](https://github.com/Chocobozzz/PeerTube/pull/4599)
589
590 ### Features
591
592 * :tada: Player improvements
593 * Increase control bar size on desktop & mobile
594 * Add overlay on tap to easily play/pause the video on mobile
595 * Automatically move to landscape when full screen a video on mobile
596 * Add fast forward/rewind on double tap on mobile
597 * Cleanup, fix and add player hotkeys
598 * Keep control bar displayed when settings panel is opened
599 * Faster hiding transition for control bar
600 * Stop confusing *peer* indication in control bar when p2p is disabled
601 * Try to fast forward video on HLS decode error
602 * :tada: More admin customizations
603 * Specify default *Publish* video attributes (download enabled, comments enabled, privacy, licence)
604 * Choose to automatically redirect users on the external auth platform on login button click
605 * Set default P2P policy for the player
606 * Search improvements
607 * Add *Result type* filter in search (videos, channels or playlists)
608 * Display only video results when searching on video metadata (tags, categories etc)
609 * Video imports
610 * Users can cancel and delete video imports
611 * Add ability to filter video imports by target URL
612 * Add ability for users to delete individual elements in videos history
613 * Show date and views counter in playlist element miniature [#4396](https://github.com/Chocobozzz/PeerTube/issues/4396)
614 * Add *norsk* locale support
615 * Check mute status and display mute badges in channel and account pages
616 * Add *No linguistic content* video language option [#4631](https://github.com/Chocobozzz/PeerTube/pull/4631)
617 * Don't send notifications to admins/moderators if an admin/moderator reported an abuse
618 * Add ability for moderators/admins to edit any channel [#4608](https://github.com/Chocobozzz/PeerTube/pull/4608)
619 * Add a refresh button to admin videos overview page [#4753](https://github.com/Chocobozzz/PeerTube/pull/4753)
620 * Add *Official* badge to official plugins in admin plugin pages
621 * Automatically clean unavailable remote ActivityPub resources
622 * Media RSS feed displays video file as default enclosure instead of torrent
623 * Use white background for PeerTube icons (instead of transparency)
624 * Show private badge for private videos in playlists [#4767](https://github.com/Chocobozzz/PeerTube/pull/4767)
625
626 ### Bug fixes
627
628 * Fix weird `require` bug on plugin upgrade
629 * Fix plugin storage return value when storing a JSON array [#4640](https://github.com/Chocobozzz/PeerTube/pull/4640)
630 * Decrease delay to cleanup resumable uploads (to 1 hour)
631 * Update torrent metadata on video update
632 * Fix HLS player with videos that have stream duration inconsistencies
633 * Fix player crash if the video contains only audio resolution
634 * Fix ffmpeg crash when using a transcoding plugin encoder that doesn't support PeerTube B-frame strategy
635 * Fix transcoding failure for audio only uploads
636 * Don't run HLS transcoding when running manually WebTorrent transcoding from the admin
637 * Don't run audio transcoding with video only file
638 * Correctly send new HLS files after re-transcoding to object storage
639 * Fix stuck state when move transcoding job failed
640 * Correctly display internal videos of internal subscriptions
641 * Correctly display all videos history to users
642 * Fix video upload with big preview file
643 * Fix description/comment timestamp click of external video
644 * Add missing `mediaType` information to AP objects
645 * Fix abuse list crash on deleted reporter account
646 * Convert markdown to HTML/plain text for RSS feeds
647 * Search on tags is now case insensitive
648 * Forbid comments/captions listing of private/internal videos
649 * Prevent video import on non unicast ips
650 * Improve markdown to plain text converter, especially when handling lists
651 * Fix scheduled publication on upload
652 * Fix youtube-dl max buffer size error
653 * Hide remote subscribe if user is logged in
654 * Fix video file `storage` column inconsistency
655
656
657 ## v4.0.0
658
659 ### IMPORTANT NOTES
660
661 * **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:
662 * 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`
663 * Docker installation: `cd /var/www/peertube-docker && docker-compose exec -u peertube peertube node dist/scripts/migrations/peertube-4.0.js`
664 * **Important** We fixed configuration inconsistencies and added some keys. **You must change/add them in your production.yaml**
665 * `log.rotation.maxFileSize` becomes `log.rotation.max_file_size`
666 * `log.rotation.maxFiles` becomes `log.rotation.max_files`
667 * `log.anonymizeIP` becomes `log.anonymize_ip`
668 * Removed `import.http.proxy` configuration: use `HTTP_PROXY` and `HTTPS_PROXY` environment variables instead
669 * Added `storage.bin` in configuration file
670 * REST API: Deprecate `filter` videos list query parameter in favour of `isLocal` and `include`
671 * PeerTube **is compatible** with ffmpeg 4.4.1 but **is not compatible** with ffmpeg 4.4.0
672 * Removed deprecated `/static/torrents` route
673 * We changed the live `views` and `viewers` system, that could lead to federation inconsistencies with instances < 4.0.0 for these specific counters
674
675 ### Maintenance
676
677 * Add ability for sysadmins to disable web configuration edition [#4315](https://github.com/Chocobozzz/PeerTube/pull/4315)
678 * YoutubeDL:
679 * Support [yt-dlp](https://github.com/yt-dlp/yt-dlp/) (recommended due to unmaintained [youtube-dl](https://github.com/ytdl-org/youtube-dl))
680 * Add ability to set release URL in configuration
681 * 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)
682
683 ### Plugins/Themes/Embed API
684
685 *Documentation: https://docs.joinpeertube.org/api/plugins*
686
687 * Add client plugin hooks:
688 * `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)
689 * Introduce plugin id selectors: https://docs.joinpeertube.org/contribute/plugins#plugin-selector-on-html-elements
690 * Add `#plugin-selector-login-form` to login form
691
692 ### Docker
693
694 * We now use Bullseye for Docker images, so the image name changed:
695 * `production-buster` becomes `production-bullseye`
696 * `v4.x.x-buster` becomes `v4.x.x-bullseye`
697 * Allow configuration to be static/readonly [#4315](https://github.com/Chocobozzz/PeerTube/pull/4315)
698
699 ### CLI tools
700
701 * Add [create-move-video-storage-jobs](https://docs.joinpeertube.org/maintain/tools#create-move-video-storage-jobjs) script to move local video files in object storage [#4481](https://github.com/Chocobozzz/PeerTube/pull/4481)
702 * Removed `peertube-repl` and `peertube-watch` scripts
703 * Apply import interval only when reasonable [#4552](https://github.com/Chocobozzz/PeerTube/pull/4552)
704
705 ### Features
706
707 * :tada: Add videos overview in admin
708 * List all available videos on the instance
709 * Display video information summary: file type, file size, privacy, state, embed...
710 * Many filters available: videos with/without HLS/WebTorrent, remote/local videos, exclude muted accounts...
711 * Run WebTorrent/HLS transcoding
712 * Remove WebTorrent/HLS video files
713 * Bulk actions: remove, block, run transcoding, delete video files...
714 * Correctly generate thumbnails/previews for portrait videos
715 * Keep input image ratio for banners, avatars, thumbnails...
716 * Support 144p transcoding [#4492](https://github.com/Chocobozzz/PeerTube/pull/4492)
717 * Support RTMPS
718 * UI:
719 * Live:
720 * Specify live type at first step
721 * Improve *Permanent live* label using *Recurring live* expression
722 * Clearer moderation dropdowns using section titles
723 * Improve admin tables responsive
724 * Add warning when trying to share a private playlist/video [#4469](https://github.com/Chocobozzz/PeerTube/pull/4469)
725 * Change *Sort by views* to *Sort by recent views* [#4483](https://github.com/Chocobozzz/PeerTube/pull/4483)
726 * Add *Next video to be played* in watch page if autoplay is enabled [#4497](https://github.com/Chocobozzz/PeerTube/pull/4497)
727 * Add embed preview in share modal
728 * Add user username in modal when deleting a user
729 * Add video name in modal when blocking/removing a video
730 * Improve notification settings organization
731 * Video/live views:
732 * Add ability for admins to change local buffer update interval
733 * Add ability for admins to change view expiration for a specific IP
734 * Introduce `viewers` attribute for live videos and reduce delay to see `viewers` update in the interface
735 * Take into accounts `views` created during the live when saving replay
736 * Add markdown support for playlist description [#4489](https://github.com/Chocobozzz/PeerTube/pull/4489)
737 * Improve video playback when having invalid redundancy URLs
738 * Load video resolutions before video starts in player settings menu
739 * Optimize federation:
740 * Correctly set HTTP request timeout
741 * Process slow/bad targets in a dedicated queue
742 * Optimize ActivityPub outbox fetch
743 * Automatically update `publishedAt` attribute when re-streaming in a permanent live
744 * Add ability for users to view their followers
745 * Add ability for users to filter their videos per channel
746 * Add ability for admins to show author display name instead of username in video miniatures [#4422](https://github.com/Chocobozzz/PeerTube/pull/4422)
747 * Add ability for admins to filter logs by tags
748 * Add ability for admins to configure per user channels limit [#4491](https://github.com/Chocobozzz/PeerTube/pull/4491)
749 * Add available instance themes and plugins in `/about/peertube` page
750 * Remove contributors list from `/about/peertube` since some contributors don't want their name to be displayed on unknown PeerTube instances
751 * Add *Transcoding failed* video state [#4525](https://github.com/Chocobozzz/PeerTube/pull/4525)
752 * Add ability to make a search using a URL containing query parameters
753 * Optimize *channel with video* component in homepage
754
755 ### Bug fixes
756
757 * Alert user when aborting video upload
758 * Fix youtube-dl update with proxy
759 * Fix *My videos* search on page refresh
760 * Fix homepage request error when having many elements (channels, videos...)
761 * Prevent multiple post-process triggering of upload-resumable [#4175](https://github.com/Chocobozzz/PeerTube/pull/4175)
762 * Fix remote interaction on remote content
763 * Fix HLS transcoding job when running `create-transcoding-job` CLI
764 * Fix import error log on failed import
765 * Fix transcoding with very low input bitrate
766 * Update `updatedAt` video attribute on thumbnail update
767 * Fix local video concurrent update
768 * Fix redundancy error when PeerTube tries to extend/remove redundancy
769 * Fix account switch in account channels page
770 * Hide job progress information for jobs that don't support it
771 * Fix player settings menu keyboard navigation
772 * Fix player placeholder width
773 * Fix playlist miniature size with big description
774 * Correctly escape meta tags
775 * Fix audio upload client bug if not enabled by instance
776 * Add header Vary Accept-Language [#4588](https://github.com/Chocobozzz/PeerTube/pull/4588)
777 * Fix additional extensions admin config description
778 * Fix upload of video with long filename
779 * Fix pending transcoding counter with failed job
780 * Fix client header search on ios
781 * Fix iframe attribute `allow-popups` for oembed
782 * Fix theme update when logged in
783 * Fix homepage title
784
785
786 ## v3.4.1
787
788 ### Bug fixes
789
790 * Fix broken PeerTube when cookies are disabled or if the embed iframe does not have appropriate options
791 * Fix search by channel's handle with an handle containing the local host
792 * Don't display autoblock message in upload page it is not enabled by the admin
793 * Don't index `/about/peertube` page
794 * Correctly handle OEmbed with an URL containing query parameters
795 * More robust youtube-dl thumbnail import
796 * Don't send a new video notification when using create transcoding CLI script
797
798
799 ## v3.4.0
800
801 ### IMPORTANT NOTES
802
803 * **Important:** Due to a bug in ffmpeg, PeerTube is not compatible with ffmpeg 4.4. See https://github.com/Chocobozzz/PeerTube/issues/3990
804 * **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
805 * PeerTube now supports NodeJS 16
806
807 ### Plugins/Themes/Embed API
808
809 *Documentation: https://docs.joinpeertube.org/api/plugins*
810
811 * Server helpers
812 * **Deprecate** `videoLanguageManager.addLanguage` and `videoLanguageManager.deleteLanguage`: use `videoLanguageManager.addConstant` and `videoLanguageManager.deleteConstant` instead
813 * **Deprecate** `videoCategoryManager.addCategory` and `videoCategoryManager.deleteCategory`: use `videoCategoryManager.addConstant` and `videoCategoryManager.deleteConstant` instead
814 * **Deprecate** `videoLicenceManager.addLicence` and `videoLicenceManager.deleteLicence`: use `videoLicenceManager.addConstant` and `videoLicenceManager.deleteConstant` instead
815 * **Deprecate** `videoPrivacyManager.deletePrivacy`: `videoPrivacyManager.deleteConstant` instead
816 * **Deprecate** `playlistPrivacyManager.deletePlaylistPrivacy`: `playlistPrivacyManager.deleteConstant` instead
817 * Introduce `.getConstantValue()`, `.getConstants()` and `.resetConstants()` for `videoLanguageManager`, `videoCategoryManager`, `videoLicenceManager`, `videoPrivacyManager` and `playlistPrivacyManager`
818 * Add server plugin hooks:
819 * `filter:api.overviews.videos.list.params` and `filter:api.overviews.videos.list.result`
820
821 ### Custom markup API
822
823 *Documentation: https://docs.joinpeertube.org/api/custom-client-markup*
824
825 * Add ability to only display VOD or live videos in `<peertube-videos-list>` element
826 * `<peertube-container>` fills all available width. Can be changed using `data-justify-content` attribute
827
828 ### Maintenance
829
830 * Remove `StandardOutput` and `StandardError` settings from systemd service template [#4300](https://github.com/Chocobozzz/PeerTube/pull/4300)
831 * Use random UUIDs for video, torrent and streaming playlist files
832 * Filename is regenerated when the file content changes: allows admins to use aggressive caching
833
834 ### CLI tools
835
836 * Remove unmaintened `optimize-old-videos.js` script
837 * Add short UUID support in video scripts
838
839 ### Features
840
841 * :tada: Add video filters to common video pages (account videos, channel videos, recently added/local/trending videos...)
842 * Change video sort (recently added, hot, views...)
843 * Only display live/VOD videos
844 * Filter by languages/categories
845 * Hide or display sensitive content
846 * Choose to display all videos or only local videos
847 * :tada: **Beta:** Add support for saving video files in object storage [#4290](https://github.com/Chocobozzz/PeerTube/pull/4290)
848 * Check the documentation: https://docs.joinpeertube.org/admin/remote-storage
849 * :tada: Add ability for instances to follow any actor (so specific accounts and channels)
850 * Updated HLS.js (library to play HLS playlists in PeerTube player) to V1:
851 * Remember last bandwidth to prevent resolution change at the beginning of the video
852 * Automatically downgrade resolution if bandwidth is too low
853 * Add latency metric for live videos in stats for nerd card
854 * Immediate quality change when the user clicks on a specific resolution
855 * Add ability to search by PeerTube host in search filters
856 * Disallow search engine indexation of remote channels/accounts
857 * Transcoding:
858 * Improve bitrate calculation using "bit per pixel" method
859 * Limit live bitrate to input bitrate
860 * Accessibility/UI:
861 * Alert user for low quota and video auto-block on upload page [#4336](https://github.com/Chocobozzz/PeerTube/pull/4336)
862 * Display a modal when logged in to explain why and where set up the account profile [#4352](https://github.com/Chocobozzz/PeerTube/pull/4352)
863 * Display messages to inform why and where set up channels in *My library* pages [#4352](https://github.com/Chocobozzz/PeerTube/pull/4352)
864 * Display a warning when using capitalized letter for the email/username in the login form
865 * Display a message in embed on unsupported web browser
866 * Support out proxy using env variables (`HTTP_PROXY` and `HTTPS_PROXY`) [#4346](https://github.com/Chocobozzz/PeerTube/pull/4346)
867 * Support *Latin* language for videos
868
869 ### Bug fixes
870
871 * Fix PeerTube button link in embed
872 * Don't remove existing redundancies on host redundancy update
873 * Remove thumbnail flash when autoplay is enabled in embed
874 * Fetch data in bulk for the homepage, fixing API rate limit errors
875 * Fix channel name validator consistency between client and server
876 * Fix resumable upload without preview file in the body
877 * Fix redundancy of big HLS files
878 * Fix stats for nerd card label width
879 * Fix stats for nerd card resolution
880 * Fix uploading videos with empty tags in CLI tools
881 * Fix HLS player on non HTTPS instances
882 * Hide schedule privacy if private was removed by a plugin
883 * Fix moderation embeds
884 * Fix description timestamp click
885 * Fix privacy descriptions
886 * Safer avatar, banner and video preview
887 * Fix broken delete buttons of admin federation lists [#4378](https://github.com/Chocobozzz/PeerTube/pull/4378)
888 * More robust webtorrent redundancy download
889 * Fix hls redundancy in pruning script
890 * Fix compat' with old web browsers (Pale Moon, Safari 11, iOS 11, old webkit...))
891 * Fix silent 500 after resumable upload
892 * Fix HTML config injection with custom HTML/CSS
893 * Fix video upload on iOS
894
895
896 ## v3.3.0
897
898 ### IMPORTANT NOTES
899
900 * **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**:
901 * You can upgrade manually https://docs.joinpeertube.org/install/any-os#manually
902 * Or you can apply the changes introduced in this commit: https://github.com/Chocobozzz/PeerTube/commit/86dc0b9cc9374cba7548bb613ff43d92f90570a8 and then use the auto upgrade script
903 * **Important:** Due to a bug in ffmpeg, PeerTube is not compatible with ffmpeg 4.4. See https://github.com/Chocobozzz/PeerTube/issues/3990
904
905
906 ### Maintenance
907
908 * Increase max image/caption/torrent upload size to `4MB`. You need to update your nginx configuration to handle this change
909 * Increase fetcher job concurrency to `3`
910
911 ### Docker
912
913 * Support log level env parameter `PEERTUBE_LOG_LEVEL` [#4149](https://github.com/Chocobozzz/PeerTube/pull/4149)
914
915 ### Plugins/Themes/Embed API
916
917 * Add client helpers:
918 * `getBaseRouterRoute()` [#4153](https://github.com/Chocobozzz/PeerTube/pull/4153)
919 * Add client plugin hooks (https://docs.joinpeertube.org/api/plugins):
920 * `filter:left-menu.links.create.result` to add/remove left menu links
921 * `filter:internal.player.videojs.options.result` to filter options sent to videojs player [#4126](https://github.com/Chocobozzz/PeerTube/pull/4126)
922 * Add server plugin hooks (https://docs.joinpeertube.org/api/plugins):
923 * `action:api.video-playlist-element.created`
924
925
926 ### Features
927
928 * :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)
929 * :tada: Add ability to search playlists in PeerTube instance and [SepiaSearch](https://sepiasearch.org/)
930 * :tada: Shorter public URLs (old URLs are still supported):
931 * Handle short UUID (`8r4jooaQpHp8tw1E1qpSeYq` instead of `3caf7bea-5ceb-4959-81a0-b44d184e897c`) for playlists and videos
932 * Use `/w/:id` instead of `/videos/watch/:id` and `/w/p/:id` instead of `/videos/watch/playlist/:id`
933 * Use `/a/:accountName` instead of `/accounts/:accountName` and `/c/:channelName` instead of `/video-channels/:channelName` [#4009](https://github.com/Chocobozzz/PeerTube/pull/4009)
934 * Provide `/@:username` page that automatically redirect to the account or channel page [#4009](https://github.com/Chocobozzz/PeerTube/pull/4009)
935 * :tada: Add RTL layout support
936 * Add ability to use HTML, markdown and [custom HTML tags](https://docs.joinpeertube.org/api/custom-client-markup) in instance description
937 * Default to dark theme (if available) if requested by the web browser
938 * Add ability for admins to configure minimum age required in signup page [#4010](https://github.com/Chocobozzz/PeerTube/pull/4010)
939 * Use a dedicated URL for each tab in publish page
940 * Add ability to prefill contact form using query parameters in URL [#4161](https://github.com/Chocobozzz/PeerTube/pull/4161)
941 * Accessibility/UI:
942 * Show logo in mobile view [#4141](https://github.com/Chocobozzz/PeerTube/pull/4141)
943 * Improve download modal to download video subtitles
944 * Better error message when trying to import a torrent containing multiple files
945 * REST API errors:
946 * Use [RFC 7807](https://datatracker.ietf.org/doc/html/rfc7807) format to display errors [#4143](https://github.com/Chocobozzz/PeerTube/pull/4143)
947 * Improve date format error messages
948 * Improve video name and tag error messages
949 * Performance:
950 * Use raw SQL to fetch a video from database (~ latency / 2)
951 * Inject server config in HTML
952 * Speed up client plugin loading
953 * Cache refresh actor promises
954 * Optimize activity pub video update
955 * Relax some database transactions
956 * Use an internal cache for DNS resolution.
957 This should speed up federation and fix weird acquire timeouts in sequelize pool (causing slowness in the client interface)
958
959 ### Bug fixes
960
961 * Fix video upload with a capitalized extension
962 * Fix "height not divisible by 2" ffmpeg error
963 * Don't count deleted comment for replies
964 * Fix UI bug when a plugin deleted the public privacy setting [#4163](https://github.com/Chocobozzz/PeerTube/pull/4163)
965 * Fix `player.getResolutions()` embed API when the video is has not been played yet
966 * Fix live placeholder image aspect ratio in theatre mode
967 * Fix plugin modal/notifier
968 * Fix some 404 errors for remote avatar
969 * Fix daily quota display
970 * Fix ownership change with a live video
971 * Correctly handle broken plugin install
972 * Fix channel deletion when it has videos
973 * Force TLS for webfinger in production
974 * Correctly support `wav` mimetype
975 * Fix default video privacy when plugins deleted private video privacy
976 * Fix subscribe hotkey
977 * Fix HTTP fallback with a video that does not have webtorrent files
978 * Fill video information when importing a peertube video
979
980
981 ## v3.2.1
982
983 ### IMPORTANT NOTES
984
985 * **Important:** v3.2.0 introduced a `pg_dump` export bug in the auto upgrade script. To upgrade from v3.2.0:
986 * You can upgrade manually https://docs.joinpeertube.org/install/any-os#manually
987 * Or you can apply the changes introduced in this commit: https://github.com/Chocobozzz/PeerTube/commit/86dc0b9cc9374cba7548bb613ff43d92f90570a8 and then use the auto upgrade script
988
989 ### Bug fixes
990
991 * Fix create account button style
992 * Fix auto upgrade script
993 * Fix live image aspect ratio in theatre mode
994
995
996 ## v3.2.0
997
998 ### IMPORTANT NOTES
999
1000 * **Important:** You must update your nginx configuration to add the `upload-resumable` endpoint: https://github.com/Chocobozzz/PeerTube/blob/develop/support/nginx/peertube#L81
1001 * **Important:** Due to a bug in ffmpeg, PeerTube is not compatible with ffmpeg 4.4. See https://github.com/Chocobozzz/PeerTube/issues/3990
1002 * **Important:** Drop NodeJS 10 support
1003 * PeerTube is not compatible with NodeJS 16 yet
1004 * By default, HLS transcoding is now enabled and webtorrent is disabled. We suggest you to reflect this change.
1005 See [the documentation](https://docs.joinpeertube.org/admin/configuration#webtorrent-transcoding-or-hls-transcoding) for more information
1006 * PeerTube client now displays bigger video thumbnails.
1007 To fix old thumbnails quality, run `regenerate-thumbnails` script after your PeerTube upgrade: https://docs.joinpeertube.org/maintain/tools#regenerate-thumbnailsjs
1008
1009 ### Docker
1010
1011 * Support SSL database env parameter [#4114](https://github.com/Chocobozzz/PeerTube/pull/4114)
1012
1013 ### Maintenance
1014
1015 * Support `X-Frame-Options` header, enabled by default in the configuration
1016 * Directly use `node` in [systemd template](https://github.com/Chocobozzz/PeerTube/blob/develop/support/systemd/peertube.service)
1017 * Check ffmpeg version at PeerTube startup
1018 * Add `upload-resumable` nginx endpoint: https://github.com/Chocobozzz/PeerTube/blob/develop/support/nginx/peertube#L81
1019
1020 ### CLI tools
1021
1022 * Add `regenerate-thumbnails` script to regenerate thumbnails of local videos
1023
1024 ### Plugins/Themes/Embed API
1025
1026 * Theme:
1027 * `--submenuColor` becomes `--submenuBackgroundColor`
1028 * Support HTML placeholders for plugins. See [the documentation](https://docs.joinpeertube.org/contribute/plugins#html-placeholder-elements) for more information
1029 * `player-next` next to the PeerTube player
1030 * Support storing files for plugins in a dedicated directory. See [the documentation](https://docs.joinpeertube.org/contribute/plugins#storage) for more information
1031 * Transcoding:
1032 * Add `inputOptions` option support for transcoding profile [#3917](https://github.com/Chocobozzz/PeerTube/pull/3917)
1033 * Add `scaleFilter.name` option support for transcoding profile [#3917](https://github.com/Chocobozzz/PeerTube/pull/3917)
1034 * Plugin settings:
1035 * Add ability to register `html` and `select` setting
1036 * Add ability to hide a plugin setting depending on the form state
1037 * Plugin form fields (to add inputs to video form...):
1038 * Add ability to hide a plugin field depending on the form state using `.hidden` property
1039 * Add client helpers:
1040 * `getServerConfig()`
1041 * `getAuthHeader()`
1042 * Add server helpers:
1043 * `config.getServerConfig()`
1044 * `plugin.getBaseStaticRoute()`
1045 * `plugin.getBaseRouterRoute()`
1046 * `plugin.getDataDirectoryPath()`
1047 * `user.getAuthUser()`
1048 * Add client plugin hooks (https://docs.joinpeertube.org/api/plugins):
1049 * `action:modal.video-download.shown`
1050 * `action:video-upload.init`
1051 * `action:video-url-import.init`
1052 * `action:video-torrent-import.init`
1053 * `action:go-live.init`
1054 * `action:auth-user.logged-in` & `action:auth-user.logged-out`
1055 * `action:auth-user.information-loaded`
1056 * `action:admin-plugin-settings.init`
1057 * Add server plugin hooks (https://docs.joinpeertube.org/api/plugins):
1058 * `filter:api.download.video.allowed.result` & `filter:api.download.torrent.allowed.result` to forbid download
1059 * `filter:html.embed.video-playlist.allowed.result` & `filter:html.embed.video.allowed.result` to forbid embed
1060 * `filter:api.search.videos.local.list.params` & `filter:api.search.videos.local.list.result`
1061 * `filter:api.search.videos.index.list.params` & `filter:api.search.videos.index.list.result`
1062 * `filter:api.search.video-channels.local.list.params` & `filter:api.search.video-channels.local.list.result`
1063 * `filter:api.search.video-channels.index.list.params` & `filter:api.search.video-channels.index.list.result`
1064
1065 ### Features
1066
1067 * :tada: More robust uploads using a resumable upload endpoint [#3933](https://github.com/Chocobozzz/PeerTube/pull/3933)
1068 * Accessibility/UI:
1069 * :tada: Redesign channel and account page
1070 * :tada: Increase video miniature size
1071 * :tada: Add channel banner support
1072 * Use a square avatar for channels and a round avatar for accounts
1073 * Use account initial as default account avatar [#4002](https://github.com/Chocobozzz/PeerTube/pull/4002)
1074 * Prefer channel display in video miniature
1075 * Add *support* button in channel page
1076 * Set direct download as default in video download modal [#3880](https://github.com/Chocobozzz/PeerTube/pull/3880)
1077 * Show less information in video download modal by default [#3890](https://github.com/Chocobozzz/PeerTube/pull/3890)
1078 * Autofocus admin plugin search input
1079 * Add `1.75` playback rate to player [#3888](https://github.com/Chocobozzz/PeerTube/pull/3888)
1080 * Add `title` attribute to embed code [#3901](https://github.com/Chocobozzz/PeerTube/pull/3901)
1081 * Don't pause player when opening a modal [#3909](https://github.com/Chocobozzz/PeerTube/pull/3909)
1082 * Add link below the player to open the video on origin instance [#3624](https://github.com/Chocobozzz/PeerTube/issues/3624)
1083 * Notify admins on new available PeerTube version
1084 * Notify admins on new available plugin version
1085 * Sort channels by last uploaded videos
1086 * Video player:
1087 * Add loop toggle to context menu [#3949](https://github.com/Chocobozzz/PeerTube/pull/3949)
1088 * Add icons to context menu [#3955](https://github.com/Chocobozzz/PeerTube/pull/3955)
1089 * Add a *Previous* button in playlist watch page [#3485](https://github.com/Chocobozzz/PeerTube/pull/3485)
1090 * Automatically close the settings menu when clicking outside the player
1091 * Add "stats for nerds" panel in context menu [#3958](https://github.com/Chocobozzz/PeerTube/pull/3958)
1092 * Add channel and playlist stats to stats endpoint [#3747](https://github.com/Chocobozzz/PeerTube/pull/3747)
1093 * Support `playlistPosition=last` and negative index (`playlistPosition=-2`) URL query parameters for playlists [#3974](https://github.com/Chocobozzz/PeerTube/pull/3974)
1094 * My videos:
1095 * Add ability to sort videos (publication date, most viewed...)
1096 * Add ability to only display live videos
1097 * Automatically resume videos for non logged-in users [#3885](https://github.com/Chocobozzz/PeerTube/pull/3885)
1098 * Admin plugins:
1099 * Show a modal when upgrading a plugin to a major version
1100 * Display a setting button after plugin installation
1101 * Add ability to search live videos
1102 * Use bigger thumbnails for feeds
1103 * Parse video description markdown for Opengraph/Twitter/HTML elements
1104 * Open the remote interaction modal when replying to a comment if we are logged-out
1105 * Handle `.srt` captions with broken durations
1106 * Performance:
1107 * Player now lazy loads video captions
1108 * Faster admin table filters
1109 * Optimize feed endpoint
1110
1111 ### Bug fixes
1112
1113 * More robust comments fetcher of remote video
1114 * Fix database ssl connection
1115 * Remove unnecessary black border above and below video in player [#3920](https://github.com/Chocobozzz/PeerTube/pull/3920)
1116 * Reduce tag input excessive padding [#3927](https://github.com/Chocobozzz/PeerTube/pull/3927)
1117 * Fix disappearing hamburger menu for narrow screens [#3929](https://github.com/Chocobozzz/PeerTube/pull/3929)
1118 * Fix Youtube subtitle import with some languages
1119 * Fix transcoding profile update in admin config
1120 * Fix outbox fetch with subtitled videos
1121 * Correctly unload a plugin on update/uninstall [#3940](https://github.com/Chocobozzz/PeerTube/pull/3940)
1122 * Ensure to install plugins that are supported by PeerTube
1123 * Fix welcome/warning modal displaying twice
1124 * Fix h265 video import using CLI
1125 * Fix context menu when watching a playlist
1126 * Fix transcoding job priority preventing video publication when there are many videos to transcode
1127 * Fix remote account/channel "joined at"
1128 * Fix CLI plugins list command options [#4055](https://github.com/Chocobozzz/PeerTube/pull/4055)
1129 * Fix HTTP player defaulting to audio resolution
1130 * Logger warning level is "warn"
1131 * Fix default boolean plugin setting [#4107](https://github.com/Chocobozzz/PeerTube/pull/4107)
1132 * Fix duplicate ffmpeg preset option for live
1133 * Avoid federation error when file has no torrent file
1134 * Fix local user auth select
1135 * Fix live ending banner display
1136 * Fix redundancy max size
1137 * Fix broken lives handling
1138
1139
1140
1141 ## v3.1.0
1142
1143 ### IMPORTANT NOTES
1144
1145 * **Important:** Drop PostgreSQL 9.6 support
1146 * **Important:** Deprecate NodeJS 10
1147 * Support NodeJS 14 and 15
1148 * Remove ES5 module support (breaks compatibility with web browsers we didn't support)
1149 * PeerTube releases now contain client source maps helping client debugging (for developers and admins).
1150 It's the reason why the release size is bigger (we think it's worth it)
1151 * Remove deprecated static routes (`/static/avatars/`, `/static/previews/` and `/static/video-captions/`)
1152 * PeerTube now uses a unique name for thumbnails, previews and captions allowing to correctly cache these resources.
1153 It could break some third party clients that guessed these filenames depending on the video UUID. We'll continue this work in the future
1154 for video filenames, so admins can easily cache these files (using multiple reverse proxies etc)
1155
1156 ### Maintenance
1157
1158 * Fix nginx max body size configuration
1159
1160 ### CLI tools
1161
1162 * Add script printing command to generate a resolution for a given file [#3507](https://github.com/Chocobozzz/PeerTube/pull/3507)
1163 * Add `--wait-interval <seconds>` option to video-import script to wait between two video imports [#3310](https://github.com/Chocobozzz/PeerTube/pull/3310)
1164
1165 ### Plugins/Themes/Embed API
1166
1167 * Add server plugin hooks (https://docs.joinpeertube.org/api/plugins):
1168 * `filter:api.user.me.videos.list.params` and `filter:api.user.me.videos.list.result`
1169 * Add server helpers:
1170 * `videos.loadByIdOrUUID`
1171 * Add server transcoding helpers (https://docs.joinpeertube.org/contribute/plugins#add-new-transcoding-profiles):
1172 * `transcodingManager.addVODProfile`
1173 * `transcodingManager.addVODEncoderPriority`
1174 * `transcodingManager.addLiveProfile`
1175 * `transcodingManager.addLiveEncoderPriority`
1176
1177 ### Features
1178
1179 * Transcoding:
1180 * Fair transcoding jobs priority: give an higher priority to `optimize` jobs and decrease priority of transcoding jobs depending on the amount of videos uploaded by the user during the last 7 days [#3637](https://github.com/Chocobozzz/PeerTube/pull/3637)
1181 * Higher niceness priority for live transcoding compared to vod transcoding [#3577](https://github.com/Chocobozzz/PeerTube/pull/3577)
1182 * Allow admins to choose a transcoding profile. New transcoding profiles can be added by PeerTube plugins that can inject custom ffmpeg encoders/parameters
1183 * Add transcoding support for 1440p (Quad HD/QHD/WQHD) videos [#3518](https://github.com/Chocobozzz/PeerTube/pull/3518)
1184 * Add transcoding progress in admin transcoding jobs list
1185 * Use `veryfast` preset for default transcoding profile (same result size but faster)
1186 * Transcode audio uploads to lower configured resolutions
1187 * Transcode HLS playlists in a `tmp` directory (less bugs/inconsistencies)
1188 * Allow admins to choose the transcoding jobs concurrency
1189 * Support Albanian locale
1190 * Video upload:
1191 * Async torrent creation on video upload. We hope that it should fix some weird upload errors
1192 * Add `.m4a` audio upload support
1193 * Accessibility/UI:
1194 * Move orange admin buttons on the left side
1195 * Hide title to left menu toggle icon
1196 * Add username information in profile settings
1197 * Improve about page layout
1198 * Add refresh button in jobs list
1199 * Add ability to set a custom user quota
1200 * Rewrite prose for JavaScript disabled message [#3684](https://github.com/Chocobozzz/PeerTube/pull/3684)
1201 * Video import:
1202 * Stricter youtube-dl format selectors for import (don't import HDR videos and cap to the max supported resolution) [#3516](https://github.com/Chocobozzz/PeerTube/pull/3516)
1203 * Don't publish imported videos before the user submitted the second step form
1204 * Allow admins to choose the import jobs concurrency
1205 * Implement *hot* and *best* trending algorithms [#3625](https://github.com/Chocobozzz/PeerTube/pull/3625) & [#3681](https://github.com/Chocobozzz/PeerTube/pull/3681)
1206 * Admin config:
1207 * Add URL fragment support in admin config page to go on the appropriate tab
1208 * Improve submit error message
1209 * Allow admins to disable ping requests logging [#3550](https://github.com/Chocobozzz/PeerTube/pull/3550)
1210 * Add a setting so PeerTube periodically cleans up remote AP interactions
1211 * Add ability for admins to update plugin auth field of a particular user
1212 * Support `webp` avatar upload
1213 * Implement remote comment/subscription
1214 * Register a service worker [#3464](https://github.com/Chocobozzz/PeerTube/pull/3464)
1215 * Add ability to remove one's avatar for account and channels [#3467](https://github.com/Chocobozzz/PeerTube/pull/3467)
1216 * Show first decimal for video views above a thousand [#3564](https://github.com/Chocobozzz/PeerTube/pull/3564)
1217 * Allow user to search through their watch history [#3576](https://github.com/Chocobozzz/PeerTube/pull/3576)
1218 * Allow users/visitors to search through an account's videos [#3589](https://github.com/Chocobozzz/PeerTube/pull/3589)
1219 * Use an HTML link to display feed url
1220 * Allow AP resolution for default account/channel pages (`/accounts/:name/video-channels` and `/video-channels/:name/videos`)
1221 * Redirect to login on 401, display 403 variant [#3632](https://github.com/Chocobozzz/PeerTube/pull/3632)
1222 * Performance:
1223 * Optimize videos list API endpoint
1224 * Optimize videos list views sort SQL query
1225 * Avoid as much as possible to process remote thumbnail
1226 * Proxify remote torrent requests from local clients (like we do for captions and previews)
1227 * Optimize rate POST endpoint
1228 * Tighten hotkeys definitions to not conflict with the web browser hotkeys [#3702](https://github.com/Chocobozzz/PeerTube/pull/3702)
1229 * Add more AP stats to stats endpoint
1230 * Increase jobs request timeout to 7 seconds
1231 * Increase broadcast request concurrency to 30
1232
1233 ### Bug fixes
1234
1235 * Fix remote subscribe input alignment
1236 * Fix loading bar for HTTP requests
1237 * Fix table header overflow
1238 * Disable wait transcoding checkbox instead of hiding it when uploading an incompatible video for the web
1239 * Fix sendmail emailer configuration
1240 * Add missing niceness to ffmpeg thumbnail process
1241 * Videos with only HLS files:
1242 * Fix RSS feed
1243 * Correctly wait transcoding before federating
1244 * Fix redundancy
1245 * Correctly remove torrents
1246 * Localize decimal separator in video miniatures [#3643](https://github.com/Chocobozzz/PeerTube/pull/3643)
1247 * Check banned status on external authentication
1248 * Remove all video redundancies when purging the cache
1249 * Fix URI search admin config update
1250 * Fix broken HLS playback with videos that contain an unknown channel layout
1251 * Fix HLS generation after file import script
1252 * Ensure we don't receive things from local actors
1253 * Try to recover from network errors in HLS player
1254 * Fix comments sorting dropdown z-index
1255 * Fix create transcoding job script depending on the transcoding configuration
1256 * Fix NSFW policy in my videos, account videos and channel videos pages
1257 * Fix complete description loading of a previous video
1258 * Fix video comments display with deleted comments
1259 * Don't override preview image on import
1260 * Fix Accept AP messages sending to previously accepted followers
1261 * Fix import script when using the instance uses the search index
1262 * Fix player freeze on Safari with a video that has many subtitles
1263 * Fix anonymous user settings
1264 * Fix preview upload with capitalized ext
1265 * Fix abuses list crash on deleted video
1266 * More robust channel change federation
1267 * Fix emptying video tags
1268 * Fix broken local actors that do not have a public/private key
1269 * Fix bad PeerTube URL for playlist embed
1270 * Live:
1271 * Don't update live attributes if they did not change (allowing to update live metadata even if the live has started)
1272 * Fix live RAM usage when ffmpeg is too slow to transcode the RTMP stream
1273 * Correctly load live information (description and preview) when not started
1274 * Fix mention notification with deleted comment
1275 * Fix default boolean plugin setting
1276 * Fix long text on modals [#3840](https://github.com/Chocobozzz/PeerTube/pull/3840)
1277
1278 ## v3.0.1
1279
1280 ### SECURITY
1281
1282 * **Important:** Fix retrieving data of another user if the username contains `_` when fetching *my information*
1283
1284 ### Docker
1285
1286 * Fix [upgrade documentation](https://docs.joinpeertube.org/install/docker#upgrade)
1287 * Add live RTMP port in docker compose
1288
1289 ### Bug fixes
1290
1291 * Fix account feed URL
1292 * Log RTMP server error (address already in use)
1293 * Fix NPM theme links in admin theme page
1294 * Don't reject AP actors with empty description
1295 * Fix twitter admin config description
1296 * Fix duplicate entry in job list page
1297 * Fix `nl-NL` broken admin config page
1298 * Fix bad tracker client IP when using a reverse proxy
1299
1300
1301 ## v3.0.0
1302
1303 **Since v2.4.0**
1304
1305 ### IMPORTANT NOTES
1306
1307 * 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)
1308 * 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)
1309 * Remove deprecated video abuse API
1310
1311 ### Maintenance
1312
1313 * Refresh nginx configuration [#3313](https://github.com/Chocobozzz/PeerTube/pull/3313)
1314
1315 ### Docker
1316
1317 * Replace traefik by nginx in our docker-compose template:
1318 * Better consistency with our default setup (we now use the same stack)
1319 * Use our default nginx template enabling many optimizations
1320 * Update the documentation to take into account this change: https://docs.joinpeertube.org/install/docker
1321
1322 ### Plugins/Themes/Embed API
1323
1324 * Add ability for auth plugins to redirect user on logout [#32](https://framagit.org/framasoft/peertube/PeerTube/-/merge_requests/32) & [#33](https://framagit.org/framasoft/peertube/PeerTube/-/merge_requests/33)
1325 * Add `input-password` setting to plugins [#3375](https://github.com/Chocobozzz/PeerTube/issues/3375)
1326 * Add server plugin hooks (https://docs.joinpeertube.org/api/plugins):
1327 * `filter:api.accounts.videos.list.params`
1328 * `filter:api.accounts.videos.list.result`
1329 * `filter:api.video-channels.videos.list.params`
1330 * `filter:api.video-channels.videos.list.result`
1331 * Authenticate the user if possible in plugin router [#3400](https://github.com/Chocobozzz/PeerTube/pull/3400)
1332
1333 ### Features
1334
1335 * :tada: :tada: :tada: Support live streaming :tada: :tada: :tada: [#3250](https://github.com/Chocobozzz/PeerTube/pull/3250)
1336 * Create a live video using the PeerTube interface and start streaming using your favorite streaming software (OBS, ffmpeg...)
1337 * If the admin allows it, add ability for users to save a replay of their live
1338 * Support live transcoding in multiple resolutions
1339 * Admins can set a limit of created lives per user/instance and a duration limit
1340 * This is the first step of live streaming, we'll consolidate the feature next year
1341 * Support Galician locale
1342 * Update left menu [#3296](https://github.com/Chocobozzz/PeerTube/pull/3296)
1343 * Add *My settings*, *My library*, *Administration* (if admin) below the username
1344 * Rename section titles to *In my account*, and *On instance name* for better block scopes identification
1345 * Removed confusing *Account settings* and *Channel settings* from user dropdown
1346 * Add *My notifications* in user dropdown
1347 * Split account horizontal menu in two [#3296](https://github.com/Chocobozzz/PeerTube/pull/3296)
1348 * *My library* containing *Channels*, *Videos*, *Imports*, *Ownership changes*, *Playlists*, *Subscriptions* and *History*
1349 * *My settings* containing *Account settings*, *Notifications* and *Moderation* tools
1350 * Add page in admin to manage video comments of the instance
1351 * List latest comments
1352 * Delete comments of a specific user
1353 * Delete comments in bulk
1354 * Delete notifications related to muted accounts/instances
1355 * Add ability for moderators to display all videos (not yet published, private...) in channels/accounts pages
1356 * Support GIF avatars upload and federation [#3329](https://github.com/Chocobozzz/PeerTube/pull/3329)
1357 * Automatically enable auto block of new videos if the admin enables signups in the admin interface
1358 * Allow private syndication feed of videos from subscriptions [#3074](https://github.com/Chocobozzz/PeerTube/pull/3074)
1359 * Improve default account and channel avatars [#3326](https://github.com/Chocobozzz/PeerTube/pull/3326)
1360 * Accessibility/UI:
1361 * More explicit error messages for file uploads [#3347](https://github.com/Chocobozzz/PeerTube/pull/3347)
1362 * Allow to retry a failed video upload [#3347](https://github.com/Chocobozzz/PeerTube/pull/3347)
1363 * Improve jobs and logs view [#3127](https://github.com/Chocobozzz/PeerTube/pull/3127)
1364 * Use badges for *NSFW* and *Unfederated* labels in video block list table
1365 * Improved video rating popover text if the user is not logged-in [#3168](https://github.com/Chocobozzz/PeerTube/pull/3168)
1366 * Improve markdown-it emoji list column display [#3253](https://github.com/Chocobozzz/PeerTube/pull/3253)
1367 * Add help popup for choosing a licence [#3306](https://github.com/Chocobozzz/PeerTube/pull/3306)
1368 * Change *Upload* button to *Publish*
1369 * More player download/upload title details [#3394](https://github.com/Chocobozzz/PeerTube/pull/3394)
1370 * Create a dedicated transcoding tab in admin config
1371 * Improve 404 page
1372 * Improve login form [#3357](https://github.com/Chocobozzz/PeerTube/pull/3357)
1373 * Add a title attribute on views element to see the view counter [#3365](https://github.com/Chocobozzz/PeerTube/pull/3365)
1374 * Clearer titles for periods in recently added and videos from subscriptions pages
1375 * Select first available channel when accepting ownership change [#3382](https://github.com/Chocobozzz/PeerTube/pull/3382)
1376 * Hide channel registration step if default quota is 0 [#3393](https://github.com/Chocobozzz/PeerTube/pull/3393)
1377 * Add possibility to share origin URL to video if it's not local [#3201](https://github.com/Chocobozzz/PeerTube/pull/3201)
1378 * Render markdown in email notifications for new comments [#3255](https://github.com/Chocobozzz/PeerTube/pull/3255)
1379 * Add an admin setting to force ipv4 in youtube-dl [#3311](https://github.com/Chocobozzz/PeerTube/pull/3311)
1380 * Add ability for admins to put markdown in all fields of *About* page [#3371](https://github.com/Chocobozzz/PeerTube/pull/3371)
1381 * Support `activeMonth` and `activeHalfyear` in nodeinfo
1382
1383 ### Bug fixes
1384
1385 * Fix inability to delete a channel due to a bug in the confirm modal
1386 * Fix views processing for hour 0
1387 * Fix ownership change modal accept button
1388 * Fix incorrect ActivityPub IDs
1389 * Do not transcode videos to an higher bitrate than the source
1390 * Fix video display of muted accounts on overview page
1391 * Fix transcoding errors in readonly docker containers [#3198](https://github.com/Chocobozzz/PeerTube/pull/3198)
1392 * Fix running another transcoding job using the CLI on a video that was already transcoded
1393 * Fix embed on Brave web browser
1394 * Fix break line display for re-draft comments [#3261](https://github.com/Chocobozzz/PeerTube/pull/3261)
1395 * Fix hidden loading bar
1396 * Fix jobs pagination
1397 * Fix missing player localized strings
1398 * Fix instance file size stats when the admin enabled HLS
1399 * Fix embed of HLS videos on non HTTPS websites
1400 * Hide embed dock when title/description are disabled
1401 * Fix follow notification when the follower has been deleted
1402 * Fix client override endpoint in nginx configuration [#3297](https://github.com/Chocobozzz/PeerTube/pull/3297)
1403 * Fix overflow of some dropdowns
1404 * Fix infinite scrollin in channel's playlists page
1405 * Fix anchors scrolling in About page
1406 * Fix canonical URLs of videos and playlists [#3406](https://github.com/Chocobozzz/PeerTube/pull/3406)
1407 * Fix CLI import script when importing Youtube channels
1408 * Fix video tag min length validator
1409 * Fix user notification preferences column width [#3352](https://github.com/Chocobozzz/PeerTube/pull/3352)
1410 * Fix forgotten/reset password UI [#3351](https://github.com/Chocobozzz/PeerTube/pull/3351)
1411 * Fix 00:00 player timecode in video description and comments
1412 * Avoid too large federation cert error messages in logs
1413 * Fix registration form width on mobile [#3274](https://github.com/Chocobozzz/PeerTube/pull/3274)
1414 * Fix "Too many packets buffered for output stream" ffmpeg error with some videos
1415 * Fix 500 error when fetching unknown video thread
1416 * Fix infinite scroll in *Local videos* page when enabling the *Display all videos* checkbox on big screens
1417 * Fix menu theme colors [#3376](https://github.com/Chocobozzz/PeerTube/pull/3376)
1418 * Fix playlist list `name`/`displayName` sort field [#3385](https://github.com/Chocobozzz/PeerTube/pull/3385)
1419 * Fix 401 error display in embeds
1420 * Do not crash if SMTP server is down, instead log an error [#3457](https://github.com/Chocobozzz/PeerTube/issues/3457)
1421 * Fix redundancy federation in specific cases
1422 * Stop CLI auth failure with extra `/` [#3520](https://github.com/Chocobozzz/PeerTube/issues/3520)
1423 * Add missing audit log if the user deletes its account
1424 * Don't crash on youtube-dl update write error
1425 * Fix video auto block notification issue
1426
1427 **Since v3.0.0-rc.1**
1428
1429 ### Features
1430
1431 * Support Galician locale
1432 * Support `activeMonth` and `activeHalfyear` in nodeinfo
1433
1434 ### Bug fixes
1435
1436 * Fix views processing for hour 0
1437 * Fix follows pages (in admin and about)
1438 * Don't display live max duration if disabled by admin
1439 * Correctly display live badge in videos list
1440 * Fix redundancy federation in specific cases
1441 * Fix live miniatures
1442 * Don't update player timestamp when clicking on a timecode in comments/descriptions for a live
1443 * Fix admin table filters
1444 * Fix some accessibility issues
1445 * Stop CLI auth failure with extra `/` [#3520](https://github.com/Chocobozzz/PeerTube/issues/3520)
1446 * Fix login error display
1447 * Don't display log level in audit logs view
1448 * Add missing audit log if the user deletes its account
1449 * Don't crash on youtube-dl update write error
1450 * Fix video auto block notification issue
1451
1452
1453 ## v2.4.0
1454
1455 **Since v2.3.0**
1456
1457 ### IMPORTANT NOTES
1458
1459 * The minimum ffmpeg version required is now 4.1
1460 * Deprecate static routes that will be removed in 3.0 (you may not have to do anything if you used paths returned by the video REST API):
1461 * `/static/avatars/`: use `/lazy-static/avatars/` instead
1462 * `/static/previews/`: use `/lazy-static/previews/` instead
1463 * `/static/video-captions/`: use `/lazy-static/video-captions/` instead
1464 * Use `playlistPosition` URL parameter for playlists instead of `videoId` to set the current playlist position
1465
1466 ### Maintenance
1467
1468 * Better error message on PostgreSQL connection error
1469 * Add `ssl` option support for PostgreSQL connection
1470
1471 ### Official PeerTube plugins
1472
1473 * [Player video annotation (alpha)](https://framagit.org/framasoft/peertube/official-plugins/-/tree/master/peertube-plugin-video-annotation)
1474
1475 ### Plugins/Themes/Embed API
1476
1477 * Add embed API (https://docs.joinpeertube.org/api/embed-player):
1478 * `playNextVideo` method
1479 * `playPreviousVideo` method
1480 * `getCurrentPosition` method
1481 * Embed URL parameters
1482 * Add ability to disable PeerTube link in embed using an URL param (`peertubeLink=0`)
1483 * Add plugins support in embed
1484 * Add client plugin hooks (https://docs.joinpeertube.org/api/plugins):
1485 * `action:embed.player.loaded` (for embed)
1486 * Add custom fields in video update/upload form using `registerVideoField` (https://docs.joinpeertube.org/contribute/plugins#add-custom-fields-to-video-form)
1487
1488 ### Features
1489
1490 * Moderation:
1491 * :tada: Add ability to report comments and accounts
1492 * :tada: Add messaging system between local reporter of an abuse and moderators so they can easily communicate
1493 * :tada: Users can now see their abuse reports, and have notifications when an abuse state changed (accepted/rejected) or when moderators added a new message
1494 * Add embed to block list details [@rigelk in #2926](https://github.com/Chocobozzz/PeerTube/pull/2926)
1495 * Video playlists:
1496 * :tada: Add ability to embed playlists
1497 * :tada: Add ability to put a video multiple times in a playlist (with different startAt/stopAt parameters or not)
1498 * Video comments:
1499 * Add uni-code emojis native display in comments [@Kimsible in #3046](https://github.com/Chocobozzz/PeerTube/pull/3046)
1500 * Add delete and re-draft action on a comment that doesn't have replies [@Kimsible in #3046](https://github.com/Chocobozzz/PeerTube/pull/3046)
1501 * Hide deleted comments when there aren't replies [@Kimsible in #3046](https://github.com/Chocobozzz/PeerTube/pull/3046)
1502 * Accessibility/UI:
1503 * Disable vertical scroll instead of hide on desktop browsers [@Kimsible in #2962](https://github.com/Chocobozzz/PeerTube/pull/2962)
1504 * Update my-account sub-menus icons [@Kimsible in #2977](https://github.com/Chocobozzz/PeerTube/pull/2977)
1505 * Improve navigation sub-menu and tabs effects [@Kimsible in #2971](https://github.com/Chocobozzz/PeerTube/pull/2971)
1506 * Hide generic channel display name and avatar on watch view [@Kimsible in #2988](https://github.com/Chocobozzz/PeerTube/pull/2988)
1507 * Display user quota progress bars above upload form [@Kimsible in #2981](https://github.com/Chocobozzz/PeerTube/pull/2981)
1508 * Improve mobile accessibility by moving table action cells on the left [@Kimsible in #2980](https://github.com/Chocobozzz/PeerTube/pull/2980)
1509 * Directly display download button in watch page on logged-out users [@rigelk in #2919](https://github.com/Chocobozzz/PeerTube/pull/2919)
1510 * Improve users list table display in admin (add badge, progress bar) [@rigelk in #2991](https://github.com/Chocobozzz/PeerTube/pull/2991)
1511 * Add dynamic column display for users list table in admin [@rigelk in #2991](https://github.com/Chocobozzz/PeerTube/pull/2991)
1512 * Add anchor links to about/instance [@Kimsible in #3064](https://github.com/Chocobozzz/PeerTube/pull/3064)
1513 * Improve select components [@rigelk in #3035](https://github.com/Chocobozzz/PeerTube/pull/3035)
1514 * Add content overlay for opened menu on touchscreens [@Kimsible in #3088](https://github.com/Chocobozzz/PeerTube/pull/3088)
1515 * Add alert and hide upload view when no upload is possible [@Kimsible in #2966](https://github.com/Chocobozzz/PeerTube/pull/2966)
1516 * Allow sorting notifications by unread/newest **@rigelk**
1517 * Add open-graph and twitter-card metas for accounts, video-channels and playlists urls [@Kimsible in #2996](https://github.com/Chocobozzz/PeerTube/pull/2996)
1518 * Add channel name to create-user admin form [@Kimsible in #2984](https://github.com/Chocobozzz/PeerTube/pull/2984)
1519 * Support Kabile for video languages/captions
1520 * Translate page titles
1521 * Add `.ac3`, `.aac`, `.qt`, `.mqv`, `.3gpp`, `.3gpp2`, `.m1v`, `.mpg`, `.mpe`, `.vob` extensions support on upload if transcoding is enabled **@rigelk**
1522 * Performance:
1523 * Improved front-end performance by reducing localized bundle sizes (~ 2MB instead of 3MB for the homepage)
1524 * Optimize comments RSS feed SQL query
1525 * Optimize default sort SQL query when listing videos
1526
1527
1528 ### Bug fixes
1529
1530 * Handle webp images from youtube-dl
1531 * Fix embed p2p warning localization
1532 * iOS fixes:
1533 * Fix HLS only videos playback
1534 * Fix fullscreen
1535 * Fix iPad desktop mode playback
1536 * Try to fix autoplay with iOS/Safari
1537 * Fix anonymous user theme
1538 * Fix player hotkeys after mouse interaction
1539 * Fix resolution transcoding for portrait videos
1540 * Do not display videojs poster when video is starting to avoid blinking effect [@Kimsible in #3056](https://github.com/Chocobozzz/PeerTube/pull/3056)
1541 * Correctly scroll to anchors in my-settings [@Kimsible in #3032](https://github.com/Chocobozzz/PeerTube/pull/3032)
1542 * Forbid reset password links reuse
1543 * Fix low default resolution on webtorrent videos
1544 * Fix instance features table responsive in about page [@test2a in #3090](https://github.com/Chocobozzz/PeerTube/pull/3090)
1545 * Fix playlist element deletion/edition in my account
1546 * Fix video playlist playback resuming
1547 * Correctly display error message for Internet Explorer
1548 * Fix videos RSS feed when HLS only is enabled
1549 * Add site_name to opengraph tags
1550
1551
1552 **Since v2.4.0-rc.1**
1553
1554 ### Bug fixes
1555
1556 * Add site_name to opengraph tags
1557 * Fix privacy/channel select on upload
1558
1559
1560 ## v2.3.0
1561
1562 **Since v2.2.0**
1563
1564 ### IMPORTANT NOTES
1565
1566 * Add `client_overrides` directory in configuration file. **You must configure it in your production.yaml**
1567 * Deprecate `/videos/abuse` endpoint.
1568 A new endpoint to report videos will be created in PeerTube 2.4 and will also allow to report accounts and comments (`/videos/abuse` will be removed in 3.0)
1569 * Renamed videos blacklist feature to videos blocks/blocklist
1570
1571
1572 ### Documentation
1573
1574 * Add feeds routes to the openapi spec **@rigelk**
1575 * Add notifications routes to the openapi spec **@rigelk**
1576 * Add redundancy routes to the openapi spec **@rigelk**
1577 * Add plugins routes to the openapi spec **@rigelk**
1578 * Add examples, descriptions and missing filters for abuses routes in the openapi spec **@rigelk**
1579 * Update CentOS insutructions in dependencies.md [@cgarwood82 in 2904](https://github.com/Chocobozzz/PeerTube/pull/2904)
1580
1581 ### Maintenance
1582
1583 * Switched image processing library from native dependency `sharp` to pure JS implementation `jimp`. Admins don't have to compile `sharp` anymore and `jimp` is lighter
1584 * Provide specific engine boundaries for NodeJS and Yarn [@rigelk in 0c4bacb](https://github.com/Chocobozzz/PeerTube/commit/0c4bacbff53bc732f5a2677d62a6ead7752e2405)
1585 * Add ability to set `database.name` config option [@gramakri in #2898](https://github.com/Chocobozzz/PeerTube/pull/2898)
1586
1587
1588 ### Docker
1589
1590 * Fix `POSTGRES` env variables in docker-compose ([@kimsible in #2538](https://github.com/Chocobozzz/PeerTube/pull/2538/files))
1591 * Fix OpenDKIM permissions in docker-compose setup [@kimsible in #2868](https://github.com/Chocobozzz/PeerTube/pull/2868)
1592
1593
1594 ### Official PeerTube plugins
1595
1596 * [Auto block videos (alpha)](https://framagit.org/framasoft/peertube/official-plugins/-/tree/master/peertube-plugin-auto-block-videos)
1597
1598
1599 ### Plugins/Themes/Embed API
1600
1601 * Add ability to override client assets: logo - favicon - PWA icons - PWA manifest name and description [@kimsible in #2897](https://github.com/Chocobozzz/PeerTube/pull/2897)
1602
1603 ### Features
1604
1605 * :tada: Add global search support (has to be explicitely enabled by admins)
1606 * :tada: Add ability for admins to display a banner on their instance
1607 * :tada: Support Vietnamese and Kabyle languages. Also re-establish Occitan language locale despite lack of support in Angular
1608 * Federation:
1609 * Make federation of unlisted videos an instance-level server preference [@Tak in #2802](https://github.com/Chocobozzz/PeerTube/pull/2802)
1610 * Sort ActivityPub video object files by resolution in descending order (fix issue with Pleroma)
1611 * Send complete video description in ActivityPub video objects
1612 * Moderation:
1613 * Add ability to bulk delete comments of an account
1614 * Add ability to mute accounts from video miniature
1615 * Improve report modal: [@rigelk in #2842](https://github.com/Chocobozzz/PeerTube/pull/2842)
1616 * Add ability to provide predefined reasons
1617 * Embed of the video in the modal
1618 * Add ability to set a **startAt** parameter
1619 * Accessibility:
1620 * Add lang attribute in languages list menu [@Pandoraaa in #2832](https://github.com/Chocobozzz/PeerTube/pull/2832)
1621 * Add aria-hidden to non-descriptive icons [@Pandoraaa in #2844](https://github.com/Chocobozzz/PeerTube/pull/2844)
1622 * Change focus color instead of opacity of video play button [@Pandoraaa in #2845](https://github.com/Chocobozzz/PeerTube/pull/2845)
1623 * Add explicit step and aria-current attribute in register form [@Pandoraaa in #2861](https://github.com/Chocobozzz/PeerTube/pull/2861)
1624 * Add scope tags and aria-labels in instance features table [@Pandoraaa in #2866](https://github.com/Chocobozzz/PeerTube/pull/2866)
1625 * Add keyboard navigation in video watch page buttons [@Pandoraaa in #2854 with @rigelk](https://github.com/Chocobozzz/PeerTube/pull/2854)
1626 * Replaced softies icons by feather icons **@rigelk**
1627 * Support player hotkeys when it is not focused
1628 * Improve video miniature grids to fill the space as much as possible **@rigelk**
1629 * Add video miniature dropdown in *Discover* page
1630 * Add channel information in *My videos* page
1631 * Add videos count per channel in *My channels* page
1632 * Improve channel deletion warning by explaining how many videos will be deleted
1633 * Simplify navigation within most admin menus **@rigelk**
1634 * Tracker:
1635 * Log IP requesting unknown infoHash [@JohnXLivingston in
1636 212e17a ](https://github.com/Chocobozzz/PeerTube/commit/212e17a1892162a69138c0b9c0a1bd88f95209a8)
1637 * Block IP of infohash spammers [db48de8](https://github.com/Chocobozzz/PeerTube/commit/db48de8597897e5024f8e9ed5acb1a8f40748169)
1638 * Allow limiting video-comments rss feeds to an account or video channel [@rigelk in 00494d6](https://github.com/Chocobozzz/PeerTube/commit/00494d6e2ae915741f47869dcd359d9728a0af91)
1639
1640 ### Bug fixes
1641
1642 * Fix default anonymous theme that should use instance default
1643 * Fix configuration form issue when auto follow index URL is empty
1644 * Fix URL import of some videos
1645 * Fix quota representation in profile settings **@rigelk**
1646 * Exclude 0p from auto webtorrent quality
1647 * Fix scroll on some pages with hash in URL
1648 * Fix search filter in video reports
1649 * Fix anonymous user nsfw policy
1650 * Don't cache embed HTML page resulting in broken embed after a PeerTube upgrade
1651 * Accessibility:
1652 * Add lang in document to match current locale [@rigelk in #2822](https://github.com/Chocobozzz/PeerTube/pull/2822)
1653 * Prevent duplicate id attributes for `.svg` [@rigelk in #2822](https://github.com/Chocobozzz/PeerTube/pull/2822)
1654 * Fix headings order or add missing ones [@Pandoraaa in #2871](https://github.com/Chocobozzz/PeerTube/pull/2871)
1655 * Remove uneccessary details to link titles [@Pandoraaa in #2879](https://github.com/Chocobozzz/PeerTube/pull/2879)
1656 * Fix accessibility action buttons and display on imports and followers list [@kimsible in #2986](https://github.com/Chocobozzz/PeerTube/pull/2986)
1657 * Fix iOS player with HLS-only videos
1658 * Fix action buttons selection mode styles [@kimsible in #2983](https://github.com/Chocobozzz/PeerTube/pull/2983)
1659
1660
1661 **Since v2.3.0-rc.1**
1662
1663 ### Bug fixes
1664
1665 * Fix broken locales
1666 * Fix embed URL in share modal
1667 * Handle webp images from youtube-dl
1668 * Fix iOS player with HLS-only videos
1669 * Fix popup issues on video miniature click when searching on the global index
1670 * Fix username in password-reset email [@kimsible in #2960](https://github.com/Chocobozzz/PeerTube/pull/2960)
1671 * Fix maximized icon padding in markdown textarea [@kimsible in #2963](https://github.com/Chocobozzz/PeerTube/pull/2963)
1672 * Fix action buttons selection mode styles [@kimsible in #2983](https://github.com/Chocobozzz/PeerTube/pull/2983)
1673 * Fix user creation in admin [@kimsible in #2985](https://github.com/Chocobozzz/PeerTube/pull/2985)
1674 * Fix accessibility action buttons and display on imports and followers list [@kimsible in #2986](https://github.com/Chocobozzz/PeerTube/pull/2986)
1675
1676
1677 ## v2.2.0
1678
1679 **Since v2.1.0**
1680
1681 ## IMPORTANT NOTES
1682
1683 * **/!\ VERY IMPORTANT /!\\** We added a unique index on actors usernames to fix some federation bugs.
1684 Please check now if you have conflicts:
1685 * Go inside your database using `sudo -u postgres psql peertube_prod` and run `select "preferredUsername" from actor where "serverId" is null group by "preferredUsername" having count(*) > 1;`
1686 * If you have some results, it seems you have duplicate channels/accounts.
1687 For every entry, you'll have to change the preferredUsername of the entry you want (so they are unique).
1688 The updated actors could have some federations issues
1689 * Changed `auto_follow_index` setting configuration: you now have to use the complete URL in `index_url`.
1690 If you used the default one, you now need to use `https://instances.joinpeertube.org/api/v1/instances/hosts`.
1691 This way, you can also use a direct raw URL (Gitlab, Github, pastebin, etc.) using [a simple text format](https://framagit.org/framasoft/peertube/instances-peertube#peertube-auto-follow) and easily maintain small communities or instance recommendation lists.
1692 * PeerTube requires NodeJS v10 or v12
1693
1694 ### CLI tools
1695
1696 * Add redundancy CLI: https://docs.joinpeertube.org/maintain/tools#peertube-redundancyjs
1697 * Add ability to pass remaining options to youtube-dl binary in peertube-import script ([@drzraf](https://github.com/drzraf))
1698
1699 ### Docker
1700
1701 * **Important:** Fix HLS storage configuration ([@xcffl](https://github.com/xcffl)): https://github.com/Chocobozzz/PeerTube/blob/develop/support/docker/production/config/production.yaml#L48
1702 * Add DKIM support to Docker ([@kimsible](https://github.com/kimsible))
1703
1704 ### Maintenance
1705
1706 * Add nginx configuration to redirect videos to an S3 bucket ([@rigelk](https://github.com/rigelk)) and update of the [corresponding documentation](https://docs.joinpeertube.org/admin/remote-storage).
1707
1708 ### Plugins/Themes/Embed API
1709
1710 * Add embed API (https://docs.joinpeertube.org/api/embed-player):
1711 * `playbackState` can be `ended`
1712 * `playbackStatusUpdate` has a `duration` field
1713 * `setCaption` and `getCaptions` methods
1714 * Add client plugin hooks (https://docs.joinpeertube.org/api/plugins):
1715 * `action:login.init`
1716 * `action:video-watch.video-threads.loaded`
1717 * `action:video-watch.video-thread-replies.loaded` ([@ipbc-dev](https://github.com/ipbc-dev))
1718 * Add server plugin hooks (https://docs.joinpeertube.org/api/plugins):
1719 * `filter:api.video.pre-import-url.accept.result`
1720 * `filter:api.video.pre-import-torrent.accept.result`
1721 * `filter:api.video.post-import-url.accept.result`
1722 * `filter:api.video.post-import-torrent.accept.result`
1723 * Add server helpers:
1724 * `database.query` to do SQL queries
1725 * `videos.removeVideo`
1726 * `config.getWebserverUrl`
1727 * `moderation.blockServer`, `moderation.unblockServer`, `moderation.blockAccount`, `moderation.unblockAccount`, `moderation.blacklistVideo`, `moderation.unblacklistVideo`
1728 * Add client helpers:
1729 * `notifier` to notify users using the toast component ([@kimsible](https://github.com/kimsible))
1730 * `showModal` to show a modal ([@kimsible](https://github.com/kimsible))
1731 * `markdownRenderer` to render markdown ([@kimsible](https://github.com/kimsible))
1732 * Add ability for plugins to define custom routes
1733 * Add ability for plugins to remove video/playlist privacies
1734 * Add ability for plugins to support additional auth methods
1735 * Add `onSettingsChange` support
1736
1737 ### Official PeerTube plugins
1738
1739 * [OpenID Connect](https://framagit.org/framasoft/peertube/official-plugins/-/tree/master/peertube-plugin-auth-openid-connect)
1740 * [LDAP](https://framagit.org/framasoft/peertube/official-plugins/-/tree/master/peertube-plugin-auth-ldap)
1741 * [SAML2](https://framagit.org/framasoft/peertube/official-plugins/-/tree/master/peertube-plugin-auth-saml2)
1742 * [Auto mute accounts/instances (alpha)](https://framagit.org/framasoft/peertube/official-plugins/-/tree/master/peertube-plugin-auto-mute)
1743
1744 ## Features
1745
1746 * :tada: Add HTML support in PeerTube emails, improve text-only version ([@rigelk](https://github.com/rigelk))
1747 * :tada: Add settings panel for anonymous users so they can change NSFW/P2P/autoplay/displayed videos policy ([@rigelk](https://github.com/rigelk))
1748 * :tada: Improve redundancy management:
1749 * Add quick action on video miniature to mirror a specific video using the web interface
1750 * Add admin dashboard to list remote and local redundancies
1751 * Add ability for admins to define remote redundancies policy (accept/reject)
1752 * :tada: Many responsive & UI improvements:
1753 * Add maximized mode to markdown textarea ([@kimsible](https://github.com/kimsible))
1754 * Detect and prevent sub menu overflow on small screens using a dropdown or a modal ([@rigelk](https://github.com/rigelk))
1755 * Use a typeahead component for the search bar ([@rigelk](https://github.com/rigelk))
1756 * Use a modal instead of a dropdown menu in small/mobile views ([@kimsible](https://github.com/kimsible))
1757 * Improve display of accounts and channel pages on small and medium screens ([@rigelk](https://github.com/rigelk))
1758 * Improve forms layout ([@rigelk](https://github.com/rigelk))
1759 * Replace helpers icons with descriptions in admin configuration ([@rigelk](https://github.com/rigelk))
1760 * Improve tables on mobile devices to prevent layout breakage ([@kimsible](https://github.com/kimsible))
1761 * Fix multiple broken views on small screens ([@kimsible](https://github.com/kimsible))
1762 * Make video add tabs scrollable on small devices ([@kimsible](https://github.com/kimsible))
1763 * Better use of space and icons in the plugin administration interface ([@rigelk](https://github.com/rigelk))
1764 * Restyle toast notifications to tone down colors ([@rigelk](https://github.com/rigelk))
1765 * Add/move links at the bottom of the left menu ([@rigelk](https://github.com/rigelk))
1766 * Improve avatar upload UI ([@rigelk](https://github.com/rigelk))
1767 * Use progress bars for quota used in my account ([@rigelk](https://github.com/rigelk))
1768 * Add variable pagination size to all tables ([@rigelk](https://github.com/rigelk))
1769 * Add empty states to all tables ([@rigelk](https://github.com/rigelk))
1770 * Add generic text filter to all admin tables ([@rigelk](https://github.com/rigelk))
1771 * Fix `z-index` for tooltips, modals and their button to prevent overlaps ([@rigelk](https://github.com/rigelk))
1772 * And many others!
1773 * :tada: Improve video abuses admin table ([@rigelk](https://github.com/rigelk)):
1774 * Add in-text specific search filters
1775 * Reports can be linked to directly
1776 * Rich reporter field
1777 * Add video thumbnail with abuse count for the video and position of the abuse in that list
1778 * Expand row to see more information about the video, the reporter and the reportee
1779 * Add many actions (on the video, on the reporter)
1780 * Don't remove a report when a video is deleted
1781 * Add information on a video abuse within its notification email ([@rigelk](https://github.com/rigelk))
1782 * Add ability for video owners to delete comments
1783 * Add filter inputs for blacklisted videos and muted accounts/servers ([@rigelk](https://github.com/rigelk))
1784 * Video import improvements:
1785 * Support subtitles when importing a video ([@kimsible](https://github.com/kimsible))
1786 * Generate thumbnail/preview from URL and inject them in the video edit form ([@kimsible](https://github.com/kimsible))
1787 * Support `licence` and `language` fields
1788 * Support audio file imports
1789 * Support WMA and WAV audio files upload
1790 * Support drag and drop for video upload/torrent import ([@rigelk](https://github.com/rigelk))
1791 * Add video file metadata to download modal ([@rigelk](https://github.com/rigelk))
1792 * Add views stats for channels ([@rigelk](https://github.com/rigelk))
1793 * Add more information about the user in the edit form ([@rigelk](https://github.com/rigelk))
1794 * Server optimizations:
1795 * Add cache for some immutable models
1796 * Don't refresh videos when processing a view
1797 * Optimize view endpoint
1798 * Completely rewritten SQL query to list videos
1799 * Optimize SQL request when broadcasting an activity
1800 * Support infinite scrolling in the discover page
1801 * Add ability for admins to create a user without a password. PeerTube will send a reset password link to the user ([@JohnXLivingston](https://github.com/JohnXLivingston))
1802 * Improve embed title background opacity
1803 * Add origin instance URL in watch page
1804 * Clearer description of advanced search options
1805 * Always copy full actor handle in video channels view ([@rigelk](https://github.com/rigelk))
1806 * Add `sendmail` support ([@immae](https://github.com/immae)) to `smtp` configuration
1807 * Support `rel="me"` links in markdown
1808 * Use `originallyPublishedAt` from body on import if it exists
1809 * Sort outbox by *DESC createdAt* order
1810 * Increase video comment max length limit
1811
1812 ### Bug fixes
1813
1814 * Update default user theme to `instance-default` (Jorge Silva)
1815 * Fix user dropdown menu with long texts ([@rigelk](https://github.com/rigelk))
1816 * Fix load more comments on infinite scroll ([@ipbc-dev](https://github.com/ipbc-dev))
1817 * Fix CSP issue on WebFinger service ([@ZanyMonk](https://github.com/ZanyMonk))
1818 * Fix federation with Pleroma
1819 * Fix Safari and iOS video play
1820 * Fix broken HLS player on old Edge
1821 * Fix running HLS transcoding on existing HLS video
1822 * Fix user role edition
1823 * Fix video duration display
1824 * Fix error when adding a video in a playlist that does not have a thumbnail
1825 * Fix internal video display in playlists
1826 * Fix add comment in threads with deleted comments
1827 * Fix video codec in HLS playlist resulting in a broken video
1828 * Fix torrent import on Windows
1829 * Respect browser autoplay policy: don't autoplay videos in mute mode
1830 * Fix playlist videos autoplay/next play ([@rigelk](https://github.com/rigelk))
1831 * Fix admin table column invalid sort error
1832 * Fix outbox crawling max page/timeout (when an admin follows an instance with many videos)
1833 * Add CORS to ActivityPub routes
1834 * Fix my video imports table display when a video gets deleted ([@rigelk](https://github.com/rigelk))
1835 * Fix peertube/import scripts `comment-enabled`, `wait-transcoding` and `download-enabled` options
1836 * Don't leak unlisted videos in comments feed
1837 * Do not display deleted comments or muted accounts/instances in RSS feed
1838 * Fix HLS audio only transcoding
1839 * Fix playlist creation/update with a long description
1840 * Fix links of same instance in video description
1841 * Fix REPL script
1842 * Fix broken client when cookies are disabled
1843 * Fix upload button color in dark mode
1844 * Explicit theme colors for inputs and textarea
1845 * Fix input/textarea themes
1846 * Fix action button icons theme
1847 * Fix grey color theme
1848 * Fix regression scrollbar bgcolor mdtextarea maximized-mode ([@kimsible](https://github.com/kimsible))
1849
1850
1851 **since v2.2.0-rc.1**
1852
1853 ### Bug fixes
1854
1855 * Fix broken migration introduced in 2.2.0-rc.1 in docker
1856 * Fix sort icons in tables
1857 * Fix action button overflow in tables
1858 * Fix broken client when cookies are disabled
1859 * Fix upload button color in dark mode
1860 * Explicit theme colors for inputs and textarea
1861 * Fix input/textarea themes
1862 * Fix dropdown menu overflow
1863 * Fix notifications with dark theme
1864 * Fix action button icons theme
1865 * Fix grey color theme
1866 * Fix regression scrollbar bgcolor mdtextarea maximized-mode ([@kimsible](https://github.com/kimsible))
1867 * Fix broken emails
1868
1869
1870
1871 ## v2.1.1
1872
1873 ### Bug fixes
1874
1875 * Fix youtube-dl in docker image
1876 * Fix playlist creation/update
1877 * Fix fetch of instance config in client
1878 * Manual approves followers only for the instance (and not accounts/channels)
1879 * Fix avatar update
1880 * Fix CSP for embeds
1881 * Fix scroll of the menu on mobile
1882 * Fix CPU usage of PostgreSQL
1883 * Fix embed for iOS
1884
1885
1886 ## v2.1.0
1887
1888 **Since v2.0.0**
1889
1890 ### IMPORTANT NOTES
1891
1892 * **/!\ VERY IMPORTANT /!\\** You need to execute manually a script (can be executed after your upgrade, while your PeerTube instance is running) to create HLS video torrents:
1893 * `cd /var/www/peertube/peertube-latest && sudo -u peertube NODE_CONFIG_DIR=/var/www/peertube/config NODE_ENV=production node dist/scripts/migrations/peertube-2.1.js`
1894 * **/!\ VERY IMPORTANT /!\\** In the next PeerTube release (v2.2.0), we'll add a unique index on actors usernames to fix some federation bugs.
1895 Please check now if you have conflicts using:
1896 * Go inside your database using `sudo -u postgres psql peertube_prod` and run `select "preferredUsername" from actor where "serverId" is null group by "preferredUsername" having count(*) > 1;`
1897 * If you have some results, it seems you have duplicate channels/accounts.
1898 For every entry, you'll have to change the preferredUsername of the entry you want (so they are unique).
1899 The updated actors could have some federations issues
1900 * We now use Buster for the docker image, so the image name changed:
1901 * `production-stretch` becomes `production-buster`
1902 * `v2.x.x-stretch` becomes `v2.x.x-buster`
1903 * Users cannot create more than 20 channels now to avoid UX and actor name squatting issues
1904 * We added a warning if the `videos` directory is the same than the `redundancy` one in your configuration file: it can create some bugs
1905
1906 ### Documentation
1907
1908 We added some sections in the documentation website:
1909
1910 * S3 remote storage: https://docs.joinpeertube.org/admin/remote-storage
1911 * Instances redundancy: https://docs.joinpeertube.org/admin/following-instances
1912 * Moderate your instance: https://docs.joinpeertube.org/admin/moderation
1913 * Customize your instance (install plugins & themes): https://docs.joinpeertube.org/admin/customize-instance
1914 * PeerTube logs (standard log/audit log): https://docs.joinpeertube.org/admin/logs
1915 * Mute accounts/instances: https://docs.joinpeertube.org/use/mute
1916 * Controlled player embed API: https://docs.joinpeertube.org/api/embed-player
1917
1918 ### Docker
1919
1920 * Sticking to one env-var management system ([@Leopere](https://github.com/Leopere)) (See https://github.com/Chocobozzz/PeerTube/pull/2247)
1921 * Simplify Dockerfile and slim Docker image ([@Nutomic](https://github.com/nutomic))
1922 * Add HLS support in Docker container by using the latest Debian stable (Buster) image
1923
1924 ### Plugins/Themes API
1925
1926 * Add checkbox and textarea as possible input types for settings ([@rigelk](https://github.com/rigelk))
1927 * Add `isLoggedIn` helper to client plugins ([@rigelk](https://github.com/rigelk))
1928 * Add client plugin hooks:
1929 * `action:video-watch.player.loaded` with player instance
1930 * `action:video-watch.video.loaded` with a videojs instance
1931 * `action:signup.register.init` ([@rigelk](https://github.com/rigelk))
1932 * `filter:api.signup.registration.create.params` ([@rigelk](https://github.com/rigelk))
1933 * `filter:internal.video-watch.player.build-options.params`
1934 * `filter:internal.video-watch.player.build-options.result`
1935 * `filter:internal.common.svg-icons.get-content.params`
1936 * `filter:internal.common.svg-icons.get-content.result`
1937 * Add server plugins hooks:
1938 * `action:api.user.blocked`
1939 * `action:api.user.unblocked`
1940 * `action:api.user.registered`
1941 * `action:api.user.created`
1942 * `action:api.user.deleted`
1943 * `action:api.user.updated`
1944 * `action:api.user.oauth2-got-token`
1945 * Accept `.` `_` and `0-9` characters in plugin names
1946
1947 ### Maintenance
1948
1949 * PeerTube moved translations from Zanata to Weblate. Here is the new translations website URL: https://weblate.framasoft.org/projects/peertube/
1950 * We now provide a JavaScript library to control a PeerTube embed: https://www.npmjs.com/package/@peertube/embed-api
1951 * Add ability to generate HLS videos using `create-transcoding-job` script (see [the documentation](https://docs.joinpeertube.org/maintain/tools#create-transcoding-jobjs))
1952 * Update nginx template: (you need to [update manually](https://github.com/Chocobozzz/PeerTube/blob/develop/support/doc/production.md#nginx))
1953 * Add streaming playlists endpoint
1954 * Add `client_body_temp_path` hint
1955 * Relax TLS/SSL ciphers hardening to allow Android 4.4.2 to use the PeerTube instance API
1956 * Add `maxFileSize`, `maxFiles` and `anonymizeIP` log options in configuration file
1957
1958 ### Features
1959
1960 * :tada: Add *internal* video privacy mode. *Internal* videos are only available to other logged in users of your instance, and are not federated
1961 * :tada: Add hyperlink video timestamps in comments & video descriptions ([@Lesterpig](https://github.com/lesterpig) & [@rigelk](https://github.com/rigelk))
1962 * :tada: Comments improvements:
1963 * Support basic markdown
1964 * Soft delete video comments instead of destroying them ([@alcalyn](https://github.com/alcalyn))
1965 * Add commentator name alongside fid for video comments ([@rigelk](https://github.com/rigelk))
1966 * Add a cancel button in comment form ([@rigelk](https://github.com/rigelk))
1967 * Show number of comments under a video in watch page ([@rigelk](https://github.com/rigelk))
1968 * Add user moderation dropdown ([@rigelk](https://github.com/rigelk))
1969 * Add ability to sort comments by *total replies* or *created date* ([@rigelk](https://github.com/rigelk))
1970 * Add *total replies from video author* indicator ([@rigelk](https://github.com/rigelk))
1971 * Comment name emphasis for video author ([@rigelk](https://github.com/rigelk))
1972 * Add "Watch later" button in video miniature overlay ([@rigelk](https://github.com/rigelk))
1973 * Add ability to transcode videos in an audio only video container ([@Yetangitu](https://github.com/Yetangitu))
1974 * Add playlist search input in *add to playlist* dropdown ([@rigelk](https://github.com/rigelk))
1975 * Add search bars for a user's videos and playlists ([@rigelk](https://github.com/rigelk))
1976 * Support playlists in share modal
1977 * Better UI for a better world:
1978 * Add play/pause bezels to the video player ([@rigelk](https://github.com/rigelk))
1979 * Use icons instead of buttons in watch page (like/dislike, support...) ([@rigelk](https://github.com/rigelk))
1980 * Improve *PeerTube* section in About page and add links to the documentation
1981 * Improve comment tree in Watch page
1982 * Improve dropdown box shadow ([@rigelk](https://github.com/rigelk))
1983 * Add channel avatar to watch view ([@rigelk](https://github.com/rigelk))
1984 * Improve likes-dislikes bar usability
1985 * Alter titles section header style ([@rigelk](https://github.com/rigelk))
1986 * Enhance jobs list display on smaller screens ([@alcalyn](https://github.com/alcalyn))
1987 * Add a button in the videos from subscriptions page to manage subscriptions ([@rigelk](https://github.com/rigelk))
1988 * Add duration to video attributes in watch view ([@rigelk](https://github.com/rigelk))
1989 * Add a message in the login form when signup is disabled for people that are looking for an account ([@rigelk](https://github.com/rigelk))
1990 * Add "Manage" button in owned account and channels pages ([@rigelk](https://github.com/rigelk))
1991 * Improve password input accessibility ([@rigelk](https://github.com/rigelk))
1992 * Add descriptions in moderation dropdown ([@rigelk](https://github.com/rigelk))
1993 * Performances improvements:
1994 * Lazy load categories, licences, languages and video/playlist privacies in the client
1995 * Only update remote actor avatar if the filename changed
1996 * Optimize transcoding by using the lowest resolution as input file
1997 * Speedup embed first paint
1998 * Optimize videos list SQL query
1999 * Optimize local videos list SQL query
2000 * Cache `peertube` instance actor SQL result
2001 * Cache HLS/WebTorrent InfoHash SQL result
2002 * Optimize notification endpoint on specific cases
2003 * Optimize "list my playlists" SQL query
2004 * Improve search filters: ([@rigelk](https://github.com/rigelk))
2005 * Add ability to sort results
2006 * Improve tags filter inputs
2007 * Add a button to reset filters
2008 * Improve autoplay: ([@rigelk](https://github.com/rigelk))
2009 * Autoplay next video switch for both user and visitors
2010 * Add *up next* screen on autoplay
2011 * Autoplay next video support for playlists
2012 * Add *next* video button to the player
2013 * Add loop setting when watching a playlist
2014 * Add option to download subtitles in download modal ([@rigelk](https://github.com/rigelk))
2015 * Add a button in account page to follow all account channels ([@rigelk](https://github.com/rigelk))
2016 * Add ability to search a video directly by its UUID
2017 * Case insensitive tags search
2018 * Add ability to disable WebTorrent (and only enable HLS) (**experimental and breaks federation with PeerTube instances < 2.1**)
2019 * Don't seed if the client is on a cellular network in the HLS player
2020 * Load HLS player in embed by default if enabled
2021 * Admin panels:
2022 * Add ability to sort by *state*, *score* and *redundancy allowed* columns in following/followers admin table
2023 * Add ability to filter per job type in admin
2024 * Add *Audit logs* section in admin Logs panel
2025 * Improve Media-RSS support ([@rigelk](https://github.com/rigelk))
2026 * Explicit the tag limit in video form ([@bikepunk](https://github.com/bikepunk))
2027 * Add a warning when uploading videos using root
2028 * Clearer video quota label in user settings
2029 * Pause the video when the user opens a modal
2030 * Handle basic HTML in account descriptions
2031 * Support `m4v` videos
2032 * Improve 4k resolution bitrate
2033 * Add missing hotkeys documentation in the watch page
2034 * Add a button to copy the channel handle ([@rigelk](https://github.com/rigelk))
2035 * Add server config to the nodeinfo metadata ([@rigelk](https://github.com/rigelk))
2036 * Improve notification popup interactivity ([@rigelk](https://github.com/rigelk))
2037
2038 ### Bug fixes
2039
2040 * Don't notify if the account in on a muted instance
2041 * Don't leak other notified addresses in notification emails
2042 * Allow the embed iframe to open links
2043 * Add missing button roles for the language chooser and keyboard shortcut menu items [@MarcoZehe](https://github.com/MarcoZehe)
2044 * Fix overflow when creating a channel
2045 * Fix "copy magnet URI" in player
2046 * Fix text overflow in menu
2047 * Fix player focus
2048 * Only display accepted followers/followings instances in about page
2049 * Fix brackets truncation in video description
2050 * Fix channel playlist miniatures overflow
2051 * Fix background color on some screens
2052 * Fix captions upload issue depending on the caption name
2053 * Fix file download when the video is private
2054 * Fix dropdown on video miniature for unlogged users
2055 * Fix video support field in update form
2056 * Fix video import having a long thumbnail url (Facebook for example)
2057 * Add correct HTTP status on not found video
2058 * Fix bug on login when username has a special character (`_` for example)
2059 * Fix plugin unregistration that did not remove properly its hooks ([@JohnXLivingston](https://github.com/JohnXLivingston))
2060 * Fix wrong audio only resolution label for hls
2061 * Fix AP icon URL for imported videos
2062 * Fix octet stream fallback for video ext
2063
2064 **since v2.1.0-rc.1**
2065
2066 ### Bug fixes
2067
2068 * Fix wrong audio only resolution label for hls
2069 * Fix AP icon URL for imported videos
2070 * Fix embed on mastodon
2071 * Fix octet stream fallback for video ext
2072
2073
2074 ## v2.0.0
2075
2076 **Since v1.4.1**
2077
2078 ### IMPORTANT NOTES
2079
2080 * Removed old JSON LD signature implementation. There will be some **federation incompatibilities** with forwarded activities sent
2081 by PeerTube instances < v2.0.0
2082 * Replaced configuration key `email.object` with `email.subject`: https://github.com/Chocobozzz/PeerTube/commit/916937d7daf386e4e2d37b2ca22db07b644b02df
2083
2084 ### Plugins/Themes API
2085
2086 * Add plugin hook on registration `filter:api.user.signup.allowed.result`
2087
2088 ### Docker
2089
2090 * Fix traefik version docker compose (**you need to update your `docker-compose.yml` file**: https://github.com/Chocobozzz/PeerTube/commit/f1b38883922fd59b36f093e44a5091e090d20862)
2091
2092 ### Maintenance
2093
2094 * Add `--tmpdir`, `--first`, `--last` and `--verbose [level]` parameters to peertube-import-videos script ([@Yetangitu](https://github.com/Yetangitu))
2095 * Improve REST API documentation ([@frankstrater](https://github.com/frankstrater))
2096 * Improve plugin management documentation
2097
2098 ### Features
2099
2100 * Better instance admin responsibility:
2101 * Add ability to set more information about your instance. This will be used in the future on https://joinpeertube.org to help people find
2102 the appropriate PeerTube instance on which they can register:
2103 * Main **Categories**
2104 * **Languages** you/your moderators speak
2105 * **Code of Conduct**
2106 * **Moderation information** (who moderates your instance, NSFW policy etc)
2107 * Who is **behind the instance** (a single person? non-profit?)
2108 * Why did the admin **create this instance**
2109 * How long the admin plan to **maintain the instance**
2110 * How the administrator **will finance** the PeerTube server
2111 * **Hardware** information
2112 * Add these information in the about page and in the signup page
2113 * Add a welcome modal at first admin login with some explanations of PeerTube and some useful links
2114 * Add warning modal when administrators enable or enabled signup but did not fill some important instance information
2115 (for now the instance **name**, **terms**, **administrator** and **maintenance lifetime** information)
2116 * Add ability to automatically follow back other instances
2117 * Add ability to automatically follow [the public registry](https://instances.joinpeertube.org/) instances
2118 * Add *Most liked videos* page ([@alcalyn](https://github.com/alcalyn))
2119 * Add a drag&drop delay on playlist videos to allow user scroll on small screens ([@alcalyn](https://github.com/alcalyn))
2120 * Allow to toggle video publication date to display absolute date ([@alcalyn](https://github.com/alcalyn))
2121 * Add statistics in about page ([@alcalyn](https://github.com/alcalyn))
2122 * Improve the *feature table* in about page
2123 * Add contributors in about page
2124 * Clearer warning of IP address leaking on embedded videos ([@robinkooli](https://github.com/robinkooli))
2125 * Case insensitive search on video tags
2126 * Add video name in "video publish notification"
2127 * Add ability to autoplay next recommended video (opt in) ([@LoveIsGrief](https://github.com/LoveIsGrief))
2128 * Add link behind the subscribe via RSS button ([@frankstrater](https://github.com/frankstrater))
2129 * Support text/plain caption files
2130 * Speedup theme injection
2131 * Add ability to enable HLS in the admin panel
2132
2133 ### Bug fixes
2134
2135 * Fix audio upload
2136 * Handle video reports from mastodon
2137 * Fix videos redundancy exceeding the limit
2138 * Fix search when user defined video languages in their preferences
2139 * Don't quick transcode with the wrong pixel format
2140 * Hide videos abuses of muted accounts
2141 * Fix account avatar widths
2142 * Fix default `commentsEnabled` and `downloadEnabled` values on video upload/import ([@frankstrater](https://github.com/frankstrater))
2143 * Disable auto complete of email field when editing another user information in admin panel ([@Knackie](https://github.com/Knackie))
2144 * Fix federation issues with some actors (that have long descriptions, or missing optional AP fields)
2145 * Remove down redundancy endpoints in HLS player
2146 * Fix user notifications with multiple opened tabs
2147 * Replace "overview" by "discover" in webpage titles
2148 * Clearer IP debug message in admin panel
2149 * Fix checkbox styles when using a theme
2150 * Don't redirect on verify account page after login
2151 * Fix player captions menu after choosing a subtitle
2152 * Fix CLI scripts with URLs ending with a `/`
2153 * Fix `--since` and `--until` timezone in `peertube-import-videos` script
2154 * Avoid circular error in logger
2155 * Fix start/stop of first element when loading a playlist
2156
2157 ***Since v2.0.0-rc.1***
2158
2159 ### Features
2160
2161 * Improve welcome/warning modals
2162 * Add ability to enable HLS in the admin panel
2163
2164 ### Bug fixes
2165
2166 * Fix auto index follow
2167 * Fix CLI scripts with URLs ending with a `/`
2168 * Fix `--since` and `--until` timezone in `peertube-import-videos` script ([@fflorent](https://github.com/fflorent))
2169 * Avoid circular error in logger
2170 * Fix start/stop of first element when loading a playlist
2171
2172
2173 ## v1.4.1
2174
2175 ### Bug fixes
2176
2177 * Fix too fast redundancy eviction
2178 * Fix broken auto blacklist page
2179 * Rename signup steps
2180 * Fix menu x overflow
2181
2182
2183 ## v1.4.0
2184
2185 **Since v1.3.1**
2186
2187 ### IMPORTANT NOTES
2188
2189 * **Important:** Add `plugins` directory in configuration file. **You should configure it in your production.yaml**
2190 * **Important:** Deprecate NodeJS 8 (support ends on [December 2019](https://github.com/nodejs/Release#release-schedule)). Please upgrade to NodeJS 10.
2191 * **Important:** Updated nginx template (you need to [update manually](https://github.com/Chocobozzz/PeerTube/blob/develop/support/doc/production.md#nginx))
2192 * Fix long server responses on dual stack servers: https://github.com/Chocobozzz/PeerTube/commit/fd2ddcae8ff4eb10bf7168ac3c8801f06b37627f
2193 * Improve images HTTP cache: https://github.com/Chocobozzz/PeerTube/commit/c928e1364fbdff87f27fd982710b95426a250491
2194 * **Important:** With the new theme system, we removed the dark mode button. Your administrator has to install [the dark theme](https://framagit.org/framasoft/peertube/official-plugins/tree/master/peertube-theme-dark)
2195 from their admin panel, and then users can choose this theme in their settings
2196 * Changed the playlist REST API to fix various issues. See https://github.com/Chocobozzz/PeerTube/pull/1998 for more information
2197 * Removed magnet URI support in download modal since most of the BitTorrent clients do not understand the `xs` parameter
2198 * Renamed `Overview` page to `Discover`
2199
2200 ### Security
2201
2202 * Moderators can only create and update regular users (thanks GGC-Project)
2203
2204 ### Maintenance
2205
2206 * Create a dedicated `package.json` for CLI tools to reduce server dependencies size
2207 * Add ability to set root password by environment at first start ([@darnuria](https://github.com/darnuria))
2208 * Removed unused `uuid` actor field (we already have a unique identifier that is the `preferredUsername`)
2209 * Add ability to disable PeerTube log rotation ([@NassimBounouas](https://github.com/NassimBounouas))
2210 * Speedup font display ([@BO41](https://github.com/BO41))
2211 * Improve static files HTTP cache
2212 * Add `--since` and `--until` parameters to import videos script to easily sync external channels ([@fflorent](https://github.com/fflorent))
2213 * Optimize `/watch/:uuid` endpoint
2214 * Optimize Sequelize (SQL ORM) queries generation (consumes less CPU)
2215 * Prune script is faster and can prune avatar files
2216
2217 ### Features
2218
2219 * :tada: Support Finnish, Greek and Scottish Gaelic languages
2220 * :tada: Add basic plugins and themes support (**beta**): https://docs.joinpeertube.org/contribute/plugins
2221 * Install plugins or themes from the administration panel
2222 * Choose a default theme for your instance
2223 * Users can choose the theme they want among the list of themes their administrator installed
2224 * :tada: Add ability to upload audio files: PeerTube will merge the audio file and the thumbnail to create a video
2225 * Multi step registration:
2226 * Add ability for new users to create their default channel
2227 * Guess the account username/channel username according to their display name
2228 * Add explanations about what the purpose of a username/channel name is, and what a channel is
2229 * Improve account video channels page:
2230 * Set it as the default page for the account page in order to avoid confusion between the account homepage and the video channel homepage
2231 * Display channels in rows with some of their videos
2232 * Support more URL parameters in embeds: `muted`, `loop`, `peertubeLink`
2233 * Redesign share modal and add customizations:
2234 * Start/stop at a specific timestamp
2235 * Automatically play/mute/loop the video
2236 * Set a specific subtitle by default
2237 * Group subscriptions and recently added videos in chronological order
2238 * Add ability for users to change their email address
2239 * Add ability to update the support field of all channel videos when we update the channel support field
2240 * Add a language filter in user preferences to display only videos in specific languages
2241 * Add instance follows list in a dedicated tab in the "About" page
2242 * Add ability to set to private a public/unlisted video or video playlist
2243 * Transcode in the `tmp` directory for s3fs compatibility ([@libertysoft3](https://github.com/libertysoft3))
2244 * Add a button to copy account username ([@NassimBounouas](https://github.com/NassimBounouas))
2245 * Redirect to "Local videos" page when going to the `peertube` account page
2246 * Rearrange search filter options ([@realityfabric](https://github.com/realityfabric))
2247 * Close modal after clicking on download ([@LeoMouyna](https://github.com/LeoMouyna))
2248 * Add ability for admins to customize emails object prefix and body signature ([@yohanboniface](https://github.com/yohanboniface))
2249 * Support 4K transcoding
2250 * Add link of the follower profile in administration ([@NassimBounouas](https://github.com/NassimBounouas))
2251 * Add subject field in contact form ([@NassimBounouas](https://github.com/NassimBounouas))
2252 * Add rate limit to registration and API endpoints
2253 * Add "video quota used" sortable column in user admin list ([@darnuria](https://github.com/darnuria))
2254 * Automatically update the playlist thumbnail according to the video at the first position (if the user did not set a specific thumbnail)
2255 * Automatically remove dead followings
2256 * Federate comment deletion if the comment was deleted by the video owner
2257
2258 ### Bug fixes
2259
2260 * Fix transcoding information in features table ([LiPek](https://github.com/LiPeK))
2261 * Fix tools auth with remote instances
2262 * Fix various issues in upload/import scripts
2263 * Fix redundancy exceeded quota
2264 * Fix login with email ([@NassimBounouas](https://github.com/NassimBounouas))
2265 * Fix quota display in features table
2266 * Fix transcoding help placement
2267 * Fix invisible videos in playlists
2268 * Fix HLS transcoding in lower resolutions
2269 * Fix various federation issues
2270 * Fix mute badge labels
2271 * Fix broken follow notification when the actor is deleted
2272 * Fix overflow and playlist block width in the watch page
2273 * Fix search results overflow on mobile
2274 * Fix infinite scroll on big screens
2275 * Fix start time on some HLS videos
2276 * Fix socket notification with multiple user tabs
2277 * Fix redundancy if the instance has already the file on disk
2278 * Fix image and plugin CSP
2279 * Fix video rows overflow
2280 * Dismiss modals on pop state
2281 * Go back when cancel NSFW modal
2282
2283
2284 ***Since v1.4.0-rc.1***
2285
2286 ### Features
2287
2288 * Add Finnish language support
2289
2290 ### Bug fixes
2291
2292 * Fix broken front end on Firefox ESR (60)
2293 * Fix prune storage script when using a same directory for multiple storage keys
2294 * Relax plugin `package.json` validation
2295 * Replace "overview" by "discover" in client titles
2296 * Change configuration: `email.object` becomes `email.subject`
2297 * Fix user creation by moderators
2298 * Fix video playlist element removal
2299 * Fix plugin card background color with dark theme
2300 * Fix lazy static route with unknown avatars (404 instead of 500)
2301 * Fix socket notification with multiple user tabs
2302 * Fix redundancy if the instance has already the file on disk
2303 * Fix image and plugin CSP
2304 * Fix video rows overflow
2305 * Dismiss modals on pop state
2306 * Go back when cancel NSFW modal
2307
2308
2309 ## v1.3.1
2310
2311 ### Bug fixes
2312
2313 * Fix Mastodon remote interactions
2314 * Fix missing video download button
2315 * Fix error in video upload/update form when scheduling publication
2316 * Fix black theme on some pages
2317 * Fix video import if auto blacklist is enabled
2318
2319
2320 ## v1.3.0
2321
2322 **Since v1.2.0**
2323
2324 ### IMPORTANT NOTES
2325
2326 * **nginx** Remove `text/html` from `gzip_types`: https://github.com/Chocobozzz/PeerTube/commit/7eeb6a0ba4028d0e20847b846332dd0b7747c7f8 [@bnjbvr](https://github.com/bnjbvr)
2327 * Add `streaming_playlists` directory in configuration file. **You should configure it in your production.yaml**
2328 * CSP configuration changed: it's now in a [dedicated section](https://github.com/Chocobozzz/PeerTube/blob/develop/config/production.yaml.example#L110)
2329
2330 ### Maintenance
2331
2332 * Add GitPod support ([@jankeromnes](https://github.com/jankeromnes)) that could help people to contribute on PeerTube: https://github.com/Chocobozzz/PeerTube/blob/develop/.github/CONTRIBUTING.md#online-development
2333 * Add reminder to restart PeerTube in upgrade script ([@ldidry](https://github.com/ldidry))
2334 * Add argument to dockerfile to pass options to npm run build ([@NaPs](https://github.com/NaPs))
2335 * Add `NOCLIENT` env support to only install server dependencies. Example: `NOCLIENT=true yarn install --pure-lockfile` ([@rigelk](https://github.com/rigelk))
2336
2337 ### Docker
2338
2339 * **Important:**: Add host network mode to the reverse proxy section (without this, it could break videos views and P2P: https://github.com/Chocobozzz/PeerTube/issues/1643#issuecomment-464789666)
2340 * **Important:**: Add a network section to [docker-compose.yml template](https://github.com/Chocobozzz/PeerTube/blob/develop/support/docker/production/docker-compose.yml)
2341 and update your [.env](https://github.com/Chocobozzz/PeerTube/blob/develop/support/docker/production/.env#L8) to fix IP forwarding issue ([@Nutomic](https://github.com/nutomic))
2342 * Fix SMTP default configuration ([@Nutomic](https://github.com/nutomic))
2343
2344 ### Features
2345
2346 * Add video playlist support
2347 * A user has a default `Watch-later` playlist
2348 * A user can create private, unlisted or public playlists
2349 * An element in this playlist can start or stop at specific timestamps (you can create some kind of zapping for example)
2350 * The difference with a channel is that you cannot subscribe to a playlist, but you can add videos from any other user in your playlist.
2351 It's useful to organize your videos, or create a playlist of videos you like and share the link on the web etc
2352 * Add quarantine videos (auto blacklist videos on upload) feature :tada: ([@joshmorel](https://github.com/joshmorel))
2353 * Add Japanese & Nederlands & Português (Portugal) support
2354 * Add experimental HLS support
2355 * Better playback
2356 * Better bandwidth management (for both client & server)
2357 * Needs to store another video file per resolution, so enabling this option multiplies the videos storage by 2 (only new uploaded videos, this is not retroactive)
2358 * Requires ffmpeg >= 4
2359 * Better instance's followers management:
2360 * Add ability to remove an instance's follower
2361 * Add ability to forbid all new instance's followers
2362 * Add ability to manually approve new instance's followers
2363 * Add notification on new instance's follower
2364 * Improve UI:
2365 * Increase player default height
2366 * Reduce big play button border width
2367 * Increase thumbnail sizes
2368 * Add hover effect on video miniature
2369 * Add "my library" section in menu
2370 * Add missing icons in some buttons/dropdown
2371 * 2 rows per overview section
2372 * Increase video thumbnail blur ([@Zig-03](https://github.com/Zig-03))
2373 * Improve video miniatures list on mobile
2374 * Add animation when opening user notifications
2375 * Add ability for admins to disable the tracker (and so the P2P aspect of PeerTube, in order to improve users privacy for example)
2376 * Add original publication date attribute to videos, and add ability to filter on it (Andrés Maldonado)
2377 * Add video miniature dropdown
2378 * Add ability for admins to declare their instance as dedicated to NSFW content
2379 * Improve SEO (there is still work to be done)
2380 * Login is now case insensitive (if using official web client)
2381 * Add NSFW policy & users signup policy & auto blacklist strategy in features table in about page
2382 * Improve comment deletion warning
2383 * Restore videos list component on history back
2384 * Add ability to consult server logs in admin
2385 * Allow administrators to change/reset a user's password ([@rigelk](https://github.com/rigelk))
2386 * Add a debug page to help admins to fix IP configuration issues
2387 * Add ability for admins to limit users videos history size
2388 * Add ability for admins to delete old remote videos views (reduce database size)
2389 * Optimize video update page load
2390 * Less refresh jobs
2391 * Cleanup invalid AP rates/comments/shares
2392 * Better videos redundancy config error handling
2393 * Check emails are enabled if the admin requires email verification ([@joshmorel](https://github.com/joshmorel))
2394 * Add `Add /accounts/:username/ratings endpoint` ([@yohanboniface](https://github.com/yohanboniface))
2395 * Allow to control API rates limit from configuration ([@yohanboniface](https://github.com/yohanboniface))
2396
2397 ### Bug fixes
2398
2399 * Don't notify prior to scheduled update ([@joshmorel](https://github.com/joshmorel))
2400 * Fix account description database error
2401 * Fix Pleroma follow
2402 * Fix greek label
2403 * Fix email notification for some users
2404 * Fix translation of "Copy magnet URI"
2405 * Fix negative seconds by displaying 0 instead [@zacharystenger](https://github.com/zacharystenger)
2406 * Fix URL in video import notification
2407 * Don't close help popover when clicking on it
2408 * Fix `tmp` directory cleanup
2409 * Fix custom CSS help
2410 * Fix JSONLD context
2411 * Fix privacy label display in upload form
2412 * Fix my account settings responsiveness
2413 * Fix keyboard icon transparency ([@gbip](https://github.com/gbip))
2414 * Fix contact admin button overflow
2415 * Wait config to be loaded before loading login/signup
2416 * Privacy is optional in upload API endpoint
2417 * Fix hotkeys help popup overflow
2418
2419 ***Since v1.3.0-rc.2***
2420
2421 ### Bug fixes
2422
2423 * Fix duplicates in playlist add component
2424 * Fix crash in files cache
2425 * Fix playlist view/update 403
2426 * Fix search with bad webfinger handles
2427
2428
2429 ## v1.2.1
2430
2431 ### Bug fixes
2432
2433 * **Important:** Fix invalid `From` email header in contact form that could lead to the blacklisting of your SMTP server
2434 * Fix too long display name overflow in menu
2435 * Fix mention notification when a remote account mention a local account that has the same username than yours
2436 * Fix access to muted servers table for moderators
2437 * Don't crash notification popup on bug
2438 * Fix reset password script that leaks password on invalid value
2439
2440
2441 ## v1.2.0
2442
2443 ### BREAKING CHANGES
2444
2445 * **Docker:** `PEERTUBE_TRUST_PROXY` env variable is now an array ([LecygneNoir](https://github.com/LecygneNoir))
2446 * **Docker:** Check you have all the storage fields in your `/config/production.yaml` file: https://github.com/Chocobozzz/PeerTube/blob/develop/support/docker/production/config/production.yaml#L34
2447 * **nginx:** Add redundancy endpoint in static file. **You should add it in your nginx configuration: https://github.com/Chocobozzz/PeerTube/blob/develop/support/doc/production.md#nginx**
2448 * **nginx:** Add socket io endpoint. **You should add it in your nginx configuration: https://github.com/Chocobozzz/PeerTube/blob/develop/support/doc/production.md#nginx**
2449 * Moderators can manage users now (add/delete/update/block)
2450 * Add `tmp` and `redundancy` directories in configuration file. **You should configure them in your production.yaml**
2451
2452 ### Maintenance
2453
2454 * Check free storage before upgrading in upgrade script ([@Nutomic](https://github.com/nutomic))
2455 * Explain that PeerTube must be stopped in prune storage script
2456 * Add some security directives in the systemd unit configuration file ([@rigelk](https://github.com/rigelk) & [@mkoppmann](https://github.com/mkoppmann))
2457 * Update FreeBSD startup script ([@gegeweb](https://github.com/gegeweb))
2458
2459 ### Docker
2460
2461 * Patch docker entrypoint to speed up the chown at startup ([LecygneNoir](https://github.com/LecygneNoir))
2462
2463 ### Features
2464
2465 * Add Russian, Polish and Italian languages
2466 * Add user notifications:
2467 * Notification types:
2468 * Comment on my video
2469 * New video from my subscriptions
2470 * New video abuses (for moderators)
2471 * Blacklist/Unblacklist on my video
2472 * Video import finished (error or success)
2473 * Pending video published (after transcoding or a scheduled update)
2474 * My account or one of my channel has a new follower
2475 * Someone (except muted accounts) mentioned me in comments
2476 * A user registered on the instance (for moderators)
2477 * Notification actions:
2478 * Add a web notification
2479 * Send an english email
2480 * Add contact form in about page (**enabled by default**)
2481 * Add ability to unfederate a local video in blacklist modal (**checkbox checked by default**)
2482 * Support additional video extensions if transcoding is enabled (**enabled by default**)
2483 * Redirect to the last url on login
2484 * Add ability to automatically set the video caption in URL. Example: https://peertube2.cpy.re/videos/watch/9c9de5e8-0a1e-484a-b099-e80766180a6d?subtitle=ru
2485 * Automatically enable the last selected caption when watching a video
2486 * Add ability to disable, clear and list user videos history
2487 * Add a button to help to translate peertube
2488 * Add text in the report modal to explain to whom the report will be sent
2489 * Open my account menu entries on hover
2490 * Explain what features are enabled on the instance in the about page
2491 * Add an error message in the forgot password modal if the instance email system is not configured
2492 * Add sitemap
2493 * Add well known url to change password ([@rigelk](https://github.com/rigelk))
2494 * Remove 8GB video upload limit on client side. There may still be such limit depending on the reverse proxy configuration ([@scanlime](https://github.com/scanlime))
2495 * Add CSP ([@rigelk](https://github.com/rigelk) & [@Nutomic](https://github.com/nutomic))
2496 * Update title and description HTML tags when rendering video HTML page
2497 * Add webfinger support for remote follows ([@acid-chicken](https://github.com/acid-chicken))
2498 * Add tooltip to explain how the trending algorithm works ([@auberanger](https://github.com/auberanger))
2499 * Warn users when they want to delete a channel because they will not be able to create another channel with the same name
2500 * Warn users when they leave the video upload/update (on page refresh/tab close)
2501 * Set max user name, user display name, channel name and channel display name lengths to 50 characters ([@McFlat](https://github.com/mcflat))
2502 * Increase video abuse length to 3000 characters
2503 * Add totalLocalVideoFilesSize in the stats endpoint
2504
2505 ### Bug fixes
2506
2507 * Fix the addition of captions to a video
2508 * Fix federation of some videos
2509 * Fix NSFW blur on search
2510 * Add error message when trying to upload .ass subtitles
2511 * Fix default homepage in the progressive web application
2512 * Don't crash on queue error
2513 * Fix EXDEV errors if you have multiple mount points
2514 * Fix broken audio in transcoding with some videos
2515 * Fix crash on getVideoFileStream issue
2516 * Fix followers search
2517 * Remove trailing `/` in CLI import script ([@HesioZ](https://github.com/HesioZ/))
2518 * Use origin video url in canonical tag
2519 * Fix captions in HTTP fallback
2520 * Automatically refresh remote actors to fix deleted remote actors that are still displayed on some instances
2521 * Add missing translations in video embed page
2522 * Fix some styling issues in dark mode
2523 * Fix transcoding issues with some videos
2524 * Fix Mac OS mkv/avi upload
2525 * Fix menu overflow on mobile
2526 * Fix ownership button icons ([@joshmorel](https://github.com/joshmorel))
2527
2528
2529 ## v1.1.0
2530
2531 ***Since v1.0.1***
2532
2533 ### BREAKING CHANGES
2534
2535 * **Docker:** `PEERTUBE_TRUST_PROXY` env variable is now an array ([LecygneNoir](https://github.com/LecygneNoir))
2536
2537 ### Maintenance
2538
2539 * Improve REST API documentation ([@rigelk](https://github.com/rigelk))
2540 * Add basic ActivityPub documentation ([@rigelk](https://github.com/rigelk))
2541 * Add CLI option to run PeerTube without client ([@rigelk](https://github.com/rigelk))
2542 * Add manpage to peertube CLI ([@rigelk](https://github.com/rigelk))
2543 * Make backups of files in optimize-old-videos script ([@Nutomic](https://github.com/nutomic))
2544 * Allow peertube-import-videos.ts CLI script to run concurrently ([@McFlat](https://github.com/mcflat))
2545
2546 ### Scripts
2547
2548 * Use DB information from config/production.yaml in upgrade script ([@ldidry](https://github.com/ldidry))
2549 * Add REPL script ([@McFlat](https://github.com/mcflat))
2550
2551 ### Docker
2552
2553 * Add search and import settings env settings env variables ([@kaiyou](https://github.com/kaiyou))
2554 * Add docker dev image ([@am97](https://github.com/am97))
2555 * Improve docker compose template ([@Nutomic](https://github.com/nutomic))
2556 * Add postfix image
2557 * Redirect HTTP -> HTTPS
2558 * Disable Træfik web UI
2559
2560 ### Features
2561
2562 * Automatically resume videos if the user is logged in
2563 * Hide automatically the menu when the window is resized ([@BO41](https://github.com/BO41))
2564 * Remove confirm modal for JavaScript/CSS injection ([@scanlime](https://github.com/scanlime))
2565 * Set bitrate limits for transcoding ([@Nutomic](https://github.com/nutomic))
2566 * Add moderation tools in the account page
2567 * Add bulk actions in users table (Delete/Ban for now)
2568 * Add search filter in admin users table
2569 * Add search filter in admin following
2570 * Add search filter in admin followers
2571 * Add ability to list all local videos
2572 * Add ability for users to mute an account or an instance
2573 * Add ability for administrators to mute an account or an instance
2574 * Rename "News" category to "News & Politics" ([@daker](https://github.com/daker))
2575 * Add explicit error message when changing video ownership ([@lucas-dclrcq](https://github.com/lucas-dclrcq))
2576 * Improve description of the HTTP video import feature ([@rigelk](https://github.com/rigelk))
2577 * Set shorter keyframe interval for transcoding (2 seconds) ([@Nutomic](https://github.com/nutomic))
2578 * Add ability to disable webtorrent (as a user) ([@rigelk](https://github.com/rigelk))
2579 * Make abuse-delete clearer ([@barbeque](https://github.com/barbeque))
2580 * Adding minimum signup age conforming to ceiling GPDR age ([@rigelk](https://github.com/rigelk))
2581 * Feature/description support fields length 1000 ([@McFlat](https://github.com/mcflat))
2582 * Add background effect to activated menu entry
2583 * Improve video upload error handling
2584 * Improve message visibility on signup
2585 * Auto login user on signup if email verification is disabled
2586 * Speed up PeerTube startup (in particular the first one)
2587 * Delete invalid or deleted remote videos
2588 * Add ability to admin to set email as verified ([@joshmorel](https://github.com/joshmorel))
2589 * Add separators in user moderation dropdown
2590
2591 ### Bug fixes
2592
2593 * AP mimeType -> mediaType
2594 * PeerTube is not in beta anymore
2595 * PeerTube is not in alpha anymore :p
2596 * Fix optimize old videos script
2597 * Check follow constraints when getting a video
2598 * Fix application-config initialization in CLI tools ([@Yetangitu](https://github.com/Yetangitu))
2599 * Fix video pixel format compatibility (using yuv420p) ([@rigelk](https://github.com/rigelk))
2600 * Fix video `state` AP context ([tcitworld](https://github.com/tcitworld))
2601 * Fix Linked Signature compatibility
2602 * Fix AP collections pagination
2603 * Fix too big thumbnails (when using URL import)
2604 * Do not host remote AP objects: use redirection instead
2605 * Fix video miniature with a long name
2606 * Fix video views inconsistencies inside the federation
2607 * Fix video embed in Wordpress Gutenberg
2608 * Fix video channel videos url when scrolling
2609 * Fix player progress bar/seeking when changing resolution
2610 * Fix search tab title with no search
2611 * Fix YouTube video import with some videos
2612
2613 ***Since v1.1.0-rc.1***
2614
2615 ### Bug fixes
2616
2617 * Fix AP infinite redirection
2618 * Fix trending page
2619
2620
2621 ## v1.0.1
2622
2623 ### Security/Maintenance/Federation
2624
2625 * Add HTTP Signature in addition to Linked Signature:
2626 * It's faster
2627 * Will allow us to use RSA Signature 2018 in the future without too much incompatibilities in the peertube federation
2628
2629
2630 ## v1.0.0
2631
2632 ### SECURITY
2633
2634 * Add more headers to HTTP signature to avoid actor impersonation by replaying modified signed HTTP requests (thanks Thibaut Girka)
2635
2636 ### Bug fixes
2637
2638 * Check video exists before extending expiration
2639 * Correctly delete redundancy files
2640 * Fix account URI in remote comment modal ([@rigelk](https://github.com/rigelk))
2641 * Fix avatar update
2642 * Avoid old issue regarding duplicated hosts in database
2643
2644
2645 ## v1.0.0-rc.2
2646
2647 ### Bug fixes
2648
2649 * Fix config endpoint
2650
2651
2652 ## v1.0.0-rc.1
2653
2654 ### Features
2655
2656 * Allow specification of channel ID in `peertube-upload.js` ([@anoadragon453](https://github.com/anoadragon453))
2657 * Show last commit hash alongside server version in footer ([@rigelk](https://github.com/rigelk))
2658 * Add comment feeds in watch page
2659
2660 ### Bug fixes
2661
2662 * Fix dnt route (yes again, but now we have unit tests for this route :D)
2663 * Check video channel name is unique when creating a new one
2664 * Fix video fps validator (prevent redundancy/refresh of some old videos)
2665 * Allow empty search on client side ([@rigelk](https://github.com/rigelk))
2666 * Correctly forward comment deletion
2667
2668
2669 ## v1.0.0-beta.16
2670
2671 ### BREAKING CHANGES
2672
2673 * Add prompt to upgrade.sh to install pre-release version ([@Nutomic](https://github.com/nutomic))
2674
2675 ### Features
2676
2677 * Add shortcuts icon in menu
2678 * Improve overview section titles
2679 * Check old password before change ([@BO41](https://github.com/BO41))
2680 * Adding frame-by-frame hotkey support in player ([@rigelk](https://github.com/rigelk))
2681
2682 ### Bug fixes
2683
2684 * Stop seeding torrents after a failed import
2685 * Fix player crashing the web browser
2686 * Fix player performance with small devices
2687 * Fix some untranslated strings
2688 * Fix video files duplicated when fps is null ([@rigelk](https://github.com/rigelk))
2689 * Fix video import of some youtube videos
2690 * Fix (long) video description when importing by url
2691 * Fix Mastodon federation with a comment reply
2692 * Correctly delete directories on import
2693 * Remove duplicated videos on unfollow/delete redundancy
2694 * Fix 404 on manifest
2695 * Hide useless error when destroying fake renderer
2696 * Display other videos on big screens on the right of the watch page
2697 * Fix no other videos displayed on some videos
2698 * Fix hidden advanced options in upload form
2699 * Fix message space on video upload cancel ([@rigelk](https://github.com/rigelk))
2700 * Fix error when updating many video captions
2701 * Fix "my account" subtitles
2702 * Fix error when clicking on the disabled publish button
2703 * Increase timeout on upload endpoint
2704 * Fix redundancy with videos already duplicated by another instance(s)
2705 * Correctly delete files on failed import
2706
2707
2708 ## v1.0.0-beta.15
2709
2710 ### Features
2711
2712 * Improve subscription button ([@rigelk](https://github.com/rigelk))
2713 * Display it for unlogged users
2714 * Add RSS feed
2715 * Allow remote follow
2716 * Allow remote comment ([@rigelk](https://github.com/rigelk))
2717 * Support Simplified Chinese ([@SerCom-KC](https://github.com/SerCom-KC))
2718
2719 ### Bug fixes
2720
2721 * Fix redundancy with old PeerTube torrents
2722 * Fix crash with `/static/dnt-policy/dnt-policy-1.0.txt` route
2723 * Fix redundancy totalVideos stats
2724 * Reduce video import TTL to 1 hour
2725 * Only duplicate public videos
2726
2727
2728 ## v1.0.0-beta.14
2729
2730 ### Features
2731
2732 * Video redundancy system (experimental)
2733 * Add peertube script (see [the doc](/support/doc/tools.md#cli-wrapper)) ([@rigelk](https://github.com/rigelk))
2734 * Improve download modal ([@rigelk](https://github.com/rigelk))
2735 * Add redirect after login ([@BO41](https://github.com/BO41))
2736 * Improve message when removing a user
2737 * Improve responsive on small screens
2738 * Improve performance:
2739 * Overview endpoint
2740 * SQL requests of watch page endpoints
2741 * SQL requests of ActivityPub endpoints
2742 * Cache user token
2743 * Videos infinite scroll in the web browser
2744 * Add warning if one of the storage directory is in the peertube production directory
2745 * Auto focus first field on login ([@rigelk](https://github.com/rigelk))
2746 * Add chevron hotkeys to change playback rate ([@rigelk](https://github.com/rigelk))
2747
2748 ### Bug fixes
2749
2750 * Fix 24 hours delay to process views
2751 * Fix tag search on overview page
2752 * Handle actors search beginning with '@'
2753 * Fix "no results" on overview page
2754 * Fix iOS player playback/subtitles menu
2755 * Fix description/comments that break the video watch page
2756 * Don't get recommended videos twice
2757 * Fix admin access to moderators
2758 * Fix nav tab and tag color in dark theme ([@rigelk](https://github.com/rigelk))
2759 * Fix help popover overflow ([@rigelk](https://github.com/rigelk))
2760 * Fix comment deletion with mastodon (only with new comments)
2761
2762
2763 ## v1.0.0-beta.13
2764
2765 ### Features
2766
2767 * Improve keyboard navigation ([@rigelk](https://github.com/rigelk))
2768 * Remember theme in local storage ([@rigelk](https://github.com/rigelk))
2769
2770 ### Bug fixes
2771
2772 * Fix upgrade/installation on node 8.12 (bcrypt issue)
2773 * Fix video channel deletion
2774 * Fix video channel RSS
2775 * Fix video views increment
2776
2777
2778 ## v1.0.0-beta.12
2779
2780 **If you have not updated to v1.0.0-beta.10, see the v1.0.0-beta.10.pre.1 changelog, in particular how to upgrade**
2781
2782 ### BREAKING CHANGES
2783
2784 * Users can now use the name they want for their channel.
2785 We will therefore favour the display of video channel handles/names instead of account in the future.
2786
2787 ### Documentation
2788
2789 * Add SECURITY.md document
2790 * Add TCP/IP tuning template to prevent buffer bloat/latency ([@scanlime](https://github.com/scanlime))
2791 * Add `parse-log` admin tool documentation
2792 * Improve README schemas ([@Edznux](https://github.com/edznux))
2793
2794 ### nginx template
2795
2796 * Add gzip support ([@scanlime](https://github.com/scanlime))
2797
2798 ### Docker template
2799
2800 * Add quota to the docker configuration values ([@kaiyou](https://github.com/kaiyou))
2801
2802 ### Features
2803
2804 * Add portuguese and swedish languages
2805 * Support user subscriptions
2806 * Add ability to search videos or channels with their URL/handle (can be opt-out by the admin)
2807 * Add "videos overview" page (pick randomly some categories/tags/channels and display their videos)
2808 * Add ability to set a name (left part of the handle) to a channel instead of UUID
2809 * Users can "give" their videos to other local users (WIP, feedback welcome) ([@grizio](https://github.com/grizio))
2810 * Add keyboard shortcuts (press `?` to see them) ([@rigelk](https://github.com/rigelk))
2811 * Add ability to set daily video upload quota to users ([@Nutomic](https://github.com/nutomic))
2812 * Add user email verification (can be opt-in by the admin) ([@joshmorel](https://github.com/joshmorel))
2813 * Improve video watch page style ([@rigelk](https://github.com/rigelk))
2814 * Trending page takes into account views from the last x days (defined by the admin in the configuration file)
2815 * Add "start at" checkbox in the video share modal
2816 * Add instance capabilities table in the signup page ([@rigelk](https://github.com/rigelk))
2817 * Improve video abuses display in admin ([@Nutomic](https://github.com/nutomic))
2818 * Add "my videos" shortcut in menu ([@LeoMouyna](https://github.com/LeoMouyna))
2819 * Support 0.75 and 1.25 playback speeds ([@Glandos](https://github.com/Glandos))
2820 * Improve error message on actor name conflict
2821 * Improve videos list/search SQL query (split it into 2 queries)
2822 * Make left menu show the scrollbar only on hover/focus ([@rigelk](https://github.com/rigelk))
2823 * Other videos column in watch page show related tagged videos if possible ([@jorropo](https://github.com/jorropo))
2824 * Password change errors more friendly ([@jorropo](https://github.com/jorropo))
2825 * Improve labels for video privacies (video upload/update)
2826 * Add theming via CSS custom properties ([@rigelk](https://github.com/rigelk))
2827 * Add dark theme ([@rigelk](https://github.com/rigelk))
2828 * Add input color to cope with browser themes ([@rigelk](https://github.com/rigelk))
2829
2830 ### Bug fixes
2831
2832 * Fix player video playback (videos never ends or infinite load after seeking)
2833 * Fix video URL import with videos having a small title
2834 * Make HSTS opt-in and leave it to the reverse-proxy ([@rigelk](https://github.com/rigelk))
2835 * Fix search results on mobile
2836 * Do not import live streaming
2837 * Fix NSFW filter when the instance decides to hide them and the user decides to list them
2838 * Delete highlighted comment too if needed
2839 * Fix ffmpeg auto thread admin configuration ([@jorropo](https://github.com/jorropo))
2840 * ActivityPub: use height instead of width to represent the video resolution
2841 * Fix thumbnail/preview in upload.js script
2842 * Fix import-videos.js duplicate detection
2843 * Fix occitan language label
2844
2845
2846 ## v1.0.0-beta.11
2847
2848 **If you have not updated to v1.0.0-beta.10, see the v1.0.0-beta.10.pre.1 changelog, in particular how to upgrade**
2849
2850 ### Features
2851
2852 * Add ability to import videos from a URL (YouTube, Dailymotion, Vimeo, raw file etc) or torrent file/magnet.
2853 Should be explicitly enabled by the administrator in the configuration file
2854 * Add german, spanish, taiwan (traditional chinese) and occitan languages
2855 * Add ability to delete our account
2856 * Add ability to ban a user
2857 * Add ability to set a moderation comment to an abuse
2858 * Add state (pending, accepted, rejected) attribute to an abuse
2859 * Add ability to set a reason when blacklisting a video
2860 * Add ability to blacklist local videos
2861 * Improve abuse and blacklist tables
2862 * Add user quota used in users list
2863 * Tracker only accept known infohash (avoid people to use your tracker for files unrelated to PeerTube)
2864 * Add database pool configuration ([@rigelk](https://github.com/rigelk))
2865 * Add audit log ([@Nautigsam](https://github.com/Nautigsam))
2866 * Add ffmpeg nice and auto thread ([@jorropo](https://github.com/jorropo))
2867 * Upgrade to bootstrap 4
2868 * DNT support
2869
2870 ### Bug fixes
2871
2872 * Fix videos FPS federation
2873 * Cleanup request files on bad request
2874 * Handle truncated markdown links
2875 * Fix dropdown position in menu
2876 * Translate subtitle languages in player
2877 * Translate player according the language of the interface
2878 * Fix reset my password button ([@joshmorel](https://github.com/joshmorel))
2879
2880
2881 ## v1.0.0-beta.10
2882
2883 **See the v1.0.0-beta.10.pre.1 changelog, in particular how to upgrade**
2884
2885 ### Bug fixes (from beta.10.pre.3)
2886
2887 * Fix caption upload on Mac OS
2888
2889
2890 ## v1.0.0-beta.10.pre.3
2891
2892 **See the v1.0.0-beta.10.pre.1 changelog, in particular how to upgrade**
2893
2894 ### Bug fixes (from beta.10.pre.2)
2895
2896 * Try to fix the infinite creation of Delete actor jobs by deleting kue migration
2897 * Cleanup SQL indexes
2898 * Try to optimize SQL search query
2899 * Try to optimize videos list SQL query
2900 * Add more logs and fix logger when having an error
2901 * Move subscription helper in the account line in video watch page
2902 * Fix responsive on videos search
2903 * Refresh orphan actors
2904 * Don't send a follow request if the follow was already accepted
2905
2906
2907 ## v1.0.0-beta.10.pre.2
2908
2909 **See the v1.0.0-beta.10.pre.1 changelog, in particular how to upgrade**
2910
2911 ### Bug fixes (from beta.10.pre.1)
2912
2913 * Fix captions/subtitles freeze in player
2914 * Fix attribute label width in video watch page
2915 * Fix player playback in Chrome
2916 * Revert SQL optimization when listing videos: it breaks the connection pool of some instances
2917
2918
2919 ## v1.0.0-beta.10.pre.1
2920
2921 This version is a pre release because it contains many important changes, and requires manual steps before upgrading.
2922
2923 **Important:** Before upgrading run the following commands (no need to stop PeerTube) on your PeerTube database (in this example it's *peertube_prod*):
2924
2925 ```
2926 sudo -u postgres psql peertube_prod -c 'CREATE EXTENSION IF NOT EXISTS unaccent;'
2927 sudo -u postgres psql peertube_prod -c 'CREATE EXTENSION IF NOT EXISTS pg_trgm;'
2928 ```
2929
2930 You will need [PostgreSQL Contrib](https://www.postgresql.org/docs/9.6/static/contrib.html).
2931
2932 ### BREAKING CHANGES
2933
2934 * Require `unaccent` and `pg_trgm` PostgreSQL extension for the PeerTube database
2935 * `category` filter param is replaced by `categoryOneOf`
2936 * Switch job queue to [Bull](https://github.com/OptimalBits/bull). **PeerTube will not migrate your old pending jobs in this new queue manager**
2937 * Update nginx template (you need to [update manually](https://github.com/Chocobozzz/PeerTube/blob/develop/support/doc/production.md#nginx))
2938 * Update default cache size configurations
2939 * Update search API route: `/videos/search` becomes `/search/videos`
2940 * Needs Redis >= 2.8.18
2941
2942 ### Features
2943
2944 * Add ability to change the language of the interface (currently available: english, french, basque, catalan, czech and esperanto)
2945 * Subtitles/captions support (.srt and .vtt)
2946 * Add advanced search
2947 * Add ability to click on category/language/licence/tags in watch page
2948 * Improve explanations of P2P & Privacy section in about page
2949 * Avoid design latency when the admin set custom CSS
2950 * Add ability to update video channel avatar
2951 * Limit video resolution depending on the video element size (Nitesh Sawant)
2952 * Show "Other videos" on a <1300px viewport ([@Simounet](https://github.com/simounet))
2953 * Add QR code to share videos URL ([@DeeJayBro](https://github.com/DeeJayBro))
2954 * Add "agree to the terms" checkbox in registration form
2955 * Add tracker rate limiter
2956 * Add author URL in OEmbed response
2957 * Display username instead of email in menu
2958 * Clarifying what extensions are accepted for upload ([@rigelk](https://github.com/rigelk))
2959 * Thumbnail support for RSS feeds ([@rigelk](https://github.com/rigelk))
2960 * Open CORS on API and static resources ([@rezonant](https://github.com/rezonant)
2961 * B-adapt 1 and B-frames 16 on ffmpeg transcoding: ([@Anton-Latukha](https://github.com/Anton-Latukha)). See https://github.com/Chocobozzz/PeerTube/pull/774 for more information
2962 * Support Redis socket ([@rigelk](https://github.com/rigelk))
2963 * Improve video `start` param to support string times (for example: 2m42s))
2964 * Display table next/prev/first/last icons in admin tables
2965 * NodeInfo support ([@rigelk](https://github.com/rigelk))
2966 * Improve HTTP headers security ([@rigelk](https://github.com/rigelk))
2967 * Improve client accessibility (for screen reader users etc)
2968 * Optimize SQL requests (in particular the one to list videos)
2969 * Optimize images ([@jorropo](https://github.com/jorropo))
2970 * Add esperanto, lojban, klingon and kotava (audio/subtitle) languages
2971 * Allow uploads of videos <8GB (*experimental*)
2972 * Handle FPS > 30 (*experimental*)
2973
2974 ### Bug fixes
2975
2976 * Fix avatars/thumbnails update (cache issue)
2977 * Fix pagination on admin job table when changing the job state
2978 * Fix SQL transaction retryer log
2979 * Correctly handle error when remote instance is down
2980 * Fix account videos URL when scrolling
2981 * Avoid commenting twice by disabling comment submit button when sending the comment
2982 * Reset confirm component input when closing it
2983 * Fix video speed when video resolutions changes ([@grizio](https://github.com/grizio))
2984 * Disable hotkeys modifiers for numbers ([@rigelk](https://github.com/rigelk))
2985 * Reset published date on video publish (scheduled or after a transcoding)
2986 * Avoid 404 title on the first page load
2987 * Fix forgot password message regarding email
2988 * Remove scroll to top when closing the menu ([@ebrehault](https://github.com/ebrehault))
2989 * Use UUID for channel link in watch page
2990
2991 ### Docker
2992
2993 * Add PEERTUBE_SMTP_DISABLE_STARTTLS config env
2994
2995
2996 ## v1.0.0-beta.9
2997
2998 ### Features
2999
3000 * Theater/Cinema mode in player
3001 * Add ability to wait transcoding before publishing it
3002 * Add ability for uploaders to schedule video update
3003 * Add time display to see where we seek the video
3004 * Add title in player peers info to show total downloaded/uploaded data
3005 * Provide magnet URI in player and download modal ([@rigelk](https://github.com/rigelk))
3006 * Add warning if the domain name is different from the one of the first start of Peertube
3007 * Add resolution to create-transcoding-job script ([@fflorent](https://github.com/fflorent))
3008
3009 ### Bug fixes
3010
3011 * Fix dislikes number in video watch page
3012 * Fix import when the imported file has the same extension than an already existing file
3013 * Fix bad RSS descriptions when filtering videos by account or channel
3014 * Fix RSS results limit
3015 * Fix glitch when updating player volume
3016 * Use local object URLs for feeds
3017 * Automatically jump to the highlighted thread
3018 * Fix account link width on video view ([@sesn](https://github.com/sesn))
3019 * Prevent commenting twice
3020 * Blue links color in comments
3021 * Fix quota precision in users list
3022 * Handle markdown in account/video channel pages
3023 * Fix avatar image in channel page
3024 * Fix slow HTTP fallback on Firefox
3025 * Do not create a user with the same username than another actor name
3026 * Reset search on page change
3027 * Fix images size limit
3028 * Log torrent errors/warnings in the console, instead of disturbing users
3029
3030
3031 ## v1.0.0-beta.8
3032
3033 ### Features
3034
3035 * Docker:
3036 * Add disable_starttls and transcoding configuration variables
3037 * `.env` file to define env variables (instead of defining them in `docker-compose.yml`)
3038 * Some improvements that should make the upgrades less painful
3039 * Add ability to manually run transcoding jobs (admin with CLI)
3040 * Add ability to import a video file (admin with CLI)
3041 * Add context menu to the player
3042 * Add number of videos published by an account/video channel
3043 * Improve player progress bar
3044 * Improve Twitter configuration help tooltips
3045 * Pick average video file instead of max quality in "Auto" resolution mode
3046 * Increase access token lifetime to 1 day
3047 * Add video comments RSS
3048
3049 ### Bug fixes
3050
3051 * Clicking on "Download" correctly opens a popup to download the video
3052 (instead of opening the video in a new tab)
3053 * Fix frequent logout
3054 * Fix `publishedAt` video attribute when following a new instance
3055 * Correctly resumes the video on "PeerTube" link click in embed
3056 * Fix markdown links truncation
3057 * Fix account/channel pages not updated if we only change the account/channel
3058 * Fix player resolution change that plays even if the video was paused
3059 * Fix posting view in embed that contains search params
3060 * Fix video watch tooltips regarding subscriptions by using the account name
3061 instead of the display name
3062 * Rename "my settings" to "my account" in menu
3063
3064
3065 ## v1.0.0-beta.7
3066
3067 ### BREAKING CHANGES
3068
3069 * Account client URLs are now `/accounts/{username}/` (and not `/accounts/{id}/`)
3070
3071 ### Documentation
3072
3073 * Better documentation on how to deploy with Docker: https://github.com/Chocobozzz/PeerTube/blob/develop/support/doc/docker.md
3074
3075 ### Features
3076
3077 * Add short description in about page
3078 * Add owner account name in video channel page
3079 * Improve performance in ActivityPub controllers
3080 * Video **support** field inherits video channel **support** field when uploading/updating a video
3081 * Resume video when clicking on "PeerTube" link in embed
3082
3083 ### Bug fixes
3084
3085 * Fix player on Android
3086 * Fix player when Firefox has cookies disabled
3087 * Reload "my videos" after a delete
3088 * Fix missing key configuration when upgrading with Docker
3089 * Fix CC audience in Activity Pub objects/activities
3090
3091
3092 ## v1.0.0-beta.6
3093
3094 ### Features
3095
3096 * Handle concurrent requests in cache middleware
3097 * Add ability to enable registration by IP
3098
3099 ### Bug fixes
3100
3101 * Fix insane SQL request when loading all video attributes
3102
3103
3104 ## v1.0.0-beta.5
3105
3106 ### BREAKING CHANGES
3107
3108 * Update Docker Compose (https://github.com/Chocobozzz/PeerTube/commit/fd5e57bbe2accbdb16b6aa65337c5ef44b5bd8fb)
3109 * Rename client routes:
3110 * `/admin/users/add` to `/admin/users/create`
3111 * `/videos/edit/:uuid` to `/videos/update/:uuid`
3112 * `/admin/users/:id/update` to `/admin/users/update/:id`
3113
3114
3115 ### Features
3116
3117 * Adding basic helpers to guide users for comments/subscribe to accounts
3118 * Add ability to move a video in another channel
3119 * Improve web browser RAM consumption when watching (long) videos
3120 * Support robots.txt in configuration
3121 * Add ability to select the Redis database in configuration
3122
3123
3124 ### Bug fixes
3125
3126 * Fix error message on token expiration
3127 * Increase menu icon size
3128 * Add timeout and TTL to request jobs to fix stuck job
3129 * Fix responsive account about page
3130 * Fix updating description account
3131 * Account/video channel descriptions are not required anymore
3132 * Fix video channel description and support max length (500 characters now)
3133 * Fix "..." for buttons (delete/edit) in admin tables
3134 * Fix overflow in markdown textarea preview
3135 * Add ability to embed videos in a Twitter card
3136 * Use `publishedAt` attribute when sorting videos
3137 * Fix concurrent requests in videos list
3138 * Fix player on iOS
3139
3140
3141 ## v1.0.0-beta.4
3142
3143 ### BREAKING CHANGES
3144
3145 * Hide by default NSFW videos. Update the `instance.default_nsfw_policy` configuration to `blur` to keep the old behaviour
3146 * Move video channels routes:
3147 * `/videos/channels` routes to `/video-channels`
3148 * `/videos/accounts/{accountId}/channels` route to `/accounts/{accountId}/video-channels`
3149 * PeerTube now listen on 127.0.0.1 by default
3150 * Use ISO 639 for language (*en*, *es*, *fr*...)
3151 * Tools (`import-videos`...) need the language ISO639 code instead of a number
3152 * API (`upload`, `update`, `list`...) need/return the language ISO639 code instead of a number
3153
3154 ### Features
3155
3156 * Add `publishedAt` attribute to videos
3157 * Improve player:
3158 * Smooth progress bar
3159 * Settings menu
3160 * Automatic resolution (depending on the user bandwidth)
3161 * Some animations/effects
3162 * More reactive when clicking on play
3163 * Handle autoplay blocking by some web browsers
3164 * Better responsive
3165 * Add ability to link a specific timestamp. Example: https://peertube2.cpy.re/videos/watch/f78a97f8-a142-4ce1-a5bd-154bf9386504?start=58
3166 * Add an id to the body to override current CSS (for custom CSS)
3167 * Add privacy argument to `upload.ts` script
3168 * RSS/Atom/JSON-feed for videos recently-added/trending/account
3169 * Support hostname binding in the configuration
3170 * Add ability to click on an account in the video watch page (link to a search)
3171 * Better responsive on many comment replies
3172 * Move follows in the job queue
3173 * Add ability to choose the NSFW videos policy: hide, blur or display. Could be overrode by the user
3174 * Add video privacy information in *my videos page*
3175 * Use the video name for the torrent file name instead of the UUID
3176 * Handle errors in embed (video not found, server error...)
3177 * Account view (videos uploaded by this account + video channel owned by this account + about pages)
3178 * Video channel view (videos uploaded in this channel + about pages)
3179 * Video channel management (avatar update is still missing)
3180
3181 ### Bug fixes
3182
3183 * Fix "show more" description on video change
3184 * Accept unlisted comments
3185 * Don't start application until all components were initialized
3186 * Fix word-break in video description and video comments
3187 * Don't add a `.` after the URL in the "forgot password" email
3188
3189
3190
3191 ## v1.0.0-beta.3
3192
3193 ### Features
3194
3195 * Add hover background color in menu
3196 * Add info about the initial user quota in the registration form
3197 * Add link to register in the login form
3198 * Prevent brute force login attack
3199
3200 ### Bug fixes
3201
3202 * Fix bad federation with videos with special utf characters in description (again)
3203 * Fix views system behind a reverse proxy
3204
3205
3206 ## v1.0.0-beta.2
3207
3208 ### Features
3209
3210 * More logging in SMTP module
3211 * Add option to disable starttls in SMTP module
3212 * Update STUN servers (using framasoft.org and stunprotocol.org now)
3213 * Min comment length is 1 now (useful for emoji...)
3214 * Better embed video player in small screens
3215 * Reduce display time of title/description/control bar in embed on inactivity
3216 * Add sign languages for videos attribute
3217 * Add autoplay parameter for embed
3218 * Videos search on account username and host too
3219 * Redirect to homepage on empty search
3220
3221 ### Bug fixes
3222
3223 * Fix mentions in comment replies
3224 * Logo/Title redirects to the default route
3225 * Fix bad federation with videos with special utf characters in description
3226 * Fix pagination on mobile
3227 * Use instance name for page titles
3228 * Fix bad id for Create activities (ActivityPub)
3229 * Handle inner actors instead of just handling actor ids (ActivityPub)
3230 * Fallback to torrent file if infohash is incorrect
3231 * Fix admin config errors display/validation
3232 * Add public to Announces (ActivityPub)
3233 * Fix inability to run client when cookies are disabled
3234 * Fix words breaking in videos description
3235 * Graceful exit when import videos script fails
3236 * Fix import videos with long names
3237 * Fix login with a password containing special characters
3238 * Fix player error flickering with an unsupported video format
3239 * Fix comment delete federation
3240 * Fix communication of a PeerTube instance and Mastodon
3241 * Fix custom configuration with number values
3242
3243
3244 ## v1.0.0-beta.1
3245
3246 Nothing new here, but PeerTube is stable enough for being in beta now.
3247
3248
3249 ## v1.0.0-alpha.9
3250
3251 ### BREAKING CHANGES
3252
3253 * Update videos list/search/get API response:
3254 * Removed `resolution` field
3255 * Removed `resolutionLabel` field
3256 * Removed `category` field
3257 * Removed `categoryLabel` field
3258 * Removed `licence` field
3259 * Removed `licenceLabel` field
3260 * Removed `language` field
3261 * Removed `languageLabel` field
3262 * Removed `privacy` field
3263 * Removed `privacyLabel` field
3264 * Added `resolution.id` field
3265 * Added `resolution.label` field
3266 * Added `category.id` field
3267 * Added `category.label` field
3268 * Added `licence.id` field
3269 * Added `licence.label` field
3270 * Added `language.id` field
3271 * Added `language.label` field
3272 * Added `privacy.id` field
3273 * Added `privacy.label` field
3274
3275 ### Bug fixes
3276
3277 * Fix video_share_url duplicate key on failed transcoding job
3278
3279
3280 ## v1.0.0-alpha.8
3281
3282 ### Features
3283
3284 * Add ability to set a short instance description
3285
3286
3287 ## v1.0.0-alpha.7
3288
3289 ### BREAKING CHANGES
3290
3291 * Update videos list/search API response:
3292 * Removed `accountName` field
3293 * Removed `serverHost` field
3294 * Added `account.name` field
3295 * Added `account.displayName` field
3296 * Added `account.host` field
3297 * Added `account.url` field
3298 * Added `account.avatar` field
3299 * Update video abuses API response:
3300 * Removed `reporterUsername` field
3301 * Removed `reporterServerHost` field
3302 * Removed `videoId` field
3303 * Removed `videoUUID` field
3304 * Removed `videoName` field
3305 * Added `reporterAccount` field
3306 * Added `video.id` field
3307 * Added `video.name` field
3308 * Added `video.uuid` field
3309 * Added `video.url` field
3310
3311 ### Features
3312
3313 * Add "Local" in menu that lists only local videos
3314
3315
3316 ## v1.0.0-alpha.4
3317
3318 ### Features
3319
3320 * Add iOS support
3321
3322
3323 ## v1.0.0-alpha.1
3324
3325 ### Features
3326
3327 * Add messages about privacy and P2P
3328 * Add stats route
3329 * Add playback setting
3330
3331
3332 ## v0.0.29-alpha
3333
3334 ### BREAKING CHANGES
3335
3336 * Use only 1 thread for transcoding by default
3337
3338 ### Features
3339
3340 * Add help to JS/CSS custom configuration inputs
3341 * Keep ratio in video thumbnail generation
3342 * Handle video in portrait mode
3343
3344 ### Bug fixes
3345
3346 * Fix complete description on some videos
3347 * Fix job sorting in administration
3348
3349
3350 ## v0.0.28-alpha
3351
3352 ### BREAKING CHANGES
3353
3354 * Enable original file transcoding by default in configuration
3355 * Disable transcoding in other definitions in configuration
3356
3357 ### Features
3358
3359 * Fallback to HTTP if video cannot be loaded
3360 * Limit to 30 FPS in transcoding
3361
3362
3363 ## v0.0.27-alpha
3364
3365 ### Features
3366
3367 * Add ability for admin to inject custom JavaScript/CSS
3368 * Add help tooltip on some fields
3369
3370 ### Bug fixes
3371
3372 * Fix comment reply highlighting
3373
3374
3375 ## v0.0.26-alpha
3376
3377 ### BREAKING CHANGES
3378
3379 * Renamed script `import-youtube.js` to `import-videos.js`
3380 * Renamed `import-video.js` argument `youtube-url` to `target-url`
3381
3382 ### Features
3383
3384 * Add "Support" attribute/button on videos
3385 * Add ability to import from all [supported sites](https://rg3.github.io/youtube-dl/supportedsites.html) of youtube-dl
3386
3387 ### Bug fixes
3388
3389 * Fix custom instance name overflow
3390
3391
3392 ## v0.0.25-alpha
3393
3394 ### Features
3395
3396 * Add ability to link a specific comment
3397
3398 ### Bug fixes
3399
3400 * Fix avatars on video watch page
3401
3402
3403 ## v0.0.24-alpha
3404
3405 ### Features
3406
3407 * Publish comments with *ctrl + enter*
3408
3409 ### Bug fixes
3410
3411 * Don't stuck on active jobs
3412 * Fix deleting a video with comments
3413 * Fix infinite scroll (videos list)