Hi,

I have a list of image URLs and I want them all to be downloaded locally. Copying each url paste in browser and then save to folder takes long time.

Can any one suggest any software which takes list of image URLs and download all images in a specified folder.

Dani AI

Generated

asked for a faster way to download a list of image URLs instead of copy/paste. Replies pointed to GUI downloaders, browser media tools, and command-line utilities (, , ). For a durable, repeatable solution that works cross-platform and gives control over filenames, retries and concurrency, a small script is the simplest approach.

The example below reads urls.txt (one URL per line) and saves images into an images/ folder. It sets a polite User-Agent, checks the response Content-Type to avoid saving HTML pages, and prefixes files with an index to avoid collisions.

#!/usr/bin/env python3
import os
from urllib.parse import urlparse, unquote
import mimetypes
import requests
from concurrent.futures import ThreadPoolExecutor, as_completed

os.makedirs('images', exist_ok=True)

def filename_from_url(url, idx):
    name = unquote(os.path.basename(urlparse(url).path)) or f'image_{idx:04d}'
    return f'{idx:04d}_{name}'

def download(url, idx):
    try:
        r = requests.get(url, stream=True, timeout=10, headers={'User-Agent':'Mozilla/5.0'})
        r.raise_for_status()
        ct = r.headers.get('content-type','')
        if not ct.startswith('image/'):
            return url, 'skipped: not image'
        ext = mimetypes.guess_extension(ct.split(';')[0]) or ''
        fname = filename_from_url(url, idx)
        if not fname.lower().endswith(ext):
            fname += ext
        path = os.path.join('images', fname)
        with open(path, 'wb') as f:
            for chunk in r.iter_content(8192):
                f.write(chunk)
        return url, 'ok'
    except Exception as e:
        return url, f'error: {e}'

urls = [l.strip() for l in open('urls.txt', encoding='utf8') if l.strip()]
with ThreadPoolExecutor(max_workers=8) as ex:
    futures = {ex.submit(download,u,i):u for i,u in enumerate(urls,1)}
    for fut in as_completed(futures):
        print(*fut.result())

Troubleshooting tips: use fewer threads if servers throttle; add retries with a Session+HTTPAdapter for transient failures; increase timeouts for slow hosts; check for 403 responses (set a realistic User-Agent) and respect site terms and robots where applicable. For more on the libraries used see the requests docs and the Python concurrency docs: requests documentation and concurrent.futures — ThreadPoolExecutor.

Recommended Answers

All 3 Replies

Internet Download Manager will do all of that. Not sure if there is a free one that would work as good though.

create a simple html page and then use firefox tools->Page info->media to dowload all the images.

Search for "wget".

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.