Spotify HDR video podcast: tone-mapped to SDR Rec.709
Spotify converts HDR (Rec.2100) uploads to SDR Rec.709. A Sume exact trim re-encodes to yuv420p and has no colour fields, so tone-map before you trim.

Spotify for Creators converts HDR uploads itself: its Video specs say HDR (Rec.2100) is tone-mapped to SDR Rec.709 and Rec.2020 is down-converted to a Rec.709 compatible colorspace. Sume trim documents no colour option, so you cannot choose the mapping there; an exact trim re-encodes to libx264 with yuv420p.
Spotify's rules are from its Video specs page; Sume's from Video trim, Video filter and Video inspect, read 2026-10-01.
What does Spotify accept for colour?
| You upload | Spotify says |
|---|---|
| SDR Rec.709 | Listed as the standard dynamic range format |
| HDR Rec.2100 | Converted/tone-mapped to Rec.709 standard dynamic range |
| Rec.2020 | Down-converted to Rec.709 compatible colorspace |
What does an exact Sume trim output?
precision: "exact" is a frame-accurate re-encode with libx264 and yuv420p. The docs do not describe any HDR handling or colour-tag behavior for that step, so do not assume the cut preserves or converts HDR in a particular way. Test one clip and look at the result.
Can I pass a colour or codec setting?
No. Fields such as codec or crf are refused with ffmpeg_fields_rejected. The video filter surface offers dim and crop ops plus an allowlisted filtergraph; the docs describe no tone-mapping or colour option there, so do not count on it for HDR.
How do I check what my source is?
Run video inspect first. When ready, the resource carries probe, the source facts, so you can see what you are about to cut before deciding whether Spotify's own conversion is acceptable. If it is, upload the cut as is; if you need control over the grade, do the tone-mapping in your grading tool and trim afterwards. For a related codec question see convert HEVC to H.264.
Sources
Related posts
More in Developers
- Spotify video audio channels: mono upmixed, 5.1 downmixed
Spotify upmixes mono to stereo, downmixes 5.1, and rejects multi-channel. Sume audio detach offers only channels source or mono; it cannot mix to stereo.
- Sume SDK fetch wrapper: do not add an Authorization header
A fetch wrapper passed to createSumeClient must not add Authorization. Sending it with x-api-key returns 401, because Sume accepts only one credential.
- Sume SDK calls resolve with error: make your task throw
Generated Sume SDK operations return { data, error, response } and never throw. In Trigger.dev or Inngest, throw yourself or a failed run looks successful.
- Supabase Edge Function 400 s wall clock vs a Sume video job
Supabase Edge Functions cap wall clock at 150 s on Free and 400 s on Paid. Do not wait on a video: submit in one function and receive the webhook in another.
Written by Sume