개발자 가이드

TikTok LIVE 분석 API

어떤 TikTok LIVE 방송이든 시청자 수, 선물 수익, 채팅량, 참여 지표를 실시간으로 추적하세요. 대시보드, 알림 시스템, 분석 도구를 만들어 보세요.

어떤 분석 데이터를 받을 수 있나요?

TikTok은 LIVE 방송용 공개 분석 API를 제공하지 않아요. TikTools API는 모든 방송 이벤트를 WebSocket으로 실시간 전달해서 이 빈자리를 채워 줘요. 이 원본 이벤트로 어떤 지표든 계산할 수 있어요:

  • 시청자 수 - 몇 초마다 업데이트되는 실시간 시청자 수
  • 선물 수익 - 모든 선물 이벤트에 다이아몬드 가치 포함 (1 다이아몬드 ≈ $0.005)
  • 채팅량 - 분당 메시지 수, 순 채팅 참여자 수, 키워드 빈도
  • 참여율 - 기간별 좋아요, 공유, 팔로우
  • 최고 시청자 수 - 방송 전체에서 최고 기록 추적
  • 선물 랭킹 - 총 다이아몬드 사용액 기준 톱 후원자 순위

빠른 시작: 실시간 대시보드 데이터

이 예제는 모든 분석 데이터를 실시간으로 수집해요. 원하는 프론트엔드 프레임워크에 연결하거나 데이터베이스에 저장하세요:

import { TikTokLive } from '@tiktool/live'

const client = new TikTokLive({
  uniqueId: 'target_username',
  apiKey: process.env.TIKTOOL_API_KEY
})

// ── Analytics State ──
const stats = {
  viewerCount: 0,
  peakViewers: 0,
  totalMessages: 0,
  totalGifts: 0,
  totalDiamonds: 0,
  totalLikes: 0,
  totalFollows: 0,
  totalShares: 0,
  uniqueChatters: new Set(),
  giftLeaderboard: new Map(),
  startTime: Date.now()
}

// Viewer count tracking
client.on('viewer_count', (event) => {
  stats.viewerCount = event.viewerCount
  if (event.viewerCount > stats.peakViewers) {
    stats.peakViewers = event.viewerCount
  }
})

// Chat analytics
client.on('chat', (event) => {
  stats.totalMessages++
  stats.uniqueChatters.add(event.userId)
})

// Gift revenue tracking
client.on('gift', (event) => {
  stats.totalGifts++
  stats.totalDiamonds += event.diamondCount

  const current = stats.giftLeaderboard.get(event.nickname) || 0
  stats.giftLeaderboard.set(event.nickname, current + event.diamondCount)
})

// Engagement tracking
client.on('like', (event) => {
  stats.totalLikes = event.totalLikeCount
})

client.on('follow', () => { stats.totalFollows++ })
client.on('share', () => { stats.totalShares++ })

await client.connect()
console.log('📊 Analytics tracking started!')

// Print summary every 60 seconds
setInterval(() => {
  const minutes = (Date.now() - stats.startTime) / 60000
  const revenue = (stats.totalDiamonds * 0.005).toFixed(2)

  console.log('\n── Stream Analytics ──')
  console.log(`Viewers: ${stats.viewerCount} (peak: ${stats.peakViewers})`)
  console.log(`Messages: ${stats.totalMessages} (${(stats.totalMessages / minutes).toFixed(1)}/min)`)
  console.log(`Unique chatters: ${stats.uniqueChatters.size}`)
  console.log(`Gifts: ${stats.totalGifts} (${stats.totalDiamonds} 💎 ≈ $${revenue})`)
  console.log(`Likes: ${stats.totalLikes} | Follows: ${stats.totalFollows} | Shares: ${stats.totalShares}`)
}, 60000)

예상 출력

📊 Analytics tracking started!

── Stream Analytics ──
Viewers: 2,347 (peak: 3,891)
Messages: 487 (81.2/min)
Unique chatters: 203
Gifts: 34 (12,450 💎 ≈ $62.25)
Likes: 45,230 | Follows: 89 | Shares: 23

데이터베이스에 저장

과거 분석을 위해 PostgreSQL, MongoDB 등 원하는 데이터베이스에 이벤트를 저장하세요:

import { TikTokLive } from '@tiktool/live'

// Example: save to PostgreSQL with Prisma
import { PrismaClient } from '@prisma/client'
const prisma = new PrismaClient()

const client = new TikTokLive({
  uniqueId: 'target_username',
  apiKey: process.env.TIKTOOL_API_KEY
})

client.on('gift', async (event) => {
  await prisma.giftEvent.create({
    data: {
      streamer: 'target_username',
      senderNickname: event.nickname,
      senderUserId: event.userId,
      giftName: event.giftName,
      diamondCount: event.diamondCount,
      repeatCount: event.repeatCount,
      timestamp: new Date()
    }
  })
})

client.on('viewer_count', async (event) => {
  await prisma.viewerSnapshot.create({
    data: {
      streamer: 'target_username',
      viewerCount: event.viewerCount,
      timestamp: new Date()
    }
  })
})

await client.connect()
console.log('💾 Saving events to database...')

Raw WebSocket (모든 언어)

Python, Go, Rust 등 WebSocket을 지원하는 언어라면 뭐든 분석 도구를 만들 수 있어요:

# Python example using websockets library
import asyncio, json, websockets

async def track_analytics():
    url = "wss://api.tik.tools?uniqueId=target_username&apiKey=YOUR_API_KEY"

    async with websockets.connect(url) as ws:
        total_diamonds = 0
        peak_viewers = 0

        async for raw in ws:
            msg = json.loads(raw)

            if msg["event"] == "viewer_count":
                viewers = msg["data"]["viewerCount"]
                peak_viewers = max(peak_viewers, viewers)
                print(f"Viewers: {viewers} (peak: {peak_viewers})")

            elif msg["event"] == "gift":
                diamonds = msg["data"]["diamondCount"]
                total_diamonds += diamonds
                revenue = total_diamonds * 0.005
                print(f"Gift revenue: {total_diamonds} 💎 (${revenue:.2f})")

asyncio.run(track_analytics())

FAQ

TikTok에 LIVE 방송용 공식 분석 API가 있나요?

없어요. TikTok은 크리에이터에게 LIVE 센터로 앱 내 분석을 제공하지만, 이 데이터를 프로그래밍 방식으로 가져올 공개 API는 없어요. TikTools API는 원본 이벤트를 실시간으로 전달해서 나만의 분석을 만들 수 있게 해 줘요.

여러 방송을 동시에 추적할 수 있나요?

네. TikTokLive 클라이언트를 방송마다 하나씩 여러 개 만드세요. Pro 요금제는 동시 WebSocket 연결을 최대 50개까지 지원해요.

시청자 수는 얼마나 정확한가요?

시청자 수는 TikTok 내부 데이터에서 바로 가져오며 몇 초마다 업데이트돼요. TikTok 앱에 표시되는 숫자와 같아요.