İçeriğe geç
Stream EmberAPI
Platform Events / Ayrıntılı referans

Ayrıntılı referans

TikTok, YouTube, Twitch, Kick, Facebook, Instagram ve Trovo eventlerini ve hediye kataloglarını 14 dilde, tek ortak şemada listeler.

Betav3.0.0Güncelleme 2026-10-07JSON · GET, POSTGET herkese açık; POST ingest.php için X-Ingest-Token

Bu sayfa platform-events API'sinin tam referansıdır: taksonomi, platform eventleri, dil kuralları, veri standardı, dosya düzeni ve sunucu notları. Kısa kullanım için API.md, Chrome eklentisi için INGEST.md.

Kimlikler

SeviyeBiçimÖrnek
Platform eventi{platform}.{native}tiktok.comment, youtube.super_chat
Katalog öğesi{platform}.{item_type}.{native_id}tiktok.gift.5655, youtube.gift.football, twitch.power_up.celebration
  • Ayırıcı noktadır. Segmentler [a-z0-9_], son segment (native_id) [A-Za-z0-9_-].
  • Kimlikler kalıcıdır: bir kez yayınlanan kimlik değiştirilmez ve başka bir şey için kullanılmaz.
  • native platformun kendi adına yakın tutulur (super_chat, cheer); ortak anlam kind alanındadır.

Seçici sözdizimi (tetikleyiciler için öneri)

SeçiciAnlam
tiktok.gift.5655Tam olarak bu hediye
tiktok.gift.*TikTok'taki herhangi bir hediye
kind:giftHerhangi bir platformdaki herhangi bir hediye
kind:comment@youtube,twitchYouTube ya da Twitch'te yorum
category:moderationHer türlü moderasyon eventi

API seçici çözmez; aynı filtreler ?id=, ?kind=, ?category=, ?platform= ile sorgulanabilir.

Kategoriler ve kanonik türler

7 kategori: audience (izleyici), chat (sohbet), support (destek), membership (üyelik), moderation (moderasyon), stream (yayın), interaction (etkileşim).

KategorikindTürkçeEnglish
audiencejoinYayına katılmaJoined the stream
audiencefollowTakipFollow
audienceunfollowTakibi bırakmaUnfollow
audiencesharePaylaşımShare
audiencelikeBeğeniLike
audienceviewer_countİzleyici sayısıViewer count
audienceleaderboardDestekçi sıralamasıLeaderboard
chatcommentYorumComment
chatquestionSoruQuestion
chatemoteEmote / stickerEmote / sticker
supportgiftHediyeGift
supportdonationBağışDonation
supporttreasure_chestHazine sandığıTreasure chest
membershipsubscribeAbonelikSubscription
membershipresubscribeAbonelik yenilemeResubscription
membershipsubscription_giftHediye abonelikGifted subscription
moderationbanEngellemeBan
moderationunbanEngel kaldırmaUnban
moderationmuteSusturmaMute / timeout
moderationmessage_deletedMesaj silindiMessage deleted
moderationchat_clearedSohbet temizlendiChat cleared
moderationmoderator_changeModeratör değişikliğiModerator change
streamstream_startYayın başladıStream started
streamstream_endYayın bittiStream ended
streamstream_updateYayın bilgisi değiştiStream updated
streamraidRaidRaid
streamshoutoutShoutoutShoutout
streamad_breakReklam arasıAd break
interactionreward_redeemÖdül kullanmaReward redeemed
interactionpollAnketPoll
interactionpredictionTahminPrediction
interactionbattleBattleBattle
interactiongoalHedefGoal
interactionhype_trainHype TrainHype Train
interactionco_hostKonuk yayıncıCo-host

Aşamalı olaylar (anket, battle, hype train, hediye kombosu) katalogda tek event olarak durur. Aşama (start, progress, end), kombo ve beğeni paketi bilgisi EventFabric'in canlı eventlerinde taşınır. Katalog kombo için yalnızca flags.streakable bilgisini verir.

Platform eventleri

