JuneYaooo

creator-trend-tracker

"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 飞书视频数据提醒."

JuneYaooo 0 Updated 1mo ago

Resources

13
GitHub

Install

npx skillscat add juneyaooo/creator-trend-tracker

Install via the SkillsCat registry.

SKILL.md

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

  1. If no config exists, collect the creator names/links or sec_user_id values, one default like-delta threshold, a Feishu Sheets or Base destination, and a Feishu alert chat/user target. Accept 1-max_accounts creators (the example config defaults to 60).
  2. 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.
  3. Run validate. Fix missing environment, authentication, account count, duplicate IDs, invalid thresholds, and inaccessible binaries before enabling a schedule.
  4. Run once manually. On the first successful run there is no prior baseline, so deltas are 0 and no pre-viral alerts are emitted. Verify the dedicated Feishu worksheets or Base tables and read the written data back.
  5. Schedule the same run command at the configured interval; use 12 hours unless the user requests another cadence. For Beijing-time operations, run at 10:10 and 22:10 Asia/Shanghai. The script refuses an accidental early rerun unless --force is explicitly supplied.
  6. 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 0 for 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 0 and 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.