Edit

YouTube to reel: plan it step by step, on your licence

Turns a YouTube video into a vertical reel, one step at a time — call it again with each step's result. It looks at your licence first: with a declared licence (your own channel, a video YouTube marks Creative Commons, or written permission) the file is taken (POST /v1/youtube/videos/{id}/file records your declaration with it — open to every account, closed for one that took files it had no rights to) and the reel is cut from its best seconds — the video's own striking shots laid over its speech as cut-aways (inserts), captions, a hook, the CC BY credit line on screen, 9:16. With your own footage too: your commentary with the video's shots inserted on your words. Without a licence the file is never taken: a commentary reel on your own recording (it writes you the script when you have none) with CC0 stock clips and short quotes of the video on your words. Each answer carries the stage, the licence verdict, the next call with a ready body — Gemini watching the link (POST /v1/ai/text, nothing downloaded), the file, the transcripts, the stock search — and at the end ONE body for POST /v1/studio/edit. Nothing is rendered or charged here; price every next call with its /estimate. Recipe: /skills/full-youtube-reel.md

Billing: Read request — the plan is free; every step it names is priced by its own endpoint · Rate limit: 60/min

post/v1/studio/youtube-reel

Request

  • Base URL: https://apihub.co.il
  • URL: https://apihub.co.il/v1/studio/youtube-reel
  • Auth: HTTP bearer

Headers

Idempotency-Keystring

Replay-safe: the same execution is returned instead of charging twice

X-Tagstring

Group calls into one job (e.g. one video) — see GET /v1/usage?tag=…

Request body

planobject

The picker's answer: output.json of the POST /v1/ai/text call this endpoint gave you

creditstring

The credit line shown on screen (CC BY). Default: "<title> · <channel> · CC BY" from the video's facts

licence'own' | 'creative-commons' | 'licensed'

Your basis for using the video's FILE: own = a channel you control · creative-commons = YouTube marks it Creative Commons (CC BY) and its credit goes on screen · licensed = you hold written permission. Omit when you have none: the recipe makes a commentary reel on your own footage instead and never takes the file

captions'classic' | 'hormozi' | 'tiktok' | 'karaoke' | 'one-word' | 'marker' | 'news' | 'neon' | 'quiet' | 'pop' | 'typewriter' | 'bounce' | 'underline' | 'elegant' | 'handwritten' | 'comic' | 'sticker' | 'drama' | 'cinema' | 'shadow' | 'lime' | 'retro' | 'scale' | 'bubble' | 'sport' | 'minimal' | 'slide' | 'volt' | 'neon-glow' | 'marker-tape' | 'keyword-pop' | 'keyword-box' | 'editorial' | 'poster' | 'broadcast' | 'soft' | 'cards' | 'cards-bold' | 'cards-neon' | 'kinetic-pop' | 'fire' | 'gold' | 'glass' | 'vhs' | 'candy' | 'look-clean' | 'look-bold-lime' | 'look-night' | 'look-warm'

Caption preset (GET /v1/studio/caption-styles)

cutawaysboolean

licensed: lay the video's own striking shots over its speech (inserts)

file_urlstring uri

licensed: the video's file — url of POST /v1/youtube/videos/{id}/file

languagestring

The language of the hook, the title and the post text (and of the commentary script)

hook_style'box_red' | 'yellow' | 'black' | 'outline' | 'clean' | 'type' | 'punch' | 'glitch' | 'marker' | 'words' | 'box' | 'counter' | 'shake' | 'rise' | 'strike' | 'blur' | 'flash' | 'look-clean' | 'look-bold-lime' | 'look-night' | 'look-warm'

Hook preset (GET /v1/studio/hook-styles)

resolution'720' | '1080'
footage_urlstring uri

Your own recording (a commentary on the video): the reel is built on it, the video's shots (licensed) or stock clips (commentary) inserted on your words

youtube_urlstring required

The YouTube video: a watch / shorts / youtu.be link (or its 11-character id)

transcript_idstring

licensed, no footage: the transcript of the file (POST /v1/speech/transcripts on file_url)

target_secondsnumber

How long the reel should be (±25 %)

footage_transcript_idstring

The transcript of the footage (POST /v1/speech/transcripts on footage_url)

Response

Completed

idstring

Execution id — stable across internal retries; use it with GET /v1/executions/{id}

status'pending' | 'processing' | 'completed' | 'partial' | 'failed' | 'cancelled' | 'timeout'
operationstring
tagstring nullable

Your X-Tag, if sent

created_atstring date-time
completed_atstring date-time nullable
outputobject

Operation result (see each operation). While a Studio render is processing: stage (queued · transcribing · downloading · preparing · cleaning_voice · mixing_audio · rendering · finishing), phase (the engine's: download · prepare · voice · audio · encode · qa · upload, or null), progress (a percent, 0–100) and progress_fraction (0–1), eta_seconds (seconds left, never below 0) and estimate_seconds

errorstring nullable

Changes

No recorded changes to this operation across all 2 revisions of this API.