How make_metadata.py Writes the Exact Column Headers Each Stock Platform Demands
Description and use
make_metadata.py generates CSVs with exact headers required by stock platforms, eliminating header errors that cause entire batches to be rejected.
Problem
A batch of 240 Adobe Stock CSV files was rejected because one header column was misspelled, causing the entire upload to fail.
Outcome
The pipeline processes 240 assets in seconds, with metadata generation never being a bottleneck, and avoids costly re‑uploads caused by header errors.
Workflow
- 1. Run make_metadata.py with platform, output, and extension options to generate a CSV with the correct header. 2. (Optional) Provide titles.json to replace default title‑casing and add keywords. 3. Use upload_tracker.py to record pending and completed uploads, preventing double‑posting. 4. Submit the CSV to the stock platform.
- 5. If rejected, edit titles.json and regenerate CSV before resubmission.
Evidence
I lost a whole afternoon last month to a rejected Adobe Stock CSV. 240 files, ready to go, all rejected in seconds with a header error.
The script has the three headers hard-coded. There is no template file to edit, no config to misconfigure.
I got the headers right by checking them against real uploads, not documentation alone, because documentation drifts and the upload parser does not.
upload_tracker.py is a plain standard-library ledger. Before uploading, you check what is actually left.
This pipeline runs on a 1 vCPU, 2 GB RAM server with no GPU.
- Record date: 2026-10-18T11:41:14.232Z