Hangi Analiz Verileri Mevcut?
TikTok, LIVE yayınlar için herkese açık bir analiz API'si sunmuyor. TikTools API, her yayın olayını WebSocket üzerinden anlık ileterek bu boşluğu doldurur. Bu ham olaylardan istediğin her metriği hesaplayabilirsin:
- İzleyici sayısı - birkaç saniyede bir güncellenen anlık izleyici sayısı
- Hediye geliri - her hediye olayı elmas değerini içerir (1 elmas ≈ 0,005 $)
- Sohbet hacmi - dakika başına mesaj, tekil sohbet eden sayısı, anahtar kelime sıklığı
- Etkileşim oranı - zaman dilimi başına beğeni, paylaşım, takip
- Zirve izleyici - oturum boyunca ulaşılan en yüksek değerleri takip et
- Hediye sıralaması - toplam elmas harcamasına göre sıralanan en iyi destekçiler
Hızlı Başlangıç: Anlık Panel Verisi
Bu örnek tüm analiz verilerini anlık toplar. İstediğin frontend framework'üne bağla ya da bir veritabanına kaydet:
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)Beklenen Çıktı
📊 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: 23Veritabanına Kaydet
Geçmişe dönük analiz için olayları PostgreSQL, MongoDB ya da herhangi bir veritabanında sakla:
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...')Ham WebSocket (Her Dil)
Python, Go, Rust ya da WebSocket destekleyen herhangi bir dille analiz geliştir:
# 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())SSS
TikTok'un LIVE yayınlar için resmi bir analiz API'si var mı?
Hayır. TikTok yayıncılara CANLI Yayın Merkezi üzerinden uygulama içi analiz sunar, ama bu veriye programatik olarak erişmek için herkese açık bir API yok. TikTools API, kendi analizini oluşturmak için kullanabileceğin ham olayları anlık iletir.
Birden fazla yayını aynı anda takip edebilir miyim?
Evet. Her yayın için bir tane olmak üzere birden fazla TikTokLive istemcisi oluştur. Pro plan en fazla 50 eşzamanlı WebSocket bağlantısını destekler.
İzleyici sayısı ne kadar doğru?
İzleyici sayısı doğrudan TikTok'un dahili verisinden gelir ve birkaç saniyede bir güncellenir. TikTok uygulamasında gösterilen sayıyla aynıdır.