TikTok Public For You Video Scraper
Pricing
from $2.99 / 1,000 for you videos
TikTok Public For You Video Scraper
Capture a public snapshot of the TikTok For You page, visible video cards, page metadata, and bounded embedded data through direct HTTP and a public reader fallback.
Pricing
from $2.99 / 1,000 for you videos
Rating
0.0
(0)
Developer
w3crawler
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
TikTok Public For You Page Snapshot
Capture a bounded public snapshot of https://www.tiktok.com/foryou. The Actor tries several direct HTTP request profiles and then a public r.jina.ai reader representation, parses embedded JSON/JSON-LD and visible HTML/reader content, and stores page metadata, structured entities, and visible TikTok video-card records.
This is not a logged-in personalized For You feed API. The result depends on the public representation returned to the Actor at run time; no account cookies, private recommendations, or hidden feed data are used.
Example input
{"limit": 5}
Example output
When visible video cards are present, a record may look like this:
{"recordType": "tiktok_video","status": "success","dataAvailable": true,"source": "tiktok.com","provenance": "public_foryou_page","sourceTransport": "direct","extractionMethod": "visible_video_card_parser","sourceUrl": "https://www.tiktok.com/foryou","videoIndex": 1,"videoTitle": "Public video title","creatorName": "Creator","videoUrl": "https://www.tiktok.com/@creator/video/1234567890","metricTokens": ["12K", "340"],"scrapedAt": "2026-08-18T00:00:00.000Z"}
If no video cards are recognizable but the public page contains structured entities, the dataset receives structured_entity records. If the page is blocked, empty, or unusable, the dataset receives a tiktok-for-you-access-diagnostic record and OUTPUT.status is failed.
Input
limit(integer, 1–20): Maximum number of page/entity/video records to store. Default:10.
The target URL is intentionally fixed. There is no input for profile crawling, personalized cookies, login, comments, hashtags, or arbitrary URL crawling because this local implementation does not perform those operations.
Output and storage
Page snapshots and visible video records are written to the default dataset. The Output tab links to the dataset and to OUTPUT in the default key-value store.
OUTPUT contains the fixed target URL, transport selected (direct or reader), requested limit, stored record count, final status, and an error when the public page could not be used.
Limitations and cost
The Actor makes bounded HTTP attempts using three direct request profiles and one public reader fallback. It does not run a browser, log in, use a personalized account, scroll indefinitely, or crawl every linked video. HTML and embedded-state markup can change, so fields are optional and visible-card parsing may return no TikTok video records.
Apify compute and HTTP traffic are the main costs. Keep limit small while testing and retry responsibly if the target returns a challenge or access diagnostic.
Code structure
src/main.jsis the thin local entrypoint.src/actor.jsowns Apify lifecycle, failure handling, and shutdown.src/runner.jscontains direct/reader requests, public-page parsing, diagnostics, and output persistence.
FAQ and disclaimer
Is this a personalized For You feed?
No. It is a public page snapshot without user cookies or private recommendation data.
Why did I receive an access diagnostic?
TikTok or the reader fallback may have returned a challenge, blocked page, short response, or markup without usable public records. Review the diagnostic and OUTPUT record before retrying.
Does it bypass TikTok access controls?
No. It does not defeat authentication, CAPTCHAs, rate limits, or other access controls.
Use public data for a legitimate purpose, follow TikTok and r.jina.ai terms and robots guidance, and review privacy and data-protection obligations. For support, use the Actor Issues tab.
