Loading page...Загружаем страницу...正在加载页面...
AtlasRepo

How A 15-Column Dreamstime CSV And A Upload Tracker Fixed My Rejection And Double-Post Problems

Description and use

Automated scripts make_metadata.py and upload_tracker.py eliminate CSV header errors and double uploads, enabling smooth submissions to Dreamstime, Adobe Stock, and Vecteezy.

Problem

Hand‑edited CSVs with incorrect column order caused Dreamstime to reject uploads and led to double‑posting when re‑running pipelines.

Outcome

The two scripts eliminated CSV header rejections and prevented duplicate uploads, enabling the author to ship 39 products (856 MB) from a single 1 vCPU, 2 GB RAM server.

Workflow

  • 1. Run make_metadata.py ./my-assets --platform dreamstime --out dreamstime.csv --ext .jpg to generate a 15‑column CSV matching Dreamstime’s exact header order.
  • 2. Use upload_tracker.py pending items.txt to list assets not yet uploaded.
  • 3. Upload each asset, then immediately run upload_tracker.py done "asset-001.jpg" to mark it as posted.
  • 4. Run upload_tracker.py status to verify all items are completed.
  • 5. Repeat for other platforms with appropriate --platform flag.

Evidence

Dreamstime's importer doesn't guess. It reads the header row, checks it against its expected 15-column layout, and fails the whole file if one column is missing or renamed.

Source

The script knows the exact header each platform demands and writes that header and nothing else.

Source

The key habit is marking done immediately after each successful upload, before the next one starts, not at the end of the batch.

Source

Both scripts run on nothing but Python.

Source

  • Record date: 2026-10-15T20:40:59.203Z