SurfSense/surfsense_backend/tests/unit/platforms/tiktok
CREDO23 7723b5b8b6 feat(tiktok): add tiktok.comments verb for public comment scraping
Comments load over a signed /api/comment/list XHR that TikTok serves to
anonymous sessions once the comments panel is opened (unlike profile-video and
general-search feeds), so this is a reliable verb. Given video URLs it returns
CommentItems (text, author, likes, reply counts; replies carry repliesToId),
deduped per video, capped, and degraded to an ErrorItem for empty/withheld
videos or a bad_url ErrorItem for non-video inputs.

Generalizes the browser capture over a pluggable interaction step so the
comments flow (open panel, scroll the panel to paginate) reuses the same
warm+capture scaffolding as listing/user-search. Billed per comment on a new
TIKTOK_COMMENT meter (TIKTOK_MICROS_PER_COMMENT, matching the per-comment
market), surfaced on the chat subagent alongside tiktok.scrape/user_search.
2026-07-09 18:35:26 +02:00
..
__init__.py feat(tiktok): URL target resolver 2026-07-08 15:40:07 +02:00
test_comments.py feat(tiktok): add tiktok.comments verb for public comment scraping 2026-07-09 18:35:26 +02:00
test_fetch_resilience.py feat(tiktok): rotate-on-block fetch session 2026-07-08 15:51:17 +02:00
test_hydration.py feat(tiktok): rehydration blob extractor 2026-07-08 15:40:21 +02:00
test_input.py feat(tiktok): scrape input schema 2026-07-08 15:51:17 +02:00
test_item_list.py feat(tiktok): browser-driven signed listings 2026-07-08 16:37:36 +02:00
test_orchestrator.py feat(tiktok): return profile metadata even when video listing is gated 2026-07-09 17:48:19 +02:00
test_parsers.py feat(tiktok): video normalizer and parser tests 2026-07-08 15:40:50 +02:00
test_scopes.py feat(tiktok): blob-first orchestrator + video flow 2026-07-08 16:07:07 +02:00
test_target_resolver.py feat(tiktok): URL target resolver 2026-07-08 15:40:07 +02:00
test_user_search.py feat(tiktok): add tiktok.user_search verb for account discovery 2026-07-09 18:00:40 +02:00