The 1280 720 Lesson: Why a Zip Isn't Shippable Until It Has a Cover
Description and use
An automated toolkit that packages digital products with proper covers, metadata, and upload tracking, ensuring successful marketplace submissions.
Problem
Zipped product bundles lacked a visual cover, causing marketplace previews to display a grey icon and leading to rejection or poor user experience.
Outcome
The automation kit enabled the author to ship 39 products, producing 856 MB of output from 19,000 lines of code, while ensuring each ZIP had a proper cover, correct metadata, and no duplicate uploads.
Workflow
- 1. Run
python pack_product.py my-product "My Product" "A short subtitle" 9to zip assets, render cover and thumbnail. - 2. Use
python make_metadata.py ./my-assets --platform adobe --out metadata.csv --ext .jpgto generate correct CSV headers. - 3. Track uploads with
python upload_tracker.py pending items.txt, mark completed withpython upload_tracker.py done "asset-001.jpg", and check status viapython upload_tracker.py status. - 4. Convert Markdown documentation to PDF with
python md2pdf.py content.md product.pdf "My Product Title". - 5. Organize project folder as
project/assets/raw,project/output,project/ready-to-submit,project/packs,project/research,project/scripts. - 6. Run all scripts on a single small server, using
gc.collect()and subprocesses for heavy rendering. - 7. Keep the
research/folder for logs and notes to inform future products.
Evidence
I had 39 products zipped and ready. Then I opened one of the zips on a marketplace preview page and watched it render as a grey file icon next to thumbnails that actually looked like products.
pack_product.py now does the whole job in one command: it zips the files, renders a 1280×720 cover, and a 600×600 thumbnail.
A wrong CSV header is an instant bounce. Adobe wants a 5 column file. Vecteezy wants 4 columns. Dreamstime wants 15.
The fastest way to get a seller account flagged is to upload the same 40 files twice because you lost track of what was already posted.
Every number in this pipeline comes from a single 1 vCPU, 2 GB RAM, no GPU machine.
- Record date: 2026-10-25T00:26:06.711Z