One Evening A Week: Packaging Metadata Covers And Upload Logs Without Double-Posting
Description and use
An automated weekly pipeline for stock platform uploads that generates correct CSVs, prevents duplicate submissions, packages assets, and converts docs, running in ~3 hours on a 2 GB server.
Problem
Accidentally uploading the same batch twice to stock platforms leads to account reviews and restrictions.
Outcome
The pipeline now processes 39 products (~856 MB) in ~3 hours on a 2 GB server, eliminating duplicate uploads and reducing manual packaging time.
Workflow
- Point make_metadata.py at asset folder and select platform to generate correct CSV header
- Run upload_tracker.py pending to list items not yet uploaded
- Upload assets via platform API or web interface
- After successful upload, run upload_tracker.py done to mark items
- Run pack_product.py to create zip, cover, and thumbnail for each product
- Run md2pdf.py to convert Markdown docs to styled PDFs
- Review outputs, adjust titles, and mark all items done in ledger
Evidence
Adobe does not punish an accidental duplicate with a warning. It counts against your review standing, and repeated resubmission of already-published assets is one of the listed reasons reviewers flag a contributor account.
All three major stock channels reject a metadata file with a wrong header instantly.
The ledger is a text file I can read, back up, and grep. A re‑run of the batch script checks the ledger first, so double‑posting is impossible rather than unlikely.
The entire pipeline runs on 1 vCPU, 2 GB RAM, no GPU.
One evening, roughly three hours. I generate and review the week's assets, run the three metadata commands, check the ledger with pending, package two or three products, and mark everything done.
- Record date: 2026-10-19T23:41:26.897Z