Bulk Image Scrape

Apply any image scraper to all of your images

Install

The Plugin uses PythonDepManager to install requirements on it’s own. git and pip must be installed for everything to work properly.

Config

Go into your Stash then under Settings > Plugins you’ll find the config for Bulk Image Scrape

It is mandatory to enter the Scraper ID of the Scraper you want to use. In this example SHALookup is used but you can use any valid Image Scraper that is installed in your Stash.

  • Create Missing movies/groups from scrape result

If the scraper returns a movie/group and it is not already in your stash, the plugin will create it if enabled

  • Create Missing performer from scrape result

If the scraper returns a performer and it is not already in your stash, the plugin will create it if enabled

  • Create Missing studios from scrape result

If the scraper returns a studio and it is not already in your stash, the plugin will create it if enabled

  • Exclude images that are set as organized

Any image that is set as organized will be skipped if enabled

  • Merge existingtags with scraped tags

Merge scraped tags with existing tags instead of overwriting them when enabled

  • The Scraper ID of the image scraper to use

Enter the ID of the scraper you want to use. If this is not set correctly the plugin will tell you in the logs when you run the plugin task

  • List of tags to skip

Any image that has one or more of the Tags from this setting will be skipped by the plugin if Tags are specified here. Multiple Tags must be comma separated. If the plugin can’t find a tag you specified it will notify you in the logs

  • SkipEntriesNum

Number of entries to skip over (mostly for rerunning after an error on large collections)

Task

After you adapted the config to your liking and made sure your image scraper of choice works properly simply start the task in Settings > Tasks


Once the Task is running you can track the progress in Settings > Log
If the plugin encounters any issues you will be informed here

Scraper Requirements

Scraper ID

You must set the Scraper ID which you can find in Settings > Metadata Providers > Installed Scrapers

The Scraper ID is shown below the Scraper name and is highlighted in red here:

Valid Image Scraper

The scraper you choose must be listed as an image scraper in Settings > Metadata Providers > Scrapers > Image scrapers

@NotMyMainUser would you be interested to review it?

@NotMyMainUser would you be interested in reviewing it?

1 Like

Posted in the Discord as well but I’m having an issue when trying to run this plugin.

[Plugin / Bulk Image Scrape] GRAPHQL_VALIDATION_FAILED: Field "fingerprint" argument "type" of type "String!" is required, but it was not provided.
2025-12-03 09:20:07Error   [Plugin / Bulk Image Scrape] GRAPHQL_VALIDATION_FAILED: Field "fingerprint" argument "type" of type "String!" is required, but it was not provided.
2025-12-03 09:20:07Error   [Plugin / Bulk Image Scrape] GRAPHQL_VALIDATION_FAILED: Field "fingerprint" argument "type" of type "String!" is required, but it was not provided.
Plugin / Bulk Image Scrape] 422 Unprocessable Entity query failed. v0.29.3-0 2025-12-03 09:20:07Error   [Plugin / Bulk Image Scrape] 422 Unprocessable Entity GQL data response is null

and then a bit later one

2025-12-03 09:20:07Error   [Plugin / Bulk Image Scrape]   File "/root/.stash/plugins/community/py_dependencies/stashapi_git_f2de6fa/stashapi/stashapp.py", line 1537, in find_images
2025-12-03 09:20:07Error   [Plugin / Bulk Image Scrape]     total_images, images = client.find_images(f=image_filter, filter=all_results, get_count=True)
2025-12-03 09:20:07Error   [Plugin / Bulk Image Scrape]                         ^^^^^^^^^^^^^^^^^
2025-12-03 09:20:07Error   [Plugin / Bulk Image Scrape]     total_images: int = count_all_images(
2025-12-03 09:20:07Error   [Plugin / Bulk Image Scrape]   File "/root/.stash/plugins/community/BulkImageScrape/bulkImageScrape.py", line 169, in count_all_images
2025-12-03 09:20:07Error   [Plugin / Bulk Image Scrape] Traceback (most recent call last):
2025-12-03 09:20:07Error   [Plugin / Bulk Image Scrape]   File "/root/.stash/plugins/community/BulkImageScrape/bulkImageScrape.py", line 338, in <module>

The v0.29.3 mentioned earlier on is I’m guessing the stash version I’m running.

Edit: Interestingly if I clone the plugin repo, hardcode the FRAGMENT_SERVER value (to be the same as what the plugin itself is using) and run the script it appears to work against my stash instance.

1 Like

The GQL errors appear to be from importing an older version of stashapi. Submitted a simple PR to address.

Hey i revived an Bug/error Recently by using your plugin i attach the error Log after.

i use Stach on a ubuntu lxc on my proxmox.

if you need more infos pls DM my on discord @m2x2p

2025-12-23 18:14:32Error   Plugin returned error: exit status 1
2025-12-23 18:14:32Error   [Plugin / Bulk Image Scrape] TypeError: ScrapeParser.__init__() takes from 2 to 5 positional arguments but 6 were given
2025-12-23 18:14:32Error   [Plugin / Bulk Image Scrape]     scrape_parser = ScrapeParser(
2025-12-23 18:14:32Error   [Plugin / Bulk Image Scrape]   File "/root/.stash/plugins/community/BulkImageScrape/bulkImageScrape.py", line 316, in <module>
2025-12-23 18:14:32Error   [Plugin / Bulk Image Scrape] Traceback (most recent call last):
2025-12-23 18:14:32Info    [Plugin / Bulk Image Scrape] settings: settings={'ScraperID': 'gelbooru-xpath', 'SkipTags': '', 'PerformerIdsFilter': '', 'CreateMissingPerformers': True, 'CreateMissingStudios': True, 'CreateMissingTags': False, 'MergeExistingTags': False, 'ExcludeOrganized': True, 'SkipEntriesNum': 1000000, 'CreateMissingMovies': True}
2025-12-23 18:14:31Info    [Plugin / Bulk Image Scrape] Starting Bulk Image Scrape Plugin