funapi / static /api.yaml
imperialwool's picture
removing signature and supporting only post
367be45
openapi: 3.0.0
info:
title: woolbot's FunAPI
description: Big API for bots, developers or just fun by @podvaljoey.
version: $VERSION_VARIABLE$
servers:
- url: 'https://imperialwool-funapi.hf.space/'
description: 'You are here! ^�^'
paths:
/signatures/api/v1/get:
post:
tags:
- "Authentication"
parameters:
- name: 'key'
description: Key to generate signature.
in: 'query'
schema:
type: 'string'
example: rickroll
summary: "Generating auth key with small TTL."
responses:
200:
description: OK
content:
application/json:
schema:
$ref: "#/components/schemas/AuthSuccessObject"
400:
description: Bad Request
content:
application/json:
schema:
$ref: "#/components/schemas/AuthErrorObject"
/osu/api/v1/find-song:
post:
tags:
- "osu! API"
parameters:
- name: 'query'
description: Query to find beatmap.
in: 'query'
schema:
type: 'string'
example: rickroll
summary: "Finding beatmap by query."
responses:
200:
description: OK
content:
application/json:
schema:
$ref: "#/components/schemas/FindBeatmapsObject"
400:
description: Bad Request
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorObject"
/osu/api/v1/get-full:
post:
tags:
- "osu! API"
parameters:
- name: 'query'
description: Query to find beatmap and download full song.
in: 'query'
schema:
type: 'string'
example: rickroll
- name: 'beatmapId'
description: Beatset id. Not map, set.
in: 'query'
schema:
type: 'integer'
example: 1
summary: "Get beatmap's full song."
responses:
200:
description: OK
content:
application/json:
schema:
$ref: "#/components/schemas/SongFullObject"
400:
description: Bad Request
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorObject"
/osu/api/v1/get-preview:
post:
tags:
- "osu! API"
parameters:
- name: 'query'
description: Query to find beatmap and download full song.
in: 'query'
schema:
type: 'string'
example: rickroll
- name: 'beatmapId'
description: Beatset id. Not map, set.
in: 'query'
schema:
type: 'integer'
example: 1
summary: "Get beatmap's song preview."
responses:
200:
description: OK
content:
application/json:
schema:
$ref: "#/components/schemas/SongPreviewObject"
400:
description: Bad Request
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorObject"
/system-info/api/v1/get:
post:
tags:
- "System information"
summary: "Information about server."
responses:
200:
description: OK
content:
application/json:
schema:
$ref: "#/components/schemas/SysinfoObject"
400:
description: Bad Request
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorObject"
/yt/api/v1/search:
post:
tags:
- "Youtube: Becoming Music Platform"
parameters:
- name: 'query'
description: Query for YouTube to find videos.
in: 'query'
schema:
type: 'string'
example: never gonna give you up
summary: "This method can help with searching videos on YouTube."
responses:
200:
description: OK
content:
application/json:
schema:
$ref: "#/components/schemas/YTSearchObject"
400:
description: Bad Request
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorObject"
/yt/api/v1/get-full:
post:
tags:
- "Youtube: Becoming Music Platform"
parameters:
- name: 'url'
description: Url to video from YouTube. (TikTok also works sometimes.)
in: 'query'
schema:
type: 'string'
- name: 'bitrate'
description: Bitrate of final audio.
in: 'query'
schema:
type: 'string'
example: "64k"
- name: 'quality'
description: Quality of final audio. Only 'worst' or 'best'.
in: 'query'
schema:
type: 'string'
example: "worst"
summary: "Download video as audio and providing link for you."
responses:
200:
description: OK
content:
application/json:
schema:
$ref: "#/components/schemas/YTFullObject"
400:
description: Bad Request
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorObject"
/yt/api/v1/get-preview:
post:
tags:
- "Youtube: Becoming Music Platform"
parameters:
- name: 'url'
description: Url to video from YouTube. (TikTok also works sometimes.)
in: 'query'
schema:
type: 'string'
- name: 'bitrate'
description: Bitrate of final audio.
in: 'query'
schema:
type: 'string'
example: "64k"
- name: 'quality'
description: Quality of final audio. Only 'worst' or 'best'.
in: 'query'
schema:
type: 'string'
example: "worst"
- name: 'duration'
description: Duration of preview. Maximum 60 seconds.
in: 'query'
schema:
type: 'integer'
example: 30
summary: "Download video as cutted audio and providing link for you."
responses:
200:
description: OK
content:
application/json:
schema:
$ref: "#/components/schemas/YTPreviewResult"
400:
description: Bad Request
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorObject"
components:
schemas:
SongFullObject:
type: object
properties:
status:
type: string
example: pass
details:
type: object
properties:
code:
type: integer
example: 200
name:
type: string
example: "1592415.ogg"
result:
type: string
example: "https://imperialwool-funapi.hf.space/static/full/1592415.ogg"
SongPreviewObject:
type: object
properties:
status:
type: string
example: pass
details:
type: object
properties:
code:
type: integer
example: 200
name:
type: string
example: "1244874.mp3"
result:
type: string
example: "https://b.ppy.sh/preview/1244874.mp3"
BeatmapObject:
type: object
properties:
"artist":
type: string
example: "never gonna give you up remix"
"beatmapId":
type: integer
example: 1542795
"creator":
type: string
example: "CrisFloppa"
"source":
type: string
example: ""
"tags":
type: string
example: "never gonna gie you up rick roll"
"title":
type: string
example: "rick astley"
FindBeatmapsObject:
type: object
properties:
status:
type: string
example: pass
details:
type: object
properties:
"code":
type: integer
example: 200
"result":
type: array
items:
$ref: "#/components/schemas/BeatmapObject"
SysinfoObject:
type: object
properties:
"API_VERSION":
type: string
example: "1.0 build62"
"CPU_INFO":
type: object
properties:
"cpu_brand":
type: string
example: "AMD EPYC 7R13 Processor"
"cpu_count":
type: object
properties:
"all":
type: integer
example: 16
"exclude_virtual":
type: integer
example: 8
"cpu_freq":
type: object
properties:
"current":
type: number
format: float
example: 3522.9323125
"min":
type: number
format: float
example: 0.0
"max":
type: number
format: float
example: 3600.0
"cpu_load":
type: number
format: float
example: 16.2
"MEM_INFO":
type: object
properties:
"mem_total":
type: integer
example: 126125
"mem_used":
type: integer
example: 87497
AuthSuccessObject:
type: object
properties:
status:
type: string
example: pass
endtime:
type: integer
example: 1672602259
result:
type: string
example: B46AAB1A3F1E33625C1B6BD9507453B928DE69BA638E7098DB533A2184ED288EFB899D563EF8AB5487DACBCAD909A801E4C81FD6D34B639F6591295CD1D10A5B
AuthErrorObject:
type: object
properties:
status:
type: string
example: error
details:
type: object
properties:
error_code:
type: integer
example: -1
error_details:
type: string
example: This key already got signature
ErrorObject:
type: object
properties:
status:
type: string
example: error
details:
type: object
properties:
error_code:
type: integer
example: 103
error_details:
type: string
example: No signature
RecognizeObject:
type: object
properties:
status:
type: string
example: pass
result:
type: string
example: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean condimentum neque quis enim bibendum, ut molestie magna gravida. Donec et felis eget lacus sodales convallis. Quisque vitae erat et leo lobortis iaculis. Maecenas a lectus vitae metus fringilla luctus. Morbi sed pellentesque elit. Phasellus bibendum et urna sed elementum. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus."
YTSearchObject:
type: object
properties:
status:
type: string
example: ok
query:
type: string
example: never gonna give you up
videoIds:
type: object
properties:
"0":
type: string
example: dQw4w9WgXcQ
"1":
type: string
example: GtL1huin9EE
"2":
type: string
example: uXV-IaR_vNE
YTFullObject:
type: object
properties:
status:
type: string
example: pass
details:
type: object
properties:
code:
type: integer
example: 0
name:
type: string
example: "R8YprjS6ztg.ogg"
result:
type: string
example: "https://imperialwool-funapi.hf.space/static/full/R8YprjS6ztg.ogg"
YTPreviewResult:
type: object
properties:
status:
type: string
example: pass
details:
type: object
properties:
code:
type: integer
example: 0
name:
type: string
example: "R8YprjS6ztg.ogg"
result:
type: string
example: "https://imperialwool-funapi.hf.space/static/previews/R8YprjS6ztg.ogg"