aboutsummaryrefslogtreecommitdiffhomepage
path: root/support/doc/api/openapi.yaml
diff options
context:
space:
mode:
authorChocobozzz <me@florianbigard.com>2020-04-21 15:04:39 +0200
committerChocobozzz <me@florianbigard.com>2020-04-21 15:04:39 +0200
commitc18431505fd1d769554e9f848799284f84c30110 (patch)
tree421e3ffa368566a32e27b9c985425302bf3bcf25 /support/doc/api/openapi.yaml
parentb029d58a273ddbb1b17271fb8cae61d09a790005 (diff)
downloadPeerTube-c18431505fd1d769554e9f848799284f84c30110.tar.gz
PeerTube-c18431505fd1d769554e9f848799284f84c30110.tar.zst
PeerTube-c18431505fd1d769554e9f848799284f84c30110.zip
Add API doc for playlists
Diffstat (limited to 'support/doc/api/openapi.yaml')
-rw-r--r--support/doc/api/openapi.yaml379
1 files changed, 321 insertions, 58 deletions
diff --git a/support/doc/api/openapi.yaml b/support/doc/api/openapi.yaml
index 68c65b5a9..8de9c6505 100644
--- a/support/doc/api/openapi.yaml
+++ b/support/doc/api/openapi.yaml
@@ -362,7 +362,7 @@ paths:
362 summary: Follow a server 362 summary: Follow a server
363 responses: 363 responses:
364 '204': 364 '204':
365 $ref: '#/paths/~1users~1me/put/responses/204' 365 description: successful operation
366 requestBody: 366 requestBody:
367 content: 367 content:
368 application/json: 368 application/json:
@@ -421,7 +421,7 @@ paths:
421 - $ref: '#/components/parameters/id' 421 - $ref: '#/components/parameters/id'
422 responses: 422 responses:
423 '204': 423 '204':
424 $ref: '#/paths/~1users~1me/put/responses/204' 424 description: successful operation
425 get: 425 get:
426 summary: Get a user 426 summary: Get a user
427 security: 427 security:
@@ -447,7 +447,7 @@ paths:
447 - $ref: '#/components/parameters/id' 447 - $ref: '#/components/parameters/id'
448 responses: 448 responses:
449 '204': 449 '204':
450 $ref: '#/paths/~1users~1me/put/responses/204' 450 description: successful operation
451 requestBody: 451 requestBody:
452 content: 452 content:
453 application/json: 453 application/json:
@@ -461,7 +461,7 @@ paths:
461 - Users 461 - Users
462 responses: 462 responses:
463 '204': 463 '204':
464 $ref: '#/paths/~1users~1me/put/responses/204' 464 description: successful operation
465 requestBody: 465 requestBody:
466 content: 466 content:
467 application/json: 467 application/json:
@@ -717,7 +717,7 @@ paths:
717 - $ref: '#/components/parameters/idOrUUID' 717 - $ref: '#/components/parameters/idOrUUID'
718 responses: 718 responses:
719 '204': 719 '204':
720 $ref: '#/paths/~1users~1me/put/responses/204' 720 description: successful operation
721 '/videos/ownership/{id}/refuse': 721 '/videos/ownership/{id}/refuse':
722 post: 722 post:
723 summary: Refuse ownership change request 723 summary: Refuse ownership change request
@@ -729,7 +729,7 @@ paths:
729 - $ref: '#/components/parameters/idOrUUID' 729 - $ref: '#/components/parameters/idOrUUID'
730 responses: 730 responses:
731 '204': 731 '204':
732 $ref: '#/paths/~1users~1me/put/responses/204' 732 description: successful operation
733 '/videos/{id}/give-ownership': 733 '/videos/{id}/give-ownership':
734 post: 734 post:
735 summary: Request ownership change 735 summary: Request ownership change
@@ -752,7 +752,7 @@ paths:
752 - username 752 - username
753 responses: 753 responses:
754 '204': 754 '204':
755 $ref: '#/paths/~1users~1me/put/responses/204' 755 description: successful operation
756 '400': 756 '400':
757 description: 'Changing video ownership to a remote account is not supported yet' 757 description: 'Changing video ownership to a remote account is not supported yet'
758 /videos: 758 /videos:
@@ -869,6 +869,8 @@ paths:
869 language: 869 language:
870 description: Video language 870 description: Video language
871 type: string 871 type: string
872 privacy:
873 $ref: '#/components/schemas/VideoPrivacySet'
872 description: 874 description:
873 description: Video description 875 description: Video description
874 type: string 876 type: string
@@ -930,7 +932,7 @@ paths:
930 - $ref: '#/components/parameters/idOrUUID' 932 - $ref: '#/components/parameters/idOrUUID'
931 responses: 933 responses:
932 '204': 934 '204':
933 $ref: '#/paths/~1users~1me/put/responses/204' 935 description: successful operation
934 '/videos/{id}/description': 936 '/videos/{id}/description':
935 get: 937 get:
936 summary: Get complete video description 938 summary: Get complete video description
@@ -954,7 +956,7 @@ paths:
954 - $ref: '#/components/parameters/idOrUUID' 956 - $ref: '#/components/parameters/idOrUUID'
955 responses: 957 responses:
956 '204': 958 '204':
957 $ref: '#/paths/~1users~1me/put/responses/204' 959 description: successful operation
958 '/videos/{id}/watching': 960 '/videos/{id}/watching':
959 put: 961 put:
960 summary: Set watching progress of a video 962 summary: Set watching progress of a video
@@ -972,7 +974,7 @@ paths:
972 required: true 974 required: true
973 responses: 975 responses:
974 '204': 976 '204':
975 $ref: '#/paths/~1users~1me/put/responses/204' 977 description: successful operation
976 /videos/upload: 978 /videos/upload:
977 post: 979 post:
978 summary: Upload a video 980 summary: Upload a video
@@ -1220,7 +1222,7 @@ paths:
1220 - $ref: '#/components/parameters/idOrUUID' 1222 - $ref: '#/components/parameters/idOrUUID'
1221 responses: 1223 responses:
1222 '204': 1224 '204':
1223 $ref: '#/paths/~1users~1me/put/responses/204' 1225 description: successful operation
1224 '/videos/{id}/blacklist': 1226 '/videos/{id}/blacklist':
1225 post: 1227 post:
1226 summary: Blacklist a video 1228 summary: Blacklist a video
@@ -1234,7 +1236,7 @@ paths:
1234 - $ref: '#/components/parameters/idOrUUID' 1236 - $ref: '#/components/parameters/idOrUUID'
1235 responses: 1237 responses:
1236 '204': 1238 '204':
1237 $ref: '#/paths/~1users~1me/put/responses/204' 1239 description: successful operation
1238 delete: 1240 delete:
1239 summary: Delete an entry of the blacklist of a video by its id 1241 summary: Delete an entry of the blacklist of a video by its id
1240 security: 1242 security:
@@ -1247,7 +1249,7 @@ paths:
1247 - $ref: '#/components/parameters/idOrUUID' 1249 - $ref: '#/components/parameters/idOrUUID'
1248 responses: 1250 responses:
1249 '204': 1251 '204':
1250 $ref: '#/paths/~1users~1me/put/responses/204' 1252 description: successful operation
1251 /videos/blacklist: 1253 /videos/blacklist:
1252 get: 1254 get:
1253 summary: List blacklisted videos 1255 summary: List blacklisted videos
@@ -1314,7 +1316,7 @@ paths:
1314 contentType: text/vtt, application/x-subrip, text/plain 1316 contentType: text/vtt, application/x-subrip, text/plain
1315 responses: 1317 responses:
1316 '204': 1318 '204':
1317 $ref: '#/paths/~1users~1me/put/responses/204' 1319 description: successful operation
1318 delete: 1320 delete:
1319 summary: Delete a video caption 1321 summary: Delete a video caption
1320 tags: 1322 tags:
@@ -1324,7 +1326,7 @@ paths:
1324 - $ref: '#/components/parameters/captionLanguage' 1326 - $ref: '#/components/parameters/captionLanguage'
1325 responses: 1327 responses:
1326 '204': 1328 '204':
1327 $ref: '#/paths/~1users~1me/put/responses/204' 1329 description: successful operation
1328 /video-channels: 1330 /video-channels:
1329 get: 1331 get:
1330 summary: List video channels 1332 summary: List video channels
@@ -1351,7 +1353,7 @@ paths:
1351 - Video Channels 1353 - Video Channels
1352 responses: 1354 responses:
1353 '204': 1355 '204':
1354 $ref: '#/paths/~1users~1me/put/responses/204' 1356 description: successful operation
1355 requestBody: 1357 requestBody:
1356 content: 1358 content:
1357 application/json: 1359 application/json:
@@ -1381,7 +1383,7 @@ paths:
1381 - $ref: '#/components/parameters/channelHandle' 1383 - $ref: '#/components/parameters/channelHandle'
1382 responses: 1384 responses:
1383 '204': 1385 '204':
1384 $ref: '#/paths/~1users~1me/put/responses/204' 1386 description: successful operation
1385 requestBody: 1387 requestBody:
1386 content: 1388 content:
1387 application/json: 1389 application/json:
@@ -1397,7 +1399,7 @@ paths:
1397 - $ref: '#/components/parameters/channelHandle' 1399 - $ref: '#/components/parameters/channelHandle'
1398 responses: 1400 responses:
1399 '204': 1401 '204':
1400 $ref: '#/paths/~1users~1me/put/responses/204' 1402 description: successful operation
1401 '/video-channels/{channelHandle}/videos': 1403 '/video-channels/{channelHandle}/videos':
1402 get: 1404 get:
1403 summary: List videos of a video channel 1405 summary: List videos of a video channel
@@ -1413,6 +1415,22 @@ paths:
1413 application/json: 1415 application/json:
1414 schema: 1416 schema:
1415 $ref: '#/components/schemas/VideoListResponse' 1417 $ref: '#/components/schemas/VideoListResponse'
1418
1419 /video-playlists/privacies:
1420 get:
1421 summary: List available playlist privacies
1422 tags:
1423 - Video Playlists
1424 responses:
1425 '200':
1426 description: successful operation
1427 content:
1428 application/json:
1429 schema:
1430 type: array
1431 items:
1432 type: string
1433
1416 /video-playlists: 1434 /video-playlists:
1417 get: 1435 get:
1418 summary: List video playlists 1436 summary: List video playlists
@@ -1431,6 +1449,235 @@ paths:
1431 type: array 1449 type: array
1432 items: 1450 items:
1433 $ref: '#/components/schemas/VideoPlaylist' 1451 $ref: '#/components/schemas/VideoPlaylist'
1452 post:
1453 summary: Create a video playlist
1454 description: 'If the video playlist is set as public, the videoChannelId is mandatory.'
1455 security:
1456 - OAuth2: []
1457 tags:
1458 - Video Playlists
1459 responses:
1460 '200':
1461 description: successful operation
1462 content:
1463 application/json:
1464 schema:
1465 type: object
1466 properties:
1467 videoPlaylist:
1468 type: object
1469 properties:
1470 id:
1471 type: number
1472 uuid:
1473 type: string
1474 requestBody:
1475 content:
1476 multipart/form-data:
1477 schema:
1478 type: object
1479 properties:
1480 displayName:
1481 description: Video playlist display name
1482 type: string
1483 thumbnailfile:
1484 description: Video playlist thumbnail file
1485 type: string
1486 format: binary
1487 privacy:
1488 $ref: '#/components/schemas/VideoPlaylistPrivacySet'
1489 description:
1490 description: Video playlist description
1491 type: string
1492 videoChannelId:
1493 description: Video channel in which the playlist will be published
1494 type: number
1495 required:
1496 - displayName
1497
1498 /video-playlists/{id}:
1499 get:
1500 summary: Get a video playlist
1501 tags:
1502 - Video Playlists
1503 parameters:
1504 - $ref: '#/components/parameters/idOrUUID'
1505 responses:
1506 '200':
1507 description: successful operation
1508 content:
1509 application/json:
1510 schema:
1511 $ref: '#/components/schemas/VideoPlaylist'
1512 put:
1513 summary: Update a video playlist
1514 description: 'If the video playlist is set as public, the playlist must have a assigned channel.'
1515 security:
1516 - OAuth2: []
1517 tags:
1518 - Video Playlists
1519 responses:
1520 '204':
1521 description: successful operation
1522 parameters:
1523 - $ref: '#/components/parameters/idOrUUID'
1524 requestBody:
1525 content:
1526 multipart/form-data:
1527 schema:
1528 type: object
1529 properties:
1530 displayName:
1531 description: Video playlist display name
1532 type: string
1533 thumbnailfile:
1534 description: Video playlist thumbnail file
1535 type: string
1536 format: binary
1537 privacy:
1538 $ref: '#/components/schemas/VideoPlaylistPrivacySet'
1539 description:
1540 description: Video playlist description
1541 type: string
1542 videoChannelId:
1543 description: Video channel in which the playlist will be published
1544 type: number
1545 delete:
1546 summary: Delete a video playlist
1547 security:
1548 - OAuth2: []
1549 tags:
1550 - Video Playlists
1551 parameters:
1552 - $ref: '#/components/parameters/idOrUUID'
1553 responses:
1554 '204':
1555 description: successful operation
1556
1557 /video-playlists/{id}/videos:
1558 get:
1559 summary: 'List videos of a playlist'
1560 tags:
1561 - Videos
1562 - Video Playlists
1563 parameters:
1564 - $ref: '#/components/parameters/idOrUUID'
1565 responses:
1566 '200':
1567 description: successful operation
1568 content:
1569 application/json:
1570 schema:
1571 $ref: '#/components/schemas/VideoListResponse'
1572 post:
1573 summary: 'Add a video in a playlist'
1574 security:
1575 - OAuth2: []
1576 tags:
1577 - Videos
1578 - Video Playlists
1579 parameters:
1580 - $ref: '#/components/parameters/idOrUUID'
1581 responses:
1582 '200':
1583 description: successful operation
1584 content:
1585 application/json:
1586 schema:
1587 type: object
1588 properties:
1589 videoPlaylistElement:
1590 type: object
1591 properties:
1592 id:
1593 type: number
1594 requestBody:
1595 content:
1596 application/json:
1597 schema:
1598 type: object
1599 properties:
1600 videoId:
1601 type: number
1602 description: 'Video to add in the playlist'
1603 startTimestamp:
1604 type: number
1605 description: 'Start the video at this specific timestamp (in seconds)'
1606 stopTimestamp:
1607 type: number
1608 description: 'Stop the video at this specific timestamp (in seconds)'
1609 required:
1610 - videoId
1611
1612 /video-playlists/{id}/videos/reorder:
1613 post:
1614 summary: 'Reorder a playlist'
1615 security:
1616 - OAuth2: []
1617 tags:
1618 - Video Playlists
1619 parameters:
1620 - $ref: '#/components/parameters/idOrUUID'
1621 responses:
1622 '204':
1623 description: successful operation
1624 requestBody:
1625 content:
1626 application/json:
1627 schema:
1628 type: object
1629 properties:
1630 startPosition:
1631 type: number
1632 description: 'Start position of the element to reorder (starts from 1)'
1633 insertAfterPosition:
1634 type: number
1635 description: 'New position for the block to reorder (starts from 0, to add the block before the first element)'
1636 reorderLength:
1637 type: number
1638 description: 'How many element from startPosition to reorder (minimum length is 1)'
1639 required:
1640 - startPosition
1641 - insertAfterPosition
1642
1643 /video-playlists/{id}/videos/:playlistElementId:
1644 put:
1645 summary: 'Update a playlist element'
1646 security:
1647 - OAuth2: []
1648 tags:
1649 - Video Playlists
1650 parameters:
1651 - $ref: '#/components/parameters/idOrUUID'
1652 - $ref: '#/components/parameters/playlistElementId'
1653 responses:
1654 '204':
1655 description: successful operation
1656 requestBody:
1657 content:
1658 application/json:
1659 schema:
1660 type: object
1661 properties:
1662 startTimestamp:
1663 type: number
1664 description: 'Start the video at this specific timestamp (in seconds)'
1665 stopTimestamp:
1666 type: number
1667 description: 'Stop the video at this specific timestamp (in seconds)'
1668 delete:
1669 summary: 'Delete an element from a playlist'
1670 security:
1671 - OAuth2: []
1672 tags:
1673 - Video Playlists
1674 parameters:
1675 - $ref: '#/components/parameters/idOrUUID'
1676 - $ref: '#/components/parameters/playlistElementId'
1677 responses:
1678 '204':
1679 description: successful operation
1680
1434 '/accounts/{name}/video-channels': 1681 '/accounts/{name}/video-channels':
1435 get: 1682 get:
1436 summary: List video channels of an account 1683 summary: List video channels of an account
@@ -1553,7 +1800,7 @@ paths:
1553 - $ref: '#/components/parameters/commentId' 1800 - $ref: '#/components/parameters/commentId'
1554 responses: 1801 responses:
1555 '204': 1802 '204':
1556 $ref: '#/paths/~1users~1me/put/responses/204' 1803 description: successful operation
1557 '/videos/{id}/rate': 1804 '/videos/{id}/rate':
1558 put: 1805 put:
1559 summary: Like/dislike a video 1806 summary: Like/dislike a video
@@ -1565,7 +1812,7 @@ paths:
1565 - $ref: '#/components/parameters/idOrUUID' 1812 - $ref: '#/components/parameters/idOrUUID'
1566 responses: 1813 responses:
1567 '204': 1814 '204':
1568 $ref: '#/paths/~1users~1me/put/responses/204' 1815 description: successful operation
1569 /search/videos: 1816 /search/videos:
1570 get: 1817 get:
1571 tags: 1818 tags:
@@ -1716,9 +1963,16 @@ components:
1716 name: id 1963 name: id
1717 in: path 1964 in: path
1718 required: true 1965 required: true
1719 description: The video id or uuid 1966 description: The object id or uuid
1720 schema: 1967 schema:
1721 type: string 1968 type: string
1969 playlistElementId:
1970 name: playlistElementId
1971 in: path
1972 required: true
1973 description: Playlist element id
1974 schema:
1975 type: number
1722 captionLanguage: 1976 captionLanguage:
1723 name: captionLanguage 1977 name: captionLanguage
1724 in: path 1978 in: path
@@ -1887,21 +2141,46 @@ components:
1887 type: string 2141 type: string
1888 label: 2142 label:
1889 type: string 2143 type: string
2144
2145 VideoPlaylistPrivacySet:
2146 type: integer
2147 enum:
2148 - 1
2149 - 2
2150 - 3
2151 description: 'The video playlist privacy (Public = 1, Unlisted = 2, Private = 3)'
2152 VideoPlaylistPrivacyConstant:
2153 properties:
2154 id:
2155 $ref: '#/components/schemas/VideoPlaylistPrivacySet'
2156 label:
2157 type: string
2158
2159 VideoPlaylistTypeSet:
2160 type: integer
2161 enum:
2162 - 1
2163 - 2
2164 description: 'The video playlist type (Regular = 1, Watch Later = 2)'
2165 VideoPlaylistTypeConstant:
2166 properties:
2167 id:
2168 $ref: '#/components/schemas/VideoPlaylistTypeSet'
2169 label:
2170 type: string
2171
1890 VideoPrivacySet: 2172 VideoPrivacySet:
1891 type: integer 2173 type: integer
1892 enum: 2174 enum:
1893 - 1 2175 - 1
1894 - 2 2176 - 2
1895 - 3 2177 - 3
1896 description: 'The video privacy (Public = 1, Unlisted = 2, Private = 3)' 2178 - 4
2179 description: 'The video privacy (Public = 1, Unlisted = 2, Private = 3, Internal = 4)'
1897 VideoPrivacyConstant: 2180 VideoPrivacyConstant:
1898 properties: 2181 properties:
1899 id: 2182 id:
1900 type: integer 2183 $ref: '#/components/schemas/VideoPrivacySet'
1901 enum:
1902 - 1
1903 - 2
1904 - 3
1905 label: 2184 label:
1906 type: string 2185 type: string
1907 VideoStateConstant: 2186 VideoStateConstant:
@@ -1926,14 +2205,13 @@ components:
1926 properties: 2205 properties:
1927 privacy: 2206 privacy:
1928 $ref: '#/components/schemas/VideoPrivacySet' 2207 $ref: '#/components/schemas/VideoPrivacySet'
1929 description: Video privacy target
1930 updateAt: 2208 updateAt:
1931 type: string 2209 type: string
1932 format: date 2210 format: date
1933 description: When to update the video 2211 description: When to update the video
1934 required: 2212 required:
1935 - updateAt 2213 - updateAt
1936 VideoAccountSummary: 2214 AccountSummary:
1937 properties: 2215 properties:
1938 id: 2216 id:
1939 type: number 2217 type: number
@@ -1947,7 +2225,8 @@ components:
1947 type: string 2225 type: string
1948 avatar: 2226 avatar:
1949 nullable: true 2227 nullable: true
1950 $ref: '#/components/schemas/Avatar' 2228 allOf:
2229 - $ref: '#/components/schemas/Avatar'
1951 VideoChannelSummary: 2230 VideoChannelSummary:
1952 properties: 2231 properties:
1953 id: 2232 id:
@@ -1962,7 +2241,8 @@ components:
1962 type: string 2241 type: string
1963 avatar: 2242 avatar:
1964 nullable: true 2243 nullable: true
1965 $ref: '#/components/schemas/Avatar' 2244 allOf:
2245 - $ref: '#/components/schemas/Avatar'
1966 PlaylistElement: 2246 PlaylistElement:
1967 properties: 2247 properties:
1968 position: 2248 position:
@@ -1973,7 +2253,8 @@ components:
1973 type: number 2253 type: number
1974 video: 2254 video:
1975 nullable: true 2255 nullable: true
1976 $ref: '#/components/schemas/Video' 2256 allOf:
2257 - $ref: '#/components/schemas/Video'
1977 VideoFile: 2258 VideoFile:
1978 properties: 2259 properties:
1979 magnetUri: 2260 magnetUri:
@@ -2064,7 +2345,8 @@ components:
2064 $ref: '#/components/schemas/VideoStateConstant' 2345 $ref: '#/components/schemas/VideoStateConstant'
2065 scheduledUpdate: 2346 scheduledUpdate:
2066 nullable: true 2347 nullable: true
2067 $ref: '#/components/schemas/VideoScheduledUpdate' 2348 allOf:
2349 - $ref: '#/components/schemas/VideoScheduledUpdate'
2068 blacklisted: 2350 blacklisted:
2069 nullable: true 2351 nullable: true
2070 type: boolean 2352 type: boolean
@@ -2072,7 +2354,7 @@ components:
2072 nullable: true 2354 nullable: true
2073 type: string 2355 type: string
2074 account: 2356 account:
2075 $ref: '#/components/schemas/VideoAccountSummary' 2357 $ref: '#/components/schemas/AccountSummary'
2076 channel: 2358 channel:
2077 $ref: '#/components/schemas/VideoChannelSummary' 2359 $ref: '#/components/schemas/VideoChannelSummary'
2078 userHistory: 2360 userHistory:
@@ -2233,32 +2515,13 @@ components:
2233 thumbnailPath: 2515 thumbnailPath:
2234 type: string 2516 type: string
2235 privacy: 2517 privacy:
2236 type: object 2518 $ref: '#/components/schemas/VideoPlaylistPrivacyConstant'
2237 properties:
2238 id:
2239 type: number
2240 label:
2241 type: string
2242 type: 2519 type:
2243 type: object 2520 $ref: '#/components/schemas/VideoPlaylistTypeConstant'
2244 properties:
2245 id:
2246 type: number
2247 label:
2248 type: string
2249 ownerAccount: 2521 ownerAccount:
2250 type: object 2522 $ref: '#/components/schemas/AccountSummary'
2251 properties: 2523 videoChannel:
2252 id: 2524 $ref: '#/components/schemas/VideoChannelSummary'
2253 type: number
2254 name:
2255 type: string
2256 displayName:
2257 type: string
2258 url:
2259 type: string
2260 host:
2261 type: string
2262 VideoComment: 2525 VideoComment:
2263 properties: 2526 properties:
2264 id: 2527 id: