CHANGELOG.md 148 KB
Newer Older
Chocobozzz's avatar
Chocobozzz committed
1
2
# Changelog

Chocobozzz's avatar
Chocobozzz committed
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
## v4.2.2

### IMPORTANT NOTES

 * If you upgrade from PeerTube **< 4.2.0**, please follow 4.2.0 IMPORTANT NOTES

### SECURITY

 * Upgrade vulnerable server dependencies

### Bug fixes

 * Fix fast restream in permanent live
 * Fix latency mode setting when creating a live
 * Fix unique constraint tag violation when importing videos
 * Fix latest live sessions order
 * Fix server crash feed when accessing feeds that contains a live
 * Fix `false` boolean attribute (`data-is-live` etc) in custom markup


Chocobozzz's avatar
Chocobozzz committed
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
## v4.2.1

### IMPORTANT NOTES

 * If you upgrade from PeerTube **< 4.2.0**, please follow 4.2.0 IMPORTANT NOTES

### Bug fixes

 * Fix live ending job that breaks new live session
 * Fix search filters counter
 * Fix upload banner icon margin
 * Fix button icon margin
 * Fix my import expander icon that should only be displayed on import error
 * Fix select components styling inconsistency
 * Increase max watch section to avoid too much warnings in server
 * Optimize broadcast job creation
 * Optimize `View` activities delivery using a dedicated broadcast job queue that can be run in parallel
 * Fix video selection buttons placement
 * Fix searching into account blocklist
 * Fix incorrect instance stats
 * Fix broken player on ICE error
 * Relax views federation
Chocobozzz's avatar
Chocobozzz committed
45
46
 * Fix peertube user in docker
 * Fix playlist element federation with a deleted video
Chocobozzz's avatar
Chocobozzz committed
47
48


Chocobozzz's avatar
Chocobozzz committed
49
## v4.2.0
Chocobozzz's avatar
Chocobozzz committed
50
51
52

### IMPORTANT NOTES

Chocobozzz's avatar
Chocobozzz committed
53
 * **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:
Chocobozzz's avatar
Chocobozzz committed
54
55
   * Classic installation: `cd /var/www/peertube/peertube-latest && sudo -u peertube NODE_CONFIG_DIR=/var/www/peertube/config NODE_ENV=production node dist/scripts/migrations/peertube-4.2.js`
   * Docker installation: `cd /var/www/peertube-docker && docker-compose exec -u peertube peertube node dist/scripts/migrations/peertube-4.2.js`
Chocobozzz's avatar
Chocobozzz committed
56
57
 * **Important** SQL migrations (in particular `0685-multiple-actor-images`) can take several minutes to complete
 * **Important** You must update your nginx configuration to support video web editor: https://docs.joinpeertube.org/install-any-os?id=nginx
