TikTok LIVE API란?
TikTok은 채팅, 선물, 시청자 수 같은 라이브 방송 데이터용 공개 API를 제공하지 않아요. TikTok Business API는 광고와 쇼핑 분석만 다뤄요. 그래서 개발자들은 실시간 LIVE 데이터를 위해 서드파티 API를 써요.
오픈소스 라이브러리 tiktok-live-connector(Node.js)와 TikTokLive(Python)는 MIT 라이선스로 무료로 쓸 수 있어요. 이 라이브러리들은 TikTok 서명을 백엔드에 맡기는데, 예전부터 기본값 중 하나는 같은 팀이 만든 유료 서명 서비스예요.
TikTool은 자체 서명 인프라를 갖춘 독립형 대안이에요. 완전 관리형 API라서 연결 유지와 인증은 저희 쪽에서 처리해요. WebSocket 연결 하나로 채팅, 선물, 좋아요, 팔로우, 시청자, 배틀 등 90+가지 이벤트 유형을 받아요. Node.js와 Python용 공식 SDK. Sandbox 요금제, 신용카드 필요 없음.
TikTok LIVE API는 어떻게 작동하나요?
TikTool은 내 애플리케이션과 TikTok 라이브 스트리밍 인프라 사이에 있어요. 구조는 이래요:
앱 연결
앱이 TikTok 사용자 이름과 API 키로 wss://api.tik.tools에 WebSocket을 열어요.
TikTool이 처리
TikTool이 방 ID를 찾고, 인증을 처리하고, 확인 절차를 통과한 뒤 라이브 방송에 접속해요.
이벤트 수신
실시간 이벤트(채팅, 선물, 시청자 등)가 파싱되고 구조화되고 타입이 지정된 깔끔한 JSON으로 앱에 전달돼요.
TikTok 프로토콜을 직접 다룰 일이 없어요. TikTok이 내부 시스템을 바꿔도(자주 바뀌어요) TikTool이 대응하니 코드는 그대로 작동해요.
빠른 시작 - Node.js / TypeScript
npm에서 공식 SDK 설치:
npm install @tiktool/live라이브 방송에 연결하고 이벤트 받기:
import { TikTokLive } from '@tiktool/live';
const client = new TikTokLive({
uniqueId: 'streamer_username',
apiKey: 'YOUR_API_KEY' // Get free key → https://tik.tools
});
client.on('chat', (event) => {
console.log(`${event.user.uniqueId}: ${event.comment}`);
});
client.on('gift', (event) => {
console.log(`${event.user.uniqueId} sent ${event.giftName} (${event.diamondCount} diamonds)`);
});
client.on('roomUserSeq', (event) => {
console.log(`${event.viewerCount} viewers watching`);
});
client.connect();TypeScript 완벽 지원. 모든 이벤트 유형, 필드, 파라미터에 타입이 지정돼 IDE에서 자동 완성돼요. Node.js 전체 가이드 읽기 →
빠른 시작 - Python
PyPI에서 설치:
pip install tiktok-live-apiSDK로 연결하고 데코레이터로 핸들러 등록:
from tiktok_live_api import TikTokLive
client = TikTokLive("streamer_username", api_key="YOUR_API_KEY") # Get free key at https://tik.tools
@client.on("chat")
def on_chat(event):
print(f"{event['user']['uniqueId']}: {event['comment']}")
@client.on("gift")
def on_gift(event):
print(f"{event['user']['uniqueId']} sent {event['giftName']} ({event['diamondCount']} diamonds)")
@client.on("roomUserSeq")
def on_viewers(event):
print(f"{event['viewerCount']} viewers watching")
client.run() # blocks; reconnects automaticallyasyncio를 선호하나요? await client.connect()는 같은 클라이언트를 내 이벤트 루프 안에서 실행해요. 키는 TIKTOOL_API_KEY 환경 변수로도 넣을 수 있어요.
빠른 시작 - Raw WebSocket (모든 언어)
WebSocket을 지원하는 언어라면 뭐든 돼요. Go, Rust, Java, C#, Ruby, PHP, Dart, Kotlin, Swift. 여기에 연결하기만 하면 돼요:
wss://api.tik.tools?uniqueId=TIKTOK_USERNAME&apiKey=YOUR_API_KEY모든 메시지는 event와 data 필드를 가진 JSON 객체예요. 깔끔하게 구조화된 데이터라 바이너리 파싱이 필요 없어요. WebSocket API 전체 레퍼런스 →
모든 이벤트 유형
TikTok LIVE API는 어떤 라이브 방송에서든 18가지 이상의 실시간 이벤트를 전달해요:
chat시청자의 채팅 메시지. 사용자 정보, 댓글 내용, 이모트, 배지 포함.
gift시청자가 보낸 가상 선물. 선물 이름, 다이아몬드 가치, 반복 횟수, 콤보 상태 포함.
like시청자가 방송에 좋아요를 눌렀어요. 이벤트별 횟수와 총 좋아요 수 포함.
member시청자가 라이브 방에 입장했어요. 사용자가 방송에 들어올 때 발생해요.
follow시청자가 라이브 중에 스트리머를 팔로우했어요.
share시청자가 라이브 방송을 친구에게 공유했어요.
subscribe시청자가 스트리머를 구독했어요.
roomUserSeq시청자 수 업데이트. 현재 시청자 수와 상위 시청자 목록.
battle배틀/LinkMic 이벤트. 배틀 상태, 팀, 점수, 참가자.
battleArmies팀 점수와 참가자 순위가 담긴 배틀 아미 업데이트.
roomPin스트리머가 채팅 메시지를 고정하거나 별표 표시했어요.
caption방송의 TikTok 자체 자동 자막, 프레임당 자막 창 하나.
envelope방송 중 보물 상자 또는 봉투 이벤트.
emote시청자가 채팅에 보낸 커스텀 이모트.
liveIntro방송 소개 업데이트 - 제목과 설명 변경.
streamEnd라이브 방송이 종료됐어요. 사유 코드 포함.
connectedTikTok 라이브 방송에 연결됐어요.
error연결 오류가 발생했어요. 오류 상세 정보 포함.
무엇을 만들 수 있나요?
채팅 어시스턴트
시청자 메시지, 명령어, 선물에 실시간으로 반응하는 자동 채팅 어시스턴트를 만드세요.
분석
방송별 시청자 수, 참여율, 선물 수익, 채팅 활동을 추적하세요.
인터랙티브 게임
시청자가 선물, 채팅 명령어, 좋아요로 게임 요소를 조작하게 해 보세요.
방송 오버레이
채팅, 선물 알림, 시청자 통계를 보여 주는 OBS/Streamlabs 오버레이를 만드세요.
크리에이터 스카우팅
크리에이터 랭킹, 톱 후원자, 리그 순위를 지켜보며 인재를 찾고 키우세요.
모바일 앱
TikTok LIVE 방송을 모니터링하고 상호작용하는 모바일 앱을 만드세요.
TikTool vs Euler Stream vs tiktok-live-connector
오픈소스 라이브러리 tiktok-live-connector(Node.js)와 TikTokLive(Python)는 Euler Stream을 운영하는 같은 팀이 관리해요. MIT 라이선스 클라이언트와 관리형 서명 백엔드로 잘 지원되는 생태계를 이루고 있죠. TikTool은 자체 서명 인프라와 다른 기능 방향을 가진 독립 관리형 대안이에요.
eulerstream가격 & 무료 요금제
TikTok LIVE API로 무료로 개발을 시작하세요. 신용카드 필요 없어요.