Video & Audio Toolkit: Probe, Cut, Convert, Extract Audio avatar

Video & Audio Toolkit: Probe, Cut, Convert, Extract Audio

Pricing

Pay per usage

Go to Apify Store
Video & Audio Toolkit: Probe, Cut, Convert, Extract Audio

Video & Audio Toolkit: Probe, Cut, Convert, Extract Audio

Cloud ffmpeg/ffprobe/yt-dlp toolkit: probe video metadata, extract 16 kHz mono audio for speech to text, build a 480p proxy, cut segments frame-accurately, download and remux MP4.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Andrew Babo

Andrew Babo

Maintained by Community

Actor stats

0

Bookmarked

1.1K

Total users

795

Monthly active users

4 days ago

Last modified

Share

Video & Audio Toolkit — Probe, Cut, Convert, Extract Audio

A single cloud actor that replaces a local ffmpeg / ffprobe / yt-dlp install. Give it a media URL (or a page URL) and get back metadata, a mono speech track for transcription, a lightweight 480p analysis proxy, trimmed segments, or a clean H.264/AAC faststart MP4.

Use it when you need to:

  • read video metadata (duration, resolution, fps, codecs, streams) before processing
  • extract 16 kHz mono audio to feed a speech-to-text model
  • build a 480p proxy so face detection / scene analysis costs a fraction of the master
  • cut one or many time windows out of a long video without re-encoding
  • download a video by page URL, or just resolve its direct media URLs
  • remux / ingest any container into a browser-friendly MP4
  • grab one window of audio or video straight from a page URL, so you can fan out hundreds of parallel shards without ever hosting the full file

Everything runs headlessly on CPU. No GPU, no local installs, no desktop software.

Quick start

{
"op": "probe",
"source": "https://example.com/video.mp4"
}

Feature-detect the build (free, a few seconds, needs no source):

{ "op": "capabilities" }

Operations

opWhat it doesNeeds source
probeffprobe metadata: duration, size, streams, codecs, fpsyes
plan_shardssplit a duration into shards for parallel processingyes
audio16kmono speech audio (wav / mp3 / opus), optional time rangeyes
proxyfast 480p analysis proxy (audio kept by default)yes
cuttrim one or many segments, stream copy or re-encodeyes
ytdlpdownload by page URL (cookies / proxy supported)yes (page URL)
resolveprint the direct media URLs only, no downloadyes (page URL)
audio_shardresolve + range-read + encode ONE audio window in one runyes (page URL)
video_windowresolve + range-read + cut ONE full-res video windowyes (page URL)
audio_fulldownload the whole audio track once and host ityes (page URL)
ingestdownload and guarantee H.264/AAC faststart MP4yes
remuxany container/codec → faststart MP4 (stream copy when possible)yes
capabilitiesreport ops, features and vCPUs of this buildno

source accepts an https:// URL or kv:<storeId>/<key> pointing at a record produced by an earlier run, so actors can be chained without downloading anything to your machine.

Examples

Extract speech audio for transcription

{
"op": "audio16k",
"source": "https://example.com/interview.mp4",
"options": { "format": "wav", "sample_rate": 16000 }
}

Build a 480p analysis proxy

{
"op": "proxy",
"source": "https://example.com/podcast.mp4",
"options": { "height": 480, "fps": 15, "crf": 28, "audio": true }
}

Cut three highlight segments (no re-encode)

{
"op": "cut",
"source": "https://example.com/stream.mp4",
"options": {
"segments": [
{ "start_sec": 12.4, "end_sec": 41.0, "name": "hook" },
{ "start_sec": 320, "end_sec": 372, "name": "tip" }
]
}
}

One audio window straight from a page URL (fan-out friendly)

{
"op": "audio_shard",
"source": "https://www.youtube.com/watch?v=XXXXXXXXXXX",
"options": { "start_sec": 600, "duration_sec": 240, "format": "mp3", "bitrate": "64k" }
}

Output

Every run pushes one dataset item:

{
"status": "success",
"op": "audio16k",
"artifacts": [
{ "name": "audio16k", "kv_key": "audio16k.wav", "url": "https://api.apify.com/v2/key-value-stores/.../audio16k.wav", "bytes": 5412233 }
],
"meta": { "duration_sec": 338.4, "sample_rate": 16000, "channels": 1 }
}
  • artifacts[].url is a public URL you can hand straight to the next actor.
  • artifacts[].kv_key is the key inside this run's key-value store (kv:<storeId>/<key>).
  • meta carries per-op details (probe streams, shard plan, proxy dimensions, offsets...).

Set output.signed_upload_url to have the artifact PUT directly into your own storage (S3, R2, GCS) so heavy files never sit on Apify. Set callback: { "url": "...", "secret_header": { "name": "...", "value": "..." } } to be notified with the result JSON the moment the run finishes.

Error handling

Failures never return SUCCEEDED with zero items. You always get:

{ "ok": false, "reason": "UPSTREAM_BLOCKED", "message": "..." }
reasonMeaningWhat to do
BAD_INPUTmissing/invalid source or optionscheck the payload against the schema
UPSTREAM_BLOCKEDthe host refused the downloadpass options.cookies / options.apify_proxy
TIMEOUTthe operation exceeded the run timeoutraise timeoutSecs, or shard the work
OOM_LIMITnot enough memory for this filerun with 16 GB, or use proxy / cut first
INTERNALunexpected failureretry; open an issue with the run ID

Performance and cost

OperationTypical memoryTypical time (1 h source)
probe, resolve, plan_shards1–2 GBa few seconds
audio16k, audio_full4 GB20–60 s
proxy8–16 GB1–4 min
cut, remux (stream copy)4 GBunder 1 min
ingest (transcode)16 GBseveral minutes

16 GB (≈4 vCPU) is the recommended setting for anything that transcodes.

FAQ

Do I need ffmpeg installed? No. Everything runs in the actor.

Can I chain this with other actors? Yes — pass artifacts[].url or kv:<storeId>/<key> as the source of the next run.

Does it re-encode when cutting? Only if you ask for it (options.reencode). By default segments are stream-copied, which is fast and lossless.

How do I analyse a big video cheaply? Run proxy once and analyse the 480p copy. Results in normalised coordinates apply back to the master unchanged.

Can I avoid storing files on Apify? Yes — use output.signed_upload_url together with cleanup: "always".