48

Bulk Image Import: 500 Photos Before Lunch

Name your files correctly, drag them in, and watch them land on the right books. No clicking through 500 edit pages required.

6 min

Name your files correctly, drag them in, and watch them land on the right books. No clicking through 500 individual edit pages required.


What It Does

The bulk image import at /books/import-images lets you upload hundreds of photographs at once and have them automatically matched to the correct books in your library. Instead of opening each book's edit page and uploading photos one by one — a workflow that becomes genuinely soul-crushing around book number forty — you name your files according to a simple convention, drop them on the page, and Shelvd sorts out the rest.

This is a Dealer tier feature. If you own enough books to need bulk image import, you probably own enough to justify the subscription.


The Naming Convention

This is the only thing you need to get right. The convention is:

{catalog_id}_{sequence}.{ext}

Where:

  • catalog_id — must exactly match the Catalog ID field on the book in Shelvd
  • sequence — a number indicating photo order (01, 02, 03…)
  • ext — any image format: JPEG, PNG, WebP, HEIC, TIFF, AVIF

Examples

Filename Catalog ID Sequence
0001_01.jpg 0001 1
0001_02.jpg 0001 2
0001_03.jpg 0001 3
5585a_1.jpg 5585a 1
ECO-001_02.png ECO-001 2
0042.jpg 0042 1 (no underscore = sequence 1)

If a file has no underscore, the entire filename (minus extension) is treated as the catalog ID with sequence 1. This works for single-image books.

The Catalog ID Must Match Exactly

The file 0001_01.jpg will match the book with catalog ID 0001. Not 1. Not 001. Not Book 0001. The match is exact, case-sensitive, and unforgiving. If your books use catalog IDs like A-123 or VDB.0042, your filenames need to use those same strings.

This is intentional. Fuzzy matching across hundreds of files would produce wrong matches, and wrong matches produce wrong books with wrong photos — which is worse than no photos at all.


How to Use It

Step 1: Select Files

Navigate to /books/import-images (also accessible from the Books page via the dropdown menu). You'll see a drop zone. Either:

  • Drag and drop files from your file manager, or
  • Click to open a file picker

You can select as many files as you need. There's no hard limit on the number, though each individual file must be under 4 MB. Images are converted to WebP during upload, so the stored size will be smaller.

Step 2: Preview

After selecting files, Shelvd enters the preview phase:

  1. Parses every filename to extract catalog IDs
  2. Looks up those IDs against your library in batches
  3. Shows you a table: which files matched, which didn't, and which are duplicates

You'll see three columns of truth:

  • Matched — file's catalog ID found a book. Green. Good.
  • Not found — no book has that catalog ID. Yellow. Check your naming.
  • Duplicate — a file with this name already exists on this book. Gray. Skipped.

Review the preview carefully. Files that don't match won't upload. Files that match the wrong book (because of a naming error) will upload to the wrong book. The preview is your safety net — use it.

Step 3: Upload

Hit the upload button. Shelvd processes files three at a time (concurrent uploads) for speed without overwhelming the server. You'll see:

  • A progress bar tracking total completion
  • The currently uploading filename
  • A running count of successes and errors

You can cancel mid-upload if something looks wrong. Already-uploaded files stay uploaded; remaining files are skipped.

Step 4: Done

When the upload completes, you'll see a summary: total uploaded, total errors, total skipped. Each uploaded image is stored as WebP with a generated thumbnail, linked to its book, and given a generic "image" label. You can refine labels later on each book's edit page if needed.


Storage Limits

Your tier determines your total image storage:

Tier Storage
Collector (free) Not available
Collector Pro 5 GB
Dealer 25 GB

If you're approaching your storage limit, Shelvd shows a warning during the preview phase. Uploads that would exceed the limit are blocked.


Practical Tips

Naming files in bulk: Most operating systems let you batch-rename files. On macOS, select all photos for book 0001, right-click → Rename, format as 0001_XX. On Windows, rename the first and the rest get sequential suffixes.

Camera workflow: If you photograph books in order, your camera assigns sequential filenames (IMG_0001, IMG_0002…). Rename in batches after each book: all photos for catalog ID 42 become 0042_01.jpg, 0042_02.jpg, etc.

Set catalog IDs first: Before bulk importing images, make sure your books have catalog IDs assigned. If you imported from a spreadsheet, the catalog ID might already be there. If not, consider adding them in bulk — it's a small investment that makes image management vastly easier.

Check your preview: We said it already. We're saying it again. A careful preview saves you from uploading 200 photos to the wrong books and spending the next hour cleaning up.


What Happens to Each Photo

Every uploaded image goes through this pipeline:

  1. Format conversion — converted to WebP for smaller file sizes
  2. Thumbnail generation — a smaller version for grid views and quick loading
  3. Metadata extraction — dimensions and file size are recorded
  4. Database record — linked to the matched book with sort order from the sequence number
  5. Cover sync — if the book has no cover image yet, the first photo becomes the cover

All of this happens server-side. You upload a 3 MB JPEG; Shelvd stores a 400 KB WebP and a 50 KB thumbnail. Your storage quota thanks you.


Availability

Bulk Image Import is Dealer only. If you're on Collector Pro and need this feature, it's one of several good reasons to consider upgrading. If you're on the free tier, you can still upload images one at a time on each book's edit page — it just requires more patience than most humans possess beyond about thirty books.


See also: Photographing Your Books · Tiers & Plans · Cataloging to Sell