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