Commit Graph

209 Commits (1d4591fd9c724c9409da31612f6d8c008f1cb5e4)

Author SHA1 Message Date
Jelle Besseling 0305db28c9
Add support for saving video files to object storage (#4290)
* Add support for saving video files to object storage

* Add support for custom url generation on s3 stored files

Uses two config keys to support url generation that doesn't directly go
to (compatible s3). Can be used to generate urls to any cache server or
CDN.

* Upload files to s3 concurrently and delete originals afterwards

* Only publish after move to object storage is complete

* Use base url instead of url template

* Fix mistyped config field

* Add rudenmentary way to download before transcode

* Implement Chocobozzz suggestions

https://github.com/Chocobozzz/PeerTube/pull/4290#issuecomment-891670478

The remarks in question:
    Try to use objectStorage prefix instead of s3 prefix for your function/variables/config names
    Prefer to use a tree for the config: s3.streaming_playlists_bucket -> object_storage.streaming_playlists.bucket
    Use uppercase for config: S3.STREAMING_PLAYLISTS_BUCKETINFO.bucket -> OBJECT_STORAGE.STREAMING_PLAYLISTS.BUCKET (maybe BUCKET_NAME instead of BUCKET)
    I suggest to rename moveJobsRunning to pendingMovingJobs (or better, create a dedicated videoJobInfo table with a pendingMove & videoId columns so we could also use this table to track pending transcoding jobs)
    https://github.com/Chocobozzz/PeerTube/pull/4290/files#diff-3e26d41ca4bda1de8e1747af70ca2af642abcc1e9e0bfb94239ff2165acfbde5R19 uses a string instead of an integer
    I think we should store the origin object storage URL in fileUrl, without base_url injection. Instead, inject the base_url at "runtime" so admins can easily change this configuration without running a script to update DB URLs

* Import correct function

* Support multipart upload

* Remove import of node 15.0 module stream/promises

* Extend maximum upload job length

Using the same value as for redundancy downloading seems logical

* Use dynamic part size for really large uploads

Also adds very small part size for local testing

* Fix decreasePendingMove query

* Resolve various PR comments

* Move to object storage after optimize

* Make upload size configurable and increase default

* Prune webtorrent files that are stored in object storage

* Move files after transcoding jobs

* Fix federation

* Add video path manager

* Support move to external storage job in client

* Fix live object storage tests

Co-authored-by: Chocobozzz <me@florianbigard.com>
2021-08-17 08:26:20 +02:00
ROBERT MCDOWELL 863c1bc6dc
fixed typo (#4312)
* Fixed typo
2021-08-11 10:45:49 +02:00
Chocobozzz 3b6195f799
Fix typo for minimum age 2021-07-16 16:00:31 +02:00
Rigel Kent 37ede348bb
(doc) add note in config that tmp is also used while processing 2021-06-08 11:45:03 +02:00
Poslovitch 1f256e7d3c
Implemented configurable minimum signup age
Implements https://github.com/Chocobozzz/PeerTube/issues/3612

Fixed lint and removed debug

Fixed another lint error

Apply suggestions from code review

Co-authored-by: Chocobozzz <chocobozzz@cpy.re>

Add tests for min signup age config
2021-05-28 13:56:05 +02:00
Chocobozzz 31a911190b
Fix broadcast message log level 2021-05-25 11:35:29 +02:00
Chocobozzz cb4bab61c1
Fix logger warning level 2021-05-14 14:17:53 +02:00
Chocobozzz 8155db669b
Dissociate frameguard from csp 2021-04-12 15:33:54 +02:00
Chocobozzz 6a882428e1
Enable HLS transcoding by default 2021-04-06 09:52:53 +02:00
Chocobozzz 32a18cbf33
Add new plugin/peertube version notifs 2021-03-24 18:18:41 +01:00
Chocobozzz 74d249bc13
Add ability to cleanup remote AP interactions 2021-03-03 10:08:08 +01:00
Chocobozzz b3d5cb92b1 Add ability to update torrents cache in client 2021-02-18 13:38:09 +01:00
Chocobozzz 90a8bd305d Dissociate video file names and video uuid 2021-02-18 13:38:09 +01:00
Chocobozzz 9129b7694d Allow to specify transcoding and import jobs concurrency 2021-02-08 15:38:45 +01:00
Rigel Kent 3d4e112d16 add best trending strategy based on Reddit's best
inspired from https://www.reddit.com/r/changelog/comments/7spgg0/best_is_the_new_hotness/
this implementation only adds freshness, and doesn't personalize based
on subscribed communities yet.
2021-02-04 09:04:47 +01:00
Chocobozzz 3258fa5525
Fix default.yaml and production.yaml inconsistencies 2021-01-29 14:56:40 +01:00
Chocobozzz 1896bca09e
Support transcoding options/encoders by plugins 2021-01-28 15:55:39 +01:00
Rigel Kent ba5d4a849c move from trending routes to alg param 2021-01-28 15:55:34 +01:00
Rigel Kent 3da68f0a78 add default trending page choice, revert comments count for hot strategy 2021-01-28 15:55:34 +01:00
Chocobozzz 1e743faafe
Disable sql prettifier by default
It adds too much lines, leading to difficulties when reading dev logs
2021-01-26 09:54:32 +01:00
Chocobozzz 51de2c7ff3
Update project description 2021-01-14 09:43:06 +01:00
Johan Fleury 12c1e38df2 feat: allow administrator to disable logging of ping requests 2021-01-13 09:14:43 +01:00
Rigel Kent b7085c7132 add support for 1440p (Quad HD/QHD/WQHD) videos 2021-01-13 09:14:09 +01:00
Chocobozzz d8658f0f81
Try to improve install doc 2021-01-11 10:09:24 +01:00
Chocobozzz 4f20856ed4
Add more hints regarding live port 2021-01-11 09:20:44 +01:00
Chocobozzz c9bc850e93
Use -1 for max live duration unlimited 2020-12-15 09:26:37 +01:00
Chocobozzz 2539011cfc
Add unlimited max live duration by default 2020-12-08 10:38:37 +01:00
Chocobozzz cf3e0d69a6
Enable live transcoding by default
Direct muxing is not robust enough
2020-12-01 15:04:38 +01:00
Chocobozzz d605328a30
Add missing "supports markdown" config comments 2020-11-30 15:08:01 +01:00
Chocobozzz 413b9729ee
Disable views cleaner on test instances 2020-11-27 15:46:49 +01:00
Chocobozzz acfa2e300d
Remove old video views by default 2020-11-27 15:46:49 +01:00
Chocobozzz e0409585a7
Fix youtube-dl ipv4 PR 2020-11-18 14:11:15 +01:00
Mark Van den Borre 677012b4ee
default youtube-dl to use ipv4 (#3311)
Co-authored-by: Rigel Kent <sendmemail@rigelk.eu>
2020-11-18 14:06:20 +01:00
Chocobozzz a25507f6c4
Fix tests 2020-11-10 15:04:08 +01:00
Chocobozzz 87568f93e9
BREAKING: do not federate unlisted videos by default 2020-11-10 14:22:13 +01:00
Chocobozzz 529f037294 Revert some mistakes 2020-11-09 15:33:04 +01:00
Chocobozzz 3cabf3532b Add live server hooks 2020-11-09 15:33:04 +01:00
Chocobozzz 77e9f859c6 Add check params live tests 2020-11-09 15:33:04 +01:00
Chocobozzz d2345ce920 Add live doc in production.yaml 2020-11-09 15:33:04 +01:00
Chocobozzz a056ca4813 Add max lives limit 2020-11-09 15:33:04 +01:00
Chocobozzz fb7194043d Check live duration and size 2020-11-09 15:33:04 +01:00
Chocobozzz a5cf76afa3 Add watch messages if live has not started 2020-11-09 15:33:04 +01:00
Chocobozzz c6c0fa6cd8 Live streaming implementation first step 2020-11-09 15:33:04 +01:00
Chocobozzz b0ce7c39dc
Add ssl support to postgresql 2020-08-24 11:38:57 +02:00
Rigel Kent fccbbc1a77 add and document new additional video extensions supported at upload 2020-08-10 09:46:59 +02:00
Kim caf2aaf4f9
Add ability to override client assets : logo - favicon - PWA icons - PWA manifest name and description (#2897)
* Add client-overrides storage to config

* Add static-serve for client overrides

* Move backgroun-image logo from bundle to css tag for runtime content hash

* Add dynamic JSON manifest

* Add content hash for manifest, favicon and logo

Co-authored-by: kimsible <kimsible@users.noreply.github.com>
2020-07-10 10:20:11 +02:00
Chocobozzz 1e904cde34
Fix users tests 2020-07-02 14:23:50 +02:00
Girish Ramakrishnan 6ee7221117 Add database.name config option
If database.name is set, we use it as the complete database name.
If unset, we use the "peertube"+database.suffix as the complete database
name.

Fixes #1620
2020-06-25 08:48:44 +02:00
Chocobozzz faa9d434b4
Update server dependencies 2020-06-17 11:42:50 +02:00
Chocobozzz 3b0bd70aa0 Add search target check params 2020-06-10 14:02:41 +02:00