1.6.0 • Published 3 years ago

twitchps v1.6.0

Weekly downloads
41
License
MIT
Repository
github
Last release
3 years ago

TwitchPS

dependency status Downloads Version GitHub issues Build Status

Neat little Node library which lets you easily interact with the Twitch.tv PubSub service.

Supported Topics

FeatureTopic and ExampleRequired ScopeYou are notified when …
Bitschannel-bits-events-v1.<channel ID> channel-bits-events-v2.<channel ID> Example: channel-bits-events-v1.44322889bits:readAnyone cheers on a specified channel.
Bits Badge Notificationchannel-bits-badge-unlocks.<channel_id> Example: channel-bits-badge-unlocks.44322889bits:readMessage sent when a user earns a new Bits badge in a particular channel, and chooses to share the notification with chat.
Channel Pointschannel-points-channel-v1.<channel_id> Example: channel-points-channel-v1.44322889channel:read:redemptionsA custom reward is redeemed in a channel.
Community Channel Pointscommunity-points-channel-v1.<channel_id> Example: community-points-channel-v1.44322889No scope neededAccess to more events than standard channel points. It outputs to the reward-redeemed event. Check events table below
Channel Subscriptionschannel-subscribe-events-v1.<channel ID> Example: channel-subscribe-events-v1.44322889channel_subscriptionsAnyone subscribes (first month, gift sub) or resubscribes (subsequent months) to a channel.
Whisperswhispers.<user ID> Example: whispers.44322889whispers:readAnyone whispers the specified user.
Stream Statusvideo-playback.<channel name> Example: video-playback.summit1gNo scope neededStatus on stream going up, down, and viewer count. Not officially supported by Twitch
Moderator Actionchat_moderator_actions.<channel ID> Example: chat_moderator_actions.44322889channel:moderateA moderator performs an action in the channel.

Installation

Node

Install via NPM

npm i twitchps --save

Usage

Include the Component

Options

NameTypeOptionalDefaultDescription
init_topicsJSON objectFalse*NONEJSON Object array of initial topics with tokens. See below.
reconnectbooleanTrueTrueReconnect when disconnected from Pubsub servers.
debugbooleanTrueFalseTurns debug console output on and off.
const TwitchPS = require('twitchps');

// Initial topics are required
let init_topics = [{topic: 'video-playback.bajheera'}, {topic: 'whispers.44322889', token: 'nkuaf7ur3trg7ju37md1y3u5p52s3q'}];
// Optional reconnect, debug options (Defaults: reconnect: true, debug: false)
var ps = new TwitchPS({init_topics: init_topics, reconnect: false, debug: true});

ps.on('stream-up', (data) => {
  console.log(data.time , data.channel_name);
  // Use data here
});

Token changed for security reasons. You can generate a token here.\ In order to find the userID/channelID follow the instructions here.\ For more detailed usage see example application.

Connection Events

Event NameYou are notified when …
'connected'A successful connection has been established
'disconnected'The connection has been terminated
'reconnect'An attempt will be made to reconnect

Events emitted after subscribing/adding topics

