Community

Share your best AI workflow. We could show it to 2M+ people.

Every day, we feature the community's top-voted AI workflow in The Rundown newsletter. One post will put you on the radar of top founders, hiring managers, and operators across the industry.

Welcome!

pro The Rundown team

Animate old photos into a meaningful wedding gift

My best friend from high school got married last weekend, and as the groomsmen, we wanted to create a gift that felt personal and nostalgic. We collected our old photos together and used Seedance to animate them—bringing each still image to life from the first frame— and then stitched several clips into one final video. The result was amazing: the groom was deeply touched, and we all shared a heartfelt moment watching it together on the wedding day, reliving our memories in a way that felt both timeless and new. Step-by-step: 1. I collected old photos of the groom and the friends who had known him since high school. 2. I used each still image as the first frame for a Seedance animation. 3. I generated short clips that brought the individual memories to life. 4. I selected the strongest outputs and stitched them into one continuous video. 5. I shared the finished piece at the wedding as a personal, nostalgic gift.

Tools used
Industry
#creativity#video
1

Automate Long-Form Video Clipping to 9:16 Shorts with Claude

I work with long talking-head videos for my online course and Instagram. Turning them into vertical shorts used to take hours per video: finding the best moments, cropping to 9:16, adding captions, or paying for clipping subscriptions. I built a video-clipping agent as a Claude skill that runs entirely on free, open-source tools. Step-by-step: 1. I drop a long video—either talking-head footage or an already-produced 16:9 video—into a folder and invoke my "clipper" skill in Claude. 2. Claude transcribes the video locally with faster-whisper using word-level timestamps, so no API key is needed. ElevenLabs Scribe is an optional upgrade for tricky audio. Before transcription, the workflow cleans the audio with declipping and normalization because clipped microphone peaks can make Whisper skip words or hallucinate. 3. The skill scores every candidate moment against a rubric: hook strength (30 points), whether it can stand alone (25), emotional charge (20), rhythm (15), and ending (10). Only segments scoring 70 or higher survive, so I do not publish a weak clip simply because it exists. 4. Claude cuts the selected moments with word-level precision and reframes them to 9:16 in one of two modes: face-tracking crop for raw footage, or "pad" mode, which centers the full 16:9 video over a blurred background. The latter lets me repurpose already-edited videos without chopping off centered graphics or captions. 5. ffmpeg masters everything to a fixed specification: 1080x1920, 24fps, H.264 CRF18, and audio normalized to -14 LUFS. The files are ready for Instagram, TikTok, and Shorts. 6. I review the scored shortlist and publish the winners. What used to take hours—or require a monthly subscription—now takes minutes and costs zero. The scoring rubric also makes the agent explain why each clip deserves to exist instead of simply cutting wherever the waveform looks loud.

Tools used
Industries
#clipping#contentcreation#ffmpeg#shorts#video
2

Build Consistent Cinematic AI Video Sequences with Claude Skills

I produce cinematic AI video. What ruins a sequence is almost never image quality; it is drift. The face, jacket, and light change between shots, so what should read as one scene becomes a gallery of near misses. Most people fight this by regenerating until something matches. I built the opposite: a set of chained Claude skills that locks a character once and never lets the model improvise again. The lesson that started it cost me 72 credits in one unusable shot. I fed a finished POV frame as an image reference to “set the world” for a motorcycle sequence. The model treated it as a strong identity reference, cloned the entire cockpit from that frame, and ignored the bike I was describing in the prompt. Image references are read as identity, not atmosphere. That misunderstanding is why most people’s characters mutate. Step-by-step: 1. I lock the character before generating anything. I fill nine layers in order: identity and facial structure, skin realism, wardrobe and materials, emotional energy, environment, lighting scheme, camera language, vertical 9:16 framing, and a fixed block of negative instructions. A generic prompt returns a generic face. This is direction, not a portrait. 2. I shoot a character sheet: a neutral, multi-view image of the locked character on white. That sheet—not a pretty hero frame—is what I reuse as a reference from then on. 3. I expand coverage instead of reinventing the scene. One locked scene becomes a full shot list with hero angles, macro inserts, and establishing shots. The subject, wardrobe, weather, and lighting never change between prompts. Only the camera, focal length, framing, and distance change. Every prompt restates the entire world from scratch because the generator has no memory between images. Consistency comes from redundancy, not from the model remembering. 4. I time the story before animating. I create a 3x3 board with nine beats over fifteen seconds, with each panel showing its timecode, shot title, and action. The rule is strict: the character, wardrobe, world, and light stay identical across all nine panels; only the story advances. The emotional scale rises toward panel nine. 5. I generate with reference discipline. I pass the object or vehicle in a clean exterior shot as the only image reference, then describe the world, framing, and interior in text, repeating that description word for word across shots. I chain consecutive shots by feeding the last frame of one as the start image of the next. The joins are invisible. 6. I review the board against the renders, keep the shots that hold, and regenerate only the ones that drift. The result is that I stopped paying the regeneration tax. Shots are budgeted, not gambled, and a fifteen-second sequence holds together because it was blocked like a real scene—with coverage and continuity—before a single frame existed. The nine-layer character build and the coverage framework are adapted from two AI video courses plus twenty years of production. I learned the reference discipline in step five the expensive way.

