"Track a configurable number of benchmark creators' posts from the last 30 days with TikHub, compare periodic like-count deltas, sync video metric histories to Feishu, and send threshold reminders. Use for 达人跟踪, 对标达人监控, 预爆视频, 点赞增量, TikHub达人监控, or 飞书视频数据提醒."
Resources
13Install
npx skillscat add juneyaooo/creator-trend-tracker Install via the SkillsCat registry.
Creator Trend Tracker
Track recent creator posts as repeatable snapshots. A video is "pre-viral" when its like-count increase since the preceding successful run is strictly greater than the configured threshold. Do not classify from cumulative likes alone.
Entry Point
Use scripts/tracker.py for deterministic collection, comparison, state, Feishu synchronization, and reminder deduplication.
python3 scripts/tracker.py init --config <config.json> \
--account '<display_name>=<sec_user_id>' \
--threshold 5000 \
--spreadsheet-token '<token>' \
--alert-chat-id '<oc_xxx>'
# Base mode uses three history/output tables plus a user-managed account table.
python3 scripts/tracker.py init --config <config.json> \
--account '<display_name>=<sec_user_id>' --threshold 5000 \
--base-token '<base_token>' \
--base-table-id '<current_table_id>' \
--base-snapshot-table-id '<snapshot_table_id>' \
--base-alert-table-id '<alert_table_id>' \
--base-account-table-id '<account_table_id>' \
--alert-chat-id '<oc_xxx>'
python3 scripts/tracker.py validate --config <config.json>
python3 scripts/tracker.py run --config <config.json>Resolve scripts/tracker.py relative to this skill directory, not the user's current directory. Keep config and state in a user-selected durable working directory, never inside the skill folder.
Workflow
- If no config exists, collect the creator names/links or
sec_user_idvalues, one default like-delta threshold, a Feishu Sheets or Base destination, and a Feishu alert chat/user target. Accept 1-max_accountscreators (the example config defaults to 60). - Resolve creator links to stable platform IDs before initializing config. For Douyin, prefer
sec_user_id; use TikHub user search/profile endpoints when only a nickname, unique ID, or share URL is available. Confirm ambiguous matches rather than silently choosing an account. - Run
validate. Fix missing environment, authentication, account count, duplicate IDs, invalid thresholds, and inaccessible binaries before enabling a schedule. - Run once manually. On the first successful run there is no prior baseline, so deltas are
0and no pre-viral alerts are emitted. Verify the dedicated Feishu worksheets or Base tables and read the written data back. - Schedule the same
runcommand at the configured interval; use 12 hours unless the user requests another cadence. For Beijing-time operations, run at10:10and22:10 Asia/Shanghai. The script refuses an accidental early rerun unless--forceis explicitly supplied. - Report the sample window, creators checked, posts checked, actual comparison interval, reminders, and any partial collection failures. Never describe a first-run cumulative count as a periodic increase.
For Sheets, the script owns only the configured worksheet names (近30天视频, 点赞快照, 提醒记录 by default). For Base, use the user-facing tables 达人配置, 视频看板, 增长趋势, and 关注提醒. When base_account_table_id is configured, 达人配置 is the complete account source: users can add or remove rows, pause an account, change its TikHub ID, set its positive 点赞增量阈值, and optionally assign a unique seed 视频明细表ID without editing JSON. Only rows with 监控状态 = 监控中 are collected; the Base platform + TikHub ID pair is validated for uniqueness. JSON accounts remains a compatibility source only when Base account mode is not configured. Do not overwrite user-owned account fields when refreshing summaries. 视频看板 is current state keyed by 视频ID; new rows use serial batches and existing rows are updated by record ID; mark absent rows 本次未返回 instead of deleting old videos. Every successful fetch creates an immutable snapshot keyed by 运行ID + 平台 + 视频ID. Route each creator's snapshots to 视频明细-<达人>-001..999; create the next shard before a batch would exceed detail_table_capacity (default 2000). For rolling statistics, enumerate and merge all shards for that creator by event key; do not use only the newest table. 关注提醒 appends actual threshold events keyed by 提醒记录. Base +record-batch-create is called serially with at most base_batch_size rows (default and platform maximum 200), and the returned record count is checked when supplied. Show explicit Beijing-time fields in everyday views and keep original datetime fields hidden for machine sorting. Each current/detail row includes 3-, 7-, and 30-day like deltas when enough history exists.
TikHub
Read references/tikhub.md when resolving creators, changing platforms/endpoints, or diagnosing collection responses. Preserve raw TikHub pages under the configured state directory. Never put TIKHUB_API_KEY, signed media URLs, cookies, or access tokens in config, sheets, logs, or messages.
Feishu
Read references/feishu.md when setting up authentication, creating the destination workbook, changing worksheet output, or diagnosing sync/reminder failures. Use lark-shared, lark-sheets, and lark-im instructions for live operations. All external writes require the user's authorization in the active request; creating this skill alone does not authorize a live sync or message.
Scheduling
Read references/scheduling.md when creating or changing a recurring Codex automation. A schedule is not complete until one manual run has established a baseline and its Feishu write has been read back successfully.
Invariants
- Window membership is based on post publication time, not retrieval time.
- Compare against the immediately preceding successful observation of the same platform/post ID.
- Calculate 3/7/30-day deltas from the latest successful snapshot at or before each target cutoff. Leave the value empty when history is insufficient; never substitute
0for a missing rolling baseline. - Record actual comparison hours and label the metric
本周期点赞增量; do not imply a fixed 24-hour interval when another cadence is configured. - If the previous observation is absent or counters decrease, use delta
0and retain the new count as the next baseline. - Remind only when
delta > threshold, once per video per run. Use the generated deterministic idempotency key for message retries. - Do not advance local state if TikHub collection, Feishu synchronization, or reminder delivery fails. A later run can retry the same comparison.
- Treat a creator collection failure as a run failure. Never overwrite a complete current table with a silently partial account set.
- In Base mode, collect only provisioned creators whose
监控状态is监控中, and use that row's positive点赞增量阈值for classification and reminders. - Keep videos absent from the latest successful response as
本次未返回; exclude them from current, ranking, pre-viral, recent, and per-creator views without deleting history.