Chocobozzz's avatar
Chocobozzz committed
58
59
60
61
62
63
64
65
 * REST API:
   * `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

### Maintenance

 * Add `client.videos.resumable_upload.max_chunk_size` config option [#4857](https://github.com/Chocobozzz/PeerTube/pull/4857)
 * Add `object_storage.upload_acl` config option [#4861](https://github.com/Chocobozzz/PeerTube/pull/4861)
 * Add ability to set RTMP/RTMPS listening hostname using `rtmp.hostname`/`rtmps.hostname` and public RTMP/RTMPS hostname using `rtmp.public_hostname`/`rtmps.public_hostname`
66
 * Removed `best` default trending algorithm. It is automatically used if using `hot` algorithm with a logged in user
Chocobozzz's avatar
Chocobozzz committed
67
68
69
70
71
72
73
74
75
76
77
78
79

### Docker

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

### Plugins/Themes/Embed API

 * Theme:
   * Add `--mainBackgroundHoverColor` and `--greySecondaryBackgroundColor` CSS variables
 * Add server plugin hooks
   * `filter:api.video-playlist.videos.list.params` and `filter:api.video-playlist.videos.list.result`
 * Support `getSettings()`, `isLoggedIn()` and `getAuthHeader()` client plugin helpers in embed
Chocobozzz's avatar
Chocobozzz committed
80
81
 * Player URL query parameters:
   * Support `controlBar=0` to hide player control bar. See [the documentation](https://docs.joinpeertube.org/api-embed-player?id=url-parameters) for more information
Chocobozzz's avatar
Chocobozzz committed
82
83
84
85
86
87
88
89

### Features

 * :tada: Add video edition from the PeerTube web interface :tada:
   * Cut the video (set a new start/new end)
   * Add an intro at the beginning and/or an outro at the end of the video
   * Add an icon/watermark in the top right corner of the video
   * PeerTube will automatically transcode the new video and replace the original one
Chocobozzz's avatar
Chocobozzz committed
90
   * :sparkles: *Funded by "la Direction du numérique du Ministère de l'Éducation Nationale, de la Jeunesse et des Sports"* :sparkles:
91
 * :tada: Add advanced statistics of a specific video :tada:
Chocobozzz's avatar
Chocobozzz committed
92
93
   * Provide *Average watch time*, *Total watch time* and *Peak viewers* video statistics
   * Display total viewers, aggregated watch time and audience retention in interactive time series graphs
94
   * Display viewer countries in bar chart if not disabled by admins
Chocobozzz's avatar
Chocobozzz committed
95
   * :sparkles: *Funded by HowlRound Theatre Commons at Emerson College* :sparkles:
Chocobozzz's avatar
Chocobozzz committed
96
97
 * :tada: Add latency setting support for lives (small latency without P2P or high latency to increase P2P ratio) :tada:
 * :tada: Add ability to save a replay of every streaming session of a permanent live :tada:
Chocobozzz's avatar
Chocobozzz committed
98
   * :sparkles: *Funded by HowlRound Theatre Commons at Emerson College* :sparkles:
Chocobozzz's avatar
Chocobozzz committed
99
100
 * Add simple subtitle edition from video captions tab in video edition form [#4666](https://github.com/Chocobozzz/PeerTube/pull/4666)
 * Display live streaming sessions details in permanent live information modal
Chocobozzz's avatar
Chocobozzz committed
101
 * Add ability to also mute users when banning them [#4660](https://github.com/Chocobozzz/PeerTube/pull/4660)
Chocobozzz's avatar
Chocobozzz committed
102
103
104
105
106
107
108
 * UI improvements:
   * 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)
   * Display author avatar in embed
   * Move admin comments list in *Overviews* menu
   * Add a *Refresh* button to admin comments list
   * Add ability to sort videos by total views
 * Add *Persian* locale support
Chocobozzz's avatar
Chocobozzz committed
109
110
111
 * Add previous page redirection support on external auth login
 * Support proxy for object storage [#4973](https://github.com/Chocobozzz/PeerTube/pull/4973)
 * Add "Only display embed URL" checkbox in share modal
Chocobozzz's avatar
Chocobozzz committed
112
113
114
115
116
117
118
119
120

### Bug fixes

 * Video uploads fixes:
    * Fix invalid token during long uploads
    * Fix upload on server with a slow disk
    * Fix upload of some videos with unknown duration (`.m2v` for example)
    * Fix 2 hours limit on uploads
    * Fix upload page title [#4904](https://github.com/Chocobozzz/PeerTube/pull/4904)
Chocobozzz's avatar
Chocobozzz committed
121
    * Fix video upload with some characters in filename
Chocobozzz's avatar
Chocobozzz committed
122
123
124
125
126
127
128
129
130
131
132
    * Fix `.ac3` and `.mts` upload on some OS
 * Fix avatar with account username starting with a number
 * Fix client html cache on theme update
 * Disallow unlisted video indexation
 * Allow oembed to fetch unlisted videos
 * Stop removing remote Mastodon rates
 * Fix email links displayed twice in text version
 * Fix user quota inconsistencies in admin when users use lives
 * Fix admin instance following list when sorting by *Redundancy allowed*
 * More reliable object storage upload when using multipart [#4903](https://github.com/Chocobozzz/PeerTube/pull/4903)
 * Correctly handle HTTP signature draft 11 requests (without `date` header but with `(created)`)
Chocobozzz's avatar
Chocobozzz committed
133
 * Fix `ctrl + 0-9` player hotkeys conflicting with web browser hotkeys
Chocobozzz's avatar
Chocobozzz committed
134
135


Chocobozzz's avatar
Chocobozzz committed
136
137
138
139
## v4.1.1

### Security

Chocobozzz's avatar
Chocobozzz committed
140
 * Strip EXIF data when processing images
Chocobozzz's avatar
Chocobozzz committed
141
142
143
144
145
146
147
148
149
150
151
152
153

### Docker

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

### Bug fixes

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


154
## v4.1.0
Chocobozzz's avatar
Chocobozzz committed
155
156
157

### IMPORTANT NOTES

Chocobozzz's avatar
Chocobozzz committed
158
 * PeerTube does not support NodeJS 12 anymore
Chocobozzz's avatar
Chocobozzz committed
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187

### Plugins/Themes/Embed API

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

### Maintenance

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

Chocobozzz's avatar
Chocobozzz committed
188
189
190
191
192
### Security

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

Chocobozzz's avatar
Chocobozzz committed
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
### CLI tools

 * Also remove HLS files when using `prune-storage` script
 * Support `--plugin-version` option when installing a plugin [#4599](https://github.com/Chocobozzz/PeerTube/pull/4599)

### Features

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

### Bug fixes

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


Chocobozzz's avatar
Chocobozzz committed
265
## v4.0.0
Chocobozzz's avatar
Chocobozzz committed
266
267
268

### IMPORTANT NOTES

Chocobozzz's avatar
Chocobozzz committed
269
270
271
 * **Important** You need to execute manually a migration script (can be executed after your upgrade, while your PeerTube instance is running) to migrate HLS files name:
   * Classic installation: `cd /var/www/peertube/peertube-latest && sudo -u peertube NODE_CONFIG_DIR=/var/www/peertube/config NODE_ENV=production node dist/scripts/migrations/peertube-4.0.js`
   * Docker installation: `cd /var/www/peertube-docker && docker-compose exec -u peertube peertube node dist/scripts/migrations/peertube-4.0.js`
Chocobozzz's avatar
Chocobozzz committed
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
 * **Important** We fixed configuration inconsistencies and added some keys. **You must change/add them in your production.yaml**
   * `log.rotation.maxFileSize` becomes `log.rotation.max_file_size`
   * `log.rotation.maxFiles` becomes `log.rotation.max_files`
   * `log.anonymizeIP` becomes `log.anonymize_ip`
   * Removed `import.http.proxy` configuration: use `HTTP_PROXY` and `HTTPS_PROXY` environment variables instead
   * Added `storage.bin` in configuration file
 * REST API: Deprecate `filter` videos list query parameter in favour of `isLocal` and `include`
 * PeerTube **is compatible** with ffmpeg 4.4.1 but **is not compatible** with ffmpeg 4.4.0
 * Removed deprecated `/static/torrents` route
 * We changed the live `views` and `viewers` system, that could lead to federation inconsistencies with instances < 4.0.0 for these specific counters

### Maintenance

 * Add ability for sysadmins to disable web configuration edition [#4315](https://github.com/Chocobozzz/PeerTube/pull/4315)
 * YoutubeDL:
   * Support [yt-dlp](https://github.com/yt-dlp/yt-dlp/) (recommended due to unmaintained [youtube-dl](https://github.com/ytdl-org/youtube-dl))
   * Add ability to set release URL in configuration
 * Add ability to override `default-playlist.png`, `default-avatar-account.png`, `default-avatar-video-channel.png` using `storage.client_overrides` configuration [#4392](https://github.com/Chocobozzz/PeerTube/pull/4392)

### Plugins/Themes/Embed API

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

 * Add client plugin hooks:
   * `filter:api.video-watch.video-playlist-elements.get.params` and `filter:api.video-watch.video-playlist-elements.get.result` [#4387](https://github.com/Chocobozzz/PeerTube/pull/4387)
Chocobozzz's avatar
Chocobozzz committed
297
298
 * Introduce plugin id selectors: https://docs.joinpeertube.org/contribute-plugins?id=plugin-selector-on-html-elements
   * Add `#plugin-selector-login-form` to login form
Chocobozzz's avatar
Chocobozzz committed
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337

