* Prepare ability to transfer channels too
* Cleanup object and components names
* Correctly separate video ownership changes from other
* Add bulk actions to ownership changes
* add filter:api.user.signup.requires-approval.result
closes#6691
* update test
* signup: dont mark /registrations/request as deprecated
* fix broken tests
* changes after review
* Add offensive test for video filename check
* PR fixes
---------
Co-authored-by: Chocobozzz <me@florianbigard.com>
* Add configurable default for live replay save option
Allow admins to configure the default state of the 'automatically
publish a replay when your live ends' checkbox via a new
live.save_replay_by_default setting (defaults to false).
Fixes#6304
* refactor(config): move live replay default to defaults section
Relocate `live.save_replay_by_default` to `defaults.live.save_replay`
to better align with the configuration convention where default UI
states are grouped under the `defaults` key.
This change updates:
- Server configuration loading and exposure
- TypeScript models (ServerConfig, CustomConfig)
- Admin configuration interface
- Live creation form default value handling
Refs: #6304
* test(config): update tests for live replay default refactor
Update configuration tests to verify defaults.live.saveReplay instead of the old live.saveReplayByDefault key.
Also update config/test.yaml to match the new configuration structure.
* fix(config): update video imports test and config validator
* fixed tests
* Fix merge
* Fix default save replay in server
---------
Co-authored-by: Chocobozzz <me@florianbigard.com>
* Add pop-out player button
* Use native PiP and hide popout fallback
* Revert Live DVR changes
* Add Live DVR with 2h window
* Add Live DVR flag in video watch player options
* Fix Live DVR seekbar and HLS options
* Show PiP button on medium player sizes
* Force PiP button visible in embed
* Disable context menu in embeds
* Match PiP icon size to other controls
* Center popout icon mask
* Center PiP control
* Add context menu flag to embed customizations
* Revert "Center PiP control"
This reverts commit aede705f3f.
* Revert "Center popout icon mask"
This reverts commit 0770471caa.
* Revert "Match PiP icon size to other controls"
This reverts commit cef0b49a02.
* Revert "Force PiP button visible in embed"
This reverts commit 1379d7d0c9.
* Revert "Show PiP button on medium player sizes"
This reverts commit a183536ca7.
* Revert object storage path-style config
* Add configurable per-live DVR window
* Remove force_path_style config dependency
* Fix DVR window validator typing
* Include DVR seconds in live form patch
* Fix logout token revocation race
* Stabilize video import and transcription tests
* Increase video transcription replacement test timeouts
* Revert "Remove force_path_style config dependency"
This reverts commit cac22d193f.
* Revert "Add pop-out player button"
This reverts commit 28ba5f5bb1.
* test(live): add DVR validation coverage
* config: define object_storage.force_path_style default
* style(lint): fix max-len in live DVR files
* style(client): fix lint in live DVR types
* feat(live): switch DVR window to milliseconds and simplify player toggle
* Live DVR adaptations
---------
Co-authored-by: DJBlu <djblu2003.dk@gmail.com>
Co-authored-by: root <root@ubuntu.home.lan>
Co-authored-by: root <root@peertube.home.lan>
Co-authored-by: Chocobozzz <me@florianbigard.com>
* An editor can now move a video it can manage from and to a channel it
can manage (owner/editor)
* A moderator can update a video to any local channel
* An editor can transfer ownership of a video it can manage
* Prevent changing video channel owner if it has a ownership change
request
* Move to sharp library to improve image manipulation performance and
support more image formats
* Move video previews in thumbnails directory
* Deprecate lazy static previews endpoint
* Plugin `getFiles()` API now includes a `width`/`height` attribute
* Deprecate previewfile for video publication/update.
Use `thumbnailfile` instead
* Deprecate `thumbnailPath` and `previewPath` of `Video` in favour of
`thumbnails`
* Deprecate `thumbnailPath` of `VideoPlaylist` in favour of
`thumbnails`
* Replace `torrentPath` by `torrentFilename` and `torrentStream` for
remote torrents for `filter:api.download.torrent.allowed.result`
plugin filter
* Remove useless `fileUrl` from `UserExport` and `VideoSource`
* Remove remote captions where we don't have a valid URL
* cache directory is not deleted on each run anymore
* Add permanent cache for video captions and storyboards
* Remove `cache` admin configuration, use house-keeping script instead
Reduce youtube-dl calls to reduce rate limiting
Handle cases where the video is not available/doesn't exist
Handle lives that are still being post-processed
Stop sync on get info failure to retry next time
* Do not wait all transcoding tasks to publish the video
* Do not wait all transcoding tasks to move the video in object storage
* Lower priority on low video resolutions to not block video
publication if they are many uploads at the same time
* Parallelize tasks if they can
For now only an "editor" role is available for collaborators. An editor
has the same right as the channel owner but cannot:
* Delete the channel
* Invite collaborators
* Transfer ownership of a video
* Transfer ownership of a channel (feature not developed yet)
* Invite a new collaborator
* Remove another collaborator
The owner of a channel can invite another local account to be an editor
of the channel. The editor can accept or reject the invitation.
Moved transfer ownership of a video in the "Manage video" page.
Updated the video channel update page to a "Manage" page, like we have
for the video to add an "Editors" sub section, allowing the owner of
the channel to manage channel editors.
Refactored the SQL query classes and added more raw SQL queries for
models that list entities depending on channel collaboration status.
Updated server tests to check editors can manage or cannot manage
channel entities.