Commit Graph

278 Commits

Author SHA1 Message Date
kontrollanten f6d6e7f861
Resumable video uploads (#3933)
* WIP: resumable video uploads

relates to #324

* fix review comments

* video upload: error handling

* fix audio upload

* fixes after self review

* Update server/controllers/api/videos/index.ts

Co-authored-by: Rigel Kent <par@rigelk.eu>

* Update server/middlewares/validators/videos/videos.ts

Co-authored-by: Rigel Kent <par@rigelk.eu>

* Update server/controllers/api/videos/index.ts

Co-authored-by: Rigel Kent <par@rigelk.eu>

* update after code review

* refactor upload route

- restore multipart upload route
- move resumable to dedicated upload-resumable route
- move checks to middleware
- do not leak internal fs structure in response

* fix yarn.lock upon rebase

* factorize addVideo for reuse in both endpoints

* add resumable upload API to openapi spec

* add initial test and test helper for resumable upload

* typings for videoAddResumable middleware

* avoid including aws and google packages via node-uploadx, by only including uploadx/core

* rename ex-isAudioBg to more explicit name mentioning it is a preview file for audio

* add video-upload-tmp-folder-cleaner job

* stronger typing of video upload middleware

* reduce dependency to @uploadx/core

* add audio upload test

* refactor resumable uploads cleanup from job to scheduler

* refactor resumable uploads scheduler to compare to last execution time

* make resumable upload validator to always cleanup on failure

* move legacy upload request building outside of uploadVideo test helper

* filter upload-resumable middlewares down to POST, PUT, DELETE

also begin to type metadata

* merge add duration functions

* stronger typings and documentation for uploadx behaviour, move init validator up

* refactor(client/video-edit): options > uploadxOptions

* refactor(client/video-edit): remove obsolete else

* scheduler/remove-dangling-resum: rename tag

* refactor(server/video): add UploadVideoFiles type

* refactor(mw/validators): restructure eslint disable

* refactor(mw/validators/videos): rename import

* refactor(client/vid-upload): rename html elem id

* refactor(sched/remove-dangl): move fn to method

* refactor(mw/async): add method typing

* refactor(mw/vali/video): double quote > single

* refactor(server/upload-resum): express use > all

* proper http methud enum server/middlewares/async.ts

* properly type http methods

* factorize common video upload validation steps

* add check for maximum partially uploaded file size

* fix audioBg use

* fix extname(filename) in addVideo

* document parameters for uploadx's resumable protocol

* clear META files in scheduler

* last audio refactor before cramming preview in the initial POST form data

* refactor as mulitpart/form-data initial post request

this allows preview/thumbnail uploads alongside the initial request,
and cleans up the upload form

* Add more tests for resumable uploads

* Refactor remove dangling resumable uploads

* Prepare changelog

* Add more resumable upload tests

* Remove user quota check for resumable uploads

* Fix upload error handler

* Update nginx template for upload-resumable

* Cleanup comment

* Remove unused express methods

* Prefer to use got instead of raw http

* Don't retry on error 500

Co-authored-by: Rigel Kent <par@rigelk.eu>
Co-authored-by: Rigel Kent <sendmemail@rigelk.eu>
Co-authored-by: Chocobozzz <me@florianbigard.com>
2021-05-10 11:13:41 +02:00
Rigel Kent 52fe952642
relax guarantee on openapi rate limit doc accuracy 2021-05-07 09:52:36 +02:00
Rigel Kent 64df4b65ae
add subscriptions feed api to openapi spec 2021-05-07 02:15:02 +02:00
Rigel Kent 3c5e02f38f
add rate limit table to openapi spec 2021-05-07 01:40:21 +02:00
Rigel Kent 0c1145687b
add examples and descriptions to some video fields in openapi spec 2021-05-04 11:20:58 +02:00
Rigel Kent f880a5e704
factorize uuid type in openapi spec 2021-05-04 10:44:33 +02:00
Rigel Kent 4ca669e361
make streaming playlists pivotable objects in openapi spec 2021-05-04 10:25:09 +02:00
Rigel Kent c540d8654f
make hls/webtorrent fields closely documented in the openapi spec 2021-05-04 09:13:24 +02:00
Chocobozzz 1fd61899ea
Add ability to filter my videos by live 2021-05-03 16:42:15 +02:00
Rigel Kent dfcb6f50a6
add description with operation link to category/licence/language constants 2021-05-03 14:34:46 +02:00
Rigel Kent 4302058c4d
fix video channel parameters limit in openapi spec 2021-05-03 14:14:45 +02:00
Rigel Kent bdac05840d
fix name limit for video in openapi spec 2021-05-03 12:17:30 +02:00
Thomas e81af3000f Update VideoFile structure in the API doc
Explain the difference between the 4 URL fields in the VideoFile structure.
2021-04-13 23:31:51 +02:00
Chocobozzz dc48fdbe68
Merge branch 'release/3.1.0' into develop 2021-04-08 15:16:01 +02:00
Chocobozzz 8004469c0a
Fix video channel list api 2021-04-08 14:53:03 +02:00
Chocobozzz 75cba40de7 Update avatar/banner API doc 2021-04-08 10:07:53 +02:00
Chocobozzz d007175238
Bumped to version v3.1.0 2021-03-24 18:18:40 +01:00
Chocobozzz 29553847dc
Bumped to version v3.1.0 2021-03-24 17:47:59 +01:00
Chocobozzz 8726cd4941
Fix REST API doc 2021-03-04 16:16:37 +01:00
Chocobozzz 4468e1e4f7
Bumped to version v3.1.0-rc.1 2021-03-04 10:54:29 +01:00
Chocobozzz 9817060fb7
Use new doc website links 2021-02-12 10:12:19 +01:00
Chocobozzz 6d989edc66
Add ability to update plugin auth 2021-02-01 15:39:13 +01:00
Rigel Kent 923d3d5ad5 add test and openapi for hot sort parameter 2021-01-28 15:55:34 +01:00
Rigel Kent d8b34ee55b
Allow user to search through their watch history (#3576)
* allow user to search through their watch history

* add tests for search in watch history

* Update client/src/app/shared/shared-main/users/user-history.service.ts
2021-01-13 09:16:15 +01:00
Rigel Kent b7085c7132 add support for 1440p (Quad HD/QHD/WQHD) videos 2021-01-13 09:14:09 +01:00
Chocobozzz 69e0e678be
Bumped to version v3.0.1 2021-01-12 08:25:29 +01:00
Chocobozzz e33f385dd5
Bumped to version v3.0.0 2021-01-07 08:26:11 +01:00
Chocobozzz 505816fa10
Bumped to version v3.0.0-rc.1 2020-12-16 09:46:27 +01:00
Rigel Kent 040d6896a3
add display of logs matching any state 2020-12-13 19:27:25 +01:00
Rigel Kent f2eb23cd87
emit more specific status codes on video upload (#3423)
- reduce http status codes list to potentially useful codes
- convert more codes to typed ones
- factorize html generator for error responses
2020-12-08 21:16:10 +01:00
Chocobozzz bb4ba6d94c
Add permanent live support 2020-12-03 15:21:16 +01:00
Rigel Kent d4132d3f56 more explicit error messages for file uploads 2020-12-03 10:15:49 +01:00
Arman 3520d38515
add My History API to openapi (#3363)
Co-authored-by: Rigel Kent <sendmemail@rigelk.eu>
Co-authored-by: Rigel Kent <par@rigelk.eu>
2020-11-26 00:27:59 +01:00
Rigel Kent 64b5c2476a
remove outdated badges, add authorization to caption routes 2020-11-20 11:29:37 +01:00
Chocobozzz 0aa52e1707
Add ability to display all channel/account videos 2020-11-18 15:29:38 +01:00
Chocobozzz 4e239e3554 Add open api doc for live 2020-11-09 15:33:04 +01:00
Arman cd372e840b Fix boolean types, add missing downloadEnabled 2020-09-22 08:19:37 +02:00
Chocobozzz b43d19cf44
Bumped to version v2.4.0 2020-09-08 11:12:05 +02:00
Chocobozzz 5520f6658e
Bumped to version v2.4.0-rc.1 2020-08-27 08:46:36 +02:00
Chocobozzz 20dcfd7498
Deprecate old static routes 2020-08-26 15:03:00 +02:00
Chocobozzz 000ca2a898
Update openapi documentation
Regarding "files" property of the video object
2020-08-26 14:45:39 +02:00
Chocobozzz c00f96cef9
Fix openapi schema variable interpolation 2020-08-03 09:12:51 +02:00
Chocobozzz fcc4466e7c
Fix openapi schema 2020-08-03 08:59:41 +02:00
Chocobozzz 668b7f096e Add openapi doc 2020-07-31 11:35:19 +02:00
Jinn Koriech 0579dee3b2
Switch examples to curl since httpie has a 512MB limit (#3012)
Co-authored-by: Rigel Kent <par@rigelk.eu>
2020-07-28 13:48:55 +02:00
Chocobozzz 2291a412d2
Merge branch 'release/2.3.0' into develop 2020-07-21 11:16:28 +02:00
Chocobozzz 97aaeadad5
Bumped to version v2.3.0 2020-07-21 10:03:58 +02:00
Chocobozzz e3489df98e Update openapi 2020-07-10 14:02:41 +02:00
Chocobozzz 17b07dc5a2 Update contributing guide 2020-07-10 14:02:41 +02:00
Chocobozzz 310b5219b3 Add new abuses tests 2020-07-10 14:02:41 +02:00
Chocobozzz 4f32032fed Add migrations 2020-07-10 14:02:41 +02:00
Chocobozzz 27647da17f
Bumped to version v2.3.0-rc.1 2020-07-06 11:09:12 +02:00
Rigel Kent 8491293b02
add blocked filter in users list to filter banned users
fixes #2914
2020-07-02 22:50:33 +02:00
Rigel Kent 6957f698d0
deprecate video abuse route, soon to be superseeded 2020-07-02 16:30:52 +02:00
Chocobozzz 1e904cde34
Fix users tests 2020-07-02 14:23:50 +02:00
Rigel Kent 00494d6e2a
allow limiting video-comments rss feeds to an account or video channel 2020-06-27 13:20:59 +02:00
Rigel Kent 2c31866430
update openapi spec with links and callback for search 2020-06-27 13:12:34 +02:00
Rigel Kent 84f6e32c7b
add examples and descriptions, missing filters for abuses in openapi spec 2020-06-26 13:43:32 +02:00
Rigel Kent 64ffd1deb2
switch plugins public settings to unauthenticated in the openapi spec 2020-06-26 13:43:32 +02:00
Rigel Kent 7461d440c2
add plugins to the openapi spec 2020-06-25 12:16:08 +02:00
Rigel Kent 04b703f6fc
add redundancy to the openapi spec 2020-06-25 11:14:51 +02:00
Rigel Kent f4d5998127
add notifications to the openapi spec 2020-06-25 11:14:51 +02:00
Rigel Kent d73810bede
fix openapi path for feeds examples 2020-06-24 15:13:24 +02:00
Rigel Kent 06746a8b25
add feeds to the openapi spec 2020-06-24 14:16:25 +02:00
Rigel Kent 1ebddadd07
predefined report reasons & improved reporter UI (#2842)
- added `startAt` and `endAt` optional timestamps to help pin down reported sections of a video
- added predefined report reasons
- added video player with report modal
2020-06-22 13:00:39 +02:00
Chocobozzz ad031145a9
Add rest api doc for index search 2020-06-10 15:18:15 +02:00
Chocobozzz a55c98031b
Bumped to version v2.2.0 2020-06-02 10:04:05 +02:00
Chocobozzz d9cb522780
Bumped to version v2.2.0-rc.1 2020-05-18 08:13:34 +02:00
Chocobozzz 63748ad005
Add files section to streaming playlists openapi doc 2020-05-13 11:57:38 +02:00
Chocobozzz 6676056a31
Add max count information in api doc 2020-05-13 11:31:42 +02:00
Chocobozzz 2dd530129f
Fix openapi search endpoint 2020-04-22 08:40:24 +02:00
Chocobozzz b9e924a8d6
Fix playlist element param in api doc 2020-04-21 16:47:39 +02:00
Chocobozzz 0590bb4692
Add playlist exist api doc 2020-04-21 16:41:31 +02:00
Chocobozzz 59c794a5dc
Add videos list filters param in api doc 2020-04-21 16:03:51 +02:00
Chocobozzz 98639806c0
Fix comment body api doc 2020-04-21 15:28:17 +02:00
Chocobozzz 50e16ccf61
Improve abuse api doc 2020-04-21 15:24:19 +02:00
Chocobozzz c18431505f
Add API doc for playlists 2020-04-21 15:04:39 +02:00
Chocobozzz b029d58a27
Openapi consistency 2020-04-21 12:19:00 +02:00
Chocobozzz 93468b0889
Bumped to version v2.1.1 2020-02-28 13:45:42 +01:00
Rigel Kent f30736c891
Minor update to the OpenAPI: instance config recent additions 2020-02-21 21:25:55 +01:00
John Livingston 45f1bd72a0
Creating a user with an empty password will send an email to let him set his password (#2479)
* Creating a user with an empty password will send an email to let him set his password

* Consideration of Chocobozzz's comments

* Tips for optional password

* API documentation

* Fix circular imports

* Tests
2020-02-17 10:16:52 +01:00
Average Dude 002df3813d OpenAPI clients generation 2020-02-14 14:14:14 +01:00
Chocobozzz 7024e9120b
Merge branch 'release/2.1.0' into develop 2020-02-11 09:44:59 +01:00
Chocobozzz 6b7e246ac7
Bumped to version v2.1.0 2020-02-11 08:35:39 +01:00
Rigel Kent 06bcfbd9f7 Downsample to the closest divisor standard framerate 2020-01-29 13:42:15 +01:00
Chocobozzz 5aafc6f373
Bumped to version v2.1.0-rc.1 2020-01-27 08:44:04 +01:00
Rigel Kent 205ed5b7dc
Add video caption upload documentation and improve error message
fixes #2038
2020-01-09 14:11:39 +01:00
Rigel Kent 5b0413ddaa
Add author indicator to the comment replies loader 2019-12-28 11:48:53 +01:00
Rigel Kent 71810d0bcb
Update OpenAPI documentation to include basic playlists and new comment sorting 2019-12-27 17:52:53 +01:00
Matthieu De Beule f6d51cfe2a Fix Ruby and Python REST API examples
The previous examples where wrong, since they used a POST request.
I used the requests library for Python, since that is what most people
would want to use.
I removed the http.verify_mode in the Ruby example since I don't think
it is good practice to tell people to not verify HTTPS requests
2019-11-12 14:46:43 +01:00
Chocobozzz e8e09e27ff
Bumped to version v2.0.0 2019-11-12 08:04:15 +01:00
Chocobozzz 16fd7c4b86
Bumped to version v2.0.0-rc.1 2019-10-29 08:26:43 +01:00
Chocobozzz 747b17c7c1
Fix openapi 2019-10-29 08:26:24 +01:00
Frank Sträter a1b572ea76 Remove feeds from API documentation 2019-09-18 15:24:33 +02:00
Chocobozzz 8c559fad1e
Merge branch 'release/1.4.0' into develop 2019-09-11 11:09:18 +02:00
Chocobozzz 22af8aac79
Bumped to version v1.4.1 2019-09-09 08:15:24 +02:00
Chocobozzz 076d3ace1e
Bumped to version v1.4.0 2019-08-26 11:56:10 +02:00
Chocobozzz f01dc977ae
Bumped to version v1.4.0 2019-08-26 08:49:46 +02:00
Frank Sträter 2a8ae7595c Update API documentation for accounts and config (#2072)
* Update Actor and Account schemas

* Fix mixed up paramaters for /accounts

* Update ServerConfig schema

* Add ServerConfigAbout and ServerConfigCustom schemas
2019-08-22 13:33:07 +02:00
Frank Sträter 0ad45af705 Improved description of all file uploads (#2053)
* Add format:binary for file uploads

* Fix wrongly named field for encoding

* Fix typo in field name

* Add contentType for torrentfile and captionfile

* Add contentType for videofile
2019-08-21 08:32:15 +02:00
Frank Sträter 37db4176f2 Add originallyPublishedAt to PUT videos + change HTTP response to 204 2019-08-14 11:10:17 +02:00
Chocobozzz 54beb819f0
Bumped to version v1.4.0-rc.1 2019-08-13 15:34:39 +02:00
Frank Sträter 07d02f6de8 Specify the restrictions on tags array and it's string items (#2016)
* Fixed 2 typos

* Specify tags array restrictions
2019-08-12 10:19:45 +02:00
Frank Sträter b3d1054e86 Fixed 2 typos 2019-08-07 10:36:22 +02:00
Frank Sträter f9f8909298 Add originallyPublishedAt in /videos/upload to the OpenAPI document 2019-08-05 14:18:03 +02:00
Chocobozzz bfbd912886 Fix broken playlist api 2019-08-01 09:11:04 +02:00
Chocobozzz 1f82e3e885
Add video import in open api 2019-07-29 14:33:16 +02:00
Chocobozzz 094ff8e692
Fix mocha commands 2019-07-29 14:16:03 +02:00
Dirk Kelly 512a575971 Updated openapi.html ExternalDocs url 2019-07-08 16:06:55 +02:00
Chocobozzz cb9d028a6b
Fix openapi schema 2019-07-03 17:28:09 +02:00
Chocobozzz b6a1dd4d1b
Merge branch 'release/v1.3.0' into develop 2019-06-17 09:48:41 +02:00
Chocobozzz 0109c4921c
Bumped to version v1.3.1 2019-06-17 08:38:32 +02:00
Chocobozzz 5dce26d202
Improve video REST documentation 2019-06-11 10:01:22 +02:00
Chocobozzz 1f20622f2b
Improve registration
* Add ability to set the user display name
 * Use display name to guess the username/channel name
 * Add explanations about what is the purpose of a username/channel name
 * Add a loader at the "done" step
2019-06-07 17:05:42 +02:00
Chocobozzz a41b9da1a9
Merge branch 'release/v1.3.0' into develop 2019-06-03 09:32:33 +02:00
Chocobozzz 88ebb43310
Bumped to version v1.3.0 2019-06-03 08:47:25 +02:00
Chocobozzz 7d14d4d2ca
Server: Bulk update videos support field 2019-05-31 16:44:46 +02:00
Raphael 089caedc6f refactor(docs): typo in Open API reference 2019-05-24 13:53:43 +02:00
Chocobozzz 048b694661
Fix videos list response in rest api doc 2019-05-24 10:17:54 +02:00
Chocobozzz ee89e8fd1a
Fix video privacy in rest api documentation 2019-05-24 10:09:27 +02:00
Chocobozzz 67ae04a5e7
Add video caption rest api doc 2019-05-24 10:01:08 +02:00
Chocobozzz 63d17405d0
Fix role documentation in rest api 2019-05-24 09:25:30 +02:00
Chocobozzz 46e9407c60
Update URLs to point to new documentation site 2019-05-23 14:58:34 +02:00
Chocobozzz faebb42355
Bumped to version v1.3.0-rc.2 2019-05-22 09:37:13 +02:00
Chocobozzz ea0877b405
Bumped to version v1.3.0-rc.2 2019-05-22 08:22:14 +02:00
Chocobozzz 3fbbadabea
Bumped to version v1.3.0-rc.1 2019-05-14 14:00:03 +02:00
Chocobozzz ff40a4ebab
dailyVideoQuota -> videoQuotaDaily in doc 2019-04-24 17:35:59 +02:00
Chocobozzz 9ce3d3027e
Fix video channel API route param in doc 2019-04-24 16:57:34 +02:00
Chocobozzz fbe1bc2afa
Add videoQuotaDaily in documentation 2019-04-24 16:54:17 +02:00
Yohan Boniface c100a6142e Add /accounts/:username/ratings endpoint (#1756)
* Add /users/me/videos/ratings endpoint

* Move ratings endpoint from users to accounts

* /accounts/:name/ratings: add support for rating= and sort=

* Restrict ratings list to owner

* Wording and better way to ensure current account
2019-04-09 11:02:02 +02:00
Mathieu Agopian 12fed49eba Add the video tags restrictions to the API docs
Fixes #1744
2019-03-29 16:58:05 +01:00
Chocobozzz 28c8e63e55
Add video import enpoint in openapi 2019-02-19 17:56:50 +01:00
Chocobozzz 301fc49c17
Bumped to version v1.2.1 2019-02-15 09:43:39 +01:00
Chocobozzz f5305c04aa
Bumped to version v1.2.0 2019-02-06 11:57:57 +01:00
Chocobozzz cfeae291c0
Bumped to version v1.2.0-rc.1 2019-01-17 16:15:20 +01:00
Chocobozzz 1fd12c7cfa
Fix video tags update/upload in openapi 2019-01-09 14:10:25 +01:00
Rigel Kent e76d578414
(doc) update API spec to include user subscription routes 2019-01-03 18:00:29 +01:00
Rigel Kent f50ab1c289
(doc) fix syntax in openapi spec for watching progress 2018-12-08 18:56:12 +01:00
Rigel Kent 2beb98952a
change type of languageOneOf query parameter 2018-12-04 13:51:10 +01:00
Chocobozzz b6ff69719d
Bumped to version v1.1.0 2018-12-04 08:29:12 +01:00
Rigel Kent fd5af7a269
add parameters to GET /videos route spec 2018-11-24 18:18:56 +01:00
Chocobozzz 6cc98dfff3
Add open api bump version in release script 2018-11-22 15:04:14 +01:00
Rigel Kent 0f49023061
make POST /users have integer role enum 2018-11-21 11:52:30 +01:00
Rigel Kent d216b5387f
add job state in path in openapi spec 2018-11-19 22:10:35 +01:00
Rigel Kent 65f0267930
fix rest api quickstart and specify values in openapi spec 2018-11-19 22:07:38 +01:00
Rigel Kent 9d0b856e93
(quickfix) typo in openapi spec groups 2018-11-17 15:17:33 +01:00
Rigel Kent 9ab81fc4a9
grouping moderation endpoints in the REST API spec 2018-11-17 15:16:01 +01:00
Rigel Kent 5776f78e3b
grouping tags by main category in the spec 2018-11-16 14:33:49 +01:00
Rigel Kent 6441981bc6
adding ownership and watching video APIs to the spec 2018-11-16 13:31:24 +01:00
Rigel Kent cfd140abd6
remove superfluous privacy field for upload 2018-11-16 13:31:23 +01:00