YouTube audio: AAC-LC, Opus or Eclipsa, and what a Sume export carries
YouTube's upload settings name AAC-LC, Opus and Eclipsa Audio at 48 kHz stereo. Read audio_codec, channels and sample rate from video inspect before you upload.

YouTube's recommended upload settings accept AAC-LC, Opus or Eclipsa Audio, in stereo or stereo plus 5.1, at a 48 kHz sample rate. A Sume export is checked the same way for every platform: run video inspect and read audio_codec, audio_channels and audio_sample_rate from the probe. The Sume docs name AAC for exact video-trim output; they do not state the codec of a Timeline render, so read the field rather than assume.
What YouTube lists
YouTube Help: Recommended upload encoding settings, read 2026-10-04, gives: container MP4 with the moov atom at the front and no edit lists; video H.264 High Profile; audio codec AAC-LC, Opus or Eclipsa Audio; stereo or stereo plus 5.1; 48 kHz; audio bitrate 384 kbps for stereo and 512 kbps for 5.1. These are recommended settings, not hard rejections: YouTube transcodes whatever it accepts.
| YouTube setting | Value | Probe field to read |
|---|---|---|
| Codec | AAC-LC, Opus, or Eclipsa Audio | audio_codec |
| Channels | Stereo, stereo plus 5.1, or stereo plus Eclipsa Audio | audio_channels |
| Sample rate | 48 kHz | audio_sample_rate |
| Audio present | Required for a normal upload | has_audio |
Reading the fields
Video inspect probes one clip on media.sume.com and returns has_audio, audio_codec, audio_channels and audio_sample_rate, each nullable when there is no audio track. Send frames: false so you pay only for the probe. A has_audio: false result also tells you not to request a transcript: transcribe: true on a silent clip returns inspect_source_has_no_audio.
The probe reports what is in the file; it does not change it. Sume exposes no audio codec or sample-rate field on trim, filter or timeline, and codec keys like codec are refused with ffmpeg_fields_rejected. So if the probe shows a 44.1 kHz source, the lever is upstream: pick a 48 kHz source or re-record.
curl -X POST https://api.sume.com/v1/video-inspect \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: audio-probe-001" \
-d '{
"video_url": "https://media.sume.com/artifacts/artf_demo/short.mp4",
"frames": false
}'What Sume documents per surface
Video trim with the default precision: exact re-encodes video with libx264 and yuv420p, and says exact remuxes kept audio as AAC; precision: keyframe is a stream copy, so the audio stays as the source had it. Timeline 1.0 mixes a spine and optional soundtrack and renders an MP4, but the docs do not list the audio codec, so probe the output before an upload pipeline depends on it.
If you need only the track, audio detach returns it as a wav or mp3.
Sources
Related posts
More in Developers
- YouTube 'Info from' under an AI label: what the signing authority is
The 'Info from' line under a YouTube AI disclosure names who signed the Content Credentials. Which labels carry it, and what a Sume export does not add.
- YouTube Live 1080p30 H.264 bitrate: 5 to 14 Mbps, GB per hour
YouTube Live recommends 5 to 14 Mbps for 1080p30 H.264, with 2 B-frames and a 2-second keyframe. The gigabytes per hour for each rung, and what Sume cannot set.
- YouTube Shorts Creator Pool example: $405 from 1 million engaged views
YouTube's own worked example pays $405 for 1 million engaged views in a 100 million market. The math in Python, with the all-music case at $225.
- Turn a 16-shot list into 16 Sume video jobs in Python
Submit one /v1/videos job per shot with a first frame, run them concurrently with asyncio, and give each shot an Idempotency-Key so a rerun never bills twice.
Written by Sume