* Add Scheduled Lives functionality through originallyPublishedAt
Implements #6604 by reusing the originallyPublishedAt field of isLive videos to mark "waiting for live" videos as scheduled at a set time.
* Hide scheduled lives from Browse Videos page
* Add tests for Scheduled Live videos
* Make scheduled lives use a dedicated scheduledAt field in the VideoLive table
* Plan live schedules to evolve in the future
* Use a dedicated table to store live schedules, so we can add multiple
schedules in the future and also add a title, description etc. for a
specific schedule
* Adapt REST API to use an array to store/get live schedules
* Add REST API param so it's the client choice to include or not
scheduled lives
* Export schedules info in user import/export
---------
Co-authored-by: Chocobozzz <me@florianbigard.com>
* 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>
* Use a table to list my videos for a clearer overview and so it's
easier to add bulk actions in the future
* Use a "Manage" video page with a proper URL navigation
* Add "Stats" and "Studio" in this "Manage" page
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`
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
* Comments and videos can be automatically tagged using core rules or
watched word lists
* These tags can be used to automatically filter videos and comments
* Introduce a new video comment policy where comments must be approved
first
* Comments may have to be approved if the user auto block them using
core rules or watched word lists
* Implement FEP-5624 to federate reply control policies