Nodaro Docs
DocumentationNode ReferenceModelsAI Agents (MCP)DevelopersSelf-hostingResearch
Video

Content Recipe

Find out why a social post worked: the hook, format, beats, call to action, sound and pace, as a reusable recipe in structured data and readable text.

Available on Nodaro Cloud

The Content Recipe node explains why a social post worked, as a recipe you can reuse. It reads the post's material with a language model and returns the hook, the format, the beats, why the post works, the call to action, the sound and the pace. You get the recipe as structured data and as readable text, ready for Content Ideas.

Content Recipe runs on Nodaro Cloud only. It is not available on self-hosted installs.

When to use it

  • You want to know why a competitor's video, a viral post or an ad holds attention.
  • You want to reuse the structure of a post that worked, for your own brand, with Content Ideas.
  • You want fixed labels for each post, such as its format and its hook type, to sort or route posts in a workflow.
  • You want to compare several posts. Make one recipe per post and give them all to Content Ideas.

Quick start

Add the node

Press Tab on the canvas and choose Video › Analyze › Content Recipe.

Give it the post

Analyze the post with Video Analysis, and connect its Scenes JSON output to the Source material input. A scraped post, a caption or a transcript in a Text node also works.

Connect the Video URL node that holds the post to the Source post input. The recipe then cites the post, and every idea made from it links back to the post.

Run it

Click Run. When the run ends, the app says "Content recipe ready". The node shows the topic, the format with its confidence, the length, the pace, the hook, the beats and the reasons the post works. Point at the recipe to open its full text or to copy it.

videosource postsource materialrecipesbrandpromptVideo URLThe postVideo AnalysisProContent RecipeGemini 3.6 FlashTextYour brandContent Ideas5 ideasGenerate ScriptRuns once per idea
Video Analysis reads the post, and Content Recipe turns the analysis into a recipe that keeps the post's link. Content Ideas writes ideas for your brand, and Generate Script writes one script per idea.

Inputs

InputAcceptsWhat it does
Source materialA Video Analysis result, or any node that gives text, JSON or a list, such as a Text node with a caption or a transcriptThe material the recipe is read from. Required.
Source postThe Video URL node, or any text node that holds a linkThe post's own link. The recipe cites it. A connected link wins over Post link (optional).

The page link, not the file. Most nodes connected to Video URL receive the downloaded video. Source post receives the link of the post's page instead, so the recipe can point back to the post.

One post per run. When Source material receives a list of several posts, the node reads the first one and says so on the node. To get one recipe per post, set the connection to Each. See connection modes.

Which material gives the best recipe

A Video Analysis result gives the best recipe. It carries the timings, the spoken words, the on-screen text and the sound, so the hook and the beats come from what the post really does. A scraped post or plain text, such as a caption or a transcript, also works. Without timings, the node estimates the beats from a natural speaking pace.

Outputs

OutputWhat it carries
Recipe JSONThe recipe as structured data. See What the recipe contains.
Recipe textThe same recipe as readable text. It is what a person reads, and what Content Ideas reads when the recipe arrives as text.

Content Ideas accepts either output.

Settings

SettingWhat it does
AI ModelThe language model that writes the recipe. The default is Gemini 3.6 Flash. The list offers the models that can return structured data. The model's tier sets the price. See Credits.
Focus (optional)What the recipe should pay special attention to, for example "the hook and the editing rhythm". Up to 2,000 characters.
Post link (optional)The post's link, used when nothing is connected to Source post. The recipe cites the link, and the node never opens it. While a node is connected to Source post, the panel shows "Taken from the wired node" and the name of that node instead of the field.

What the recipe contains

FieldWhat it holds
version1
sourceWhere the recipe came from: kind (video-analysis, post or text) and, when known, the post's url, platform, account handle, title and language. These are read from the input, never invented.
hookAbout the first 3 seconds: spoken (word for word, in the original language), onScreenText (word for word), visual, types (1 or 2 hook mechanics, the main one first) and whyItStops.
formatlabel, one format from the list below, and confidence, from 0 to 1.
beatsThe post's structure, in order. Each beat has a start and an end in seconds, a purpose and a one-line description.
whyItWorks2 to 4 reasons. Each has a reason and a detail tied to a moment of the post.
ctaThe call to action: its kind, and its text word for word. The text is empty when the kind is none.
soundThe kind of sound and a short detail.
durationSec, pace, aspectThe length in seconds, measured from the analysis when there is one. The pace, fast, medium or slow. The aspect ratio, when known.
topic, summaryThe subject in a few words, and the reusable pattern in 2 or 3 sentences.

