Package Exports
- sponsorblock-api
- sponsorblock-api/lib/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (sponsorblock-api) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
node-sponsorblock-api
Node module wrapper for SponsorBlock web API.
Using Axios for the HTTP client
https://sponsor.ajay.app/
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); // userID should be a locally generated uuid, save the id for future tracking of stats
sponsorBlock.getSegments(videoID, ['intro', 'outro']).then((segments) => {
console.log(segments);
});
TypeScript:
import { SponsorBlock, Category } from 'sponsorblock-api';
const sponsorBlock = new SponsorBlock(userID); // userID should be a locally generated uuid, save the id for future tracking of stats
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') {
// SponsorBlock error handling
console.log(e.status); // 404
console.log(e.message); // Not found
}
}
TypeScript:
import { ResponseError } from 'sponsorblock-api'
try {
await sponsorBlock.getSegments('videoID that will not be found');
} catch (e) {
if (e instanceof ResponseError) {
// SponsorBlock error handling
}
}
Issues:
Feel free to open an issue for suggestions or any unexpected behavior encountered.