Just paste this to console and it will download all the .webp images in the current page as a one zip file. It is possible to change .webp to anything else really.
In default chrome doesn’t allow code pasting write allow pasting and then it will work.

This should work for firefox too but didn’t tested it.
Enjoy
// Create a script element to load JSZip
var script = document.createElement('script');
script.src = 'https://cdnjs.cloudflare.com/ajax/libs/jszip/3.10.1/jszip.min.js';
document.head.appendChild(script);
script.onload = function() {
(async function() {
// Get all resource entries
const resources = performance.getEntriesByType('resource');
// Filter for JSON files
const jsonResources = resources.filter(resource => {
const url = resource.name.split('?')[0]; // Remove query params
return url.endsWith('.webp');
});
// Extract unique URLs
const urls = [...new Set(jsonResources.map(resource => resource.name))];
// Create a new JSZip instance
const zip = new JSZip();
// For each URL, fetch the content and add to zip
const fetchPromises = urls.map(async url => {
try {
const response = await fetch(url);
if (!response.ok) {
console.error(`Failed to fetch ${url}`);
return;
}
const data = await response.blob();
// Extract filename from URL
const urlParts = url.split('/');
const filename = urlParts[urlParts.length - 1].split('?')[0];
// Add the file to the zip
zip.file(filename, data);
} catch (error) {
console.error(`Error fetching ${url}:`, error);
}
});
// Wait for all fetches to complete
await Promise.all(fetchPromises);
// Generate the zip file and trigger download
zip.generateAsync({ type: 'blob' }).then(function(content) {
const link = document.createElement('a');
link.href = URL.createObjectURL(content);
link.download = 'files.zip';
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
});
})();
};