* 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>
* 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>
* 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
* feat: plugin support to filter email addresses
Add support for plugins to filter user email addresses.
* Add missing `totalNotDeletedComments` doc
* Styling
---------
Co-authored-by: Chocobozzz <me@florianbigard.com>
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