mirror of
https://github.com/TeamPiped/OpenAPI.git
synced 2024-08-14 23:56:55 +00:00
178 lines
5.5 KiB
YAML
178 lines
5.5 KiB
YAML
|
openapi: 3.0.0
|
||
|
servers:
|
||
|
- description: Official Instance
|
||
|
url: https://pipedapi.kavin.rocks
|
||
|
info:
|
||
|
description: This is an API specification for Piped API instances.
|
||
|
version: "1.0.0"
|
||
|
title: Piped API
|
||
|
contact:
|
||
|
email: kavin@kavin.rocks
|
||
|
url: https://github.com/TeamPiped/Piped/issues
|
||
|
license:
|
||
|
name: MIT
|
||
|
url: 'https://opensource.org/licenses/MIT'
|
||
|
tags:
|
||
|
- name: unauthenticated
|
||
|
description: Requests that can be made by anyone
|
||
|
- name: authenticated
|
||
|
description: Requests that can only be made when logged in, with an authToken
|
||
|
paths:
|
||
|
/trending:
|
||
|
get:
|
||
|
tags:
|
||
|
- unauthenticated
|
||
|
summary: Gets all Trending Videos
|
||
|
operationId: trending
|
||
|
description: Gets all Trending Videos in the requested country.
|
||
|
parameters:
|
||
|
- in: query
|
||
|
name: region
|
||
|
description: The Region to get trending videos from.
|
||
|
required: true
|
||
|
example: US
|
||
|
schema:
|
||
|
$ref: '#/components/schemas/Regions'
|
||
|
responses:
|
||
|
'200':
|
||
|
description: Array of trending Videos.
|
||
|
content:
|
||
|
application/json:
|
||
|
schema:
|
||
|
type: array
|
||
|
items:
|
||
|
anyOf:
|
||
|
- $ref: '#/components/schemas/StreamItem'
|
||
|
/streams/{videoId}:
|
||
|
get:
|
||
|
tags:
|
||
|
- unauthenticated
|
||
|
summary: Gets Video Information
|
||
|
operationId: streamInfo
|
||
|
description: |
|
||
|
Gets all available Stream information about a video.
|
||
|
parameters:
|
||
|
- in: path
|
||
|
name: videoId
|
||
|
description: The video ID of the YouTube video you want to get information about.
|
||
|
required: true
|
||
|
example: dQw4w9WgXcQ
|
||
|
schema:
|
||
|
type: string
|
||
|
responses:
|
||
|
'200':
|
||
|
description: The information about the video.
|
||
|
content:
|
||
|
application/json:
|
||
|
schema:
|
||
|
$ref: '#/components/schemas/VideoInfo'
|
||
|
'500':
|
||
|
description: Server Side exception
|
||
|
content:
|
||
|
application/json:
|
||
|
schema:
|
||
|
$ref: '#/components/schemas/ExceptionError'
|
||
|
components:
|
||
|
schemas:
|
||
|
Regions:
|
||
|
type: string
|
||
|
enum: ["DZ", "AR", "AU", "AT", "AZ", "BH", "BD", "BY", "BE", "BO", "BA", "BR", "BG", "CA", "CL", "CO", "CR", "HR", "CY", "CZ", "DK", "DO", "EC", "EG", "SV", "EE", "FI", "FR", "GE", "DE", "GH", "GR", "GT", "HN", "HK", "HU", "IS", "IN", "ID", "IQ", "IE", "IL", "IT", "JM", "JP", "JO", "KZ", "KE", "KW", "LV", "LB", "LY", "LI", "LT", "LU", "MY", "MT", "MX", "ME", "MA", "NP", "NL", "NZ", "NI", "NG", "MK", "NO", "OM", "PK", "PA", "PG", "PY", "PE", "PH", "PL", "PT", "PR", "QA", "RO", "RU", "SA", "SN", "RS", "SG", "SK", "SI", "ZA", "KR", "ES", "LK", "SE", "CH", "TW", "TZ", "TH", "TN", "TR", "UG", "UA", "AE", "GB", "US", "UY", "VE", "VN", "YE", "ZW"]
|
||
|
VideoInfo:
|
||
|
type: object
|
||
|
properties:
|
||
|
audioStreams:
|
||
|
type: array
|
||
|
items:
|
||
|
$ref: '#/components/schemas/Stream'
|
||
|
relatedStreams:
|
||
|
type: array
|
||
|
items:
|
||
|
$ref: '#/components/schemas/StreamItem'
|
||
|
Stream:
|
||
|
properties:
|
||
|
url:
|
||
|
type: string
|
||
|
description: The URL of the stream.
|
||
|
format:
|
||
|
type: string
|
||
|
description: The format of the stream.
|
||
|
enum: [MPEG_4, v3GPP, WEBM, M4A, WEBMA_OPUS]
|
||
|
example: MPEG_4
|
||
|
quality:
|
||
|
type: string
|
||
|
description: The quality of the stream.
|
||
|
example: 1080p
|
||
|
mimeType:
|
||
|
type: string
|
||
|
description: The mime type of the stream.
|
||
|
example: video/mp4
|
||
|
codec:
|
||
|
type: string
|
||
|
description: The codec of the stream.
|
||
|
example: avc1.64002a
|
||
|
videoOnly:
|
||
|
type: boolean
|
||
|
bitrate:
|
||
|
type: integer
|
||
|
initStart:
|
||
|
type: integer
|
||
|
initEnd:
|
||
|
type: integer
|
||
|
indexStart:
|
||
|
type: integer
|
||
|
indexEnd:
|
||
|
type: integer
|
||
|
width:
|
||
|
type: integer
|
||
|
height:
|
||
|
type: integer
|
||
|
fps:
|
||
|
type: integer
|
||
|
StreamItem:
|
||
|
required:
|
||
|
- duration
|
||
|
- thumbnail
|
||
|
- title
|
||
|
- url
|
||
|
properties:
|
||
|
duration:
|
||
|
type: integer
|
||
|
description: The duration of the video in seconds.
|
||
|
thumbnail:
|
||
|
type: string
|
||
|
description: The thumbnail of the video.
|
||
|
title:
|
||
|
type: string
|
||
|
description: The title of the video.
|
||
|
uploadedDate:
|
||
|
type: string
|
||
|
example: 3 months ago
|
||
|
description: The relative date the video was uploaded on.
|
||
|
uploaderAvatar:
|
||
|
type: string
|
||
|
description: The avatar of the channel of the video.
|
||
|
uploaderUrl:
|
||
|
type: string
|
||
|
description: The relative URL of the channel of the video.
|
||
|
uploaderVerified:
|
||
|
type: boolean
|
||
|
description: Whether or not the channel has a verified badge.
|
||
|
url:
|
||
|
type: string
|
||
|
description: The relative URL to the video.
|
||
|
views:
|
||
|
type: integer
|
||
|
description: The number of views the video has.
|
||
|
ExceptionError:
|
||
|
required:
|
||
|
- error
|
||
|
- message
|
||
|
properties:
|
||
|
error:
|
||
|
type: string
|
||
|
description: The stacktrace provided by the server.
|
||
|
message:
|
||
|
type: string
|
||
|
description: The error message from the stacktrace.
|
||
|
description: When a server-side exception takes place.
|