@bluetree242/youtube-chat
Version:
> Fetch Youtube live chat without API
89 lines (77 loc) • 2.22 kB
Markdown
# youtube-chat
> Fetch Youtube live chat without API
This module is a fork of `youtube-chat`, which was written by [LinaTsukusu](https://github.com/LinaTsukusu) and fixed up by [IcedCoffeee](https://github.com/IcedCoffeee), then it was used for freetube.. and was fixed again by BlueTree242.
Since all those people don't work on it anymore, i had to fix the bugs myself.
***You will need to take full responsibility for your actions***
## Getting started
1. Install
- `npm i @freetube/youtube-chat`
- `yarn add @freetube/youtube-chat`
2. Import
- Javascript
```javascript
const LiveChat = require('@freetube/youtube-chat').LiveChat
```
- Typescript
```typescript
import {LiveChat} from '@freetube/youtube-chat'
```
3. Create instance with ChannelID or LiveID
```javascript
// 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'})
```
4. Add events
```typescript
// 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
```typescript
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
```typescript
type MessageItem = { text: string } | ImageItem
```
### ImageItem
```typescript
interface ImageItem {
url: string
alt: string
width: number
height: number
}
```