twitch-api-helix
TypeScript icon, indicating that this package has built-in type declarations

0.2.7 • Public • Published

TWITCH API HELIX

npm version npm

This is a simple module to interact with Twitch Helix API. Fully written in TypeScript.

Installation

npm install twitch-api-helix
yarn add twitch-api-helix

Then you must Register your Twitch application to get your CLIENT_ID and CLIENT_SECRET, the package will take care of the OAuth2 process.

You will just need to provide the CLIENT_ID and CLIENT_SECRET to the constructor, feel free to store them in a .env file.

Feeld free to check the Twitch Helix API Reference for more information.

Usage

import TwitchApi from "twitch-api-helix";

const twitchApi = new TwitchApi(
  process.env.CLIENT_ID,
  process.env.CLIENT_SECRET
);

API

Authentication

refreshAccessToken()

Refresh the access token, you can call this method manually but it will be called automatically when a request is made and the access token is expired.

twitchApi.authentication.refreshAccessToken();

validateAccessToken()

Validate the access token, if it is valid nothing will happen, if it is not valid it will be refreshed.

twitchApi.authentication.validateAccessToken();

Clips

getClips(TwitchClipsRequestParams) => TwitchClipsResponseBody

type TwitchClipsRequestParams = (
  | {
      broadcaster_id: string;
    }
  | {
      game_id: string;
    }
  | {
      id: string;
    }
) & {
  first?: number;
  started_at?: string;
  ended_at?: string;
  after?: string;
  before?: string;
};
type TwitchClipsResponseBody = {
  data: TwitchClip[];
  pagination?:
    | {
        cursor: string;
      }
    | undefined;
};
type TwitchClip = {
  id: string;
  url: string;
  embed_url: string;
  broadcaster_id: string;
  broadcaster_name: string;
  creator_id: string;
  creator_name: string;
  video_id: string;
  game_id: string;
  language: string;
  title: string;
  view_count: number;
  created_at: string;
  thumbnail_url: string;
  duration: number;
  vod_offset: number;
};

Get clips by ID.

twitchApi.clips.getClips({
  id: "123456789",
});

Get clips by broadcaster ID

twitchApi.clips.getClips({
  broadcaster_id: "123456789",
  first: 10,
});

Get clips by game ID

twitchApi.clips.getClips({
  game_id: "123456789",
  first: 10,
});

Games

getGame(TwitchGamesRequestParams) => TwitchGamesResponseBody

type TwitchGamesRequestParams =
  | {
      id: string;
    }
  | {
      name: string;
    }
  | {
      igdb_id: string;
    };
type TwitchGamesResponseBody = {
  data: TwitchGame[];
  pagination?:
    | {
        cursor: string;
      }
    | undefined;
};
type TwitchGame = {
  id: string;
  name: string;
  box_art_url: string;
  igdb_id?: number;
};

Get games by ID.

twitchApi.games.getGame({
  id: "123456789",
});

Get games by name.

twitchApi.games.getGame({
  name: "Fortnite",
});

Get games by IGDB ID.

twitchApi.games.getGame({
  igdb_id: "123456789",
});

Users

getUser(TwitchUsersRequestParams) => TwitchUsersResponseBody

type TwitchUsersRequestParams =
  | {
      id: string;
    }
  | {
      login: string;
    };
type TwitchUsersResponseBody = {
  data: TwitchUser[];
  pagination?:
    | {
        cursor: string;
      }
    | undefined;
};
type TwitchUser = {
  id: string;
  login: string;
  display_name: string;
  type: string;
  broadcaster_type: string;
  description: string;
  profile_image_url: string;
  offline_image_url: string;
  email: string;
  created_at: string;
};

Get users by ID.

twitchApi.users.getUser({
  id: "123456789",
});

Get users by login.

twitchApi.users.getUser({
  login: "Somindras",
});

Package Sidebar

Install

npm i twitch-api-helix

Weekly Downloads

2

Version

0.2.7

License

MIT

Unpacked Size

41.9 kB

Total Files

39

Last publish

Collaborators

  • somindras