TikTok Views Tracker avatar

TikTok Views Tracker

Pricing

from $1.00 / 1,000 results

Go to Apify Store
TikTok Views Tracker

TikTok Views Tracker

Track public TikTok video views over time with persistent history. Get previous views, views gained, growth %, views per hour, 1h/24h/7d growth metrics, and growth status. Supports bulk URLs, retries, deduplication, and structured errors.

Pricing

from $1.00 / 1,000 results

Rating

0.0

(0)

Developer

SearchShark Tools

SearchShark Tools

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

7 days ago

Last modified

Categories

Share

Track how fast public TikTok videos are gaining views โ€” not just what their view count is right now.

Paste direct TikTok video URLs and this Actor records timestamped view snapshots in persistent storage. On later runs it compares the new count with previous snapshots and returns views gained, growth percentage, views per hour, rolling 1h / 24h / 7d growth metrics, and a transparent growth status.

This Actor is intentionally focused on video growth monitoring. It is not a general-purpose profile, hashtag, comments, or media downloader.

Why use TikTok Video Views Tracker?

Many TikTok scrapers are designed around static extraction. This tracker is built for the next question:

"How fast is this video growing?"

Key features:

  • ๐Ÿ“ˆ Persistent cross-run history โ€” snapshots survive separate Actor runs
  • โšก Views gained and views/hour โ€” compare the current count with the previous snapshot
  • ๐Ÿ• Rolling 1h, 24h, and 7d metrics โ€” use historical snapshots when enough history exists
  • ๐Ÿšฆ Clear growth status โ€” first_snapshot, insufficient_history, stalled, growing, fast_growing, or counter_decrease
  • ๐Ÿ“ฆ Bulk tracking โ€” monitor up to 100 TikTok video URLs in one run
  • ๐Ÿ” Duplicate-safe input โ€” duplicate video IDs are processed once
  • ๐Ÿงฏ Per-video error isolation โ€” one failed URL does not stop the whole batch
  • ๐Ÿงพ Structured error codes โ€” invalid URLs, blocked/challenged pages, HTTP failures, missing data, and other failures are explicit
  • ๐Ÿ›ก๏ธ No fake zeroes โ€” unavailable view counts are returned as errors instead of being silently converted to 0
  • ๐Ÿ”“ No TikTok login, cookies, or TikTok API key required for public video pages
  • ๐Ÿ“ค Apify Dataset output โ€” export results using Apify's standard dataset formats or consume them through the API

Quick start

Use one or more direct public TikTok video URLs:

{
"videoUrls": [
"https://www.tiktok.com/@scout2015/video/6718335390845095173"
],
"concurrency": 3
}

First run

The first successful run stores the initial snapshot. There is no older snapshot to compare against yet, so historical growth fields are null and:

{
"historyStatus": "tracked",
"growthStatus": "first_snapshot",
"isFirstSnapshot": true,
"previousViews": null,
"viewsGained": null,
"growthPercent": null,
"viewsPerHour": null
}

Later runs

Run the Actor again with the same video URL. The Actor loads that video's persistent history and calculates growth:

{
"status": "ok",
"videoId": "6718335390845095173",
"username": "scout2015",
"views": 160700,
"historyStatus": "tracked",
"growthStatus": "fast_growing",
"isFirstSnapshot": false,
"previousViews": 159200,
"viewsGained": 1500,
"elapsedHours": 1,
"growthPercent": 0.9422,
"viewsPerHour": 1500
}

The values above are an example of the output shape. Your results depend on the actual public TikTok view counts and the time between snapshots.

Input

FieldTypeRequiredDescription
videoUrlsstring[]YesDirect public TikTok video URLs. Up to 100 URLs per run.
concurrencyintegerNoNumber of video pages fetched in parallel. Default: 3. Allowed range: 1โ€“10.

Supported URL shape:

https://www.tiktok.com/@username/video/1234567890123456789

Invalid URLs are returned as error rows instead of stopping the batch.

Output

Each input produces a flat success or error row in the default Dataset.

Current snapshot fields

FieldMeaning
statusok or error
inputUrlOriginal input URL
videoIdTikTok video ID
usernameTikTok username parsed from the URL
urlNormalized TikTok video URL
viewsCurrent public TikTok view count
fetchedAtTimestamp of the current snapshot
sourceCurrent data source identifier
historyStatusWhether persistent history was recorded successfully

Previous-snapshot growth fields

FieldMeaning
previousViewsView count from the previous stored snapshot
previousFetchedAtTimestamp of the previous stored snapshot
viewsGainedCurrent views minus previous views
elapsedHoursTime between the two snapshots
growthPercentPercentage growth from the previous view count
viewsPerHourView growth normalized to one hour
counterDecreaseDetectedtrue when TikTok's current counter is lower than a prior snapshot

