Commit Graph

291 Commits

Author SHA1 Message Date
Chocobozzz 8d22b9100b
Fix import tests 2024-04-29 08:01:57 +02:00
Chocobozzz afb28272f5
Check video rights before providing AP information 2024-04-26 10:09:38 +02:00
Chocobozzz b8635c2606
Compact json-ld AP objects 2024-04-25 11:21:55 +02:00
Chocobozzz bce0f2f11b
Fix total video file size 2024-04-22 11:48:05 +02:00
Chocobozzz 6f3deaee2e
Fix import tests 2024-04-11 08:13:35 +02:00
Chocobozzz 3bfecf4890
Update runner version 2024-04-04 16:33:06 +02:00
Chocobozzz 5cb3e6a0b8
Use sessionId instead of IP to identify viewer
Breaking: YAML config `ip_view_expiration` is renamed `view_expiration`
Breaking: Views are taken into account after 10 seconds instead of 30
seconds (can be changed in YAML config)

Purpose of this commit is to get closer to other video platforms where
some platforms count views on play (mux, vimeo) or others use a very low
delay (instagram, tiktok)

We also want to improve the viewer identification, where we no longer
use the IP but the `sessionId` generated by the web browser. Multiple
viewers behind a NAT can now be able to be identified as independent
viewers (this method is also used by vimeo or mux)
2024-04-04 16:27:40 +02:00
kontrollanten 6f6abcabfb
feat(plugins): add peertubeHelpers.loadByIdOrUUIDWithFiles (#6302) 2024-04-04 08:20:09 +02:00
kontrollanten cd42491cf0
feat: add support for sub routes under /my-account (#6218)
* feat: add support for sub routes under /my-account

closes #6217

* feat(plugins/client-routes): page titles

Add support for adding custom page titles in client routes.

* fix(client/PluginPages): reload component upon URL change

* Styling

* docs(plugins): update registerClientRoute

---------

Co-authored-by: Chocobozzz <me@florianbigard.com>
2024-04-04 08:17:59 +02:00
Chocobozzz 4b18b0880d
Fix tests 2024-04-03 16:40:43 +02:00
Chocobozzz 7816fa4d48
Fix lint 2024-04-03 16:16:06 +02:00
Chocobozzz 61fec4e4ef
Better seconds to time formatting 2024-04-03 14:50:30 +02:00
Chocobozzz 9b70c8e7e8
Do not take into account empty view sections 2024-04-03 14:25:21 +02:00
kontrollanten 1b323f4f65 feat(plugins): add req.rawBody for routes
Stripe webhooks endpoints requires to read the raw request body.
https://docs.stripe.com/webhooks#verify-webhook-signatures-with-official-libraries
2024-04-02 11:06:34 +02:00
Chocobozzz 107e6e73a6
Fix import tests 2024-04-02 11:05:00 +02:00
Chocobozzz 7eb0189b73
Fix config test with parallel tests 2024-03-28 10:03:47 +01:00
Chocobozzz 81963e0c6e
Simplify config test 2024-03-28 09:20:23 +01:00
Chocobozzz 817f754c22
Remove difficult to maintain config update method 2024-03-28 09:10:36 +01:00
Chocobozzz 11521f231f
Generate small versions of banners too 2024-03-27 15:08:09 +01:00
kontrollanten aaa5acbb0c feat(plugins): add filter:api.user.me.get.result
relates to #6219
2024-03-27 13:32:53 +01:00
Chocobozzz ca889dbbb8
Ensure time to int returns an integer 2024-03-27 09:04:34 +01:00
Chocobozzz a246c44504
Support tr locale 2024-03-26 14:25:12 +01:00
Chocobozzz a159b8b517
Add ability to list and delete original file
In admin
2024-03-26 14:10:02 +01:00
Chocobozzz 058ef6912c
Remove deprecated transcoding type 2024-03-25 15:17:02 +01:00
Chocobozzz da63a030f3
Also add "allow-forms" to oembed 2024-03-19 15:29:32 +01:00
Chocobozzz 302fd93c49
Disable http metrics by default
Can lead to performance issues on prometheus side and peertube side if
many different URLs have been called on peertube side (google indexation
for example)
2024-03-19 14:52:41 +01:00
Chocobozzz c09e27d77a
Optimize transcoding profile building 2024-03-19 09:53:59 +01:00
Chocobozzz 4e98d843da
Success on update "not in processing state" error
Or the job is never "ended"
2024-03-19 09:26:40 +01:00
Chocobozzz 798d8d37ee
Use more specific name 2024-03-18 11:28:43 +01:00
soonsouth 01af40a55f chore: fix some comments
Signed-off-by: soonsouth <cuibuwei@163.com>
2024-03-18 08:12:12 +01:00
chagai95 e57c3024f4
Add config option to keep original video file (basic first version) (#6157)
* testing not removing old file and adding columb to db

* implement feature

* remove unnecessary config changes

* use only keptOriginalFileName, change keptOriginalFileName to keptOriginalFilename for consistency with with videoFile table, slight refactor with basename()

* save original video files to dedicated directory original-video-files

* begin implementing object storage (bucket) support

---------

Co-authored-by: chagai.friedlander <chagai.friedlander@fairkom.eu>
Co-authored-by: Ian <ian.kraft@hotmail.com>
Co-authored-by: Chocobozzz <me@florianbigard.com>
2024-03-15 15:47:18 +01:00
Chocobozzz 0f67adf98a
Fix live state on user archive import 2024-03-12 11:11:53 +01:00
Chocobozzz 46950fbcc8
Fix encoder after transcoding profile deletion 2024-03-12 10:44:20 +01:00
Chocobozzz 4e29a6f7ba
Improve storyboard grid algorithm
Try to reduce missing sprites at the end of the video
2024-03-12 06:29:56 +01:00
Chocobozzz 888b142e2e
Fix storyboard generation with some videos
Where `t` variable is never an integer due to our setpts formula
2024-03-11 15:40:14 +01:00
Chocobozzz 4596ec2a9f
Add ability to sort videos by file size 2024-03-08 15:15:03 +01:00
Chocobozzz 10e78bb778
Remove twitter whitelisted option
It doesn't seem to be required
2024-03-08 10:54:29 +01:00
Chocobozzz 98781f353d
Add user history in import/export 2024-02-28 16:48:59 +01:00
Chocobozzz 7be401ac76
Fix playlist elements merge on import 2024-02-28 15:55:37 +01:00
Chocobozzz f6fb7cd3e9
Ensure server actor AP object has avatars 2024-02-28 14:47:39 +01:00
Chocobozzz 4434e78c56
Fix tests 2024-02-28 10:00:01 +01:00
Chocobozzz a4b497c2a9
Add postingRestrictedToMods to channels AP objects
See https://github.com/LemmyNet/lemmy/issues/3837
2024-02-27 15:46:38 +01:00
Chocobozzz b6b1aaa56f
Add video aspect ratio in server 2024-02-27 15:24:34 +01:00
Chocobozzz 68d006b6fc
Add config to disable storing lives in s3 2024-02-26 16:14:40 +01:00
Chocobozzz 109e93c139
Generate 600x600 and 1500x1500 avatars 2024-02-26 15:00:22 +01:00
Chocobozzz fb2dc40858
Improve generated image quality 2024-02-26 11:33:17 +01:00
Chocobozzz 1abf74e464
Try to re-fix tests 2024-02-26 09:36:11 +01:00
Chocobozzz e2b2c46339
Fix tests 2024-02-23 16:29:52 +01:00
Chocobozzz 094accd873
Fix CI 2024-02-23 15:07:09 +01:00
Chocobozzz 0165786f65
Add total moderators/admins in stats 2024-02-23 15:04:18 +01:00
Chocobozzz bb7cb0d2fd
Add ability to set avatar to instance 2024-02-23 14:27:11 +01:00
Chocobozzz db06d13c67
Fix typescript tests 2024-02-23 08:33:01 +01:00
Chocobozzz 9e2700b89d
Fix lint 2024-02-22 10:32:28 +01:00
Chocobozzz 0648d57870
Add total video file size column in users list 2024-02-21 15:28:38 +01:00
Chocobozzz db69d9491e
Add abuse and registration requests stats 2024-02-21 14:57:20 +01:00
Chocobozzz 00ee54329a Improve a little bit completeVideoCheck 2024-02-21 13:49:08 +01:00
Chocobozzz f7e4f62870 Refactor uploadx middlewares 2024-02-21 13:49:08 +01:00
Chocobozzz 7986ab8452 Support chapter import/export 2024-02-21 13:49:08 +01:00
Chocobozzz 967702d6c7 Faster user import/export tests 2024-02-21 13:49:08 +01:00
Chocobozzz 02596be702 Fix api rate limit 2024-02-21 13:49:08 +01:00
Chocobozzz 3cac8a756f Fix lint, tests and styling 2024-02-21 13:49:08 +01:00
Chocobozzz f6af3f701c Add user import/export tests 2024-02-21 13:49:08 +01:00
Chocobozzz 8573e5a80a Implement user import/export in server 2024-02-21 13:49:08 +01:00
Chocobozzz cbfe10a43e
Fix updating instance banner 2024-02-20 14:33:10 +01:00
Chocobozzz 7ee0efb57a
Add ability to set a banner to the instance 2024-02-20 11:33:10 +01:00
Chocobozzz 7b86b9b458
Stop caching upload after successful upload
Just forbid sending 2 concurrent requests, but let the user decide if
it wants to upload the same video multiple times
2024-02-19 14:43:19 +01:00
Chocobozzz 48f1d4b186
More robust channel sync 2024-02-16 10:14:12 +01:00
Lety Does Stuff c4b039886e
Fix the escapeAttribute function using HTML entities instead of backslash escapes (#6206)
* Fix the escapeAttribute function using HTML entities instead of backslash escapes

* Fix tests

---------

Co-authored-by: Chocobozzz <me@florianbigard.com>
2024-02-15 14:39:59 +01:00
Chocobozzz ba3820965f
Blocked users must not be able to live stream 2024-02-15 14:27:52 +01:00
Chocobozzz 5f09fde24e
Fix tests 2024-02-15 14:14:50 +01:00
Chocobozzz a012d6c2a9
Add notification on subscription live stream 2024-02-15 14:06:25 +01:00
Chocobozzz 11458a747c
Fix CI tests 2024-02-12 11:22:51 +01:00
Chocobozzz 0d89f639f6
Merge branch 'release/6.0.0' into develop 2024-01-18 09:48:26 +01:00
Chocobozzz 12ea8f0dd1
Fix nginx serving private hls files 2024-01-18 09:09:31 +01:00
Chocobozzz 4d8018de68
Fix tests
New index that uses meilisearch has a sort that can be influenced, but
still tries to sort by exact match first
2024-01-15 11:30:49 +01:00
Chocobozzz 2230b1571f
Merge branch 'release/6.0.0' into develop 2024-01-04 10:37:01 +01:00
Chocobozzz 04a0ed13b4
Also update playlist URLs 2024-01-04 09:21:56 +01:00
Chocobozzz 0a53a54ed7
Merge branch 'release/6.0.0' into develop 2024-01-03 15:26:22 +01:00
Chocobozzz 3608eb4f1e
Fix input mask with 10h+ videos 2024-01-03 11:10:41 +01:00
Chocobozzz 4cbea51255
Add subdivision to viewer stats 2023-12-28 09:56:05 +01:00
Chocobozzz 4437ae0fd3
Add FEP-2677 tests 2023-12-27 16:18:18 +01:00
Chocobozzz 4f3fb47884
Implement FEP-2677
Better way to find and follow remote instance actor
2023-12-27 16:01:52 +01:00
Chocobozzz b9077c83fc
Add ability to disable storyboards 2023-12-27 10:39:09 +01:00
Chocobozzz 640bc1a0cd
Current time cannot be null 2023-12-20 16:07:48 +01:00
Chocobozzz 66776b6a25
Merge branch 'release/6.0.0' into develop 2023-12-20 14:07:47 +01:00
Chocobozzz b5ae080f32
Fix tests 2023-12-20 13:51:01 +01:00
Chocobozzz b6b50bf0b4
Use new plugin index sort and recommended tags 2023-12-20 10:55:47 +01:00
Chocobozzz fe37e5232b
Add ability to customize views/playback interval 2023-12-20 10:55:47 +01:00
Chocobozzz b4f4432459
Viewers federation protocol v2
More efficient than the current one where instance is not fast enough to
send all viewers if a video becomes popular

The new protocol can be enabled by setting env
USE_VIEWERS_FEDERATION_V2='true'

Introduce a result field in View activity that contains the number of
viewers. This field is used by the origin instance to send the total
viewers on the video to remote instances. The difference with the
current protocol is that we don't have to send viewers individually to
remote instances.

There are 4 cases:
 * View activity from federation on Remote Video -> instance replaces
   all current viewers by a new viewer that contains the result counter
 * View activity from federation on Local Video -> instance adds the
   viewer without considering the result counter
 * Local view on Remote Video -> instance adds the viewer and send it to
   the origin instance
 * Local view on Local Video -> instance adds the viewer

Periodically PeerTube cleanups expired viewers. On local videos, the
instance sends to remote instances a View activity with the result
counter so they can update their viewers counter for that particular
video
2023-12-20 10:55:47 +01:00
Chocobozzz dbdc20e673
Optimize views endpoint
Lazy write data in redis
2023-12-20 10:55:47 +01:00
Chocobozzz 9e0efe45ff
Improve tests 2023-12-20 10:55:28 +01:00
Chocobozzz 7b23f24b24
Fix thumbnail generation when on bad input seek 2023-12-19 08:23:38 +01:00
Chocobozzz 1e121c9898
Fix invalid state change notif of remote live 2023-12-15 15:58:07 +01:00
Chocobozzz af8a47125f
Better isNewVideo variable/functions name 2023-12-15 14:52:12 +01:00
Chocobozzz 675f219639
Fix webtorrent crash
See https://github.com/Chocobozzz/PeerTube/issues/6109
2023-12-15 10:18:20 +01:00
Chocobozzz ea685879bb
Fix time to int parsing 2023-12-15 09:54:08 +01:00
Chocobozzz edc695263f
Escape quotes for html attributes 2023-12-14 11:33:08 +01:00
Chocobozzz b39214cb13
Fix tests 2023-12-08 09:34:35 +01:00
Chocobozzz 64d9b7abd2
Fix client tests 2023-12-08 09:13:12 +01:00
Chocobozzz 8a22cfd628
Fix client URLs for channels and accounts 2023-12-08 08:57:14 +01:00
Chocobozzz 4fd8d34175
Ensure user is owned by plugin before updating it 2023-12-06 08:43:19 +01:00
Chocobozzz f51bafb3fa
Fix chapters tests 2023-11-29 15:01:46 +01:00
Chocobozzz f9e710e7d4
Fix chapters import 2023-11-29 14:12:13 +01:00
Chocobozzz 8bb42bda52
Fix search index tests 2023-11-28 08:31:47 +01:00
Chocobozzz a0606360a7
Return 400 if filter query is still there 2023-11-28 08:08:57 +01:00
Chocobozzz f3e9a38d7e
Fix tests build 2023-11-24 14:51:31 +01:00
Chocobozzz d4f21493e1
Respect "transcode original resolution" for runner 2023-11-17 16:25:11 +01:00
Chocobozzz d8f846c69d
Add 'main' field to peertube types 2023-11-13 10:30:39 +01:00
Chocobozzz 3da9fbbe39
Adapt storyboard sprite ratio 2023-11-09 09:03:32 +01:00
Chocobozzz 5b394e1622
Increase test timeouts 2023-11-08 13:48:22 +01:00
Chocobozzz 2bc4d26b94
Add ability to customize frames to analyze 2023-11-08 10:18:39 +01:00
Chocobozzz 193e752c44
Increase test timeouts 2023-11-06 14:04:43 +01:00
Chocobozzz d3c9a2e5b9
Add script to move videos to file system 2023-11-02 09:21:49 +01:00
Chocobozzz 443358ccce
Reduce video comment sql query size 2023-10-31 10:02:19 +01:00
Chocobozzz 15f2ac7152
Fix invalid timeout 2023-10-30 11:58:43 +01:00
Chocobozzz 543fbd1ffe
Correctly display broken muxing session
Can happen when we stream an audio stream only
2023-10-30 11:57:39 +01:00
Chocobozzz ad801093b9
Simplify for loop 2023-10-30 11:17:46 +01:00
Chocobozzz 4fa78cda92
Fix timetoint
01:02 was translated to 01h02m instead of 01m02s
2023-10-30 10:20:25 +01:00
Chocobozzz f108600464
Fix CI 2023-10-30 09:09:55 +01:00
Chocobozzz 09ab8e577c
Increase timeouts 2023-10-26 16:41:19 +02:00
Chocobozzz bbd7de5c9d
CI can be very slow 2023-10-26 15:23:07 +02:00
Chocobozzz 90db2b3aed
Add ability to disable HTTP logs 2023-10-24 10:57:41 +02:00
Chocobozzz edc3ff6085
Sign JSON objects in worker threads 2023-10-24 10:45:17 +02:00
Chocobozzz b7f1bc0c33
Fix misc endpoints tests 2023-10-20 17:30:46 +02:00
Chocobozzz f90db24233
Fix SEO and refactor HTML pages generation
* Split methods in multiple classes
 * Add JSONLD tags in embed too
 * Index embeds but use a canonical URL tag (targeting the watch page)
 * Remote objects don't include a canonical URL tag anymore. Instead we
   forbid indexation
 * Canonical URLs now use the official short URL (/w/, /w/p, /a, /c
   etc.)
2023-10-20 16:00:36 +02:00
Chocobozzz 272a902b2a
Optimize video thumbnail generation
Process images in worker threads
Reduce ffmpeg calls
2023-10-20 16:00:36 +02:00
Wicklow ea6c2b064f
Allow to change the default channel name (#6000)
* Allow to change the default channel name

* Fix tests

* Fix tests

* Fix tests
2023-10-19 15:22:00 +02:00
Chocobozzz ae468445b2
Increase other test timeouts 2023-10-18 15:57:11 +02:00
Chocobozzz 0397b31efe
Reduce views tests load 2023-10-18 15:53:17 +02:00
Chocobozzz 830907ec93
Increase test timeouts 2023-10-18 15:53:08 +02:00
Chocobozzz ea01bf0167
Increase tests timeout 2023-10-13 09:59:59 +02:00
Chocobozzz 58fda6d416
Fix upload with chapters having non int timecode 2023-10-12 15:32:01 +02:00
Chocobozzz 44e12dc809
Update bullmq dependency 2023-10-12 09:29:45 +02:00
Chocobozzz 5bd42bbca7
Fix resumable tests 2023-10-11 16:17:11 +02:00
Chocobozzz fca58de835
Fix runner test 2023-10-11 15:13:54 +02:00
Chocobozzz 2db1f3238d
Update server dependencies 2023-10-11 11:06:34 +02:00
Chocobozzz 8d20c8f391
Prevent setting color attribute on loading bar
Fire accessibility/HTML guidelines warnings/errors
2023-10-06 11:29:13 +02:00
Chocobozzz 5a3d0650c9
server/server -> server/core 2023-10-04 15:13:25 +02:00
Chocobozzz 9257243620
Fix hls tests 2023-10-04 11:12:29 +02:00
Chocobozzz d0f8a0e677
Fix mime type handling from remote instances 2023-10-04 09:59:27 +02:00
Chocobozzz fbc7f1a00d
Fix video quality on high resolution/fps 2023-10-04 09:21:14 +02:00
Chocobozzz 1611721c9b
Fix feed audio file mimetype 2023-10-03 12:20:11 +02:00
Chocobozzz 3601872153
Support empty value returned by video get filter 2023-10-03 09:36:00 +02:00
Chocobozzz 1022e27309
Fix live replay privacy change 2023-09-01 16:47:25 +02:00
Chocobozzz 69601b66fe
Fix tests 2023-08-30 20:19:56 +02:00
Chocobozzz 6495764268
Fix chapters extract 2023-08-30 19:24:01 +02:00
Chocobozzz d8a80446da
Reduce ffmpeg thumbnail generation load
Can also lead to memory issues with big values (default is 100)
2023-08-28 17:50:47 +02:00
Chocobozzz 8ed4b82346
Fix tests build 2023-08-28 16:42:32 +02:00
Chocobozzz 77b70702d2
Add video chapters support 2023-08-28 16:17:31 +02:00
Chocobozzz 7113f32a87
Fix build 2023-08-21 15:55:54 +02:00