{"record":{"id":"ff44f3b650852427","repo":"remotion-dev/remotion","slug":"live-streams-are-not-currently-supported-by-remoti","errorCode":null,"errorMessage":"Live streams are not currently supported by Remotion. Sorry! Source: ${typeof src === 'string' ? src : `audio track ${src.id}`}","messagePattern":"Live streams are not currently supported by Remotion\\. Sorry! Source: (.+?)`\\}","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"packages/timeline-utils/src/audio-waveform/load-waveform-peaks.ts","lineNumber":72,"sourceCode":"\t\t\tonProgress: options?.onProgress,\n\t\t});\n\t\treturn cached;\n\t}\n\n\tconst input =\n\t\ttypeof src === 'string'\n\t\t\t? new Input({formats: ALL_FORMATS, source: new UrlSource(src)})\n\t\t\t: null;\n\n\ttry {\n\t\tconst audioTrack =\n\t\t\ttypeof src === 'string' ? await input!.getPrimaryAudioTrack() : src;\n\t\tif (!audioTrack) {\n\t\t\treturn {peaks: new Float32Array(0), averageVolume: null};\n\t\t}\n\n\t\tif (await audioTrack.isLive()) {\n\t\t\tthrow new Error(\n\t\t\t\t'Live streams are not currently supported by Remotion. Sorry! Source: ' +\n\t\t\t\t\t(typeof src === 'string' ? src : `audio track ${src.id}`),\n\t\t\t);\n\t\t}\n\n\t\tif (await audioTrack.isRelativeToUnixEpoch()) {\n\t\t\tthrow new Error(\n\t\t\t\t'Streams with UNIX timestamps are not currently supported by Remotion. Sorry! Source: ' +\n\t\t\t\t\t(typeof src === 'string' ? src : `audio track ${src.id}`),\n\t\t\t);\n\t\t}\n\n\t\tconst audioSampleRate = await audioTrack.getSampleRate();\n\t\tconst durationInSeconds =\n\t\t\t(await audioTrack.getDurationFromMetadata({skipLiveWait: true})) ??\n\t\t\t(await audioTrack.computeDuration({skipLiveWait: true}));\n\t\tconst totalPeaks = Math.ceil(durationInSeconds * waveformSampleRate);\n\t\tconst samplesPerPeak = Math.max(","sourceCodeStart":54,"sourceCodeEnd":90,"githubUrl":"https://github.com/remotion-dev/remotion/blob/b2f4e34732f3c6c222ea029413e22dc402218cd7/packages/timeline-utils/src/audio-waveform/load-waveform-peaks.ts#L54-L90","documentation":"loadWaveformPeaks extracts audio peaks for the Studio timeline using Mediabunny audio tracks. Live streams (isLive() === true) cannot be decoded into waveform peaks, so the function throws with the offending source (URL string or audio track id) in the message.","triggerScenarios":"Passing an <Audio>/OffthreadAudio source that resolves to a live stream (e.g. an HLS/DASH live URL or live radio stream) to the waveform loader; supplying an audio track object whose isLive() returns true.","commonSituations":"Pointing a composition at a live radio/TV feed, an event stream URL, or a CDN URL that serves live content instead of a static file.","solutions":["Use a static, downloadable audio file (MP3/WAV/AAC etc.) instead of a live stream URL.","Record/snapshot the live stream to a file first, then reference the recorded asset.","Check the source URL — if it is an HLS manifest or live endpoint, replace it with a VOD asset.","If using a track object, verify isLive() is false before calling loadWaveformPeaks."],"exampleFix":"// before\nloadWaveformPeaks('https://example.com/live/stream.m3u8');\n// after\nloadWaveformPeaks('https://example.com/audio/episode-1.mp3');","handlingStrategy":"try-catch","validationCode":"if (typeof src === 'string' && /\\.(m3u8|mpd)(\\?|$)/.test(src)) {\n  throw new Error('Refusing live/VOD-manifest source for waveform loading');\n}","typeGuard":"const isLiveTrack = async (t: AudioTrack) => await t.isLive();","tryCatchPattern":"try {\n  const {peaks} = await loadWaveformPeaks(src);\n} catch (e) {\n  if (e.message.includes('Live streams are not currently supported')) {\n    peaks = emptyPeaks; // or use a pre-recorded snapshot of the stream\n  } else throw e;\n}","preventionTips":["Only feed static audio files to the waveform loader.","Detect HLS/DASH/live URLs up front and substitute recorded assets.","Record live streams to files before using them in compositions.","Check track.isLive() before requesting peaks when you have a track object."],"tags":["audio","waveform","unsupported-media"],"backgroundTag":"unsupported-operation","analyzedSha":"b2f4e34732f3c6c222ea029413e22dc402218cd7","analyzedAt":"2026-09-09T13:27:51.281Z","contentChangedAt":"2026-09-09T13:27:51.281Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}