Skip to content
cccskills
FreePublished on GitHub

render-cosmic-mythology-voiceover

Assemble a faceless storytelling reel from a voiceover and curated still images. It distributes image cuts across the delivered narration, adds slow zooms, one opening hook line, and captions, then exports a finished video and poster.

OriginalShow the original description

Assemble a cosmic-mythology-voiceover reel from a config — one spoken voiceover carries the whole narrative while N curated stills in one chosen look are weighted beat-synced across the delivered VO duration (cut_dur = VO_dur times weight over the weight sum, so emotional beats hold longer), Ken-Burns-zoomed per still (scale 2x, center crop, zoompan, fade-in first and fade-out last), ffmpeg-concatenated, the VO composited under the picture (libx264 crf18 plus aac), the ONE on-screen hook line faded on over the open with a drawtext alpha window, and Whisper/VEED captions burned along the bottom — never in-world text on a still. This is the FREE deterministic assembly stage (weighted sequence plus Ken-Burns plus concat plus VO composite plus hook overlay plus caption burn); the VO and the stills come from create-vo-elevenlabs and create-image-fal. Use for the cosmic-mythology-voiceover format.

gooseworks-ai/goose-skills1,272 stars(GitHub 1,272 + cccskills 0)
Works withElevenLabs

Run score Not tested

See how to install

Good for

  • Assembling a narrated reel from still images
  • Giving emotional beats more screen time in a story video
  • Adding an opening hook and captions to a voiceover video

Files included (7)

  • SKILL.md5.6 KB
  • scripts/config.example.json9.7 KB
  • scripts/PIPELINE.md5.6 KB
  • scripts/README.md4.6 KB
  • scripts/render.py11.8 KB
  • skill.meta.json243 B
  • tests/smoke-test.md1.7 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

render-cosmic-mythology-voiceover

Assemble a cosmic-mythology-voiceover reel from a config: a faceless, cinematic storytelling video where one spoken voiceover carries the whole narrative over a slow, weighted Ken-Burns zoom across curated stills in ONE locked look, with ONE on-screen hook line and burned captions. The narrator, voice, tone, story shape, visual world and art style are the recipe's user choices — this capability only assembles what it is given (the demo: a warm contemplative "the steady star, not the brightest" reframe over deep-indigo + gold cosmic stills). This capability is the FREE, deterministic assembly — the weighted beat-sync sequencing, the Ken-Burns render, the concat, the VO composite, the hook overlay, and the caption burn.

scripts/config.example.json is the worked example — reference only, never the default (Peerlark Optics "The North Star isn't the brightest", ~31s 1080×1920 9:16, 12 weighted Ken-Burns cuts); scripts/PIPELINE.md maps every config block to its production step and scripts/README.md documents the free assembly.

Run

There is a single runnable script — scripts/render.py (config-driven, ffmpeg + Pillow only, NO API keys and NO drawtext/libass required):

python3 scripts/render.py --config config.json --vo working/vo2/vo_atempo.mp3 \
  --stills-dir working/stills --out working/final.mp4 \
  [--words working/vo2/words.json] [--endcard working/endcard.png]

This is the FREE, deterministic assembly stage — it spends nothing. The paid inputs are separate capabilities — the spoken VO (create-vo-elevenlabs, ElevenLabs eleven_v3 from a tone-tagged script, atempo time-stretched so the delivered duration sets the timeline) and the 4–6 hero stills in one look pack (create-image-fal, Flux Pro 1.1, reused as repeats to reach the ~10–12 cuts). Given the VO + the stills + the per-cut weight array + the hook line, render.py distributes the cuts across the VO duration by the weighted formula, Ken-Burns-renders each still, concats, composites the VO, fades the hook line on over the open, burns the captions, and (if --endcard is passed) appends a brand end card → the master + a poster. Re-cuts reuse the existing VO / stills and spend nothing. See scripts/README.md §0 for the full arg contract.

