Commit Graph
151 Commits
Author SHA1 Message Date
Chocobozzz c82dd858e8 Add toot:discoverable support 2026-06-11 10:00:46 +02:00
Chocobozzz 4e971d1757 Fix concurrency issue with same torrent filename 2026-05-15 13:26:31 +02:00
Chocobozzz 691f0b11cf Fix getData typings 2026-04-21 09:02:37 +02:00
Chocobozzz 8354c9610a Add storage.deleteData plugin helper 2026-04-17 14:32:04 +02:00
Chocobozzz c00613f0ac Podcast feed support for playlists 2026-04-17 09:18:36 +02:00
Chocobozzz 4ca3d9ecda Add mute features to videos list 2026-04-15 16:30:06 +02:00
Chocobozzz 1fc9f71227 Add mute features to comments page 2026-04-14 16:01:44 +02:00
Chocobozzz e95084e42c Add tests for akismet plugin 0.2.0 2026-04-14 10:07:26 +02:00
Chocobozzz ca980134ea Add filter:notifier.notification.enabled.result 2026-04-13 10:59:19 +02:00
Chocobozzz 4c3be4f116 Remove channels ownership changes list
Prefer the notification quick actions system, to not overload the UI and
break menu consistency
2026-04-10 14:39:43 +02:00
Chocobozzz 3faff0d7a6 Add ability to transfer channel ownership 2026-04-10 14:32:04 +02:00
Chocobozzz baa297cff4 Cleanup ownership changes
* Prepare ability to transfer channels too
 * Cleanup object and components names
 * Correctly separate video ownership changes from other
 * Add bulk actions to ownership changes
2026-04-03 14:47:05 +02:00
Chocobozzz e594e80c44 Add notifications to video ownership changes 2026-04-02 15:15:01 +02:00
Chocobozzz 868cde3629 Cancel a ownership change request in manage page 2026-04-02 11:22:32 +02:00
Chocobozzz 39c06b8477 Add remove segments support for video studio
Use signal forms that are simpler to use, especially when we need to
validate multiple controls
2026-04-01 11:12:42 +02:00
Chocobozzz c2e976d08b Add state filter for videos 2026-03-27 16:41:59 +01:00
Chocobozzz 9e562b9437 oxlint migration for server 2026-03-26 15:15:36 +01:00
kontrollantenandChocobozzz 5a9c09be7f add filter:api.user.signup.requires-approval.result (#7446)
* 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>
2026-03-24 16:25:38 +01:00
Moby Mikes 💻andChocobozzz 150962ffcf Add configurable default for live replay save option (#7414)
* 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>
2026-03-24 15:52:05 +01:00
Chocobozzz 4c746967c3 Support indexable fields
All our actors are public and public videos are automatically indexed
2026-03-24 14:15:23 +01:00
Chocobozzz 05f2889381 Add tag filters in my videos 2026-03-24 11:42:30 +01:00
Chocobozzz c4746d54b9 Improve job filters UX
Allow to click on tags to automatically filter by type/state
2026-03-24 10:17:04 +01:00
4d54ea4587 Live dvr (#7396)
* 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>
2026-03-20 16:19:13 +01:00
Sébastien NOBILIandChocobozzz c9855027ec Feat: video download stats (#7437)
* register job

* track downloads & display total count on stats page

* display download timeseries graph

* automated tests

* diff cleanup

* add downloads to platform stats

* remove extra semicolons

* fix lint issues

* set DB migration target

* move download stats to VideoViewModel

* rename videoView to videoStats

* lint fixes

* fix failing tests

* track remote downloads

* lint fixes

* Rename view directory to stat

* Simplify metric typing

* Do not display downloads in table

* Simplify downloads process

* Create stats tests directory

* Simplify download stats

* Fix stats fallback

* Fix redundancy

* Prevent useless log

---------

Co-authored-by: Chocobozzz <me@florianbigard.com>
2026-03-17 13:03:23 +01:00
Chocobozzz 9204d042b9 Add config to generate podcast audio file 2026-02-23 16:31:34 +01:00
Chocobozzz 4710ffb0ec Add video embed domain privacy 2026-02-23 09:39:55 +01:00
Chocobozzz 34dfb2aff4 Generate more video thumbnail sizes 2026-02-19 15:11:25 +01:00
Chocobozzz 91680e8943 Fix Lemmy compatibility 2026-02-17 14:40:57 +01:00
Chocobozzz 163fef0d50 Support changing video channel owner
* 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
2026-02-17 11:31:49 +01:00
Chocobozzz a1675057fa Remove "copyrighted"
"Copyrighted" suggests videos with another option set aren't protected by copyright
2026-02-13 14:23:40 +01:00
Chocobozzz 526f1c6df5 Rebuild thumbnail and media file architecture
* 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
2026-02-13 06:20:56 +01:00
Chocobozzz 73b6a95600 Optimize and more reliable channel sync
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
2026-02-04 10:54:17 +01:00
Chocobozzz 0920f5fa82 Optimize transcoding job queue
* 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
2026-01-30 16:10:16 +01:00
Chocobozzz ba7c0e6735 Support svg logos 2026-01-30 14:03:36 +01:00
Chocobozzz 6ecd9823cf Add "on primary" color
And force email button color
2026-01-27 10:29:31 +01:00
Chocobozzz db5d1358e3 Better too long password error UX 2025-12-30 20:56:06 +01:00
Chocobozzz 551fca5555 Merge branch 'release/v8.0.x' into develop 2025-12-23 13:46:29 +01:00
Chocobozzz 258efc247c Fix login URL in email 2025-12-23 13:45:46 +01:00
kontrollanten 4b1922aad9 add filter:feed.videos.list.result hook
closes #7341
2025-12-22 16:20:46 +01:00
Chocobozzz 60f92d55de Add new feature modal info 2025-11-20 16:06:41 +01:00
Chocobozzz 3ddddc1b72 Remove deprecated fields
* Remove filename from VideoSource
 * Remove commentsEnabled from REST API & ActivityPub
 * Remove redundancies.files from VideoRedundancy
 * Correctly deprecate captionPath from VideoCaption
 * Correctly deprecate path from ActorImage
 * Correctly deprecate storyboardPath from Storyboard
2025-11-18 07:04:15 +01:00
Chocobozzz d68dfe349a Remove some FIXME 2025-11-17 10:10:49 +01:00
Chocobozzz e30e5c9f7b Add ability to retry video imports
Channel syncs also retry imports
2025-11-12 14:35:26 +01:00
Chocobozzz 09d90b8152 Add channel activities feature 2025-10-30 16:25:04 +01:00
Chocobozzz 381f8e3b3a Add channel collaborators feature
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.
2025-10-28 14:44:44 +01:00
Chocobozzz 4fd4c91ec1 Add ability to cleanup views on local videos too 2025-10-10 11:52:33 +02:00
Chocobozzz 5c1cbcfcb1 Fix model imports 2025-09-12 10:26:59 +02:00
Chocobozzz 74e97347bb Add ability to customize player settings 2025-09-12 08:54:50 +02:00
Shalabh AgarwalandChocobozzz efa32646ed feat: add user password constraints (#6945)
* feat: add user password length constraints

* add password length changes in locale files

* revert maximum password length changes

* add tests

* fix lint

* fix lint and test

* fix tests

* Revert "add password length changes in locale files"

This reverts commit eaaf63ba7c.

* Update PR

---------

Co-authored-by: Chocobozzz <me@florianbigard.com>
2025-09-10 16:51:04 +02:00
諏訪子 ef28ba3038 add x link
Add missing code
2025-09-10 11:51:58 +02:00