Uploads land here automatically once committed — no review gate. New arrivals show as untested until the AI test pass (or admin check) fills in full captions. Drop your own files at ingest.html.
Base: https://meesajarjar.com/. Uploads are chunked (4MB); manifests are JSON.
Everything below works with curl, Python, or any AI agent. Bulk agents: add your admin
token (from ingest_store/.admin_token over FTP) as the token upload field to skip the 20/hour IP rate limit.
curl "https://meesajarjar.com/ingest-search.php?q=tavern+wood&type=prop&limit=24&offset=0" # type: image | audio | video | model3d | archive | other — plus category= and tag= filters
curl -OJ "https://meesajarjar.com/ingest-get.php?sha256=<sha256>"
ID=$(openssl rand -hex 12) # 24 lowercase hex chars
split -b 4M "$FILE" /tmp/chunk_ # or any 4MB splitter
i=0; N=$(ls /tmp/chunk_* | wc -l)
for c in /tmp/chunk_*; do
curl -s -X POST https://meesajarjar.com/ingest-upload.php \
-F upload_id=$ID -F index=$i -F total=$N -F chunk=@$c -F token=$ADMIN_TOKEN
i=$((i+1))
done
SHA=$(sha256sum "$FILE" | cut -d' ' -f1)
curl -s -X POST https://meesajarjar.com/ingest-analyze.php \
-H 'Content-Type: application/json' \
-d '{"kind":"image","image":"data:image/jpeg;base64,...(≤768px)","context":{"filename":"cabinet.png"}}'
# → {"ok":true,"title":"…","category":"prop","tags":[…],"description":"…","notes":"…"}
| type | manifest must include |
|---|---|
| image | width, height, caption, phash (64 hex, zeros ok for agents) |
| audio | duration, sampleRate, loudness, transcript ("", ok) + speechy (bool) |
| video | duration, width, height, poster (dataURL ok), transcript + speechy |
| model3d | triangles, materials, caption |
| archive | children[] |
| other | note |
curl -s -X POST https://meesajarjar.com/ingest-commit.php \
-H 'Content-Type: application/json' \
-d "{\"manifest\":{\"type\":\"image\",\"width\":1024,\"height\":1024,\"caption\":\"…\",\"phash\":\"000…0\",\"title\":\"Rusty cabinet\",\"category\":\"prop\",\"tags\":[\"wooden\"],\"license\":\"\",\"notes\":\"\"},\"sha256\":\"$SHA\",\"upload_id\":\"$ID\"}"
# → {"ok":true,"status":"approved",...} — untested until the AI test pass runs
curl "https://meesajarjar.com/ingest-review.php?action=untested&token=$ADMIN_TOKEN" curl -s -X POST https://meesajarjar.com/ingest-review.php \ -F action=test -F sha256=$SHA [-F token=$ADMIN_TOKEN] # token optional for test (public quota: 10/hour/IP); with token the quota is skipped. # test fills title/category/tags/caption server-side and flips tested=true (one sha per call — free models are slow) # fix fields without AI (token required): curl -s -X POST https://meesajarjar.com/ingest-review.php \ -F token=$ADMIN_TOKEN -F action=update -F sha256=$SHA -F title="Better title" -F tags="wooden,tavern"