Counter decreases are preserved instead of rewritten to zero. This makes corrections or counter changes visible in downstream analytics.

Growth status

growthStatus is a transparent classification based on the same metrics returned in the row.

StatusMeaning
first_snapshotThis is the first stored snapshot for the video
insufficient_historyA previous snapshot exists, but less than 15 minutes of history is available
counter_decreaseThe current public view count is lower than the previous snapshot
stalledEnough history exists, but the video gained no positive views
growingThe video is gaining views
fast_growingAt least 1,000 views/hour or at least 10% growth since the previous snapshot

This is deliberately not an opaque "viral score." The underlying counts, timing, percentage, and velocity are returned beside the status so you can audit the classification yourself.

Rolling 1h, 24h, and 7d growth

When enough history exists, the Actor can also return:

  • viewsGained1h, viewsPerHour1h, growthPercent1h, actualWindowHours1h
  • viewsGained24h, viewsPerHour24h, growthPercent24h, actualWindowHours24h
  • viewsGained7d, viewsPerHour7d, growthPercent7d, actualWindowHours7d

The Actor uses the stored snapshot closest to the requested historical window, within a bounded tolerance. If there is no appropriate snapshot yet, the related fields stay null.

That means null does not mean zero growth. It means there is not yet a suitable historical comparison point.

For useful rolling metrics, run the same tracked videos on a consistent schedule.

Persistent history

History is stored per TikTok video ID in a named Apify key-value store. Each tracked video keeps a bounded timestamped snapshot history instead of relying only on the current run's Dataset.

This provides two useful layers:

  1. Previous-run comparison for immediate viewsGained, growthPercent, and viewsPerHour
  2. Historical-window comparison for 1h, 24h, and 7d metrics

History recording is isolated from view retrieval. If the current TikTok view count is fetched successfully but persistent history storage fails, the success row is still returned with:

{
"status": "ok",
"historyStatus": "error",
"historyErrorMessage": "..."
}

Creators

Track a shortlist of recent posts and see which clips are still gaining views instead of comparing raw totals manually.

Agencies

Monitor client and competitor videos using the same repeatable schema. Export the Dataset to a spreadsheet or dashboard and rank videos by growth rather than lifetime views.

Brands

Track campaign videos after launch and watch view velocity over repeated runs.

Researchers

Build a clean time series of public TikTok view counts without maintaining your own snapshot database.

Automation and AI workflows

Use the Actor through Apify API integrations, schedules, or downstream automation. The flat Dataset schema is designed to be easy to filter by growthStatus, viewsGained, viewsPerHour, and rolling-window fields.

Reliability behavior

The Actor is designed to fail clearly rather than return misleading analytics.

Examples:

  • Invalid TikTok URL โ†’ structured error row
  • One video fails โ†’ remaining videos continue
  • TikTok challenge or blocked response โ†’ explicit error
  • Embedded video data missing โ†’ explicit error
  • View count unavailable โ†’ explicit error
  • Persistent history write fails โ†’ current successful view result is preserved and history is marked as failed

Network/data failures may be retried when appropriate. Non-retryable HTTP failures are returned directly.

Limitations

  • Tracks public TikTok video URLs only
  • Does not access private videos, account analytics, or data behind a TikTok login
  • Does not bypass CAPTCHA, login challenges, or TikTok access restrictions
  • Does not scrape profile feeds, comments, hashtags, sounds, or search results
  • Does not download TikTok video files
  • TikTok can change its public page structure, which may temporarily affect retrieval
  • Historical metrics require repeated runs; the first run cannot calculate past growth that was never recorded

These limits are intentional: the Actor stays focused on low-overhead, auditable view-growth monitoring.

FAQ

Why are my 1h / 24h / 7d fields null?

There is not yet a stored snapshot close enough to that historical window. Keep running the same video URLs on a consistent schedule.

Why is growthStatus insufficient_history?

A previous snapshot exists, but less than 15 minutes have elapsed. This avoids labeling extremely short intervals as meaningful growth trends.

Why is viewsGained negative?

TikTok's public counter can sometimes decrease or be corrected. The Actor preserves that value and sets counterDecreaseDetected: true instead of hiding it.

Does the Actor need my TikTok account?

No. It reads public video pages and does not require your TikTok login, cookies, or TikTok developer credentials.

Can one bad URL break the whole run?

No. Errors are isolated per video and returned as structured error rows.

How many URLs can I track at once?

Up to 100 TikTok video URLs per run.

Best use case

Choose this Actor when you already know which TikTok videos you want to monitor and care about how their views change over time.

If your main goal is broad content discovery, profile scraping, hashtag search, comments, or media downloads, a general TikTok scraper is a better fit. If your goal is persistent view-growth monitoring, this Actor keeps the workflow focused and the output easy to analyze.