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:

  1. Open the video, scrub to a good frame
  2. Screenshot it
  3. Open Canva or Figma
  4. Add the song title and artist name
  5. 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-styles to 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.