Numbers
The Reels were called boring, so we measured them: 28.7 seconds down to 14.7
After feedback that the kokkekunst.no Reels were boring, we timed one at 28.7 seconds, and more than a third of it was reading and waiting. Tightening the hook, scenes, text page and ending brought it to 14.7 seconds. We also built a pull of watch-time numbers from Instagram, but on 9 October it showed an explanation instead of numbers.
On 9 October 2026 Henning passed on some feedback about the Instagram Reels for kokkekunst.no: they were “very boring”. The newsroom engine draws one Reel per news story in code. It has an opening motif, a few scenes that show what the story is about, a text page and a closing “serving” shot. A Claude-written script (the engine calls it “the director”) picks the mood, the light and the scenes.
“Boring” is hard to fix directly, but it can be broken into parts you can time. So the first thing we did was time one Reel.
The measurement
The Reel we timed was for one of the wine-list stories. The commit and the publisher doc record each segment’s length.
| Segment | Length |
|---|---|
| Hook (opening motif and title) | 4.5 s |
| Three scenes | 3.8–4.8 s each |
| “Kort fortalt” (“in short”) text page | 6.8 s |
| Serving (closing shot) | 4.9 s |
| Total | 28.7 s |
The text page and the closing shot alone come to 11.7 seconds. That is more than a third of the film, spent reading a block of text or waiting for the ending.
What changed
All five changes went into one commit, and the engine’s Reel version went to 9. Bumping the version makes cached videos render again.
- The hook. The title now lands from the first frame and can be read in under a second. The opening motif is cut while something is still happening, at most 2.8 seconds in, not after it has finished. Sounds scheduled after the cut are dropped.
- The scenes play 1.25 to 1.5 times faster than they are drawn. The motion is the same, just tighter. A quote scene is only sped up 1.15 times because it has to be read. A Reel marked sober, which the engine uses for sensitive stories, plays at the old speed.
- No reading page when there are scenes. The story’s lead paragraph moves into the Instagram caption. The “Kort fortalt” page stays only when the script has no scenes or the Reel is sober, and then it gets at most 4.2 seconds.
- The serving shot is 2.2 seconds, down from 4.9.
- The cap dropped from 34 seconds to 18 (24 for sober Reels). Anything that doesn’t fit is cut from the end. The director’s prompt now asks for two or three strong scenes and short quotes instead of up to four.
Result: the same wine-list Reel came out at 14.7 seconds, and other stories at about 12 seconds. Across the Reels, the build plan puts the change at roughly 24–29 seconds before and 12–15 seconds after.
The second pass, the same evening
Once the rest was shorter, the podium became the longest part left. That is the animation where the podium rises for a competition result, and it ran 4.3 seconds. A follow-up commit about three hours later plays it 1.3 times faster (version 10).
The same commit dealt with a different kind of boring. On 8 October, six Reels were waiting for approval. Four had the same gold light and three opened with the same clock motif. Two of those clocks happened because the director wanted a podium where no result had been entered, and the fixed rules fell back to the clock. Light and opening had been changed by hand on four of the six jobs. Now the director gets an extra line before the story listing the motif, colour grade and scene types of the last six Reels. It is asked to pick a different grade from the last two, and a different motif from the last one when the story allows. The prompt still says the story comes first: a wine story is a wine story.
The fallback rules got the same constraint: they skip the last two grades as long as another one is available. A test checks that.
The numbers we don’t have
Shorter isn’t the same as better. The only way to know whether 14.7 seconds keeps more people watching than 28.7 is to ask Instagram. So the first commit also added a watch-time pull.
Every six hours, the engine fetches media insights for Reels sent in the last 60 days and stores one row per job. The row holds views, reach, average watch time (ig_reels_avg_watch_time, in milliseconds), skip rate (reels_skip_rate, the share of viewers who skipped within the first three seconds), shares, saves, likes and comments. It also has an error field explaining why there are no numbers when there aren’t any. The sharing screen in admin shows the figures on each sent Reel and an average over recent ones. The pull only reads.
On 9 October it showed an explanation instead of numbers. Those metrics need an extra permission that the access at the time did not include. The commit added it to the documented setup recipe and made the sharing screen explain the gap instead of showing blanks.
So the 14.7 seconds is a measurement of the video, not of the audience. We knew the Reels were about half as long. We didn’t know if anyone watched them longer.
What happens next
The build plan sets the next step: once five to ten Reels have watch-time data, compare skip rate and average watch time against the old ones and adjust from there. Music from a licensed library is noted as the next big improvement, and it also needs Henning.
As of 9 October, the honest status was this. We had cut 14 seconds, mostly reading and waiting, on the strength of one complaint and one timed video. The measurement that would show whether it worked was built and still showed an explanation instead of numbers.