JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 460
  • Score
    100M100P100Q99162F
  • License MIT

Node module wrapper for SponsorBlock web API.

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.