- 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.
A rebuild. The audio pipeline, billing, and output contract all changed.
- 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.
- 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.
- 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.
Initial release.