@miukyo/ytlc
    Preparing search index...

    Public contract for a live chat service implementation.

    Implementations support both event-based consumption (on) and async iterators (streamChatItems, streamRawActions).

    const chat: IYTLiveChat = new YTLiveChat();
    chat.on("chatReceived", ({ chatItem }) => console.log(chatItem.author.name));
    await chat.start({ liveId: "VIDEO_ID" });
    interface IYTLiveChat {
        on<K extends keyof YTLiveChatEvents>(
            event: K,
            listener: (payload: YTLiveChatEvents[K]) => void,
        ): this;
        off<K extends keyof YTLiveChatEvents>(
            event: K,
            listener: (payload: YTLiveChatEvents[K]) => void,
        ): this;
        start(options?: StartOptions): Promise<void>;
        stop(reason?: string): void;
        dispose(): void;
        sendDummy(options?: SendDummyOptions): ChatItem;
        streamChatItems(
            options?: StartOptions,
            signal?: AbortSignal,
        ): AsyncIterable<ChatItem>;
        streamRawActions(
            options?: StartOptions,
            signal?: AbortSignal,
        ): AsyncIterable<RawActionReceivedEventArgs>;
    }

    Implemented by

    Index

    Methods

    • Start monitoring live chat for a target handle, channel, or live video.

      At least one of handle, channelId, or liveId must be provided.

      Parameters

      Returns Promise<void>

      Promise that resolves when startup scheduling is completed.

    • Stop monitoring and emit chatStopped. *

      Parameters

      • Optionalreason: string

      Returns void

      Nothing.