Commit Graph

1142 Commits

Author SHA1 Message Date
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 cefe22cf7c
Fetch remote AP objects if only id is specified 2023-06-29 10:18:00 +02:00
Chocobozzz d896fef7e2
Refactor video formatter 2023-06-29 10:18:00 +02:00
Chocobozzz d8f39b126d
Add storyboard support 2023-06-29 10:16:55 +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 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
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 83002a8234
Update server dependencies 2023-05-22 17:11:31 +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 fe7019b232
Fix peertube runner concurrency 2023-05-19 09:23:20 +02:00
Chocobozzz d38541fd59
More robust accept job controller 2023-05-17 14:47:17 +02:00
Chocobozzz 85c20aaeb9
Set actor preferred name case insensitive 2023-05-11 16:16:27 +02:00
Chocobozzz 823c34c07f
Fix reset sequelize instance 2023-05-11 15:03:47 +02:00
Chocobozzz ab14f0e0dc Prefer video studio instead of video edition
Clearer and easier to find in the project
2023-05-09 08:57:34 +02:00
Chocobozzz 5e47f6ab98 Support studio transcoding in peertube runner 2023-05-09 08:57:34 +02:00
Chocobozzz 6a49056026 Add TMP persistent directory
To store files that must be preserved between peertube restarts
2023-05-09 08:57:34 +02:00
Chocobozzz 0c9668f779 Implement remote runner jobs in server
Move ffmpeg functions to @shared
2023-05-09 08:57:34 +02:00
Chocobozzz 841ddf8886
Don't call plugin register/unregister methods 2023-05-05 14:24:27 +02:00
Wicklow b302c80dc0
feature/ability to disable video history by default (#5728)
* draft: ability to disable video history by default

* Update configuration and add tests

* Updated code based on review comments

* Add tests on registration and video quota

* Remove required video quotas in query

* Fix tests
2023-04-07 10:09:54 +02:00
Wicklow 05a60d8599
Feature/Add replay privacy (#5692)
* Add replay settings feature

* Fix replay settings behaviour

* Fix tests

* Fix tests

* Fix tests

* Update openapi doc and fix tests

* Add tests and fix code

* Models correction

* Add migration and update controller and middleware

* Add check params tests

* Fix video live middleware

* Updated code based on review comments
2023-03-31 09:12:21 +02:00
kontrollanten 6f640ccb48 fix(object-storage-proxy): set content-range 2023-03-22 07:35:36 +01:00
kontrollanten e72ace5a50
Handle redis disconnection gracefully (#5599)
* feat(server/api/contact): handle redis disconnection

* feat(server/api/metrics): handle metrics disabled
2023-03-14 08:50:44 +01:00
Chocobozzz 3b504f6ed4
Add ability for plugins to alter video jsonld 2023-03-10 15:45:52 +01:00
Wicklow 73fb3dc535 Fix file token reinjection on fragments 2023-03-07 11:16:56 +01:00
Chocobozzz c0a4982ebe
Fix 404 when having ;threadId param 2023-03-02 10:35:59 +01:00
Wicklow c0687c91b9 Add server hooks for listing subscription 2023-02-25 15:47:48 +01:00
Wicklow 16ccb43767 Fix filters on playlists 2023-02-23 16:07:44 +01:00
Chocobozzz e65ef81cf5
Update server dependencies 2023-02-16 11:56:58 +01:00
Chocobozzz 5bfe684e76
Move webfinger controller in well known router 2023-02-15 16:36:04 +01:00
Chocobozzz 4565774669
Fix retrying update on sql serialization conflict 2023-02-14 09:03:22 +01:00
Chocobozzz 4115f20084
Add ability to not send an email for registration 2023-01-20 15:34:01 +01:00
Chocobozzz a68ccaead6
(breaking): Always list nsfw videos in playlists
Keep the same behaviour as unlisted videos
The frontend is in charge to blur the video element if the nsfw setting
is "hide" or "blur"
2023-01-19 15:04:10 +01:00
Chocobozzz e364e31e25 Implement signup approval in server 2023-01-19 13:53:40 +01:00
Chocobozzz cde3d90ded
Use raw sql for comments 2023-01-09 09:29:02 +01:00
Chocobozzz 5847724474
Add tracker opentelemtry metrics 2023-01-05 10:19:51 +01:00
Chocobozzz 1fed9cb8d3
Don't need to use redis to block tracker ips
There could be many of them, so reduce load by storing IPs directly
inside node memory
2022-12-23 13:40:42 +01:00
Chocobozzz ec3ce76f19
Prefer displaying channel in rss feeds 2022-12-20 09:28:01 +01:00
Chocobozzz 868314e8bf
Add ability to get user from file token 2022-12-20 09:15:49 +01:00
Chocobozzz 57e11a20f1
Forward 206 status code for object storage proxy 2022-12-19 16:08:00 +01:00
Chocobozzz b6640fa0af
Add req and res to allow download filter hooks 2022-12-06 13:50:18 +01:00
Chocobozzz 71e3e879c0
Support reinjecting token in private m3u8 playlist 2022-12-02 15:25:20 +01:00
Chocobozzz a5858c3e53
Update changelog 2022-11-24 13:36:32 +01:00
Chocobozzz 99b757488c
Fix server lint 2022-11-15 15:00:23 +01:00
Chocobozzz 4638cd713d
Don't inject untrusted input
Even if it's already checked in middlewares
It's better to have safe modals too
2022-11-15 14:41:55 +01:00
Chocobozzz 44e702ded4
Prevent broken transcoding with audio only input 2022-11-14 11:39:01 +01:00
Chocobozzz a32bf8cd20
Fix running again transcoding on a video only file 2022-11-07 10:25:24 +01:00
Chocobozzz 6740b6428b
Fix transcoding failure when importing a video 2022-10-31 13:30:39 +01:00
Chocobozzz 5a122dddc5
Option to disable static files auth check/s3 proxy 2022-10-27 09:13:10 +02:00