]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - support/doc/api/openapi.yaml
Bumped to version v2.1.0-rc.1
[github/Chocobozzz/PeerTube.git] / support / doc / api / openapi.yaml
index 7eb4577bc1f3291327ec922f26f315d78e6fd296..43718e2a1537c3f4a0bf4f245352c0bd7851bd8d 100644 (file)
@@ -1,7 +1,7 @@
 openapi: 3.0.0
 info:
   title: PeerTube
-  version: 2.0.0-rc.1
+  version: 2.1.0-rc.1
   contact:
     name: PeerTube Community
     url: 'https://joinpeertube.org'
@@ -76,6 +76,10 @@ tags:
     description: >
       Operations dealing with comments to a video. Comments are organized in
       threads.
+  - name: Video Playlist
+    description: >
+      Operations dealing with playlists of videos. Playlists are bound to users
+      and/or channels.
   - name: Video Channel
     description: >
       Operations dealing with creation, modification and video listing of a
@@ -160,35 +164,25 @@ paths:
             http -b GET https://peertube2.cpy.re/api/v1/accounts/{name}/videos
         - lang: Ruby
           source: |
-            require 'uri'
             require 'net/http'
+            require 'json'
 
-            url = URI("https://peertube2.cpy.re/api/v1/accounts/{name}/videos")
+            uri = URI.parse("https://peertube2.cpy.re/api/v1/accounts/{name}/videos")
 
-            http = Net::HTTP.new(url.host, url.port)
+            http = Net::HTTP.new(uri.host, uri.port)
             http.use_ssl = true
-            http.verify_mode = OpenSSL::SSL::VERIFY_NONE
 
-            request = Net::HTTP::Post.new(url)
-            request["content-type"] = 'application/json'
-            response = http.request(request)
-            puts response.read_body
+            response = http.get(uri.request_uri)
+
+            puts JSON.parse(response.read_body)
         - lang: Python
           source: |
-            import http.client
-
-            conn = http.client.HTTPSConnection("https://peertube2.cpy.re/api/v1")
-
-            headers = {
-              'content-type': "application/json"
-            }
-
-            conn.request("POST", "/accounts/{name}/videos", None, headers)
+            import requests
 
-            res = conn.getresponse()
-            data = res.read()
+            r = requests.get("https://peertube2.cpy.re/api/v1//accounts/{name}/videos")
+            json = r.json()
 
-            print(data.decode("utf-8"))
+            print(json)
   /accounts:
     get:
       tags:
@@ -1298,7 +1292,7 @@ paths:
                   format: binary
             encoding:
               captionfile:
-                contentType: text/vtt, application/x-subrip
+                contentType: text/vtt, application/x-subrip, text/plain
       responses:
         '204':
           $ref: '#/paths/~1users~1me/put/responses/204'
@@ -1400,6 +1394,24 @@ paths:
             application/json:
               schema:
                 $ref: '#/components/schemas/VideoListResponse'
+  /video-playlists:
+    get:
+      summary: Get list of video playlists
+      tags:
+        - Video Playlist
+      parameters:
+        - $ref: '#/components/parameters/start'
+        - $ref: '#/components/parameters/count'
+        - $ref: '#/components/parameters/sort'
+      responses:
+        '200':
+          description: successful operation
+          content:
+            application/json:
+              schema:
+                type: array
+                items:
+                  $ref: '#/components/schemas/VideoPlaylist'
   '/accounts/{name}/video-channels':
     get:
       summary: Get video channels of an account by its name
@@ -1455,7 +1467,7 @@ paths:
         - $ref: '#/components/parameters/idOrUUID'
         - $ref: '#/components/parameters/start'
         - $ref: '#/components/parameters/count'
-        - $ref: '#/components/parameters/sort'
+        - $ref: '#/components/parameters/commentsSort'
       responses:
         '200':
           description: successful operation
@@ -1616,6 +1628,16 @@ components:
         - -views
         - -likes
         - -match
+    commentsSort:
+      name: sort
+      in: query
+      required: false
+      description: Sort comments by criteria
+      schema:
+        type: string
+        enum:
+        - -createdAt
+        - -totalReplies
     blacklistsSort:
       name: sort
       in: query
@@ -2170,6 +2192,53 @@ components:
               type: number
             uuid:
               type: string
+    VideoPlaylist:
+      properties:
+        id:
+          type: number
+        createdAt:
+          type: string
+        updatedAt:
+          type: string
+        description:
+          type: string
+        uuid:
+          type: string
+        displayName:
+          type: string
+        isLocal:
+          type: boolean
+        videoLength:
+          type: number
+        thumbnailPath:
+          type: string
+        privacy:
+          type: object
+          properties:
+            id:
+              type: number
+            label:
+              type: string
+        type:
+          type: object
+          properties:
+            id:
+              type: number
+            label:
+              type: string
+        ownerAccount:
+          type: object
+          properties:
+            id:
+              type: number
+            name:
+              type: string
+            displayName:
+              type: string
+            url:
+              type: string
+            host:
+              type: string
     VideoComment:
       properties:
         id:
@@ -2188,6 +2257,8 @@ components:
           type: string
         updatedAt:
           type: string
+        totalRepliesFromVideoAuthor:
+          type: number
         totalReplies:
           type: number
         account: