I already have avsync for syncing separately-recorded audio to video. The next annoying step in my cover workflow? Thumbnails.
The problem
Every time I post a cover, I have to:
- Open the video, scrub to a good frame
- Screenshot it
- Open Canva or Figma
- Add the song title and artist name
- Export
It takes like 3-5 minutes. But it’s minutes of context-switching that I dread every single time.
What I built
thumbgen - a CLI that extracts a frame from your video and adds styled text overlay. One command, done.
thumbgen video.mp4 "Castle of Glass" "Linkin Park"It picks a frame from the middle of the video (or you can specify a timestamp), analyzes the image colors, and adds text that actually stands out.
Features
- 5 styles - minimal, bar, blur, corner, bold. Generate all with
--all-stylesto compare - Auto colors - detects if background is dark/light and picks contrasting text
- Subtle background blur - makes text readable against busy backgrounds
- Optional artist - just pass the title if you don’t need artist name
Try it
npm install -g thumbgen-cli
thumbgen video.mp4 "Song Title"Between avsync and thumbgen, my cover posting workflow is now: record, sync, thumbnail, upload. All from the terminal.