How to extract album art from mp3 — free, no upload
- Step 1Open the Album Art Extractor — Go to /audio-tools/album-art-extractor. Nothing loads from a server beyond the page and the FFmpeg WebAssembly core, which is fetched once and cached.
- Step 2Drop your MP3 onto the dropzone — The dropzone accepts MP3, WAV, FLAC, M4A, OGG, Opus, or video — but for this workflow you want the MP3 that carries the embedded cover. Only one file at a time on Free (
batchFiles: 1). - Step 3Let FFmpeg read the picture frame — Extraction runs immediately — there are no options to set. Internally FFmpeg runs
-an -vcodec mjpeg -frames:v 1, which discards the audio and writes the first embedded picture as a JPEG. - Step 4Preview the cover in the result panel — The extracted JPEG renders inline as an image so you can confirm it's the front cover (not a back-cover or artist photo) before saving.
- Step 5Download the JPEG — Click Download. The file saves as
<track>-cover.jpg— e.g.Midnight Drive.mp3producesMidnight Drive-cover.jpg. - Step 6Re-embed elsewhere if needed — To put a cover back into a file that's missing one, or to swap a low-res cover, use the ID3 tag editor — this extractor is read-only and never writes back to the MP3.
What the extractor actually does to an MP3
Behaviour is fixed — there are no user options. FFmpeg command: -an -vcodec mjpeg -frames:v 1.
| Step | What happens | What this means for your cover |
|---|---|---|
| Audio stream | Dropped (-an) | No audio is decoded or re-encoded; the MP3 itself is untouched (read-only) |
| Picture stream | Decoded, then re-encoded with the mjpeg encoder | Output is always a JPEG, even if the embedded picture was a PNG — transparency is flattened to white/black |
| Frame count | -frames:v 1 — first picture only | If the MP3 has both a front and back cover (two APIC frames), you get the first one only |
| Resolution | No scale filter applied | Pixel dimensions are preserved — a 1500×1500 source stays 1500×1500 |
| Output name | <track-basename>-cover.jpg | Song.mp3 → Song-cover.jpg; the extension is forced to .jpg |
Where MP3 cover art comes from (and what you'll get)
Typical embedded-art resolutions by source. The extractor preserves whatever was embedded — it cannot upscale a small cover.
| Source of the MP3 | Typical embedded cover | Extractor output |
|---|---|---|
| iTunes Store / Apple Music purchase | 600×600 or 1500×1500 JPEG | Same dimensions, re-encoded JPEG |
| CD ripped in iTunes / Windows Media Player | Whatever the lookup returned — often 300×300 to 600×600 | Same dimensions; small covers stay small |
| Bandcamp / indie download | Full front cover, often 1400×1400+ | Same dimensions — best-case quality |
| Amazon MP3 / older stores | 500×500 JPEG | Same dimensions JPEG |
| Self-rip with no cover lookup | No APIC frame | No embedded album art found in this file. |
Tier limits (audio family)
Per-file size and duration caps for the audio tools. Cover extraction is well under any of these for a normal song.
| Tier | Max file size | Max duration | Files at once |
|---|---|---|---|
| Free | 50 MB | 30 min | 1 |
| Pro | 200 MB | 120 min | 10 |
| Pro-media | 100 GB | Unlimited | 100 |
| Developer | 100 GB | Unlimited | 100 |
Cookbook
Real MP3 scenarios — what FFmpeg's -vcodec mjpeg -frames:v 1 produces in each case.
iTunes purchase → playlist thumbnail
An Apple Music / iTunes Store MP3 (or M4A) carries a 1500×1500 cover. Dropping it gives you that cover as a JPEG you can crop into a playlist tile.
Input: Daft Punk - Get Lucky.mp3 (APIC: 1500x1500 JPEG) FFmpeg: -an -vcodec mjpeg -frames:v 1 Output: Daft Punk - Get Lucky-cover.jpg (1500x1500 JPEG) Dimensions preserved — no upscale, no downscale.
CD rip with a small embedded cover
A CD ripped years ago may only carry a 300×300 cover. The extractor returns it faithfully — it cannot invent detail that isn't there.
Input: Track01.mp3 (APIC: 300x300 JPEG) Output: Track01-cover.jpg (300x300 JPEG) For a higher-res cover, fetch a fresh one and re-embed with the ID3 tag editor — this tool never upscales.
PNG cover flattened to JPEG
ID3v2.3+ allows PNG artwork. Because the encoder is always mjpeg, a PNG cover (including one with transparency) comes out as a JPEG with no alpha channel.
Input: Single.mp3 (APIC: 1000x1000 PNG, transparent corners) Output: Single-cover.jpg (1000x1000 JPEG, corners filled) Transparency is not preserved — JPEG has no alpha channel.
MP3 with no embedded art
A self-rip with no cover lookup has no APIC frame. FFmpeg writes a 0-byte file, which the tool catches and turns into a clear error.
Input: Voice Note.mp3 (no APIC frame) Result: "No embedded album art found in this file." Nothing downloads — add a cover with the ID3 tag editor instead.
Front + back cover embedded — you get the front
Some boxset rips embed two pictures (front cover, back cover). -frames:v 1 writes only the first picture stream, which is conventionally the front cover.
Input: Disc1Track1.mp3 (APIC #1: front 1400x1400, APIC #2: back) Output: Disc1Track1-cover.jpg (front 1400x1400 only) The back cover is not extracted — only the first picture.
Edge cases and what actually happens
MP3 has no embedded artwork
No artworkIf the ID3 tag has no APIC frame, FFmpeg produces a 0-byte output. The tool detects this and throws No embedded album art found in this file. rather than handing you an empty download. Add a cover with the ID3 tag editor or look one up via MusicBrainz Picard, then re-extract if you want a standalone copy.
Embedded cover is a PNG
Re-encoded to JPEGThe encoder is hard-wired to mjpeg, so a PNG APIC is decoded and re-encoded as JPEG. The image is preserved at the same pixel dimensions, but it becomes a JPEG — any transparency is flattened. There is no option to keep PNG output; this is by design of the fixed FFmpeg command.
Two pictures embedded (front + back)
First picture only-frames:v 1 limits extraction to a single frame, so a file carrying both a front and a back cover yields only the first picture stream FFmpeg finds (usually the front). There is no UI to pick which one — by design, this tool targets the primary cover.
DRM-protected download (Apple Music / Spotify offline)
Cannot processStreaming-service offline files are DRM-encrypted (.m4p, protected .ogg). FFmpeg cannot demux the protected container, so extraction fails. Only DRM-free files — purchased MP3s, your own rips, files you produced — can have their art extracted.
Corrupted or truncated MP3
ErrorIf FFmpeg can't read the tag region (truncated upload, broken header), extraction throws the same No embedded album art found in this file. message because no valid picture stream is produced. Re-download or re-rip the file and try again.
Low-resolution embedded cover
Preserved as-isA 150×150 thumbnail comes out 150×150 — the tool never upscales. If you need a high-res cover for print, the embedded image is your ceiling; source a larger image elsewhere and re-embed it with the ID3 tag editor.
File over the tier limit
RejectedFree tier caps a single file at 50 MB / 30 min. A normal song is a few MB, but a long DJ-mix MP3 or a podcast episode can exceed 30 minutes and be blocked on Free. Pro raises this to 200 MB / 120 min.
You expected the original byte-for-byte image
By designThis tool re-encodes the picture with mjpeg rather than copying the raw embedded bytes. The dimensions are identical, but the JPEG compression is FFmpeg's, not the original encoder's. For most uses (thumbnails, social, reference) this is indistinguishable; if you need the exact original bytes, that capability is not provided here.
Frequently asked questions
Does the tool give me the exact original image bytes?
No. It decodes the embedded picture and re-encodes it as a JPEG using FFmpeg's mjpeg encoder. The pixel dimensions are preserved (no scaling filter is applied), but the JPEG compression is FFmpeg's rather than the original encoder's. For thumbnails, social posts, and reference copies this is visually equivalent; if you specifically need the byte-identical original, this tool doesn't provide that.
Can I choose PNG output or a different resolution?
No. The tool has no options at all — no format dropdown, no resolution slider, no quality dial. Output is always a single JPEG at the embedded image's native dimensions, named <track>-cover.jpg. That fixed behaviour is the whole point: drop the MP3, get the cover.
What if my MP3 has no embedded artwork?
You'll see No embedded album art found in this file. and nothing downloads. To add a cover, use the ID3 tag editor to embed one, or let MusicBrainz Picard fetch and embed correct artwork from the MusicBrainz database, then re-extract if you want a standalone copy.
My MP3 has a front and back cover — can I get both?
No. The extractor runs -frames:v 1, which writes only the first embedded picture (conventionally the front cover). There's no UI to select the second picture. If you need the back cover specifically, it isn't accessible through this tool.
Is my MP3 uploaded anywhere?
No. Extraction runs entirely in your browser via FFmpeg compiled to WebAssembly. The MP3 never leaves your device — no server sees the audio or the cover. The only thing recorded server-side (if you're signed in) is an anonymous usage counter, with no file content.
What resolution will the cover be?
Exactly the resolution that was embedded. iTunes purchases are usually 600×600 or 1500×1500; CD rips are often 300×300 to 600×600; Bandcamp downloads are frequently 1400×1400 or larger. The tool never upscales — a small embedded cover comes out small.
Does it work on M4A and FLAC too, or only MP3?
The same tool reads embedded art from M4A (MP4 covr atom) and FLAC (embedded picture block) as well — the FFmpeg command is format-agnostic. See the FLAC cover extraction guide for the lossless workflow, or the save-cover-from-any-audio guide for mixed libraries.
Can I extract art from a streaming download?
No. Apple Music and Spotify offline files are DRM-protected; FFmpeg cannot open the protected container, so extraction fails. Only DRM-free files — purchased MP3s, your own CD rips, files you produced — can have their art extracted.
Why is the file named '-cover.jpg'?
The output filename is derived from the input by stripping the extension and appending -cover.jpg. So Get Lucky.mp3 becomes Get Lucky-cover.jpg. This keeps extracted covers grouped next to their tracks alphabetically.
Will extracting the cover change my MP3?
No. The tool is read-only — it decodes the audio file in memory to pull the picture and writes a new JPEG. Your original MP3 file on disk is never modified. To actually edit the embedded tag (replace or remove the cover), use the ID3 tag editor.
How big a file can I process for free?
Free tier handles one file up to 50 MB / 30 minutes. A normal song is a few MB, so this is rarely a constraint. Long DJ mixes or full podcast episodes can exceed 30 minutes — Pro raises the cap to 200 MB / 120 minutes, and Pro-media removes the duration limit entirely.
Can I automate this for a whole folder of MP3s?
The browser tool processes one file at a time on Free (up to 10 at once on Pro). For folder-scale batch extraction, pair the @jadapps/runner and POST to the local runner endpoint — the album-art-extractor exposes no options, so the payload is just the file. Everything still runs locally; no MP3 is uploaded.
Privacy first
Every JAD Audio tool runs entirely in your browser via FFmpeg (WebAssembly) and RNNoise. Your audio files never leave your device — verified by zero outbound network requests during processing.