# Changelog of YouTube Transcript with Word-Level Timestamps (`zerrouki-samir/youtube-wordlevel-transcript-1`) Actor

- **URL**: https://apify.com/zerrouki-samir/youtube-wordlevel-transcript-1/changelog.md
- **Full Actor documentation**: https://apify.com/zerrouki-samir/youtube-wordlevel-transcript-1.md

## Changelog

### 2.1

#### Added

- **Every row now returns a `videoUrl`** - a direct download link to the video at up to 720p,
  valid for 24 hours. There is no extra charge: transcription already fetches the source, and
  retrieval is metered the same whether we take the audio track or the video. Set
  `includeVideo: false` to skip it for a slightly faster run.

### 2.0

A rebuild. The audio pipeline, billing, and output contract all changed.

#### Fixed

- **Billing now works.** The Actor is priced pay-per-event but the pinned SDK (`apify 1.7`) had
  no charging API at all, so no run was ever billed. Upgraded to Apify SDK 4 and added explicit
  `video-transcribed` and `audio-minute` charges.
- **Results are written to the dataset again.** Previously results went only to the key-value
  store, so the API examples on the Actor page — all of which read the default dataset —
  returned nothing. Rows are now flat, which is the actual fix for the CSV column limit that
  caused the dataset push to be removed.
- **`duration` is no longer always `0`.** It was hardcoded to zero with a comment saying it
  would be filled in later, which never happened. That also silently pinned every run to the
  cheapest pricing tier.
- **URL handling is consistent.** The input schema accepted URLs without a scheme that the
  validator then rejected. URLs are now normalised rather than merely validated, and Shorts,
  `m.`, `music.`, `/live/` and `/embed/` forms are accepted.
- Removed the hardcoded default video URL, so an empty input no longer transcribes an
  unrelated video.

#### Changed

- **Audio retrieval was rebuilt.** It is far faster and substantially more reliable than the
  previous approach, which was the main source of failed runs.
- **Multiple videos per run.** `videoUrls` accepts an array; the previous `youtube_url` field
  still works.
- Recognition models ship with the Actor, removing a cold-start download.
- **Word `probability` is now emitted.** It was documented but never produced.
- One video failing no longer aborts the run; failures are recorded as dataset rows with an
  `error` field and are not charged.
- Temporary audio is deleted after every video, success or failure.

#### Removed

- The `pricing_info` block that was injected into every result. It hardcoded "$0.50" and a
  "first 5 runs are free" claim, neither of which matched what the platform charged.
- Documentation claims that the code did not support, including the stated success rate,
  customer counts, support commitments, and a 30-minute duration warning that was never
  implemented.

### 1.0.0 — 2025-10-16

Initial release.
