Brand Carousel Batch Renderer avatar

Brand Carousel Batch Renderer

Pricing

$20.00 / 1,000 results

Go to Apify Store
Brand Carousel Batch Renderer

Brand Carousel Batch Renderer

Turn brand colors and supplied copy into ready-to-use social carousel cards. Batch-render consistent PNG slides, generate captions, and download the complete image set and assets as a ZIP package.

Pricing

$20.00 / 1,000 results

Rating

0.0

(0)

Developer

bread kim

bread kim

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a month ago

Last modified

Categories

Security

Limited permissions

Share

A private Apify Actor that turns supplied, approved Korean/English copy and four brand fields into real PNG carousel slides, a contact sheet, captions, mechanical QA evidence, a manifest, license notices, application guidance, and one deterministic ZIP. Rendering is local and deterministic; it does not generate copy, fetch customer assets, call AI, log into social networks, or post.

Input and behavior

Submit one to five carousels, two to ten slides each, at most fifty slides total. Portrait is 1080ร—1350; square is 1080ร—1080. Text is normalized to NFC. The supported glyph domain is bounded Latin/ASCII, modern Korean, and common safe punctuation from bundled Nanum Gothic. Emoji, other CJK scripts, bidirectional controls, secrets, unsupported controls, unknown keys, weak text contrast, and copy that cannot fit are rejected without a success dataset row or partial ZIP.

The renderer uses a fixed 96 px safe margin, bundled Nanum Gothic regular/bold files, measured glyph ink bounds, fixed typography ranges, and a decorative-only accent. It never interprets HTML or HTTP-looking text. Facts, rights, spelling, and final approval remain the content owner's responsibility; no engagement or sales result is promised.

Run locally

npm ci --ignore-scripts
npm run preflight
tmp_dir="$(mktemp -d)"
mkdir -p "$tmp_dir/key_value_stores/default"
cp canary_input.json "$tmp_dir/key_value_stores/default/INPUT.json"
CRAWLEE_STORAGE_DIR="$tmp_dir" node dist/main.js

The output is in $tmp_dir/key_value_stores/default and the single successful dataset row is in $tmp_dir/datasets/default/items.jsonl.

Apify API example

Use placeholders only; do not commit a token.

ACTOR_ID="<YOUR_PRIVATE_ACTOR_ID>"
curl --fail-with-body --request POST \
"https://api.apify.com/v2/acts/${ACTOR_ID}/runs?waitForFinish=120" \
--header 'Authorization: Bearer <YOUR_APIFY_TOKEN>' \
--header 'Content-Type: application/json' \
--data-binary @examples/input.json

Then use the run's default key-value-store links to download ZIP and CONTACT_SHEET.png. The authoritative OUTPUT record and the sole default dataset row are identical on success.

Contracts and errors

CAROUSELS_RENDERED is emitted only after all render and package limits pass. Invalid JSON/input and known bounded product failures emit a generic typed OUTPUT and no dataset row. Storage transport, artifact upload, and dataset publication failures fail the process instead of being mislabeled as input/render success. QA.json preserves the owner's normalized literal text and measured per-line evidence; it is not fact checking or copy editing.

See REQUIREMENTS.md, ARCHITECTURE.md, SECURITY_REVIEW.md, and SUPPORT.md.