Every creator hits the same wall: you finished the video, exported the MP4, uploaded to YouTube — and forgot the custom thumbnail.
Your best frame is already inside that file. You just need to grab it.
Most online tools make you upload the entire video to their server. That is slow for large files, risky for unreleased content, and often ends with a watermark unless you pay.
So I built can draw any frame to a bitmap. Download via blob URL. Done.
The flow in FrameSnap:
User selects file → video loads in memory → set currentTime → drawImage to canvas → export PNG/JPG
No API route handles the video. No S3 bucket. No queue.
Trade-offs I accepted:
| Works great | Does not work |
|---|---|
| Local MP4, WebM, MOV, MKV | YouTube watch-page URLs (platform blocks direct access) |
Direct .mp4 URLs | DRM-protected streams |
| Batch export via auto-snap intervals | Replacing Photoshop for layered design |
For the 80% case — "I have an exported MP4 and need a still" — client-side is faster and more private than upload-and-wait.
Features I cared about as a user
These shaped the product more than any framework choice:
Auto-snap presets — Quick 6 frames, or every 2%/4%/5% of video length. Picking one thumbnail from a 15-minute video by manual scrubbing is painful.
Download all as ZIP — Compare candidates side-by-side before adding text in Canva.
Original aspect ratio — Portrait video stays portrait. No black bars from forcing everything into 16:9.
JPG quality slider — YouTube's custom thumbnail limit is 2 MB. PNG screen recordings blow past that; JPG at 90% usually does not.
Direct MP4 URL tab — If your file is hosted at https://yoursite.com/demo.mp4, paste and go. Not a Google Drive preview link — an actual file URL.
Stack (for the curious)
— batch downloads
Vercel — deploy at
- Drop an MP4 (or paste a direct video URL)
- Scrub or use auto-snap
- Export HD (1280×720) PNG/JPG
- Upload to YouTube Studio
I also wrote a longer comparison guide on the site:
Blog:
YouTube:
LinkedIn:
Support the project
FrameSnap is free with no export limits. If it helps your workflow, you can . Feedback welcome in the comments — especially if you hit a codec or browser edge case I have not seen yet.
SOCIAL SHARE CARD GENERATOR