// the find
zerodytrash/TikTok-Live-Connector
Node.js library to receive live stream events (comments, gifts, etc.) in realtime from TikTok LIVE.
Node.js/TypeScript library for connecting to TikTok LIVE's internal Webcast push service to receive real-time chat, gifts, and other stream events. Aimed at bot builders, stream overlays, and anyone scraping TikTok live data without official API access. The README is upfront that this is reverse engineering work, not a production API.
The event coverage is genuinely impressive — 50+ distinct event types including battles, polls, shopping, moderation events, and gift streaks, with typed interfaces for each. The route registry pattern (RouteConfig) lets you swap any HTTP or signing step without subclassing, which is the right call for a library built on unofficial internals that change frequently. Fallback chain for room ID resolution (HTML scrape → TikTok API → Euler Stream) means connection attempts are resilient to individual endpoint failures. The JWT flow for client-facing deployments is a thoughtful addition — shipping a raw API key in a browser bundle is a common mistake this pattern helps avoid.
The signing dependency on Euler Stream is a hard runtime dependency on a third-party commercial service — if that service goes down, changes pricing, or gets blocked by TikTok, the library stops working regardless of what you do. The protobuf schema for most `WebcastEvent` types is reverse-engineered and undocumented by TikTok, so field semantics for events like `roomMessage` and `captionMessage` are genuinely unknown (the README says 'No information available'). Session/cookie authentication forwards credentials to the Euler sign server — the README mentions this but downplays it; for anyone building anything with real user sessions this is a significant trust boundary. There are no reconnection helpers built in; the README suggests you write your own polling loop after `disconnected`, but rate-limit-safe reconnect logic is non-trivial and every consumer will reimplement it badly.