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

Setting One Price Across Adobe, Vecteezy And Dreamstime: The Metadata Tradeoffs Nobody Mentions

Description and use

Automating uploads to Adobe Stock, Vecteezy, and Dreamstime requires separate CSVs with different headers. The make_metadata.py and upload_tracker.py scripts generate the required formats and prevent duplicates, ensuring a single price list and compliance with AI disclosure rules.

Problem

Uploading the same vector files to Adobe Stock, Vecteezy, and Dreamstime using a single CSV fails because each platform requires a different header format and metadata constraints, leading to rejections, duplicate posts, and inconsistent pricing.

Outcome

The new workflow eliminates CSV header mismatches, prevents duplicate uploads, ensures consistent pricing, and complies with AI disclosure rules, allowing the author to focus on creating art instead of fixing rejections.

Workflow

  • 1. Store raw assets in assets/ folder.
  • 2. Run make_metadata.py to generate three CSVs: Adobe (5 columns), Vecteezy (4 columns), Dreamstime (15 columns).
  • 3. Use upload_tracker.py to record completed uploads and filter pending items.
  • 4. Upload each platform’s CSV and assets via their dashboards.
  • 5. Track pricing and AI disclosure in a ledger for margin calculation.
  • 6. Package final products into zips with thumbnails and covers using Pillow and reportlab.

Evidence

Adobe rejected the whole batch in about four minutes. Vecteezy flagged a duplicate-content warning on the same files Dreamstime accepted.

Source

Adobe Stock wants a 5-column CSV. Vecteezy wants 4 columns. Dreamstime wants 15.

Source

The script uses the Python standard library alone, no installs, which matters when you are running on a small box.

Source

The fix is dumb and effective: a ledger. upload_tracker.py keeps a plain text record of every asset marked done.

Source

  • Record date: 2026-10-19T11:56:05.359Z