go-youtubekids-client/api/swagger.yaml
2023-04-04 22:45:55 +03:00

423 lines
11 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

openapi: 3.0.3
info:
title: YouTube Kids Public API
description: For generate API REST clients for Feelter UGC
contact:
email: garin1221@yandex.ru
version: 1.0.0
servers:
- url: https://www.youtubekids.com/youtubei/v1
tags:
- name: browse
description: Browse resource content
paths:
# Получение контента определенного ресурса, {browseId}
/browse:
post:
tags:
- browse
summary: Browse resource content
description: Get content for resource
operationId: browse
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/BrowseRequestPayload'
responses:
'200':
description: OK
content:
'application/json':
"schema":
$ref: '#/components/schemas/BrowseResponsePayload'
'400':
description: Bad Request
content:
'application/json':
"schema":
$ref: '#/components/schemas/ErrorResponsePayload'
# Компоненты
components:
# Схемы данных
schemas:
# Ошибка
Error:
type: object
properties:
message:
type: string
domain:
type: string
reason:
type: string
# Доступность данных
AccessibilityData:
type: object
properties:
label:
type: string
# Доступность
Accessibility:
type: object
properties:
accessibilityData:
$ref: '#/components/schemas/AccessibilityData'
# WatchEndpoint
WatchEndpoint:
type: object
properties:
videoId:
type: string
# BrowseEndpoint
BrowseEndpoint:
type: object
properties:
browseId:
type: string
canonicalBaseUrl:
type: string
# Конечная точка навигации
NavigationEndpoint:
type: object
properties:
clickTrackingParams:
type: string
watchEndpoint:
$ref: '#/components/schemas/WatchEndpoint'
browseEndpoint:
$ref: '#/components/schemas/BrowseEndpoint'
# Текст -> Runs
TextRun:
type: object
properties:
text:
type: string
navigationEndpoint:
$ref: '#/components/schemas/NavigationEndpoint'
# Текст
Text:
type: object
properties:
runs:
type: array
items:
$ref: '#/components/schemas/TextRun'
accessibility:
$ref: '#/components/schemas/Accessibility'
# Строковый параметр ключ-зачение
KeyStringValue:
type: object
properties:
key:
type: string
value:
type: string
# Ассеты категории
CategoryAssets:
type: object
properties:
assetKey:
type: string
backgroundColor:
type: string
# Расширение для владельцев детских видео
KidsVideoOwnerExtension:
type: object
properties:
externalChannelId:
type: string
# Thumbnail
Thumbnail:
type: object
properties:
url:
type: string
width:
type: number
height:
type: number
# Компактный видеорендерер
CompactVideoRenderer:
type: object
properties:
videoId:
type: string
thumbnail:
type: object
properties:
thumbnails:
type: array
items:
$ref: '#/components/schemas/Thumbnail'
title:
$ref: '#/components/schemas/Text'
longBylineText:
$ref: '#/components/schemas/Text'
publishedTimeText:
$ref: '#/components/schemas/Text'
viewCountText:
$ref: '#/components/schemas/Text'
lengthText:
$ref: '#/components/schemas/Text'
navigationEndpoint:
$ref: '#/components/schemas/NavigationEndpoint'
shortBylineText:
$ref: '#/components/schemas/Text'
channelThumbnail:
type: object
properties:
thumbnails:
type: array
items:
$ref: '#/components/schemas/Thumbnail'
trackingParams:
type: string
shortViewCountText:
$ref: '#/components/schemas/Text'
accessibility:
$ref: '#/components/schemas/Accessibility'
kidsVideoOwnerExtension:
$ref: '#/components/schemas/KidsVideoOwnerExtension'
# Средство визуализации раздела элемента
ItemSectionRenderer:
type: object
properties:
contents:
type: array
items:
type: object
properties:
compactVideoRenderer:
$ref: '#/components/schemas/CompactVideoRenderer'
trackingParams:
type: string
# Рендер списка разделов
SectionListRenderer:
type: object
properties:
contents:
type: array
items:
type: object
properties:
itemSectionRenderer:
$ref: '#/components/schemas/ItemSectionRenderer'
trackingParams:
type: string
# Визуализатор закрепленных сечений
AnchoredSectionRenderer:
type: object
properties:
title:
type: string
content:
type: object
properties:
sectionListRenderer:
$ref: '#/components/schemas/SectionListRenderer'
trackingParams:
type: string
navigationEndpoint:
$ref: '#/components/schemas/NavigationEndpoint'
categoryAssets:
$ref: '#/components/schemas/CategoryAssets'
categoryType:
type: string
# Якорь экрана
ScreenAnchor:
type: object
properties:
anchoredSectionRenderer:
$ref: '#/components/schemas/AnchoredSectionRenderer'
# Рендерер экрана
ScreenRenderer:
type: object
properties:
anchors:
type: array
items:
$ref: '#/components/schemas/ScreenAnchor'
# Средство визуализации заголовка категории
CategoriesHeaderRenderer:
type: object
properties:
trackingParams:
type: string
# TODO
# Параметры контента
KidsAppContentSettings:
type: object
properties:
corpusPreference:
type: string
example: KIDS_CORPUS_PREFERENCE_TWEEN
kidsNoSearchMode:
type: string
example: YT_KIDS_NO_SEARCH_MODE_OFF
# Конфигурация категорий
KidsAppCategorySettings:
type: object
properties:
enabledCategories:
type: array
example: ["approved_for_you", "black_joy", "camp", "collections", "earth", "explore", "favorites", "gaming", "halloween", "hero", "learning", "making", "move", "music", "reading", "shared_by_parents", "shows", "soccer", "sports", "spotlight", "winter"]
items:
type: string
# Параметры приложения
KidsAppInfo:
type: object
description: Kids application configuration
properties:
contentSettings:
$ref: '#/components/schemas/KidsAppContentSettings'
categorySettings:
$ref: '#/components/schemas/KidsAppCategorySettings'
# Информация о клиенте в запросе
RequestClient:
type: object
description: Client information
properties:
clientName:
type: string
example: WEB_KIDS
clientVersion:
type: string
example: 2.20230202.00.00
hl:
type: string
example: ru
gl:
type: string
example: RU
experimentsToken:
type: string
browserName:
type: string
example: Safari
deviceMake:
type: string
example: apple
browserVersion:
type: string
example: '16.2'
osName:
type: string
example: Macintosh
osVersion:
type: string
example: 10_15_7
platform:
type: string
example: DESKTOP
kidsAppInfo:
$ref: '#/components/schemas/KidsAppInfo'
# Контекст запроса
RequestContext:
type: object
description: Request context
properties:
client:
$ref: '#/components/schemas/RequestClient'
# Контекст ответа
ResponseContext:
type: object
description: Response context
properties:
visitorData:
type: string
maxAgeSeconds:
type: number
serviceTrackingParams:
type: array
items:
type: object
properties:
service:
type: string
params:
type: array
items:
$ref: '#/components/schemas/KeyStringValue'
# Данные для запроса на получение контента определенного ресурса
BrowseRequestPayload:
type: object
properties:
context:
$ref: '#/components/schemas/RequestContext'
browseId:
type: string
example: FEkids_home
# Ответ на запрос получения контента определенного ресурса
BrowseResponsePayload:
type: object
properties:
responseContext:
$ref: '#/components/schemas/ResponseContext'
header:
type: object
properties:
kidsCategoriesHeaderRenderer:
$ref: '#/components/schemas/CategoriesHeaderRenderer'
contents:
type: object
properties:
kidsHomeScreenRenderer:
$ref: '#/components/schemas/ScreenRenderer'
trackingParams:
type: string
# Ответ с ошибкой
ErrorResponsePayload:
type: object
properties:
error:
type: object
properties:
code:
type: number
example: 400
message:
type: string
errors:
type: array
items:
$ref: '#/components/schemas/Error'
status:
type: string
example: FAILED_PRECONDITION