Что он даёт агентствам
tiktok-live-agency оборачивает API tik.tools в типизированный клиент для агентств TikTok LIVE (Creator Networks, TCN, MCN). Пакет с тем же названием есть в npm и PyPI, и у обоих клиентов один и тот же список методов.
- Поиск стримеров для рекрутинга. Рейтинг стримеров по регионам, которые могут вступить в агентство, новички в пуле рекрутинга и стримеры, выбывающие из лиг.
- Статус эфира и алмазы состава. Проверяйте, кто из ваших стримеров сейчас в эфире, и смотрите алмазы по каждому стримеру и по всему составу на основе подарков, зафиксированных во время их трансляций.
- Webhook. Подписанные оповещения о начале и конце эфира на ваш сервер, с верификатором для Node, Edge, Workers и Python.
- Свои панели. Обычный JSON с названиями полей самого API, поэтому данные сразу ложатся в страницу Next.js, ноутбук или выгрузку в таблицу.
Установка
JavaScript и TypeScript
npm install tiktok-live-agencyPython
pip install tiktok-live-agency
# optional, for the real-time big gifts stream
pip install "tiktok-live-agency[realtime]"Укажите ключ в переменной окружения TIKTOOLS_API_KEY на сервере. Никогда не отдавайте его в браузер: клиент на TypeScript отказывается запускаться на странице в браузере. Ключи - на странице тарифов.
Примеры
Кто из моих стримеров в эфире (TypeScript)
import { AgencyClient } from 'tiktok-live-agency'
const tt = new AgencyClient() // reads TIKTOOLS_API_KEY
const { live, offline, unknown } = await tt.whoIsLive(['creator_one', 'creator_two', 'creator_three'])
console.log(live.map((r) => r.unique_id))Проверка webhook о начале эфира в Route Handler Next.js (TypeScript)
// app/api/webhooks/tiktools/route.ts
import { verifyWebhook } from 'tiktok-live-agency/webhooks'
export async function POST(req: Request) {
const raw = await req.text() // raw body, verify before parsing
try {
const event = await verifyWebhook(raw, req.headers, process.env.TIKTOOLS_WEBHOOK_SECRET!)
console.log(event.event, event.creator.unique_id)
} catch {
return new Response('bad signature', { status: 400 })
}
return new Response('ok')
}Стримеры для рекрутинга и алмазы состава (Python)
from tiktok_live_agency import AgencyClient, is_free_to_join
tt = AgencyClient() # reads TIKTOOLS_API_KEY
rows = list(tt.iter_creators_to_recruit("UK", max_pages=5))
free = [r for r in rows if is_free_to_join(r)]
roster = tt.list_rosters()["lists"][0]
week = tt.roster_diamonds(roster["id"], days=7)
print(len(free), week["totalDiamonds"])Вызов, который не входит в ваш тариф, выбрасывает PlanRequiredError с нужным тарифом и ссылкой на апгрейд, поэтому панель может показать карточку апгрейда вместо падения. Payload и подписи webhook описаны в справочнике API.
Группы методов
findCreatorsToRecruititerCreatorsToRecruitisFreeToJoinnewCreatorsleagueMembersleagueDropoutsdroppedOutCreatorsleaderboardglobalLeaderboardclubRankingsgamingRankingspopularLiveliveCountstopGiftersgetCreatorgetCreatorProfilefindRenamedCreatorresolveUserIdsgetCreatorSummarygetDailyDiamondsgetCreatorGiftsgetCreatorGiftersgetCreatorBattlesgetCreatorChatcreateRosterlistRostersgetRosteraddToRosterremoveFromRosterrosterDiamondsisLivewhoIsLivewatchLivestreamBigGiftsgetEligibilitygetEligibilityAccountscreateWebhooklistWebhooksupdateWebhooktestWebhookdeleteWebhookverifyWebhookgetAccountlistRegionsВ Python те же названия в snake_case, например who_is_live и find_creators_to_recruit. Каждый метод с его тарифом указан в README каждого пакета.
Для AI-ассистентов
Машиночитаемое описание всех методов лежит по адресу tik.tools/sdk/agency/llms.txt. Укажите его Cursor, Claude, ChatGPT или любому AI-конструктору и назовите пакет tiktok-live-agency - тогда сгенерированный код будет работать с реальными данными из API.
Исходный код и пакеты
- TypeScript: github.com/tiktool/tiktok-live-agency и npm
- Python: github.com/tiktool/tiktok-live-agency-python и PyPI
- Лицензия: MIT
Неофициальный проект, не связан с TikTok или ByteDance. tiktok-live-agency - независимый SDK для API tik.tools. TikTok - товарный знак соответствующего владельца, здесь он упоминается только для описания совместимости.