Tools used
Industry
#aivideo#characterconsistency#storyboard#video
4

Semi-Automate Live Stream Summaries with Gemini, Blender, and Whisper

“A good engineer knows when not to use AI.” I built a semi-automated workflow to summarize my live streams. With it, I can record and edit a stream in just one day of work. Not everyone has time to watch an entire stream, so creating a summary of the main moments is important for people who want to watch it later. Many tools create Shorts from videos by analyzing transcripts, but they are expensive and do not work well for visually heavy content such as gameplay. Gemini can analyze both video and audio and has a long context window, so I decided to use Google AI Studio to identify important moments. I also created scripts to automate parts of the video-editing process. Some of the scripts can be executed by an agent, and the prompts can be turned into Skills when using the API. Step-by-step: 1. I record the video with separate tracks for the microphone and background audio. I keep the microphone on the first track so the LLM does not identify only the background audio. 2. I compress and cut the video with `ffmpeg`, then extract the audio tracks. Google AI Studio has implicit video requirements: files must be under 400MB and under one hour long. The AI analyzes only one frame per second, so I can also lower the FPS to save space. I use the audio tracks later in the workflow. 3. I upload the processed videos to Google Drive, which makes them easier to use in Google AI Studio. 4. I use Gemini with temperature 1 and a high thinking level to select the important moments. I add the system prompt and specify which part of the video I am uploading: "The video is part X of the stream. Please make a structured script according to the system instructions." This helps Gemini understand what types of moments may appear in the video. The system prompt was created for gameplay presentations but can be adapted for other content. 5. I use Gemini Pro with temperature 1 and a high thinking level to find the timestamps for the selected moments. I keep timestamp generation separate from moment selection so Gemini has more thinking time for each task. Gemini Pro works better than Flash when handling time. I add the system prompt along with a copy of the response from the previous step. - As an extra check, after execution I continue the conversation with: "Check if the analysis was cut off too early (context truncation), ignoring that the video continued and generating false positives for timestamps. Check the last events especially." 6. I send the data to Blender. I create a JSON file containing the AI’s response and use a script to add the original video, the microphone track, and the background audio track. The script cuts and marks the important moments based on the JSON. Because it is not possible to send multiple audio tracks from a single video, I send the tracks separately. I also make sure to use the correct FPS, either 30 or 60. 7. I edit the video manually. The AI’s timestamps are not perfect, so I may add or remove sections, or correct a position that the AI identified incorrectly. I then render the video. 8. As an extra, I can automate standardized edits. For example, I use three different camera positions, so I add clips to three different tracks depending on the position I want. I use a script to change the position and scale of the clips on those tracks. 9. As another extra, I transcribe the audio. I mute the background audio and save only the microphone audio as an MP3, then use Whisper to transcribe it. I can use the transcript as YouTube subtitles or embed it directly into the video. I use Whisper-WebUI with Log probability Threshold -0.5, No Speech Threshold 0.5, Patience 2, and Hotwords `\u003cmy name and terms in other languages I usually use\u003e`. I use an LLM to translate the transcript into other languages. 10. Finally, I create tags and titles. I upload the transcript to Google Drive and use it in Google AI Studio with a system prompt to generate tags and titles for the video. I also use the assistant in Google AI Studio to analyze and summarize my channel for use in LLMs. This helps me choose better titles and tags.

Tools used
Industries
#clips#video
2
pro The Rundown team

Generate and explain After Effects expressions with Claude

