{"id":"full-docu","kind":"complete","name":{"he":"סיפור עם גרפיקה","en":"Story with data graphics"},"one_line":{"he":"סרטון דוקומנטרי קצר: הדובר מספר סיפור והמנוע מצייר את העובדות — שנה שרצה, מונה צפיות שנשאר קטן, קיר סרטונים שמתמלא, ספירה מול שעון עם פס התקדמות, גרף שמזנק, שווי שרץ עד מיליארדים…","en":"The documentary short: the speaker tells a story and the engine draws its facts — a year that counts up, view counts that stay tiny, a wall of videos filling, a count against the…"},"listed":true,"version":"1.0","updated":"2026-10-09","when_to_use":["A finished video in one skill: data cards on the story's facts: a year counting up, view counts, a wall of videos, a count against the clock, a line chart, a fortune in billions, money raining, a black-and-white chapter, a punch-zoom rhythm, two-colour captions (numbers and key words green), white flashes with a glitch.","A talking video should come out as a finished post, not just captioned."],"when_not_to_use":["Only captions or only a title are wanted: a caption or hook skill is many times cheaper."],"example":{"video_url":"https://media.gpt.org.il/lookbook/examples/docu-mrbeast-v2.mp4","credits":143,"seconds":97.7},"preview":null,"price":{"unit":"minute","from":88,"to":100,"note":"per finished minute; 30 s ≈ 46–54 credits — generated media is priced per asset, so half a minute is not half the price"},"inputs":[{"name":"video_url","type":"video","required":true,"limits":"a public link, or the original recording uploaded (POST /v1/studio/uploads), up to 2 GB","notes":"upload the original as it is (a phone's MOV / HEVC / 4K is fine), never a resized copy"}],"outputs":[{"name":"output.url","type":"video","required":true,"limits":"mp4, 9:16 1080p unless the request says otherwise","notes":"the file is deleted 24 hours after it is made: download it and tell the customer"},{"name":"cost","type":"number","required":true,"limits":null,"notes":"GET /v1/usage?tag=<job name> → totals.credits: quote this, not the estimate"}],"steps":[{"method":"POST","path":"/v1/studio/uploads","what":"Only for a file (not a link): get an upload URL, PUT the bytes to output.upload_url with output.headers, use output.url as the video","body":{"filename":"clip.mp4"},"async":false,"optional":true},{"method":"POST","path":"/v1/speech/transcripts","what":"Transcribe audio or video","body":{"audio_url":"<audio url — from the recipe>"},"async":true,"optional":false},{"method":"POST","path":"/v1/studio/story","what":"Plan a documentary-style story with data graphics","body":{"video_url":"<video url — from the recipe>"},"async":false,"optional":false},{"method":"POST","path":"/v1/ai/text","what":"Generate text (chat)","body":{"model":"gemini-3.5-flash","system":"<system — from the recipe>","prompt":"<prompt — from the recipe>"},"async":false,"optional":false},{"method":"POST","path":"/v1/studio/edit","what":"Full edit in one render","body":{"video_url":"<video url — from the recipe>"},"async":true,"optional":false},{"method":"GET","path":"/v1/executions/{id}","what":"Poll a call that answered processing until it is completed (the file is output.url)","body":null,"async":false,"optional":false},{"method":"GET","path":"/v1/usage","what":"?tag=<job name>: what the whole job cost — quote it to the customer","body":null,"async":false,"optional":false}],"rules":["Show the customer the price (POST <path>/estimate with the same body, or the price above) and wait for their OK before any paid call.","Send Idempotency-Key: <job>-<step> on every POST. After a timeout send the same call with the SAME key — you get the same job back, never a second charge.","A long call answers status processing: poll GET /v1/executions/{id} every 5–10 s (or send x-wait-ms, up to 90000). Never send the job again to see whether it finished.","Send the same X-Tag: <job name> on every call of one job; GET /v1/usage?tag=<job name> is then what it really cost.","On-screen text is in the video's language and taken from what is actually said (a carousel: from the customer's brief). Never invent facts, names, prices or numbers.","Hebrew has no capitals: keep uppercase false (it only breaks the Latin words inside a Hebrew line).","Keep text inside the middle 80% of the frame: side_margin ≥ 6, margin ≥ 12 — the platform's buttons cover the rest.","Check the words against the speech before burning them in: a phrase lost by the speech model is transcribed again with speech_models [\"universal-2\"] and the words sent as `words`."],"common_errors":[{"code":"invalid_input","why":"400: a field is missing, misspelled or out of range — the message names it","fix":"Fix exactly that field and send again; send only the fields the recipe or the docs show."},{"code":"unauthorized","why":"401: the API key is missing, wrong or revoked","fix":"Ask the customer for a valid key (keys are made at /api-keys); never print it back."},{"code":"insufficient_credits","why":"402: the balance does not cover the estimate (details.required_credits)","fix":"Tell the customer the price and that the balance is short; do not retry until they top up."},{"code":"rate_limited","why":"429: too many calls a minute","fix":"Wait the retry-after seconds, then send the same call with the same Idempotency-Key."},{"code":"failed","why":"the execution's status is failed or timeout — nothing is charged for failed work","fix":"Read error.message, fix the input, and start again with a NEW Idempotency-Key."},{"code":"upload_too_large","why":"413: the file is bigger than the call takes","fix":"Upload the original through POST /v1/studio/uploads and send its output.url; never shrink the picture's shape."},{"code":"skill_not_found","why":"404: no skill with this id or slug","fix":"Take the id from GET /v1/skills (items[].id or slug)."},{"code":"skill_not_available","why":"409: the skill is not on offer right now","fix":"Tell the customer and pick another skill from GET /v1/skills."},{"code":"skill_input_length","why":"422: the video is shorter or longer than the skill takes","fix":"Trim the video (POST /v1/studio/trim) or pick a skill that takes its length."},{"code":"duplicate_client_key","why":"409: a run with this client_key already exists","fix":"Do not start another: find it with GET /v1/agent/runs and follow it."}],"quality_check":["The captions and every line on screen match what is said.","Watch the start, the middle and the end of the result before handing it over — not only its status.","Read `warnings` in the answer (a font swapped for the language, a picture that had to be enlarged) and tell the customer what they mean."],"tags":{"domain":"edit","level":"ai","hebrew":true,"recommended":true,"new":true,"creator":false,"topics":["complete","captions","hook","music","sfx","graphics"]},"links":{"recipe":"/skills/full-docu.md","docs":"/docs?tool=video-studio","run":"/v1/skills/apihub-docu/run"}}