TikTok Video Scraper - Captions, Views & Engagement avatar

TikTok Video Scraper - Captions, Views & Engagement

Pricing

from $1.60 / 1,000 video results

Go to Apify Store
TikTok Video Scraper - Captions, Views & Engagement

TikTok Video Scraper - Captions, Views & Engagement

Export known public TikTok video URLs to captions, author data, publication dates and engagement counts. Skip known IDs and inspect failed lookups.

Pricing

from $1.60 / 1,000 video results

Rating

0.0

(0)

Developer

Ben

Ben

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Share

TikTok Video Scraper: captions, views and engagement

Export metadata from known public TikTok video URLs. Get the source caption, author identity, publication date, views, likes, comment/share counts and duration as JSON, CSV or Excel. No TikTok login, API key or proxy is required.

Try one video: open the public engagement example. Free-plan result events cost $2 per 1,000 videos, plus a small Actor-start event. Repeated and excluded IDs do not produce result charges.

Start with a known video URL

{"videoUrls": ["https://www.tiktok.com/@aigeneratedbulgaria/video/7580840854445706518"], "maxVideos": 1}

Run the Actor, open Dataset → Overview, then export JSON for arrays or CSV/Excel for a table. The Output tab also links to the run summary and failed-lookups report.

This tool reads individual public video pages. It does not search TikTok, discover hashtags, paginate a creator's timeline, collect comment text, list followers or download video files. Use TikTok Profile Scraper for account biographies and follower totals.

Real video output

Selected fields from a live September 10, 2026 lookup. Public counts can change:

{
"video_id": "7580840854445706518",
"author_username": "aigeneratedbulgaria",
"published_at": "2025-12-06T20:14:19+00:00",
"views": 883700,
"likes": 36200,
"comments": 276,
"shares": 17700,
"saves": 4685,
"duration_seconds": 8
}
FieldsWhat you receive
video_id, urlStable ID and canonical input URL
author_username, author_id, author_name, author_verifiedPublic author identity; both the video ID and username must match the request
caption, hashtagsSource caption and tagged hashtag names; hashtag discovery is not performed
published_at, scraped_atPublication and observation timestamps with UTC offsets
views, likes, comments, shares, savesPublic aggregate counts; comments is a count, not comment text
duration_seconds, width, height, cover_urlAvailable video metadata; cover-image URLs may expire
music_titleSource soundtrack title when exposed

Optional fields may be null. Missing required engagement counts or mismatched identity produce an error, not invented metrics. Photo/slideshow posts are outside this Actor's video contract.

Batch and repeat-run controls

InputDefaultBehavior
videoUrlsRequired1–100 canonical HTTPS /@username/video/ID URLs
maxVideos3Unique, non-excluded URLs attempted, from 1 to 100
excludeVideoIds[]Up to 10,000 previously exported numeric IDs; skipped before requesting the source
minViews0Export only videos meeting this current public view count

Duplicate IDs are collapsed before the limit is applied. Shortened share links, profile URLs and photo URLs are rejected. Keep the actual creator handle in the URL: TikTok can return a video despite an unrelated handle in the path, and this Actor deliberately rejects that mismatch.

To monitor the same video's changing counts, repeat its URL without excluding it and compare observations by video_id and scraped_at. To collect each video only once, store the returned IDs and pass them in excludeVideoIds. No hidden cross-run state is maintained.

Costs and source failures

On the Free plan, an exported video costs $0.002. The start event is $0.00005 per allocated GB, with a minimum of one event. One exported video at 512 MB costs $0.00205 in Actor events. Existing Apify plan discounts are shown in the Pricing tab. Set a maximum run charge before starting a batch.

Filtered, excluded, duplicate and failed videos incur no result event. A run may still incur the start event even when it returns zero videos. Large URL lists require enough runtime; source availability can change and the limit is not a guaranteed result count.

The default dataset contains valid videos only. ERRORS records the URL, ID and reason for a failed lookup. SUMMARY reports attempts, exports, filtered/excluded IDs, duplicate inputs and the stop reason. Partial success retains valid output with explicit errors; if every attempted lookup fails, the run fails. A zero-result run caused entirely by exclusions or a view filter is a valid outcome.

Login pages, redirects, deleted videos and unavailable public metadata remain source failures. The Actor does not solve access challenges or accept private-session cookies.

Export an existing dataset with Python

Install apify-client and set APIFY_TOKEN and APIFY_DATASET_ID from a completed run. This exports that dataset without starting a new run:

import json
import os
from apify_client import ApifyClient
client = ApifyClient(os.environ["APIFY_TOKEN"])
rows = list(client.dataset(os.environ["APIFY_DATASET_ID"]).iterate_items())
with open("tiktok-videos.json", "w", encoding="utf-8") as output:
json.dump(rows, output, ensure_ascii=False, indent=2)

Saved Tasks can be scheduled in Apify or called from API, Make or n8n workflows. Inspect the run's ERRORS record alongside its dataset before retrying failed inputs.

Questions before running

Does this discover popular videos? No. Supply known URLs. View counts are current observations and do not predict future popularity.

Can I retrieve comments or download media? No. This Actor exports metadata and engagement totals only.

Does a failed lookup mean the video was deleted? No. Public access may be unavailable or the URL may name the wrong creator. Inspect the recorded reason rather than inferring deletion.

Can it process a private video with a login? No. Authentication is not a supported input.