Commit Graph
112 Commits
Author SHA1 Message Date
Chocobozzz cce19088a5 Fix key namespace for empty arrays 2026-07-13 14:01:17 +02:00
Chocobozzz dab0422bf7 Fix invalid accept header 2026-07-13 14:01:17 +02:00
Chocobozzz c5bdcbdc56 Update client dependencies 2026-05-06 08:56:35 +02:00
Chocobozzz c00613f0ac Podcast feed support for playlists 2026-04-17 09:18:36 +02:00
Chocobozzz d3131da696 Fix akismet tests 2026-04-16 14:11:18 +02:00
Chocobozzz 01602019b0 Send periodically Follows
Preventing stale follows
2026-04-16 09:05:16 +02:00
Chocobozzz 74f0f4e035 Add mute filter to comment list 2026-04-15 15:09:55 +02:00
Chocobozzz 79e80c4780 Filter out non text languages for captions 2026-04-15 11:38:17 +02:00
Chocobozzz e95084e42c Add tests for akismet plugin 0.2.0 2026-04-14 10:07:26 +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 4912c3025b Add ability to list ownership changes of a video 2026-04-01 17:34:23 +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 8d74df4421 Fix tests 2026-03-27 09:48:51 +01:00
Chocobozzz 002ee2452d Upgrade typescript to v6 2026-03-26 16:36:25 +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
Chocobozzz cc13efbf92 Add offensive test for video filename check 2026-03-24 16:10:59 +01:00
Chocobozzz 4ce5b37c14 Add quick filter for registration requests 2026-03-24 10:41:18 +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
Chocobozzz d7b2cd9e66 Add ability to filter users by role 2026-03-19 14:53:56 +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 592abac3df Migrate i18next parser 2026-02-25 08:45:39 +01:00
Chocobozzz 3a87271e58 Update all project dependencies 2026-02-24 15:14:26 +01:00
Chocobozzz 8101e30188 Fix tests 2026-02-24 11:43:10 +01:00
Chocobozzz 4710ffb0ec Add video embed domain privacy 2026-02-23 09:39:55 +01:00
Chocobozzz 7dc7235386 Fix video file accept plugin filter metadata 2026-02-18 10:32:19 +01:00
Chocobozzz 675310a5fa Take into account channel owner video quota
And not uploader video quota, because editors can upload content to a
channel of another account
2026-02-18 09:27:56 +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 006bbf2b52 Improve SEO
* Add more JSONLD tags for SEO
 * Introduce EXPERIMENTAL_SITEMAP_VIDEO_URL
 * Add "Load more" button for better SEO
2026-01-14 15:43:17 +01:00
Chocobozzz 08cd172e3a Fix tests build 2025-12-18 08:59:44 +01:00
Chocobozzz f4012a9383 Support path style requests 2025-12-18 08:45:53 +01:00
Chocobozzz 60f92d55de Add new feature modal info 2025-11-20 16:06:41 +01:00
Chocobozzz db1dfc6756 Painfully upgrade dependencies 2025-11-14 14:52:17 +01:00
Shalabh AgarwalandChocobozzz 9ed63f5e37 feat: add new video password api (#7044)
* add new video password api

* replace patch with post request

* Styling

---------

Co-authored-by: Chocobozzz <me@florianbigard.com>
2025-11-13 14:40:44 +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 afd913530c Fix mention redirection 2025-10-28 16:00:26 +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 74e97347bb Add ability to customize player settings 2025-09-12 08:54:50 +02:00
Chocobozzz 906b5f7f2c Migrate to pnpm 2025-09-12 08:43:41 +02:00
dd52e8b89e Feature for runners - handle storyboard-generation-job (#7191)
* Implement processing storyboards by runners

* Fixed storyboard generation by runners

* use common code patterns

* fix import

* improve debug logging for storyboard generation

* config option for storyboard processing with remote-runners

* refactor repetitive pattern

* refactor storyboard related code to share common utlities

* Fix test

* Fix storyboard generation config logic

* Improve logging

* Added tests for storyboard generation with runners

* Refactor PR

---------

Co-authored-by: ilfarpro <ilfarpro@ya.ru>
Co-authored-by: Chocobozzz <me@florianbigard.com>
2025-09-10 11:50:06 +02:00
Chocobozzz 83f74169da Add official openid plugin tests 2025-08-08 14:16:49 +02:00
Bojidar MarinovandChocobozzz 8c9b4abe45 Add Scheduled Lives functionality (#7144)
* 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>
2025-08-01 15:06:27 +02:00
Chocobozzz 57caf25611 Add ability to list and revoke token sessions 2025-07-30 11:42:49 +02:00
Chocobozzz 3e1cdb9fa2 Add runner version info 2025-07-29 10:30:33 +02:00