Contract (the free assembly)

  • The spoken VO carries the narrative — no talking head, no sung song. The generated/supplied VO IS the audio bed (no music bed by default); do not add a presenter or a second bed.
  • Plan the timeline AROUND the delivered VO duration. The VO is atempo time-stretched (clamp the factor ≤ ~1.25 so the voice never chipmunks); its delivered length sets the timeline — never trim the VO to a pre-planned grid.
  • Weighted beat-sync, not a fixed grid. For each cut, cut_dur = VO_dur × weight / Σweights — heavier weights hold longer on the emotional beats (the open, the turn, the close); the setup cuts run shorter. Every cut stays proportional to the whole VO.
  • Ken-Burns per still. Render each still with scale 2×, center crop, and a zoompan to the configured zoom_end (~1.10); apply zoom_out on the flagged cuts; fade_in on the FIRST cut and fade_out on the LAST. Stills are reusable — the sequence repeats a few across the cuts.
  • ONE look, no in-world text. Every still reads in the single chosen look (the demo's: deep-indigo + gold + volumetric light); the reel's only text is the hook + the captions, added in post (the "no text, no words" descriptor keeps words off the stills).
  • ONE hook line, alpha-faded on over the open. Burn the single hook line over the OPEN only (fade in ~0.5s, hold, fade out ~0.6s) — never a persistent caption, never in-world. render.py does this with a PIL PNG + ffmpeg fade=…:alpha=1 (no drawtext dependency, since stock ffmpeg often lacks it); an ffmpeg drawtext alpha window is an equivalent alternative where available.
  • Captions from Whisper — bottom, white. VEED/Whisper subtitle burn tracks the spoken VO in the bottom third, white #FFFFFF. If the host ffmpeg lacks libass (no subtitles/ass filter), render the cues as timed PIL PNG overlays (ffmpeg overlay=…:enable='between(t,st,en)') at the same bottom placement — a free local Whisper + ffmpeg burn is the fallback to the VEED tier.
  • FFmpeg composite, deterministic, FREE. ffmpeg-concat the Ken-Burns clips, composite the VO under the picture (libx264 crf 18 + aac 192k), burn the hook alpha-fade + the caption track → a 1080×1920 h264+aac master (~31s). No paid calls, no keys (the local caption fallback is free).

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

<slug>

FreeSummary

The supplied material contains only placeholder text for the skill’s purpose, inputs, steps, and completion criteria. It does not provide enough information to describe a task or result reliably.

  • No use case can be identified from the supplied material
  • Purpose is unspecified
  • Inputs and expected results are unspecified
gooseworks-ai/goose-skills1.3KUpdated Oct 27, 2026

ad-angle-miner

FreeSummary

Research supported advertising angles using buyer context, current product facts, customer language, and observed ads. Turn the evidence into static ad, video, or copy ideas, matching video concepts to available recipes. Scores rank ideas for testing; they do not predict results.

  • Finding evidence-backed angles for a product campaign
  • Developing static ad or video concepts from customer research
  • Writing headline and primary-text options for ads
gooseworks-ai/goose-skills1.3KUpdated Oct 27, 2026

Analyze campaign data from Google, Meta, and LinkedIn to find strong and wasteful spend. The skill checks funnel performance and test results, then recommends which campaigns to pause, scale, or test and how to shift budget across channels.

  • Finding campaigns and ads that waste budget
  • Comparing performance across Google, Meta, and LinkedIn
  • Planning specific budget shifts and follow-up tests
gooseworks-ai/goose-skills1.3KUpdated Oct 27, 2026

Compare ad spend and signups with downstream outcomes to calculate the cost of each qualified lead. The skill checks tracking coverage, accounts for how long leads need to mature, and groups creatives into actionable categories with confidence notes.

  • Compare true qualified-lead costs across creatives
  • Find low-CPA ads that bring poor-quality leads
  • Check whether signups can be linked to downstream outcomes
gooseworks-ai/goose-skills1.3KUpdated Oct 27, 2026

Prepare the intake for a Meta ad campaign by reviewing available brand information first, stating reasonable assumptions, and asking only questions whose answers could affect budget, claims, or legal exposure. It records stable brand facts, a campaign brief, and what was asked versus assumed.

  • Prepare a Meta ad campaign when brand facts are missing
  • Clarify budget and timing before campaign planning
  • Record approved claims and audience restrictions
gooseworks-ai/goose-skills1.3KUpdated Oct 27, 2026

ad-policy-check

FreeSummary

Review ad copy, image text, visuals, and people against platform and brand category rules. It suggests honest fixes and needed disclosures, then flags issues requiring human or legal review, with a separate result for each ad and platform.

  • Checking ad copy and visuals before launch
  • Reviewing creator ads for required disclosures
  • Fixing a platform disapproval and recording the issue
gooseworks-ai/goose-skills1.3KUpdated Oct 27, 2026

See all skills by gooseworks-ai

Report a problem with this skill