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

Writing Down The Boring Parts: Metadata CSVs, Double-Post Guards, And Product Packaging

Description and use

An automated pipeline for uploading digital products to stock sites, featuring CSV header generation, duplicate upload protection, Markdown-to-PDF conversion, and ZIP packaging with covers, all running on minimal hardware.

Problem

Uploading assets to stock platforms often fails due to incorrect CSV headers, duplicate uploads, and unprepared product files, causing wasted time and rejected submissions.

Outcome

The pipeline now reliably produces correctly formatted CSVs, avoids duplicate uploads, converts content into sellable PDFs and zips, maintains a clean folder structure, and runs stably on minimal hardware.

Workflow

  • Generate CSV with make_metadata.py using platform‑specific headers
  • Upload assets via batch script, marking each as done in upload_tracker.py
  • Convert Markdown to PDF with md2pdf.py, supplying title and output path
  • Package assets into zip with pack_product.py, generating cover and thumbnail
  • Organize files into assets, output, packs, research, and scripts folders
  • Run each heavy render step in a separate subprocess, collecting garbage after each asset
  • Measure peak RSS to avoid crashes
  • Inspect previews at 60 dpi before final rendering

Evidence

Every stock platform validates the upload CSV before a human sees anything. Adobe Stock wants a 5-column header. Vecteezy wants 4 columns. Dreamstime wants 15.

Source

I wrote upload_tracker.py because of this. It is a ledger, nothing fancy. You mark an asset done, you ask it what is pending, it tells you.

Source

md2pdf.py turns Markdown into a styled PDF with headings, tables, lists, and working links, using reportlab.

Source

Both scripts write their output to a _system folder by default, and you can redirect with --dir or an environment variable.

Source

The whole pipeline runs on 1 vCPU and 2 GB RAM with no GPU. That constraint forced habits worth more than any upgrade: ...

Source

  • Record date: 2026-10-21T17:11:25.546Z