Claude vs Codex for AI Videos: More Instructions Made Codex Worse
Updated October 4, 2026: later Sonnet and Sol runs, cost caveats and source corrections added below.
· AI & Building · By Alan NafarreteIt started with a Reddit thread. Someone said they gave Claude Opus a one-sentence prompt and got back a slick motion-graphics showreel made entirely from code, and the post had over a thousand upvotes. I pay for both Claude and Codex, and I run a few YouTube channels, so the question was simple: can either one make a YouTube Short from code that people will actually watch?
The setup stayed the same all the way through. Each run started fresh with no memory of my projects, got a short brief plus a facts file from my own records, and had to build the whole video in code: motion graphics, music and sound effects, no editing app. For the travel Shorts I later added real clips from our trip. I logged every run: time, tool calls, output specs and my verdict.
Round by round
| Round | Claude Opus 5.5 | GPT-6 Astra (Codex) | What happened |
|---|---|---|---|
| One-line prompt, four topics (Astra ran two) | 22 to 41 min per run | high effort, 12 to 17 min | Four Opus Shorts published; they were just crushing it. Neither Astra Short went up. |
| Italy trip, with our real footage | 41 min | xhigh, 33 min | Astra’s was good: it used the footage better. Some clips repeated. |
| Italy again, with my feedback as a long checklist | not run | xhigh, two versions | Worse than its first try, and further from Opus. |
| Laptop comparisons (Panther Lake, Zenbook A14) | 44 to 58 min | xhigh, 20 to 31 min | Three published: two Opus, one Astra. |
| Zenbook A14 vs Mac mini M6, short story brief, identical inputs | 17.7 min | xhigh, 12.2 min | Opus published. Astra’s was not usable. |
Run times are single runs from my own log, not a speed benchmark. Astra finished faster in every round where both ran; the speed did not help it.
The closest thing to a public head-to-head: the two Panther Lake laptop Shorts, one from each model, went up on my channel within a minute of each other, same topic, same laptop photos. The prompts were not identical (Astra got the long checklist, Opus its original short brief), so this is not a controlled test. About three hours later (checked 14:52 UTC, September 28), the Opus version had 301 views and the Astra version had 53. They had different titles and it is one pair, so read that as a hint, not proof.
Lesson 1: more instructions made Astra worse
Astra’s first Italy Short was genuinely good. Its prompt was short on content, with a few pacing rules and two self-review passes. It filled the screen with our footage, and it felt like I was there giving actual tips. My only complaint was that a few shots repeated.
So I did what felt responsible: I turned all my feedback into a checklist. The corrected facts, a no-repeat rule, three things I liked in the Opus version, more pacing notes and a safety line. It followed every item literally. The result had a headline, a caption and a warning panel on most beats, and one story took up half the runtime. Its self-review passes fixed contrast and label wording; neither asked whether the Short was worth watching. It also added a synthetic voiceover nobody asked for. It sounded bad, and I have not used a generated voice since.
Opus did its best work from the simplest prompt. In these runs Astra behaved like a checklist-completer: give it a list and you get the list, not a video.
Lesson 2: one sentence controls the look
I ran the long Astra prompt twice, identical except for one sentence: “keep the footage full screen.” With it, the clips ran full screen. Without it, Astra boxed every clip inside “field notes” cards. One line changed the whole layout, which is useful to know and a little alarming.
Lesson 3: the facts file matters more than the model
Both models told our car-seat story wrong, and it was not their fault. The facts file I gave them was wrong. When my wife and I went through what actually happened, it was a better story. We didn’t pack a car seat because we planned to always have a real one lined up, with a travel vest packed only as a last resort. Then the airport shuttle showed up without the seat it promised, and after a 10-plus-hour flight we were figuring out how to buckle that vest for the first time. Later, a bus station in Matera sold us a seat for €25 that we assumed was a loaner. The lessons: if you pack a backup, do a dry run before the trip. My wife’s tip: call bus stations ahead, because some may have car seats.
Safety note: the RideSafer vest we packed is rated for ages 2+ and 26.5 lb+. A proper car seat is always the safest option.
The route was off too. Our Google Maps timeline showed seven stays built around two week-long bases, Palermo (7 nights) and Salerno (8). My notes had Trapani as a day trip when it was its own two-night stay, and Procida as a stop when we only passed it on the ferry. The data fixed the route; my wife and I supplied the why. The Italy Short I had already published was built from the old notes, which is its own lesson. Fix the source, not the prompt.
Lesson 4: a Short needs a story, not a spec
After the checklist failure I rewrote the brief around what a Short actually is: a pattern interrupt in the first two seconds, one story told mostly with visuals, a payoff the viewer can use, then a call to action that invites them to see more. At most one line of text on screen at a time. The only hard rules: facts from the story card, music and sound effects only, no voice.
Then I gave both models that brief with identical inputs: the same story card (a few bullets for the one story), the same real photos, run on the same Mac. Opus’s version went up on my channel. Astra’s was so bad that I don’t know if any prompting can fix it. The shorter brief did not close the gap.
Guardrails that earned their place
I only kept rules that fixed a failure I had actually seen:
- Numbers appear as their exact value. Animated count-ups flashed in-between numbers that were never measured. Each number now resolves straight to its real value.
- No synthetic voice. Music and sound effects only.
- Real device photos. Astra’s code-drawn laptops always looked wrong. Real photos fixed it for Opus; Astra still cropped or regenerated them.
- Name a music genre per Short. Without one, every track sounded the same.
- One safety line wherever a safety topic appears, as a single line rather than a panel.
Measure every run, and choose where it runs
Every run went into a log with its time, tool calls, output specs and my verdict, and the exact prompt and inputs are frozen. When a new Astra version ships, I will rerun the identical case and compare. That is also how I would notice if a model got worse over time.
Where the compute runs is a choice too. The first rounds ran on my Windows gaming laptop, which I also use for benchmarks. I moved the later runs to my MacBook Air M5 to keep the laptop free, with a simple lock so only one job runs per machine and benchmarks come first.
The TripSync promo experiment
Before the Shorts, I ran the same idea on a product promo for TripSync, my group-trip planner. The starting instruction was: Make a product promotion video for this app.
Seven runs across three models and several effort settings, plus my original September 8 promo, which came from a detailed brief and is a reference rather than an identical-prompt run. The trips, names, votes and prices inside the promos are sample data.
| Model or reference | Effort | Recorded run time | Clip length |
|---|---|---|---|
| Claude Opus 5.5 | medium | 14.5 min | 42 s |
| Claude Opus 5.5 | max | 61 min | 76 s |
| GPT-6 Astra (Codex) | medium | 5.5 min | 36 s |
| GPT-6 Astra (Codex) | xhigh | 15.5 min | 40 s |
| GPT-6 Astra (Codex) | max | 32 min | 40 s |
| Claude Fable 5.1 | medium | 13 min | 51 s |
| Claude Fable 5.1 | max | 59 min | 70 s |
| Original promo (model unconfirmed; detailed brief) | Not recorded | Not recorded | 32 s |
Sources, captured September 28: promo results and published run data (JSON). Both reveal the models. Run times are the published labels for these runs, not a normalized speed benchmark.
The promo taught me something about judging. I first had an AI reviewer score the videos, and it ranked a near slide show first. Digging in, it had watched at 15 frames per second, and it scored the music even though it could not hear the audio. A rubric built on my own criteria then produced a tie, because it checked whether things were present, not whether they were good. So I stopped trying to codify taste and put the videos in front of people instead.
The promo vote is winner-stays-on: two unlabeled videos, pick the one that makes you want to try the app, then your pick faces the next challenger, for up to seven rounds. Identities are revealed between rounds, so the full sequence is not blind, and clip lengths differ.
Compare the TripSync promos and vote →
The Shorts vote
The Shorts vote uses two briefs from the first round: a tech Short (the Mac mini M6 against my RTX 4080 laptop in DaVinci Resolve) and a travel Short (34 days in Italy with a one-year-old). You get one blind pairing per brief, then see who made each Short.
Update, September 28: Claude Sonnet 5.5 joined the vote. Sonnet 5.5 came out today, so I gave it the exact same prompt and files that Opus and Astra got, byte for byte, and added its two Shorts to the vote. Each visitor now gets one random pairing per brief: Opus against Astra, Sonnet against Opus, or Sonnet against Astra. Nobody sees the same Short twice, and every pairing stays blind until you vote. One difference to know: Sonnet ran through the Claude Code command line, while the Opus runs were Claude Code subagents, so the setup was not identical.
| Topic | Model | Effort | Recorded run time | Clip length |
|---|---|---|---|---|
| Tech: DaVinci Resolve | Claude Opus 5.5 | default | 32.6 min | 25 s |
| Tech: DaVinci Resolve | GPT-6 Astra (Codex) | high | 16.9 min | 28 s |
| Travel: 34 days in Italy | GPT-6 Astra (Codex) | high | 12.2 min | 54 s |
| Travel: 34 days in Italy | Claude Opus 5.5 | default | 37.0 min | 58 s |
| Tech: DaVinci Resolve | Claude Sonnet 5.5 (added Sep 28) | default | 11.5 min | 26 s |
| Travel: 34 days in Italy | Claude Sonnet 5.5 (added Sep 28) | default | 15.6 min | 58 s |
Sources, captured September 28: Shorts results and published run data (JSON). Both reveal the models.
Watch the Shorts and make your pick →
October 4 follow-up: cost, setup and the next batch
The later runs made the comparison more useful, but less tidy. A cheaper model, a shorter run and a better finished Short are three different outcomes. I now keep them separate.
The closest cost comparison was the motivation brief
On the “miss a day” brief, Sonnet 5.5 and Opus 5.5 used the same command-line harness at high effort. Sonnet took 28.5 minutes with a reported API-equivalent cost of $3.53; Opus took 27.1 minutes at $4.63. That is a $1.10 difference on these single runs, not evidence of a universal price-performance ratio. The command-line versions differed, and the Sonnet run recorded heavy CPU activity from other jobs, so the wall times are not a controlled speed comparison.
These runs used subscriptions. The dollar amounts estimate API usage; they are not extra charges on my bill. Other briefs used different harnesses or effort settings, so their bigger timing gaps do not isolate the model.
Six Mac Shorts were a production batch, not a model contest
The September 30 batch used Sol 6.1 at max effort for different Mac comparison angles. One discussed the M6 and Air; another the old M1 Max; another the local-AI answer-speed tie. Different topics and machines make those useful production experiments, not a clean leaderboard against Opus or Astra.
The source pack separated specifications from measured tests. That mattered: a price attached to a base configuration cannot silently describe the higher-memory machine I tested. And equal answer speed in one local-AI test does not prove what caused the tie.
A correction is part of the result
The local-AI candidate originally treated matching memory bandwidth as the proven reason for matching answer speed. The revised delivery changed that to a possible clue. If I compare model outputs later, I need to keep the untouched output separate from the corrected version; otherwise I am judging the model plus my intervention.
The accounting needs the same honesty. One M6/Air attempt ended with a failed session even though an MP4 existed. Another retry left no usage report. A usable file does not make the entire attempt successful, and missing usage is not zero cost. I am leaving those unknowns out of any model-cost ranking.
What I would copy into the next brief
- Provide the exact facts and distinguish specs, measurements and interpretations.
- Keep a frozen copy of the inputs for any genuine model comparison.
- Record the delivered version and the corrections separately.
- Compare publication performance at the same age, with topic and packaging differences visible.
- Choose the model for the finished result, not the cheapest-looking incomplete run.
The earlier creative preference below describes the original briefs. These later batch results broaden the record; they do not establish a new overall model winner. Watch the blind pairings to make your own judgment.
October 13: two new models, every render behind a spoiler
Two new models joined the lab this week: Google’s Gemini 4 Argon and Meta’s Muse Wonder (two versions: Wonder 1.0 for the first tries, Wonder Full for the retries). Unlike the first rounds, these Shorts cut in my own camera footage, and two of them add a 3D sequence rendered in Blender on my RTX 4080 laptop. Every number on screen comes from a facts file of my own measurements and Apple’s published specs.
Below is every render, labelled by topic and style only. The model is hidden behind a spoiler, so guess first, then open it. One caution: within each topic below except the first, a single model made every version, so the spoiler hides which model made which topic, not a head-to-head.
MacBook Neo vs MacBook Air M5 (also in the blind vote)
The only true pairing this round: same facts file, same goal. The briefs were not identical, though. Muse was told to show off whatever it does best; Argon was also asked to build a Blender 3D sequence. If you want to judge this pair blind, vote before you open the spoilers.
Reveal which model made this
Meta Muse Wonder Full (muse-wonder-full-1.0, max effort). Brief: show off what the model does best, from the P17 facts file and my footage.
Reveal which model made this
Gemini 4 Argon (Google, gemini-4-argon-high), max effort. Brief: same facts and footage, plus a Blender 3D sequence rendered on my RTX 4080 laptop.
Mac mini M6 vs a 64 GB M1 Max
Reveal which model made this
Gemini 4 Argon (Google, gemini-4-argon-high). Brief: a motion-designer showreel from my M6 benchmark facts.
Reveal which model made this
Gemini 4 Argon (Google, gemini-4-argon-high). Brief: a Blender 3D product sequence matched into my real footage.
Reveal which model made this
Gemini 4 Argon (Google, gemini-4-argon-high). Brief: a postable Short built for retention, hook in the first second.
Predicting the M6 MacBook Pro from my Mac mini M6
Reveal which model made this
Meta Muse Wonder 1.0 (muse-wonder-1.0, max effort). Brief: a 30-second showcase for the video, from my footage and its facts file.
Reveal which model made this
Meta Muse Wonder 1.0 (muse-wonder-1.0, max effort). Brief: a showreel-style showcase.
Reveal which model made this
Meta Muse Wonder Full (muse-wonder-full-1.0, max effort). Brief: the same showreel, retried at max effort.
Reveal which model made this
Meta Muse Wonder 1.0 (muse-wonder-1.0, max effort). Brief: a story-led director’s cut.
Reveal which model made this
Meta Muse Wonder Full (muse-wonder-full-1.0, max effort). Brief: the same director’s cut, retried at max effort.
Reveal which model made this
Meta Muse Wonder Full (muse-wonder-full-1.0, max effort). Brief: built to be posted, not as a showreel, after my note that the basic one was the best start.
Each of these was one model working alone from a frozen brief; I did not edit them. Build times were not logged for this round, so they are left out rather than estimated.
Where I landed after the original rounds
After the original September 27–28 rounds, my choice was Opus for creative videos. Astra stays on the mechanical work where it has done well for me: uploads, quality checks, encodes and research. I will rerun the frozen cases when a new Astra version ships, because this is a verdict about these briefs on these dates, not forever.
What would make this wrong?
Every case ran once per model, and run-to-run variance is large. A second Astra run of the same brief could land much better.
Views measure topic, title, packaging and channel as much as the video itself; the 301-to-53 pair had different titles and was checked only hours after posting. The public votes are self-selected and still tiny: as of September 28, the promo test had five counted votes and the Shorts test had none. Saying my preference here can also sway people before they vote.
Opus ran on my Claude subscription and Astra on my Codex plan. Each tool counts effort and tokens its own way, so “default” and “xhigh” are not equal compute budgets. My taste is in here too: I judged most rounds myself.
Try both experiments and tell me what you think
You have my take. Now I want yours. Watch both clips and pick the one that does its job better. No signup, and you can stop after any round.
Find both tests on the AI experiments page. The Shorts totals and promo totals reveal the models, so vote first if you want to start blind.
For a different task, I also ran a Claude Code and Codex comparison on blog graphics. Different method, so treat it as a separate result.
Get the build notes
Real AI experiments — what shipped, what failed, and the setups behind them. Straight to your inbox.
No spam, unsubscribe anytime · Privacy
You're in — check your inbox for a welcome note.