No Longer Maintained
This repository is no longer maintained. The functionality of this project has been merged into YouTube.js. We highly recommend switching to that package in order to have the latest functionality. We cannot promise stability if you continue to use this package as is.
youtube-chat
Fetch Youtube live chat without API
This module is a fork of youtube-chat
, which was written by LinaTsukusu and fixed up by IcedCoffeee.
Since the original maintainer doesn't work on this package, we forked it and maintain it for the needs of FreeTube.
You will need to take full responsibility for your actions
Getting started
- Install
npm i @freetube/youtube-chat
yarn add @freetube/youtube-chat
- Import
- Javascript
const LiveChat = require('@freetube/youtube-chat').LiveChat
- Typescript
import {LiveChat} from '@freetube/youtube-chat'
- Create instance with ChannelID or LiveID
// If channelId is specified, liveId in the current stream is automatically acquired. const liveChat = new LiveChat({channelId: 'UCxkOLgdNumvVIQqn5ps_bJA?'}) // Or specify LiveID in Stream manually. const liveChat = new LiveChat({liveId: 'bc5DoKBZRIo'})
- Add events
// Emit at start of observation chat. // liveId: string liveChat.on('start', (liveId) => {}) // Emit at end of observation chat. // reason: string? liveChat.on('end', (reason) => {}) // Emit at receive chat. // comment: CommentItem liveChat.on('comment', (comment) => {}) // Emit when an error occurs // err: Error liveChat.on('error', (err) => {})
Types
CommentItem
interface CommentItem {
id: string
author: {
name: string
thumbnail?: ImageItem
channelId: string
badge?: {
thumbnail: ImageItem
label: string
}
}
message: MessageItem[]
superchat?: {
amount: string
color: number
}
membership: boolean
isOwner: boolean
timestamp: number
}
MessageItem
type MessageItem = { text: string } | ImageItem
ImageItem
interface ImageItem {
url: string
alt: string
width: number
height: number
}