# Changelog of TikTok Transcript & Video Scraper (`dz_omar/tiktok-video-downloader`) Actor

- **URL**: https://apify.com/dz\_omar/tiktok-video-downloader/changelog.md
- **Full Actor documentation**: https://apify.com/dz\_omar/tiktok-video-downloader.md

### Changelog

#### 2026-09-11

**Transcripts**

- Added transcript extraction. TikTok auto-generates captions for videos containing speech, and the actor now returns that track as plain text, timestamped segments, SRT or WebVTT.
- Added `preferredLanguage`. When TikTok has more than one caption track for a video, you can pick which one you get. Unavailable languages fall back to the video's original track.
- Added `transcriptFormats` so you only pay the output size you need.
- Videos with no speech now report `transcript.available: false` with TikTok's own reason, instead of being treated as failures.
- Plain text merges the scrolling-caption overlap at word level. TikTok repeats the tail of each cue as the caption scrolls, so a plain join duplicated most of the speech. Segments, SRT and WebVTT stay faithful to the source file.

**More data per video**

- Output grew from 20 fields to 58.
- Added upload date, creator handle, profile URL, bio, follower and total-like counts, and video count.
- Added saves and reposts, which were previously missing from the engagement stats.
- Added hashtags, mentions, sound details, AI-generated content flags, and duet, stitch and comment settings.

**Reliability**

- TikTok's firewall challenge is now detected. It arrives as HTTP 200 with a small challenge page rather than an error status, so it used to surface as a confusing parse error and never rotated the proxy session. Blocked requests now retire the session and retry.
- Fixed the page payload lookup, which was missing its ID selector and always fell through to a slower fallback scan.
- Fixed caption track merging. TikTok labels the same track differently in its two caption lists, so tracks were being counted twice and translations were mislabelled as originals.

**Pricing**

- Added pay-per-event charging for run start, video scraped, transcript extracted and video downloaded. Failed videos are never charged, and transcripts are only charged when one is actually returned.

#### 2026-02-18

- Added state persistence for resumable runs
- Added configurable retry logic with exponential backoff
- Improved dataset views with statistics and error tracking
- Enhanced error categorization and handling
- Added run summary to Key-Value Store

#### 2025-10-10

- Initial release
- Video extraction with metadata
- Optional video download to Key-Value Store
- FPS selection (30/60)
- Proxy support
