mirror of
https://github.com/ajayyy/SponsorBlockServer.git
synced 2026-01-27 12:50:47 +03:00
Merge branch 'master' of https://github.com/ajayyy/SponsorBlockServer into experimental
This commit is contained in:
301
README.MD
301
README.MD
@@ -28,303 +28,4 @@ Run the server with `npm start`.
|
|||||||
|
|
||||||
# API Docs
|
# API Docs
|
||||||
|
|
||||||
Public API available at https://sponsor.ajay.app.
|
Available [here](https://github.com/ajayyy/SponsorBlock/wiki/API-Docs)
|
||||||
|
|
||||||
________________________________________________________________________________
|
|
||||||
|
|
||||||
**GET** `/api/getVideoSponsorTimes`
|
|
||||||
|
|
||||||
**Input**:
|
|
||||||
```
|
|
||||||
{
|
|
||||||
videoID: string
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
**Response**:
|
|
||||||
```
|
|
||||||
{
|
|
||||||
sponorTimes: array [float],
|
|
||||||
UUIDs: array [string] //The ID for this sponsor time, used to submit votes
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
**Error codes**:
|
|
||||||
|
|
||||||
404: Not Found
|
|
||||||
|
|
||||||
__________________________________________________________________
|
|
||||||
|
|
||||||
**GET** `/api/postVideoSponsorTimes`
|
|
||||||
|
|
||||||
**Input**:
|
|
||||||
```
|
|
||||||
{
|
|
||||||
videoID: string,
|
|
||||||
startTime: float,
|
|
||||||
endTime: float,
|
|
||||||
userID: string //This should be a randomly generated UUID
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
**Response**:
|
|
||||||
```
|
|
||||||
{
|
|
||||||
Nothing (status code 200)
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
**Error codes**:
|
|
||||||
|
|
||||||
400: Bad Request (Your inputs are wrong/impossible)
|
|
||||||
|
|
||||||
429: Rate Limit (Too many for the same user or IP)
|
|
||||||
|
|
||||||
409: Duplicate
|
|
||||||
|
|
||||||
__________________________________________________________________
|
|
||||||
|
|
||||||
**GET** `/api/voteOnSponsorTime`
|
|
||||||
|
|
||||||
**Input**:
|
|
||||||
```
|
|
||||||
{
|
|
||||||
UUID: string, //id of the sponsor being voted on
|
|
||||||
userID: string,
|
|
||||||
type: int //0 for downvote, 1 for upvote
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
**Response**:
|
|
||||||
```
|
|
||||||
{
|
|
||||||
Nothing (status code 200)
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
**Error codes**:
|
|
||||||
|
|
||||||
400: Bad Request (Your inputs are wrong/impossible)
|
|
||||||
|
|
||||||
405: Duplicate
|
|
||||||
|
|
||||||
__________________________________________________________________
|
|
||||||
|
|
||||||
**GET** `/api/viewedVideoSponsorTime`
|
|
||||||
|
|
||||||
**Input**:
|
|
||||||
```
|
|
||||||
{
|
|
||||||
UUID: string
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
**Response**:
|
|
||||||
```
|
|
||||||
{
|
|
||||||
Nothing (status code 200)
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
**Error codes**:
|
|
||||||
|
|
||||||
400: Bad Request (Your inputs are wrong/impossible)
|
|
||||||
|
|
||||||
__________________________________________________________________
|
|
||||||
|
|
||||||
**GET** `/api/getViewsForUser`
|
|
||||||
|
|
||||||
**Input**:
|
|
||||||
```
|
|
||||||
{
|
|
||||||
userID: string
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
**Response**:
|
|
||||||
```
|
|
||||||
{
|
|
||||||
viewCount: int
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
**Error codes**:
|
|
||||||
|
|
||||||
404: Not Found
|
|
||||||
|
|
||||||
__________________________________________________________________
|
|
||||||
|
|
||||||
**POST** `/api/setUsername`
|
|
||||||
|
|
||||||
**Input**:
|
|
||||||
```
|
|
||||||
{
|
|
||||||
userID: string,
|
|
||||||
userName: string,
|
|
||||||
//optional
|
|
||||||
adminUserID: string //This is if you want to change someone elses username from the admin account
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
**Response**:
|
|
||||||
```
|
|
||||||
{
|
|
||||||
Nothing (status code 200)
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
**Error codes**:
|
|
||||||
|
|
||||||
400: Bad Request (Your inputs are wrong/impossible)
|
|
||||||
|
|
||||||
__________________________________________________________________
|
|
||||||
|
|
||||||
**GET** `/api/getUsername`
|
|
||||||
|
|
||||||
**Input**:
|
|
||||||
```
|
|
||||||
{
|
|
||||||
userID: string
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
**Response**:
|
|
||||||
```
|
|
||||||
{
|
|
||||||
userName: string //will send back hashed userID if no username has been set
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
**Error codes**:
|
|
||||||
|
|
||||||
400: Bad Request (Your inputs are wrong/impossible)
|
|
||||||
|
|
||||||
__________________________________________________________________
|
|
||||||
|
|
||||||
### Stats Calls
|
|
||||||
|
|
||||||
**GET** `/api/getTopUsers`
|
|
||||||
|
|
||||||
**Input**:
|
|
||||||
```
|
|
||||||
{
|
|
||||||
sortType: int //0 for by minutes saved, 1 for by view count, 2 for by total submissions
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
**Response**:
|
|
||||||
```
|
|
||||||
{
|
|
||||||
userNames: array [string],
|
|
||||||
viewCounts: array [int],
|
|
||||||
totalSubmissions: array [int],
|
|
||||||
minutesSaved: array [float]
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
**Error codes**:
|
|
||||||
|
|
||||||
400: Bad Request (Your inputs are wrong/impossible)
|
|
||||||
|
|
||||||
__________________________________________________________________
|
|
||||||
|
|
||||||
**GET** `/api/getTotalStats`
|
|
||||||
|
|
||||||
**Input**:
|
|
||||||
```
|
|
||||||
{
|
|
||||||
Nothing
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
**Response**:
|
|
||||||
```
|
|
||||||
{
|
|
||||||
userCount: int,
|
|
||||||
viewCount: int,
|
|
||||||
totalSubmissions: int,
|
|
||||||
minutesSaved: float
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
**Error codes**:
|
|
||||||
|
|
||||||
None
|
|
||||||
__________________________________________________________________
|
|
||||||
|
|
||||||
**GET** `/api/getDaysSavedFormatted`
|
|
||||||
|
|
||||||
**Input**:
|
|
||||||
```
|
|
||||||
{
|
|
||||||
Nothing
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
**Response**:
|
|
||||||
```
|
|
||||||
{
|
|
||||||
daysSaved: float (2 decimal places)
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
**Error codes**:
|
|
||||||
|
|
||||||
None
|
|
||||||
__________________________________________________________________
|
|
||||||
|
|
||||||
### Admin Calls
|
|
||||||
|
|
||||||
These can only be called by the server administrator, set in the config.
|
|
||||||
|
|
||||||
**POST** `/api/shadowBanUser`
|
|
||||||
|
|
||||||
Shadow banned submissions are hidden for everyone but the IP that originally submitted it. Shadow banning a user shadow bans all future submissions.
|
|
||||||
|
|
||||||
**Input**:
|
|
||||||
```
|
|
||||||
{
|
|
||||||
userID: string, //public userID of the user you want to shadowBan
|
|
||||||
adminUserID: string, //your userID as an admin
|
|
||||||
enabled: boolean, //optional, to be able to add and remove users
|
|
||||||
unHideOldSubmissions: boolean //optional, should all previous submissions be banned as well?
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
**Response**:
|
|
||||||
```
|
|
||||||
{
|
|
||||||
Nothing (status code 200)
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
**Error codes**:
|
|
||||||
|
|
||||||
400: Bad Request (Your inputs are wrong/impossible)
|
|
||||||
403: Unauthorized (You are not an admin)
|
|
||||||
__________________________________________________________________
|
|
||||||
|
|
||||||
**POST** `/api/addUserAsVIP`
|
|
||||||
|
|
||||||
VIPs have extra privileges and their votes count more.
|
|
||||||
|
|
||||||
**Input**:
|
|
||||||
```
|
|
||||||
{
|
|
||||||
userID: string, //public userID of the user you want to add to the VIP list
|
|
||||||
adminUserID: string, //your userID as an admin
|
|
||||||
enabled: boolean //optional, to be able to add and remove users
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
**Response**:
|
|
||||||
```
|
|
||||||
{
|
|
||||||
Nothing (status code 200)
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
**Error codes**:
|
|
||||||
|
|
||||||
400: Bad Request (Your inputs are wrong/impossible)
|
|
||||||
403: Unauthorized (You are not an admin)
|
|
||||||
|
|||||||
Reference in New Issue
Block a user