Files
workspace/.claude/skills/remotion-best-practices/rules/get-audio-duration.md

1.3 KiB

name, description, metadata
name description metadata
get-audio-duration Getting the duration of an audio file in seconds with Mediabunny
tags
duration, audio, length, time, seconds, mp3, wav

Getting audio duration with Mediabunny

Mediabunny can extract the duration of an audio file. It works in browser, Node.js, and Bun environments.

Getting audio duration

import { Input, ALL_FORMATS, UrlSource } from "mediabunny";

export const getAudioDuration = async (src: string) => {
  const input = new Input({
    formats: ALL_FORMATS,
    source: new UrlSource(src, {
      getRetryDelay: () => null,
    }),
  });

  const durationInSeconds = await input.computeDuration();
  return durationInSeconds;
};

Usage

const duration = await getAudioDuration("https://remotion.media/audio.mp3");
console.log(duration); // e.g. 180.5 (seconds)

Using with staticFile in Remotion

Make sure to wrap the file path in staticFile():

import { staticFile } from "remotion";

const duration = await getAudioDuration(staticFile("audio.mp3"));

In Node.js and Bun

Use FileSource instead of UrlSource:

import { Input, ALL_FORMATS, FileSource } from "mediabunny";

const input = new Input({
  formats: ALL_FORMATS,
  source: new FileSource(file), // File object from input or drag-drop
});