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