Download a Facebook Ad Video Thumbnail: 3 Ways
There is no button in the Meta Ad Library to download a Facebook ad video's thumbnail, so you have to get it another way. The three that work are a screenshot of the paused first frame (quick, lowest quality), the poster image URL from your browser's DevTools (decent, but the link expires), or, best of all, downloading the HD video and extracting the exact frame with ffmpeg.
I save a lot of first frames. When I'm briefing a new batch of video ads, the opening frame is the single image I care about most, because it is the thing a thumb either stops on or scrolls past. Here is how I get clean ones, and what I do with them.
Why would you want a Facebook ad's thumbnail or first frame?
A video ad in the feed starts as a still image. Autoplay kicks in fast, but for that first moment the person sees one frame, and on slow connections or with autoplay off they may see only the cover image. That frame does the job a headline does on a blog post.
When I study competitor video ads, I pull the first frame for three reasons.
Scroll-stop patterns. Lay twenty first frames from one niche side by side and patterns jump out. Big text overlays, a face looking at the camera, a product mid-action, a messy "before" shot. You can't see those patterns while watching ads one at a time.
The hook frame. The first frame and the first spoken line usually work as a pair. I save the frame, then write the opening line next to it. Our guide to pulling hooks from competitor ads goes deeper on the hook side, and if you want the spoken words in text form, see how to transcribe competitor video ads.
Storyboarding. For ads that have run a long time, I don't stop at frame one. I pull one frame per second and lay them out as a contact sheet. That gives me the ad's structure on a single page: hook, problem, demo, proof, offer. It is the fastest way I know to brief an editor on "make something shaped like this".
Is the thumbnail the same as the first frame?
Not always, and the difference matters.
When an advertiser uploads a video to Meta, they can pick a thumbnail. Meta suggests frames from the video, and advertisers can also upload a custom image. So the cover image you see before the video plays might be frame one, a frame from the middle, or a separate designed image that never appears in the video at all.
In practice, a lot of performance advertisers make the first frame and the cover the same image on purpose, because a jump from cover to a different opening frame can feel jarring. But you can't assume it. If you want the cover image specifically, use the DevTools method below. If you want what the viewer sees once the video starts playing, extract the frame from the video file.
Method 1: How do you screenshot the first frame?
This is the method everyone tries first, and it is fine for a quick reference.
- Open the ad in the Meta Ad Library at facebook.com/ads/library.
- Click the video to open it larger, or open the ad's detail view.
- Play it, then pause on the frame you want. To get frame one, let it load and pause immediately, or scrub back to zero.
- Take a screenshot. On Mac, Cmd+Shift+4 lets you drag a box. On Windows, Win+Shift+S opens the Snipping Tool.
The weakness is quality. You are capturing the player as it appears on your screen, at whatever size the Library renders it, with whatever compression the preview stream uses. The Library often plays a lower-quality stream in its preview, which is why videos can look soft there. Our post on Ad Library video quality explains why that happens. You also risk catching a play button, a progress bar or your cursor in the shot.
For a Slack message saying "look at this hook", a screenshot is enough. For a swipe file you will reuse, I want something better.
Method 2: How do you get the poster image with DevTools?
HTML video players often have a poster image: the still shown before playback starts. When the Ad Library shows a video ad, the video element usually carries a poster attribute pointing to the cover image hosted on Meta's CDN. You can grab it.
- Open the ad in the Ad Library in Chrome.
- Right-click on the video and choose Inspect. DevTools opens on the Elements tab.
- Find the
<video>element near the highlighted line. Look for aposter="..."attribute. If you don't see it on the video itself, the cover may be a separate<img>sitting on top of the player, so check the nearby elements. - Right-click the URL and open it in a new tab, then save the image.
You can also use the Network tab. Reload the page with DevTools open, filter by Img, and look for an image that matches the cover. The DevTools download guide walks through the Network tab in detail for the video file itself, and the same approach works for images.
This method gives you the cover image as Meta serves it, which is better than a screenshot. It is still whatever size Meta chose to serve for the preview, which may be smaller than the full video resolution. And it only gives you the cover, not any other frame.
Method 3: How do you extract the exact frame with ffmpeg?
This is what I actually do. Download the video in its original HD quality first, then pull frames from the file. You get full resolution, no player chrome, and any frame you want.
Here is how I do the download step. I use our free extension, the Meta Ad Library Downloader, which adds a Download button to every ad in the Library and saves the video in original HD with no watermark. It saves the video and images, not a separate thumbnail file, so the frame extraction happens in ffmpeg. If you want the other download routes compared, the full guide to downloading Ad Library videos covers them.
Once you have the file (I'll call it ad.mp4), ffmpeg does the rest. It is free and runs on Mac, Windows and Linux. On a Mac with Homebrew, brew install ffmpeg installs it.
Save the very first frame:
ffmpeg -i ad.mp4 -frames:v 1 first.png
This reads the video and writes one frame as a PNG. PNG keeps full quality. Swap the extension to .jpg if you want smaller files.
Save a frame at a specific timestamp:
ffmpeg -ss 00:00:03 -i ad.mp4 -frames:v 1 at-3s.png
The -ss 00:00:03 jumps to the three-second mark. I use this when the real hook lands a beat after frame one, for example when the first frame is a blank or a fade. You can use fractions too, like -ss 00:00:01.5.
Save one frame per second:
ffmpeg -i ad.mp4 -vf fps=1 frame_%03d.png
This writes frame_001.png, frame_002.png and so on, one for each second of video. A thirty-second ad gives you about thirty images.
Build a single contact sheet image:
ffmpeg -i ad.mp4 -vf "fps=1,scale=320:-1,tile=6x5" -frames:v 1 sheet.png
This takes one frame per second, shrinks each one to 320 pixels wide, and tiles them into a grid of six columns and five rows on one image. Adjust the tile numbers to fit the ad's length. This is my storyboard page, and I drop it straight into briefs.
Which method should you use?
| Method | Quality | What you get | Main catch |
|---|---|---|---|
| Screenshot of paused frame | Lowest | Whatever is on screen | Preview stream is often soft; player controls get in the shot |
| DevTools poster image | Medium | The cover image as served | Signed URL expires; only the cover, not other frames |
| HD download + ffmpeg | Highest | Any frame, at full resolution | Two steps, and you need ffmpeg installed |
My rule: screenshot for a quick share, DevTools when I specifically want the designed cover image, ffmpeg for anything going into a swipe file or a brief.
What do I do with the frames once I have them?
A few habits that have paid off for me:
Name files by advertiser and date. Something like brandname_2026-10-11_first.png. When you have a few hundred, you will thank yourself.
Group first frames by niche. I keep a folder per niche with nothing but opening frames. Before a creative sprint I scroll through it for five minutes. It resets my sense of what the feed looks like right now.
Note how long the ad has been running. The Ad Library shows a "Started running on" date for every ad. Advertisers keep paying only for ads that work, so an ad that has run for months usually has a first frame worth studying. I put the run length in the file name or the swipe file notes.
Can you use a competitor's thumbnail in your own ads?
No. Study it, don't reuse it. The image belongs to the brand that made it, and running it as your own is a copyright problem and a fast way to look like a knockoff.
What you can take is the idea: the composition, the type of shot, the emotion, the text placement. In ad work we say copy the angle, not the asset. Shoot your own version with your own product. Our post on whether it's legal to download Facebook ads covers the research side in more depth. This is general guidance, not legal advice.
FAQ
Can I download a Facebook ad thumbnail directly from the Ad Library?
No. The Meta Ad Library has no download option for thumbnails, videos or images. You need a screenshot, the poster image URL from DevTools, or a downloaded video you can pull frames from.
Is the Facebook ad thumbnail the same as the first frame?
Not always. Advertisers can choose any frame from the video as the cover, or upload a custom image. Many use the first frame on purpose, but if you need the true first frame, extract it from the video file with ffmpeg.
What is the best quality way to save a frame from a Facebook video ad?
Download the video in original HD, then use ffmpeg to extract the frame as a PNG. The command ffmpeg -i ad.mp4 -frames:v 1 first.png saves the first frame at full resolution with no player controls in the shot.
Why did the poster image link I copied stop working?
Meta serves media through temporary signed URLs that expire. A link copied from DevTools works for a limited time and then returns an error. Open the image and save the file straight away instead of keeping the link.
Can I use a competitor's ad thumbnail in my own ads?
You shouldn't. The image belongs to the advertiser, and reusing it creates copyright risk. Use it to understand the composition and hook, then create your own version. This is not legal advice.
The Klipio extension adds a download button to every ad in the Meta Ad Library: one click per ad, or bulk-save a whole search as a ZIP with a searchable swipe file inside. Free, no sign-up.
Get the free Ad Library downloaderKlipio reads a competitor's live Meta ads, ranks them by how long they have been running — the honest signal that an ad is profitable — and turns the winning angle into on-brand creative for your own brand. 3-day free trial.
Start free — 3-day trial →

