<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Jack</title>
    <description>The latest articles on DEV Community by Jack (@jack_2737d4f05bb6873eb5fd).</description>
    <link>https://dev.to/jack_2737d4f05bb6873eb5fd</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4242532%2Fec1e0346-2c43-466b-b203-af64bcb0ea88.png</url>
      <title>DEV Community: Jack</title>
      <link>https://dev.to/jack_2737d4f05bb6873eb5fd</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/jack_2737d4f05bb6873eb5fd"/>
    <language>en</language>
    <item>
      <title>How I Folded AI Video Intros Into a Developer Tutorial Pipeline</title>
      <dc:creator>Jack</dc:creator>
      <pubDate>Fri, 13 Nov 2026 08:45:48 +0000</pubDate>
      <link>https://dev.to/jack_2737d4f05bb6873eb5fd/how-i-folded-ai-video-intros-into-a-developer-tutorial-pipeline-4nnp</link>
      <guid>https://dev.to/jack_2737d4f05bb6873eb5fd/how-i-folded-ai-video-intros-into-a-developer-tutorial-pipeline-4nnp</guid>
      <description>&lt;p&gt;When I publish a technical tutorial, the writing is the easy part. The awkward gap is the first ten seconds of the companion video: a cold open that shows the problem, a face or a desk, and one line of narration before the screen recording starts. I used to skip the video entirely, or record a shaky phone clip that never matched the article. This year I started treating a short AI-generated shot as one more build artifact in the same folder as the markdown and the screenshots.&lt;/p&gt;

&lt;p&gt;This is not a survey of every model on the market. It is a workflow I can repeat on a weeknight, with files I already have.&lt;/p&gt;

&lt;h2&gt;
  
  
  Keep the source of truth in the repo
&lt;/h2&gt;

&lt;p&gt;I keep a &lt;code&gt;media/&lt;/code&gt; directory next to the post:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;posts/how-we-debounced-webhooks/
  index.md
  media/
    refs/
      host.jpg          # talking-head still, or a product packshot
      desk.jpg          # location / desk setup
      grade.jpg         # a still whose color grade I want to lock
      vo-guide.wav      # optional scratch narration
    prompts/
      intro-v3.txt
    out/
      intro-16x9-1080.mp4
      intro-9x16-1080.mp4
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The prompt file is versioned. The output is not precious; I can regenerate it. The references are precious. If a later post in the same series needs the same host and the same desk, I reuse those files instead of hoping the model remembers a face from last month.&lt;/p&gt;

&lt;h2&gt;
  
  
  Write the intro as a shot, not as a paragraph
&lt;/h2&gt;

&lt;p&gt;A blog intro can ramble. An eight-to-twelve-second video intro cannot. I write three lines before I touch a generator:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Who or what is on screen.&lt;/li&gt;
&lt;li&gt;The single action that happens — one action, not four.&lt;/li&gt;
&lt;li&gt;What the camera does, and how the scene is lit.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;A prompt that has worked for a webhook tutorial looks more like a director's note than a marketing slogan:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Mid shot of a developer at a wooden desk, facing a laptop that shows a failing CI badge. She looks up from the screen, exhales, then turns the laptop toward camera. Slow dolly-in, 35mm, soft window light from the left, shallow depth of field. She says: "This webhook retried sixteen times before I found the missing signature header." Room tone of a quiet apartment, faint keyboard clicks under the line.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Notice what is missing: "cinematic, epic, ultra-realistic, masterpiece." Those adjectives do not tell the model who moves, when they speak, or where the light is. Specific stage directions do. If I need a longer setup, I stretch the shot and mark beats by timestamp — 0–6s the failed badge, 6–14s the turn to camera, 14–22s the line — rather than stuffing three scenes into one prompt.&lt;/p&gt;

&lt;h2&gt;
  
  
  Attach references and say what each one is for
&lt;/h2&gt;

&lt;p&gt;A text prompt is enough to start, but identity drift is the usual failure mode: the person in frame two is almost, but not quite, the person in frame one. I attach a still of the host, a still of the desk, and sometimes a short clip of how I want the camera to feel. In the prompt I tag each file by role: this image is the face, this one is the location, this audio is the rhythm of the line.&lt;/p&gt;

&lt;p&gt;Tools that accept a large set of mixed references — images, clips, and audio in the same generation — are useful here because a tutorial series has to look like one show. I have been using &lt;a href="https://tryseedance3.com/" rel="noopener noreferrer"&gt;Seedance 3.0&lt;/a&gt; for this step because it is built around that mix: text plus tagged references, a single unbroken take of up to thirty seconds, and voices and room tone rendered with the picture. I do not need a second pass in an audio editor just to get the line on the lips. New accounts also receive free credits without a card, which is enough to test whether a prompt pattern is worth keeping.&lt;/p&gt;

&lt;h2&gt;
  
  
  Render once, then revise only the change
&lt;/h2&gt;

&lt;p&gt;The first draft is rarely the one I publish. Maybe the light is right but the line is rushed. Maybe I want a night interior instead of afternoon window light. Regenerating the whole shot is how you lose a take you already liked.&lt;/p&gt;

&lt;p&gt;The better habit is the same as a small patch in git: upload the finished clip and describe only the change. "Keep the developer, the desk and the laptop. Make it a rainy evening, tungsten desk lamp, same camera move and the same line." If the hook needs more room, extend the take forward instead of starting over.&lt;/p&gt;

&lt;p&gt;I usually render a 1080p 16:9 master for YouTube or the blog embed, then a 9:16 cut for Shorts, reusing the same references and changing only the framing instruction. When I start from a still, I let the frame follow the image's proportions unless the platform needs a different shape. Available aspect ratios cover the usual publishing targets — 16:9, 9:16, 1:1, 4:3, 3:4, 21:9 — so the export decision can live in the prompt file, not in a later crop.&lt;/p&gt;

&lt;h2&gt;
  
  
  A checklist I run before I hit generate
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;One main action, written as a verb, not a mood.&lt;/li&gt;
&lt;li&gt;Camera move, lens, and light are named.&lt;/li&gt;
&lt;li&gt;Dialogue is a sentence I would actually say, not a slogan.&lt;/li&gt;
&lt;li&gt;Every reference file is tagged for a job.&lt;/li&gt;
&lt;li&gt;Duration matches the line. I time myself reading it out loud.&lt;/li&gt;
&lt;li&gt;Output path and aspect ratio are decided before I spend a credit.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;None of this replaces a screen recording or a proper interview. It replaces the blank three seconds at the top of a developer video, and it does it with files that live next to the article. That is the whole point of a pipeline: the next tutorial should be a copy of the folder, a new line of dialogue, and a new render — not a new production.&lt;/p&gt;

</description>
      <category>aivideo</category>
      <category>contentpipeline</category>
      <category>tutorial</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
