Pet adoption video music: a 30-second hopeful shelter bed
Brief a 30-second hopeful acoustic bed for a shelter's pet adoption appeal: one generation and a one-minute render, $0.225 on Sume.

For a shelter's pet adoption appeal, ask for a 30-second hopeful acoustic bed with ukulele and soft piano, with a warm lift at 0:18 when the adoption call to action appears. On Sume that is one generation at $0.125 and a one-minute render at $0.10, so $0.225.
An adoption appeal asks for action, so the music should be warm without being manipulative. Avoid slow, sad piano; it can make viewers scroll away. The brief aims for gentle hope: a playful start for the animal's personality, and a lift for the call to action.
The brief to send
One short named moment, the lift at 0:18, anchors the edit to the call to action.
curl -X POST https://api.sume.com/v1/music-router/generate \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: pet-adoption-video-music-a-30-second-hop-001" \
-d '{
"model": "sume/music-auto",
"prompt": "Hopeful shelter appeal, 96 BPM, C major. Ukulele, soft piano, light glockenspiel, soft hand percussion. Playful opening, warm lift at 0:18 for the call to action, gentle close at 0:30. Warm, natural, bright production. Instrumental, no vocals. A 30-second track."
}'Why each axis is set that way
| Axis | Choice |
|---|---|
| Emotion | Hopeful, warm, playful |
| Genre | Acoustic indie-pop |
| Tempo | 96 BPM, bouncy |
| Key and mode | C major, bright |
| Instruments | Ukulele, piano, glockenspiel, hand percussion |
| Arc | Lift at 0:18, close at 0:30 |
| Era and production | Natural and bright |
Getting the length right
The router has no duration field, so the 30 seconds are in the prompt. Set audio.duration_seconds to 30 and use a short fade at the end. A shelter may want 15-second and 30-second versions; each is its own generation and its own render.
If a volunteer reads the appeal, use the voice as the spine and add duck_db.
Before paying for a render, call POST /v1/timeline-1.0/plan with the same body. It is unbilled and reports the billable minutes, which for this 30-second video is 1. Then send the real POST /v1/timeline-1.0/render with an Idempotency-Key, wait up to 30 seconds in sync mode, and poll GET /v1/jobs/:id/status if it is still queued or processing. Statuses are queued, processing, completed, failed and canceled, and a 429 queue_full means try again shortly.
What it costs
One appeal is one generation and one render. A shelter that posts a new animal every week across a year would spend about 52 times $0.225, which is $11.70, for a fresh bed each time, or $5.325 if it reuses one bed with 52 renders and generates one. Scaling is simple arithmetic. One finished video here is $0.225 of audio and assembly, so ten of them are $2.25 and fifty are $11.25, before any retries. Failed jobs are not billed as accepted generations, but a regeneration you ask for is a new job, so budget one or two extra takes for a hero clip.
| Line | Rate | Amount |
|---|---|---|
| Music generation x 1 | $0.125 each | $0.125 |
| Timeline render, 30 s = 1 started minute | $0.10 per started minute | $0.10 |
| Total for the audio and assembly | $0.225 |
Check before you publish
Test two moods against each other on a single animal; a flat price makes this cheap.
Keep winning prompts in the shelter's shared notes.
Volunteers can run this without audio skills. The workflow is a single brief, one request, and a short list of checks, and the shelter's cost stays predictable because the price per generation does not depend on the track.
The hand-off between the two calls is the step people miss. When the music job completes, GET /v1/jobs/:id/result returns result.artifacts[] with an audio/mpeg file on media.sume.com. Timeline only accepts workspace media URLs, so import any outside file through POST /v1/media-imports first, and send the resulting URL as soundtrack.url. The Music docs also note that job.request.routed_model names the engine that actually ran, which is worth saving with the file.
- Use each animal's real photos and facts; the music is not a substitute.
- Keep contact details and adoption terms in your own copy.
- Avoid sad, guilt-based moods in the prompt.
- Confirm usage terms for generated music with Sume before a paid promotion.
Sources
Related posts
More in Media tools
- Pick the cleanest last frame: sample 24 stills before chaining
Before chaining AI clips, sample up to 24 stills with Sume video frames (fps up to 2) and choose the best one as the next first_frame, not just the last.
- Pinterest video ads take H.264 or H.265: do you need H.265?
Pinterest video ads accept H.264 or H.265 in MP4, MOV or M4V, so an H.264 clip is fine. Sume's exact trim uses libx264; confirm any other output with a probe.
- Podcast quote clips end abruptly: STT boundary_lead_ms tail padding
Sume STT segmentation boundary_lead_ms (0 to 500 ms, default 70) sets how long a sentence's tail runs before the cut. Tune it, then cut with timeline audio.
- Product spec sheet to video: Wan 3.0 footage, exact specs via compose
Make a spec-sheet video without a model re-typing your numbers: generate the footage with Wan 3.0, then put your own spec card on screen with Timeline compose.
Written by Sume