Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/Stateford/twitch-api
Easy node interaction with the twitch API, using promises
https://github.com/Stateford/twitch-api
nodejs twitch twitch-api twitchtv twitchtv-api
Last synced: 26 days ago
JSON representation
Easy node interaction with the twitch API, using promises
- Host: GitHub
- URL: https://github.com/Stateford/twitch-api
- Owner: Stateford
- Created: 2017-04-06T03:58:30.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2022-12-17T20:06:40.000Z (almost 2 years ago)
- Last Synced: 2024-05-01T17:39:35.903Z (7 months ago)
- Topics: nodejs, twitch, twitch-api, twitchtv, twitchtv-api
- Language: JavaScript
- Homepage: https://www.npmjs.com/package/twitch.tv-api
- Size: 52.7 KB
- Stars: 8
- Watchers: 3
- Forks: 7
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome-twitch-dev - Stateford/twitch-api - Easy node interaction with the twitch API, using promises. (Libraries / Python)
README
# TWITCH-API
### The twitch API v5 made easy## Twitch Class
### Starting
The class object takes two parameters in the object, the client ID and the client secret.
Create the a new object with the correct parameters to use the class.The package [dotenv](https://github.com/motdotla/dotenv) is recommended for keeping your client information secret.
```js
const Twitch = require("twitch.tv-api");
const twitch = new Twitch({
id: "YOUR ID HERE",
secret: "YOUR SECRET HERE"
});
```### Methods
| METHOD | DESCRIPTION |
|:--------:|:-----------:|
| `.getUser(user)` | Returns information about a user |
| `.getFeaturedStreams(options*)` | Returns twitch's featured streams |
| `.getTopStreams(options*)` | Returns the current top streams |
| `.getTopGames(options*)` | Returns the top games |
| `.getUsersByGame(game)` | Returns users by game |
| `.getStreamUrl(user)` | Returns the RTMP stream URL |
| `.searchChannels(query, limit*, offset*)` | Returns a list of channels |
| `.searchStreams(query, limit*, offset*)` | Returns a list of streams |
| `.searchGames(query, live*)` | Returns a list of games |
*Parameter is optional or has default values.### Using
The twitch api module uses promises to resolve/reject data.
```js
const Twitch = require("twitch.tv-api");
const twitch = new Twitch({
id: "YOUR ID HERE"
secret: "YOUR SECRET HERE"
});twitch.getUser("idietmoran")
.then(data => {
console.log(data);
})
.catch(error => {
console.error(error);
});// making requests with optional parameters
const optionalParams = {game: 'StarCraft: Brood War', language: 'es'};
twitch.getTopStreams(optionalParams)
.then(data => {
console.log(data);
})
.catch(error => {
console.error(error);
});twitch.getFeaturedStreams({limit: 5})
.then(data => {
console.log(data);
})
.catch(error => {
console.error(error);
});// non es6
twitch.getTopStreams()
.then(function(data) {
console.log(data);
})
.catch(function(error) {
console.error(error);
});// using async/await
async function foo() {
let data = await twitch.getTopStreams();
console.log(data);
}// with error handling
async function foo() {
try {
let data = await twitch.getTopStreams();
console.log(data);
} catch(err) {
throw err;
}
}
```### Example
Here is an example of routing the requests through a [Hapi](https://github.com/hapijs/hapi) server.
```js
require("dotenv").config();
const Hapi = require('hapi');
const Twitch = require("twitch.tv-api");const server = new Hapi.Server({})
const twitch = new Twitch({
id: process.env.TWITCH_ID,
secret: process.env.TWITCH_SECRET
});server.connection({
port: process.env.PORT,
host: process.env.HOST,
});server.route({
method: 'GET',
path: '/twitch/api/game/{game}',
handler: (request, reply) => {
twitch.getUsersByGame(request.params.game)
.then(reply)
.catch(reply);
}
});server.start(err => {
if (err) {
throw err;
}
console.log(`Server running at: ${server.info.uri}`);
});
```