Release history

Changelog

Every release, in one place

TikTokScope is a self-hosted TikTok & Douyin intelligence platform: a documented JSON API built directly against public endpoints, plus a dependency-free dashboard. This page follows the Keep a Changelog format and Semantic Versioning.

Added Changed Fixed Removed
Current deployed API: checking…
v3.0.0 Latest 2026-10-13
Signed search, creator videos & benchmark

Keyword search finally works through a vendored signer, alongside first-party creator feeds, best-time analysis, benchmarking and trending searches.

4fbe803 · 5a19565
4f4e3cf · cb24724
Added
  • Signed keyword search: vendored Node signer vendor/signer/sign.js, app/scraper/signer.py, app/scraper/search.py; GET /api/search and GET /api/search/users now answer with X-Bogus + X-Gnarly.
  • app/insights.py — benchmark rows, hashtag velocity, comment intelligence and duration curves.
  • GET /api/profile/{username}/videos — a creator's most recent public videos.
  • GET /api/profile/{username}/best-time — engagement by weekday/hour and video duration.
  • GET /api/benchmark?users=a,b,c&videos=4 — compare up to four creators.
  • GET /api/tiktok/trending-searches?region=US — TikTok trending search terms.
  • GET /api/video/transcript — native description plus subtitle translation.
  • Sound metadata on GET /api/sound/{music_id}: title, author, duration and audio URL.
  • GET /api/douyin/profile/{sec_uid}; /api/discover is now typed (sounds vs hashtags).
  • Netlify proxies /api/* to the Coolify backend for host parity; the Dockerfile installs Node.js for the signer.
Changed
  • Comment summaries moved to insights.comment_intelligence; languages are read from the summary.
  • GET /api/hashtag/{name} falls back to challenge_light when the signed challenge call fails.
  • Performance: creator_recent_videos fetches in parallel; benchmark defaults lightened to 4 creators × 4 videos.
  • Docs updated for search, best-time, benchmark, trending searches and transcript.
Fixed
  • /api/video/reflow stats/duration bug fixed (item_info.item_stats); repostCount added.
  • Benchmark no longer serializes creator fetches or over-fetches upstream.
Removed
  • The legacy tracking/alerts surface was retired: /api/track, /api/track/history, /api/track/snapshot, /api/alerts, /api/alerts/evaluate, the tracking dashboard view, and the hourly snapshot/alert scheduler work.
  • Superseded by the first-party creator feeds, best-time and benchmark analytics in this release.
v2.1.0 2026-10-13
Translation, live, media & reports

Douyin hot search in English, live-room streams, direct media/audio, exportable reports, embeddable cards and metric alerts.

5358c13 · 1221fe2
a392f24
Added
  • app/translate.py; GET /api/douyin/trending?lang=en auto-translates hot-search words to English.
  • GET /api/douyin/topic-videos?word=&offset=&count= and hot-search sources source=app|web|ies.
  • GET /api/video/media — direct video qualities plus the sound audio track via /api/video/reflow.
  • app/alerts.py; GET/POST/DELETE /api/alerts and POST /api/alerts/evaluate with ntfy.sh / webhook delivery.
  • app/reports.py; GET /api/report/profile/{username} and GET /api/report/video (CSV + PDF).
  • GET /api/profile/{username}/card and the ready-made /embed?user= widget.
  • Live stream URLs (FLV / HLS / RTMP) through GET /api/live/room/{room_id}.
Changed
  • README v2.1 and docs for media, reports, topics, alerts and embed.
v2.0.0 2026-10-13
shadcn UI, analytics & tracking

The dashboard moves to a shadcn-style design system with light/dark themes, dependency-free charts, derived engagement metrics and tracked snapshot history.

c34f2ec · d33a1d9
a2be175
Added
  • static/shadcn.css design system; dashboard rebuilt with light/dark themes and dependency-free SVG charts (static/charts.js).
  • app/analytics.py — profile/video metrics, comment sentiment and growth series.
  • app/tracking.py and app/scheduler.py — tracked entities, metric snapshots and the hourly background scheduler.
  • GET /api/profile/{username}/analytics.
  • GET /api/live/{username} and GET /api/live/room/{room_id} — live status.
  • Tracking routes: GET/POST/DELETE /api/track, GET /api/track/history, POST /api/track/snapshot.
  • static/docs.html human API reference at /docs; Swagger at /api/docs.
Changed
  • ?theme=light|dark URL override plus a saved ts_theme localStorage preference.
  • README v2 and third-pass verification notes; Netlify deploy script scripts/deploy-netlify.sh.
v1.1.0 2026-10-13
Discovery endpoints & modern UI

Hashtag, sound, discover and reflow endpoints arrive together with a redesigned dashboard.

00a5fa2 · d79cafd
Added
  • GET /api/hashtag/{name}, GET /api/sound/{music_id}, GET /api/discover and GET /api/video/reflow.
  • Modern dashboard redesign with scaled trending bars, scroll containers and a profile table.
  • netlify.toml and scripts/netlify-build.sh for static hosting.
Changed
  • Shorter brand and a polished trending layout.
v1.0.0 2026-10-13
The direct-access toolkit

First release: a documented FastAPI service that talks to TikTok and Douyin directly — no RapidAPI, no scraping vendor, no API key.

f73e5d0 · 56061b8
4040900
Added
  • FastAPI app and OpenAPI surface (app/main.py): human docs at /docs, Swagger at /api/docs, schema at /api/openapi.json.
  • Direct scrapers: app/scraper/http.py (curl_cffi session, Applebot/Chrome UAs, ttwid warm-up, pacing), tiktok.py, xbogus.py and douyin.py.
  • Creator: GET /api/profile/{username}, GET /api/batch/profiles, GET /api/followers/{username}, GET /api/followers/{username}/export.
  • Content: GET /api/video, GET /api/video/subtitles, GET /api/video/comments, GET /api/video/comments/export, GET /api/comment/replies, GET /api/feed.
  • Trends: GET /api/douyin/trending and GET /api/douyin/challenge/{ch_id}.
  • System: GET /api/health, GET /api/history, GET /api/suggest, GET /api/oembed, GET /api/download.
  • SQLite cache and history (app/db.py) in a single rate-limited container.
  • Dockerfile and live Coolify deployment at tiktokscope.120319.xyz.
Fixed
  • Docker healthcheck now uses Python instead of curl, which is not present in the slim image.