TikTok Product Research & Video Growth Radar
Pricing
$20.00 / 1,000 product research reports
TikTok Product Research & Video Growth Radar
Research TikTok product videos with source links, creator breadth and saved history. First run builds a baseline; repeat after 6+ hours to measure growth. JSON and HTML reports for people and agents. $0.02 per report; optional Clockworks collection costs extra.
Pricing
$20.00 / 1,000 product research reports
Rating
0.0
(0)
Developer
HirePulse
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
15 hours ago
Last modified
Categories
Share
Rank product topics for further research using growth measured on the same video IDs at different collection times. Show supporting videos, added views, creator-account breadth, concentration, repeat growth and reasons to abstain. Large lifetime counts and newly discovered old videos do not establish growth.
Direct anonymous collection failed in two Apify cloud checks. The analysis accepts existing exports or an explicit, capped Clockworks opt-in. Importing a file never starts an upstream Actor, subscription, proxy or schedule.
First run in Apify
- Start with one product keyword; the form uses
mini projectoras an example. - For live data, keep Live videos via Clockworks, review the total source cap, and check I allow the separately capped Clockworks collection charge. The checkbox is off until you consent. Click Start after reviewing the inputs.
- One delivered report costs $0.02. With the default $0.04 total collection cap, one product permits at most $0.06 in report plus source events. Ten collected videos at the checked $0.003 rate usually make that $0.05.
- Open REPORT for the readable report and OUTPUT for source evidence. First
collection creates a baseline. Repeat the same
state_idafter 6+ hours.
For an existing export, select Existing video export (upstream_source=public)
and supply video_snapshot with its original timestamp. No collection provider
is started. Direct anonymous collection is not supported in the Apify cloud
product-video workflow. Missing consent/export produces configuration_required
with setup steps before any source request or report billing event.
API callers may omit upstream_source when supplying an export. For live data,
allow_paid_upstream=true is required; an omitted source then selects Clockworks.
Explicit public never silently falls back to a paid source. Local direct-public
research and the separate legacy mode remain available.
For people and agents
Every observation has a research-priority score, classification, next action,
per-video comparison windows, source URLs and blockers. agent_decision includes
rationale, missing evidence and next checks for relevance, sourcing, landed cost
and fulfilment. Attention does not establish sales, conversion or margin.
Creators are distinct public accounts; their business independence is unknown.
Pricing: $0.02 per delivered product research report
The Actor charges one apify-default-dataset-item event at $0.02 for each
product report written to the default dataset. No startup fee or monthly
subscription is configured. A baseline or watch report is a completed research
report, even when it does not recommend further investigation. A source failure
with no report produces no report charge. Failed or blocked upstream collection
can still incur the upstream provider's separately capped charges.
Clockworks collection is billed separately to the invoking account, within
upstream_max_charge_usd. At the checked source price of $0.003 per video, one
product report using ten videos is approximately $0.05 ($0.02 analysis + $0.03
collection). Fewer collected videos cost less. Check the current provider pricing
in Apify; the cap remains in force if its pricing changes. Existing export imports
do not start Clockworks. Platform account charges outside these events may apply
according to your Apify plan.
The parent run's spending limit is checked against the number of requested reports
before any upstream Actor starts. Every charged report is a delivered dataset item.
An unchanged reimport with the same state ID and acknowledged source timestamp is
not delivered again. deliver_all_reports=true is the default and includes new
baseline, watch and candidate observations; alert identity and deduplication remain
separate. Set deliver_all_reports=false to select the legacy alert/baseline feed;
only records it actually delivers incur a report event. Unchanged alerts do not
become new alerts merely because another research report is delivered.
Input and collection
analysis_mode=product_videos is the default. Supply explicit product keywords.
Public video_urls can seed collection where pages expose their data. Without
URLs the public challenge/video paths are attempted; empty or blocked sources
fail explicitly. Direct-public collection is blocked by the cloud setup guard before collection.
This mode does not query Shop, ads, global sounds or unrelated Creative Center
discovery. analysis_mode=multi_signal retains the old engine in a separate state
namespace; Run-PublicRadar.ps1 explicitly selects the legacy hashtag path.
An existing export uses this envelope:
{"observed_at": "2026-10-23T12:00:00Z","source": "source name and collection run","records": []}
Records need exact view counters, matching product descriptions and canonical
public TikTok video URLs. The parser accepts native view_count, description,
creator, url or export fields playCount, text, authorMeta.name /
authorMeta: {name: ...}, webVideoUrl. Likes, comments, shares, publication time
and sponsorship flags are optional. These names match the
documented Clockworks output, but
the same formats are used by the optional collection integration below.
Optional capped cloud collection
{"analysis_mode": "product_videos","keywords": ["mini projector"],"state_id": "my-product-research","upstream_source": "clockworks","allow_paid_upstream": true,"upstream_max_charge_usd": 0.04,"max_items": 10,"max_requests": 60,"max_runtime_seconds": 120}
The first collection uses clockworks/tiktok-hashtag-scraper (build 0.0.474).
With the same watchlist ID, later runs use clockworks/tiktok-video-scraper
(build 0.0.477) to refresh the already observed video URLs. video_urls can also
seed an explicit cohort. Existing video cohorts are followed rather than silently
replaced with unrelated search results. This is cohort research, not full-market
product discovery. Start another watchlist to research a new sample.
The upstream PPE spending cap is split across all keywords, with at most one
upstream run per keyword. Each must have at least a $0.009 allocation; reduce
the keyword count when the budget is too small. The cap defaults to $0.04 total
and requires a separate allow_paid_upstream=true opt-in; it is not a monthly
subscription. Parent Actor platform usage is separate. Current pricing and
limited permissions are checked before a child run is started. Video downloads,
covers, slideshows, related-video expansion and subtitles/transcripts are disabled.
Child runs have a charge cap and timeout; interrupted collection requests abort.
The collection time is the end of the source run's recorded collection window, not the later analysis time. The complete window and upstream run IDs are exposed in OUTPUT. Fine timing within that window is unknown. All measured growth is still subject to the six-hour minimum comparison window. A successful first run establishes a baseline and cannot create a growth alert yet.
observed_at means when counters were collected, not when a file was downloaded
or imported. Future, mixed-time, conflicting reimports and out-of-order observations
are rejected. A repeated export cannot become a new measurement. Imports older
than 24 hours can establish history but cannot issue an alert now.
./Run-VideoRadar.ps1 -SnapshotFile C:/data/observation.json -Keywords 'mini projector' -StateId projector-research
Reuse the state ID and keywords with later exports. At most 100 records can be
imported per run; max_items caps each product sample. The import path makes no
outbound source requests. All observations, including non-alerts, are saved to
product-video-data/history/. OUTPUT.json contains every ranked observation;
the dataset contains delivered research reports by default. REPORT.html
provides a Hebrew decision report with the same measurements and blockers. Cloud
runs expose the HTML report in their output as well as the machine-readable JSON.
Scoring policy
Comparisons require 6-72 hours between measurements of the same video and creator. Counter decreases are excluded as corrections. New IDs establish baselines only. The daily rate is normalized from the actual window, not a forecast.
| Component | Points | Calculation |
|---|---|---|
| Momentum | 40 | Daily percentage lift saturates at 50%; daily added views saturate at 10,000 |
| Creator breadth | 25 | Accounts adding at least 1,000 views/day and 20%/day, saturating at five |
| Engagement | 15 | Mean interaction-delta/view-delta ratio on videos adding at least 1,000 views, saturating at 5%; missing counters stay unknown |
| Persistence | 20 | At least 500 added views and 20%/day in each of two non-overlapping intervals, saturating at three accounts |
Alerts also need three repeatedly observed videos, growth from three distinct
accounts, 3,000 actual added views, at least 20% normalized daily growth, no creator
responsible for more than 70% of measured daily growth, current source data and
the configured min_score (default 30). These are explicit heuristics awaiting
validation, not calibrated probabilities. First observations are baselines.
Missing comparisons or concentrated growth cause abstention. Delivery must
succeed before a fingerprint is acknowledged.
Measure whether ranking helps
python -m src.evaluation --history product-video-data/history --output product-video-data/evaluation.json --top-k 3
Rankings are frozen at decision time, then labeled from the same videos around 24 hours later (18-30 hours). Labels require at least 80% coverage and three matched video IDs. The target is continued attention: 3,000 added views, 20% daily growth and three growing accounts. Missing future data stays pending. Replays are deduplicated; an unobserved choice is not replaced with a lower-ranked measured one. Radar top-k considers actual research alerts; no-alert batches abstain. The popularity comparator selects the same number of products by lifetime views. The precision difference uses fully observed paired batches only and reports the number of pending comparison batches. Alert precision is also measured separately. This does not test profit, causality or market-wide discovery. Overlapping windows are not independent trials. No live forward performance claim is made.
python scripts/video_demo.py produces a clearly labeled synthetic example of an
emerging product, an established high-view product and a single-creator spike.
Its outputs illustrate and test decisions; they are not market evidence.