The labels and the descriptions are in English. Quoted words, such as the spoken hook, stay in the language of the post.

Label lists

Every label comes from a fixed list of English ids. Filters, routers and later nodes can rely on them. Every list except Sound kinds has other, for a post that fits none of the others.

  • Formats: talking-head, pov, skit, storytime, tutorial, listicle, before-after, transformation, demo, unboxing, reaction, comparison, myth-vs-fact, day-in-the-life, challenge, hot-take, trend-remix, testimonial, behind-the-scenes, other.
  • Hook types, the mechanic of the hook: question, bold-claim, result-first, problem-callout, tease, story-open, direct-address, relatable-moment, pattern-interrupt, visual-shock, text-overlay, sound-hook, other.
  • Beat purposes: hook, setup, problem, build, demo, proof, reveal, payoff, twist, cta, other.
  • Reasons it works, the driver of each reason: curiosity, emotion, humor, relatability, social-proof, novelty, utility, aspiration, controversy, satisfaction, urgency, authority, other.
  • Call to action kinds: none, follow, comment, share, save, link-in-bio, buy, sign-up, watch-next, dm, other.
  • Sound kinds: voiceover, on-camera-speech, trending-sound, music, ambient, silent, mixed.

Credits

A run costs one flat price, set by the tier of the AI model:

Model tierCredits per run
Economy, such as Gemini 3.6 Flash (the default)6
Standard, such as Claude Sonnet 4.622
Premium, such as Claude Opus 539
  • Reasoning effort. From the API, a reasoningEffort of xhigh or max moves the run one tier up, capped at Premium. The settings panel has no reasoning-effort control on this node.
  • Failed runs. A run that fails is refunded. See Credits.
  • The analysis is priced apart. The Video Analysis that usually feeds the node is priced by the length of the video. On Pro, a post of up to 60 seconds costs 238 credits.

For the price of the whole flow, from the post to the scripts, see Content Ideas.

Tips

  • Analyze the post first. The hook and the beats are only as good as the material, and Video Analysis gives the most complete material.
  • Keep the link. Connect the Video URL node to Source post, so every idea made from the recipe links back to its post.
  • Use the focus. Fill Focus (optional) when one part matters most, such as the hook or the editing rhythm.
  • Mix several posts. Make a recipe for each post and connect them all to Content Ideas. The ideas spread across the posts.

Troubleshooting

The run stops with "connect a Video Analysis, a post or some text first". Nothing usable is connected to Source material. Connect a Video Analysis, a post or a text node, and run again. The run stops before anything is charged.

The run ends with "Content recipe failed". The model did not finish the recipe. The credits are refunded. Run the node again.

The node says it read only the first post. Source material received a list of several posts. Set the connection to Each to make one recipe per post.

The recipe has no link to the post. Nothing was connected to Source post, and Post link (optional) was empty. Connect the Video URL node to Source post, or paste the link into Post link (optional).

From the API

POST /v1/content-recipe makes a recipe on Nodaro Cloud. The body takes source, the post's material as text, and the optional sourceUrl, focus, llmModel and reasoningEffort. The material can be a Video Analysis result as a JSON string, a post, a caption or a transcript.

curl -s https://app.nodaro.ai/v1/content-recipe \
  -H "Authorization: Bearer $NODARO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "source": "Caption: three mornings, one mug. Which one is you?",
    "sourceUrl": "https://www.tiktok.com/@example/video/7300000000000000000",
    "focus": "the hook and the editing rhythm"
  }'

The answer is { "jobId": "…" }. Poll the job with GET /v1/jobs/:id/status until its status is completed. Its output_data holds the recipe as json and as text. See Jobs.

A request that cannot run is refused with 400 before any job exists, so nothing is charged. That happens with an empty source or one over 300,000 characters, a focus over 2,000 characters, a model that cannot return structured data, or a sourceUrl that is not an http or https link.

There is no dedicated MCP tool or SDK method. In a workflow, the node's type is content-recipe. AI assistants and code can add it with the workflow tools or the Workflows API.

Frequently asked questions

Last updated on

On this page