Event NameList of fields
'error'origin - {string} error - {string} (optional if topic is involved) topic - {string}
'bits'badge_entitlement - {object} (v2 only) bits_used - {integer} channel_id - {string} channel_name - {string} chat_message - {string} context - {string} is_anonymous - {boolean} (v2 only) message_id - {string} message_type - {string} time - {string} total_bits_used - {integer} user_id - {string} user_name - {string} version - {string}
'bits-badge'user_id - {string} - ID of user who earned the new Bits badge user_name - {string} - Login of user who earned the new Bits badge channel_id - {string} - ID of channel where user earned the new Bits badge channel_name - {string} - Login of channel where user earned the new Bits badge badge_tier - {int} - Value of Bits badge tier that was earned (1000, 10000, etc.) chat_message - {string} - Optional Custom message included with share time - {string} - Time when the bits were used. RFC 3339 format
'reward-redeemed'(from community-points-channel-v1)timestamp - {string} - Time the pubsub message was sent redemption - {object} - Data about the redemption, includes unique id and user that redeemed it channel_id - {string} - ID of the channel in which the reward was redeemed. redeemed_at - {string} - Timestamp in which a reward was redeemed reward - {object} - Data about the reward that was redeemed user_input - {string} - Optional A string that the user entered if the reward requires input status - {string} - reward redemption status, will be FULFULLED if a user skips the reward queue, UNFULFILLED otherwise
'channel-points'(from channel-points-channel-v1)timestamp - {string} - Time the pubsub message was sent redemption - {object} - Data about the redemption, includes unique id and user that redeemed it channel_id - {string} - ID of the channel in which the reward was redeemed. redeemed_at - {string} - Timestamp in which a reward was redeemed reward - {object} - Data about the reward that was redeemed user_input - {string} - Optional A string that the user entered if the reward requires input status - {string} - reward redemption status, will be FULFULLED if a user skips the reward queue, UNFULFILLED otherwise
'community-points-all'type - {string} timestamp - {string} event - {object}
'community-reward-created''community-reward-updated''community-reward-deleted''community-goal-created''community-goal-updated''community-goal-deleted'timestamp - {string} event - {object}
'subscribe'user_name - {string} display_name - {string} channel_name - {string} user_id - {string} channel_id- {string} time- {string} sub_plan- {string} sub_plan_name - {string} months - {integer} cumulative_months - {integer} context - {string} sub_message - {object} sub_message.message - {string} sub_message.emotes - {array} recipient_id - {integer} recipient_user_name - {string} recipient_display_name - {string}
'whisper_sent' & 'whisper_received'id - {integer} body - {string} thread_id - {string} sender - {JSON} sender.id - {integer} sender.username - {string} sender.display_name - {string} sender.color - {string} sender.badges - {Array} sender.emotes - {Array} recipient - {JSON} recipient.id - {integer} recipient.username - {string} recipient.display_name - {string} recipient.color - {string} recipient.badges - {Array} sent_ts - {integer} nonce - {string}
'stream-up'time - {integer} channel_name- {string} play_delay - {string}
'stream-down'time - {integer} channel_name- {string}
'viewcount'time - {integer} channel_name- {string} viewers - {integer}
'automod_rejected'user - {string} user_id - {string} message_id - {string}message - {string} reason - {string}
'approved_automod_message'createdBy - {string} created_by_user_id - {string} message_id - {string}target_user_login - {string} target_user_id - {string}
'denied_automod_message'createdBy - {string} created_by_user_id - {string} message_id - {string}target_user_login - {string} target_user_id - {string}
'add_permitted_term'createdBy - {string} created_by_user_id - {string} approved_term - {string}
'delete_permitted_term'createdBy - {string} created_by_user_id - {string} deleted_term - {string}
'add_blocked_term'createdBy - {string} created_by_user_id - {string} approved_term - {string}
'add_permitted_term'createdBy - {string} created_by_user_id - {string} blocked_term - {string}

Listen to new topics

ps.addTopic([{topic: "video-playback.starladder_cs_en"}]);
ps.addTopic([{topic: 'whispers.38290946', token: 'nkuaf7ur3trg7ju37md1y3u5p52s3q'}]);

Token changed for security reasons.

Un-listen (remove) to existing topics

ps.removeTopic([{topic: "video-playback.starladder_cs_en"}]);

Token not required.

Community

1.6.0

3 years ago

1.5.5

4 years ago

1.5.4

4 years ago

1.5.3

4 years ago

1.5.2

4 years ago

1.5.2-3

4 years ago

1.5.2-2

4 years ago

1.5.2-1

4 years ago

1.5.2-0

4 years ago

1.5.1

4 years ago

1.5.1-0

4 years ago

1.5.0

4 years ago

1.4.1-0

4 years ago

1.4.0

4 years ago

1.3.0

4 years ago

1.2.0

5 years ago

1.1.0

5 years ago

1.0.0

5 years ago

0.6.0-pr1

6 years ago

0.6.0

6 years ago

0.5.7

6 years ago

0.5.6

6 years ago

0.5.5

7 years ago

0.5.4

7 years ago

0.5.3

7 years ago

0.5.2

7 years ago

0.5.1

7 years ago

0.5.0

7 years ago

0.4.3

7 years ago

0.4.2

7 years ago

0.4.1

7 years ago

0.4.0

7 years ago

0.3.1

7 years ago

0.3.0

7 years ago

0.2.4

7 years ago

0.2.3

7 years ago

0.2.2

7 years ago

0.2.1

7 years ago

0.2.0

7 years ago