가이드

TikTok LIVE WebSocket API

WebSocket으로 어떤 TikTok LIVE 방송이든 연결하세요. 실시간 채팅 메시지, 선물, 시청자 수, 배틀, 참여 데이터를 50ms 미만의 지연으로 받아요. 모든 프로그래밍 언어에서 작동해요.

TikTok LIVE WebSocket 작동 방식

TikTool은 wss://api.tik.tools에서 관리형 WebSocket 엔드포인트를 제공하고, 어떤 TikTok LIVE 방송이든 실시간 이벤트를 전달해요. API 키와 TikTok 사용자 이름으로 연결하면 프로토콜 협상, 인증, 재연결 로직은 서버가 전부 처리해요.

TikTok 방송 인프라에 프로토콜로 직접 연결하는 방식은 자주 깨지지만, TikTool의 WebSocket API는 실서비스급의 안정적인 릴레이예요.

빠른 시작 - 코드 3줄로 연결

JavaScript / Node.js

import { TikTokLive } from '@tiktool/live'

const client = new TikTokLive({ uniqueId: 'streamer_username', apiKey: 'YOUR_KEY' })
client.on('chat', e => console.log(`${e.user.uniqueId}: ${e.comment}`))
client.connect()

또는 네이티브 WebSocket으로 바로 연결하세요 (SDK 필요 없음):

const ws = new WebSocket('wss://api.tik.tools?uniqueId=USERNAME&apiKey=YOUR_KEY')

ws.onmessage = (msg) => {
  const event = JSON.parse(msg.data)
  console.log(event.event, event.data)
}

Python

import asyncio, websockets, json

async def connect():
    uri = "wss://api.tik.tools?uniqueId=USERNAME&apiKey=YOUR_KEY"
    async with websockets.connect(uri) as ws:
        async for message in ws:
            event = json.loads(message)
            print(event["event"], event.get("data", {}))

모든 언어

Go, Rust, Java, C#, Ruby, PHP 등 WebSocket을 지원하는 언어라면 다 돼요. 여기로 연결만 하면 돼요:

wss://api.tik.tools?uniqueId=TIKTOK_USERNAME&apiKey=YOUR_API_KEY

WebSocket 연결 파라미터

파라미터필수설명
uniqueId✓스트리머의 TikTok 사용자 이름 (@ 제외)
apiKey✓내 TikTool API 키
jwtKeyJWT 기반 인증 (토큰을 쓰는 브라우저 클라이언트용 apiKey 대안)

이벤트 유형

모든 WebSocket 메시지는 event, data 필드를 가진 JSON 객체예요. 받게 되는 이벤트는 다음과 같아요:

chat

시청자가 보낸 새 채팅 메시지. 사용자 정보, 메시지 내용, 배지 포함.

gift

시청자가 보낸 가상 선물. 선물 이름, 다이아몬드 가치, 반복 횟수 포함.

like

시청자가 방송에 좋아요를 눌렀어요. 총 좋아요 수 포함.

member

시청자가 방송에 입장했어요. 사용자가 라이브 방에 들어올 때 발생해요.

social

팔로우 / 공유 / 즐겨찾기. data.action 필드로 어떤 동작인지 알 수 있어요 (follow, share, favourite).

roomUserSeq

시청자 수 업데이트. 현재 viewerCount와 topViewers 포함.

subscribe

시청자가 스트리머를 구독했어요.

battle

LinkMic 배틀 이벤트. 배틀 상태, 점수, 진행 시간, 참가자 포함.

battleArmies

배틀 아미 업데이트. 팀 점수와 참가자 순위.

linkMic

LinkMic 게스트 레이아웃 업데이트. 멀티 호스트 방송의 슬롯/게스트 사용자 ID 포함.

roomPin

스트리머가 채팅 메시지를 고정했어요.

liveIntro

방송 소개 업데이트. 방송 제목과 설명 포함.

emoteChat

채팅에서 보낸 커스텀 이모트. 이모트 ID와 이미지 URL 포함.

envelope

방송 중 보물 상자 / 홍바오 이벤트.

question

시청자가 올린 Q&A 질문.

rankUpdate

스트리머의 지역별 순위 갱신.

barrage

화면 상단 배너/공지 메시지.

superFan

시청자가 슈퍼 팬이 됐거나 레벨이 올랐어요. 새 레벨 포함.

superFanJoin

슈퍼 팬이 방에 입장했어요.

superFanBox

슈퍼 팬 상자 / 리워드 이벤트.

control

방송 진행 제어 (일시정지, 종료 등).

요금제별 연결 한도

요금제연결 수가격
Sandbox (무료)15Sandbox 요금제
Pro50주 $15부터
Ultra250주 $45부터
Agency500 + Firehose주 $119부터

오류 처리 & 재연결

WebSocket은 표준 종료 코드로 닫혀요. 클라이언트에서 재연결을 처리해야 해요:

// Auto-reconnect pattern (Node.js)
function connect() {
  const ws = new WebSocket('wss://api.tik.tools?uniqueId=USERNAME&apiKey=KEY')

  ws.onmessage = (msg) => {
    const event = JSON.parse(msg.data)
    // Process event
  }

  ws.onclose = (e) => {
    console.log(`Disconnected (${e.code}). Reconnecting in 3s...`)
    setTimeout(connect, 3000)
  }

  ws.onerror = (err) => {
    console.error('WebSocket error:', err.message)
    ws.close()
  }
}

connect()

자주 묻는 질문

WebSocket으로 TikTok 라이브 방송에 어떻게 연결하나요?

TikTok LIVE WebSocket은 어떤 프로그래밍 언어에서 쓸 수 있나요?

TikTok LIVE WebSocket API는 무료인가요?

오픈소스 라이브 방송 라이브러리와 무엇이 다른가요?

WebSocket 연결의 지연 시간은 얼마나 되나요?