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. No official
19 SDK is currently provided, but the spec API is fully compatible with
20 [openapi-generator](https://github.com/OpenAPITools/openapi-generator/wiki/API-client-generator-HOWTO)
21 which generates a client SDK in the language of your choice.
23 See the [Quick Start guide](https://docs.joinpeertube.org/#/api-rest-getting-started) so you can play with the PeerTube API.
27 When you sign up for an account, you are given the possibility to generate
28 sessions, and authenticate using this session token. One session token can
29 currently be used at a time.
33 The API uses standard HTTP status codes to indicate the success or failure
34 of the API call. The body of the response will be JSON in the following
39 "code": "unauthorized_request", // example inner error code
40 "error": "Token is invalid." // example exposed error message
44 url: https://docs.joinpeertube.org/api-rest-reference.html
48 Using some features of PeerTube require authentication, for which Accounts
49 provide different levels of permission as well as associated user
50 information. Accounts also encompass remote accounts discovered across the federation.
53 Each server exposes public information regarding supported videos and
57 Jobs are long-running tasks enqueued and processed by the instance
58 itself. No additional worker registration is currently available.
59 - name: Instance Follows
61 Managing servers which the instance interacts with is crucial to the
62 concept of federation in PeerTube and external video indexation. The PeerTube
63 server then deals with inter-server ActivityPub operations and propagates
64 information across its social graph by posting activities to actors' inbox
68 Video abuses deal with reports of local or remote videos alike.
71 Operations dealing with listing, uploading, fetching or modifying videos.
74 The search helps to find _videos_ from within the instance and beyond.
75 Videos from other instances federated by the instance (that is, instances
76 followed by the instance) can be found via keywords and other criteria of
78 - name: Video Comments
80 Operations dealing with comments to a video. Comments are organized in
82 - name: Video Playlists
84 Operations dealing with playlists of videos. Playlists are bound to users
86 - name: Video Channels
88 Operations dealing with creation, modification and video listing of a
90 - name: Video Blacklist
92 Operations dealing with blacklisting videos (removing them from view and
93 preventing interactions).
113 - Video Ownership Change
121 - name: Instance Configuration
133 summary: Get an account
135 - $ref: '#/components/parameters/name'
138 description: successful operation
142 $ref: '#/components/schemas/Account'
143 '/accounts/{name}/videos':
148 summary: 'List videos of an account'
150 - $ref: '#/components/parameters/name'
151 - $ref: '#/components/parameters/categoryOneOf'
152 - $ref: '#/components/parameters/tagsOneOf'
153 - $ref: '#/components/parameters/tagsAllOf'
154 - $ref: '#/components/parameters/licenceOneOf'
155 - $ref: '#/components/parameters/languageOneOf'
156 - $ref: '#/components/parameters/nsfw'
157 - $ref: '#/components/parameters/filter'
158 - $ref: '#/components/parameters/skipCount'
159 - $ref: '#/components/parameters/start'
160 - $ref: '#/components/parameters/count'
161 - $ref: '#/components/parameters/videosSort'
164 description: successful operation
168 $ref: '#/components/schemas/VideoListResponse'
172 fetch('https://peertube2.cpy.re/api/v1/accounts/{name}/videos')
173 .then(function(response) {
174 return response.json()
175 }).then(function(data) {
181 http -b GET https://peertube2.cpy.re/api/v1/accounts/{name}/videos
187 uri = URI.parse("https://peertube2.cpy.re/api/v1/accounts/{name}/videos")
189 http = Net::HTTP.new(uri.host, uri.port)
192 response = http.get(uri.request_uri)
194 puts JSON.parse(response.read_body)
199 r = requests.get("https://peertube2.cpy.re/api/v1//accounts/{name}/videos")
207 summary: List accounts
209 - $ref: '#/components/parameters/start'
210 - $ref: '#/components/parameters/count'
211 - $ref: '#/components/parameters/sort'
214 description: successful operation
220 $ref: '#/components/schemas/Account'
225 summary: Get instance public configuration
228 description: successful operation
232 $ref: '#/components/schemas/ServerConfig'
235 summary: Get instance "About" information
240 description: successful operation
244 $ref: '#/components/schemas/ServerConfigAbout'
247 summary: Get instance runtime configuration
255 description: successful operation
259 $ref: '#/components/schemas/ServerConfigCustom'
261 summary: Set instance runtime configuration
269 description: successful operation
271 summary: Delete instance runtime configuration
279 description: successful operation
282 summary: List instance jobs
292 description: The state of the job
301 - $ref: '#/components/parameters/start'
302 - $ref: '#/components/parameters/count'
303 - $ref: '#/components/parameters/sort'
306 description: successful operation
312 $ref: '#/components/schemas/Job'
313 '/server/following/{host}':
320 summary: Unfollow a server
325 description: 'The host to unfollow '
330 description: successful operation
335 summary: List instance followers
337 - $ref: '#/components/parameters/start'
338 - $ref: '#/components/parameters/count'
339 - $ref: '#/components/parameters/sort'
342 description: successful operation
348 $ref: '#/components/schemas/Follow'
353 summary: List instance followings
355 - $ref: '#/components/parameters/start'
356 - $ref: '#/components/parameters/count'
357 - $ref: '#/components/parameters/sort'
360 description: successful operation
366 $ref: '#/components/schemas/Follow'
373 summary: Follow a server
376 description: successful operation
381 $ref: '#/components/schemas/Follow'
384 summary: Create a user
392 description: successful operation
396 $ref: '#/components/schemas/AddUserResponse'
401 $ref: '#/components/schemas/AddUser'
402 description: User to create
411 - $ref: '#/components/parameters/start'
412 - $ref: '#/components/parameters/count'
413 - $ref: '#/components/parameters/usersSort'
416 description: successful operation
422 $ref: '#/components/schemas/User'
425 summary: Delete a user
432 - $ref: '#/components/parameters/id'
435 description: successful operation
443 - $ref: '#/components/parameters/id'
446 description: successful operation
450 $ref: '#/components/schemas/User'
452 summary: Update a user
458 - $ref: '#/components/parameters/id'
461 description: successful operation
466 $ref: '#/components/schemas/UpdateUser'
470 summary: Register a user
475 description: successful operation
480 $ref: '#/components/schemas/RegisterUser'
484 summary: Get my user information
492 description: successful operation
498 $ref: '#/components/schemas/User'
500 summary: Update my user information
508 description: successful operation
513 $ref: '#/components/schemas/UpdateMe'
515 /users/me/videos/imports:
517 summary: Get video imports of my user
525 - $ref: '#/components/parameters/start'
526 - $ref: '#/components/parameters/count'
527 - $ref: '#/components/parameters/sort'
530 description: successful operation
534 $ref: '#/components/schemas/VideoImport'
535 /users/me/video-quota-used:
537 summary: Get my user used quota
545 description: successful operation
550 '/users/me/videos/{videoId}/rating':
552 summary: Get rate of my user for a video
562 description: 'The video id '
567 description: successful operation
571 $ref: '#/components/schemas/GetMeVideoRating'
574 summary: Get videos of my user
582 - $ref: '#/components/parameters/start'
583 - $ref: '#/components/parameters/count'
584 - $ref: '#/components/parameters/sort'
587 description: successful operation
591 $ref: '#/components/schemas/VideoListResponse'
592 /users/me/subscriptions:
594 summary: Get my user subscriptions
601 - $ref: '#/components/parameters/start'
602 - $ref: '#/components/parameters/count'
603 - $ref: '#/components/parameters/sort'
606 description: successful operation
608 summary: Add subscription to my user
616 description: successful operation
617 /users/me/subscriptions/exist:
619 summary: Get if subscriptions exist for my user
626 - $ref: '#/components/parameters/subscriptionsUris'
629 description: successful operation
634 /users/me/subscriptions/videos:
636 summary: List videos of subscriptions of my user
644 - $ref: '#/components/parameters/categoryOneOf'
645 - $ref: '#/components/parameters/tagsOneOf'
646 - $ref: '#/components/parameters/tagsAllOf'
647 - $ref: '#/components/parameters/licenceOneOf'
648 - $ref: '#/components/parameters/languageOneOf'
649 - $ref: '#/components/parameters/nsfw'
650 - $ref: '#/components/parameters/filter'
651 - $ref: '#/components/parameters/skipCount'
652 - $ref: '#/components/parameters/start'
653 - $ref: '#/components/parameters/count'
654 - $ref: '#/components/parameters/videosSort'
657 description: successful operation
661 $ref: '#/components/schemas/VideoListResponse'
662 '/users/me/subscriptions/{subscriptionHandle}':
664 summary: Get subscription of my user
671 - $ref: '#/components/parameters/subscriptionHandle'
674 description: successful operation
678 $ref: '#/components/schemas/VideoChannel'
680 summary: Delete subscription of my user
687 - $ref: '#/components/parameters/subscriptionHandle'
690 description: successful operation
691 /users/me/avatar/pick:
693 summary: Update my user avatar
700 description: successful operation
704 $ref: '#/components/schemas/Avatar'
712 description: The file to upload.
717 contentType: image/png, image/jpeg
720 summary: List video ownership changes
722 - Video Ownership Change
727 description: successful operation
728 '/videos/ownership/{id}/accept':
730 summary: Accept ownership change request
732 - Video Ownership Change
736 - $ref: '#/components/parameters/idOrUUID'
739 description: successful operation
740 '/videos/ownership/{id}/refuse':
742 summary: Refuse ownership change request
744 - Video Ownership Change
748 - $ref: '#/components/parameters/idOrUUID'
751 description: successful operation
752 '/videos/{id}/give-ownership':
754 summary: Request ownership change
756 - Video Ownership Change
760 - $ref: '#/components/parameters/idOrUUID'
764 application/x-www-form-urlencoded:
774 description: successful operation
776 description: 'Changing video ownership to a remote account is not supported yet'
783 - $ref: '#/components/parameters/categoryOneOf'
784 - $ref: '#/components/parameters/tagsOneOf'
785 - $ref: '#/components/parameters/tagsAllOf'
786 - $ref: '#/components/parameters/licenceOneOf'
787 - $ref: '#/components/parameters/languageOneOf'
788 - $ref: '#/components/parameters/nsfw'
789 - $ref: '#/components/parameters/filter'
790 - $ref: '#/components/parameters/skipCount'
791 - $ref: '#/components/parameters/start'
792 - $ref: '#/components/parameters/count'
793 - $ref: '#/components/parameters/videosSort'
796 description: successful operation
800 $ref: '#/components/schemas/VideoListResponse'
803 summary: List available video categories
808 description: successful operation
817 summary: List available video licences
822 description: successful operation
831 summary: List available video languages
836 description: successful operation
845 summary: List available video privacies
850 description: successful operation
859 summary: Update a video
865 - $ref: '#/components/parameters/idOrUUID'
868 description: successful operation
876 description: Video thumbnail file
880 description: Video preview file
884 description: Video category
887 description: Video licence
890 description: Video language
893 $ref: '#/components/schemas/VideoPrivacySet'
895 description: Video description
898 description: Whether or not we wait transcoding before publish the video
901 description: Text describing how to support the video uploader
904 description: Whether or not this video contains sensitive content
907 description: Video name
910 description: Video tags (maximum 5 tags each between 2 and 30 characters)
919 description: Enable or disable comments for this video
921 originallyPublishedAt:
922 description: Date when the content was originally published
926 $ref: '#/components/schemas/VideoScheduledUpdate'
929 contentType: image/jpeg
931 contentType: image/jpeg
937 - $ref: '#/components/parameters/idOrUUID'
940 description: successful operation
944 $ref: '#/components/schemas/VideoDetails'
946 summary: Delete a video
952 - $ref: '#/components/parameters/idOrUUID'
955 description: successful operation
956 '/videos/{id}/description':
958 summary: Get complete video description
962 - $ref: '#/components/parameters/idOrUUID'
965 description: successful operation
970 '/videos/{id}/views':
972 summary: Add a view to a video
976 - $ref: '#/components/parameters/idOrUUID'
979 description: successful operation
980 '/videos/{id}/watching':
982 summary: Set watching progress of a video
988 - $ref: '#/components/parameters/idOrUUID'
993 $ref: '#/components/schemas/UserWatchingVideo'
997 description: successful operation
1000 summary: Upload a video
1007 description: successful operation
1011 $ref: '#/components/schemas/VideoUploadResponse'
1013 description: 'The user video quota is exceeded with this video.'
1015 description: 'Upload has timed out'
1017 description: 'Invalid input file.'
1020 multipart/form-data:
1025 description: Video file
1029 description: Channel id that will contain this video
1032 description: Video thumbnail file
1036 description: Video preview file
1040 $ref: '#/components/schemas/VideoPrivacySet'
1042 description: Video category
1045 description: Video licence
1048 description: Video language
1051 description: Video description
1054 description: Whether or not we wait transcoding before publish the video
1057 description: Text describing how to support the video uploader
1060 description: Whether or not this video contains sensitive content
1063 description: Video name
1066 description: Video tags (maximum 5 tags each between 2 and 30 characters)
1075 description: Enable or disable comments for this video
1077 originallyPublishedAt:
1078 description: Date when the content was originally published
1082 $ref: '#/components/schemas/VideoScheduledUpdate'
1089 contentType: video/mp4, video/webm, video/ogg, video/avi, video/quicktime, video/x-msvideo, video/x-flv, video/x-matroska, application/octet-stream
1091 contentType: image/jpeg
1093 contentType: image/jpeg
1097 ## DEPENDENCIES: httpie, jq
1098 # pip install httpie
1099 USERNAME="<your_username>"
1100 PASSWORD="<your_password>"
1101 FILE_PATH="<your_file_path>"
1102 CHANNEL_ID="<your_channel_id>"
1105 API_PATH="https://peertube2.cpy.re/api/v1"
1107 client_id=$(http -b GET "$API_PATH/oauth-clients/local" | jq -r ".client_id")
1108 client_secret=$(http -b GET "$API_PATH/oauth-clients/local" | jq -r ".client_secret")
1109 token=$(http -b --form POST "$API_PATH/users/token" \
1110 client_id="$client_id" client_secret="$client_secret" grant_type=password response_type=code \
1111 username=$USERNAME \
1112 password=$PASSWORD \
1113 | jq -r ".access_token")
1115 http -b --form POST "$API_PATH/videos/upload" \
1116 videofile@$FILE_PATH \
1117 channelId=$CHANNEL_ID \
1119 "Authorization:Bearer $token"
1122 summary: Import a video
1123 description: Import a torrent or magnetURI or HTTP resource (if enabled by the instance administrator)
1130 description: successful operation
1134 $ref: '#/components/schemas/VideoUploadResponse'
1137 multipart/form-data:
1142 description: Torrent File
1146 description: HTTP target URL
1149 description: Magnet URI
1152 description: Channel id that will contain this video
1155 description: Video thumbnail file
1159 description: Video preview file
1163 $ref: '#/components/schemas/VideoPrivacySet'
1165 description: Video category
1168 description: Video licence
1171 description: Video language
1174 description: Video description
1177 description: Whether or not we wait transcoding before publish the video
1180 description: Text describing how to support the video uploader
1183 description: Whether or not this video contains sensitive content
1186 description: Video name
1189 description: Video tags (maximum 5 tags each between 2 and 30 characters)
1198 description: Enable or disable comments for this video
1201 $ref: '#/components/schemas/VideoScheduledUpdate'
1207 contentType: application/x-bittorrent
1209 contentType: image/jpeg
1211 contentType: image/jpeg
1214 summary: List video abuses
1222 - $ref: '#/components/parameters/start'
1223 - $ref: '#/components/parameters/count'
1224 - $ref: '#/components/parameters/abusesSort'
1227 description: successful operation
1233 $ref: '#/components/schemas/VideoAbuse'
1234 '/videos/{id}/abuse':
1236 summary: Report an abuse
1243 - $ref: '#/components/parameters/idOrUUID'
1251 description: Reason why the user reports this video
1255 description: successful operation
1256 '/videos/{id}/abuse/{abuseId}':
1258 summary: Update an abuse
1267 description: successful operation
1269 - $ref: '#/components/parameters/idOrUUID'
1270 - $ref: '#/components/parameters/abuseId'
1278 $ref: '#/components/schemas/VideoAbuseStateSet'
1281 description: 'Update the comment of the video abuse for other admin/moderators'
1283 summary: Delete an abuse
1292 description: successful operation
1294 - $ref: '#/components/parameters/idOrUUID'
1295 - $ref: '#/components/parameters/abuseId'
1297 '/videos/{id}/blacklist':
1299 summary: Blacklist a video
1307 - $ref: '#/components/parameters/idOrUUID'
1310 description: successful operation
1312 summary: Delete an entry of the blacklist of a video by its id
1320 - $ref: '#/components/parameters/idOrUUID'
1323 description: successful operation
1326 summary: List blacklisted videos
1334 - $ref: '#/components/parameters/start'
1335 - $ref: '#/components/parameters/count'
1336 - $ref: '#/components/parameters/blacklistsSort'
1339 description: successful operation
1345 $ref: '#/components/schemas/VideoBlacklist'
1346 /videos/{id}/captions:
1348 summary: List captions of a video
1352 - $ref: '#/components/parameters/idOrUUID'
1355 description: successful operation
1366 $ref: '#/components/schemas/VideoCaption'
1367 /videos/{id}/captions/{captionLanguage}:
1369 summary: Add or replace a video caption
1373 - $ref: '#/components/parameters/idOrUUID'
1374 - $ref: '#/components/parameters/captionLanguage'
1377 multipart/form-data:
1382 description: The file to upload.
1387 contentType: text/vtt, application/x-subrip, text/plain
1390 description: successful operation
1392 summary: Delete a video caption
1396 - $ref: '#/components/parameters/idOrUUID'
1397 - $ref: '#/components/parameters/captionLanguage'
1400 description: successful operation
1403 summary: List video channels
1407 - $ref: '#/components/parameters/start'
1408 - $ref: '#/components/parameters/count'
1409 - $ref: '#/components/parameters/sort'
1412 description: successful operation
1418 $ref: '#/components/schemas/VideoChannel'
1420 summary: Create a video channel
1427 description: successful operation
1432 $ref: '#/components/schemas/VideoChannelCreate'
1433 '/video-channels/{channelHandle}':
1435 summary: Get a video channel
1439 - $ref: '#/components/parameters/channelHandle'
1442 description: successful operation
1446 $ref: '#/components/schemas/VideoChannel'
1448 summary: Update a video channel
1454 - $ref: '#/components/parameters/channelHandle'
1457 description: successful operation
1462 $ref: '#/components/schemas/VideoChannelUpdate'
1464 summary: Delete a video channel
1470 - $ref: '#/components/parameters/channelHandle'
1473 description: successful operation
1474 '/video-channels/{channelHandle}/videos':
1476 summary: List videos of a video channel
1481 - $ref: '#/components/parameters/channelHandle'
1482 - $ref: '#/components/parameters/categoryOneOf'
1483 - $ref: '#/components/parameters/tagsOneOf'
1484 - $ref: '#/components/parameters/tagsAllOf'
1485 - $ref: '#/components/parameters/licenceOneOf'
1486 - $ref: '#/components/parameters/languageOneOf'
1487 - $ref: '#/components/parameters/nsfw'
1488 - $ref: '#/components/parameters/filter'
1489 - $ref: '#/components/parameters/skipCount'
1490 - $ref: '#/components/parameters/start'
1491 - $ref: '#/components/parameters/count'
1492 - $ref: '#/components/parameters/videosSort'
1495 description: successful operation
1499 $ref: '#/components/schemas/VideoListResponse'
1501 /video-playlists/privacies:
1503 summary: List available playlist privacies
1508 description: successful operation
1518 summary: List video playlists
1522 - $ref: '#/components/parameters/start'
1523 - $ref: '#/components/parameters/count'
1524 - $ref: '#/components/parameters/sort'
1527 description: successful operation
1533 $ref: '#/components/schemas/VideoPlaylist'
1535 summary: Create a video playlist
1536 description: 'If the video playlist is set as public, the videoChannelId is mandatory.'
1543 description: successful operation
1558 multipart/form-data:
1563 description: Video playlist display name
1566 description: Video playlist thumbnail file
1570 $ref: '#/components/schemas/VideoPlaylistPrivacySet'
1572 description: Video playlist description
1575 description: Video channel in which the playlist will be published
1580 /video-playlists/{id}:
1582 summary: Get a video playlist
1586 - $ref: '#/components/parameters/idOrUUID'
1589 description: successful operation
1593 $ref: '#/components/schemas/VideoPlaylist'
1595 summary: Update a video playlist
1596 description: 'If the video playlist is set as public, the playlist must have a assigned channel.'
1603 description: successful operation
1605 - $ref: '#/components/parameters/idOrUUID'
1608 multipart/form-data:
1613 description: Video playlist display name
1616 description: Video playlist thumbnail file
1620 $ref: '#/components/schemas/VideoPlaylistPrivacySet'
1622 description: Video playlist description
1625 description: Video channel in which the playlist will be published
1628 summary: Delete a video playlist
1634 - $ref: '#/components/parameters/idOrUUID'
1637 description: successful operation
1639 /video-playlists/{id}/videos:
1641 summary: 'List videos of a playlist'
1646 - $ref: '#/components/parameters/idOrUUID'
1649 description: successful operation
1653 $ref: '#/components/schemas/VideoListResponse'
1655 summary: 'Add a video in a playlist'
1662 - $ref: '#/components/parameters/idOrUUID'
1665 description: successful operation
1671 videoPlaylistElement:
1684 description: 'Video to add in the playlist'
1687 description: 'Start the video at this specific timestamp (in seconds)'
1690 description: 'Stop the video at this specific timestamp (in seconds)'
1694 /video-playlists/{id}/videos/reorder:
1696 summary: 'Reorder a playlist'
1702 - $ref: '#/components/parameters/idOrUUID'
1705 description: successful operation
1714 description: 'Start position of the element to reorder (starts from 1)'
1715 insertAfterPosition:
1717 description: 'New position for the block to reorder (starts from 0, to add the block before the first element)'
1720 description: 'How many element from startPosition to reorder (minimum length is 1)'
1723 - insertAfterPosition
1725 /video-playlists/{id}/videos/{playlistElementId}:
1727 summary: 'Update a playlist element'
1733 - $ref: '#/components/parameters/idOrUUID'
1734 - $ref: '#/components/parameters/playlistElementId'
1737 description: successful operation
1746 description: 'Start the video at this specific timestamp (in seconds)'
1749 description: 'Stop the video at this specific timestamp (in seconds)'
1751 summary: 'Delete an element from a playlist'
1757 - $ref: '#/components/parameters/idOrUUID'
1758 - $ref: '#/components/parameters/playlistElementId'
1761 description: successful operation
1763 '/users/me/video-playlists/videos-exist':
1765 summary: 'Check video exists in my playlists'
1774 description: The video ids to check
1781 description: successful operation
1801 '/accounts/{name}/video-channels':
1803 summary: List video channels of an account
1808 - $ref: '#/components/parameters/name'
1811 description: successful operation
1817 $ref: '#/components/schemas/VideoChannel'
1818 '/accounts/{name}/ratings':
1820 summary: List ratings of an account
1826 - $ref: '#/components/parameters/name'
1827 - $ref: '#/components/parameters/start'
1828 - $ref: '#/components/parameters/count'
1829 - $ref: '#/components/parameters/sort'
1833 description: Optionally filter which ratings to retrieve
1841 description: successful operation
1847 $ref: '#/components/schemas/VideoRating'
1848 '/videos/{id}/comment-threads':
1850 summary: List threads of a video
1854 - $ref: '#/components/parameters/idOrUUID'
1855 - $ref: '#/components/parameters/start'
1856 - $ref: '#/components/parameters/count'
1857 - $ref: '#/components/parameters/commentsSort'
1860 description: successful operation
1864 $ref: '#/components/schemas/CommentThreadResponse'
1866 summary: Create a thread
1872 - $ref: '#/components/parameters/idOrUUID'
1875 description: successful operation
1879 $ref: '#/components/schemas/CommentThreadPostResponse'
1888 description: 'Text comment'
1892 '/videos/{id}/comment-threads/{threadId}':
1894 summary: Get a thread
1898 - $ref: '#/components/parameters/idOrUUID'
1899 - $ref: '#/components/parameters/threadId'
1902 description: successful operation
1906 $ref: '#/components/schemas/VideoCommentThreadTree'
1907 '/videos/{id}/comments/{commentId}':
1909 summary: Reply to a thread of a video
1915 - $ref: '#/components/parameters/idOrUUID'
1916 - $ref: '#/components/parameters/commentId'
1919 description: successful operation
1923 $ref: '#/components/schemas/CommentThreadPostResponse'
1932 description: 'Text comment'
1937 summary: Delete a comment or a reply
1943 - $ref: '#/components/parameters/idOrUUID'
1944 - $ref: '#/components/parameters/commentId'
1947 description: successful operation
1948 '/videos/{id}/rate':
1950 summary: Like/dislike a video
1956 - $ref: '#/components/parameters/idOrUUID'
1959 description: successful operation
1964 summary: Search videos
1966 - $ref: '#/components/parameters/categoryOneOf'
1967 - $ref: '#/components/parameters/tagsOneOf'
1968 - $ref: '#/components/parameters/tagsAllOf'
1969 - $ref: '#/components/parameters/licenceOneOf'
1970 - $ref: '#/components/parameters/languageOneOf'
1971 - $ref: '#/components/parameters/nsfw'
1972 - $ref: '#/components/parameters/filter'
1973 - $ref: '#/components/parameters/skipCount'
1974 - $ref: '#/components/parameters/start'
1975 - $ref: '#/components/parameters/count'
1976 - $ref: '#/components/parameters/videosSort'
1977 - $ref: '#/components/parameters/videosSearchSort'
1981 description: String to search
1986 description: successful operation
1990 $ref: '#/components/schemas/VideoListResponse'
1992 - url: 'https://peertube.cpy.re/api/v1'
1993 description: Live Test Server (live data - stable version)
1994 - url: 'https://peertube2.cpy.re/api/v1'
1995 description: Live Test Server (live data - latest nighlty version)
1996 - url: 'https://peertube3.cpy.re/api/v1'
1997 description: Live Test Server (live data - latest RC version)
2011 description: Number of items
2018 description: Sort column (-createdAt for example)
2025 description: Sort videos by criteria
2040 description: Sort videos by criteria
2055 description: Sort comments by criteria
2065 description: Sort blacklists by criteria
2081 description: Sort users by criteria
2092 description: Sort abuses by criteria
2104 The name of the account (chocobozzz or chocobozzz@peertube.cpy.re for
2112 description: The user id
2119 description: The object id or uuid
2123 name: playlistElementId
2126 description: Playlist element id
2133 description: Video abuse id
2137 name: captionLanguage
2140 description: The caption language
2147 description: "The video channel handle (example: 'my_username@example.com' or 'my_username')"
2151 name: subscriptionHandle
2154 description: "The subscription handle (example: 'my_username@example.com' or 'my_username')"
2161 description: The thread id (root comment id)
2168 description: The comment id
2175 description: category id of the video (see /videos/categories)
2188 description: tag(s) of the video
2201 description: tag(s) of the video, where all should be present in the video
2214 description: language id of the video (see /videos/languages). Use _unknown to filter on videos that don't have a video language
2227 description: licence id of the video (see /videos/licences)
2240 description: if you don't need the `total` in the response
2250 description: whether to include nsfw videos, if any
2261 Special filters (local for instance) which might require special rights:
2262 * `local` - only videos local to the instance
2263 * `all-local` - only videos local to the instance, but showing private and unlisted videos (requires Admin privileges)
2273 description: list of uris to check if each is part of the user subscriptions
2281 In the header: *Authorization: Bearer <token\>*
2284 Authenticating via OAuth requires the following steps:
2287 - Have an account with sufficient authorization levels
2289 - [Generate](https://docs.joinpeertube.org/#/api-rest-getting-started) a
2292 - Make Authenticated Requests
2296 tokenUrl: 'https://peertube.example.com/api/v1/users/token'
2299 moderator: Moderator scope
2302 VideoConstantNumber:
2308 VideoConstantString:
2315 VideoPlaylistPrivacySet:
2321 description: 'The video playlist privacy (Public = 1, Unlisted = 2, Private = 3)'
2322 VideoPlaylistPrivacyConstant:
2325 $ref: '#/components/schemas/VideoPlaylistPrivacySet'
2329 VideoPlaylistTypeSet:
2334 description: 'The video playlist type (Regular = 1, Watch Later = 2)'
2335 VideoPlaylistTypeConstant:
2338 $ref: '#/components/schemas/VideoPlaylistTypeSet'
2349 description: 'The video privacy (Public = 1, Unlisted = 2, Private = 3, Internal = 4)'
2350 VideoPrivacyConstant:
2353 $ref: '#/components/schemas/VideoPrivacySet'
2370 description: 'The user role (Admin = 0, Moderator = 1, User = 2)'
2380 description: 'The video state (Published = 1, to transcode = 2, to import = 3)'
2390 description: 'The video playlist privacy (Pending = 1, Rejected = 2, Accepted = 3)'
2391 VideoAbuseStateConstant:
2394 $ref: '#/components/schemas/VideoAbuseStateSet'
2398 VideoResolutionConstant:
2402 description: 'Video resolution (240, 360, 720 ...)'
2405 VideoScheduledUpdate:
2408 $ref: '#/components/schemas/VideoPrivacySet'
2412 description: When to update the video
2430 - $ref: '#/components/schemas/Avatar'
2431 VideoChannelSummary:
2446 - $ref: '#/components/schemas/Avatar'
2458 - $ref: '#/components/schemas/Video'
2464 $ref: '#/components/schemas/VideoResolutionConstant'
2467 description: 'Video file size in bytes'
2478 VideoStreamingPlaylists:
2486 description: 'Playlist type (HLS = 1)'
2510 originallyPublishedAt:
2513 $ref: '#/components/schemas/VideoConstantNumber'
2515 $ref: '#/components/schemas/VideoConstantNumber'
2517 $ref: '#/components/schemas/VideoConstantString'
2519 $ref: '#/components/schemas/VideoPrivacyConstant'
2546 $ref: '#/components/schemas/VideoStateConstant'
2550 - $ref: '#/components/schemas/VideoScheduledUpdate'
2558 $ref: '#/components/schemas/AccountSummary'
2560 $ref: '#/components/schemas/VideoChannelSummary'
2569 - $ref: '#/components/schemas/Video'
2577 $ref: '#/components/schemas/VideoChannel'
2579 $ref: '#/components/schemas/Account'
2587 $ref: '#/components/schemas/VideoFile'
2599 $ref: '#/components/schemas/VideoStreamingPlaylists'
2600 VideoImportStateConstant:
2608 description: 'The video import state (Pending = 1, Success = 2, Failed = 3)'
2625 $ref: '#/components/schemas/VideoImportStateConstant'
2635 $ref: '#/components/schemas/Video'
2643 $ref: '#/components/schemas/Account'
2645 $ref: '#/components/schemas/VideoAbuseStateConstant'
2721 $ref: '#/components/schemas/VideoPlaylistPrivacyConstant'
2723 $ref: '#/components/schemas/VideoPlaylistTypeConstant'
2725 $ref: '#/components/schemas/AccountSummary'
2727 $ref: '#/components/schemas/VideoChannelSummary'
2746 totalRepliesFromVideoAuthor:
2751 $ref: '#/components/schemas/Account'
2752 VideoCommentThreadTree:
2755 $ref: '#/components/schemas/VideoComment'
2759 $ref: '#/components/schemas/VideoCommentThreadTree'
2763 $ref: '#/components/schemas/VideoConstantString'
2793 $ref: '#/components/schemas/Avatar'
2796 - $ref: '#/components/schemas/Actor'
2814 description: 'Theme enabled by this user'
2817 description: 'Is email verified?'
2819 $ref: '#/components/schemas/NSFWPolicy'
2825 $ref: '#/components/schemas/UserRole'
2840 videoAbusesAcceptedCount:
2842 videoAbusesCreatedCount:
2846 noInstanceConfigWarningModal:
2857 $ref: '#/components/schemas/Account'
2861 $ref: '#/components/schemas/VideoChannel'
2931 allowedForCurrentIP:
2933 requiresEmailVerification:
3136 requiresEmailVerification:
3160 allowAdditionalExtensions:
3228 $ref: '#/components/schemas/Actor'
3230 $ref: '#/components/schemas/Actor'
3272 VideoUploadResponse:
3281 CommentThreadResponse:
3288 $ref: '#/components/schemas/VideoComment'
3289 CommentThreadPostResponse:
3292 $ref: '#/components/schemas/VideoComment'
3300 $ref: '#/components/schemas/Video'
3305 description: 'The user username '
3308 description: 'The user password. If the smtp server is configured, you can leave empty and an email will be sent '
3311 description: 'The user email '
3314 description: 'The user videoQuota '
3317 description: 'The user daily video quota '
3319 $ref: '#/components/schemas/UserRole'
3331 description: 'The user id '
3334 description: 'The updated email of the user '
3337 description: 'The updated videoQuota of the user '
3340 description: 'The updated daily video quota of the user '
3342 $ref: '#/components/schemas/UserRole'
3353 description: 'Your new password '
3356 description: 'Your new email '
3359 description: 'Your new displayNSFW '
3362 description: 'Your new autoPlayVideo '
3372 description: 'Id of the video '
3375 description: 'Rating of the video '
3382 $ref: '#/components/schemas/Video'
3385 description: 'Rating of the video'
3393 description: 'The username of the user '
3396 description: 'The password of the user '
3399 description: 'The email of the user '
3402 description: 'The user display name'
3408 description: 'The default channel name'
3411 description: 'The default channel display name'
3438 bulkVideosSupportUpdate:
3440 description: 'Update all videos support field of this channel'