youtube-chat-kacesensitive
v1.0.0
Published
[![npm version](https://badge.fury.io/js/youtube-chat-kacesensitive.svg)](https://badge.fury.io/js/youtube-chat-kacesensitive) ![npm](https://img.shields.io/npm/dt/youtube-chat-kacesensitive) ![NPM](https://img.shields.io/npm/l/youtube-chat-kacesensitive)
Downloads
2
Maintainers
Readme
youtube-chat-kacesensitive
Fetch YouTube live chat without API
What is this?
This is just a commonJS implementation of LinaTsukusu's https://github.com/LinaTsukusu/youtube-chat
☢ You will need to take full responsibility for your action ☢
Getting started
- Install
npm i youtube-chat-kacesensitive
yarn add youtube-chat-kacesensitive
- Import
- Javascript
const { LiveChat } = require("youtube-chat-kacesensitive")
- Typescript
import { LiveChat } from "youtube-chat-kacesensitive"
- Create instance with ChannelID or LiveID
// If channelId is specified, liveId in the current stream is automatically acquired. // Recommended const liveChat = new LiveChat({channelId: "CHANNEL_ID_HERE"}) // Or specify LiveID in Stream manually. const liveChat = new LiveChat({liveId: "LIVE_ID_HERE"})
- Add events
// Emit at start of observation chat. // liveId: string liveChat.on("start", (liveId) => { /* Your code here! */ }) // Emit at end of observation chat. // reason: string? liveChat.on("end", (reason) => { /* Your code here! */ }) // Emit at receive chat. // chat: ChatItem liveChat.on("chat", (chatItem) => { /* Your code here! */ }) // Emit when an error occurs // err: Error or any liveChat.on("error", (err) => { /* Your code here! */ })
- Start
// Start fetch loop const ok = await liveChat.start() if (!ok) { console.log("Failed to start, check emitted error") }
- Stop loop
liveChat.stop()
Types
ChatItem
interface ChatItem {
author: {
name: string
thumbnail?: ImageItem
channelId: string
badge?: {
thumbnail: ImageItem
label: string
}
}
message: MessageItem[]
superchat?: {
amount: string
color: string
sticker?: ImageItem
}
isMembership: boolean
isVerified: boolean
isOwner: boolean
isModerator: boolean
timestamp: Date
}
MessageItem
type MessageItem = { text: string } | EmojiItem
ImageItem
interface ImageItem {
url: string
alt: string
}
EmojiItem
interface EmojiItem extends ImageItem {
emojiText: string
isCustomEmoji: boolean
}
References
- https://drroot.page/wp/?p=227
- https://github.com/taizan-hokuto/pytchat
Thank you!👍