I'm always looking for ways to add cool motion design to our videos. Recently, I've been playing with Expressions, snippets of JavaScript that automate animations and link properties in After Effects. Previously, I had to dig through forums and Reddit to find the right snippet, but now I describe the effect to Claude, and it gives me options, explaining each line of code. Step-by-step: 1. I described the animation effect I wanted to create in After Effects. 2. I asked Claude for several JavaScript Expression options instead of searching forums and Reddit. 3. I had it explain every line so I understood what the expression controlled. 4. I pasted the best option into After Effects and tested it against the real composition. 5. I brought the result back to Claude for adjustments until the motion behaved correctly.

Tools used
Industry
#coding#video
0

Build a Video Delivery QC Checker with FFmpeg Fix Commands

A finished video can be wrong in ways you cannot see—not because of the edit, but because of the delivery file itself. That is what gets work sent back, and it is rarely the craft. I built a delivery check for this. I give it a finished file, tell it where the file is going and what kind of piece it is, and it measures the things that cause rejections: sample rate, mono audio, integrated loudness against the destination target, true peak, dynamic range against a band rather than a single number, A/V drift, whether the shots cut together, and whether the file can stream before it has finished downloading. Most of those checks are for sound, because most of what gets sent back is sound. Picture problems are visible on a screen. A file that is 2 dB too quiet or peaks at -0.7 dBFS can look perfect and still come back. For everything it can fix, the checker gives me the exact `ffmpeg` command, with the numbers already calculated for that file. It does not merely describe the fix, and it does not hand me a corrected file. That was the decision that mattered. A fixer is a black box. You never learn that you had a problem, so you make it again the following week. Then, when your editing tool adds an “optimize on export” button, you have nothing. An inspector that explains the problem in one sentence and gives you the command teaches you the standard once and remains useful when the tools change. Three things determined whether I would actually use it, and none of them are checks. “Two severities, never one.” Something either bounces, or it needs your eyes. A tool that only says “bad” gets ignored on the third run, because half of what it flags is a decision you made on purpose. Sample rate, mono, and true peak bounce without argument, and they get a command. Loudness and dynamic range need to be reviewed first. My dynamic-range check says in plain words that the result is often deliberate and should be fixed at the source rather than in the master. “A check that refuses to give a verdict.” On vertical video, the platform interface covers the bottom 26 percent and the top 12 percent. I flag high-contrast elements in those zones but deliberately do not fail them, because the detector cannot tell a caption from a bright patch of sky. The report explains that limitation. A check admitting what it cannot know is what makes the checks that do commit worth trusting. “The thresholds are mine; the code only applies them.” They live in a table: destination crossed with content. Social wants -14 LUFS, a festival master wants -18 with a wider tolerance because festivals provide a band rather than a number, and broadcast wants -23. A scripted short is allowed to be denser than a screencast. That table is the whole product. For example, to catch shots that do not cut together, I measure the luminance range across the piece. The first version used average brightness per frame and kept flagging legitimate night photography. A fade to black has nothing bright in it; a night scene does—a streetlight, a moon, or a face. Changing the discriminant to the brightest pixel in the frame instead of the average eliminated the false positives. That took ten minutes of thinking, and no amount of better code would have found it. Step-by-step: 1. I wrote down what had actually gotten my work sent back over twenty years before writing any code. I captured the scars rather than making a spec sheet; that list became the product. 2. I gave every check a severity: it bounces, or look before you send. Anything I could not confidently put in one bucket became informational, with no verdict at all. 3. I made every check return four things: the measured value, pass or fail, why it matters in one plain sentence, and, where possible, the command that fixes it. 4. I put the thresholds in a profile table instead of hardcoding one standard, because -14 LUFS is right for social and wrong for a festival. 5. I added a parameter for whether the file is my own master or a copy pulled from a platform. On a downloaded copy, half the container checks measure someone else’s transcode rather than my work, so they are skipped and the report explains why. 6. When two fixes would collide, I output only one command. If loudness already needs a gain change, the limiter goes inside that command instead of being offered separately; otherwise, I would run two instructions that fight each other. 7. I tuned the checker against real files until the false positives stopped. Ignoring the top and bottom five percent of frames eliminated the ones caused by a single stray frame. 8. I made the output a report. I read it, decide, and run the command myself. The functions are an afternoon of work, and anyone can copy them. What is not written down is the list of what to check, at what threshold, and why.

Tools used
Industries
#audio#delivery#ffmpeg#qualitycontrol#video
5