ScreenshotNeo

BlogHow-to

How to Turn an Indian Property Listing Webpage into Image Thumbnails in Bulk

Learn how to make bulk thumbnails from property listing images you own or may reuse, with a safe workflow, runnable resizing code, and clear portal-permission checks.

By the ScreenshotNeo team4 October 20268 min read

Short answer: Treat image acquisition and thumbnail creation as two separate jobs. First obtain the property images through a method the portal permits, and confirm that you own them or have permission to reuse them. Then batch-resize those authorized image files. A public listing page does not automatically grant permission to download or reuse its photos.

For Magicbricks specifically, its published terms prohibit automated software from extracting or downloading site data without prior written consent and restrict copying or using data posted by other users. Check the current terms and permissions for the portal you are using; do not assume Magicbricks’ rules apply identically to every Indian property portal.

1. Check permission before collecting images

Identify the portal and the rights holder for the listing photos. If the images are yours, or you have written permission to use them, check the portal’s current terms and account or listing permissions before downloading. Use an export or download method the portal explicitly allows. The sources reviewed for this guide do not establish a universal way to export all photos from arbitrary listing pages.

  • Do not use a scraper or automated bulk downloader against Magicbricks without prior written consent.
  • Do not infer reuse rights from the fact that an image is visible on a public webpage.
  • Keep a record of permission and any limits on crops, attribution, or redistribution.

2. Choose the thumbnail dimensions and format

Start with the requirements of the destination where the thumbnails will appear. There is no universal thumbnail size: a listing card, a contact sheet, and a high-density display may need different dimensions. Preserve the source aspect ratio unless the destination calls for a deliberate crop.

Choice What to decide
Dimensions Set the maximum width and height required by the destination. Decide whether images should fit inside those bounds or be cropped to fill them.
Aspect ratio Preserve the original proportions for a complete view. Crop only when a consistent frame is required.
Format Choose the format accepted by the destination and suitable for your use. The tools described below offer JPG, PNG, or WebP output.
Quality For a lossy format, choose a quality setting that keeps important details readable at the display size.
Names Use stable, unique filenames so files from different listings do not overwrite one another.

Magicbricks’ help material gives JPG, GIF, BMP, or PNG, a 4 MB maximum, and minimum dimensions of 600 × 400 pixels for its own photo-upload process. Those are upload requirements for that process, not general thumbnail dimensions or requirements for other portals.

3. Batch-resize authorized image files

Once you have the image files through an allowed method, add them to a batch processor, choose dimensions and output format, and export the resulting set. ReHub BatchTools describes batch resizing, watermarking, renaming, and ZIP download for property-photo folders. BulkImage describes multi-file resizing, dimension or preset selection, JPG/PNG/WebP output, and ZIP download. These are vendor-described features, not independent test results. Check the current tool details and privacy terms before uploading files.

Browser-based workflow

  1. Place only authorized image files in a dedicated folder.
  2. Open a batch image processor and add the files.
  3. Set the destination dimensions or an appropriate preset. Keep proportions unless a crop is required.
  4. Choose the output format and, where applicable, quality.
  5. Use a watermark or rename option if your workflow requires it.
  6. Export the batch, then inspect a few files before using the whole set.

BulkImage says its processing happens in the browser; that is the vendor’s privacy claim. Review the tool’s current privacy information yourself, particularly for property photos that are not public or that contain personal details.

Local Python workflow for files you already have

The script below resizes every supported image in an input folder, preserves proportions, converts outputs to WebP, and writes them to a separate folder. It does not download images from listing webpages. Install Pillow first with python -m pip install Pillow, save the code as make_thumbnails.py, then run python make_thumbnails.py authorized_images thumbnails.

from pathlib import Path
import sys
from PIL import Image, ImageOps

SUPPORTED = {".jpg", ".jpeg", ".png", ".webp", ".bmp", ".gif"}

if len(sys.argv) != 3:
    raise SystemExit("Usage: python make_thumbnails.py INPUT_DIR OUTPUT_DIR")

source_dir = Path(sys.argv[1])
output_dir = Path(sys.argv[2])
if not source_dir.is_dir():
    raise SystemExit(f"Input directory does not exist: {source_dir}")
output_dir.mkdir(parents=True, exist_ok=True)

files = sorted(p for p in source_dir.iterdir() if p.is_file() and p.suffix.lower() in SUPPORTED)
if not files:
    raise SystemExit("No supported image files found in the input directory")

for path in files:
    try:
        with Image.open(path) as original:
            # Apply camera orientation metadata before calculating the thumbnail.
            image = ImageOps.exif_transpose(original)
            # Keep proportions and fit within 320 x 240 pixels.
            image.thumbnail((320, 240), Image.Resampling.LANCZOS)
            if image.mode not in ("RGB", "RGBA"):
                image = image.convert("RGB")
            destination = output_dir / f"{path.stem}.webp"
            image.save(destination, "WEBP", quality=82, method=6)
            print(f"Wrote {destination} ({image.width}x{image.height})")
    except Exception as error:
        print(f"Skipped {path.name}: {error}", file=sys.stderr)

