Commit Graph

211 Commits

Author SHA1 Message Date
Chocobozzz
2cb03dc1f4 Add banners support 2021-04-08 10:07:53 +02:00
Chocobozzz
f479685678 Agnostic actor image storage 2021-04-08 10:07:53 +02:00
Chocobozzz
f66db4d5c8 Fix feeds 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
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
1896bca09e
Support transcoding options/encoders by plugins 2021-01-28 15:55:39 +01:00
Rigel Kent
5bcbcbe338 modularize abstract video list header and implement video hotness recommendation variant 2021-01-28 15:55:34 +01:00
Rigel Kent
b7085c7132 add support for 1440p (Quad HD/QHD/WQHD) videos 2021-01-13 09:14:09 +01:00
Chocobozzz
a800dbf345
Live views update 2020-12-09 16:31:42 +01:00
Chocobozzz
bb4ba6d94c
Add permanent live support 2020-12-03 15:21:16 +01:00
Chocobozzz
5a547f69d5 Support encoding profiles 2020-11-25 10:07:51 +01:00
Chocobozzz
0aa52e1707
Add ability to display all channel/account videos 2020-11-18 15:29:38 +01:00
Chocobozzz
0f8d00e314
Implement video comment list in admin 2020-11-13 16:38:23 +01:00
Chocobozzz
97969c4edf Add check constraints live tests 2020-11-09 15:33:04 +01:00
Chocobozzz
af4ae64f6f Begin live tests 2020-11-09 15:33:04 +01:00
Chocobozzz
77e9f859c6 Add check params live tests 2020-11-09 15:33:04 +01:00
Chocobozzz
b5b687550d Add ability to save live replay 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
b2c76204f9
Fix VideoStreamingPlaylist model 2020-08-27 10:08:54 +02:00
Chocobozzz
0fecf427d3
Don't use @shared in models
So other projects can use them
2020-08-27 09:58:27 +02:00
Chocobozzz
7294aab0c8 Add ability to set custom field to video form 2020-08-21 15:39:51 +02:00
Rigel Kent
02c01341f4 add ng-select for templatable select options
- create select-tags component to replace ngx-chips
- create select-options to factorize option selection in forms
- create select-channel to simplify channel selection
- refactor tags validation
2020-08-11 09:03:39 +02:00
Chocobozzz
951b582f52
Add ability to share playlists in modal 2020-08-07 13:43:48 +02:00
Chocobozzz
bd45d503e5 Reorganize shared models 2020-08-07 08:28:14 +02:00
Chocobozzz
583eb04b54 Upgrade to angular 10 2020-08-07 08:28:14 +02:00
Chocobozzz
d95d155988 Use 3 tables to represent abuses 2020-07-10 14:02:41 +02:00
Rigel Kent
b8b3abac6a
fix change ownership typing 2020-06-28 22:45:27 +02:00
Chocobozzz
1942f11d5e Lazy load all routes 2020-06-23 16:00:49 +02:00
Chocobozzz
67ed6552b8 Reorganize client shared modules 2020-06-23 16:00:49 +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
49919ca16b
More robust max bitrate calculation 2020-06-17 09:22:56 +02:00
Chocobozzz
1ba471c55f
Add videos count in channels list 2020-06-16 14:13:01 +02:00
Chocobozzz
5fb2e2888c First implem global search 2020-06-10 14:02:41 +02:00
Rigel Kent
2158ac9034
Add server plugin filter hooks for import with torrent and url (#2621)
* Add server plugin filter hooks for import with torrent and url

* WIP: pre and post-import filter hooks

* Rebased

* Cleanup filters to accept imports

Co-authored-by: Chocobozzz <me@florianbigard.com>
2020-05-14 11:10:26 +02:00
Chocobozzz
feb34f6b6b Use video abuse filters on client side 2020-05-07 08:33:34 +02:00
Rigel Kent
25a42e293b Fix rowsPerPage change, add filter clear button, update video-abuse-list search query param dynamically 2020-05-04 15:01:44 +02:00
Rigel Kent
0db536f1e0 Only show updatedAt date of abuse if different from createdAt 2020-05-04 15:01:44 +02:00
Rigel Kent
aeb1bed983 Factorize video display in table for moderation components, apply it to blacklisted videos as well 2020-05-01 16:41:02 +02:00
Rigel Kent
5fd4ca0051 Add nth abuse count for a given video, add reporter/reportee reports stats 2020-05-01 16:41:02 +02:00
Rigel Kent
86521a67b2 Add video channel and video thumbnail, rework video appearance in row 2020-05-01 16:41:02 +02:00
Rigel Kent
68d19a0ace Make sure a report doesn't get deleted upon the deletion of its video 2020-05-01 16:41:02 +02:00
Rigel Kent
3d527ba173 Use inner join and document code for viewr stats for channels 2020-03-31 10:29:24 +02:00
Rigel Kent
8165d00ac6 View stats for channels 2020-03-31 10:29:24 +02:00
Rigel Kent
8319d6ae72
Add video file metadata to download modal, via ffprobe (#2411)
* Add video file metadata via ffprobe

* Federate video file metadata

* Add tests for file metadata generation

* Complete tests for videoFile metadata federation

* Lint migration and video-file for metadata

* Objectify metadata from getter in ffmpeg-utils

* Add metadataUrl to all videoFiles

* Simplify metadata API middleware

* Load playlist in videoFile when requesting metadata
2020-03-10 14:39:40 +01:00
Rigel Kent
06bcfbd9f7 Downsample to the closest divisor standard framerate 2020-01-29 13:42:15 +01:00
Chocobozzz
b764380ac2 Add ability to list redundancies 2020-01-28 11:35:26 +01:00
Chocobozzz
51b34a11b2
Share playlists state 2020-01-06 13:34:08 +01:00
Rigel Kent
5b0413ddaa
Add author indicator to the comment replies loader 2019-12-28 11:48:53 +01:00
Chocobozzz
22a73cb879
Add internal privacy mode 2019-12-12 16:51:59 +01:00
Chocobozzz
f56ebb3616
Improve 4k resolution bitrate 2019-12-05 15:12:58 +01:00
Chocobozzz
77e0851758
Ensure local actors preferredName don't already exist
Before applying this commit, check you don't have duplicates local
actors in your database:

select "preferredUsername" from actor where "serverId" is null group by "preferredUsername" having count(*) > 0

If you have some results, it seems you have duplicate channels/accounts.
For every entry, you'll have to change the preferredUsername of the
entry you want (so they are unique). The updated actors could have some
federations issues. Sorry.
2019-12-05 14:57:14 +01:00
Julien Maulny
69222afac8 Soft delete video comments instead of detroy 2019-12-04 09:36:45 +01:00
frankdelange
5c7d650827
Add audio-only option to transcoders and player
This patch adds an audio-only option to PeerTube by means of a new transcoding configuration which creates mp4 files which only contain an audio stream. This new transcoder has a resolution of '0' and is presented in the preferences and in the player resolution menu as 'Audio-only' (localised). When playing such streams the player shows the file thumbnail as background and disables controls autohide.

Audio-only files can be shared and streamed just like any other file. They can be downloaded as well, the resulting file will be an mp4 container with a single audio stream.

This patch is a proof of concept to show the feasibility of 'true' audio-only support. There are better ways of doing this which also enable multiple audio streams for a given video stream (e.g. DASH) but as this would entail a fundamental change in the way PeerTube works it is a bridge too far for a simple proof of concept.
2019-11-25 10:59:47 +01:00
Chocobozzz
d7a25329f9
Add ability to disable webtorrent
In favour of HLS
2019-11-25 10:59:43 +01:00
Chocobozzz
bfbd912886 Fix broken playlist api 2019-08-01 09:11:04 +02:00
Chocobozzz
9b474844e8 Add CLI plugins tests 2019-07-24 10:58:16 +02:00
Chocobozzz
5dce26d202
Improve video REST documentation 2019-06-11 10:01:22 +02:00
Chocobozzz
1b319b7aa6
Add ability to unpublish video/playlist 2019-06-06 17:29:15 +02:00
Chocobozzz
ad3405d087
Improve 4K video quality after transcoding 2019-06-06 14:45:57 +02:00
Chocobozzz
7d14d4d2ca
Server: Bulk update videos support field 2019-05-31 16:44:46 +02:00
Chocobozzz
57cfff7885
Remove unused actor uuid field 2019-05-31 14:49:31 +02:00
Chocobozzz
3acc508440
Upgrade sequelize 2019-04-24 16:26:21 +02:00
Chocobozzz
e8bafea35b
Create a dedicated table to track video thumbnails 2019-04-24 16:25:52 +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
Chocobozzz
8137c8b986
Add Nederlands and Português (Portugal) 2019-04-03 11:23:34 +02:00
Chocobozzz
c47106315a
tslint update 2019-04-02 18:30:26 +02:00
Josh Morel
7ccddd7b52 add quarantine videos feature (#1637)
* add quarantine videos feature

* increase Notification settings test timeout

to 20000ms. was completing 7000 locally but timing out
after 10000 on travis

* fix quarantine video test issues

-propagate misspelling
-remove skip from server/tests/client.ts

* WIP use blacklist for moderator video approval

instead of video.quarantine boolean

* finish auto-blacklist feature
2019-04-02 11:26:47 +02:00
Chocobozzz
15e9d5ca39 Playlist reorder support 2019-03-18 11:17:59 +01:00
Chocobozzz
c5a1ae500e Playlist videos component 2019-03-18 11:17:59 +01:00
Chocobozzz
f0a3988066 Add to playlist dropdown 2019-03-18 11:17:59 +01:00
Chocobozzz
830b4faff1 Add/update/delete/list my playlists 2019-03-18 11:17:59 +01:00
Chocobozzz
df0b219d36 Add playlist rest tests 2019-03-18 11:17:59 +01:00
Chocobozzz
07b1a18aa6 Add playlist check param tests 2019-03-18 11:17:59 +01:00
Chocobozzz
418d092afa Playlist server API 2019-03-18 11:17:59 +01:00
Andrés Maldonado
4e553a41fd
Import original publication date (web UI)
Import original publication date when importing a video from YouTube in the web UI
2019-02-12 11:19:19 +01:00
Chocobozzz
b718fd2237
Merge branch 'develop' into pr/1285 2019-02-11 14:09:23 +01:00
Chocobozzz
88108880bb
Merge branch 'develop' into pr/1217 2019-02-11 11:52:34 +01:00
Chocobozzz
0920929696 Add hls support on server 2019-02-11 09:13:02 +01:00
Chocobozzz
457bb213b2
Refactor how we use icons
Inject them in an angular component so we can easily change their color
2019-01-17 10:38:18 +01:00
clementbrizard
c80341655f Change models 2019-01-12 13:41:45 +00:00
Chocobozzz
5abb9fbbd1
Add ability to unfederate a local video (on blacklist) 2019-01-10 15:39:51 +01:00
Chocobozzz
5c6d985fae
Check activities host 2018-11-14 16:32:27 +01:00
Chocobozzz
0229b014e0
Fix tests 2018-10-17 13:10:58 +02:00
Felix Ableitner
c197877971 dont export base bitrate 2018-10-17 10:05:17 +02:00
Felix Ableitner
2f71dcf8de more documentation 2018-10-17 10:05:17 +02:00
Felix Ableitner
e243c38c35 better documentation 2018-10-17 10:05:17 +02:00
Felix Ableitner
7f196c9320 Scale bitrate linearly with FPS 2018-10-17 10:05:17 +02:00
Chocobozzz
1cd3facc3d
Add ability to list all local videos
Including private/unlisted for moderators/admins
2018-10-10 11:46:50 +02:00
Chocobozzz
c1c86c1599
Try to cache video_high_bitrate_1080p in travis 2018-10-08 17:47:19 +02:00
Felix Ableitner
edb4ffc7e0 Set bitrate limits for transcoding (fixes #638) (#1135)
* Set bitrate limits for transcoding (fixes #638)

* added optimization script and test, changed stuff

* fix test, improve docs

* re-add optimize-old-videos script

* added documentation

* Don't optimize videos without valid UUID, or redundancy videos

* move getUUIDFromFilename

* fix tests?

* update torrent and file size, some more fixes/improvements

* use higher bitrate for high fps video, adjust bitrates

* add test video

* don't throw error if resolution is undefined

* generate test fixture on the fly

* use random noise video for bitrate test, add promise

* shorten test video to avoid timeout

* use existing function to optimize video

* various fixes

* increase test timeout

* limit test fixture size, add link

* test fixes

* add await

* more test fixes, add -b:v parameter

* replace ffmpeg wiki link

* fix ffmpeg params

* fix unit test

* add test fixture to .gitgnore

* add video transcoding fps model

* add missing file
2018-10-08 16:26:04 +02:00
Lucas Declercq
7f2cfe3a79 Rename downloadingEnabled property to downloadEnabled 2018-10-08 14:45:22 +02:00
Lucas Declercq
156c50af30 Add downloadingEnabled property to video model 2018-10-06 19:17:39 +02:00
Chocobozzz
6e46de095d
Add user history and resume videos 2018-10-05 11:22:38 +02:00
Gaëtan Rizio
74d6346935 Users can change ownership of their video [#510] (#888)
* [#510] Create a new route to get the list of user names

To be able to transfer ownership to a user,
we need to be able to select him from the list of users.

Because the list could be too big, we add a autocomplete feature.

This commit does the following:

* Add a API endpoint to get a list of user names by searching its name

* [#510] The user can choose the next owner of the video

To be able to transfer ownership to a user,
we need the owner to be able to select the user.

The server can autocomplete the name of the user to give the ownership.
We add a dialog for the user to actually select it.

This commit does the following:

* Create a modal for the owner to select the next one
* Opens this modal with a button into the menu *more*
* Make the dependency injection

* [#510] When the user choose the next owner, create a request in database

For the change of ownership to happen, we need to store the temporary requests.
When the user make the request, save it to database.

This commit does the following:

* Create the model to persist change ownership requests
* Add an API to manage ownership operations
* Add a route to persist an ownership request

* [#510] A user can fetch its ownership requests sent to him

To be able to accept or refuse a change of ownership,
the user must be able to fetch them.

This commit does the following:

* Add an API to list ownership for a user
* Add the query to database model

* [#510] A user can validate an ownership requests sent to him - server

The user can accept or refuse any ownership request that was sent to him.
This commit focus only on the server part.

This commit does the following:

* Add an API for the user to accept or refuse a video ownership
* Add validators to ensure security access
* Add a query to load a specific video change ownership request

* [#510] A user can validate an ownership requests sent to him - web

The user can accept or refuse any ownership request that was sent to him.
This commit focus only on the web part.

This commit does the following:

* Add a page to list user ownership changes
* Add actions to accept or refuse them
* When accepting, show a modal requiring the channel to send the video

* Correct lint - to squash

* [#510] PR reviews - to squash

This commit does the following:

* Search parameter for user autocompletion is required from middleware directly

* [#510] PR reviews - to squash with creation in database commit

This commit does the following:

* Add the status attribute in model
* Set this attribute on instance creation
* Use AccountModel method `loadLocalByName`

* [#510] PR reviews - to squash with fetch ownership

This commit does the following:

* Add the scope `FULL` for database queries with includes
* Add classic pagination middlewares

* [#510] PR reviews - to squash with ownership validation - server

This commit does the following:

* Add a middleware to validate whether a user can validate an ownership
* Change the ownership status instead of deleting the row

* [#510] PR reviews - to squash with ownership validation - client

This commit does the following:

* Correct indentation of html files with two-spaces indentation
* Use event emitter instead of function for accept event
* Update the sort of ownership change table for a decreasing order by creation date
* Add the status in ownership change table
* Use classic method syntax

* code style - to squash

* Add new user right - to squash

* Move the change to my-account instead of video-watch - to squash

As requested in pull-request, move the action to change ownership into my videos page.

The rest of the logic was not really changed.

This commit does the following:

- Move the modal into my video page
- Create the generic component `button` to keep some styles and logic

* [#510] Add tests for the new feature

To avoid regression, we add tests for all api of ownership change.

This commit does the following:

- Create an end-to-end test for ownership change
- Divide it to one test per request

* [#510] Do not send twice the same request to avoid spam

We can send several time the same request to change ownership.
However, it will spam the user.
To avoid this, we do not save a request already existing in database.

This commit does the following:

- Check whether the request exist in database
- Add tests to verify this new condition

* [#510] Change icons

Change icons so they remains logic with the rest of the application.

This commit does the following:

- Add svg for missing icons
- Add icons in `my-button` component
- Use these new icons

* [#510] Add control about the user quota

The user should be able to accept a new video only if his quota allows it.

This commit does the following:

- Update the middleware to control the quota
- Add tests verifying the control

* Correct merge

- Use new modal system
- Move button to new directory `buttons`

* PR reviews - to squash
2018-09-04 08:57:13 +02:00
Chocobozzz
2d3741d6d9 Videos overview page: first version 2018-08-31 09:19:58 +02:00
Chocobozzz
8a19bee1a1 Add ability to set a name to a channel 2018-08-27 09:41:54 +02:00
Chocobozzz
e63dbd426e
Update client according to new model paths 2018-08-14 15:47:56 +02:00
Chocobozzz
59c76ffa8f
Flat shared module directory 2018-08-14 15:00:01 +02:00
Chocobozzz
191764f30b
Improve blacklist management 2018-08-14 09:27:18 +02:00