Commit Graph

308 Commits

Author SHA1 Message Date
kontrollanten 6f6abcabfb
feat(plugins): add peertubeHelpers.loadByIdOrUUIDWithFiles (#6302) 2024-04-04 08:20:09 +02:00
Chocobozzz e43326ed5b
Support "Spanish (Latin America)" metadata lang 2024-04-03 15:20:18 +02:00
Chocobozzz f8b8dc674e
Fix views crash on geoip update failure 2024-04-03 15:11:10 +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 5ef0430dfb
Display playlists if allowed to escape federation 2024-03-27 15:48:29 +01:00
Chocobozzz 3f8454ce63
Fix creating remote tracker URLs on video creation 2024-03-27 15:26:15 +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 4a35e6587a
Fix lint 2024-03-26 17:43:03 +01:00
kontrollanten 26de1467e2
fix(server/video-view): log invalid currentTime req (#6288)
* fix(server/video-view): log invalid currentTime req

relates to #6285

* Styling

---------

Co-authored-by: Chocobozzz <me@florianbigard.com>
2024-03-26 17:08:15 +01:00
Chocobozzz a159b8b517
Add ability to list and delete original file
In admin
2024-03-26 14:10:02 +01:00
Chocobozzz 5b8da4e051
Method typo 2024-03-25 15:14:56 +01:00
Chocobozzz be19d9be34
Move email templates in assets directory 2024-03-20 09:15:07 +01:00
Chocobozzz 33101bc5b3
Optimize abuse SQL query 2024-03-20 08:34:14 +01:00
Chocobozzz da63a030f3
Also add "allow-forms" to oembed 2024-03-19 15:29:32 +01:00
Chocobozzz c09e27d77a
Optimize transcoding profile building 2024-03-19 09:53:59 +01:00
Chocobozzz 0e718cb7b2
Fix cancel on stall error message 2024-03-19 08:39:41 +01:00
Chocobozzz 0301d77254
Don't cancel finished jobs 2024-03-19 08:39:23 +01:00
Chocobozzz c727a34cb6
Prevent aborting another live session 2024-03-18 16:09:22 +01:00
Chocobozzz c10c3c5e79
Add finish sign language 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
kontrollanten ae31e90c30 feat(server): log rate limit exceeded 2024-03-15 14:56:46 +01:00
Chocobozzz 486b4a329f
Optimize config endpoint 2024-03-12 16:00:51 +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 fb50a233f4
Add error info in payload on parent failure 2024-03-12 09:35:14 +01:00
Chocobozzz 52b6d97250
Fix upload transaction retry 2024-03-12 09:10:42 +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 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 4b857f50c8
Anonymize IP stored in Redis too 2024-02-29 10:09:21 +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 2e760485c1
Fix abuse/registration requests stats
With old abuses/registration requests that do not have the processedAt
attribute set
2024-02-27 15:26:37 +01:00
Chocobozzz b6b1aaa56f
Add video aspect ratio in server 2024-02-27 15:24:34 +01:00
Chocobozzz c75381208f
Fix CSP 2024-02-27 11:18:19 +01:00
Chocobozzz 466acae1e5
Remove redundant thumbnail save 2024-02-26 16:36:03 +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 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 971077bccd
Fix deprecated OTEL API 2024-02-21 16:24:21 +01:00
Chocobozzz 6eda5c36f4
Update server dependencies 2024-02-21 16:23:31 +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 fbe47a9f8e Fix build 2024-02-21 13:49:08 +01:00
Chocobozzz f7e4f62870 Refactor uploadx middlewares 2024-02-21 13:49:08 +01:00
Chocobozzz e286db3a39 Refactor caption creation 2024-02-21 13:49:08 +01:00
Chocobozzz 7986ab8452 Support chapter import/export 2024-02-21 13:49:08 +01:00
Chocobozzz 009d7b39ac Stricter import types
Avoid forgetting to sanitize a field by specifying the sanitized object
type
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 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 a40981fc30
Remove / in download filename 2024-02-16 10:35:28 +01:00
Chocobozzz 48f1d4b186
More robust channel sync 2024-02-16 10:14:12 +01:00
Chocobozzz 22ab711501
Correctly fix video feeds endpoint 2024-02-16 09:26:14 +01:00
Chocobozzz 1387e0a3bb
It's 2024! 2024-02-16 08:58:29 +01:00
Chocobozzz 65e7ffba15
Disable utp for webtorrent
Prevent crash like https://github.com/Chocobozzz/PeerTube/issues/6222
2024-02-15 16:49:04 +01:00
Chocobozzz ba3820965f
Blocked users must not be able to live stream 2024-02-15 14:27:52 +01:00
Chocobozzz a012d6c2a9
Add notification on subscription live stream 2024-02-15 14:06:25 +01:00
Chocobozzz 4300cc1ee1
Fix job count for waiting jobs 2024-02-15 13:40:53 +01:00
Chocobozzz acd9eaeb1d
More robust RSS feed 2024-02-15 09:15:55 +01:00
Chocobozzz 8758d8ed8f
Ensure file is flushed before renaming it 2024-02-15 09:00:25 +01:00
Chocobozzz 0d89f639f6
Merge branch 'release/6.0.0' into develop 2024-01-18 09:48:26 +01:00
Chocobozzz eb02a5dd5d
Fix duplicate chapters error 2024-01-18 09:17:13 +01:00
Chocobozzz 1cb3afb2c2
Fix object storage download 2024-01-12 14:07:54 +01:00
Chocobozzz 0cbe9a471f
Also add stripes to square videos 2024-01-11 11:13:20 +01:00
Chocobozzz 0a53a54ed7
Merge branch 'release/6.0.0' into develop 2024-01-03 15:26:22 +01:00
Chocobozzz cfcbfb668e
Prevent error when live doesn't have replay files 2024-01-03 15:06:24 +01:00
Chocobozzz 4cbea51255
Add subdivision to viewer stats 2023-12-28 09:56:05 +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 374820f2c0
Don't need contentUrl if embedUrl is set 2023-12-22 08:58:53 +01:00
Chocobozzz 640bc1a0cd
Current time cannot be null 2023-12-20 16:07:48 +01:00
Chocobozzz 8d1f0853cc
Relax missing two factor log level 2023-12-20 10:55:47 +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 49a4b8cb7d
Add stats to logger 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 a73f476c8a
We don't need cookies for REST API 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 eba9528391
Optimize async middleware
Avoid using bluebird, a simple for/await is enought
2023-12-20 10:55:47 +01:00
Chocobozzz c93b7088c2
Fix downloading video files from object storage
With title that contains non ISO 8859 characters
2023-12-19 07:26:09 +01:00
Chocobozzz 1e121c9898
Fix invalid state change notif of remote live 2023-12-15 15:58:07 +01:00
Chocobozzz 4662badde7
Fix privacy error on live update without privacy 2023-12-15 15:51:59 +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 edc695263f
Escape quotes for html attributes 2023-12-14 11:33:08 +01:00
Chocobozzz 63c4a02ce0
Fix views events with lives 2023-12-14 11:12:18 +01:00
Chocobozzz ff338f7dda
Fix embed when waiting for a live 2023-12-08 10:13:08 +01:00
Chocobozzz e06e2da187
Fix cpu count when cpu info not available 2023-12-08 09:13:16 +01:00
Chocobozzz 8a22cfd628
Fix client URLs for channels and accounts 2023-12-08 08:57:14 +01:00
Chocobozzz 2fde12d7e1
Fix profile page JSONLD 2023-12-08 08:41:14 +01:00
Chocobozzz 4fd8d34175
Ensure user is owned by plugin before updating it 2023-12-06 08:43:19 +01:00
Chocobozzz c6047e1573
Add missing logger tags 2023-11-29 16:31:29 +01:00
Chocobozzz f9e710e7d4
Fix chapters import 2023-11-29 14:12:13 +01:00
Chocobozzz ba56aadb63
Regenerate storyboard after studio 2023-11-29 09:58:20 +01:00
Chocobozzz bda1d751a5
Add warning for web_videos directory name 2023-11-29 09:28:12 +01:00
Chocobozzz c900788e59
Remove async-lru cache for jsonld
jsonld library has already a cache
2023-11-29 06:51:29 +01:00
Chocobozzz a5bdce80f6
Keep increasing storyboard generation ttl 2023-11-28 15:42:48 +01:00
Chocobozzz 17f1920658
Fix CPU going to 100% on odd cpu count
See https://github.com/piscinajs/piscina/pull/457
2023-11-28 13:32:51 +01:00
Chocobozzz a0606360a7
Return 400 if filter query is still there 2023-11-28 08:08:57 +01:00
Chocobozzz 11f40299c5
Workaround to fix bug where CPU at 100%
Commit b017d4d02f does not seem to work
2023-11-24 18:11:11 +01:00
Chocobozzz b017d4d02f
Fix weird bug where CPU jumps and stays to 100%
Seems related to lazy import of custom-jsonld-signature
So we refactored jsonld function calls a little bit
2023-11-24 14:44:18 +01:00
Chocobozzz f93bc6a8be
Retry runner job db saving if needed 2023-11-24 14:44:04 +01:00
Chocobozzz 5ef3378534
Log piscina errors 2023-11-21 17:35:36 +01:00
Chocobozzz aeea2d864f
Limit max piscina threads bases on CPUs 2023-11-21 17:25:44 +01:00
Chocobozzz d4f21493e1
Respect "transcode original resolution" for runner 2023-11-17 16:25:11 +01:00
Chocobozzz 1682b0bab0
Increase generate-video-storyboard job ttl
See https://github.com/Chocobozzz/PeerTube/issues/6029
2023-11-17 16:24:55 +01:00
Chocobozzz 3da9fbbe39
Adapt storyboard sprite ratio 2023-11-09 09:03:32 +01:00
Chocobozzz 2bc4d26b94
Add ability to customize frames to analyze 2023-11-08 10:18:39 +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 2e556debca
Fix log error 2023-10-30 14:14:19 +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 880f8b924d
Add worker thread completed OTEL metric 2023-10-27 14:40:53 +02:00
Chocobozzz a2d5c2d44f
Add worker thread queue metrics 2023-10-26 16:34:54 +02:00
Chocobozzz 606c044dc8
Fix uploading empty master playlist on s3 2023-10-26 15:14:14 +02:00
Chocobozzz 40a6dcb632
Optimize video views redis calls
Try to avoid them if we can
2023-10-26 14:08:19 +02:00
Chocobozzz de862fd0e7
Optimize video viewer stats
Many Redis (and so network) calls can be expensive
Avoid them if we can by using in memory cache
2023-10-26 11:35:55 +02:00
Chocobozzz 8ecf95471d
Also remove video session on muxing error 2023-10-26 09:07:26 +02:00
Chocobozzz dd7de7e32d
Don't add a LIMIT 1 to prevent seq scan 2023-10-26 08:36:53 +02:00
Chocobozzz d3dd952cc5
Try to optimize tagsOneOf/tagsAllOf SQL queries
Using a CTE because the query will probably return a few results
I tried a IN clause but PG doesn't seem to be more efficient with it
The CTE seems to be the only choice
2023-10-25 16:15:41 +02:00
Chocobozzz a290fbf821
Add isLive DB index 2023-10-25 15:07:36 +02:00
Chocobozzz 82813e9739
Optimize infohash SQL query
We need to use the array operator to use GIN index
2023-10-25 15:04:00 +02:00
Chocobozzz 360439088d
Skip counting for recommended videos 2023-10-25 14:55:06 +02:00
Chocobozzz cb38deb288
Process unicast job in a worker too
Signing the request can take a long time
2023-10-25 09:43:57 +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 521face89e
Add embed info jsonld in embeds too 2023-10-20 16:15:45 +02:00
Chocobozzz 53fdb2e83e
Fix server build 2023-10-20 16:05:38 +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 e731f4b724
Fix sitemap URL for accounts and channels 2023-10-20 16:00:36 +02:00
Chocobozzz 58daa2d97b
More flexible way to forbid indexation 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 3546128f95
Workaround to bullmq undefined jobs 2023-10-18 15:46:18 +02:00
Chocobozzz 75d5a23dbc
Prevent error when removing a streaming playlist 2023-10-13 09:59:18 +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 7243393272
Fix signup and import 2023-10-11 15:58:16 +02:00
Chocobozzz 678ae8abbd
Breaking: only support node 18
Node 16 is not supported anymore

See https://nodejs.org/fr/blog/announcements/nodejs16-eol
2023-10-11 13:59:24 +02:00
Chocobozzz 2db1f3238d
Update server dependencies 2023-10-11 11:06:34 +02:00
Chocobozzz e049e3ec73
Remove unused file 2023-10-06 09:59:18 +02:00
Chocobozzz 516479f113
Try to use atomic move for runner live 2023-10-05 11:09:11 +02:00
Chocobozzz d970837922
Fix test paths 2023-10-04 15:40:33 +02:00
Chocobozzz 5a3d0650c9
server/server -> server/core 2023-10-04 15:13:25 +02:00