Skip to content

v0.27.0

Latest

Choose a tag to compare

@github-actions github-actions released this 09 Nov 16:28
· 5 commits to main since this release
a6728f1

Highlights

Five contributor tools for working on footage you already have, a stats loop for what you publish, and a copy lint on every public word.

  • Real recorded sound effects, free: sfx_search.py finds Creative Commons sounds on Freesound through Openverse, with no key, and writes a credit file beside each one (#181, thanks @gulnarjbl).
  • Music that ducks under speech: addmusic.py --duck lowers the bed while someone talks and lets it recover in the pauses; --events drops sound effects at set times (#161).
  • Subtitle files: captions.py --srt --vtt writes SRT and WebVTT beside the caption JSON, split at sentence ends and pauses (#167).
  • Vertical cuts that follow a face: cutdown.py --mode track keeps one person in a 9:16 crop and holds steady on a cut or a second face (#163).
  • Highlight reels: highlights.py picks the final takes from a word-timed transcript and hands the ranges to cutdown.py (#162).

Thanks to @AsharibAli for #161, #162, #163 and #167.

Also new: youtube_stats.py and the youtube-stats skill (how each video does, saved as snapshots), copy_lint.py wired into video jobs, uploads and CI, a Python tests workflow, and a project site.

Heads up: addmusic.py now mixes at the levels you set instead of halving both tracks, so fixed-level mixes come out about 6 dB louder. Run qc.py --render out.mp4 --fix for delivery loudness as before.

All commits

  • Release v0.27.0: sfx_search.py, addmusic ducking and timed effects, SRT/VTT captions, face-tracked cut-downs, highlights.py, youtube_stats.py, copy lint, the Pages site (939e37d)
  • FIX: examples/ds-release-649 marks its browser window data-qc="product", so qc.py --layout reports the product's own UI apart from the video's text (da0e038)
  • DOCS: the agent skill names the tools merged since v0.26.0: sfx_search.py for real recordings, addmusic.py --duck and --events, captions.py --srt/--vtt, cutdown.py --mode track and highlights.py, and says to check a found sound's licence on Freesound before commercial use (7f0486d)
  • FEAT: captions.py --srt and --vtt write subtitle files beside the caption JSON, split at sentence ends and pauses, and convert existing caption JSON offline (#167) (164efdd)
  • FEAT: addmusic.py --duck lowers the music under speech and lets it recover in the pauses, and --events places sound effects at set times; fixed-level mixes no longer halve both tracks, so they come out about 6 dB louder than before (#161) (5288c44)
  • FEAT: cutdown.py --mode track keeps a face in frame across a social crop, holding the last good position on a cut, a second face or a far jump, with OpenCV only needed for that mode (#163) (f2b1229)
  • FEAT: highlights.py picks the final takes from a word-timed transcript and writes the ranges as cutdown.py segments, so a long recording becomes a reviewable highlight reel (#162) (e39510f)
  • FEAT: sfx_search.py finds and downloads Creative Commons sound effects from Freesound through Openverse, free with no key, and writes a credit file beside each one (#181) (8f15d97)
  • FIX: the Pages site works and leads with the Digital Samba videos: the stage slider and copy button died on a JSON parse error (raw newlines in the stage data), the qc command shown now carries the flags that produce its output, a favicon ends the 404s, social cards get twitter:card and landscape images, the small type step is 16px on desktop, and the front page's band, hero clip, list of videos and routes table put the release-notes work first (24996a0)
  • FIX: the Pages site's hero clip is published: site/media/*.mp4 was caught by the *.mp4 ignore, so the live page showed only the poster (1c41d41)
  • FEAT: the Pages site takes the Digital Samba design system (Sergiy Pasichnyk's restyle as built in ds-calendar): system UI type, DS blue actions, a navy field, radii 4/8/12, and the footer says it is not made by Anthropic (f8a0d6b)
  • FEAT: the Pages site redesigned with taste-skill (the sentence is the layout): a live clip inside the headline, a slider through the five pipeline stages with real commands and costs, one template for the use-case pages, and every page passing copy_lint and taste-skill's lint and inspector (63a439d)
  • FIX: the Pages site passes taste-skill's lint: no monospace outside code, no hairline dividers or outlined boxes, Instrument Sans instead of a default face (ab39da3)
  • FEAT: a GitHub Pages site: the toolkit's front page and one page per use case (a Christmas video of your team, release notes from source, explainer shorts), plus the lesson on AI clips that freeze or loop (48c062e)
  • FEAT: tools/copy_lint.py is the first filter on anything public: dashes and stock AI or marketing phrasing are refused by video jobs and youtube_upload.py, flagged by voiceover.py, and a CI check lints each PR's new lines and commit subjects (600d0a6)
  • FIX: youtube_upload.py no longer warns that a scheduled upload came back private (it is private until publishAt by design); it warns when YouTube drops the publish time instead (911e50f)
  • DOCS: README shows the two parody-short Shorts (You're On Mute, The Great Return), linked to YouTube (0c80341)
  • FEAT: youtube_stats.py reports how each video does (views, likes, comments, and watch time, retention and traffic sources with the Analytics scope), snapshots every run for trends, and --github shows whether YouTube sends people to the repo; the youtube-stats skill reads the numbers (b322356)
  • CI: Python tests install the youtube extra, so the YouTube tool tests run instead of skipping (b3e2397)
  • DOCS: parody-short says how to start: the Modal endpoints it needs and a plain Remotion project with a LivingPhoto shot (ee378cc)
  • TEST: ltx_extend.py's seam-frame grab, join and chain, against a fake LTX continuation (no Modal) (f474c15)
  • CI: a Python tests workflow runs tests/python on any change to tools/, scripts/, tests or the registry (only the undefined-names lint ran before) (92b1a14)

Full Changelog: v0.26.0...v0.27.0