How to download images from a Substack post in full size

This guide is for writers who want the images from their own Substack posts back, for an archive, a book or a move to another platform, and for readers saving an image they have permission to use. Substack shows each image in the post at up to 1456 px wide, but it keeps the file you uploaded, and you can get that size back.

What Substack serves

An image in a post has an address like https://substackcdn.com/image/fetch/$s_!Xyoo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F…_8000x4000.png. The w_ part sets the width. The page offers each image at w_424, w_848, w_1272 and w_1456, and the part after the last slash is the uploaded file itself, written in encoded form. Each image is also a link to the same address with no w_ part.

I fetched three images from two public posts and read their real pixel size from the files:

Uploaded fileLargest size on the page (w_1456)Address without w_Uploaded file itself
PNG, 8000×40001456×728 px, JPEG, 59 KB8000×4000 px, JPEG, 660 KB8000×4000 px, PNG, 3.9 MB
PNG, 1410×5561410×556 px, PNG1410×556 px, PNG1410×556 px, PNG
JPEG, 800×600800×600 px, JPEG800×600 px, JPEG800×600 px, JPEG

Substack did not enlarge the smaller images, so an upload 1456 px wide or less already arrives at full size on the page. Wider uploads are scaled down to 1456 px. The address without w_ brings back every pixel, but Substack sent the large PNG as a JPEG. Only the uploaded file is byte for byte what the writer uploaded.

Method 1: Open the link or edit the address (no install)

  1. Right-click an image in the post and choose "Open link in new tab". The image is a link to the full-size copy, the one without w_. Save it from the new tab.
  2. If you opened the image itself instead ("Open image in new tab"), delete w_1456,c_limit, from the address and press Enter.
  3. For the exact uploaded file, copy the part of the address that starts with https%3A%2F%2F, replace each %3A with : and each %2F with /, and open the result. It starts with https://substack-post-media.s3.amazonaws.com/public/images/.

Method 2: Every image in a post as one ZIP

  1. Add PixLasso to Chrome or Edge and open the post.
  2. Click the PixLasso icon, then Deep scan so it scrolls the post and picks up the images that load late.
  3. Set Min size to 300px to skip the avatars and the publication logo. Post images that link to a larger copy show an HD badge.
  4. Click Download. You get one ZIP, numbered in the order the images appear in the post (converting a whole batch to JPG is a Pro feature).

With Full-size originals on, which is the default, PixLasso downloads the link around each image, the address without w_. In my test that was 8000×4000 px for the 8000 px upload, against 1456×728 px for the largest size the page lists. You get the full pixel size, in the format Substack sends it in, so a large PNG may come back as a JPEG. If you need the exact PNG, use the last step of Method 1 for that image.

The free version saves 30 images per batch, and each press after that saves the next batch. Pro, a single US$9.99 payment, saves all of them in one press. Neither method opens paid posts: they only save the images the page already shows you.

Copyright

Images in your own posts are yours to download; images in someone else's post belong to that writer or to whoever they licensed them from, so ask before you reuse them.


Measured on 9 November 2026: I fetched two public posts, read the image addresses in their HTML, downloaded each size and read the pixel size from the image header, then ran PixLasso's URL code on the same addresses. I made PixLasso; the first method needs no extension.