Commit Graph

970 Commits

Author SHA1 Message Date
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
def4ea4f38
More robust chunk handler 2023-05-19 13:52:38 +02:00
Chocobozzz
d381e967c4
Add nginx config to receive runner job results 2023-05-17 14:58:29 +02:00
Chocobozzz
77666e3433
Fix docker compose guide 2023-05-16 10:38:04 +02:00
Chocobozzz
0d6a8289fb
Better runner error UX when server is not run 2023-05-16 09:27:49 +02:00
Chocobozzz
76ad705ecb
Add peertube-runner CLI doc 2023-05-09 11:20:08 +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
94bb740b49 Add runner jobs openapi 2023-05-09 08:57:34 +02:00
Chocobozzz
18c53ef949 Fix activitypub doc URL 2023-05-09 08:57:34 +02:00
Chocobozzz
b708c9e464 Update tools doc 2023-05-09 08:57:34 +02:00
Chocobozzz
3f9f1bceb6
Breaking: docker requires compose v2 2023-04-14 09:31:04 +02:00
Wicklow
2a4c0d8bbe
Feature/filter already watched videos (#5739)
* filter already watched videos

* Updated code based on review comments
2023-04-12 09:32:20 +02:00
Joël Galeran
3458e8ba0d
feat(docker): make database name configurable (#5734)
* feat(docker): make database name configurable

WIP
Related https://github.com/Chocobozzz/PeerTube/issues/5708

* Update .env

* PEERTUBE_DB_NAME & add comments
2023-04-07 10:52:49 +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
Chocobozzz
00ee545c24
Remove $ for bash commands
It prevents easy copy
2023-04-04 09:18:06 +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
Chocobozzz
47d883de2e
Merge branch 'release/5.1.0' into develop 2023-03-16 14:24:50 +01:00
Chocobozzz
016b887802
Add custom sequelize model types documentation 2023-03-16 14:24:26 +01:00
Chocobozzz
11c834bdba
Add server code new feature walkthrough 2023-03-16 14:15:33 +01:00
Chocobozzz
c3441b0320
Add video AP hooks 2023-03-16 10:36:33 +01:00
Chocobozzz
ca829e9a83
Deprecate node 14 2023-03-15 09:38:24 +01:00
Chocobozzz
4857f887f7
Fix plugin guide 2023-03-10 10:06:29 +01:00
Chocobozzz
a3e5f7e732
Add missing docker env for object storage config 2023-03-07 10:32:43 +01:00
Chocobozzz
393f9d396c
Add redis version note 2023-02-28 11:45:57 +01:00
Chocobozzz
5b94394a1a
Fix E2E with firefox 2023-02-27 11:58:35 +01:00
Wicklow
700e24197a Add missing requirements on email in OpenAPI 2023-02-23 16:07:44 +01:00
Wicklow
16ccb43767 Fix filters on playlists 2023-02-23 16:07:44 +01:00
Chocobozzz
f44cd95c01
Update doc anchor links 2023-02-23 09:46:43 +01:00
Chocobozzz
c5c95361e6
Move to new documentation links 2023-02-22 16:15:14 +01:00
Chocobozzz
6a160a0c9d
Fix embed doc title hierarchy 2023-02-22 16:06:25 +01:00
Chocobozzz
2426fe16ae
Typo 2023-02-22 10:50:01 +01:00
Chocobozzz
1ab94472d5
Prefer absolute links in doc 2023-02-22 10:46:12 +01:00
Chocobozzz
954dcefab3
Fix translation doc 2023-02-22 10:40:11 +01:00
Chocobozzz
aaaaa0090e
Fix list registrations api doc 2023-02-16 16:24:47 +01:00
Chocobozzz
597032cbd5
Fix channel update/create openapi doc 2023-02-15 16:08:37 +01:00
Nuño Sempere
c092b8637f Pointer to Debian guide on how to add a sudo user 2023-02-13 09:31:12 +01:00
ruvilonix
85ae729151 Update docker.md
1. I don't know if you're supposed to do something other than enter `$EDITOR ./docker-compose.yml` into terminal, but when I did that it gave a permission error, so I just used nano. Same with `.env`.

2. Newer versions of Docker Compose use the command `docker compose`, not `docker-compose`. 

3. Grepping the password from logs was not working. I looked at the full logs, and I didn't see anything about a password. I added how to set a custom password. Maybe the grepping part should be removed or changed to make it work.
2023-02-13 09:30:51 +01:00
Chocobozzz
4115f20084
Add ability to not send an email for registration 2023-01-20 15:34:01 +01:00
Chocobozzz
3e5716dd3a Add signup approval API REST doc 2023-01-19 13:53:40 +01:00
Chocobozzz
6905da7ae9
Add note regarding changelog for docker upgrade 2023-01-09 10:46:21 +01:00
Chocobozzz
60b880acdf
External auth can update user on login 2023-01-04 11:41:29 +01:00
Chocobozzz
cf7045bfd7
Remove dead link 2022-12-30 15:33:05 +01:00
Chocobozzz
7a07da01c4
Improve upgrade documentation 2022-12-28 10:29:37 +01:00
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
John Livingston
fbe3fa54b4 Fix: missing peertube version in documentation 2022-11-02 10:39:40 +01:00
Chocobozzz
9e5cf66be7
Breaking API: Consistency with role id/label 2022-10-28 16:34:08 +02:00
Chocobozzz
6689214920
Add a note about worker_connections in doc 2022-10-26 11:22:30 +02:00
Chocobozzz
216fa9d579
Update nginx template
Add rate limit to download and private static files
2022-10-25 15:48:00 +02:00
Chocobozzz
3545e72c68 Put private videos under a specific subdirectory 2022-10-24 14:48:24 +02:00
Chocobozzz
9d4c60dccc
Add ability for plugins to register ws routes 2022-10-11 11:11:04 +02:00
Chocobozzz
1ea868a945
Fill documentation with required secret conf 2022-10-10 11:19:45 +02:00
Chocobozzz
a69ea13086
Add open api doc for two factor auth 2022-10-07 14:53:30 +02:00
kontrollanten
6c5f0d3aeb
server: serve files from storage/well-known (#5214)
* server: serve files from storage/well-known

closes #5206

* well-known: add tests

* test: try to skip new tests

* test: another try

* fix(config/prod): well_known path

* test: fix broken tests

* Update misc-endpoints.ts

* Use getDirectoryPath for tests

* Fix tests

Co-authored-by: Chocobozzz <me@florianbigard.com>
2022-10-04 10:53:00 +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
e76daa7301
Update doc
We use IMPORTANT NOTES instead of BREAKING CHANGES now
2022-09-28 08:29:39 +02:00
Chocobozzz
aca96f8007
Support only ffmpeg >= 4.3
We have issues with video import when merging vp9 in mp4 container with
lower versions
2022-09-27 11:12:40 +02:00
Chocobozzz
9ef3aeac37
Update dependencies version supported by peertube 2022-09-27 10:45:50 +02:00
John Livingston
56162c6a06 Adding peertube-plugin-quickstart-typescript in the documentation. 2022-09-16 10:20:04 +02:00
Thomas Kuntz
927d14bd26 Escape % signs in crontab example (CLI tools docs)
% is a special character for crontab. From man 5 crontab: A "%" character in the command, unless escaped with a backslash (\), will be changed into newline characters, and all data after the first % will be sent to the command as standard input.
2022-09-16 10:19:41 +02:00
Chocobozzz
9f244885f0
Update release.md process 2022-09-13 10:33:57 +02:00
Chocobozzz
a3de59ab72
Update dependencies to use node 16 2022-09-09 14:10:02 +02:00
Chocobozzz
914af0d9e4
Add missing removeEventListener doc 2022-09-09 11:40:14 +02:00
Chocobozzz
e15ce63041
Add @peertube/embed-api release doc 2022-09-09 11:38:51 +02:00
Chocobozzz
fd3c2e8705
Add playback metric endpoint sent to OTEL 2022-08-16 10:33:27 +02:00
Florent
045224d5eb Allow continusously printing logs through tail and parse-log 2022-08-16 10:32:53 +02:00
Chocobozzz
b1053a30f6
Add ability to use docker on local 2022-08-11 10:43:31 +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
Florent
ed09acf14b document parallel depedency and how to install it
Also document how to install exiftool
2022-08-01 16:06: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
a6c554fb6e
Remove redundant section 2022-07-20 15:56:51 +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
9452d4fd33
/!\ Use a dedicated config file for development
It means you have to replace NODE_ENV=test to NODE_ENV=dev if you use it
npm run dev:* commands are already updated
2022-07-06 16:12:17 +02:00
Chocobozzz
4c8336af67
Update embed URL query doc 2022-06-28 14:49:05 +02:00
slendermon
383dbdec67
Centos 8 (#5075)
* Centos 8

Centos 8

* Document

Document centos 8 fixing

* Document fix centos 8 

Bad spacing fix
2022-06-23 12:00:33 +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
J Webb
dec4952155
Ensure peertube root directory is setup to be traversed by nginx (#5028)
* Update production.md

On Ubuntu 22.04, the dir `/var/www/peertube` is restricted to user peertube & group peertube. This causes issues with many of the subsequent sudo commands, and also results in white-screen on initial visit to the site due to JS files not being accessible. This PR loosens those requirements, but maybe would be better if nginx is just added to peertube group? This is my first time installing PeertTube, so I'll defer to someone with more knowledge of this framework to vet the approach here.

* Set specific mode on peertube root directory

* Minor fixup

* Prefer ls instead of chmod to check directory

Co-authored-by: Chocobozzz <me@florianbigard.com>
2022-06-21 14:40:53 +02:00
Chocobozzz
2b621ac0eb
Merge branch 'release/4.2.0' into develop 2022-06-21 09:03:20 +02:00
Chocobozzz
5b2ede7d55
Fix docker user entrypoint 2022-06-21 08:47:39 +02:00
John Livingston
7f6ff46222 Implement 5036: more readable diff on configuration file when upgrading. 2022-06-13 15:59:22 +02:00
dingycle
ac30ddd739 fix(doc): fix links to 'anchors' in install doc 2022-06-10 11:15:19 +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
c501cdef27
Add nginx update to changelog 2022-05-24 16:39:19 +02:00
Chocobozzz
09f33366a7
Add note about dev mode when testing a plugin 2022-05-23 09:09:31 +02:00
Chocobozzz
3e2b75ee26
Fix dependencies toc 2022-05-20 16:02:57 +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
6348fb1884
Prefer using node instead of npm in dockerfile
We get bad error output with npm
2022-05-04 09:06:44 +02:00
Chocobozzz
26e3e98ff0
Support live session in server 2022-05-03 14:49:15 +02:00
Chocobozzz
b0f3c7df13
Use node 16 in peertube docker image 2022-05-02 14:33:56 +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