Commit Graph

344 Commits (f8b8dc674e9aec5a8b91357304541fc511284700)

Author SHA1 Message Date
Chocobozzz 7dcd45a9a2
Don't not autoplay live without autoplay setting 2022-12-14 14:06:12 +01:00
Chocobozzz 71e3e879c0
Support reinjecting token in private m3u8 playlist 2022-12-02 15:25:20 +01:00
Chocobozzz 3299c9e124
Add missing uuids search query doc 2022-11-23 15:50:42 +01:00
Chocobozzz 9e5cf66be7
Breaking API: Consistency with role id/label 2022-10-28 16:34:08 +02:00
Chocobozzz 3545e72c68 Put private videos under a specific subdirectory 2022-10-24 14:48:24 +02:00
Chocobozzz a69ea13086
Add open api doc for two factor auth 2022-10-07 14:53:30 +02:00
Chocobozzz cfd57d2ca0
Live supports object storage
* Sync live files (segments, master playlist, resolution playlist,
   segment sha file) into object storage
 * Automatically delete them when the live ends
 * Segment sha file is now a file on disk, and not stored in memory
   anymore
2022-10-04 10:03:17 +02:00
Chocobozzz 914af0d9e4
Add missing removeEventListener doc 2022-09-09 11:40:14 +02:00
Chocobozzz fd3c2e8705
Add playback metric endpoint sent to OTEL 2022-08-16 10:33:27 +02:00
Chocobozzz 87cd93970d
Add missing openapi 2022-08-10 14:57:26 +02:00
Chocobozzz a3b472a12e
Add ability to list imports of a channel sync 2022-08-10 14:32:00 +02:00
Florent 2a491182e4
Channel sync (#5135)
* Add external channel URL for channel update / creation (#754)

* Disallow synchronisation if user has no video quota (#754)

* More constraints serverside (#754)

* Disable sync if server configuration does not allow HTTP import (#754)

* Working version synchronizing videos with a job (#754)

TODO: refactoring, too much code duplication

* More logs and try/catch (#754)

* Fix eslint error (#754)

* WIP: support synchronization time change (#754)

* New frontend #754

* WIP: Create sync front (#754)

* Enhance UI, sync creation form (#754)

* Warning message when HTTP upload is disallowed

* More consistent names (#754)

* Binding Front with API (#754)

* Add a /me API (#754)

* Improve list UI (#754)

* Implement creation and deletion routes (#754)

* Lint (#754)

* Lint again (#754)

* WIP: UI for triggering import existing videos (#754)

* Implement jobs for syncing and importing channels

* Don't sync videos before sync creation + avoid concurrency issue (#754)

* Cleanup (#754)

* Cleanup: OpenAPI + API rework (#754)

* Remove dead code (#754)

* Eslint (#754)

* Revert the mess with whitespaces in constants.ts (#754)

* Some fixes after rebase (#754)

* Several fixes after PR remarks (#754)

* Front + API: Rename video-channels-sync to video-channel-syncs (#754)

* Allow enabling channel sync through UI (#754)

* getChannelInfo (#754)

* Minor fixes: openapi + model + sql (#754)

* Simplified API validators (#754)

* Rename MChannelSync to MChannelSyncChannel (#754)

* Add command for VideoChannelSync (#754)

* Use synchronization.enabled config (#754)

* Check parameters test + some fixes (#754)

* Fix conflict mistake (#754)

* Restrict access to video channel sync list API (#754)

* Start adding unit test for synchronization (#754)

* Continue testing (#754)

* Tests finished + convertion of job to scheduler (#754)

* Add lastSyncAt field (#754)

* Fix externalRemoteUrl sort + creation date not well formatted (#754)

* Small fix (#754)

* Factorize addYoutubeDLImport and buildVideo (#754)

* Check duplicates on channel not on users (#754)

* factorize thumbnail generation (#754)

* Fetch error should return status 400 (#754)

* Separate video-channel-import and video-channel-sync-latest (#754)

* Bump DB migration version after rebase (#754)

* Prettier states in UI table (#754)

* Add DefaultScope in VideoChannelSyncModel (#754)

* Fix audit logs (#754)

* Ensure user can upload when importing channel + minor fixes (#754)

* Mark synchronization as failed on exception + typos (#754)

* Change REST API for importing videos into channel (#754)

* Add option for fully synchronize a chnanel (#754)

* Return a whole sync object on creation to avoid tricks in Front (#754)

* Various remarks (#754)

* Single quotes by default (#754)

* Rename synchronization to video_channel_synchronization

* Add check.latest_videos_count and max_per_user options (#754)

* Better channel rendering in list #754

* Allow sorting with channel name and state (#754)

* Add missing tests for channel imports (#754)

* Prefer using a parent job for channel sync

* Styling

* Client styling

Co-authored-by: Chocobozzz <me@florianbigard.com>
2022-08-10 09:53:39 +02:00
Chocobozzz f9079a78bd
Add studio API documentation 2022-08-01 15:50:15 +02:00
Chocobozzz 12d84abeca
Include video file id in API 2022-07-29 11:33:27 +02:00
Chocobozzz 42b4063699
Add ability for client to create server logs 2022-07-18 11:37:18 +02:00
Chocobozzz b44b5a83eb
Add /server/stats API documentation 2022-07-12 14:17:37 +02:00
Chocobozzz 4c8336af67
Update embed URL query doc 2022-06-28 14:49:05 +02:00
kontrollanten 2e401e8575
store uploaded video filename (#4885)
* store uploaded video filename

closes #4731

* dont crash if videos channel exist

* migration: use raw query

* video source: fixes after code review

* cleanup

* bump migration

* updates after code review

* refactor: use checkUserCanManageVideo

* videoSource: add openapi doc

* test(check-params/video-source): fix timeout

* Styling

* Correctly set original filename as source

Co-authored-by: Chocobozzz <me@florianbigard.com>
2022-06-21 15:31:25 +02:00
luz paz 7a4fd56ccd Fix various typos
Found via `codespell -q 3 -S ./CREDITS.md,./CHANGELOG.md,./client/src/locale,./yarn.lock,./client/yarn.lock -L doubleclick,followings,nd,ot,ro,serie,splitted,tread,truthy`
2022-06-07 16:41:21 +02:00
Florian CUNY c6f8ca4d65
Added "total views" in the my channels list (#5007)
* Added "total views" in the my channels list

Implements https://github.com/Chocobozzz/PeerTube/issues/4331

* Fix lint

* applied suggested change

* updated openAPI spec for the use "withStats" when getting video channels

* applied code change

* removed GROUP BY in query

* Fixed test
2022-05-31 16:01:11 +02:00
Chocobozzz 60f013e103
Add control bar option for peertube player 2022-05-20 09:59:53 +02:00
Chocobozzz 49f0468d44
Add filter by start/end date overall stats in api 2022-05-05 14:13:14 +02:00
Chocobozzz f18a060a83
Remove comments, rates and views from stats
It prevent us to apply date filters
2022-05-05 13:47:51 +02:00
Chocobozzz 26e3e98ff0
Support live session in server 2022-05-03 14:49:15 +02:00
Chocobozzz 961cbe4269
Fix getting live by anonymous user 2022-04-22 09:50:20 +02:00
Chocobozzz acc6a1cba7
Add missing video states to rest api doc 2022-04-19 08:57:24 +02:00
Chocobozzz d09ed46e71
Improve videos sort documentation 2022-04-15 14:50:09 +02:00
Chocobozzz bfbdfc584a Add event doc to view endpoint 2022-04-15 09:49:35 +02:00
Chocobozzz cf158e7e24 Update open api routes 2022-04-15 09:49:35 +02:00
Chocobozzz b4a4bcd20e
Remove invalid info from REST API doc 2022-03-21 08:43:15 +01:00
Chocobozzz f443a74649 Add latency setting support 2022-03-09 09:23:10 +01:00
kontrollanten d0800f7661
Implement avatar miniatures (#4639)
* client: remove unused file

* refactor(client/my-actor-avatar): size from input

Read size from component input instead of scss, to make it possible to
use smaller avatar images when implemented.

* implement avatar miniatures

close #4560

* fix(test): max file size

* fix(search-index): normalize res acc to avatarMini

* refactor avatars to an array

* client/search: resize channel avatar to 120

* refactor(client/videos): remove unused function

* client(actor-avatar): set default size

* fix tests and avatars full result

When findOne is used only an array containting one avatar is returned.

* update migration version and version notations

* server/search: harmonize normalizing

* Cleanup avatar miniature PR

Co-authored-by: Chocobozzz <me@florianbigard.com>
2022-02-28 08:34:43 +01:00
Chocobozzz b25fdc73fd
Add fixme info 2022-02-02 09:20:40 +01:00
Chocobozzz 419b520ca4
Add ability to cancel & delete video imports 2022-01-19 14:31:05 +01:00
Chocobozzz 7177b46ca1
Add ability to delete history element 2022-01-18 11:23:41 +01:00
Chocobozzz 5097cbda4a
Add missing password field to update user api doc 2022-01-10 10:08:14 +01:00
Florian CUNY 597da8dd81 Updated notification types in openapi reference
Relates to https://github.com/Chocobozzz/PeerTube/issues/1565
2021-12-23 09:56:58 +01:00
Chocobozzz a9bfa85d2c
Add ability for admins to set default p2p policy 2021-12-16 10:08:55 +01:00
Chocobozzz bdf70330e4
Add account block status in openapi 2021-12-07 11:30:53 +01:00
Chocobozzz ad5db1044c
Add ability to run transcoding jobs 2021-11-18 15:20:57 +01:00
Chocobozzz 527a52ac42
Add ability to filter out public videos from admin 2021-11-12 14:23:22 +01:00
Chocobozzz 51353d9a03 Refactor video views
Introduce viewers attribute for live videos
Count views for live videos
Reduce delay to see the viewer update for lives
Add ability to configure video views buffer interval and view ip
expiration
2021-11-09 15:00:31 +01:00
Chocobozzz df1db951c5
Support RTMPS 2021-11-05 11:38:17 +01:00
Florian CUNY 8dd754c767
Added 144p encoding (#4492)
* Added 144p encoding

Implements https://github.com/Chocobozzz/PeerTube/issues/4428

* Fixed typo in core-utils

* Increased BitPerPixel for 144p

* Disabled 144p by default in test.yaml

* Another try at fixing tests

* Fixed test in video-transcoder (api-3)

* Fixed test in video-imports (api-4)

* Fixed test in live-constraints (api-2)

* Tried to fix tests in api-3 again

* Revert "Tried to fix tests in api-3 again"

This reverts commit 266e1143fa37f333d149c2c2791c7bd33621ac14.

* Fixed test in config.ts (api-2)

* Try to fix test in video-hls.ts (api-3)

* Fixed test in video-transcoder.ts (api-3)

* Fix tests

Co-authored-by: Chocobozzz <me@florianbigard.com>
2021-11-05 10:23:02 +01:00
Chocobozzz d324756edb
Add ability to filter by file type 2021-11-03 11:32:41 +01:00
Chocobozzz 7e7d8e4853
Some fixes for admin videos list 2021-11-02 11:13:13 +01:00
Chocobozzz 2760b454a7 Deprecate filter video query
Introduce include and isLocal instead
2021-10-29 11:48:21 +02:00
Rigel Kent 276250f0a3
prevent multiple post-process triggering of upload-resumable (#4175)
* prevent multiple post-process triggering of upload-resumable

* switch from 409 to 503 for upload being processed

* Improve resumable upload check

Co-authored-by: Chocobozzz <me@florianbigard.com>
2021-10-25 17:42:20 +02:00
Chocobozzz 7f91ecbde4
Completely remove torrent static path 2021-10-22 10:32:53 +02:00
Chocobozzz 906f46d084
Split check user params tests 2021-10-20 09:25:44 +02:00
JustAnotherArchivist 9c58375c08 Add missing start and count parameters to playlist video list API endpoint documentation 2021-10-20 08:55:32 +02:00
Chocobozzz 8f58172565
Allow accounts to skip account setup modal 2021-08-27 10:15:55 +02:00
Chocobozzz 4d029ef8ec
Add ability for instances to follow any actor 2021-07-21 13:35:31 +02:00
Chocobozzz f49ff55162
Bumped to version v3.3.0 2021-07-20 15:08:50 +02:00
Chocobozzz deecf33724
Bumped to version v3.3.0-rc.1 2021-07-05 15:19:45 +02:00
Chocobozzz d4a8e7a65f Support short uuid for GET video/playlist 2021-06-29 14:56:35 +02:00
frankstrater 2370d9cc4a Add downloadEnabled boolean to PUT video 2021-06-25 15:00:21 +02:00
Chocobozzz 37a44fc915 Add ability to search playlists 2021-06-25 14:44:01 +02:00
Rigel Kent c756bae079
add video upload types, add doc middleware to more routes 2021-06-06 10:21:06 +02:00
Rigel Kent a31e9b183e
add invalid_token error to openapi spec 2021-06-04 08:40:08 +02:00
Rigel Kent 81628e5069 refactor error code values for URI compatibility 2021-06-02 16:57:07 +02:00
Rigel Kent 1cfbdd30d9 refactor deprecated body-parser usage 2021-06-02 16:57:07 +02:00
Rigel Kent 76148b27f7 refactor API errors to standard error format 2021-06-02 16:57:07 +02:00
Chocobozzz 1a148b4792
Bumped to version v3.2.1 2021-06-01 11:03:52 +02:00
Chocobozzz c215e627b5
Fix openapi doc for resumable upload 2021-05-27 16:06:24 +02:00
Chocobozzz 2539932e16
Instance homepage support (#4007)
* Prepare homepage parsers

* Add ability to update instance hompage

* Add ability to set homepage as landing page

* Add homepage preview in admin

* Dynamically update left menu for homepage

* Inject home content in homepage

* Add videos list and channel miniature custom markup

* Remove unused elements in markup service
2021-05-27 15:59:55 +02:00
Chocobozzz eb34ec30e0
Merge branch 'release/3.2.0' into develop 2021-05-27 14:04:15 +02:00
Chocobozzz 4e67a45cd9
Bumped to version v3.2.0 2021-05-27 13:56:49 +02:00
Chocobozzz 85a60d8beb
Fix broken openapi schema 2021-05-27 11:52:03 +02:00
Rigel Kent e2adb8cb40
add operationId to common operations 2021-05-26 14:24:51 +02:00
Rigel Kent 3f71c4c068
fix typo in operationId in openapi spec 2021-05-24 19:24:44 +02:00
Rigel Kent 3cf8874f1a
add code examples for login in openapi spec 2021-05-14 19:19:10 +02:00
Rigel Kent c76ecc3ff7
paginate response for abuse list in openapi spec
closes #4094
2021-05-13 23:40:50 +02:00
Rigel Kent 65cb01a252
modify response for adding abuse in openapi spec
closes #4093
2021-05-13 23:37:39 +02:00
Rigel Kent ca98c8f844
modify return code for adding/removing blocked servers in openapi spec
closes #4095
2021-05-13 23:33:24 +02:00
Rigel Kent 06dc7a1b96
add accept/reject routes for server followers in openapi spec 2021-05-13 14:52:31 +02:00
Rigel Kent da35b419cd
fix route prefix for blocklist routes in openapi spec
closes #4091
2021-05-13 14:20:04 +02:00
Rigel Kent a4ce422305
fix route prefix for video redundancy routes in openapi spec
closes #4090
2021-05-13 14:18:02 +02:00
Rigel Kent b036eb057e
more faithful error description in openapi spec 2021-05-13 14:10:11 +02:00
Rigel Kent e2464d22a5
add login/logout routes in openapi spec 2021-05-12 21:49:00 +02:00
Rigel Kent 0ae3ebb03e
add cors section in openapi spec 2021-05-12 21:21:52 +02:00
Rigel Kent c00100b607
fix video playlistId/videoId for video playlists in openapi spec
closes #4081
2021-05-12 14:33:19 +02:00
Rigel Kent 9a320a06b6
add response content for createVideoChannel endpoint in openapi spec
closes #4077
2021-05-12 13:44:40 +02:00
Rigel Kent 4c440cedcc
add rating field for video like endpoint in openapi spec
closes #4080
2021-05-11 21:44:32 +02:00
Rigel Kent 77b0c6b58f
add missing user update me fields in openapi spec 2021-05-11 21:38:33 +02:00
Rigel Kent bf3c3feafb
add missing video comment fields in openapi spec
closes #4079
2021-05-11 20:19:45 +02:00
Rigel Kent ac2a5b5427
factorized upload and import post fields in openapi spec
closes #4075
2021-05-11 10:07:43 +02:00
Chocobozzz 462212107a
Bumped to version v3.2.0-rc.1 2021-05-11 09:05:52 +02:00
Rigel Kent 2c4876f215
added descriptions for video files/import fields in openapi spec 2021-05-11 01:50:42 +02:00
Rigel Kent de3876b815
explicit error formatting variant in openapi spec 2021-05-11 01:50:42 +02:00
Rigel Kent b8375da931
provide more schema examples in openapi spec 2021-05-11 01:50:42 +02:00
Rigel Kent 045bcd0d18
refactor subscriptions response from list to totalDataList in openapi spec
closes #4067
2021-05-10 14:43:44 +02:00
Rigel Kent 985ece5755
refactor abuses response list to totalDataList in openapi spec
closes #4066
2021-05-10 14:26:21 +02:00
Rigel Kent 40cfb36b9d
specify operationId in openapi spec and factorize videoconstant ids 2021-05-10 14:17:35 +02:00
Rigel Kent fd5586b337
specify getUserId variant in openapi spec
closes #4062
2021-05-10 12:01:49 +02:00
Rigel Kent 6bd7f09781
secify username patterns for user create/register in openapi spec
closes #4061
2021-05-10 11:27:35 +02:00
Rigel Kent 5844dde3b8
fix imports list response in openapi spec
closes #4063
2021-05-10 11:27:35 +02:00
Rigel Kent 30b40713f4
fix response in openapi spec for quota and video ratings
closes #4064
closes #4065
2021-05-10 11:27:35 +02:00
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