Linktree video background is muted: drop the audio with trim
Linktree plays a video background on a loop with the sound muted, so audio only adds bytes. Send audio set to drop on Sume video trim, then probe has_audio.

Yes, drop the audio. Linktree's help page says a video background plays automatically on a continuous loop with the sound muted, so a soundtrack will never be heard. Sume video trim has an audio field that takes keep, which is the default, or drop. Sending drop removes the audio track from the new MP4, and the saved bytes count toward the 50 MB limit that the page gives.
The same advice applies to any surface that always plays a clip muted. If a clip will never be heard, an audio track gives you nothing, so removing it is the tidy default for that kind of upload.
What the page says
The page describes the playback behavior in one line: an automatic continuous loop with the sound muted. It adds that there is no time limit, only a size limit of 50 MB. The upload formats listed are MP4, AVI, MOV and WebM.
| Linktree behavior | Sume trim setting | Effect |
|---|---|---|
| Sound is muted | audio: drop | No audio track in the output |
| Loops continuously | start and duration | Pick a clean loop range |
| 50 MB cap | output width, height, fps | Smaller frame, fewer bytes |
How many bytes you save
How much does dropping audio save? That depends on the audio bitrate of the source, which the page does not tell us and Sume does not control in trim. As an illustration only, an audio track at 128 kbps, the rate that Sume's mp3 audio detach uses, takes 0.96 MB over 60 seconds, since 128 kbps is 0.016 MB per second. That is about 1.9 percent of a 50 MB budget.
So audio is a small share of the cap. The reason to drop it is cleanliness and a small saving, not a large one. The big levers for size are length, frame size and frame rate, which the sibling post on the 50 MB budget covers.
If the source has no audio at all, probe it first with frames set to false and read has_audio. The docs do not describe how the audio field behaves on a silent source, so confirm the result with a second probe and do not assume it. The state you want after the job is has_audio false.
Confirm it with a probe
Before you drop, find out whether there is audio at all. A video inspect probe has a has_audio field, and a call with frames set to false returns the probe and no stills. After the trim, probe the result and confirm that has_audio is false. The function below does the comparison for a before and after pair of probes.
The names are the probe fields in the Sume docs, and the sample values are placeholders.
def audio_dropped(before, after):
if after.get("has_audio") is not False:
return "audio is still present"
saved = (before.get("size_bytes") or 0) - (after.get("size_bytes") or 0)
return "audio dropped, %.2f MB smaller" % (saved / 1_000_000)
before = {"has_audio": True, "size_bytes": 12_400_000}
after = {"has_audio": False, "size_bytes": 11_900_000}
print(audio_dropped(before, after))If you want words on a silent loop
Because the background is silent, text is the only way to add words to it. Sume's standalone video captions can burn text into a clip. A silent clip has no speech to transcribe, so a speech-based job fails with caption_no_speech. The documented path is to send cues with text, start and end in seconds, which burns authored text without speech to text. A caption job costs $0.20 at the current fixed estimate for videos up to 60 seconds.
Be careful with legibility. A background sits behind your link buttons, so heavy text in the middle of the frame can compete with them. That is a design choice, and the docs give you a placement setting, anchor_ratio, in the design overrides.
Cost
Trim with drop is a $0.02 job at the public rate, so the whole sequence of trim, probe and caption stays within pennies for a short loop.
Probes are billed by their compute, and with frames set to false the call returns the probe and no stills, so the check is small. The caption job is separate and optional.
Sources
Related posts
More in Integrations
- Can a MAI-Voice-2.1 WAV join a Sume timeline? Hosted audio only
Sume timeline audio joins only Sume-hosted files, and the import route takes TikTok or Instagram URLs, so a MAI-Voice-2.1 file stays outside. What to do.
- Make webhook 429 at 300 requests per 10 seconds and Sume retries
Make returns 429 above 300 webhook requests per 10 s. Sume retries a non-2xx up to 10 times, 30 s apart, so a short burst clears; your own replay loop does not.
- Make's webhook queue holds 667 items per 10,000 credits: plan for Sume
A Make webhook queue holds 667 items per 10,000 licensed credits, capped at 10,000, and answers 400 when full. Sume retries 10 times, so size the queue first.
- Make 'Process data in order' with Sume job events: what stays ordered
Make's Process data in order runs one execution at a time. Sume sends only terminal job events with no ordering promise, so dedupe on job_id.
Written by Sume