Changes to the TikTok Video Scraper.
Dates record source changes, not Apify publication dates.
proxyConfiguration now defaults to an Apify residential proxy in Malaysia (MY). In Apify cloud tests, direct connections returned empty video lists and a residential proxy without a country failed; residential proxies in Malaysia and Singapore succeeded.
- On Apify, a missing
proxyConfiguration now falls back to the Malaysian residential proxy in code as well, and a run with no proxy stops immediately with PROXY_REQUIRED instead of returning empty video lists. Local runs may still connect directly.
- The browser user agent now reports the operating system the browser runs on instead of always claiming Windows.
- Each profile now uses one proxy session, so its page and video-list requests share an IP.
- Run summaries include safe diagnostics for failures to open a profile (stage, fixed error code, navigation status, redirect flag, TikTok status code) and for invalid video-list responses (content type, byte count, body kind, signing-parameter names).
- Explain that budget exhaustion or an abort can stop collection while
partial remains false, and how to check run status and requested profile coverage.
- Replace the Unreleased section with dated change entries.
- Collect public posts from the Videos section of 1–5 TikTok profiles, including videos and photo slideshows.
- Follow profile video-list pagination by scrolling the page.
resultsPerPage limits successfully returned posts per profile to 1–10,000 (default: 100), rather than setting the size of an individual network request.
- Return post IDs, URLs, captions, hashtags, publication dates, content type, author details, and public engagement counts. Missing optional counts remain
null; confirmed zero counts remain 0.
- Read the current follower total from profile data and include it as
authorMeta.fans on each post after verifying the author's identity.
- Support optional proxy configuration under Advanced settings, with direct connections by default.
- Validate profile ownership and pagination cursors, and remove duplicate post IDs across pages. When restarting with the same dataset, skip posts already saved.
- Skip invalid individual posts and continue to the next profile when a profile fails. Record errors and partial-result status in
RUN-SUMMARY, preserving valid results already collected.
- Fail runs with errors and no valid posts. Storage or charging failures stop the run.
- Support a configurable
video pay-per-event hook and stop collecting when its run budget is exhausted. Pricing is not enabled or set by the code.
- Use the page's own video-list requests instead of replaying signed requests from an earlier session.
- Prefer
statsV2 numeric fields, including the profile follower total, with a fallback to stats when a field is absent.
- Preserve existing API input fields and output field names for integrations. The Latest profile section includes pinned posts, so results are not guaranteed to be strictly chronological.
- Preserve caption line breaks and blank paragraphs from TikTok's
contents lines so EagleAim derives new Content titles from the first line instead of including the full caption and hashtags. Fall back to desc when the line data is unavailable or malformed.
- Rewrite the README in English with input examples, output fields, data accuracy notes, and partial-result handling, and add a changelog.
- Some public profiles expose follower totals but return invalid or empty video-list responses. These are reported as errors rather than treated as confirmed empty profiles.
- Profiles with no returned posts do not produce standalone follower rows. A follower total read successfully may be available in
RUN-SUMMARY instead.
- Local pagination checks do not establish Apify cloud availability, deep-pagination coverage, or long-term reliability.