diff --git a/CHANGELOG.md b/CHANGELOG.md index 6d6672ad5..89bba1d03 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,166 @@ # Changelog +## v2.1.0-rc.1 + +### IMPORTANT NOTES + + * **/!\ 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: + * `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` + * **/!\ VERY IMPORTANT /!\\** In the next PeerTube release (v2.2.0), we'll add a unique index on actors usernames to fix some federation bugs. + Please check now if you have conflicts using: + * Go inside your database using `psql` and run `select "preferredUsername" from actor where "serverId" is null group by "preferredUsername" having count(*) > 0` + * If you have some results, it seems you have duplicate channels/accounts. + For every entry, you'll have to change the preferredUsername of the entry you want (so they are unique). + The updated actors could have some federations issues + * We now use Buster for the docker image, so the image name changed: + * `production-stretch` becomes `production-buster` + * `v2.x.x-stretch` becomes `v2.x.x-buster` + * Users cannot create more than 20 channels now + * We added a warning if the `videos` directory is the same than the `redundancy` one in your configuration file: it can create some bugs + +### Documentation + +We added some sections in the documentation website: + + * S3 remote storage: https://docs.joinpeertube.org/#/admin-remote-storage + * Instances redundancy: https://docs.joinpeertube.org/#/admin-following-instances + * Moderate your instance: https://docs.joinpeertube.org/#/admin-moderation + * Customize your instance (install plugins & themes): https://docs.joinpeertube.org/#/admin-customize-instance + * PeerTube logs (standard log/audit log): https://docs.joinpeertube.org/#/admin-logs + * Mute accounts/instances: https://docs.joinpeertube.org/#/use-mute + * Controlled player embed API: https://docs.joinpeertube.org/#/api-em + +### Docker + + * Sticking to one env-var management system ([@Leopere](https://github.com/Leopere)) (See https://github.com/Chocobozzz/PeerTube/pull/2247) + * Simplify Dockerfile and slim Docker image ([@Nutomic](https://github.com/nutomic)) + * Add HLS support in Docker container by using the latest Debian stable (Buster) image + +### Plugins/Themes API + + * Add checkbox and textarea as possible input types for settings ([@rigelk](https://github.com/rigelk) + * Add `isLoggedIn` helper to client plugins ([@rigelk](https://github.com/rigelk) + * Add client plugin hooks: + * `action:video-watch.player.loaded` with player instance + * `action:video-watch.video.loaded` with a videojs instance + * `action:signup.register.init` ([@rigelk](https://github.com/rigelk)) + * `filter:api.signup.registration.create.params` ([@rigelk](https://github.com/rigelk)) + * `filter:internal.video-watch.player.build-options.params` + * `filter:internal.video-watch.player.build-options.result` + * `filter:internal.common.svg-icons.get-content.params` + * `filter:internal.common.svg-icons.get-content.result` + * Add server plugins hooks: + * `action:api.user.blocked` + * `action:api.user.unblocked` + * `action:api.user.registered` + * `action:api.user.created` + * `action:api.user.deleted` + * `action:api.user.updated` + * `action:api.user.oauth2-got-token` + * Accept `.` `_` and `0-9` characters in plugin names + +### Maintenance + + * PeerTube moved translations from Zanata to Weblate. Here is the new translations website URL: https://weblate.framasoft.org/projects/peertube/ + * We now provide a JavaScript library to control a PeerTube embed: https://www.npmjs.com/package/@peertube/embed-api + * Add ability to generate HLS using `create-transcoding-job` script (see [the documentation](https://docs.joinpeertube.org/#/maintain-tools?id=create-transcoding-jobjs)) + * Update nginx template: (you need to [update manually](https://github.com/Chocobozzz/PeerTube/blob/develop/support/doc/production.md#nginx)) + * Add streaming playlists endpoint + * Add `client_body_temp_path` hint + * Relax TLS/SSL ciphers hardening to allow Android 4.4.2 to use the PeerTube instance API + * Add `maxFileSize`, `maxFiles` and `anonymizeIP` log options in configuration file + +### Features + + * :tada: Add *internal* video privacy mode. *Internal* videos are only available to other logged in users of your instance, and are not federated + * :tada: Add hyperlink video timestamps in description ([@Lesterpig](https://github.com/lesterpig) & @rigelk](https://github.com/rigelk)) + * :tada: Comments improvements: + * Support basic markdown + * Soft delete video comments instead of destroying them ([@alcalyn](https://github.com/alcalyn)) + * Add commentator name alongside fid for video comments ([@rigelk](https://github.com/rigelk)) + * Add a cancel button in the comment form ([@rigelk](https://github.com/rigelk)) + * Show number of comments under a video in watch page ([@rigelk](https://github.com/rigelk)) + * Add user moderation dropdown ([@rigelk](https://github.com/rigelk)) + * Add ability to sort comments by *total replies* or *created date* ([@rigelk](https://github.com/rigelk)) + * Add *total replies from video author* indicator ([@rigelk](https://github.com/rigelk)) + * Comment name emphasis for video author ([@rigelk](https://github.com/rigelk)) + * Add "Watch later" button in video miniature overlay ([@rigelk](https://github.com/rigelk)) + * Add ability to transcode videos in an audio only video container ([@Yetangitu](https://github.com/Yetangitu)) + * Add playlist search input in *add to playlist* dropdown ([@rigelk](https://github.com/rigelk)) + * Add search bars for a user's videos and playlist library ([@rigelk](https://github.com/rigelk)) + * Support playlists in share modal + * Better UI for a better world: + * Add play/pause bezels to the video player ([@rigelk](https://github.com/rigelk)) + * Use icons instead of buttons in watch page (like/dislike, support...) ([@rigelk](https://github.com/rigelk)) + * Improve *PeerTube* section in About page and add links to the documentation + * Improve comment tree in Watch page + * Improve dropdown box shadow ([@rigelk](https://github.com/rigelk)) + * Add channel avatar to watch view ([@rigelk](https://github.com/rigelk)) + * Improve likes-dislikes bar usability + * Alter .title-page section header style ([@rigelk](https://github.com/rigelk)) + * Enhance jobs list displaying on smaller screens ([@alcalyn](https://github.com/alcalyn)) + * Performances improvements: + * Lazy load categories, licences, languages and video/playlist privacies on client + * Only update remote actor avatar if the filename changed + * Optimize transcoding by using the lowest resolution as input file + * Speedup embed first paint + * Small videos list SQL query optimization + * Optimize local videos list SQL query + * Cache local peertube instance actor SQL result + * Cache HLS/WebTorrent InfoHash SQL result + * Improve search filters: ([@rigelk](https://github.com/rigelk)) + * Add ability to sort results + * Improve tags filter input + * Add a button to reset filters + * Improve autoplay: ([@rigelk](https://github.com/rigelk)) + * Autoplay next video switch for both user and visitors + * Add *up next* screen on autoplay + * Autoplay next video support for playlists + * Add *next* video button to the player + * Add loop setting when watching a playlist + * Add ability to search a video directly by its UUID + * Case insensitive tags search + * Add ability to disable WebTorrent (and only enable HLS) (**experimental and breaks federation with PeerTube instances < 2.1**) + * Don't seed if the client is on a cellular network in the HLS player + * Load HLS player in embed by default if enabled + * Admin panels: + * Add ability to sort by *state*, *score* and *redundancy allowed* columns in following/followers admin table + * Add ability to filter per job type in admin + * Add *Audit logs* section in admin Logs panel + * Improve Media-RSS support ([@rigelk](https://github.com/rigelk)) + * Explicit the tag limit in video form ([@bikepunk](https://github.com/bikepunk)) + * Add a warning when uploading videos using root + * Clearer video quota label in user settings + * Pause the video when the user opens a modal + * Handle basic HTML in account descriptions + * Support `m4v` videos + * Improve 4k resolution bitrate + * Add missing hotkeys documentation in the watch page + * Add a button to copy the channel handle ([@rigelk](https://github.com/rigelk)) + * Add server config to the nodeinfo metadata ([@rigelk](https://github.com/rigelk)) + * Improve notification popup interactivity ([@rigelk](https://github.com/rigelk)) + +### Bug fixes + + * Don't notify if the account in on a muted instance + * Don't leak other notified addresses in notification emails + * Allow the embed iframe to open links + * Add missing button roles for the language chooser and keyboard shortcut menu items [@MarcoZehe](https://github.com/MarcoZehe) + * Fix overflow when creating a channel + * Fix "copy magnet URI" in player + * Fix text overflow in menu + * Fix player focus + * Only display accepted followers/followings instances in about page + * Fix brackets truncation in video description + * Fix channel playlist miniatures overflow + * Fix background color on some screens + * Fix captions upload issue depending on the caption name + * Fix file download when the video is private + * Fix dropdown on video miniature for unlogged users + * Fix video support field in update form + * Fix video import having a long thumbnail url (Facebook for example) + + ## v2.0.0 **Since v1.4.1** @@ -20,7 +181,7 @@ ### Maintenance - * Add `--tmpdir`, `--first`, `--last` and `--verbose [level]` parameters to peertube-import-videos script ([Yetangitu](https://github.com/Yetangitu)) + * Add `--tmpdir`, `--first`, `--last` and `--verbose [level]` parameters to peertube-import-videos script ([@Yetangitu](https://github.com/Yetangitu)) * Improve REST API documentation ([@frankstrater](https://github.com/frankstrater)) * Improve plugin management documentation @@ -117,7 +278,7 @@ ### Maintenance - * Add `--tmpdir`, `--first`, `--last` and `--verbose [level]` parameters to peertube-import-videos script ([Yetangitu](https://github.com/Yetangitu)) + * Add `--tmpdir`, `--first`, `--last` and `--verbose [level]` parameters to peertube-import-videos script ([@Yetangitu](https://github.com/Yetangitu)) * Improve REST API documentation ([@frankstrater](https://github.com/frankstrater)) * Improve plugin management documentation @@ -804,7 +965,7 @@ and update your [.env](https://github.com/Chocobozzz/PeerTube/blob/develop/suppo * PeerTube is not in alpha anymore :p * Fix optimize old videos script * Check follow constraints when getting a video - * Fix application-config initialization in CLI tools ([Yetangitu](https://github.com/Yetangitu)) + * Fix application-config initialization in CLI tools ([@Yetangitu](https://github.com/Yetangitu)) * Fix video pixel format compatibility (using yuv420p) ([@rigelk](https://github.com/rigelk)) * Fix video `state` AP context ([tcitworld](https://github.com/tcitworld)) * Fix Linked Signature compatibility @@ -860,7 +1021,7 @@ and update your [.env](https://github.com/Chocobozzz/PeerTube/blob/develop/suppo ### Bug fixes * Check follow constraints when getting a video - * Fix application-config initialization in CLI tools ([Yetangitu](https://github.com/Yetangitu)) + * Fix application-config initialization in CLI tools ([@Yetangitu](https://github.com/Yetangitu)) * Fix video pixel format compatibility (using yuv420p) ([@rigelk](https://github.com/rigelk)) * Fix video `state` AP context ([tcitworld](https://github.com/tcitworld)) * Fix Linked Signature compatibility diff --git a/support/doc/tools.md b/support/doc/tools.md index ee0de4695..d5427b5b7 100644 --- a/support/doc/tools.md +++ b/support/doc/tools.md @@ -227,6 +227,12 @@ Or to transcode to a specific resolution: $ sudo -u peertube NODE_CONFIG_DIR=/var/www/peertube/config NODE_ENV=production npm run create-transcoding-job -- -v [videoUUID] -r [resolution] ``` +To generate an HLS playlist for a video: + +``` +$ sudo -u peertube NODE_CONFIG_DIR=/var/www/peertube/config NODE_ENV=production npm run create-transcoding-job -- --generate-hls -v [videoUUID] +``` + ### create-import-video-file-job.js You can use this script to import a video file to replace an already uploaded file or to add a new resolution to a video. PeerTube needs to be running.