* Add NSFW flags to videos so the publisher can add more NSFW context
* Add NSFW summary to videos, similar to content warning system so the
publisher has a free text to describe NSFW aspect of its video
* Add additional "warn" NSFW policy: the video thumbnail is not blurred
and we display a tag below the video miniature, the video player
includes the NSFW warning (with context if available) and it also
prevent autoplay
* "blur" NSFW settings inherits "warn" policy and also blur the video
thumbnail
* Add NSFW flag settings to users so they can have more granular
control about what content they want to hide, warn or display
* add user agent video stats
closes#6832
* Disable indexes, support start/end dates
* move ua parsing to client
* Openapi, inline body request, update tests
---------
Co-authored-by: Chocobozzz <me@florianbigard.com>
* WIP: Add backend functionality to store comment count per video and update on comment visibility actions
* WIP: Display image icon and comment count on video miniature component
* Probably don't need to index the comment count
* Added comment count back to mini video component
* Added basic tests
* Sort by comments, more robust comments count
---------
Co-authored-by: Chocobozzz <me@florianbigard.com>
* Separate player in a dedicated build, that we can control using vite.
We had too many issues with Angular build system and we can now
have the same build between the embed and the client. We can also
embed SVG directly in the CSS
* Upgrade p2p-media-loader to v2
* Update internal infohashes to reflect this p2p-media-loader protocol
change (they are updated at PeerTube startup)
* Minimum required iOS version is now v14
Deprecate:
* `path` and `url` of `ActorImage` (used to represent account/channel
avatars/banners) in favour of `fileUrl`
* `path` of `AvatarInfo` (used in notifications) in favour of `fileUrl`
* `captionPath` of `VideoCaption` in favour of `fileUrl`
* `storyboardPath` of `Storyboard` in favour of `fileUrl`
* feat-6167: Add autoplay setting for new users in GUI admin section
* feat-6167: Add new localization for admin GUI
* Fix user configuration not taking default auto play setting into account when creating a new user
* Revert "feat-6167: Add new localization for admin GUI"
This reverts commit fcdb05c8ea.
* Move autoplay in defaults section
---------
Co-authored-by: Chocobozzz <me@florianbigard.com>
* Split "my library" into "video space (channels, videos...)" and "my library (playlists, history...)"
* Split "admin" into "overview (users, videos...)", "moderation (abuses, blocks, registrations...)" and "settings (configuration, runners...)"
* Reorganize the header and the left menu: account settings/notifications are now in the header
* Add instance information context in the left menu
* Merge dedicated videos pages for "recently added", "trending", "local videos" into a "browse videos" page that includes quick filters
* Clean up entire CSS
* Clean CSS variables so it's easier to theme PeerTube (some new variables fallback to old variables to limit currnet themes breakages)
* Replace the current light theme into a new one (beige)
* Add a dark (brown) theme (included in PeerTube core)
* Fix accessibility issues with old light theme colors (white on orange button for example)
* Redesign the left menu, the horizontal menu, form controls and buttons, "Discover videos" page and common video filters panel
* Replace/remove/add some global icon
Allows:
* The HLS player to propose an "Audio only" resolution
* The live to output an "Audio only" resolution
* The live to ingest and output an "Audio only" stream
This feature is under a config for VOD videos and is enabled by default for lives
In the future we can imagine:
* To propose multiple audio streams for a specific video
* To ingest an audio only VOD and just output an audio only "video"
(the player would play the audio file and PeerTube would not
generate additional resolutions)
This commit introduce a new way to download videos:
* Add "/download/videos/generate/:videoId" endpoint where PeerTube can
mux an audio only and a video only file to a mp4 container
* The download client modal introduces a new default panel where the
user can choose resolutions it wants to download
* feat: config option object_storage.max_attempts
Backblaze recommends to have a high amount of attempts since they've
designed their architecture so that it will return 5xx errors to
indicate that the client should do a new attempt.
https://www.backblaze.com/blog/b2-503-500-server-error/closes#6415
* Rephrase comment
---------
Co-authored-by: Chocobozzz <me@florianbigard.com>