### Docker

 * We now use Bullseye for Docker images, so the image name changed:
   * `production-buster` becomes `production-bullseye`
   * `v4.x.x-buster` becomes `v4.x.x-bullseye`
 * Allow configuration to be static/readonly [#4315](https://github.com/Chocobozzz/PeerTube/pull/4315)

### CLI tools

 * Add [create-move-video-storage-jobs](https://docs.joinpeertube.org/maintain-tools?id=create-move-video-storage-jobjs) script to move local video files in object storage [#4481](https://github.com/Chocobozzz/PeerTube/pull/4481)
 * Removed `peertube-repl` and `peertube-watch` scripts
 * Apply import interval only when reasonable [#4552](https://github.com/Chocobozzz/PeerTube/pull/4552)

### Features

 * :tada: Add videos overview in admin
   * List all available videos on the instance
   * Display video information summary: file type, file size, privacy, state, embed...
   * Many filters available: videos with/without HLS/WebTorrent, remote/local videos, exclude muted accounts...
   * Run WebTorrent/HLS transcoding
   * Remove WebTorrent/HLS video files
   * Bulk actions: remove, block, run transcoding, delete video files...
 * Correctly generate thumbnails/previews for portrait videos
 * Keep input image ratio for banners, avatars, thumbnails...
 * Support 144p transcoding [#4492](https://github.com/Chocobozzz/PeerTube/pull/4492)
 * Support RTMPS
 * UI:
   * Live:
      * Specify live type at first step
      * Improve *Permanent live* label using *Recurring live* expression
    * Clearer moderation dropdowns using section titles
    * Improve admin tables responsive
    * Add warning when trying to share a private playlist/video [#4469](https://github.com/Chocobozzz/PeerTube/pull/4469)
    * Change *Sort by views* to *Sort by recent views* [#4483](https://github.com/Chocobozzz/PeerTube/pull/4483)
    * Add *Next video to be played* in watch page if autoplay is enabled [#4497](https://github.com/Chocobozzz/PeerTube/pull/4497)
    * Add embed preview in share modal
    * Add user username in modal when deleting a user
    * Add video name in modal when blocking/removing a video
Chocobozzz's avatar
Chocobozzz committed
338
    * Improve notification settings organization
Chocobozzz's avatar
Chocobozzz committed
339
340
341
342
343
344
345
346
347
348
349
350
 * Video/live views:
   * Add ability for admins to change local buffer update interval
   * Add ability for admins to change view expiration for a specific IP
   * Introduce `viewers` attribute for live videos and reduce delay to see `viewers` update in the interface
   * Take into accounts `views` created during the live when saving replay
 * Add markdown support for playlist description [#4489](https://github.com/Chocobozzz/PeerTube/pull/4489)
 * Improve video playback when having invalid redundancy URLs
 * Load video resolutions before video starts in player settings menu
 * Optimize federation:
   * Correctly set HTTP request timeout
   * Process slow/bad targets in a dedicated queue
   * Optimize ActivityPub outbox fetch
Chocobozzz's avatar
Chocobozzz committed
351
 * Automatically update `publishedAt` attribute when re-streaming in a permanent live
Chocobozzz's avatar
Chocobozzz committed
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
 * Add ability for users to view their followers
 * Add ability for users to filter their videos per channel
 * Add ability for admins to show author display name instead of username in video miniatures [#4422](https://github.com/Chocobozzz/PeerTube/pull/4422)
 * Add ability for admins to filter logs by tags
 * Add ability for admins to configure per user channels limit [#4491](https://github.com/Chocobozzz/PeerTube/pull/4491)
 * Add available instance themes and plugins in `/about/peertube` page
 * Remove contributors list from `/about/peertube` since some contributors don't want their name to be displayed on unknown PeerTube instances
 * Add *Transcoding failed* video state [#4525](https://github.com/Chocobozzz/PeerTube/pull/4525)
 * Add ability to make a search using a URL containing query parameters
 * Optimize *channel with video* component in homepage

### Bug fixes

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


Chocobozzz's avatar
Chocobozzz committed
394
395
396
397
398
399
400
401
402
403
404
405
406
## v3.4.1

### Bug fixes

 * Fix broken PeerTube when cookies are disabled or if the embed iframe does not have appropriate options
 * Fix search by channel's handle with an handle containing the local host
 * Don't display autoblock message in upload page it is not enabled by the admin
 * Don't index `/about/peertube` page
 * Correctly handle OEmbed with an URL containing query parameters
 * More robust youtube-dl thumbnail import
 * Don't send a new video notification when using create transcoding CLI script


Chocobozzz's avatar
Chocobozzz committed
407
## v3.4.0
Chocobozzz's avatar
Chocobozzz committed
408
409
410
411

### IMPORTANT NOTES

 * **Important:** Due to a bug in ffmpeg, PeerTube is not compatible with ffmpeg 4.4. See https://github.com/Chocobozzz/PeerTube/issues/3990
Chocobozzz's avatar
Chocobozzz committed
412
 * **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
Chocobozzz's avatar
Chocobozzz committed
413
414
415
416
417
418
419
420
 * PeerTube now supports NodeJS 16

### Plugins/Themes/Embed API

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

 * Server helpers
   * **Deprecate** `videoLanguageManager.addLanguage` and `videoLanguageManager.deleteLanguage`: use `videoLanguageManager.addConstant` and `videoLanguageManager.deleteConstant` instead
frankstrater's avatar
frankstrater committed
421
422
423
424
   * **Deprecate** `videoCategoryManager.addCategory` and `videoCategoryManager.deleteCategory`: use `videoCategoryManager.addConstant` and `videoCategoryManager.deleteConstant` instead
   * **Deprecate** `videoLicenceManager.addLicence` and `videoLicenceManager.deleteLicence`: use `videoLicenceManager.addConstant` and `videoLicenceManager.deleteConstant` instead
   * **Deprecate** `videoPrivacyManager.deletePrivacy`: `videoPrivacyManager.deleteConstant` instead
   * **Deprecate** `playlistPrivacyManager.deletePlaylistPrivacy`: `playlistPrivacyManager.deleteConstant` instead
Chocobozzz's avatar
Chocobozzz committed
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
   * Introduce `.getConstantValue()`, `.getConstants()` and `.resetConstants()` for `videoLanguageManager`, `videoCategoryManager`, `videoLicenceManager`, `videoPrivacyManager` and `playlistPrivacyManager`
 * Add server plugin hooks:
   * `filter:api.overviews.videos.list.params` and `filter:api.overviews.videos.list.result`

### Custom markup API

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

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

### Maintenance

 * Remove `StandardOutput` and `StandardError` settings from systemd service template [#4300](https://github.com/Chocobozzz/PeerTube/pull/4300)
 * Use random UUIDs for video, torrent and streaming playlist files
Chocobozzz's avatar
Chocobozzz committed
440
   * Filename is regenerated when the file content changes: allows admins to use aggressive caching
Chocobozzz's avatar
Chocobozzz committed
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472

### CLI tools

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

### Features

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

### Bug fixes

 * Fix PeerTube button link in embed
 * Don't remove existing redundancies on host redundancy update
Chocobozzz's avatar
Chocobozzz committed
481
 * Remove thumbnail flash when autoplay is enabled in embed
Chocobozzz's avatar
Chocobozzz committed
482
483
484
485
486
487
488
 * Fetch data in bulk for the homepage, fixing API rate limit errors
 * Fix channel name validator consistency between client and server
 * Fix resumable upload without preview file in the body
 * Fix redundancy of big HLS files
 * Fix stats for nerd card label width
 * Fix stats for nerd card resolution
 * Fix uploading videos with empty tags in CLI tools
Chocobozzz's avatar
Chocobozzz committed
489
490
491
492
493
 * Fix HLS player on non HTTPS instances
 * Hide schedule privacy if private was removed by a plugin
 * Fix moderation embeds
 * Fix description timestamp click
 * Fix privacy descriptions
Chocobozzz's avatar
Chocobozzz committed
494
495
496
497
498
 * Safer avatar, banner and video preview
 * Fix broken delete buttons of admin federation lists [#4378](https://github.com/Chocobozzz/PeerTube/pull/4378)
 * More robust webtorrent redundancy download
 * Fix hls redundancy in pruning script
 * Fix compat' with old web browsers (Pale Moon, Safari 11, iOS 11, old webkit...))
Chocobozzz's avatar
Chocobozzz committed
499
500
501
 * Fix silent 500 after resumable upload
 * Fix HTML config injection with custom HTML/CSS
 * Fix video upload on iOS
Chocobozzz's avatar
Chocobozzz committed
502
503


Chocobozzz's avatar
Chocobozzz committed
504
## v3.3.0
Chocobozzz's avatar
Chocobozzz committed
505
506
507
508
509
510

### IMPORTANT NOTES

 * **Important:** v3.2.0 introduced a `pg_dump` export bug in the auto upgrade script. v3.2.1 fixed this bug. To upgrade from v3.2.**0**:
   * You can upgrade manually https://docs.joinpeertube.org/install-any-os?id=manually
   * Or you can apply the changes introduced in this commit: https://github.com/Chocobozzz/PeerTube/commit/86dc0b9cc9374cba7548bb613ff43d92f90570a8 and then use the auto upgrade script
Chocobozzz's avatar
Chocobozzz committed
511
512
 * **Important:** Due to a bug in ffmpeg, PeerTube is not compatible with ffmpeg 4.4. See https://github.com/Chocobozzz/PeerTube/issues/3990

Chocobozzz's avatar
Chocobozzz committed
513
514
515

### Maintenance

Chocobozzz's avatar
Chocobozzz committed
516
 * Increase max image/caption/torrent upload size to `4MB`. You need to update your nginx configuration to handle this change
Chocobozzz's avatar
Chocobozzz committed
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
 * Increase fetcher job concurrency to `3`

### Docker

 * Support log level env parameter `PEERTUBE_LOG_LEVEL` [#4149](https://github.com/Chocobozzz/PeerTube/pull/4149)

### Plugins/Themes/Embed API

 * Add client helpers:
   * `getBaseRouterRoute()` [#4153](https://github.com/Chocobozzz/PeerTube/pull/4153)
 * Add client plugin hooks (https://docs.joinpeertube.org/api-plugins):
   * `filter:left-menu.links.create.result` to add/remove left menu links
   * `filter:internal.player.videojs.options.result` to filter options sent to videojs player [#4126](https://github.com/Chocobozzz/PeerTube/pull/4126)
 * Add server plugin hooks (https://docs.joinpeertube.org/api-plugins):
   * `action:api.video-playlist-element.created`


### Features

 * :tada: Add ability to create a custom homepage using HTML, markdown and [custom HTML tags](https://docs.joinpeertube.org/api-custom-client-markup) [#4007](https://github.com/Chocobozzz/PeerTube/pull/4007)
 * :tada: Add ability to search playlists in PeerTube instance and [SepiaSearch](https://sepiasearch.org/)
 * :tada: Shorter public URLs (old URLs are still supported):
   * Handle short UUID (`8r4jooaQpHp8tw1E1qpSeYq` instead of `3caf7bea-5ceb-4959-81a0-b44d184e897c`) for playlists and videos
   * Use `/w/:id` instead of `/videos/watch/:id` and `/w/p/:id` instead of `/videos/watch/playlist/:id`
   * Use `/a/:accountName` instead of `/accounts/:accountName` and `/c/:channelName` instead of `/video-channels/:channelName` [#4009](https://github.com/Chocobozzz/PeerTube/pull/4009)
   * Provide `/@:username` page that automatically redirect to the account or channel page [#4009](https://github.com/Chocobozzz/PeerTube/pull/4009)
 * :tada: Add RTL layout support
 * Add ability to use HTML, markdown and [custom HTML tags](https://docs.joinpeertube.org/api-custom-client-markup) in instance description
 * Default to dark theme (if available) if requested by the web browser
546
 * Add ability for admins to configure minimum age required in signup page [#4010](https://github.com/Chocobozzz/PeerTube/pull/4010)
Chocobozzz's avatar
Chocobozzz committed
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
 * Use a dedicated URL for each tab in publish page
 * Add ability to prefill contact form using query parameters in URL [#4161](https://github.com/Chocobozzz/PeerTube/pull/4161)
 * Accessibility/UI:
   * Show logo in mobile view [#4141](https://github.com/Chocobozzz/PeerTube/pull/4141)
   * Improve download modal to download video subtitles
   * Better error message when trying to import a torrent containing multiple files
 * REST API errors:
   * Use [RFC 7807](https://datatracker.ietf.org/doc/html/rfc7807) format to display errors [#4143](https://github.com/Chocobozzz/PeerTube/pull/4143)
   * Improve date format error messages
   * Improve video name and tag error messages
 * Performance:
   * Use raw SQL to fetch a video from database (~ latency / 2)
   * Inject server config in HTML
   * Speed up client plugin loading
   * Cache refresh actor promises
   * Optimize activity pub video update
   * Relax some database transactions
Chocobozzz's avatar
Chocobozzz committed
564
565
   * Use an internal cache for DNS resolution.
   This should speed up federation and fix weird acquire timeouts in sequelize pool (causing slowness in the client interface)
Chocobozzz's avatar
Chocobozzz committed
566
567
568
569
570
571
572
573
574
575
576
577
578

### Bug fixes

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


Chocobozzz's avatar
Chocobozzz committed
589
590
591
592
## v3.2.1

### IMPORTANT NOTES

Chocobozzz's avatar
Typo    
Chocobozzz committed
593
 * **Important:** v3.2.0 introduced a `pg_dump` export bug in the auto upgrade script. To upgrade from v3.2.0:
Chocobozzz's avatar
Chocobozzz committed
594
   * You can upgrade manually https://docs.joinpeertube.org/install-any-os?id=manually
Chocobozzz's avatar
Typo    
Chocobozzz committed
595
   * Or you can apply the changes introduced in this commit: https://github.com/Chocobozzz/PeerTube/commit/86dc0b9cc9374cba7548bb613ff43d92f90570a8 and then use the auto upgrade script
Chocobozzz's avatar
Chocobozzz committed
596
597
598
599
600
601
602
603

### Bug fixes

 * Fix create account button style
 * Fix auto upgrade script
 * Fix live image aspect ratio in theatre mode


Chocobozzz's avatar
Chocobozzz committed
604
## v3.2.0
Chocobozzz's avatar
Chocobozzz committed
605
606
607

### IMPORTANT NOTES

Chocobozzz's avatar
Chocobozzz committed
608
 * **Important:** You must update your nginx configuration to add the `upload-resumable` endpoint: https://github.com/Chocobozzz/PeerTube/blob/develop/support/nginx/peertube#L81
609
 * **Important:** Due to a bug in ffmpeg, PeerTube is not compatible with ffmpeg 4.4. See https://github.com/Chocobozzz/PeerTube/issues/3990
Chocobozzz's avatar
Chocobozzz committed
610
611
 * **Important:** Drop NodeJS 10 support
 * PeerTube is not compatible with NodeJS 16 yet
Chocobozzz's avatar
Chocobozzz committed
612
613
614
615
616
 * By default, HLS transcoding is now enabled and webtorrent is disabled. We suggest you to reflect this change.
 See [the documentation](https://docs.joinpeertube.org/admin-configuration?id=webtorrent-transcoding-or-hls-transcoding) for more information
 * PeerTube client now displays bigger video thumbnails.
 To fix old thumbnails quality, run `regenerate-thumbnails` script after your PeerTube upgrade: https://docs.joinpeertube.org/maintain-tools?id=regenerate-thumbnailsjs

Chocobozzz's avatar
Chocobozzz committed
617
618
619
620
### Docker

 * Support SSL database env parameter [#4114](https://github.com/Chocobozzz/PeerTube/pull/4114)

Chocobozzz's avatar
Chocobozzz committed
621
622
623
624
625
### Maintenance

 * Support `X-Frame-Options` header, enabled by default in the configuration
 * Directly use `node` in [systemd template](https://github.com/Chocobozzz/PeerTube/blob/develop/support/systemd/peertube.service)
 * Check ffmpeg version at PeerTube startup
Chocobozzz's avatar
Chocobozzz committed
626
 * Add `upload-resumable` nginx endpoint: https://github.com/Chocobozzz/PeerTube/blob/develop/support/nginx/peertube#L81
Chocobozzz's avatar
Chocobozzz committed
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674

### CLI tools

 * Add `regenerate-thumbnails` script to regenerate thumbnails of local videos

### Plugins/Themes/Embed API

 * Theme:
   * `--submenuColor` becomes `--submenuBackgroundColor`
 * Support HTML placeholders for plugins. See [the documentation](https://docs.joinpeertube.org/contribute-plugins?id=html-placeholder-elements) for more information
   * `player-next` next to the PeerTube player
 * Support storing files for plugins in a dedicated directory. See [the documentation](https://docs.joinpeertube.org/contribute-plugins?id=storage) for more information
 * Transcoding:
   * Add `inputOptions` option support for transcoding profile [#3917](https://github.com/Chocobozzz/PeerTube/pull/3917)
   * Add `scaleFilter.name` option support for transcoding profile [#3917](https://github.com/Chocobozzz/PeerTube/pull/3917)
 * Plugin settings:
   * Add ability to register `html` and `select` setting
   * Add ability to hide a plugin setting depending on the form state
 * Plugin form fields (to add inputs to video form...):
   * Add ability to hide a plugin field depending on the form state using `.hidden` property
 * Add client helpers:
   * `getServerConfig()`
   * `getAuthHeader()`
 * Add server helpers:
   * `config.getServerConfig()`
   * `plugin.getBaseStaticRoute()`
   * `plugin.getBaseRouterRoute()`
   * `plugin.getDataDirectoryPath()`
   * `user.getAuthUser()`
 * Add client plugin hooks (https://docs.joinpeertube.org/api-plugins):
   * `action:modal.video-download.shown`
   * `action:video-upload.init`
   * `action:video-url-import.init`
   * `action:video-torrent-import.init`
   * `action:go-live.init`
   * `action:auth-user.logged-in` & `action:auth-user.logged-out`
   * `action:auth-user.information-loaded`
   * `action:admin-plugin-settings.init`
 * Add server plugin hooks (https://docs.joinpeertube.org/api-plugins):
   * `filter:api.download.video.allowed.result` & `filter:api.download.torrent.allowed.result` to forbid download
   * `filter:html.embed.video-playlist.allowed.result` & `filter:html.embed.video.allowed.result` to forbid embed
   * `filter:api.search.videos.local.list.params` & `filter:api.search.videos.local.list.result`
   * `filter:api.search.videos.index.list.params` & `filter:api.search.videos.index.list.result`
   * `filter:api.search.video-channels.local.list.params` & `filter:api.search.video-channels.local.list.result`
   * `filter:api.search.video-channels.index.list.params` & `filter:api.search.video-channels.index.list.result`

### Features

675
 * :tada: More robust uploads using a resumable upload endpoint [#3933](https://github.com/Chocobozzz/PeerTube/pull/3933)
Chocobozzz's avatar
Chocobozzz committed
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
 * Accessibility/UI:
   * :tada: Redesign channel and account page
   * :tada: Increase video miniature size
   * :tada: Add channel banner support
   * Use a square avatar for channels and a round avatar for accounts
   * Use account initial as default account avatar [#4002](https://github.com/Chocobozzz/PeerTube/pull/4002)
   * Prefer channel display in video miniature
   * Add *support* button in channel page
   * Set direct download as default in video download modal [#3880](https://github.com/Chocobozzz/PeerTube/pull/3880)
   * Show less information in video download modal by default [#3890](https://github.com/Chocobozzz/PeerTube/pull/3890)
   * Autofocus admin plugin search input
   * Add `1.75` playback rate to player [#3888](https://github.com/Chocobozzz/PeerTube/pull/3888)
   * Add `title` attribute to embed code [#3901](https://github.com/Chocobozzz/PeerTube/pull/3901)
   * Don't pause player when opening a modal [#3909](https://github.com/Chocobozzz/PeerTube/pull/3909)
   * Add link below the player to open the video on origin instance [#3624](https://github.com/Chocobozzz/PeerTube/issues/3624)
 * Notify admins on new available PeerTube version
 * Notify admins on new available plugin version
Chocobozzz's avatar
Chocobozzz committed
693
 * Sort channels by last uploaded videos
Chocobozzz's avatar
Chocobozzz committed
694
 * Video player:
Chocobozzz's avatar
Chocobozzz committed
695
696
697
698
699
   * Add loop toggle to context menu [#3949](https://github.com/Chocobozzz/PeerTube/pull/3949)
   * Add icons to context menu [#3955](https://github.com/Chocobozzz/PeerTube/pull/3955)
   * Add a *Previous* button in playlist watch page [#3485](https://github.com/Chocobozzz/PeerTube/pull/3485)
   * Automatically close the settings menu when clicking outside the player
   * Add "stats for nerds" panel in context menu [#3958](https://github.com/Chocobozzz/PeerTube/pull/3958)
Chocobozzz's avatar
Chocobozzz committed
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
 * Add channel and playlist stats to stats endpoint [#3747](https://github.com/Chocobozzz/PeerTube/pull/3747)
 * Support `playlistPosition=last` and negative index (`playlistPosition=-2`) URL query parameters for playlists [#3974](https://github.com/Chocobozzz/PeerTube/pull/3974)
 * My videos:
   * Add ability to sort videos (publication date, most viewed...)
   * Add ability to only display live videos
 * Automatically resume videos for non logged-in users [#3885](https://github.com/Chocobozzz/PeerTube/pull/3885)
 * Admin plugins:
   * Show a modal when upgrading a plugin to a major version
   * Display a setting button after plugin installation
 * Add ability to search live videos
 * Use bigger thumbnails for feeds
 * Parse video description markdown for Opengraph/Twitter/HTML elements
 * Open the remote interaction modal when replying to a comment if we are logged-out
 * Handle `.srt` captions with broken durations
 * Performance:
   * Player now lazy loads video captions
   * Faster admin table filters
Chocobozzz's avatar
Chocobozzz committed
717
   * Optimize feed endpoint
Chocobozzz's avatar
Chocobozzz committed
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734

### Bug fixes

 * More robust comments fetcher of remote video
 * Fix database ssl connection
 * Remove unnecessary black border above and below video in player [#3920](https://github.com/Chocobozzz/PeerTube/pull/3920)
 * Reduce tag input excessive padding [#3927](https://github.com/Chocobozzz/PeerTube/pull/3927)
 * Fix disappearing hamburger menu for narrow screens [#3929](https://github.com/Chocobozzz/PeerTube/pull/3929)
 * Fix Youtube subtitle import with some languages
 * Fix transcoding profile update in admin config
 * Fix outbox fetch with subtitled videos
 * Correctly unload a plugin on update/uninstall [#3940](https://github.com/Chocobozzz/PeerTube/pull/3940)
 * Ensure to install plugins that are supported by PeerTube
 * Fix welcome/warning modal displaying twice
 * Fix h265 video import using CLI
 * Fix context menu when watching a playlist
 * Fix transcoding job priority preventing video publication when there are many videos to transcode
Chocobozzz's avatar
Chocobozzz committed
735
736
 * Fix remote account/channel "joined at"
 * Fix CLI plugins list command options [#4055](https://github.com/Chocobozzz/PeerTube/pull/4055)
Chocobozzz's avatar
Chocobozzz committed
737
738
739
740
741
742
743
744
745
 * Fix HTTP player defaulting to audio resolution
 * Logger warning level is "warn"
 * Fix default boolean plugin setting [#4107](https://github.com/Chocobozzz/PeerTube/pull/4107)
 * Fix duplicate ffmpeg preset option for live
 * Avoid federation error when file has no torrent file
 * Fix local user auth select
 * Fix live ending banner display
 * Fix redundancy max size
 * Fix broken lives handling
Chocobozzz's avatar
Chocobozzz committed
746
747
748



Chocobozzz's avatar
Chocobozzz committed
749
## v3.1.0
Chocobozzz's avatar
Chocobozzz committed
750
751
752

### IMPORTANT NOTES

Chocobozzz's avatar
Chocobozzz committed
753
 * **Important:** Drop PostgreSQL 9.6 support
Chocobozzz's avatar
Chocobozzz committed
754
755
756
757
758
759
760
761
762
763
 * **Important:** Deprecate NodeJS 10
 * Support NodeJS 14 and 15
 * Remove ES5 module support (breaks compatibility with web browsers we didn't support)
 * PeerTube releases now contain client source maps helping client debugging (for developers and admins).
 It's the reason why the release size is bigger (we think it's worth it)
 * Remove deprecated static routes (`/static/avatars/`, `/static/previews/` and `/static/video-captions/`)
 * PeerTube now uses a unique name for thumbnails, previews and captions allowing to correctly cache these resources.
 It could break some third party clients that guessed these filenames depending on the video UUID. We'll continue this work in the future
 for video filenames, so admins can easily cache these files (using multiple reverse proxies etc)

Chocobozzz's avatar
Chocobozzz committed
764
765
766
### Maintenance

 * Fix nginx max body size configuration
Chocobozzz's avatar
Chocobozzz committed
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796

### CLI tools

 * Add script printing command to generate a resolution for a given file [#3507](https://github.com/Chocobozzz/PeerTube/pull/3507)
 * Add `--wait-interval <seconds>` option to video-import script to wait between two video imports [#3310](https://github.com/Chocobozzz/PeerTube/pull/3310)

### Plugins/Themes/Embed API

 * Add server plugin hooks (https://docs.joinpeertube.org/api-plugins):
   * `filter:api.user.me.videos.list.params` and `filter:api.user.me.videos.list.result`
 * Add server helpers:
   * `videos.loadByIdOrUUID`
 * Add server transcoding helpers (https://docs.joinpeertube.org/contribute-plugins?id=add-new-transcoding-profiles):
   * `transcodingManager.addVODProfile`
   * `transcodingManager.addVODEncoderPriority`
   * `transcodingManager.addLiveProfile`
   * `transcodingManager.addLiveEncoderPriority`

### Features

 * Transcoding:
   * 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)
   * Higher niceness priority for live transcoding compared to vod transcoding [#3577](https://github.com/Chocobozzz/PeerTube/pull/3577)
   * Allow admins to choose a transcoding profile. New transcoding profiles can be added by PeerTube plugins that can inject custom ffmpeg encoders/parameters
   * Add transcoding support for 1440p (Quad HD/QHD/WQHD) videos [#3518](https://github.com/Chocobozzz/PeerTube/pull/3518)
   * Add transcoding progress in admin transcoding jobs list
   * Use `veryfast` preset for default transcoding profile (same result size but faster)
   * Transcode audio uploads to lower configured resolutions
   * Transcode HLS playlists in a `tmp` directory (less bugs/inconsistencies)
   * Allow admins to choose the transcoding jobs concurrency
Chocobozzz's avatar
Chocobozzz committed
797
 * Support Albanian locale
Chocobozzz's avatar
Chocobozzz committed
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
 * Video upload:
   * Async torrent creation on video upload. We hope that it should fix some weird upload errors
   * Add `.m4a` audio upload support
 * Accessibility/UI:
   * Move orange admin buttons on the left side
   * Hide title to left menu toggle icon
   * Add username information in profile settings
   * Improve about page layout
   * Add refresh button in jobs list
   * Add ability to set a custom user quota
   * Rewrite prose for JavaScript disabled message [#3684](https://github.com/Chocobozzz/PeerTube/pull/3684)
 * Video import:
   * 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)
   * Don't publish imported videos before the user submitted the second step form
   * Allow admins to choose the import jobs concurrency
 * Implement *hot* and *best* trending algorithms [#3625](https://github.com/Chocobozzz/PeerTube/pull/3625) & [#3681](https://github.com/Chocobozzz/PeerTube/pull/3681)
 * Admin config:
   * Add URL fragment support in admin config page to go on the appropriate tab
   * Improve submit error message
   * Allow admins to disable ping requests logging [#3550](https://github.com/Chocobozzz/PeerTube/pull/3550)
   * Add a setting so PeerTube periodically cleans up remote AP interactions
 * Add ability for admins to update plugin auth field of a particular user
 * Support `webp` avatar upload
 * Implement remote comment/subscription
 * Register a service worker [#3464](https://github.com/Chocobozzz/PeerTube/pull/3464)
 * Add ability to remove one's avatar for account and channels [#3467](https://github.com/Chocobozzz/PeerTube/pull/3467)
 * Show first decimal for video views above a thousand [#3564](https://github.com/Chocobozzz/PeerTube/pull/3564)
 * Allow user to search through their watch history [#3576](https://github.com/Chocobozzz/PeerTube/pull/3576)
 * Allow users/visitors to search through an account's videos [#3589](https://github.com/Chocobozzz/PeerTube/pull/3589)
 * Use an HTML link to display feed url
 * Allow AP resolution for default account/channel pages (`/accounts/:name/video-channels` and `/video-channels/:name/videos`)
 * Redirect to login on 401, display 403 variant [#3632](https://github.com/Chocobozzz/PeerTube/pull/3632)
 * Performance:
   * Optimize videos list API endpoint
   * Optimize videos list views sort SQL query
   * Avoid as much as possible to process remote thumbnail
   * Proxify remote torrent requests from local clients (like we do for captions and previews)
   * Optimize rate POST endpoint
 * Tighten hotkeys definitions to not conflict with the web browser hotkeys [#3702](https://github.com/Chocobozzz/PeerTube/pull/3702)
 * Add more AP stats to stats endpoint
 * Increase jobs request timeout to 7 seconds
 * Increase broadcast request concurrency to 30

### Bug fixes

 * Fix remote subscribe input alignment
 * Fix loading bar for HTTP requests
 * Fix table header overflow
 * Disable wait transcoding checkbox instead of hiding it when uploading an incompatible video for the web
 * Fix sendmail emailer configuration
 * Add missing niceness to ffmpeg thumbnail process
 * Videos with only HLS files:
   * Fix RSS feed
   * Correctly wait transcoding before federating
   * Fix redundancy
   * Correctly remove torrents
 * Localize decimal separator in video miniatures [#3643](https://github.com/Chocobozzz/PeerTube/pull/3643)
 * Check banned status on external authentication
 * Remove all video redundancies when purging the cache
 * Fix URI search admin config update
 * Fix broken HLS playback with videos that contain an unknown channel layout
 * Fix HLS generation after file import script
 * Ensure we don't receive things from local actors
 * Try to recover from network errors in HLS player
 * Fix comments sorting dropdown z-index
 * Fix create transcoding job script depending on the transcoding configuration
 * Fix NSFW policy in my videos, account videos and channel videos pages
 * Fix complete description loading of a previous video
 * Fix video comments display with deleted comments
 * Don't override preview image on import
 * Fix Accept AP messages sending to previously accepted followers
 * Fix import script when using the instance uses the search index
 * Fix player freeze on Safari with a video that has many subtitles
 * Fix anonymous user settings
 * Fix preview upload with capitalized ext
 * Fix abuses list crash on deleted video
 * More robust channel change federation
 * Fix emptying video tags
 * Fix broken local actors that do not have a public/private key
Chocobozzz's avatar
Chocobozzz committed
877
 * Fix bad PeerTube URL for playlist embed
Chocobozzz's avatar
Chocobozzz committed
878
879
880
881
 * Live:
   * Don't update live attributes if they did not change (allowing to update live metadata even if the live has started)
   * Fix live RAM usage when ffmpeg is too slow to transcode the RTMP stream
   * Correctly load live information (description and preview) when not started
Chocobozzz's avatar
Chocobozzz committed
882
883
884
 * Fix mention notification with deleted comment
 * Fix default boolean plugin setting
 * Fix long text on modals [#3840](https://github.com/Chocobozzz/PeerTube/pull/3840)
Chocobozzz's avatar
Chocobozzz committed
885

Chocobozzz's avatar
Chocobozzz committed
886
887
888
889
## v3.0.1

### SECURITY

Chocobozzz's avatar
Chocobozzz committed
890
 * **Important:** Fix retrieving data of another user if the username contains `_` when fetching *my information*
Chocobozzz's avatar
Chocobozzz committed
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908

### Docker

 * Fix [upgrade documentation](https://docs.joinpeertube.org/install-docker?id=upgrade)
 * Add live RTMP port in docker compose

### Bug fixes

 * Fix account feed URL
 * Log RTMP server error (address already in use)
 * Fix NPM theme links in admin theme page
 * Don't reject AP actors with empty description
 * Fix twitter admin config description
 * Fix duplicate entry in job list page
 * Fix `nl-NL` broken admin config page
 * Fix bad tracker client IP when using a reverse proxy


Chocobozzz's avatar
Chocobozzz committed
909
910
911
## v3.0.0

**Since v2.4.0**
Chocobozzz's avatar
Chocobozzz committed
912
913
914

### IMPORTANT NOTES

Dirk Kelly's avatar
Dirk Kelly committed
915
 * 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)
Chocobozzz's avatar
Chocobozzz committed
916
917
918
919
920
921
922
923
924
 * Update the default configuration to remove remote video views to reduce DB size and improve performances. We recommend to admins to update [this setting](https://github.com/Chocobozzz/PeerTube/blob/develop/config/production.yaml.example#L170)
 * Remove deprecated video abuse API

### Maintenance

 * Refresh nginx configuration [#3313](https://github.com/Chocobozzz/PeerTube/pull/3313)

### Docker

Chocobozzz's avatar
Chocobozzz committed
925
926
927
928
 * Replace traefik by nginx in our docker-compose template:
   * Better consistency with our default setup (we now use the same stack)
   * Use our default nginx template enabling many optimizations
   * Update the documentation to take into account this change: https://docs.joinpeertube.org/install-docker
Chocobozzz's avatar
Chocobozzz committed
929
930
931
932
933

### Plugins/Themes/Embed API

 * 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)
 * Add `input-password` setting to plugins [#3375](https://github.com/Chocobozzz/PeerTube/issues/3375)
Chocobozzz's avatar
Chocobozzz committed
934
 * Add server plugin hooks (https://docs.joinpeertube.org/api-plugins):
Chocobozzz's avatar
Chocobozzz committed
935
936
937
938
939
   * `filter:api.accounts.videos.list.params`
   * `filter:api.accounts.videos.list.result`
   * `filter:api.video-channels.videos.list.params`
   * `filter:api.video-channels.videos.list.result`
 * Authenticate the user if possible in plugin router [#3400](https://github.com/Chocobozzz/PeerTube/pull/3400)
Chocobozzz's avatar
Chocobozzz committed
940
941
942

### Features

Chocobozzz's avatar
Chocobozzz committed
943
 * :tada: :tada: :tada: Support live streaming :tada: :tada: :tada: [#3250](https://github.com/Chocobozzz/PeerTube/pull/3250)
Chocobozzz's avatar
Chocobozzz committed
944
945
946
947
948
   * Create a live video using the PeerTube interface and start streaming using your favorite streaming software (OBS, ffmpeg...)
   * If the admin allows it, add ability for users to save a replay of their live
   * Support live transcoding in multiple resolutions
   * Admins can set a limit of created lives per user/instance and a duration limit
   * This is the first step of live streaming, we'll consolidate the feature next year
Chocobozzz's avatar
Chocobozzz committed
949
 * Support Galician locale
Chocobozzz's avatar
Chocobozzz committed
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
 * Update left menu [#3296](https://github.com/Chocobozzz/PeerTube/pull/3296)
   * Add *My settings*, *My library*, *Administration* (if admin) below the username
   * Rename section titles to *In my account*, and *On instance name* for better block scopes identification
   * Removed confusing *Account settings* and *Channel settings* from user dropdown
   * Add *My notifications* in user dropdown
 * Split account horizontal menu in two [#3296](https://github.com/Chocobozzz/PeerTube/pull/3296)
   * *My library* containing *Channels*, *Videos*, *Imports*, *Ownership changes*, *Playlists*, *Subscriptions* and *History*
   * *My settings* containing *Account settings*, *Notifications* and *Moderation* tools
 * Add page in admin to manage video comments of the instance
   * List latest comments
   * Delete comments of a specific user
   * Delete comments in bulk
 * Delete notifications related to muted accounts/instances
 * Add ability for moderators to display all videos (not yet published, private...) in channels/accounts pages
 * Support GIF avatars upload and federation [#3329](https://github.com/Chocobozzz/PeerTube/pull/3329)
 * Automatically enable auto block of new videos if the admin enables signups in the admin interface
 * Allow private syndication feed of videos from subscriptions [#3074](https://github.com/Chocobozzz/PeerTube/pull/3074)
 * Improve default account and channel avatars [#3326](https://github.com/Chocobozzz/PeerTube/pull/3326)
 * Accessibility/UI:
Chocobozzz's avatar
Chocobozzz committed
969
970
   * More explicit error messages for file uploads [#3347](https://github.com/Chocobozzz/PeerTube/pull/3347)
   * Allow to retry a failed video upload [#3347](https://github.com/Chocobozzz/PeerTube/pull/3347)
Chocobozzz's avatar
Chocobozzz committed
971
972
973
974
975
976
   * Improve jobs and logs view [#3127](https://github.com/Chocobozzz/PeerTube/pull/3127)
   * Use badges for *NSFW* and *Unfederated* labels in video block list table
   * Improved video rating popover text if the user is not logged-in [#3168](https://github.com/Chocobozzz/PeerTube/pull/3168)
   * Improve markdown-it emoji list column display [#3253](https://github.com/Chocobozzz/PeerTube/pull/3253)
   * Add help popup for choosing a licence [#3306](https://github.com/Chocobozzz/PeerTube/pull/3306)
   * Change *Upload* button to *Publish*
Chocobozzz's avatar
Chocobozzz committed
977
   * More player download/upload title details [#3394](https://github.com/Chocobozzz/PeerTube/pull/3394)
Chocobozzz's avatar
Chocobozzz committed
978
   * Create a dedicated transcoding tab in admin config
Chocobozzz's avatar
Chocobozzz committed
979
980
   * Improve 404 page
   * Improve login form [#3357](https://github.com/Chocobozzz/PeerTube/pull/3357)
Chocobozzz's avatar
Chocobozzz committed
981
982
983
   * Add a title attribute on views element to see the view counter [#3365](https://github.com/Chocobozzz/PeerTube/pull/3365)
   * Clearer titles for periods in recently added and videos from subscriptions pages
   * Select first available channel when accepting ownership change [#3382](https://github.com/Chocobozzz/PeerTube/pull/3382)
Chocobozzz's avatar
Chocobozzz committed
984
   * Hide channel registration step if default quota is 0 [#3393](https://github.com/Chocobozzz/PeerTube/pull/3393)
Chocobozzz's avatar
Chocobozzz committed
985
986
987
988
 * Add possibility to share origin URL to video if it's not local [#3201](https://github.com/Chocobozzz/PeerTube/pull/3201)
 * Render markdown in email notifications for new comments [#3255](https://github.com/Chocobozzz/PeerTube/pull/3255)
 * Add an admin setting to force ipv4 in youtube-dl [#3311](https://github.com/Chocobozzz/PeerTube/pull/3311)
 * Add ability for admins to put markdown in all fields of *About* page [#3371](https://github.com/Chocobozzz/PeerTube/pull/3371)
Chocobozzz's avatar
Chocobozzz committed
989
 * Support `activeMonth` and `activeHalfyear` in nodeinfo
Chocobozzz's avatar
Chocobozzz committed
990
991
992
993

### Bug fixes

 * Fix inability to delete a channel due to a bug in the confirm modal
Chocobozzz's avatar
Chocobozzz committed
994
 * Fix views processing for hour 0
Chocobozzz's avatar
Chocobozzz committed
995
996
997
998
999
1000
 * Fix ownership change modal accept button
 * Fix incorrect ActivityPub IDs
 * Do not transcode videos to an higher bitrate than the source
 * Fix video display of muted accounts on overview page
 * Fix transcoding errors in readonly docker containers [#3198](https://github.com/Chocobozzz/PeerTube/pull/3198)
 * Fix running another transcoding job using the CLI on a video that was already transcoded
For faster browsing, not all history is shown. View entire blame