make_metadata.py
An open-source script that relies only on the Python standard library. It generates metadata CSV files in the respective formats of three platforms—Adobe Stock, Vecteezy, and Dreamstime—from a single asset folder.
Core Facts
make_metadata.py is a script that relies only on the Python standard library, traverses folders and generates headers precisely by platform, and supports the --platform adobe, --platform vecteezy, and --platform dreamstime parameters.
By default, make_metadata.py converts file names to title format and uses them as titles, which is good enough for initial screening but absolutely unsuitable for final submission; the script supports the --titles titles.json parameter to provide real titles and keywords.
Timeline (last 90 days)
The author created the make_metadata.py script, which generates CSVs matching each platform's required headers; manually building CSVs for three platforms for 40 assets used to take most of an evening, and now takes three commands and about a minute.
The toolkit includes four standalone scripts: make_metadata.py, upload_tracker.py, md2pdf.py, and pack_product.py, drawn from roughly 19,000 lines of pipeline code and a project backed by over 300 pages of research, now offered separately as the "AI Sticker Factory Handbook."
The script supports specifying Adobe, Vecteezy, or Dreamstime output format via the --platform parameter, specifying the file extension via --ext, and specifying the output file name via --out; titles and keywords can be specified via titles.json, and when not specified, the file name is converted to a title.
The author wrote make_metadata.py to output exactly the headers required by each platform, never adding extra columns, because every extra column is a potential reason for rejection.
Hardcoding each platform's CSV headers in the script (make_metadata.py) allows generating the CSVs for all three platforms from a single asset folder, avoiding header drift caused by manual table assembly.
Running the command python make_metadata.py ./my-assets --platform adobe --out metadata.csv --ext .jpg generates a CSV file whose first row is the 5-column header required by Adobe.
Building the CSV for 240 files with make_metadata.py takes only a few seconds and uses very little memory.
By default, make_metadata.py converts file names into titles, for example geometric-fox-pattern-04.jpg becomes "Geometric Fox Pattern 04".
The author wrote about 200 lines of Python standard-library scripts (make_metadata.py and upload_tracker.py) to generate the CSVs required by the three platforms and track upload status.
The make_metadata.py script implements title capitalization rules, including: capitalizing the first and last words, lowercasing short connecting words in the middle (for, and, with, of, the, a, on, in), a whitelist of acronyms forced to uppercase (SVG, PNG, AI, EPS, JPG, PDF, USA, DIY), and keeping mixed-case words as-is.
21 more timeline events
All Facts (20)
make_metadata.py is a script that relies only on the Python standard library, traverses folders and generates headers precisely by platform, and supports the --platform adobe, --platform vecteezy, and --platform dreamstime parameters.
70%Partially VerifiedBy default, make_metadata.py converts file names to title format and uses them as titles, which is good enough for initial screening but absolutely unsuitable for final submission; the script supports the --titles titles.json parameter to provide real titles and keywords.
70%UnverifiedThe author created the make_metadata.py script, which generates CSVs matching each platform's required headers; manually building CSVs for three platforms for 40 assets used to take most of an evening, and now takes three commands and about a minute.
50%UnverifiedThe script supports specifying Adobe, Vecteezy, or Dreamstime output format via the --platform parameter, specifying the file extension via --ext, and specifying the output file name via --out; titles and keywords can be specified via titles.json, and when not specified, the file name is converted to a title.
50%UnverifiedThe toolkit includes four standalone scripts: make_metadata.py, upload_tracker.py, md2pdf.py, and pack_product.py, drawn from roughly 19,000 lines of pipeline code and a project backed by over 300 pages of research, now offered separately as the "AI Sticker Factory Handbook."
50%UnverifiedThe author wrote make_metadata.py to output exactly the headers required by each platform, never adding extra columns, because every extra column is a potential reason for rejection.
50%UnverifiedHardcoding each platform's CSV headers in the script (make_metadata.py) allows generating the CSVs for all three platforms from a single asset folder, avoiding header drift caused by manual table assembly.
50%UnverifiedBy default, make_metadata.py converts file names into titles, for example geometric-fox-pattern-04.jpg becomes "Geometric Fox Pattern 04".
50%UnverifiedBuilding the CSV for 240 files with make_metadata.py takes only a few seconds and uses very little memory.
50%UnverifiedRunning the command python make_metadata.py ./my-assets --platform adobe --out metadata.csv --ext .jpg generates a CSV file whose first row is the 5-column header required by Adobe.
50%UnverifiedThe author wrote about 200 lines of Python standard-library scripts (make_metadata.py and upload_tracker.py) to generate the CSVs required by the three platforms and track upload status.
50%UnverifiedThe make_metadata.py script implements title capitalization rules, including: capitalizing the first and last words, lowercasing short connecting words in the middle (for, and, with, of, the, a, on, in), a whitelist of acronyms forced to uppercase (SVG, PNG, AI, EPS, JPG, PDF, USA, DIY), and keeping mixed-case words as-is.
50%UnverifiedThe make_metadata.py script supports the --titles titles.json parameter, prioritizing the manual title file, with fallback rules applying only to unprocessed batches.
50%UnverifiedThe author packaged the scripts as the ai sticker factory playbook, containing four scripts: make_metadata.py, upload_tracker.py, md2pdf.py, and pack_product.py, of which the latter two depend on Pillow and reportlab.
50%Unverifiedmake_metadata.py can generate CSV files with the corresponding headers for adobe, vecteezy, and dreamstime via the --platform parameter.
50%UnverifiedWhen there is no title file, the metadata script converts the filename into title case, so the filename becomes the title.
50%UnverifiedUsing a script that relies only on the Python standard library to output the exact headers required by each platform (run three times via the --platform parameter), three correct CSV files can be generated from the same folder.
50%UnverifiedOf the four scripts the author ultimately used—make_metadata.py, upload_tracker.py, md2pdf.py and pack_product.py—two depend only on the Python standard library, and the other two need only Pillow and reportlab.
50%Unverifiedmake_metadata.py by default converts the filename to title-case format as the title, for example asset-001.jpg becomes 'Asset 001'.
50%UnverifiedWhen running the make_metadata.py pipeline on a server with 1 vCPU and 2 GB of memory, using only the standard library (without pulling in pandas) is crucial, because pandas brings tens of MB of memory overhead and potential version conflicts.
50%