Commit Graph

3946 Commits

Author SHA1 Message Date
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 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 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 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
Chocobozzz 2b5dfa2fe0
Fix adding element in playlists 2023-06-29 10:19:55 +02:00
Chocobozzz 7a30349748
Fix migration conflict 2023-06-29 10:19:55 +02:00
Chocobozzz 53d4db2a8a
Fix playlist thumbnail generation 2023-06-29 10:19:54 +02:00
Chocobozzz 109d4a7f01
Add thumbnail disk database migration 2023-06-29 10:19:33 +02:00
Chocobozzz bafaba0bcd
Support lazy download of remote video miniatures 2023-06-29 10:19:33 +02:00
Chocobozzz f162d32da0
Support lazy download thumbnails 2023-06-29 10:19:33 +02:00
Chocobozzz ff75ba7160
Also replace base url of pre signed s3 url 2023-06-29 10:19:07 +02:00
Chocobozzz c37e305342
Fix CI tests 2023-06-29 10:19:05 +02:00
Chocobozzz 881958d179
Correctly download files from S3
Use pre signed URLs to inject content disposition header
2023-06-29 10:18:21 +02:00
Chocobozzz 1c9dc98c27
Lock video files when generating storyboard 2023-06-29 10:18:21 +02:00
Chocobozzz 7f7e9d4e90
Handle correctly formatted AP attributedTo 2023-06-29 10:18:00 +02:00
Chocobozzz cefe22cf7c
Fetch remote AP objects if only id is specified 2023-06-29 10:18:00 +02:00
Chocobozzz f987425bd1
Fix thumbnails tests 2023-06-29 10:18:00 +02:00
Chocobozzz d896fef7e2
Refactor video formatter 2023-06-29 10:18:00 +02:00
Chocobozzz b7f946892b
Simpler thumbnail generation 2023-06-29 10:16:57 +02:00
Chocobozzz 318aa9c422
Delete storyboard file on video deletion 2023-06-29 10:16:57 +02:00
Chocobozzz 9c5cc50133
Add script to generate storyboards 2023-06-29 10:16:57 +02:00
Chocobozzz d8f39b126d
Add storyboard support 2023-06-29 10:16:55 +02:00
Chocobozzz 1fb7d09422
Don't cache upload after video deletion 2023-06-29 09:49:06 +02:00
Wicklow 40346ead2b
Feature/password protected videos (#5836)
* Add server endpoints

* Refactoring test suites

* Update server and add openapi documentation

* fix compliation and tests

* upload/import password protected video on client

* add server error code

* Add video password to update resolver

* add custom message when sharing pw protected video

* improve confirm component

* Add new alert in component

* Add ability to watch protected video on client

* Cannot have password protected replay privacy

* Add migration

* Add tests

* update after review

* Update check params tests

* Add live videos test

* Add more filter test

* Update static file privacy test

* Update object storage tests

* Add test on feeds

* Add missing word

* Fix tests

* Fix tests on live videos

* add embed support on password protected videos

* fix style

* Correcting data leaks

* Unable to add password protected privacy on replay

* Updated code based on review comments

* fix validator and command

* Updated code based on review comments
2023-06-29 09:48:55 +02:00
Chocobozzz ae22c59f14
Fix broken replay with long live video name 2023-06-29 09:08:13 +02:00
Chocobozzz ba278fa51d
Fix build 2023-06-21 10:54:48 +02:00
Chocobozzz 2c16f5ad5e
Fix undefined actor image 2023-06-21 10:44:40 +02:00
Chocobozzz e915cde30e
Fix runner api rate limit bypass 2023-06-20 14:17:34 +02:00
Chocobozzz 31b9518a86
Fix log 2023-06-19 14:29:50 +02:00
Chocobozzz 7aacaa76ec
Fix registration notification error in client 2023-06-19 10:52:40 +02:00
Chocobozzz 07880c3642
Correctly unload plugin paths 2023-06-06 11:59:27 +02:00
Chocobozzz ed14d1ebd7
Invalidate cache feed even after server restart 2023-06-05 10:05:49 +02:00
Chocobozzz 8715c76356
More specific message when signup is not allowed 2023-06-05 09:00:47 +02:00
Alecks Gates 1ed1994fff
Use largest avatar in RSS feeds, unique guid for liveItems (#5817)
* Attempt to get largest avatar size

* WIP live guid changes

* Use largest avatar version in feeds

* Misc variable names/import changes

* Update podcast feed tests for guid changes

* More <guid> testing

* Lint fix

* Styling

---------

Co-authored-by: Chocobozzz <me@florianbigard.com>
2023-06-05 09:00:30 +02:00
Chocobozzz 29c7319c8a
Fix transcoding error
When transcoding.always_transcode_original_resolution is false
2023-05-30 09:35:21 +02:00
Chocobozzz 89eda2aab0
Fix runner vod transcoding error test 2023-05-26 16:09:28 +02:00
Chocobozzz c56dd2807f
Fix peertube subtitles import 2023-05-26 16:05:08 +02:00
Chocobozzz 64aa66c4a6
Don't fail remote transcoding on retry 2023-05-26 09:28:44 +02:00
Chocobozzz f474a519dc
Specify runner name when unregistering the runner 2023-05-26 09:04:22 +02:00
Chocobozzz a60b100601
Add more logs when storing master playlist in s3 2023-05-25 09:58:08 +02:00
Chocobozzz d0fbc9fd0a
Fix lint 2023-05-24 15:27:15 +02:00
Chocobozzz cffef25313
Fix s3 mock cleanup 2023-05-23 11:27:27 +02:00
Chocobozzz f89189907b
Prevent object storage mock conflicts
When running tests in parallel
2023-05-23 10:49:45 +02:00
Chocobozzz d8fe90dde2
Wait for segments generation 2023-05-23 08:28:25 +02:00
Chocobozzz 83002a8234
Update server dependencies 2023-05-22 17:11:31 +02:00
Chocobozzz 57c318653e
Fix live quota tests 2023-05-22 16:23:28 +02:00
Alecks Gates cb0eda5602
Add Podcast RSS feeds (#5487)
* Initial test implementation of Podcast RSS

This is a pretty simple implementation to add support for The Podcast Namespace in RSS -- instead of affecting the existing RSS implementation, this adds a new UI option.

I attempted to retain compatibility with the rest of the RSS feed implementation as much as possible and have created a temporary fork of the "pfeed" library to support this effort.

* Update to pfeed-podcast 1.2.2

* Initial test implementation of Podcast RSS

This is a pretty simple implementation to add support for The Podcast Namespace in RSS -- instead of affecting the existing RSS implementation, this adds a new UI option.

I attempted to retain compatibility with the rest of the RSS feed implementation as much as possible and have created a temporary fork of the "pfeed" library to support this effort.

* Update to pfeed-podcast 1.2.2

* Initial test implementation of Podcast RSS

This is a pretty simple implementation to add support for The Podcast Namespace in RSS -- instead of affecting the existing RSS implementation, this adds a new UI option.

I attempted to retain compatibility with the rest of the RSS feed implementation as much as possible and have created a temporary fork of the "pfeed" library to support this effort.

* Update to pfeed-podcast 1.2.2

* Add correct feed image to RSS channel

* Prefer HLS videos for podcast RSS

Remove video/stream titles, add optional height attribute to podcast RSS

* Prefix podcast RSS images with root server URL

* Add optional video query support to include captions

* Add transcripts & person images to podcast RSS feed

* Prefer webseed/webtorrent files over HLS fragmented mp4s

* Experimentally adding podcast fields to basic config page

* Add validation for new basic config fields

* Don't include "content" in podcast feed, use full description for "description"

* Initial test implementation of Podcast RSS

This is a pretty simple implementation to add support for The Podcast Namespace in RSS -- instead of affecting the existing RSS implementation, this adds a new UI option.

I attempted to retain compatibility with the rest of the RSS feed implementation as much as possible and have created a temporary fork of the "pfeed" library to support this effort.

* Update to pfeed-podcast 1.2.2

* Add correct feed image to RSS channel

* Prefer HLS videos for podcast RSS

Remove video/stream titles, add optional height attribute to podcast RSS

* Prefix podcast RSS images with root server URL

* Add optional video query support to include captions

* Add transcripts & person images to podcast RSS feed

* Prefer webseed/webtorrent files over HLS fragmented mp4s

* Experimentally adding podcast fields to basic config page

* Add validation for new basic config fields

* Don't include "content" in podcast feed, use full description for "description"

* Add medium/socialInteract to podcast RSS feeds. Use HTML for description

* Change base production image to bullseye, install prosody in image

* Add liveItem and trackers to Podcast RSS feeds

Remove height from alternateEnclosure, replaced with title.

* Clear Podcast RSS feed cache when live streams start/end

* Upgrade to Node 16

* Refactor clearCacheRoute to use ApiCache

* Remove unnecessary type hint

* Update dockerfile to node 16, install python-is-python2

* Use new file paths for captions/playlists

* Fix legacy videos in RSS after migration to object storage

* Improve method of identifying non-fragmented mp4s in podcast RSS feeds

* Don't include fragmented MP4s in podcast RSS feeds

* Add experimental support for podcast:categories on the podcast RSS item

* Fix undefined category when no videos exist

Allows for empty feeds to exist (important for feeds that might only go live)

* Add support for podcast:locked -- user has to opt in to show their email

* Use comma for podcast:categories delimiter

* Make cache clearing async

* Fix merge, temporarily test with pfeed-podcast

* Syntax changes

* Add EXT_MIMETYPE constants for captions

* Update & fix tests, fix enclosure mimetypes, remove admin email

* Add test for podacst:socialInteract

* Add filters hooks for podcast customTags

* Remove showdown, updated to pfeed-podcast 6.1.2

* Add 'action:api.live-video.state.updated' hook

* Avoid assigning undefined category to podcast feeds

* Remove nvmrc

* Remove comment

* Remove unused podcast config

* Remove more unused podcast config

* Fix MChannelAccountDefault type hint missed in merge

* Remove extra line

* Re-add newline in config

* Fix lint errors for isEmailPublic

* Fix thumbnails in podcast feeds

* Requested changes based on review

* Provide podcast rss 2.0 only on video channels

* Misc cleanup for a less messy PR

* Lint fixes

* Remove pfeed-podcast

* Add peertube version to new hooks

* Don't use query include, remove TODO

* Remove film medium hack

* Clear podcast rss cache before video/channel update hooks

* Clear podcast rss cache before video uploaded/deleted hooks

* Refactor podcast feed cache clearing

* Set correct person name from video channel

* Styling

* Fix tests

---------

Co-authored-by: Chocobozzz <me@florianbigard.com>
2023-05-22 16:00:05 +02:00
Chocobozzz 3f0ceab06e
More robust quota check
Avoid concurrency issues with permanent lives
2023-05-22 15:52:59 +02:00
Chocobozzz 6a9b315182
Fix tests 2023-05-22 15:03:14 +02:00
Chocobozzz 8762b1c7ff
Include err type in res 2023-05-22 14:10:59 +02:00
Chocobozzz 17ecdf61ce
Force stop remote live transcoding 2023-05-22 13:54:46 +02:00
Chocobozzz b9393464a8
Lock when removing video files 2023-05-22 11:06:04 +02:00
Chocobozzz 33b91e53d2
Remove low timeouts
Default timeout is 30s
2023-05-22 09:22:08 +02:00
Chocobozzz 8527f4b163
Fix menu dropdowns
Better responsive
Avoid menu scrollbar displayed in notification popove
2023-05-22 08:22:57 +02:00
Chocobozzz 9ba1faa2ee
Fix lowest email port 2023-05-19 15:33:26 +02:00
Chocobozzz c0b5a5eb4b
Use saveInTransactionWithRetries helper 2023-05-19 15:20:12 +02:00
Chocobozzz d1c64fd970
Fix missing wait jobs 2023-05-19 15:05:32 +02:00
Chocobozzz 26818a73ba
Add expect message to ease debug 2023-05-19 14:49:00 +02:00
Chocobozzz 3733175b6b
Remove wait before publishing master playlist
It doesn't seem necessary
2023-05-19 14:44:57 +02:00
Chocobozzz ec720affe9
Correctly fix s3 live sync 2023-05-19 14:44:25 +02:00
Chocobozzz cfa6176381
Fix runner cleanup test 2023-05-19 14:35:03 +02:00
Chocobozzz 01283e2066
Improve remote runner config UX 2023-05-19 14:11:22 +02:00
Chocobozzz def4ea4f38
More robust chunk handler 2023-05-19 13:52:38 +02:00
Chocobozzz 6403a6bd01
peertube runner tests in parallel 2023-05-19 13:33:27 +02:00
Chocobozzz 30453cb5ba
Wait master playlist generation 2023-05-19 12:01:36 +02:00
Chocobozzz 72d606dc07
Avoid uploading empty master file 2023-05-19 11:03:47 +02:00
Chocobozzz 472170b4f9
Avoid aborting completing jobs 2023-05-19 10:10:41 +02:00