Using Axios for the HTTP client
Complete API documentation can be found here.
Please review the attriution template to abide the license.
Usage:
JavaScript:
const { SponsorBlock } = require('sponsorblock-api');
const sponsorBlock = new SponsorBlock(userID);
sponsorBlock.getSegments(videoID, ['intro', 'outro']).then((segments) => {
console.log(segments);
});
TypeScript:
import { SponsorBlock, Category } from 'sponsorblock-api';
const sponsorBlock = new SponsorBlock(userID);
const categories: Category[] = ['sponsor', 'selfpromo']
sponsorBlock.getSegments(videoID, categories).then((segments) => {
console.log(segments);
});
Some constants and types are exported for ease of use:
import { SponsorBlock, Constants, PrefixRange } from 'sponsorblock-api'
const prefixLength: PrefixRange = 4
const sponsorBlock = new SponsorBlock(userID, { hashPrefixLength: prefixLength })
sponsorBlock.getSegmentsPrivately(videoID, Constants.ALL_CATEGORIES)
Notice:
- userID should be a locally generated UUID, and should be saved for future requests for the API to keep track of stats of a person, treat like a password.
- You may import SponsorBlockVIP or SponsorBlockAdmin for more functions, the added functions will only work if your userID has the permissions.
Error handling:
Every API call will throw an error if the response status is not 200, the error object will contain a status and message properties.
JavaScript:
try {
await sponsorBlock.getSegments('videoID that will not be found');
} catch (e) {
if (e.name === 'ResponseError') {
console.log(e.status);
console.log(e.message);
}
}
TypeScript:
import { ResponseError } from 'sponsorblock-api'
try {
await sponsorBlock.getSegments('videoID that will not be found');
} catch (e) {
if (e instanceof ResponseError) {
}
}
Issues:
Feel free to open an issue for suggestions or any unexpected behavior encountered.