6 name: PeerTube Community
7 url: 'https://joinpeertube.org'
10 url: 'https://github.com/Chocobozzz/PeerTube/blob/master/LICENSE'
12 url: 'https://joinpeertube.org/img/brand.png'
13 altText: PeerTube Project Homepage
17 The PeerTube API is built on HTTP(S) and is RESTful. You can use your favorite
18 HTTP/REST library for your programming language to use PeerTube. The spec API is fully compatible with
19 [openapi-generator](https://github.com/OpenAPITools/openapi-generator/wiki/API-client-generator-HOWTO)
20 which generates a client SDK in the language of your choice - we generate some client SDKs automatically:
22 - [Python](https://framagit.org/framasoft/peertube/clients/python)
23 - [Go](https://framagit.org/framasoft/peertube/clients/go)
24 - [Kotlin](https://framagit.org/framasoft/peertube/clients/kotlin)
26 See the [Quick Start guide](https://docs.joinpeertube.org/#/api-rest-getting-started) so you can play with the PeerTube API.
30 When you sign up for an account, you are given the possibility to generate
31 sessions, and authenticate using this session token. One session token can
32 currently be used at a time.
36 Accounts are given permissions based on their role. There are three roles on
37 PeerTube: Administrator, Moderator, and User. See the [roles guide](https://docs.joinpeertube.org/#/admin-managing-users?id=roles) for a detail of their permissions.
41 The API uses standard HTTP status codes to indicate the success or failure
42 of the API call. The body of the response will be JSON in the following
47 "code": "unauthorized_request", // example inner error code
48 "error": "Token is invalid." // example exposed error message
52 url: https://docs.joinpeertube.org/api-rest-reference.html
56 Accounts encompass remote accounts discovered across the federation,
57 and correspond to the main Actor, along with video channels a user can create, which
60 When a comment is posted, it is done with your Account's Actor.
63 Using some features of PeerTube require authentication, for which User
64 provide different levels of permission as well as associated user
65 information. Each user has a corresponding local Account for federation.
68 Operations related to your own User, when logged-in.
69 - name: My Subscriptions
71 Operations related to your subscriptions to video channels, their
72 new videos, and how to keep up to date with their latest publications!
73 - name: My Notifications
75 Notifications following new videos, follows or reports. They allow you
76 to keep track of the interactions and overall important information that
77 concerns you. You MAY set per-notification type delivery preference, to
78 receive the info either by mail, by in-browser notification or both.
81 Each server exposes public information regarding supported videos and
85 Jobs are long-running tasks enqueued and processed by the instance
86 itself. No additional worker registration is currently available.
87 - name: Instance Follows
89 Managing servers which the instance interacts with is crucial to the
90 concept of federation in PeerTube and external video indexation. The PeerTube
91 server then deals with inter-server ActivityPub operations and propagates
92 information across its social graph by posting activities to actors' inbox
95 url: https://docs.joinpeertube.org/#/admin-following-instances?id=instances-follows
96 - name: Instance Redundancy
98 Redundancy is part of the inter-server solidarity that PeerTube fosters.
99 Manage the list of instances you wish to help by seeding their videos according
100 to the policy of video selection of your choice. Note that you have a similar functionality
101 to mirror individual videos, see `Video Mirroring`.
103 url: https://docs.joinpeertube.org/#/admin-following-instances?id=instances-redundancy
106 Managing plugins installed from a local path or from NPM, or search for new ones.
108 url: https://docs.joinpeertube.org/#/api-plugins
111 Video abuses deal with reports of local or remote videos alike.
114 Operations dealing with listing, uploading, fetching or modifying videos.
117 The search helps to find _videos_ or _channels_ from within the instance and beyond.
118 Videos from other instances federated by the instance (that is, instances
119 followed by the instance) can be found via keywords and other criteria of
122 Administrators can also enable the use of a remote search system, indexing
123 videos and channels not could be not federated by the instance.
124 - name: Video Comments
126 Operations dealing with comments to a video. Comments are organized in
128 - name: Video Playlists
130 Operations dealing with playlists of videos. Playlists are bound to users
132 - name: Video Channels
134 Operations dealing with the creation, modification and listing of videos within a channel.
137 Operations dealing with blocking videos (removing them from view and
138 preventing interactions).
141 Like/dislike a video.
144 Server syndication feeds
161 - Video Ownership Change
173 - name: Instance Configuration
177 - Instance Redundancy
187 summary: Get an account
189 - $ref: '#/components/parameters/name'
192 description: successful operation
196 $ref: '#/components/schemas/Account'
198 description: account not found
199 '/accounts/{name}/videos':
204 summary: 'List videos of an account'
206 - $ref: '#/components/parameters/name'
207 - $ref: '#/components/parameters/categoryOneOf'
208 - $ref: '#/components/parameters/tagsOneOf'
209 - $ref: '#/components/parameters/tagsAllOf'
210 - $ref: '#/components/parameters/licenceOneOf'
211 - $ref: '#/components/parameters/languageOneOf'
212 - $ref: '#/components/parameters/nsfw'
213 - $ref: '#/components/parameters/filter'
214 - $ref: '#/components/parameters/skipCount'
215 - $ref: '#/components/parameters/start'
216 - $ref: '#/components/parameters/count'
217 - $ref: '#/components/parameters/videosSort'
220 description: successful operation
224 $ref: '#/components/schemas/VideoListResponse'
228 fetch('https://peertube2.cpy.re/api/v1/accounts/{name}/videos')
229 .then(function(response) {
230 return response.json()
231 }).then(function(data) {
237 http -b GET https://peertube2.cpy.re/api/v1/accounts/{name}/videos
243 uri = URI.parse("https://peertube2.cpy.re/api/v1/accounts/{name}/videos")
245 http = Net::HTTP.new(uri.host, uri.port)
248 response = http.get(uri.request_uri)
250 puts JSON.parse(response.read_body)
255 r = requests.get("https://peertube2.cpy.re/api/v1//accounts/{name}/videos")
263 summary: List accounts
265 - $ref: '#/components/parameters/start'
266 - $ref: '#/components/parameters/count'
267 - $ref: '#/components/parameters/sort'
270 description: successful operation
276 $ref: '#/components/schemas/Account'
281 summary: Get instance public configuration
284 description: successful operation
288 $ref: '#/components/schemas/ServerConfig'
291 summary: Get instance "About" information
296 description: successful operation
300 $ref: '#/components/schemas/ServerConfigAbout'
303 summary: Get instance runtime configuration
311 description: successful operation
315 $ref: '#/components/schemas/ServerConfigCustom'
317 summary: Set instance runtime configuration
325 description: successful operation
327 x-summary: field inconsistencies
330 - the emailer is disabled and the instance is open to registrations
331 - webtorrent and hls are disabled with transcoding enabled - you need at least one enabled
333 summary: Delete instance runtime configuration
341 description: successful operation
344 summary: List instance jobs
354 description: The state of the job
363 - $ref: '#/components/parameters/start'
364 - $ref: '#/components/parameters/count'
365 - $ref: '#/components/parameters/sort'
368 description: successful operation
381 $ref: '#/components/schemas/Job'
382 '/server/following/{host}':
389 summary: Unfollow a server
394 description: 'The host to unfollow '
400 description: successful operation
405 summary: List instance followers
407 - $ref: '#/components/parameters/start'
408 - $ref: '#/components/parameters/count'
409 - $ref: '#/components/parameters/sort'
412 description: successful operation
418 $ref: '#/components/schemas/Follow'
423 summary: List instances followed by the server
442 - $ref: '#/components/parameters/start'
443 - $ref: '#/components/parameters/count'
444 - $ref: '#/components/parameters/sort'
447 description: successful operation
453 $ref: '#/components/schemas/Follow'
460 summary: Follow a server
463 description: successful operation
465 description: cannot follow a non-HTTPS server
480 summary: Create a user
488 description: successful operation
492 $ref: '#/components/schemas/AddUserResponse'
497 $ref: '#/components/schemas/AddUser'
498 description: User to create
507 - $ref: '#/components/parameters/start'
508 - $ref: '#/components/parameters/count'
509 - $ref: '#/components/parameters/usersSort'
512 description: successful operation
518 $ref: '#/components/schemas/User'
521 summary: Delete a user
528 - $ref: '#/components/parameters/id'
531 description: successful operation
539 - $ref: '#/components/parameters/id'
542 description: successful operation
546 $ref: '#/components/schemas/User'
548 summary: Update a user
554 - $ref: '#/components/parameters/id'
557 description: successful operation
562 $ref: '#/components/schemas/UpdateUser'
566 summary: Register a user
571 description: successful operation
576 $ref: '#/components/schemas/RegisterUser'
580 summary: Get my user information
588 description: successful operation
594 $ref: '#/components/schemas/User'
596 summary: Update my user information
604 description: successful operation
609 $ref: '#/components/schemas/UpdateMe'
611 /users/me/videos/imports:
613 summary: Get video imports of my user
621 - $ref: '#/components/parameters/start'
622 - $ref: '#/components/parameters/count'
623 - $ref: '#/components/parameters/sort'
626 description: successful operation
630 $ref: '#/components/schemas/VideoImport'
631 /users/me/video-quota-used:
633 summary: Get my user used quota
641 description: successful operation
646 '/users/me/videos/{videoId}/rating':
648 summary: Get rate of my user for a video
658 description: 'The video id '
663 description: successful operation
667 $ref: '#/components/schemas/GetMeVideoRating'
670 summary: Get videos of my user
678 - $ref: '#/components/parameters/start'
679 - $ref: '#/components/parameters/count'
680 - $ref: '#/components/parameters/sort'
683 description: successful operation
687 $ref: '#/components/schemas/VideoListResponse'
688 /users/me/subscriptions:
690 summary: Get my user subscriptions
697 - $ref: '#/components/parameters/start'
698 - $ref: '#/components/parameters/count'
699 - $ref: '#/components/parameters/sort'
702 description: successful operation
704 summary: Add subscription to my user
712 description: successful operation
713 /users/me/subscriptions/exist:
715 summary: Get if subscriptions exist for my user
722 - $ref: '#/components/parameters/subscriptionsUris'
725 description: successful operation
730 /users/me/subscriptions/videos:
732 summary: List videos of subscriptions of my user
740 - $ref: '#/components/parameters/categoryOneOf'
741 - $ref: '#/components/parameters/tagsOneOf'
742 - $ref: '#/components/parameters/tagsAllOf'
743 - $ref: '#/components/parameters/licenceOneOf'
744 - $ref: '#/components/parameters/languageOneOf'
745 - $ref: '#/components/parameters/nsfw'
746 - $ref: '#/components/parameters/filter'
747 - $ref: '#/components/parameters/skipCount'
748 - $ref: '#/components/parameters/start'
749 - $ref: '#/components/parameters/count'
750 - $ref: '#/components/parameters/videosSort'
753 description: successful operation
757 $ref: '#/components/schemas/VideoListResponse'
758 '/users/me/subscriptions/{subscriptionHandle}':
760 summary: Get subscription of my user
767 - $ref: '#/components/parameters/subscriptionHandle'
770 description: successful operation
774 $ref: '#/components/schemas/VideoChannel'
776 summary: Delete subscription of my user
783 - $ref: '#/components/parameters/subscriptionHandle'
786 description: successful operation
787 /users/me/notifications:
789 summary: List my notifications
797 description: only list unread notifications
800 - $ref: '#/components/parameters/start'
801 - $ref: '#/components/parameters/count'
802 - $ref: '#/components/parameters/sort'
805 description: successful operation
809 $ref: '#/components/schemas/NotificationListResponse'
810 /users/me/notifications/read:
812 summary: Mark notifications as read by their id
825 description: ids of the notifications to mark as read
832 description: successful operation
833 /users/me/notifications/read-all:
835 summary: Mark all my notification as read
842 description: successful operation
843 /users/me/notification-settings:
845 summary: Update my notification settings
856 newVideoFromSubscription:
857 $ref: '#/components/schemas/NotificationSettingValue'
859 $ref: '#/components/schemas/NotificationSettingValue'
860 videoAbuseAsModerator:
861 $ref: '#/components/schemas/NotificationSettingValue'
862 videoAutoBlacklistAsModerator:
863 $ref: '#/components/schemas/NotificationSettingValue'
865 $ref: '#/components/schemas/NotificationSettingValue'
867 $ref: '#/components/schemas/NotificationSettingValue'
868 myVideoImportFinished:
869 $ref: '#/components/schemas/NotificationSettingValue'
871 $ref: '#/components/schemas/NotificationSettingValue'
873 $ref: '#/components/schemas/NotificationSettingValue'
875 $ref: '#/components/schemas/NotificationSettingValue'
877 $ref: '#/components/schemas/NotificationSettingValue'
878 autoInstanceFollowing:
879 $ref: '#/components/schemas/NotificationSettingValue'
882 description: successful operation
883 /users/me/avatar/pick:
885 summary: Update my user avatar
892 description: successful operation
896 $ref: '#/components/schemas/Avatar'
904 description: The file to upload.
909 contentType: image/png, image/jpeg
912 summary: List video ownership changes
914 - Video Ownership Change
919 description: successful operation
920 '/videos/ownership/{id}/accept':
922 summary: Accept ownership change request
924 - Video Ownership Change
928 - $ref: '#/components/parameters/idOrUUID'
931 description: successful operation
933 description: cannot terminate an ownership change of another user
935 description: video owneship change not found
936 '/videos/ownership/{id}/refuse':
938 summary: Refuse ownership change request
940 - Video Ownership Change
944 - $ref: '#/components/parameters/idOrUUID'
947 description: successful operation
949 description: cannot terminate an ownership change of another user
951 description: video owneship change not found
952 '/videos/{id}/give-ownership':
954 summary: Request ownership change
956 - Video Ownership Change
960 - $ref: '#/components/parameters/idOrUUID'
964 application/x-www-form-urlencoded:
974 description: successful operation
976 description: changing video ownership to a remote account is not supported yet
978 description: video not found
985 - $ref: '#/components/parameters/categoryOneOf'
986 - $ref: '#/components/parameters/tagsOneOf'
987 - $ref: '#/components/parameters/tagsAllOf'
988 - $ref: '#/components/parameters/licenceOneOf'
989 - $ref: '#/components/parameters/languageOneOf'
990 - $ref: '#/components/parameters/nsfw'
991 - $ref: '#/components/parameters/filter'
992 - $ref: '#/components/parameters/skipCount'
993 - $ref: '#/components/parameters/start'
994 - $ref: '#/components/parameters/count'
995 - $ref: '#/components/parameters/videosSort'
998 description: successful operation
1002 $ref: '#/components/schemas/VideoListResponse'
1005 summary: List available video categories
1010 description: successful operation
1019 externalValue: https://peertube2.cpy.re/api/v1/videos/categories
1022 summary: List available video licences
1027 description: successful operation
1036 externalValue: https://peertube2.cpy.re/api/v1/videos/licences
1039 summary: List available video languages
1044 description: successful operation
1053 externalValue: https://peertube2.cpy.re/api/v1/videos/languages
1056 summary: List available video privacies
1061 description: successful operation
1070 externalValue: https://peertube2.cpy.re/api/v1/videos/privacies
1073 summary: Update a video
1079 - $ref: '#/components/parameters/idOrUUID'
1082 description: successful operation
1085 multipart/form-data:
1090 description: Video thumbnail file
1094 description: Video preview file
1098 description: Video category
1102 description: Video licence
1106 description: Video language
1109 $ref: '#/components/schemas/VideoPrivacySet'
1111 description: Video description
1114 description: Whether or not we wait transcoding before publish the video
1117 description: Text describing how to support the video uploader
1120 description: Whether or not this video contains sensitive content
1123 description: Video name
1126 description: Video tags (maximum 5 tags each between 2 and 30 characters)
1135 description: Enable or disable comments for this video
1137 originallyPublishedAt:
1138 description: Date when the content was originally published
1142 $ref: '#/components/schemas/VideoScheduledUpdate'
1145 contentType: image/jpeg
1147 contentType: image/jpeg
1149 summary: Get a video
1153 - $ref: '#/components/parameters/idOrUUID'
1156 description: successful operation
1160 $ref: '#/components/schemas/VideoDetails'
1162 summary: Delete a video
1168 - $ref: '#/components/parameters/idOrUUID'
1171 description: successful operation
1172 '/videos/{id}/description':
1174 summary: Get complete video description
1178 - $ref: '#/components/parameters/idOrUUID'
1181 description: successful operation
1186 '/videos/{id}/views':
1188 summary: Add a view to a video
1192 - $ref: '#/components/parameters/idOrUUID'
1195 description: successful operation
1196 '/videos/{id}/watching':
1198 summary: Set watching progress of a video
1204 - $ref: '#/components/parameters/idOrUUID'
1209 $ref: '#/components/schemas/UserWatchingVideo'
1213 description: successful operation
1216 summary: Upload a video
1223 description: successful operation
1227 $ref: '#/components/schemas/VideoUploadResponse'
1229 description: user video quota is exceeded with this video
1231 description: upload has timed out
1233 description: invalid input file
1236 multipart/form-data:
1241 description: Video file
1245 description: Channel id that will contain this video
1248 description: Video thumbnail file
1252 description: Video preview file
1256 $ref: '#/components/schemas/VideoPrivacySet'
1258 description: Video category
1262 description: Video licence
1265 description: Video language
1269 description: Video description
1272 description: Whether or not we wait transcoding before publish the video
1275 description: Text describing how to support the video uploader
1278 description: Whether or not this video contains sensitive content
1281 description: Video name
1284 description: Video tags (maximum 5 tags each between 2 and 30 characters)
1294 description: Enable or disable comments for this video
1296 originallyPublishedAt:
1297 description: Date when the content was originally published
1301 $ref: '#/components/schemas/VideoScheduledUpdate'
1308 contentType: video/mp4, video/webm, video/ogg, video/avi, video/quicktime, video/x-msvideo, video/x-flv, video/x-matroska, application/octet-stream
1310 contentType: image/jpeg
1312 contentType: image/jpeg
1316 ## DEPENDENCIES: httpie, jq
1317 # pip install httpie
1318 USERNAME="<your_username>"
1319 PASSWORD="<your_password>"
1320 FILE_PATH="<your_file_path>"
1321 CHANNEL_ID="<your_channel_id>"
1324 API_PATH="https://peertube2.cpy.re/api/v1"
1326 client_id=$(http -b GET "$API_PATH/oauth-clients/local" | jq -r ".client_id")
1327 client_secret=$(http -b GET "$API_PATH/oauth-clients/local" | jq -r ".client_secret")
1328 token=$(http -b --form POST "$API_PATH/users/token" \
1329 client_id="$client_id" client_secret="$client_secret" grant_type=password response_type=code \
1330 username=$USERNAME \
1331 password=$PASSWORD \
1332 | jq -r ".access_token")
1334 http -b --form POST "$API_PATH/videos/upload" \
1335 videofile@$FILE_PATH \
1336 channelId=$CHANNEL_ID \
1338 "Authorization:Bearer $token"
1341 summary: Import a video
1342 description: Import a torrent or magnetURI or HTTP resource (if enabled by the instance administrator)
1349 multipart/form-data:
1354 description: Torrent File
1358 description: HTTP target URL
1361 description: Magnet URI
1364 description: Channel id that will contain this video
1367 description: Video thumbnail file
1371 description: Video preview file
1375 $ref: '#/components/schemas/VideoPrivacySet'
1377 description: Video category
1380 description: Video licence
1383 description: Video language
1386 description: Video description
1389 description: Whether or not we wait transcoding before publish the video
1392 description: Text describing how to support the video uploader
1395 description: Whether or not this video contains sensitive content
1398 description: Video name
1401 description: Video tags (maximum 5 tags each between 2 and 30 characters)
1410 description: Enable or disable comments for this video
1413 $ref: '#/components/schemas/VideoScheduledUpdate'
1419 contentType: application/x-bittorrent
1421 contentType: image/jpeg
1423 contentType: image/jpeg
1426 description: successful operation
1430 $ref: '#/components/schemas/VideoUploadResponse'
1432 description: HTTP or Torrent/magnetURI import not enabled
1434 description: '`magnetUri` or `targetUrl` or a torrent file missing'
1437 summary: List video abuses
1447 description: only list the report with this id
1450 - name: predefinedReason
1452 description: predefined reason the listed reports should contain
1466 description: plain search that will match with video titles, reporter names and more
1471 description: 'The video playlist privacy (Pending = `1`, Rejected = `2`, Accepted = `3`)'
1478 - name: searchReporter
1480 description: only list reports of a specific reporter
1483 - name: searchReportee
1484 description: only list reports of a specific reportee
1490 description: only list reports of a specific video
1493 - name: searchVideoChannel
1495 description: only list reports of a specific video channel
1498 - $ref: '#/components/parameters/start'
1499 - $ref: '#/components/parameters/count'
1500 - $ref: '#/components/parameters/abusesSort'
1503 description: successful operation
1509 $ref: '#/components/schemas/VideoAbuse'
1510 '/videos/{id}/abuse':
1512 summary: Report an abuse
1519 - $ref: '#/components/parameters/idOrUUID'
1528 description: Reason why the user reports this video
1532 description: Reason categories that help triage reports
1547 description: Timestamp in the video that marks the beginning of the report
1551 description: Timestamp in the video that marks the ending of the report
1557 description: successful operation
1559 description: incorrect request parameters
1560 '/videos/{id}/abuse/{abuseId}':
1562 summary: Update an abuse
1570 - $ref: '#/components/parameters/idOrUUID'
1571 - $ref: '#/components/parameters/abuseId'
1579 $ref: '#/components/schemas/VideoAbuseStateSet'
1582 description: Update the report comment visible only to the moderation team
1585 description: successful operation
1587 description: video abuse not found
1591 summary: Delete an abuse
1597 - $ref: '#/components/parameters/idOrUUID'
1598 - $ref: '#/components/parameters/abuseId'
1601 description: successful operation
1603 description: block not found
1605 '/videos/{id}/blacklist':
1607 summary: Block a video
1615 - $ref: '#/components/parameters/idOrUUID'
1618 description: successful operation
1620 summary: Unblock a video by its id
1628 - $ref: '#/components/parameters/idOrUUID'
1631 description: successful operation
1633 description: block not found
1638 summary: List video blocks
1647 list only blocks that match this type:
1651 - `2`: automatic block that needs review
1659 description: plain search that will match with video titles, and more
1662 - $ref: '#/components/parameters/start'
1663 - $ref: '#/components/parameters/count'
1664 - $ref: '#/components/parameters/blacklistsSort'
1667 description: successful operation
1679 $ref: '#/components/schemas/VideoBlacklist'
1680 /videos/{id}/captions:
1682 summary: List captions of a video
1686 - $ref: '#/components/parameters/idOrUUID'
1689 description: successful operation
1701 $ref: '#/components/schemas/VideoCaption'
1702 /videos/{id}/captions/{captionLanguage}:
1704 summary: Add or replace a video caption
1708 - $ref: '#/components/parameters/idOrUUID'
1709 - $ref: '#/components/parameters/captionLanguage'
1712 multipart/form-data:
1717 description: The file to upload.
1722 contentType: text/vtt, application/x-subrip, text/plain
1725 description: successful operation
1727 description: video or language not found
1729 summary: Delete a video caption
1733 - $ref: '#/components/parameters/idOrUUID'
1734 - $ref: '#/components/parameters/captionLanguage'
1737 description: successful operation
1739 description: video or language or caption for that language not found
1742 summary: List video channels
1746 - $ref: '#/components/parameters/start'
1747 - $ref: '#/components/parameters/count'
1748 - $ref: '#/components/parameters/sort'
1751 description: successful operation
1763 $ref: '#/components/schemas/VideoChannel'
1765 summary: Create a video channel
1772 description: successful operation
1777 $ref: '#/components/schemas/VideoChannelCreate'
1778 '/video-channels/{channelHandle}':
1780 summary: Get a video channel
1784 - $ref: '#/components/parameters/channelHandle'
1787 description: successful operation
1791 $ref: '#/components/schemas/VideoChannel'
1793 summary: Update a video channel
1799 - $ref: '#/components/parameters/channelHandle'
1802 description: successful operation
1807 $ref: '#/components/schemas/VideoChannelUpdate'
1809 summary: Delete a video channel
1815 - $ref: '#/components/parameters/channelHandle'
1818 description: successful operation
1819 '/video-channels/{channelHandle}/videos':
1821 summary: List videos of a video channel
1826 - $ref: '#/components/parameters/channelHandle'
1827 - $ref: '#/components/parameters/categoryOneOf'
1828 - $ref: '#/components/parameters/tagsOneOf'
1829 - $ref: '#/components/parameters/tagsAllOf'
1830 - $ref: '#/components/parameters/licenceOneOf'
1831 - $ref: '#/components/parameters/languageOneOf'
1832 - $ref: '#/components/parameters/nsfw'
1833 - $ref: '#/components/parameters/filter'
1834 - $ref: '#/components/parameters/skipCount'
1835 - $ref: '#/components/parameters/start'
1836 - $ref: '#/components/parameters/count'
1837 - $ref: '#/components/parameters/videosSort'
1840 description: successful operation
1844 $ref: '#/components/schemas/VideoListResponse'
1846 /video-playlists/privacies:
1848 summary: List available playlist privacies
1853 description: successful operation
1862 externalValue: https://peertube2.cpy.re/api/v1/video-playlists/privacies
1866 summary: List video playlists
1870 - $ref: '#/components/parameters/start'
1871 - $ref: '#/components/parameters/count'
1872 - $ref: '#/components/parameters/sort'
1875 description: successful operation
1887 $ref: '#/components/schemas/VideoPlaylist'
1889 summary: Create a video playlist
1890 description: 'If the video playlist is set as public, the videoChannelId is mandatory.'
1897 description: successful operation
1912 multipart/form-data:
1917 description: Video playlist display name
1920 description: Video playlist thumbnail file
1924 $ref: '#/components/schemas/VideoPlaylistPrivacySet'
1926 description: Video playlist description
1929 description: Video channel in which the playlist will be published
1934 /video-playlists/{id}:
1936 summary: Get a video playlist
1940 - $ref: '#/components/parameters/idOrUUID'
1943 description: successful operation
1947 $ref: '#/components/schemas/VideoPlaylist'
1949 summary: Update a video playlist
1950 description: 'If the video playlist is set as public, the playlist must have a assigned channel.'
1957 description: successful operation
1959 - $ref: '#/components/parameters/idOrUUID'
1962 multipart/form-data:
1967 description: Video playlist display name
1970 description: Video playlist thumbnail file
1974 $ref: '#/components/schemas/VideoPlaylistPrivacySet'
1976 description: Video playlist description
1979 description: Video channel in which the playlist will be published
1982 summary: Delete a video playlist
1988 - $ref: '#/components/parameters/idOrUUID'
1991 description: successful operation
1993 /video-playlists/{id}/videos:
1995 summary: 'List videos of a playlist'
2000 - $ref: '#/components/parameters/idOrUUID'
2003 description: successful operation
2007 $ref: '#/components/schemas/VideoListResponse'
2009 summary: 'Add a video in a playlist'
2016 - $ref: '#/components/parameters/idOrUUID'
2019 description: successful operation
2025 videoPlaylistElement:
2038 description: 'Video to add in the playlist'
2041 description: 'Start the video at this specific timestamp (in seconds)'
2044 description: 'Stop the video at this specific timestamp (in seconds)'
2048 /video-playlists/{id}/videos/reorder:
2050 summary: 'Reorder a playlist'
2056 - $ref: '#/components/parameters/idOrUUID'
2059 description: successful operation
2068 description: 'Start position of the element to reorder'
2070 insertAfterPosition:
2072 description: 'New position for the block to reorder, to add the block before the first element'
2076 description: 'How many element from `startPosition` to reorder'
2080 - insertAfterPosition
2082 /video-playlists/{id}/videos/{playlistElementId}:
2084 summary: 'Update a playlist element'
2090 - $ref: '#/components/parameters/idOrUUID'
2091 - $ref: '#/components/parameters/playlistElementId'
2094 description: successful operation
2103 description: 'Start the video at this specific timestamp (in seconds)'
2106 description: 'Stop the video at this specific timestamp (in seconds)'
2108 summary: 'Delete an element from a playlist'
2114 - $ref: '#/components/parameters/idOrUUID'
2115 - $ref: '#/components/parameters/playlistElementId'
2118 description: successful operation
2120 '/users/me/video-playlists/videos-exist':
2122 summary: 'Check video exists in my playlists'
2131 description: The video ids to check
2138 description: successful operation
2158 '/accounts/{name}/video-channels':
2160 summary: List video channels of an account
2165 - $ref: '#/components/parameters/name'
2168 description: include view statistics for the last 30 days (only if authentified as the account user)
2171 - $ref: '#/components/parameters/start'
2172 - $ref: '#/components/parameters/count'
2173 - $ref: '#/components/parameters/sort'
2176 description: successful operation
2182 $ref: '#/components/schemas/VideoChannel'
2183 '/accounts/{name}/ratings':
2185 summary: List ratings of an account
2191 - $ref: '#/components/parameters/name'
2192 - $ref: '#/components/parameters/start'
2193 - $ref: '#/components/parameters/count'
2194 - $ref: '#/components/parameters/sort'
2198 description: Optionally filter which ratings to retrieve
2206 description: successful operation
2212 $ref: '#/components/schemas/VideoRating'
2213 '/videos/{id}/comment-threads':
2215 summary: List threads of a video
2219 - $ref: '#/components/parameters/idOrUUID'
2220 - $ref: '#/components/parameters/start'
2221 - $ref: '#/components/parameters/count'
2222 - $ref: '#/components/parameters/commentsSort'
2225 description: successful operation
2229 $ref: '#/components/schemas/CommentThreadResponse'
2231 summary: Create a thread
2237 - $ref: '#/components/parameters/idOrUUID'
2240 description: successful operation
2244 $ref: '#/components/schemas/CommentThreadPostResponse'
2253 description: 'Text comment'
2257 '/videos/{id}/comment-threads/{threadId}':
2259 summary: Get a thread
2263 - $ref: '#/components/parameters/idOrUUID'
2264 - $ref: '#/components/parameters/threadId'
2267 description: successful operation
2271 $ref: '#/components/schemas/VideoCommentThreadTree'
2272 '/videos/{id}/comments/{commentId}':
2274 summary: Reply to a thread of a video
2280 - $ref: '#/components/parameters/idOrUUID'
2281 - $ref: '#/components/parameters/commentId'
2284 description: successful operation
2288 $ref: '#/components/schemas/CommentThreadPostResponse'
2297 description: 'Text comment'
2302 summary: Delete a comment or a reply
2308 - $ref: '#/components/parameters/idOrUUID'
2309 - $ref: '#/components/parameters/commentId'
2312 description: successful operation
2314 description: cannot remove comment of another user
2316 description: comment or video does not exist
2318 description: comment is already deleted
2319 '/videos/{id}/rate':
2321 summary: Like/dislike a video
2327 - $ref: '#/components/parameters/idOrUUID'
2330 description: successful operation
2335 summary: Search videos
2340 allowEmptyValue: false
2342 String to search. If the user can make a remote URI search, and the string is an URI then the
2343 PeerTube instance will fetch the remote object and add it to its database. Then,
2344 you can use the REST API to fetch the complete video information and interact with it.
2347 - $ref: '#/components/parameters/categoryOneOf'
2348 - $ref: '#/components/parameters/tagsOneOf'
2349 - $ref: '#/components/parameters/tagsAllOf'
2350 - $ref: '#/components/parameters/licenceOneOf'
2351 - $ref: '#/components/parameters/languageOneOf'
2352 - $ref: '#/components/parameters/nsfw'
2353 - $ref: '#/components/parameters/filter'
2354 - $ref: '#/components/parameters/skipCount'
2355 - $ref: '#/components/parameters/start'
2356 - $ref: '#/components/parameters/count'
2357 - $ref: '#/components/parameters/searchTarget'
2358 - $ref: '#/components/parameters/videosSearchSort'
2361 description: Get videos that are published after this date
2367 description: Get videos that are published before this date
2371 - name: originallyPublishedStartDate
2373 description: Get videos that are originally published after this date
2377 - name: originallyPublishedEndDate
2379 description: Get videos that are originally published before this date
2385 description: Get videos that have this minimum duration
2390 description: Get videos that have this maximum duration
2395 description: successful operation
2399 $ref: '#/components/schemas/VideoListResponse'
2400 /search/video-channels:
2404 summary: Search channels
2410 String to search. If the user can make a remote URI search, and the string is an URI then the
2411 PeerTube instance will fetch the remote object and add it to its database. Then,
2412 you can use the REST API to fetch the complete channel information and interact with it.
2415 - $ref: '#/components/parameters/start'
2416 - $ref: '#/components/parameters/count'
2417 - $ref: '#/components/parameters/searchTarget'
2418 - $ref: '#/components/parameters/sort'
2421 description: successful operation
2427 $ref: '#/components/schemas/VideoChannel'
2428 /blocklist/accounts:
2432 summary: List account blocks
2437 - $ref: '#/components/parameters/start'
2438 - $ref: '#/components/parameters/count'
2439 - $ref: '#/components/parameters/sort'
2442 description: successful operation
2446 summary: Block an account
2458 example: chocobozzz@example.org
2459 description: account to block, in the form `username@domain`
2464 description: successful operation
2466 description: self-blocking forbidden
2467 '/blocklist/accounts/{accountName}':
2471 summary: Unblock an account by its handle
2479 description: account to unblock, in the form `username@domain`
2484 description: successful operation
2486 description: account or account block does not exist
2491 summary: List server blocks
2496 - $ref: '#/components/parameters/start'
2497 - $ref: '#/components/parameters/count'
2498 - $ref: '#/components/parameters/sort'
2501 description: successful operation
2505 summary: Block a server
2518 description: server domain to block
2523 description: successful operation
2525 description: self-blocking forbidden
2526 '/blocklist/servers/{host}':
2530 summary: Unblock a server by its domain
2538 description: server domain to unblock
2544 description: successful operation
2546 description: account block does not exist
2550 - Instance Redundancy
2551 summary: Update a server redundancy policy
2559 description: server domain to mirror
2571 description: allow mirroring of the host's local videos
2576 description: successful operation
2578 description: server is not already known
2583 summary: List videos being mirrored
2591 description: direction of the mirror
2597 - $ref: '#/components/parameters/start'
2598 - $ref: '#/components/parameters/count'
2599 - $ref: '#/components/parameters/videoRedundanciesSort'
2602 description: successful operation
2608 $ref: '#/components/schemas/VideoRedundancy'
2612 summary: Mirror a video
2628 description: successful operation
2630 description: cannot mirror a local video
2632 description: video does not exist
2634 description: video is already mirrored
2635 /redundancy/videos/{redundancyId}:
2639 summary: Delete a mirror done on a video
2644 - name: redundancyId
2647 description: id of an existing redundancy on a video
2652 description: successful operation
2654 description: video redundancy not found
2655 '/feeds/video-comments.{format}':
2659 summary: List comments on videos
2661 - url: 'https://peertube2.cpy.re'
2662 description: Live Test Server (live data - latest nightly version)
2663 - url: 'https://peertube3.cpy.re'
2664 description: Live Test Server (live data - latest RC version)
2665 - url: 'https://peertube.cpy.re'
2666 description: Live Test Server (live data - stable version)
2671 description: 'format expected (we focus on making `rss` the most featureful ; it serves Media RSS)'
2684 description: 'limit listing to a specific video'
2689 description: successful operation
2694 default: 'max-age=900' # 15 min cache
2698 $ref: '#/components/schemas/VideoCommentsForXML'
2699 application/rss+xml:
2701 $ref: '#/components/schemas/VideoCommentsForXML'
2704 $ref: '#/components/schemas/VideoCommentsForXML'
2705 application/atom+xml:
2707 $ref: '#/components/schemas/VideoCommentsForXML'
2712 description: accept header unsupported
2713 '/feeds/videos.{format}':
2717 summary: List videos
2719 - url: 'https://peertube2.cpy.re'
2720 description: Live Test Server (live data - latest nightly version)
2721 - url: 'https://peertube3.cpy.re'
2722 description: Live Test Server (live data - latest RC version)
2723 - url: 'https://peertube.cpy.re'
2724 description: Live Test Server (live data - stable version)
2729 description: 'format expected (we focus on making `rss` the most featureful ; it serves Media RSS)'
2742 description: 'limit listing to a specific account'
2747 description: 'limit listing to a specific account'
2750 - name: videoChannelId
2752 description: 'limit listing to a specific video channel'
2755 - name: videoChannelName
2757 description: 'limit listing to a specific video channel'
2760 - $ref: '#/components/parameters/sort'
2761 - $ref: '#/components/parameters/nsfw'
2762 - $ref: '#/components/parameters/filter'
2765 description: successful operation
2770 default: 'max-age=900' # 15 min cache
2774 $ref: '#/components/schemas/VideosForXML'
2777 externalValue: https://peertube2.cpy.re/feeds/videos.xml?filter=local
2778 application/rss+xml:
2780 $ref: '#/components/schemas/VideosForXML'
2783 $ref: '#/components/schemas/VideosForXML'
2784 application/atom+xml:
2786 $ref: '#/components/schemas/VideosForXML'
2791 description: accept header unsupported
2796 summary: List plugins
2809 - $ref: '#/components/parameters/start'
2810 - $ref: '#/components/parameters/count'
2811 - $ref: '#/components/parameters/sort'
2814 description: successful operation
2818 $ref: '#/components/schemas/PluginResponse'
2823 summary: List available plugins
2836 - name: currentPeerTubeEngine
2840 - $ref: '#/components/parameters/start'
2841 - $ref: '#/components/parameters/count'
2842 - $ref: '#/components/parameters/sort'
2845 description: successful operation
2849 $ref: '#/components/schemas/PluginResponse'
2851 description: plugin index unavailable
2856 summary: Install a plugin
2869 example: peertube-plugin-auth-ldap
2872 additionalProperties: false
2879 additionalProperties: false
2882 description: successful operation
2884 description: should have either `npmName` or `path` set
2889 summary: Update a plugin
2902 example: peertube-plugin-auth-ldap
2905 additionalProperties: false
2912 additionalProperties: false
2915 description: successful operation
2917 description: should have either `npmName` or `path` set
2919 description: existing plugin not found
2924 summary: Uninstall a plugin
2936 description: name of the plugin/theme in its package.json
2937 example: peertube-plugin-auth-ldap
2942 description: successful operation
2944 description: existing plugin not found
2949 summary: Get a plugin
2954 - $ref: '#/components/parameters/npmName'
2957 description: successful operation
2961 $ref: '#/components/schemas/Plugin'
2963 description: plugin not found
2964 /plugins/{npmName}/settings:
2968 summary: Set a plugin's settings
2973 - $ref: '#/components/parameters/npmName'
2982 additionalProperties: true
2985 description: successful operation
2987 description: plugin not found
2988 /plugins/{npmName}/public-settings:
2992 summary: Get a plugin's public settings
2994 - $ref: '#/components/parameters/npmName'
2997 description: successful operation
3002 additionalProperties: true
3004 description: plugin not found
3005 /plugins/{npmName}/registered-settings:
3009 summary: Get a plugin's registered settings
3014 - $ref: '#/components/parameters/npmName'
3017 description: successful operation
3022 additionalProperties: true
3024 description: plugin not found
3026 - url: 'https://peertube2.cpy.re/api/v1'
3027 description: Live Test Server (live data - latest nightly version)
3028 - url: 'https://peertube3.cpy.re/api/v1'
3029 description: Live Test Server (live data - latest RC version)
3030 - url: 'https://peertube.cpy.re/api/v1'
3031 description: Live Test Server (live data - stable version)
3038 description: Offset used to paginate results
3046 description: "Number of items to return"
3056 description: Sort column
3065 If the administrator enabled search index support, you can override the default search target.
3068 **Warning**: If you choose to make an index search, PeerTube will get results from a third party service.
3069 It means the instance may not yet know the objects you fetched. If you want to load video/channel information:
3070 * If the current user has the ability to make a remote URI search (this information is available in the config endpoint),
3071 then reuse the search API to make a search using the object URI so PeerTube instance fetches the remote object and fill its database.
3072 After that, you can use the classic REST API endpoints to fetch the complete object or interact with it
3073 * If the current user doesn't have the ability to make a remote URI search, then redirect the user on the origin instance or fetch
3074 the data from the origin instance API
3084 description: Sort videos by criteria
3099 description: Sort videos by criteria
3114 description: Sort comments by criteria
3124 description: Sort blacklists by criteria
3140 description: Sort users by criteria
3151 description: Sort abuses by criteria
3158 videoRedundanciesSort:
3162 description: Sort abuses by criteria
3171 description: The name of the account
3174 example: chocobozzz | chocobozzz@example.org
3179 description: The user id
3188 description: The object id or uuid
3196 example: 9c9de5e8-0a1e-484a-b099-e80766180a6d
3198 name: playlistElementId
3201 description: Playlist element id
3208 description: Video abuse id
3212 name: captionLanguage
3215 description: The caption language
3222 description: The video channel handle
3225 example: my_username | my_username@example.com
3227 name: subscriptionHandle
3230 description: The subscription handle
3233 example: my_username | my_username@example.com
3238 description: The thread id (root comment id)
3245 description: The comment id
3252 description: category id of the video (see [/videos/categories](#tag/Video/paths/~1videos~1categories/get))
3265 description: tag(s) of the video
3278 description: tag(s) of the video, where all should be present in the video
3291 description: language id of the video (see [/videos/languages](#tag/Video/paths/~1videos~1languages/get)). Use `_unknown` to filter on videos that don't have a video language
3304 description: licence id of the video (see [/videos/licences](#tag/Video/paths/~1videos~1licences/get))
3317 description: if you don't need the `total` in the response
3328 description: whether to include nsfw videos, if any
3339 Special filters (local for instance) which might require special rights:
3340 * `local` - only videos local to the instance
3341 * `all-local` - only videos local to the instance, but showing private and unlisted videos (requires Admin privileges)
3351 description: list of uris to check if each is part of the user subscriptions
3361 description: name of the plugin/theme on npmjs.com or in its package.json
3364 example: peertube-plugin-auth-ldap
3368 In the header: *Authorization: Bearer <token\>*
3371 Authenticating via OAuth requires the following steps:
3374 - Have an account with sufficient authorization levels
3376 - [Generate](https://docs.joinpeertube.org/#/api-rest-getting-started) a
3379 - Make Authenticated Requests
3383 tokenUrl: 'https://peertube.example.com/api/v1/users/token'
3386 moderator: Moderator scope
3389 VideoConstantNumber:
3395 VideoConstantString:
3402 VideoPlaylistPrivacySet:
3408 description: 'The video playlist privacy (Public = `1`, Unlisted = `2`, Private = `3`)'
3409 VideoPlaylistPrivacyConstant:
3412 $ref: '#/components/schemas/VideoPlaylistPrivacySet'
3416 VideoPlaylistTypeSet:
3421 description: 'The video playlist type (Regular = `1`, Watch Later = `2`)'
3422 VideoPlaylistTypeConstant:
3425 $ref: '#/components/schemas/VideoPlaylistTypeSet'
3436 description: 'The video privacy (Public = `1`, Unlisted = `2`, Private = `3`, Internal = `4`)'
3437 VideoPrivacyConstant:
3440 $ref: '#/components/schemas/VideoPrivacySet'
3457 description: 'The user role (Admin = `0`, Moderator = `1`, User = `2`)'
3467 description: 'The video state (Published = `1`, to transcode = `2`, to import = `3`)'
3477 description: 'The video playlist privacy (Pending = `1`, Rejected = `2`, Accepted = `3`)'
3478 VideoAbuseStateConstant:
3481 $ref: '#/components/schemas/VideoAbuseStateSet'
3484 VideoAbusePredefinedReasons:
3497 example: [spamOrMisleading]
3499 VideoResolutionConstant:
3503 description: 'Video resolution (240, 360, 720 ...)'
3508 VideoScheduledUpdate:
3511 $ref: '#/components/schemas/VideoPrivacySet'
3515 description: When to update the video
3535 - $ref: '#/components/schemas/Avatar'
3536 VideoChannelSummary:
3553 - $ref: '#/components/schemas/Avatar'
3565 - $ref: '#/components/schemas/Video'
3571 $ref: '#/components/schemas/VideoResolutionConstant'
3574 description: 'Video file size in bytes'
3592 VideoStreamingPlaylists:
3600 description: 'Playlist type (HLS = `1`)'
3610 $ref: '#/components/schemas/VideoFile'
3626 example: 9c9de5e8-0a1e-484a-b099-e80766180a6d
3637 example: 9c9de5e8-0a1e-484a-b099-e80766180a6d
3647 originallyPublishedAt:
3651 $ref: '#/components/schemas/VideoConstantNumber'
3653 $ref: '#/components/schemas/VideoConstantNumber'
3655 $ref: '#/components/schemas/VideoConstantString'
3657 $ref: '#/components/schemas/VideoPrivacyConstant'
3667 example: What is PeerTube?
3670 example: /static/thumbnails/a65bc12f-9383-462e-81ae-8207e8b434ee.jpg
3673 example: /static/previews/a65bc12f-9383-462e-81ae-8207e8b434ee.jpg
3676 example: /videos/embed/a65bc12f-9383-462e-81ae-8207e8b434ee
3692 $ref: '#/components/schemas/VideoStateConstant'
3696 - $ref: '#/components/schemas/VideoScheduledUpdate'
3704 $ref: '#/components/schemas/AccountSummary'
3706 $ref: '#/components/schemas/VideoChannelSummary'
3715 - $ref: '#/components/schemas/Video'
3722 example: Please support my work on <insert crowdfunding plateform>! <3
3724 $ref: '#/components/schemas/VideoChannel'
3726 $ref: '#/components/schemas/Account'
3731 example: [flowers, gardening]
3735 $ref: '#/components/schemas/VideoFile'
3748 $ref: '#/components/schemas/VideoStreamingPlaylists'
3749 FileRedundancyInformation:
3786 example: 9c9de5e8-0a1e-484a-b099-e80766180a6d
3793 $ref: '#/components/schemas/FileRedundancyInformation'
3797 $ref: '#/components/schemas/FileRedundancyInformation'
3798 VideoImportStateConstant:
3806 description: 'The video import state (Pending = `1`, Success = `2`, Failed = `3`)'
3818 example: https://framatube.org/videos/watch/9c9de5e8-0a1e-484a-b099-e80766180a6d
3822 example: magnet:?xs=https%3A%2F%2Fframatube.org%2Fstatic%2Ftorrents%2F9c9de5e8-0a1e-484a-b099-e80766180a6d-240.torrent&xt=urn:btih:38b4747ff788b30bf61f59d1965cd38f9e48e01f&dn=What+is+PeerTube%3F&tr=wss%3A%2F%2Fframatube.org%2Ftracker%2Fsocket&tr=https%3A%2F%2Fframatube.org%2Ftracker%2Fannounce&ws=https%3A%2F%2Fframatube.org%2Fstatic%2Fwebseed%2F9c9de5e8-0a1e-484a-b099-e80766180a6d-240.mp4
3826 $ref: '#/components/schemas/VideoImportStateConstant'
3836 $ref: '#/components/schemas/Video'
3844 example: The video is a spam
3846 $ref: '#/components/schemas/VideoAbusePredefinedReasons'
3848 $ref: '#/components/schemas/Account'
3850 $ref: '#/components/schemas/VideoAbuseStateConstant'
3853 example: Decided to ban the server since it spams us regularly
3864 example: 9c9de5e8-0a1e-484a-b099-e80766180a6d
3885 example: 9c9de5e8-0a1e-484a-b099-e80766180a6d
3914 example: 9c9de5e8-0a1e-484a-b099-e80766180a6d
3930 example: 9c9de5e8-0a1e-484a-b099-e80766180a6d
3940 $ref: '#/components/schemas/VideoPlaylistPrivacyConstant'
3942 $ref: '#/components/schemas/VideoPlaylistTypeConstant'
3944 $ref: '#/components/schemas/AccountSummary'
3946 $ref: '#/components/schemas/VideoChannelSummary'
3968 totalRepliesFromVideoAuthor:
3973 $ref: '#/components/schemas/Account'
3974 VideoCommentThreadTree:
3977 $ref: '#/components/schemas/VideoComment'
3981 $ref: '#/components/schemas/VideoCommentThreadTree'
3985 $ref: '#/components/schemas/VideoConstantString'
4040 $ref: '#/components/schemas/Avatar'
4043 - $ref: '#/components/schemas/Actor'
4056 description: timestamp within the video, in seconds
4123 allowedForCurrentIP:
4125 requiresEmailVerification:
4329 requiresEmailVerification:
4354 allowAdditionalExtensions:
4422 $ref: '#/components/schemas/Actor'
4424 $ref: '#/components/schemas/Actor'
4427 description: score reflecting the reachability of the actor, with steps of `10` and a base score of `1000`.
4456 - activitypub-http-unicast
4457 - activitypub-http-broadcast
4458 - activitypub-http-fetcher
4459 - activitypub-follow
4465 - activitypub-refresher
4469 additionalProperties: true
4472 additionalProperties: true
4489 example: 9c9de5e8-0a1e-484a-b099-e80766180a6d
4490 VideoUploadResponse:
4501 example: 9c9de5e8-0a1e-484a-b099-e80766180a6d
4502 CommentThreadResponse:
4511 $ref: '#/components/schemas/VideoComment'
4512 CommentThreadPostResponse:
4515 $ref: '#/components/schemas/VideoComment'
4525 $ref: '#/components/schemas/Video'
4533 description: The user username
4539 description: The user email
4542 description: Theme enabled by this user
4545 description: Has the user confirmed their email address?
4547 $ref: '#/components/schemas/NSFWPolicy'
4550 description: Enable P2P in the player
4553 description: Automatically start playing the video on the watch page
4555 $ref: '#/components/schemas/UserRole'
4564 description: The user video quota
4567 description: The user daily video quota
4572 videoAbusesAcceptedCount:
4574 videoAbusesCreatedCount:
4578 noInstanceConfigWarningModal:
4589 $ref: '#/components/schemas/Account'
4593 $ref: '#/components/schemas/VideoChannel'
4598 description: The user username
4604 description: The user password. If the smtp server is configured, you can leave empty and an email will be sent
4610 description: The user email
4613 description: The user video quota
4616 description: The user daily video quota
4618 $ref: '#/components/schemas/UserRole'
4630 description: The user id
4634 description: The updated email of the user
4637 description: The updated video quota of the user
4640 description: The updated daily video quota of the user
4642 $ref: '#/components/schemas/UserRole'
4654 description: Your new password
4660 description: Your new email
4663 description: Your new displayNSFW
4670 description: Your new autoPlayVideo
4680 description: Id of the video
4683 description: Rating of the video
4690 $ref: '#/components/schemas/Video'
4693 description: 'Rating of the video'
4701 description: The username of the user
4704 pattern: '/^[a-z0-9._]{1,50}$/'
4708 description: The password of the user
4714 description: The email of the user
4717 description: The user display name
4725 description: The name for the default channel
4726 pattern: '/^[ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\\-_.:]+$/'
4729 description: The display name for the default channel
4746 description: 'A text shown by default on all videos of this channel, to tell the audience how to support it'
4758 description: 'A text shown by default on all videos of this channel, to tell the audience how to support it'
4759 bulkVideosSupportUpdate:
4761 description: 'Update the support field for all videos of this channel'
4766 name: 'media:peerLink'
4775 - application/x-bittorrent
4781 name: 'media:content'
4812 VideoCommentsForXML:
4847 description: video watch page URL
4850 description: video canonical URL
4854 description: video publication date
4857 description: video description
4860 description: video description
4863 description: publisher user name
4866 description: video category (MRSS)
4869 description: see [media:community](https://www.rssboard.org/media-rss#media-community) (MRSS)
4884 description: video embed path, relative to the canonical URL domain (MRSS)
4893 description: video watch path, relative to the canonical URL domain (MRSS)
4914 description: see [media:title](https://www.rssboard.org/media-rss#media-title) (MRSS). We only use `plain` titles.
4915 'media:description':
4922 description: see [media:rating](https://www.rssboard.org/media-rss#media-rating) (MRSS)
4925 description: main streamable file for the video
4935 - application/x-bittorrent
4944 description: list of streamable files for the video. see [media:peerLink](https://www.rssboard.org/media-rss#media-peerlink) and [media:content](https://www.rssboard.org/media-rss#media-content) or (MRSS)
4947 - $ref: '#/components/schemas/MRSSPeerLink'
4948 - $ref: '#/components/schemas/MRSSGroupContent'
4949 NotificationSettingValue:
4970 Notification type, following the `UserNotificationType` enum:
4972 - `1` NEW_VIDEO_FROM_SUBSCRIPTION
4974 - `2` NEW_COMMENT_ON_MY_VIDEO
4976 - `3` NEW_VIDEO_ABUSE_FOR_MODERATORS
4978 - `4` BLACKLIST_ON_MY_VIDEO
4980 - `5` UNBLACKLIST_ON_MY_VIDEO
4982 - `6` MY_VIDEO_PUBLISHED
4984 - `7` MY_VIDEO_IMPORT_SUCCESS
4986 - `8` MY_VIDEO_IMPORT_ERROR
4988 - `9` NEW_USER_REGISTRATION
4992 - `11` COMMENT_MENTION
4994 - `12` VIDEO_AUTO_BLACKLIST_FOR_MODERATORS
4996 - `13` NEW_INSTANCE_FOLLOWER
4998 - `14` AUTO_INSTANCE_FOLLOWING
5004 - $ref: '#/components/schemas/VideoInfo'
5008 $ref: '#/components/schemas/ActorInfo'
5017 $ref: '#/components/schemas/VideoInfo'
5038 $ref: '#/components/schemas/VideoInfo'
5040 $ref: '#/components/schemas/ActorInfo'
5049 - $ref: '#/components/schemas/VideoInfo'
5058 - $ref: '#/components/schemas/VideoInfo'
5062 - $ref: '#/components/schemas/ActorInfo'
5070 $ref: '#/components/schemas/ActorInfo'
5098 NotificationListResponse:
5107 $ref: '#/components/schemas/Notification'
5112 example: peertube-plugin-auth-ldap
5140 example: https://framagit.org/framasoft/peertube/official-plugins/tree/master/peertube-plugin-auth-ldap
5143 additionalProperties: true
5159 $ref: '#/components/schemas/Plugin'