Cut a YouTube video
cut_youtube_videoCut a YouTube video into one or more clips and receive a direct download URL. Supports time ranges, batch cuts, multiple output formats, and job status polling.
Instructions
Cut a clip (or clips) from a YouTube video and return its download URL. Submits a cut job to AppsGolem and (by default) polls until it's produced, then returns the produced status — which includes a download_url once a download token is ready. Pricing: 1 credit per produced clip (4K = 4/clip, except audio_only which stays 1; a known source duration > 2h adds +1 once); a batch/stitch of N clips costs N per-clip. Failed cuts are never billed. On a wait-timeout the result has still_processing=true; poll get_cut_status with the returned id.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | Clip end as "SS"/"MM:SS"/"HH:MM:SS" (≤300h). Omit when passing clips. | |
| url | Yes | A YouTube video URL (watch/share/youtu.be — playlists rejected). | |
| fast | No | Stream-copy (≈10× faster, keyframe-aligned); video/nosound/both only. Mutually exclusive with a non-1× speed — fast wins and speed is forced to 1.0. | |
| mode | No | One of "video" (video file, default; MP4 normally, source container e.g. WebM in fast mode), "audio_only" (mp3/m4a/wav/flac), "both" (video + MP3 zip), "nosound" (video, no audio), "short" (portrait 9:16; AI smart-crop when applicable, else letterbox-blur with source-dependent aspect), "gif" (animated GIF, ≤5 min), "frames" (JPG stills). | video |
| wait | No | Poll until ready (default) up to the timeout_seconds polling deadline. | |
| clips | No | A non-empty list of 1–10 {start,end} ranges INSTEAD of start/end. | |
| sheet | No | Frames — a single contact-sheet JPG (2..80 frames, single clip); disables burn_ts. | |
| speed | No | Playback speed 0.5/1.0/1.25/1.5/2.0; video/nosound/both/audio_only. | |
| start | No | Clip start as "SS"/"MM:SS"/"HH:MM:SS" (≤300h). Omit when passing clips. | |
| stitch | No | With 2+ clips, join them into one file (else a zip of clips); ignored for a single clip; video/audio_only/both/short/nosound only. | |
| bitrate | No | Lossy-audio bitrate "320"(default)/"256"/"192"/"128" — MP3/M4A in audio_only, MP3 in both; ignored for wav/flac. | |
| burn_ts | No | Frames — burn the source timestamp onto each JPG. | |
| resolution | No | 144p/240p/360p/480p/720p/1080p (default)/1440p/2160p (4K; total cut ≤60 min). | 1080p |
| interval_ms | No | Frames sampling interval — 100/500/1000/2000(default)/5000/10000; non-sheet extraction is capped at 1800 JPGs total across all clips. | |
| audio_format | No | audio_only output format — "mp3"(default)/"m4a"/"wav"/"flac". both always produces MP3. | |
| idempotency_key | No | A stable key (≤200 chars) so a retried request reuses the same job. | |
| timeout_seconds | No | Polling deadline in seconds when wait=true (default 300); submission + one in-flight status request can extend total wall-clock. |