A travel channel I run (@abujiggy) already had long videos in Studio. I wanted a Mon/Wed/Fri Shorts cadence without inventing AI footage or re-uploading old vertical clips.
So I stopped storyboarding dishes that were not on camera and built a local cut pipeline.
What I actually shipped
- Local pipeline under
shorts-week1/:build_short.py+make_week1.py - Three vertical Shorts cut from Studio downloads of existing longs (
7GqykAQc1FwBaghdad in 48 Hours,nsAYiqa61VgGlobal Village Dubai) — not AI footage, not re-uploads of old Shorts - Outputs at 1080×1920, 30 fps, H.264 High CRF 18, AAC 192k / 48 kHz, faststart:
01-haj-zbala.mp4(17.3s, caption “Older than Iraq itself”)02-global-village.mp4(21.0s, caption “Dubai Global Village”)03-mutanabbi-street.mp4(19.9s, caption “Baghdad’s book street”)
- Hook captions (Poppins ExtraBold, white + dark shadow/outline) for 0–2.2s with fade
- Segment audio kept in sync with 40 ms fades at cuts and a 0.35s fade-out at the end
- Approved for Mon/Wed/Fri 7:30 PM Dubai the week of 5 Oct — now uploaded and scheduled in Studio after passing its copyright checks
- Related site work: embedded matching YouTube players into abujiggy.com posts over REST with per-post
context=editbackups (players stay blank until Complianz marketing cookies are accepted)
This is not a growth-hack post. It is the cut bar before Studio.
Why the titles changed
The plan said kahi & geymar, Aquarium, and masgouf. Frame-by-frame contact sheets from the long downloads said otherwise:
- Baghdad long: ambient walk — Al Mutanabbi book market, a juice stall, souks, Haj Zbala shopfront/interior wall, Al Rasheed night drive. No kahi/geymar. No masgouf.
- Global Village long: night walk — candy pavilion, Ferris wheel, carnival lights. No Aquarium. No food close-ups.
I renamed files and captions to match what is on camera (Haj Zbala wall/sign; Global Village night walk; Al Mutanabbi books + nearby juice stall). The Iraqi-food-in-Dubai briefs still need new filming.
Softness and blur-fill (honest tradeoffs)
Sources are 720p. A 9:16 centre crop is roughly 405 px wide, then upscaled about 2.67× to 1080 — softer than native vertical.
For wide signs and the Ferris wheel I used blur-fill (blurred full-frame background + letterboxed sharp foreground) so the whole subject stays in frame instead of getting cropped off. Centre-crop stays the default for tighter shots.
What I refused to invent
- No fake “kahi Short” filename when the footage is a juice-shop wall
- No subscriber, view, or “this will beat the food median” forecasts
- No upload until the stills and titles were approved
- No claim that the juice at Haj Zbala is on camera (it is not)
Ship checklist (if you copy the pattern)
- Download the long from Studio; inspect with contact sheets before you name the Short.
- Keep a small script (
build_short.py) that takes segment lists: start/end, crop vs blur-fill, crop centre. - Encode once to a Shorts-safe profile (1080×1920, 30 fps, H.264 High, AAC) and ffprobe duration/audio.
- Rename to what is visible; leave dishes that are not in the long for a future shoot.
- Get human approve on stills + titles before Studio upload/schedule.
FAQ
Is this a mustafa.net video product?
No. It is a ship log for a local ffmpeg cut pipeline on a travel channel. Closest related notes on this site: yesterday’s Travelpayouts tracking ship for the same blog stack, and Whisper.cpp on Ubuntu where ffmpeg shows up as the boring audio prep step.
Why not AI-generated B-roll?
I already had real long footage. Cutting what exists is faster to trust than synthesizing plates that never happened.
Why not upload in the same session?
Approve stills and titles first. Studio copyright check on ambient beds is still a human pass before the Mon 7:30 PM Dubai slot.
