How it works

From your title to a moderation tab.

Five steps, in the order a clip actually takes them: the specs it is checked and repaired against, how its metadata is drafted from your own title, the review that always comes before a send, the send itself, and what the app reads back afterward. Every number below names the file it came from.

A northern pike facing the camera between water plants in a lake, a frame of the owner’s footage.

01Checked and repaired

Specs

Every clip is read before it is sent, against each marketplace’s own allow-lists. What can be repaired is repaired; what cannot, stops the clip and says why.

  1. Adobe Stock takes frame rates 23.98, 24, 25, 29.97, 30, 50, 59.94, 60 fps. 48 fps is refused.

    Source packages/platforms/CLAUDE.md §3

  2. Pond5 and Shutterstock both take 48 fps: 23.98, 24, 25, 29.97, 30, 47.95, 48, 50, 59.94, 60 fps on Pond5, and 48 fps among Shutterstock’s accepted rates.

    Source packages/platforms/CLAUDE.md §3a; docs/research/shutterstock/README.md

  3. Adobe Stock’s resolution rule is an allow-list, not a minimum: 1920x1080, 2048x1080, 3840x2160, 4096x2160, 4096x2304 horizontal, four vertical equivalents, and two square sizes. Pond5 takes a range, 640x480 up to 8192x4320; Shutterstock only a floor, 480 pixels on the short side.

    Source packages/platforms/CLAUDE.md §3; docs/research/pond5/README.md; docs/research/shutterstock/README.md

  4. Duration 5 to 60 seconds on Adobe, Pond5 and Shutterstock. File size up to 3.9 GB on Adobe, 5 GB on Pond5.

    Source packages/platforms/CLAUDE.md §3, §3a

  5. Adobe Stock refuses any audio track, even a silent one. Pond5 prefers it removed. Shutterstock allows it when it adds to the clip.

    Source packages/platforms/CLAUDE.md §3, §3a; docs/research/shutterstock/README.md

  6. What gets repaired before a byte moves: the audio track stripped, HEVC transcoded to H.264. What cannot be repaired: the duration, the frame rate, the resolution. The clip stops and tells you why instead of being sent to fail on the other end.

    Source packages/pipeline/CLAUDE.md §2

These numbers are read straight from the same file the app validates against, so this page and the app can never disagree.

Check a real file against these specs

02Drafted from your title

Metadata

Your title is the source of truth. The model expands it; it never overwrites it, and it never invents a species name.

  1. Pass one, text to text, expands your title into up to 49 ordered keywords and a marketplace title. This is where most of the value is, and it never changes your own words.

    Source packages/metadata/CLAUDE.md §5

  2. Pass two, vision, adds what a title cannot say: shot type, camera movement, composition, mood. When a frame contradicts your title, it raises a flag for you to read. It does not rewrite the title.

    Source packages/metadata/CLAUDE.md §5

  3. Every Latin name is checked against the World Register of Marine Species (WoRMS) before it reaches a marketplace, freshwater and brackish species included, not only the marine ones the name suggests.

    Source packages/metadata/CLAUDE.md §5

  4. A name that does not resolve falls back to the genus, then the family, then a plain common noun. A binomial that has not passed the gate is never emitted.

    Source packages/metadata/CLAUDE.md §5; CLAUDE.md §0.4

  5. Everything a marketplace shows is written in English, whatever language your own title is in.

    Source packages/metadata/CLAUDE.md §5

  6. Keyword order follows one path: subject, the validated binomial, family or order, habitat, behaviour and composition, mood, geography. On Adobe, the first ten weigh most on search.

    Source packages/metadata/CLAUDE.md §5; packages/platforms/CLAUDE.md §3

Nothing drafted here reaches a marketplace until you have read it.

03Your turn, every clip

Review

You read every clip before it leaves. Never after.

  1. Review happens before upload, never after. A re-upload made to fix something is what gets accounts suspended, and the app is built around avoiding that one action.

    Source packages/pipeline/CLAUDE.md §2

  2. Two clips sharing the same file name are treated as the same footage: neither goes, until you rename one and clear which is the clip you mean to publish.

    Source packages/pipeline/CLAUDE.md §2

  3. Nothing is published that the app has not read first. The outgoing audit refuses text that reads as French, any markup, an empty title, and a title longer than the smallest field that has to hold it (Pond5’s 80 characters).

    Source packages/metadata/CLAUDE.md §5

A clip the audit refuses stays put; the rest of the lot goes out around it.

04To your own accounts

Send

Your own accounts, one connection per lot, metadata written last.

  1. SFTP to Adobe Stock for qualified accounts, FTPS to Shutterstock and Pond5, and Getty Images’s own uploader (ESP) in your browser.

    Source packages/platforms/CLAUDE.md §3, §3a; docs/research/shutterstock/README.md; docs/research/getty/README.md

  2. One connection per lot, not one per file.

    Source packages/platforms/CLAUDE.md §3

  3. The metadata is embedded in the file as XMP last, immediately before the transfer, because any remux strips it. Adobe and Pond5 both read that embedded XMP.

    Source packages/platforms/CLAUDE.md §3, §3a

  4. A CSV carries what XMP cannot: Shutterstock’s own import, Pond5’s extra fields (country, date, price mode, the audio flag), and Getty Images’s Apply from CSV.

    Source docs/research/shutterstock/README.md; packages/platforms/CLAUDE.md §3a; docs/research/getty/README.md

  5. One copy per clip per marketplace. Nothing is ever sent twice.

    Source packages/pipeline/CLAUDE.md §2

05What the marketplace shows

Read back

Uploading is not submitting. The app reads what a marketplace actually showed it.

  1. Adobe Stock’s In review, Not accepted and Portfolio tabs are read back, read-only. A clip is marked only when the portal actually showed it there.

    Source packages/pipeline/CLAUDE.md §2

  2. A clip the portal has not shown yet stays "not yet". It is never reported as lost.

    Source packages/pipeline/CLAUDE.md §2

  3. Pond5’s processing status is read the same way, off the account’s own catalogue export, never inferred from a dry run alone.

    Source packages/platforms/CLAUDE.md §3a

  4. Uploading is not submitting: the human presses Submit on the marketplace’s own page. The app never does.

    Source packages/platforms/CLAUDE.md §3a; packages/pipeline/CLAUDE.md §2

/ Used on a real lot · 2026-09-18

33

clips of one lot, on all four marketplaces, each verified on the live account

Title it once. Approve it once.

  • Your own accounts
  • Nothing leaves before you approve
  • Files never pass through our servers