Aşağıdaki listeler data/platforms/*.json dosyalarından üretilmiştir. YouTube'da kanal aboneliği follow, kanal üyeliği subscribe türündedir. Facebook tepkileri like türündedir.

TikTok (tiktok)

Öğe türleri: gift · birim: tiktok_coin

KimlikkindTürkçe ad
tiktok.joinjoinYayına katılma
tiktok.commentcommentYorum
tiktok.likelikeBeğeni
tiktok.sharesharePaylaşım
tiktok.followfollowTakip
tiktok.subscribesubscribeAbonelik
(hediyeler — items_order: 100)gift
tiktok.questionquestionSoru
tiktok.emoteemoteEmote
tiktok.stickeremoteSticker
tiktok.treasure_chesttreasure_chestHazine sandığı
tiktok.battlebattleBattle
tiktok.co_hostco_hostKonuk yayıncı
tiktok.pollpollAnket
tiktok.goalgoalHedef
tiktok.viewer_countviewer_countİzleyici sayısı
tiktok.leaderboardleaderboardDestekçi sıralaması
tiktok.message_deletedmessage_deletedMesaj silindi
tiktok.stream_endstream_endYayın bitti

YouTube (youtube)

Öğe türleri: gift · birim: youtube_jewel

KimlikkindTürkçe ad
youtube.commentcommentYorum
youtube.likelikeBeğeni
youtube.subscribefollowKanala abone olma
youtube.membershipsubscribeKanal üyeliği
youtube.membership_milestoneresubscribeÜyelik dönüm noktası
youtube.membership_giftsubscription_giftÜyelik hediyesi
youtube.super_chatdonationSuper Chat
youtube.super_stickerdonationSuper Sticker
youtube.pollpollAnket
youtube.viewer_countviewer_countİzleyici sayısı
youtube.message_deletedmessage_deletedMesaj silindi
youtube.stream_endstream_endYayın bitti

Twitch (twitch)

Öğe türleri: power_up · birim: twitch_bit

KimlikkindTürkçe ad
twitch.commentcommentYorum
twitch.followfollowTakip
twitch.subscribesubscribeAbonelik
twitch.resubscriberesubscribeAbonelik yenileme
twitch.subscription_giftsubscription_giftHediye abonelik
twitch.cheerdonationCheer (Bits)
twitch.custom_power_upgiftKanala özel Power-up
twitch.channel_pointsreward_redeemKanal puanı ödülü
twitch.raidraidRaid
twitch.shoutoutshoutoutShoutout
twitch.hype_trainhype_trainHype Train
twitch.pollpollAnket
twitch.predictionpredictionTahmin
twitch.goalgoalHedef
twitch.viewer_countviewer_countİzleyici sayısı
twitch.message_deletedmessage_deletedMesaj silindi
twitch.chat_clearedchat_clearedSohbet temizlendi
twitch.timeoutmuteSusturma
twitch.banbanEngelleme
twitch.unbanunbanEngel kaldırma
twitch.moderator_changemoderator_changeModeratör değişikliği
twitch.ad_breakad_breakReklam arası
twitch.stream_startstream_startYayın başladı
twitch.stream_endstream_endYayın bitti
twitch.stream_updatestream_updateYayın bilgisi değişti
twitch.power_up.message_effectgiftMesaj efekti (sabit öğe)
twitch.power_up.celebrationgiftEkran kutlaması (sabit öğe)
twitch.power_up.gigantify_an_emotegiftEmote büyütme (sabit öğe)

Kick (kick)

Öğe türleri: gift · birim: kick_kick

KimlikkindTürkçe ad
kick.commentcommentYorum
kick.followfollowTakip
kick.subscribesubscribeAbonelik
kick.resubscriberesubscribeAbonelik yenileme
kick.gift_subscriptionsubscription_giftHediye abonelik
kick.channel_pointsreward_redeemKanal puanı ödülü
kick.raidraidRaid
kick.viewer_countviewer_countİzleyici sayısı
kick.timeoutmuteSusturma
kick.banbanEngelleme
kick.stream_startstream_startYayın başladı
kick.stream_endstream_endYayın bitti
kick.stream_updatestream_updateYayın bilgisi değişti

Facebook Live (facebook)

KimlikkindTürkçe ad
facebook.commentcommentYorum
facebook.reactionlikeTepki
facebook.sharesharePaylaşım
facebook.followfollowTakip
facebook.starsdonationYıldız (Stars)
facebook.viewer_countviewer_countİzleyici sayısı

Instagram Live (instagram)

KimlikkindTürkçe ad
instagram.joinjoinYayına katılma
instagram.commentcommentYorum
instagram.likelikeBeğeni
instagram.followfollowTakip
instagram.sharesharePaylaşım
instagram.viewer_countviewer_countİzleyici sayısı

Trovo (trovo)

Öğe türleri: spell · birim: trovo_mana, trovo_elixir

KimlikkindTürkçe ad
trovo.joinjoinYayına katılma
trovo.commentcommentYorum
trovo.followfollowTakip
trovo.unfollowunfollowTakibi bırakma
trovo.subscribesubscribeAbonelik
trovo.gift_subscriptionsubscription_giftHediye abonelik
trovo.raidraidRaid
trovo.stream_startstream_startYayın başladı
trovo.stream_endstream_endYayın bitti

Twitch'in varsayılan üç Power-up'ı sabit liste olduğu için eklentiyle toplanmaz; data/platforms/twitch.json içinde static_items olarak tanımlıdır. Kanala özel Power-up'lar katalogda yer almaz, twitch.custom_power_up eventi olarak seçilir.

Diller

14 dil desteklenir; varsayılan tr. Dil her zaman ?lang= ile seçilir, istek başlıkları okunmaz.

KodDilVarsayılan localecovers
trTürkçetr-TRaz
enEnglishen-US—
deDeutschde-DE—
frFrançaisfr-FR—
esEspañoles-ESca, gl
ptPortuguêspt-BR—
ruРусскийru-RUuk, be, kk, ky, uz, tg
arالعربيةar-SA—
zh-Hans简体中文zh-CNzh, zh-CN, zh-SG
zh-Hant繁體中文zh-TWzh-TW, zh-HK, zh-MO
ja日本語ja-JP—
ko한국어ko-KR—
viTiếng Việtvi-VN—
idBahasa Indonesiaid-IDms

Çözümleme sırası: küçük harfe çevir ve _ yerine - koy → desteklenen kodla başlıyor mu (zh-Hant-TW) → tam kod → covers içinde tam eşleşme (zh-TW) → ilk alt etiket (tr-TR → tr) → ilk alt etiket covers içinde (uk-UA → ru) → tr.

covers yalnızca istemcinin işletim sistemi dilinden otomatik seçim yapması içindir; sistem bir dili başka bir dile çevirmez. Launcher hiçbir eşleşme bulamazsa arayüz için en seçmelidir.

Ad yedekleri: istenen dil → yakın dil (zh-Hant ↔ zh-Hans, pt ↔ es, id → en) → en → tr → öğenin bilinen ilk dili.

Ortak veri standardı

AlanBiçimKural
idmetinYukarıdaki kimlik biçimi
native_idmetinPlatformun kimliği; sayı olsa da metin
platformmetintiktok, youtube, twitch, kick, facebook, instagram, trovo
item_typemetingift, power_up, spell, sticker
name, descriptionmetinİstenen dilde; açıklama yoksa null
value{amount, unit}amount 0 ya da daha büyük tam sayı; bilinmiyorsa value: null
iconURLHediyelerde platformun URL'si (kopyalanmaz); sabit eventlerde bizim CDN'imiz
flagsnesnecommunity, streakable (boolean, eksikse false)
attributesnesneAnahtar {platform}.{alan}, değer skaler; API yorumlamaz
ZamanISO 8601 UTCfirst_seen, last_seen, captured_at
unitPlatform
tiktok_coinTikTok jetonu (diamond_count)
youtube_jewelYouTube Jewels
twitch_bitTwitch Bits
kick_kickKick Kicks
trovo_mana / trovo_elixirTrovo spell'leri

Sıralama

sort=default (Launcher sırası): platform sırası → order'ı platformun items_order değerinden küçük sabit eventler → normal öğeler değere göre artan, eşitse ada göre → community öğeleri → kalan sabit eventler. items_order yoksa öğeler bütün eventlerden sonra gelir. Öğe kayıtlarının order alanı bu değeri taşır. TikTok ve YouTube'da susturma/engelleme eventi yoktur (yalnızca message_deleted). q= ile arama yapıldığında community öğeleri ayrıca sona taşınmaz.

Gruplama

group parametresi düz listeyi iç içe gruplara böler; seviye sırası parametredeki sıradır:

İstekYapı
group=platformplatform (ad, ikonlar) → kayıtlar
group=categorykategori → kayıtlar
group=platform,categoryplatform → kategori → kayıtlar (Launcher için önerilen)
group=platform,category,kindplatform → kategori → tür → kayıtlar

Gruplar platform order ve taksonomi sırasıyla gelir; boş gruplar dönmez. Her en alt grup kendi kayıtlarının tamamını taşır; sayfalama yoktur.

Düzeltmeler (overrides)

data/overrides/{platform}.json ingest verisinin üstüne okuma sırasında uygulanır ve her zaman son sözü söyler:

json
{
  "gift": {
    "7934": { "flags": { "community": true } },
    "5655": { "names": { "tr": "Gül" } }
  }
}

flags ve attributes birleştirilir; names dil başına adı değiştirir; diğer alanlar (value, icon) doğrudan değiştirilir.

Dosya düzeni

text
platform-events/
├─ API.md · README.md · INGEST.md
├─ index.php                  ← GET (okuma)
├─ ingest.php                 ← POST (Chrome eklentisi, launcher) · GET ?schema=1
├─ config.php                 ← base_url, ingest_token, diller, sınırlar
├─ schema/ingest.schema.json
├─ src/                       ← Http, Lang, Store, Catalog, Ingest
├─ data/                      ← elle yazılır (depoda)
│  ├─ taxonomy.json
│  ├─ platforms/{platform}.json
│  ├─ i18n/{lang}.json
│  └─ overrides/{platform}.json
├─ storage/                   ← ingest yazar (depoya girmez, sunucuda kalıcı)
│  ├─ catalog/{platform}/{item_type}.json
│  ├─ catalog/{platform}/{item_type}.i18n/{lang}.json
│  ├─ submissions/{YYYY-MM-DD}/{submission_id}.json.gz
│  ├─ history/{platform}.{item_type}.jsonl
│  └─ throttle/{sha1}           ← aynı içerik penceresi (30 dk)
├─ media/                     ← yalnızca bizim ürettiğimiz ikonlar
│  ├─ platforms/{color,flat}/{platform}.webp
│  └─ {platform}/events/{native}.webp
└─ tools/tikfinity_import.php ← elle çalıştırılan yedek

Yeni platform eklemek: data/platforms/{id}.json oluşturun, gerekiyorsa data/i18n/*.json dosyalarına event.{id}.{native} anahtarlarını ekleyin ve ikonları media/{id}/events/ altına koyun. Kod değişikliği gerekmez.

Sunucu

  • PHP 8.1+ (json, mbstring; gzip için zlib). Composer gerekmez.
  • storage/ web sunucusu kullanıcısı tarafından yazılabilir olmalı ve kod dağıtımında ezilmemelidir.
  • nginx önerisi (api.streamember.com kökü api/ klasörü):
nginx
location ~ ^/platform-events/(src|data/overrides|storage/(submissions|history)|tools)/ { deny all; }
location = /platform-events/config.php { deny all; }
location ~ ^/platform-events/storage/.*\.lock$ { deny all; }

Tikfinity yedeği

Eklenti kullanılamadığında TikTok listesi elle alınabilir:

text
php tools/tikfinity_import.php            # 14 dil
php tools/tikfinity_import.php tr en      # yalnızca bu diller
php tools/tikfinity_import.php --file=kayit.json tr

Araç ingest sözleşmesini kullanır (source.agent: tikfinity-import) ve yalnızca eksikleri tamamlar: yeni hediyeleri ve eksik çevirileri ekler, eklentinin topladığı değer, ikon ve bayrakları ezmez.

Bu sayfa platform-events/README.md dosyasından üretildi.Ham MarkdownManifest JSON