This creates thumbnails that fit inside 320 × 240 pixels; it does not crop them to that exact shape. Change the dimensions in image.thumbnail((320, 240), ...) for your destination. If multiple input files share the same basename but different extensions, their outputs will collide; rename those inputs or adjust the script to generate unique output names. Animated GIFs are treated as a single opened frame by this simple script.

4. Validate the batch

  • Open a sample from the beginning, middle, and end of the output set.
  • Check orientation, crop, proportions, and legibility at the intended display size.
  • Confirm the output dimensions and format match the destination’s requirements.
  • Check filenames for collisions and confirm the ZIP or output folder contains the expected number of files.
  • Keep the authorized originals so you can regenerate thumbnails with different dimensions or quality settings.

5. Use ScreenshotNeo when a page image is what you need

If your goal is a visual thumbnail of the listing webpage itself, rather than separate copies of each listing photo, ScreenshotNeo can capture a page as an image. A page screenshot is not a bulk export of the photo gallery; confirm permission before capturing or reusing listing content. For the capture options and API parameters, see the ScreenshotNeo documentation.

Or skip the browser setup

Make one GET request for a page screenshot. Change the target URL to a listing you are permitted to capture, and keep your API key private.

curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
import requests

r = requests.get(
    "https://api.screenshotneo.com/v1/shot",
    params={"access_key": "YOUR_API_KEY", "url": "https://stripe.com"},
    timeout=90,
)
r.raise_for_status()
with open("shot.webp", "wb") as image_file:
    image_file.write(r.content)
const q = new URLSearchParams({ access_key: 'YOUR_API_KEY', url: 'https://stripe.com' });
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);
if (!res.ok) throw new Error(`Screenshot request failed: ${res.status}`);
const image = Buffer.from(await res.arrayBuffer());
await import('node:fs/promises').then(fs => fs.writeFile('shot.webp', image));

ScreenshotNeo removes cookie banners, newsletter popups, and chat widgets before capture. Bot checks, blank pages, and failed loads are never billed. Its MCP server lets AI agents take screenshots. The free plan includes 1,000 screenshots a month with no card; paid plans start at $5 for 3,000. See the API documentation, then sign up for 1,000 free screenshots a month, with no card.

Common problems and fixes

Problem Likely cause Fix
You cannot export all images from a listing page The portal may not offer a bulk export, and the available sources do not establish a universal export method. Use a portal-approved method or request permission. Do not bypass access controls or terms with automated extraction.
Images are stretched The resize process forced every file into fixed width and height values. Preserve the aspect ratio or choose a deliberate crop-to-fill mode.
Some thumbnails are rotated Orientation metadata was not applied before resizing. Use a processor that honors EXIF orientation; the Python example applies it with ImageOps.exif_transpose.
Images look blurry or text is unreadable The chosen dimensions or lossy quality are too low for the display size. Increase the thumbnail dimensions or quality, and inspect at the actual display size.
Files overwrite each other Different source images have the same basename. Give each source a unique name or include a stable listing identifier in output filenames.
A batch processor rejects a file The format may not be supported, or the file may be damaged or unusually large. Convert that authorized file to a supported format locally and retry it separately.
The screenshot is a challenge page or blank The site served a bot check, did not render usable content, or failed to load. Check that the URL is accessible and that capture is permitted. ScreenshotNeo identifies page outcomes in response headers; bot checks, blank pages, and failed loads are not billed.

Performance, reliability, and cost

For batch resizing, processing image files locally avoids a separate browser upload step; browser processors can simplify multi-file selection and ZIP export. Large batches may take longer and use more memory, so split them into smaller groups if a browser tab or machine struggles. Keep originals and rerun only the affected files when correcting dimensions or quality.

For cost, the described batch-tool pages do not establish universal pricing, so check the vendor’s current terms before processing. ScreenshotNeo’s listed plans are Free: 1,000 shots per month; Starter: $5 for 3,000; Growth: $15 for 15,000; Pro: $39 for 60,000; Scale: $99 for 250,000; and Business: $249 for 1,000,000. Yearly billing gives two months free, and every feature is on every plan. A page screenshot is one capture, not a substitute for authorized source image files when you need individual gallery photos.

FAQ

Can I turn every photo on a public Indian property listing into a thumbnail automatically?

Only if the portal permits the method and you have the necessary rights. The reviewed sources do not establish a universal extraction workflow. Magicbricks’ published terms restrict automated extraction without prior written consent.

Does the Magicbricks 600 × 400 rule tell me the right thumbnail size?

No. That figure describes a minimum for photos uploaded through Magicbricks’ own process. Choose thumbnail dimensions based on the destination where you will display them.

ScreenshotNeo captures a webpage as an image or PDF. A screenshot is a picture of the page, not a bulk download of its individual gallery image files.

Do I need to crop property photos to make thumbnails?

No. Fit-within resizing preserves the whole image and its proportions. Crop only when the destination requires a consistent frame and the crop will not remove useful content.