]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blob - support/doc/api/openapi.yaml
Add downloadingEnabled property to video model
[github/Chocobozzz/PeerTube.git] / support / doc / api / openapi.yaml
1 swagger: '2.0'
2 info:
3 title: PeerTube
4 version: 1.0.0-beta
5 description: Federated (ActivityPub) video streaming platform using P2P (BitTorrent) directly in the web browser with WebTorrent and Angular.
6 host: peertube.example.com
7 securityDefinitions:
8 OAuth2:
9 description: 'In the header: *Authorization: Bearer mytoken*'
10 type: oauth2
11 flow: password
12 # Not implemented yet
13 # authorizationUrl: https://example.com/oauth/authorize
14 tokenUrl: https://peertube.example.com/api/v1/users/token
15 basePath: '/api/v1'
16 schemes:
17 - https
18 paths:
19 '/accounts/{name}':
20 get:
21 tags:
22 - Accounts
23 consumes:
24 - application/json
25 produces:
26 - application/json
27 parameters:
28 - $ref: "accounts.yaml#/parameters/name"
29 - $ref: "commons.yaml#/parameters/start"
30 - $ref: "commons.yaml#/parameters/count"
31 - $ref: "commons.yaml#/parameters/sort"
32 responses:
33 '200':
34 description: successful operation
35 schema:
36 $ref: '#/definitions/Account'
37 '/accounts/{name}/videos':
38 get:
39 tags:
40 - Accounts
41 consumes:
42 - application/json
43 produces:
44 - application/json
45 parameters:
46 - $ref: "accounts.yaml#/parameters/name"
47 responses:
48 '200':
49 description: successful operation
50 schema:
51 $ref: '#/definitions/Video'
52 /accounts:
53 get:
54 tags:
55 - Accounts
56 consumes:
57 - application/json
58 produces:
59 - application/json
60 responses:
61 '200':
62 description: successful operation
63 schema:
64 type: array
65 items:
66 $ref: '#/definitions/Account'
67 /config:
68 get:
69 tags:
70 - Config
71 consumes:
72 - application/json
73 produces:
74 - application/json
75 responses:
76 '200':
77 description: successful operation
78 schema:
79 $ref: '#/definitions/ServerConfig'
80 /feeds/videos.{format}:
81 get:
82 tags:
83 - Feeds
84 produces:
85 - application/atom+xml
86 - application/rss+xml
87 - application/json
88 parameters:
89 - name: format
90 in: path
91 required: true
92 type: string
93 enum: [ 'xml', 'atom', 'json']
94 default: 'xml'
95 description: 'The format expected (xml defaults to RSS 2.0, atom to ATOM 1.0 and json to JSON FEED 1.0'
96 - name: accountId
97 in: query
98 required: false
99 type: number
100 description: 'The id of the local account to filter to (beware, users IDs and not actors IDs which will return empty feeds'
101 - name: accountName
102 in: query
103 required: false
104 type: string
105 description: 'The name of the local account to filter to'
106 responses:
107 '200':
108 description: successful operation
109 /jobs:
110 get:
111 security:
112 - OAuth2: [ ]
113 tags:
114 - Job
115 consumes:
116 - application/json
117 produces:
118 - application/json
119 parameters:
120 - name: state
121 in: path
122 required: true
123 type: string
124 description: 'The state of the job'
125 - $ref: "commons.yaml#/parameters/start"
126 - $ref: "commons.yaml#/parameters/count"
127 - $ref: "commons.yaml#/parameters/sort"
128 responses:
129 '200':
130 description: successful operation
131 schema:
132 type: array
133 items:
134 $ref: '#/definitions/Job'
135 '/server/following/{host}':
136 delete:
137 security:
138 - OAuth2: [ ]
139 tags:
140 - ServerFollowing
141 consumes:
142 - application/json
143 produces:
144 - application/json
145 parameters:
146 - name: host
147 in: path
148 required: true
149 type: string
150 description: 'The host to unfollow '
151 responses:
152 '201':
153 description: successful operation
154 /server/followers:
155 get:
156 tags:
157 - ServerFollowing
158 consumes:
159 - application/json
160 produces:
161 - application/json
162 parameters:
163 - $ref: "commons.yaml#/parameters/start"
164 - $ref: "commons.yaml#/parameters/count"
165 - $ref: "commons.yaml#/parameters/sort"
166 responses:
167 '200':
168 description: successful operation
169 schema:
170 type: array
171 items:
172 $ref: '#/definitions/Follow'
173 /server/following:
174 get:
175 tags:
176 - ServerFollowing
177 consumes:
178 - application/json
179 produces:
180 - application/json
181 parameters:
182 - $ref: "commons.yaml#/parameters/start"
183 - $ref: "commons.yaml#/parameters/count"
184 - $ref: "commons.yaml#/parameters/sort"
185 responses:
186 '200':
187 description: successful operation
188 schema:
189 type: array
190 items:
191 $ref: '#/definitions/Follow'
192 post:
193 security:
194 - OAuth2: [ ]
195 tags:
196 - ServerFollowing
197 consumes:
198 - application/json
199 produces:
200 - application/json
201 parameters:
202 - in: body
203 name: body
204 schema:
205 $ref: '#/definitions/Follow'
206 responses:
207 '204':
208 $ref: "commons.yaml#/responses/emptySuccess"
209 /users:
210 post:
211 security:
212 - OAuth2: [ ]
213 tags:
214 - User
215 consumes:
216 - application/json
217 produces:
218 - application/json
219 parameters:
220 - in: body
221 name: body
222 required: true
223 description: 'User to create'
224 schema:
225 $ref: '#/definitions/AddUser'
226 responses:
227 '200':
228 description: successful operation
229 schema:
230 $ref: '#/definitions/AddUserResponse'
231 get:
232 security:
233 - OAuth2: [ ]
234 tags:
235 - User
236 consumes:
237 - application/json
238 produces:
239 - application/json
240 parameters:
241 - $ref: "commons.yaml#/parameters/start"
242 - $ref: "commons.yaml#/parameters/count"
243 - $ref: "commons.yaml#/parameters/sort"
244 responses:
245 '200':
246 description: successful operation
247 schema:
248 type: array
249 items:
250 $ref: '#/definitions/User'
251 '/users/{id}':
252 delete:
253 security:
254 - OAuth2: [ ]
255 tags:
256 - User
257 consumes:
258 - application/json
259 produces:
260 - application/json
261 parameters:
262 - $ref: "users.yaml#/parameters/id"
263 responses:
264 '204':
265 $ref: "commons.yaml#/responses/emptySuccess"
266 get:
267 security:
268 - OAuth2: [ ]
269 tags:
270 - User
271 consumes:
272 - application/json
273 produces:
274 - application/json
275 parameters:
276 - $ref: "users.yaml#/parameters/id"
277 responses:
278 '200':
279 description: successful operation
280 schema:
281 $ref: '#/definitions/User'
282 put:
283 security:
284 - OAuth2: [ ]
285 tags:
286 - User
287 consumes:
288 - application/json
289 produces:
290 - application/json
291 parameters:
292 - $ref: "users.yaml#/parameters/id"
293 - in: body
294 name: body
295 required: true
296 schema:
297 $ref: '#/definitions/UpdateUser'
298 responses:
299 '204':
300 $ref: "commons.yaml#/responses/emptySuccess"
301 /users/me:
302 get:
303 security:
304 - OAuth2: [ ]
305 tags:
306 - User
307 consumes:
308 - application/json
309 produces:
310 - application/json
311 responses:
312 '200':
313 description: successful operation
314 schema:
315 type: array
316 items:
317 $ref: '#/definitions/User'
318 put:
319 security:
320 - OAuth2: [ ]
321 tags:
322 - User
323 consumes:
324 - application/json
325 produces:
326 - application/json
327 parameters:
328 - in: body
329 name: body
330 required: true
331 schema:
332 $ref: '#/definitions/UpdateMe'
333 responses:
334 '204':
335 $ref: "commons.yaml#/responses/emptySuccess"
336 /users/me/video-quota-used:
337 get:
338 security:
339 - OAuth2: [ ]
340 tags:
341 - User
342 consumes:
343 - application/json
344 produces:
345 - application/json
346 parameters: []
347 responses:
348 '200':
349 description: successful operation
350 schema:
351 type: number
352 '/users/me/videos/{videoId}/rating':
353 get:
354 security:
355 - OAuth2: [ ]
356 tags:
357 - User
358 consumes:
359 - application/json
360 produces:
361 - application/json
362 parameters:
363 - name: videoId
364 in: path
365 required: true
366 type: string
367 description: 'The video id '
368 responses:
369 '200':
370 description: successful operation
371 schema:
372 $ref: '#/definitions/GetMeVideoRating'
373 /users/me/videos:
374 get:
375 security:
376 - OAuth2: [ ]
377 tags:
378 - User
379 consumes:
380 - application/json
381 produces:
382 - application/json
383 parameters:
384 - $ref: "commons.yaml#/parameters/start"
385 - $ref: "commons.yaml#/parameters/count"
386 - $ref: "commons.yaml#/parameters/sort"
387 responses:
388 '200':
389 description: successful operation
390 schema:
391 type: array
392 items:
393 $ref: '#/definitions/Video'
394 /users/register:
395 post:
396 tags:
397 - User
398 consumes:
399 - application/json
400 produces:
401 - application/json
402 parameters:
403 - in: body
404 name: body
405 required: true
406 schema:
407 $ref: '#/definitions/RegisterUser'
408 responses:
409 '204':
410 $ref: "commons.yaml#/responses/emptySuccess"
411 /users/me/avatar/pick:
412 post:
413 security:
414 - OAuth2: [ ]
415 tags:
416 - User
417 consumes:
418 - multipart/form-data
419 produces:
420 - application/json
421 parameters:
422 - in: formData
423 name: avatarfile
424 type: file
425 description: The file to upload.
426 responses:
427 '200':
428 description: successful operation
429 schema:
430 $ref: '#/definitions/Avatar'
431 /videos:
432 get:
433 tags:
434 - Video
435 consumes:
436 - application/json
437 produces:
438 - application/json
439 parameters:
440 - name: category
441 in: query
442 required: false
443 type: number
444 description: category id of the video
445 - $ref: "commons.yaml#/parameters/start"
446 - $ref: "commons.yaml#/parameters/count"
447 - $ref: "commons.yaml#/parameters/sort"
448 responses:
449 '200':
450 description: successful operation
451 schema:
452 type: array
453 items:
454 $ref: '#/definitions/Video'
455 /videos/categories:
456 get:
457 tags:
458 - Video
459 consumes:
460 - application/json
461 produces:
462 - application/json
463 responses:
464 '200':
465 description: successful operation
466 schema:
467 type: array
468 items:
469 type: string
470 /videos/licences:
471 get:
472 tags:
473 - Video
474 consumes:
475 - application/json
476 produces:
477 - application/json
478 responses:
479 '200':
480 description: successful operation
481 schema:
482 type: array
483 items:
484 type: string
485 /videos/languages:
486 get:
487 tags:
488 - Video
489 consumes:
490 - application/json
491 produces:
492 - application/json
493 responses:
494 '200':
495 description: successful operation
496 schema:
497 type: array
498 items:
499 type: string
500 /videos/privacies:
501 get:
502 tags:
503 - Video
504 consumes:
505 - application/json
506 produces:
507 - application/json
508 responses:
509 '200':
510 description: successful operation
511 schema:
512 type: array
513 items:
514 type: string
515 "/videos/{id}":
516 put:
517 security:
518 - OAuth2: [ ]
519 tags:
520 - Video
521 consumes:
522 - multipart/form-data
523 produces:
524 - application/json
525 parameters:
526 - $ref: "videos.yaml#/parameters/id"
527 - $ref: "videos.yaml#/parameters/thumbnailfile"
528 - $ref: "videos.yaml#/parameters/previewfile"
529 - $ref: "videos.yaml#/parameters/category"
530 - $ref: "videos.yaml#/parameters/licence"
531 - $ref: "videos.yaml#/parameters/language"
532 - $ref: "videos.yaml#/parameters/description"
533 - $ref: "videos.yaml#/parameters/waitTranscoding"
534 - $ref: "videos.yaml#/parameters/support"
535 - $ref: "videos.yaml#/parameters/nsfw"
536 - $ref: "videos.yaml#/parameters/name"
537 - $ref: "videos.yaml#/parameters/tags"
538 - $ref: "videos.yaml#/parameters/commentsEnabled"
539 - $ref: "videos.yaml#/parameters/downloadingEnabled"
540 - $ref: "videos.yaml#/parameters/privacy"
541 - $ref: "videos.yaml#/parameters/scheduleUpdate"
542 responses:
543 '200':
544 description: successful operation
545 schema:
546 $ref: '#/definitions/Video'
547 get:
548 tags:
549 - Video
550 consumes:
551 - application/json
552 produces:
553 - application/json
554 parameters:
555 - $ref: "videos.yaml#/parameters/id"
556 responses:
557 '200':
558 description: successful operation
559 schema:
560 $ref: '#/definitions/Video'
561 delete:
562 security:
563 - OAuth2: [ ]
564 tags:
565 - Video
566 consumes:
567 - application/json
568 produces:
569 - application/json
570 parameters:
571 - $ref: "videos.yaml#/parameters/id"
572 responses:
573 '204':
574 $ref: "commons.yaml#/responses/emptySuccess"
575 "/videos/{id}/description":
576 get:
577 tags:
578 - Video
579 consumes:
580 - application/json
581 produces:
582 - application/json
583 parameters:
584 - $ref: "videos.yaml#/parameters/id"
585 responses:
586 '200':
587 description: successful operation
588 schema:
589 type: string
590 "/videos/{id}/views":
591 post:
592 tags:
593 - Video
594 consumes:
595 - application/json
596 produces:
597 - application/json
598 parameters:
599 - $ref: "videos.yaml#/parameters/id"
600 responses:
601 '204':
602 $ref: "commons.yaml#/responses/emptySuccess"
603 /videos/upload:
604 post:
605 security:
606 - OAuth2: [ ]
607 tags:
608 - Video
609 consumes:
610 - multipart/form-data
611 produces:
612 - application/json
613 parameters:
614 - name: videofile
615 in: formData
616 type: file
617 required: true
618 description: 'Video file'
619 - name: channelId
620 in: formData
621 required: true
622 type: number
623 description: 'Channel id that will contain this video'
624 - $ref: "videos.yaml#/parameters/thumbnailfile"
625 - $ref: "videos.yaml#/parameters/previewfile"
626 - $ref: "videos.yaml#/parameters/category"
627 - $ref: "videos.yaml#/parameters/licence"
628 - $ref: "videos.yaml#/parameters/language"
629 - $ref: "videos.yaml#/parameters/description"
630 - $ref: "videos.yaml#/parameters/waitTranscoding"
631 - $ref: "videos.yaml#/parameters/support"
632 - $ref: "videos.yaml#/parameters/nsfw"
633 - $ref: "videos.yaml#/parameters/name"
634 - $ref: "videos.yaml#/parameters/tags"
635 - $ref: "videos.yaml#/parameters/commentsEnabled"
636 - $ref: "videos.yaml#/parameters/downloadingEnabled"
637 - $ref: "videos.yaml#/parameters/privacy"
638 - $ref: "videos.yaml#/parameters/scheduleUpdate"
639 responses:
640 '200':
641 description: successful operation
642 schema:
643 $ref: '#/definitions/VideoUploadResponse'
644 /videos/abuse:
645 get:
646 security:
647 - OAuth2: [ ]
648 tags:
649 - VideoAbuse
650 consumes:
651 - application/json
652 produces:
653 - application/json
654 parameters:
655 - $ref: "commons.yaml#/parameters/start"
656 - $ref: "commons.yaml#/parameters/count"
657 - $ref: "commons.yaml#/parameters/sort"
658 responses:
659 '200':
660 description: successful operation
661 schema:
662 type: array
663 items:
664 $ref: '#/definitions/VideoAbuse'
665 "/videos/{id}/abuse":
666 post:
667 security:
668 - OAuth2: [ ]
669 tags:
670 - VideoAbuse
671 consumes:
672 - application/json
673 produces:
674 - application/json
675 parameters:
676 - $ref: "videos.yaml#/parameters/id"
677 responses:
678 '204':
679 $ref: "commons.yaml#/responses/emptySuccess"
680 "/videos/{id}/blacklist":
681 post:
682 security:
683 - OAuth2: [ ]
684 tags:
685 - VideoBlacklist
686 consumes:
687 - application/json
688 produces:
689 - application/json
690 parameters:
691 - $ref: "videos.yaml#/parameters/id"
692 responses:
693 '204':
694 $ref: "commons.yaml#/responses/emptySuccess"
695 delete:
696 security:
697 - OAuth2: [ ]
698 tags:
699 - VideoBlacklist
700 consumes:
701 - application/json
702 produces:
703 - application/json
704 parameters:
705 - $ref: "videos.yaml#/parameters/id"
706 responses:
707 '204':
708 $ref: "commons.yaml#/responses/emptySuccess"
709 /videos/blacklist:
710 get:
711 security:
712 - OAuth2: [ ]
713 tags:
714 - VideoBlacklist
715 consumes:
716 - application/json
717 produces:
718 - application/json
719 parameters:
720 - $ref: "commons.yaml#/parameters/start"
721 - $ref: "commons.yaml#/parameters/count"
722 - $ref: "commons.yaml#/parameters/sort"
723 responses:
724 '200':
725 description: successful operation
726 schema:
727 type: array
728 items:
729 $ref: '#/definitions/VideoBlacklist'
730 /video-channels:
731 get:
732 tags:
733 - VideoChannel
734 consumes:
735 - application/json
736 produces:
737 - application/json
738 parameters:
739 - $ref: "commons.yaml#/parameters/start"
740 - $ref: "commons.yaml#/parameters/count"
741 - $ref: "commons.yaml#/parameters/sort"
742 responses:
743 '200':
744 description: successful operation
745 schema:
746 type: array
747 items:
748 $ref: '#/definitions/VideoChannel'
749 post:
750 security:
751 - OAuth2: [ ]
752 tags:
753 - VideoChannel
754 consumes:
755 - application/json
756 produces:
757 - application/json
758 parameters:
759 - in: body
760 name: body
761 schema:
762 $ref: '#/definitions/VideoChannelInput'
763 responses:
764 '204':
765 $ref: "commons.yaml#/responses/emptySuccess"
766 "/video-channels/{id}":
767 get:
768 tags:
769 - VideoChannel
770 consumes:
771 - application/json
772 produces:
773 - application/json
774 parameters:
775 - $ref: "video-channels.yaml#/parameters/id"
776 responses:
777 '200':
778 description: successful operation
779 schema:
780 $ref: '#/definitions/VideoChannel'
781 put:
782 security:
783 - OAuth2: [ ]
784 tags:
785 - VideoChannel
786 consumes:
787 - application/json
788 produces:
789 - application/json
790 parameters:
791 - $ref: "video-channels.yaml#/parameters/id"
792 - in: body
793 name: body
794 schema:
795 $ref: '#/definitions/VideoChannelInput'
796 responses:
797 '204':
798 $ref: "commons.yaml#/responses/emptySuccess"
799 delete:
800 security:
801 - OAuth2: [ ]
802 tags:
803 - VideoChannel
804 consumes:
805 - application/json
806 produces:
807 - application/json
808 parameters:
809 - $ref: "video-channels.yaml#/parameters/id"
810 responses:
811 '204':
812 $ref: "commons.yaml#/responses/emptySuccess"
813 "/video-channels/{id}/videos":
814 get:
815 tags:
816 - VideoChannel
817 consumes:
818 - application/json
819 produces:
820 - application/json
821 parameters:
822 - $ref: "video-channels.yaml#/parameters/id"
823 responses:
824 '200':
825 description: successful operation
826 schema:
827 $ref: '#/definitions/Video'
828 /accounts/{name}/video-channels:
829 get:
830 tags:
831 - VideoChannel
832 consumes:
833 - application/json
834 produces:
835 - application/json
836 parameters:
837 - $ref: "accounts.yaml#/parameters/name"
838 responses:
839 '200':
840 description: successful operation
841 schema:
842 type: array
843 items:
844 $ref: '#/definitions/VideoChannel'
845 "/videos/{id}/comment-threads":
846 get:
847 tags:
848 - VideoComment
849 consumes:
850 - application/json
851 produces:
852 - application/json
853 parameters:
854 - $ref: "videos.yaml#/parameters/id"
855 - $ref: "commons.yaml#/parameters/start"
856 - $ref: "commons.yaml#/parameters/count"
857 - $ref: "commons.yaml#/parameters/sort"
858 responses:
859 '200':
860 description: successful operation
861 schema:
862 $ref: '#/definitions/CommentThreadResponse'
863 post:
864 security:
865 - OAuth2: [ ]
866 tags:
867 - VideoComment
868 consumes:
869 - application/json
870 produces:
871 - application/json
872 parameters:
873 - $ref: "videos.yaml#/parameters/id"
874 responses:
875 '200':
876 description: successful operation
877 schema:
878 $ref: '#/definitions/CommentThreadPostResponse'
879 "/videos/{id}/comment-threads/{threadId}":
880 get:
881 tags:
882 - VideoComment
883 consumes:
884 - application/json
885 produces:
886 - application/json
887 parameters:
888 - $ref: "videos.yaml#/parameters/id"
889 - $ref: "video-comments.yaml#/parameters/threadId"
890 responses:
891 '200':
892 description: successful operation
893 schema:
894 $ref: '#/definitions/VideoCommentThreadTree'
895 "/videos/{id}/comments/{commentId}":
896 post:
897 security:
898 - OAuth2: [ ]
899 tags:
900 - VideoComment
901 consumes:
902 - application/json
903 produces:
904 - application/json
905 parameters:
906 - $ref: "videos.yaml#/parameters/id"
907 - $ref: "video-comments.yaml#/parameters/commentId"
908 responses:
909 '200':
910 description: successful operation
911 schema:
912 $ref: '#/definitions/CommentThreadPostResponse'
913 delete:
914 security:
915 - OAuth2: [ ]
916 tags:
917 - VideoComment
918 consumes:
919 - application/json
920 produces:
921 - application/json
922 parameters:
923 - $ref: "videos.yaml#/parameters/id"
924 - $ref: "video-comments.yaml#/parameters/commentId"
925 responses:
926 '204':
927 $ref: "commons.yaml#/responses/emptySuccess"
928 "/videos/{id}/rate":
929 put:
930 security:
931 - OAuth2: [ ]
932 tags:
933 - VideoRate
934 consumes:
935 - application/json
936 produces:
937 - application/json
938 parameters:
939 - $ref: "videos.yaml#/parameters/id"
940 responses:
941 '204':
942 $ref: "commons.yaml#/responses/emptySuccess"
943 /search/videos:
944 get:
945 tags:
946 - Search
947 consumes:
948 - application/json
949 produces:
950 - application/json
951 parameters:
952 - $ref: "commons.yaml#/parameters/start"
953 - $ref: "commons.yaml#/parameters/count"
954 - $ref: "commons.yaml#/parameters/sort"
955 - name: search
956 in: query
957 required: true
958 type: string
959 description: 'String to search'
960 responses:
961 '200':
962 description: successful operation
963 schema:
964 type: array
965 items:
966 $ref: '#/definitions/Video'
967 definitions:
968 VideoConstantNumber:
969 properties:
970 id:
971 type: number
972 label:
973 type: string
974 VideoConstantString:
975 properties:
976 id:
977 type: string
978 label:
979 type: string
980 VideoPrivacy:
981 type: string
982 enum: [Public, Unlisted, Private]
983 Video:
984 properties:
985 id:
986 type: number
987 uuid:
988 type: string
989 createdAt:
990 type: string
991 publishedAt:
992 type: string
993 updatedAt:
994 type: string
995 category:
996 $ref: "#/definitions/VideoConstantNumber"
997 licence:
998 $ref: "#/definitions/VideoConstantNumber"
999 language:
1000 $ref: "#/definitions/VideoConstantString"
1001 privacy:
1002 $ref: "#/definitions/VideoPrivacy"
1003 description:
1004 type: string
1005 duration:
1006 type: number
1007 isLocal:
1008 type: boolean
1009 name:
1010 type: string
1011 thumbnailPath:
1012 type: string
1013 previewPath:
1014 type: string
1015 embedPath:
1016 type: string
1017 views:
1018 type: number
1019 likes:
1020 type: number
1021 dislikes:
1022 type: number
1023 nsfw:
1024 type: boolean
1025 account:
1026 type: object
1027 properties:
1028 name:
1029 type: string
1030 displayName:
1031 type: string
1032 url:
1033 type: string
1034 host:
1035 type: string
1036 avatar:
1037 $ref: "#/definitions/Avatar"
1038 VideoAbuse:
1039 properties:
1040 id:
1041 type: number
1042 reason:
1043 type: string
1044 reporterAccount:
1045 $ref: "#/definitions/Account"
1046 video:
1047 type: object
1048 properties:
1049 id:
1050 type: number
1051 name:
1052 type: string
1053 uuid:
1054 type: string
1055 url:
1056 type: string
1057 createdAt:
1058 type: string
1059 VideoBlacklist:
1060 properties:
1061 id:
1062 type: number
1063 videoId:
1064 type: number
1065 createdAt:
1066 type: string
1067 updatedAt:
1068 type: string
1069 name:
1070 type: string
1071 uuid:
1072 type: string
1073 description:
1074 type: string
1075 duration:
1076 type: number
1077 views:
1078 type: number
1079 likes:
1080 type: number
1081 dislikes:
1082 type: number
1083 nsfw:
1084 type: boolean
1085 VideoChannel:
1086 properties:
1087 displayName:
1088 type: string
1089 description:
1090 type: string
1091 isLocal:
1092 type: boolean
1093 ownerAccount:
1094 type: object
1095 properties:
1096 id:
1097 type: number
1098 uuid:
1099 type: string
1100 VideoComment:
1101 properties:
1102 id:
1103 type: number
1104 url:
1105 type: string
1106 text:
1107 type: string
1108 threadId:
1109 type: number
1110 inReplyToCommentId:
1111 type: number
1112 videoId:
1113 type: number
1114 createdAt:
1115 type: string
1116 updatedAt:
1117 type: string
1118 totalReplies:
1119 type: number
1120 account:
1121 $ref: "#/definitions/Account"
1122 VideoCommentThreadTree:
1123 properties:
1124 comment:
1125 $ref: "#/definitions/VideoComment"
1126 children:
1127 type: array
1128 items:
1129 $ref: "#/definitions/VideoCommentThreadTree"
1130 Avatar:
1131 properties:
1132 path:
1133 type: string
1134 createdAt:
1135 type: string
1136 updatedAt:
1137 type: string
1138 Actor:
1139 properties:
1140 id:
1141 type: number
1142 uuid:
1143 type: string
1144 url:
1145 type: string
1146 name:
1147 type: string
1148 host:
1149 type: string
1150 followingCount:
1151 type: number
1152 followersCount:
1153 type: number
1154 createdAt:
1155 type: string
1156 updatedAt:
1157 type: string
1158 avatar:
1159 $ref: "#/definitions/Avatar"
1160 Account:
1161 allOf:
1162 - $ref: "#/definitions/Actor"
1163 - properties:
1164 displayName:
1165 type: string
1166 User:
1167 properties:
1168 id:
1169 type: number
1170 username:
1171 type: string
1172 email:
1173 type: string
1174 displayNSFW:
1175 type: boolean
1176 autoPlayVideo:
1177 type: boolean
1178 role:
1179 type: string
1180 enum: [User, Moderator, Administrator]
1181 videoQuota:
1182 type: number
1183 createdAt:
1184 type: string
1185 account:
1186 $ref: "#/definitions/Account"
1187 videoChannels:
1188 type: array
1189 items:
1190 $ref: "#/definitions/VideoChannel"
1191 ServerConfig:
1192 properties:
1193 signup:
1194 type: object
1195 properties:
1196 allowed:
1197 type: boolean
1198 transcoding:
1199 type: object
1200 properties:
1201 enabledResolutions:
1202 type: array
1203 items:
1204 type: number
1205 avatar:
1206 type: object
1207 properties:
1208 file:
1209 type: object
1210 properties:
1211 size:
1212 type: object
1213 properties:
1214 max:
1215 type: number
1216 extensions:
1217 type: array
1218 items:
1219 type: string
1220 video:
1221 type: object
1222 properties:
1223 file:
1224 type: object
1225 properties:
1226 extensions:
1227 type: array
1228 items:
1229 type: string
1230 Follow:
1231 properties:
1232 id:
1233 type: number
1234 follower:
1235 $ref: "#/definitions/Actor"
1236 following:
1237 $ref: "#/definitions/Actor"
1238 score:
1239 type: number
1240 state:
1241 type: string
1242 enum: [pending, accepted]
1243 createdAt:
1244 type: string
1245 updatedAt:
1246 type: string
1247 Job:
1248 properties:
1249 id:
1250 type: number
1251 state:
1252 type: string
1253 enum: [pending, processing, error, success]
1254 category:
1255 type: string
1256 enum: [transcoding, activitypub-http]
1257 handlerName:
1258 type: string
1259 handlerInputData:
1260 type: string
1261 createdAt:
1262 type: string
1263 updatedAt:
1264 type: string
1265
1266 # Api responses
1267 AddUserResponse:
1268 properties:
1269 id:
1270 type: number
1271 uuid:
1272 type: string
1273 VideoUploadResponse:
1274 properties:
1275 video:
1276 type: object
1277 properties:
1278 id:
1279 type: number
1280 uuid:
1281 type: string
1282 CommentThreadResponse:
1283 properties:
1284 total:
1285 type: number
1286 data:
1287 type: array
1288 items:
1289 $ref: "#/definitions/VideoComment"
1290 CommentThreadPostResponse:
1291 properties:
1292 comment:
1293 $ref: "#/definitions/VideoComment"
1294
1295 # Request bodies
1296 AddUser:
1297 properties:
1298 username:
1299 type: string
1300 description: 'The user username '
1301 password:
1302 type: string
1303 description: 'The user password '
1304 email:
1305 type: string
1306 description: 'The user email '
1307 videoQuota:
1308 type: string
1309 description: 'The user videoQuota '
1310 role:
1311 type: string
1312 description: 'The user role '
1313 required:
1314 - username
1315 - password
1316 - email
1317 - videoQuota
1318 - role
1319 UpdateUser:
1320 properties:
1321 id:
1322 type: string
1323 description: 'The user id '
1324 email:
1325 type: string
1326 description: 'The updated email of the user '
1327 videoQuota:
1328 type: string
1329 description: 'The updated videoQuota of the user '
1330 role:
1331 type: string
1332 description: 'The updated role of the user '
1333 required:
1334 - id
1335 - email
1336 - videoQuota
1337 - role
1338 UpdateMe:
1339 properties:
1340 password:
1341 type: string
1342 description: 'Your new password '
1343 email:
1344 type: string
1345 description: 'Your new email '
1346 displayNSFW:
1347 type: string
1348 description: 'Your new displayNSFW '
1349 autoPlayVideo:
1350 type: string
1351 description: 'Your new autoPlayVideo '
1352 required:
1353 - password
1354 - email
1355 - displayNSFW
1356 - autoPlayVideo
1357 GetMeVideoRating:
1358 properties:
1359 id:
1360 type: string
1361 description: 'Id of the video '
1362 rating:
1363 type: number
1364 description: 'Rating of the video '
1365 required:
1366 - id
1367 - rating
1368 RegisterUser:
1369 properties:
1370 username:
1371 type: string
1372 description: 'The username of the user '
1373 password:
1374 type: string
1375 description: 'The password of the user '
1376 email:
1377 type: string
1378 description: 'The email of the user '
1379 required:
1380 - username
1381 - password
1382 - email
1383 VideoChannelInput:
1384 properties:
1385 name:
1386 type: string
1387 description:
1388 type: string