Commit Graph

3809 Commits

Author SHA1 Message Date
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
2d4274769e
Fix production.yaml.new config generation 2023-11-07 10:25:15 +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
Chocobozzz
d0f8a0e677
Fix mime type handling from remote instances 2023-10-04 09:59:27 +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
Wicklow
9864a0cae1
Add brazilian option for video/captions languages (#5971)
* Add brazilian option for video/captions languages

* Respect default local region
2023-10-02 11:54:13 +02:00
Johnny Jazeix
86731e752a
Add Valencian option for video/captions languages (#5975) 2023-10-02 11:53:32 +02:00
Chocobozzz
1022e27309
Fix live replay privacy change 2023-09-01 16:47:25 +02:00
Chocobozzz
a1d9318066
Stop live before removing files 2023-09-01 13:16:27 +02:00
Julien Rabier
0216c3485d Fix path to Peertube installation in upgrade.sh 2023-09-01 11:07:37 +02:00
Chocobozzz
d2640682f6
Fix atom feed with science and technology category 2023-09-01 10:09:10 +02:00
Chocobozzz
0cc1a69881
Avoid federation error logs with likes on notes 2023-09-01 09:58:13 +02:00
Chocobozzz
c4799cd1b9
Avoid illegal characters in torrent filename 2023-09-01 09:55:08 +02:00
Chocobozzz
ca8a00d0e7
Fix ERR_HTTP_HEADERS_SENT crash 2023-09-01 09:27:57 +02:00
Chocobozzz
9f4bdf3915
Add Guadeloupean language support 2023-08-28 17:11:27 +02:00
Chocobozzz
fe1e3535fd
Ping runners on job abort/error 2023-08-28 16:59:45 +02:00
Chocobozzz
77b70702d2
Add video chapters support 2023-08-28 16:17:31 +02:00
Chocobozzz
0d87602a20
Optimize update host script 2023-08-18 14:21:04 +02:00
Chocobozzz
64cb55fcb1
Correctly handle optional replay setting 2023-08-18 11:52:12 +02:00
Chocobozzz
7ace48819e
Add ability to reset originallyPublishedAt 2023-08-18 11:40:54 +02:00
Chocobozzz
90b84bd4bb
Fix live replay setting breaking change 2023-08-18 10:49:33 +02:00
Chocobozzz
822872aacd
Don't display admin email in security.txt 2023-08-18 10:35:45 +02:00
Chocobozzz
3ff44b67ea
Fix plugin global path error log 2023-08-18 10:19:43 +02:00
Chocobozzz
9c63644b2d
Fix peertube helpers tsx tests 2023-08-18 10:18:56 +02:00
Seth Falco
2055962c84 fix: handle git installation of ffmpeg 2023-08-18 10:17:16 +02:00
Chocobozzz
3a4992633e
Migrate server to ESM
Sorry for the very big commit that may lead to git log issues and merge
conflicts, but it's a major step forward:

 * Server can be faster at startup because imports() are async and we can
   easily lazy import big modules
 * Angular doesn't seem to support ES import (with .js extension), so we
   had to correctly organize peertube into a monorepo:
    * Use yarn workspace feature
    * Use typescript reference projects for dependencies
    * Shared projects have been moved into "packages", each one is now a
      node module (with a dedicated package.json/tsconfig.json)
    * server/tools have been moved into apps/ and is now a dedicated app
      bundled and published on NPM so users don't have to build peertube
      cli tools manually
    * server/tests have been moved into packages/ so we don't compile
      them every time we want to run the server
 * Use isolatedModule option:
   * Had to move from const enum to const
     (https://www.typescriptlang.org/docs/handbook/enums.html#objects-vs-enums)
   * Had to explictely specify "type" imports when used in decorators
 * Prefer tsx (that uses esbuild under the hood) instead of ts-node to
   load typescript files (tests with mocha or scripts):
     * To reduce test complexity as esbuild doesn't support decorator
       metadata, we only test server files that do not import server
       models
     * We still build tests files into js files for a faster CI
 * Remove unmaintained peertube CLI import script
 * Removed some barrels to speed up execution (less imports)
2023-08-11 15:02:33 +02:00
Chocobozzz
3229fcf704
More robust logs tests 2023-07-31 09:35:48 +02:00
Chocobozzz
5e1ced7067
Fix live tests 2023-07-31 09:31:28 +02:00
Chocobozzz
257df4cb56
Remove deprecated "views" from live video event 2023-07-28 16:35:57 +02:00
Chocobozzz
982edf32ae
Remove deprecated video query filter 2023-07-28 16:33:12 +02:00
Chocobozzz
ce8d0b5aae
Remove deprecated scheduler 2023-07-28 16:22:27 +02:00
Chocobozzz
b203a25e1f
Keep s3 commands simple
As s3 implementation between s3 providers can be different
2023-07-28 16:21:15 +02:00
Chocobozzz
eeb838faf2
currentTime is now required 2023-07-28 16:17:37 +02:00
Chocobozzz
74c8d5bf2d
Refactor enableTranscoding command helpers 2023-07-28 16:06:49 +02:00
Chocobozzz
f932957b2e
Remove banner/avatar fields from channel/account
Deprecated since 4.2
2023-07-28 11:41:14 +02:00
Chocobozzz
89aa333110
Add ability to force transcoding 2023-07-28 11:09:03 +02:00
mira.bat
f862be2749
Add an option to sign federated fetches for mastodon compatibility (#5898)
* Fix player error modal

Not hidden when we change the video

* Correctly dispose player components

* Sign cross-server fetch requests for mastodon AUTHORIZED_FETCH compatibilty

* Add a remote fetch sign configuration knob

* Federated fetches refactoring

---------

Co-authored-by: Chocobozzz <me@florianbigard.com>
Co-authored-by: ira <ira@foxgirl.space>
2023-07-27 17:01:15 +02:00
Chocobozzz
787d822cd4
Rephrase emailer conflict error messages 2023-07-27 16:41:35 +02:00
Chocobozzz
f18003d0ac
Improve runner management
* Add ability to remove runner jobs
 * Add runner job state quick filter
 * Merge registration tokens and runners tables in the same page
 * Add copy button to copy registration token
2023-07-27 14:17:12 +02:00
Chocobozzz
17522af1e0
Use typed pick 2023-07-26 10:49:32 +02:00
Chocobozzz
69e3f2049f
Fix invalid short uuid conversion
Avoid "TypeError: Expected a string but received a null" error
2023-07-26 10:48:30 +02:00
Chocobozzz
3ffff82e87
Truncate html/og/card HTML description tags 2023-07-26 10:19:51 +02:00
Chocobozzz
d7c3670945
Fix lint 2023-07-26 10:08:24 +02:00
Chocobozzz
22e7ffc781
Fix check params tests 2023-07-26 09:42:44 +02:00
Chocobozzz
93fd6f3b18
Fix fk error when generating storyboard 2023-07-26 09:25:21 +02:00
Chocobozzz
89b9eab5a7
Add more logs to debug oauth-client error 2023-07-26 09:25:10 +02:00
Chocobozzz
97583d0023
Add more rate limits 2023-07-26 08:37:50 +02:00
Chocobozzz
9901c8d690
Add video file update hook tests 2023-07-25 15:17:58 +02:00
Chocobozzz
3b46eec8ae
Remove unused param 2023-07-25 14:26:12 +02:00
Chocobozzz
f42dd5524b
Add more context to request error 2023-07-25 14:21:01 +02:00
Chocobozzz
f42fcb4b58
Implement video file replacement in client 2023-07-25 11:53:08 +02:00
Chocobozzz
12dc3a942a
Implement replace file in server side 2023-07-21 17:38:13 +02:00
Chocobozzz
c6867725fb
Add p2p info to metrics 2023-07-21 11:42:52 +02:00
Chocobozzz
305facdfab
Add peers number and p2p enabled label to metrics 2023-07-20 12:06:39 +02:00
Chocobozzz
15c2303489
More robust runner socket test 2023-07-19 10:43:12 +02:00
Chocobozzz
6b745df087
Try to fix CI test 2023-07-17 14:34:44 +02:00
Chocobozzz
28dd2f14f5
Some player fixes on Android, Safari and iOS 2023-07-17 11:31:46 +02:00
Chocobozzz
5c34189aa9
Fix prune storage test 2023-07-12 11:32:12 +02:00
Chocobozzz
d874522774
Avoid update remote runner error 2023-07-12 11:14:59 +02:00
Chocobozzz
d959b763f0
Avoid duplicate runner names 2023-07-12 10:56:07 +02:00
Chocobozzz
88cde4392a
Merge branch 'release/5.2.0' into develop 2023-07-12 10:37:59 +02:00
Chocobozzz
d98909f690
Fix fps transcoding on remote runners 2023-07-12 10:07:21 +02:00
Chocobozzz
34555bebf8
Migrate from webseed to web-videos 2023-07-11 11:39:59 +02:00
Chocobozzz
d732ec7b46
Rename "videos" config to "web-videos" 2023-07-11 11:23:51 +02:00
Chocobozzz
c57ad141a9
Rename webtorrent config to web_videos 2023-07-11 09:52:14 +02:00
Chocobozzz
784e2ad5c3
Prefer web videos in favour of webtorrent 2023-07-11 09:21:13 +02:00
Chocobozzz
a1bd2b77d9
Remove webtorrent support from client 2023-07-10 16:08:28 +02:00
Chocobozzz
9cd06903f4
Fix HLS playlist generation with 0 duration length 2023-06-29 14:20:03 +02:00
Chocobozzz
a287136427
Fix migration conflict 2023-06-29 13:52:24 +02:00
Chocobozzz
6bd160a68d
Fix 400 error on resumable re-upload 2023-06-29 11:35:25 +02:00
q_h
926c3f2b37
Fix the cleanup after a failed upload (#5840)
* Fix the cleanup after a failed upload

* Update tests

* Update tests
2023-06-29 10:38:37 +02:00
Chocobozzz
d961735d5d
Fix prune storage tests 2023-06-29 10:19:55 +02:00
Chocobozzz
17ad0e8428
Fix regenerate thumbnail test 2023-06-29 10:19:55 +02:00
Chocobozzz
cf069671f4
Use promise cache to load remote thumbnails 2023-06-29 10:19:55 +02:00