The Human Checkpoints I Kept Before Uploading To Adobe, Vecteezy And Dreamstime
Description and use
The author added four manual checkpoints to an automated upload pipeline—CSV header check, duplicate ledger review, memory ceiling check, and cover preview—to prevent rejections, account flags, crashes, and unsellable listings, enabling smooth delivery of 39 products.
Problem
Automated upload pipelines can fail due to CSV format errors, duplicate submissions, memory exhaustion, or poor packaging, leading to rejections, account flags, or crashes.
Outcome
The four checkpoints reduced upload failures from CSV errors, duplicate submissions, memory crashes, and poor packaging to zero, enabling smooth delivery of 39 products on a minimal server.
Workflow
- Generate CSV with make_metadata.py for each platform
- Open CSV and count columns; verify header matches platform requirement
- Check titles: replace autogenerated titles with real ones
- Run upload_tracker.py pending command to review pending list for duplicates
- Verify peak RSS with resource.getrusage(RUSAGE_SELF).ru_maxrss before starting batch
- Process each file in a subprocess, call gc.collect() after each asset
- Render 1280x720 cover and 600x600 thumbnail with pack_product.py
- Open each cover and thumbnail to confirm quality and text placement
- Package assets into zip and move to packs/ folder
- Upload batch to platform
Evidence
Adobe Stock bounced a batch of 40 images because my CSV had six columns instead of five.
I keep a ledger with upload_tracker.py. Before any batch goes out, I run the pending command and read the list with my own eyes.
My whole pipeline runs on 1 vCPU and 2 GB RAM with no GPU.
I open each cover before the product goes live.
- Record date: 2026-10-21T11:56:22.685Z