Limited offer: MAKINGVIDEOS for 50%+ off!

Back to Blog
How to Add Sound Effects to React Video Editor
Guides

How to Add Sound Effects to React Video Editor

Step-by-step guide to adding royalty-free sound effects and music to your React Video Editor app using the Lots of Sounds API.

Sam

Creator of RVE

React Video Editor ships with built-in support for Lots of Sounds, a royalty-free sound effects and music API.

Once connected, your users can search, preview, and add 1,500+ CC0-licensed sounds directly from the editor timeline - no file uploads, no stock site tab-switching, no attribution headaches.

This guide walks you through the setup from scratch.

Key takeaways

  • RVE includes the full Lots of Sounds integration out of the box - you just need to add your API key.
  • All sounds are CC0 licensed, so there are no attribution requirements or commercial-use restrictions.
  • The integration uses a server-side proxy pattern, so your API key is never exposed to the browser.

What you get

When the integration is active, the Sounds panel in the editor sidebar lets users:

  • search for sounds using natural language queries like "gentle notification chime" or "dramatic cinematic boom"
  • preview sounds inline before adding them to the timeline
  • drag or click to add a sound to the timeline at any position
  • browse results from multiple audio sources in separate tabs

All of this is already wired up in RVE. The only thing you need to provide is a Lots of Sounds API key.

Step 1: Create a Lots of Sounds account

Head to lotsofsounds.com/sign-up and create an account.

Subscribe to either:

  • Pro ($15/month) - 2,500 API requests/day, 250 downloads/day
  • Enterprise ($49/month) - 50,000 API requests/day, unlimited downloads

Use code RVE20 for 20% off any plan.

Once subscribed, go to your dashboard and generate an API key. It will start with los_.

If this is you

  • You have pulled down React Video Editor and want to enable the built-in audio panel.
  • You are building a video editor product and want users to search and add sounds without leaving the app.
  • You are building AI video workflows where audio needs to be selected programmatically.

Step 2: Add your API key to the environment

Add your Lots of Sounds API key to your .env file in the root of your project:

NEXT_LOTSOFSOUNDS_API_KEY=los_your_api_key_here

That is the only configuration needed. RVE reads this key server-side and never exposes it to the browser.

Restart your dev server after adding the key:

npm run dev

Step 3: Verify it works

Open your editor and click the Sounds tab in the sidebar. You should see search results from Lots of Sounds immediately.

If the key is missing or invalid, the panel will fall back to showing only the default static audio tracks. Check your terminal for a LotsOfSounds API key not configured error if results are not appearing.

How the integration works under the hood

You do not need to understand this to use it, but it helps if you want to customize the behavior.

RVE uses a server-side proxy pattern with three layers:

API routes

Two Next.js API routes handle all communication with Lots of Sounds. Your API key stays on the server and is never sent to the browser.

/api/sounds/search - proxies search queries:

// app/api/sounds/search/route.ts
const response = await fetch(
  `https://api.lotsofsounds.com/api/v1/sounds?${params.toString()}`,
  {
    headers: { "x-api-key": process.env.NEXT_LOTSOFSOUNDS_API_KEY },
  }
);

/api/sounds/stream/[id] - proxies audio playback. This is a two-step process:

  1. Fetches a signed download URL from the Lots of Sounds API
  2. Streams the actual audio bytes back to the client

The proxy approach is necessary because the browser cannot follow cross-origin redirects to signed URLs, and the waveform processor needs raw audio bytes. Audio responses are cached for one hour.

The adaptor

The lotsofsoundsAudioAdaptor in app/reactvideoeditor/pro/adaptors/lotsofsounds-audio-adaptor.ts converts Lots of Sounds API responses into the StandardAudio format that the editor understands:

function mapToStandardAudio(item: LotsOfSoundsItem): StandardAudio {
  return {
    id: item.id,
    title: item.name,
    artist: "LotsOfSounds",
    duration: item.duration,
    file: `/api/sounds/stream/${encodeURIComponent(item.id)}`,
    attribution: {
      source: "LotsOfSounds",
      license: item.license,
    },
  };
}

All audio URLs point to the local proxy route, so the API key is never leaked to the client.

Default adaptors

RVE registers audio sources in app/reactvideoeditor/pro/adaptors/default-audio-adaptors.ts:

export const getDefaultAudioAdaptors = (): SoundOverlayAdaptor[] => {
  return [lotsofsoundsAudioAdaptor, defaultAudioAdaptor];
};

The Lots of Sounds adaptor is included by default alongside a small set of static stock tracks. If you want to add your own audio sources, you can create additional adaptors that implement the SoundOverlayAdaptor interface and add them to this array.

Customizing search behavior

The Lots of Sounds API supports several search parameters that you can use to filter results:

ParameterDescription
qNatural language search query
tagsComma-separated filter tags (AND logic)
min_durationMinimum duration in seconds
max_durationMaximum duration in seconds
sortSort by duration or name
orderasc or desc
limitResults per page (1-100, default 20)
pagePage number

If you want to pass additional parameters, you can modify the search route at app/api/sounds/search/route.ts to forward them to the upstream API.

Using Lots of Sounds in AI video workflows

If your app supports AI-assisted video creation, the Lots of Sounds API works especially well because it accepts natural language search queries.

An agent or backend process can search for sounds like "subtle notification ping" or "cinematic boom with reverb" and get structured results back without needing exact tag names.

def search_sounds(query: str, tags: str = None, limit: int = 5) -> dict:
    """Search for royalty-free sound effects and music."""
    params = {"q": query, "limit": limit}
    if tags:
        params["tags"] = tags
    response = requests.get(
        "https://api.lotsofsounds.com/api/v1/sounds",
        headers={"x-api-key": "los_your_key"},
        params=params,
    )
    return response.json()

Lots of Sounds also publishes tool schemas for OpenAI function calling and Claude tool use, plus a full OpenAPI spec at lotsofsounds.com/openapi.yaml. For more on AI-driven video workflows, see React Video Editor for AI Video Apps.

What the built-in integration gives you

  • Search, preview, and add sounds without leaving the editor - zero setup beyond the API key.
  • API key stays server-side so it is never exposed to your users.
  • CC0 licensing means no attribution tracking or legal overhead.
  • Natural language search works for both humans and AI-driven workflows.

What you may want to customize

  • The default integration forwards only query, limit, and page - add tag or duration filters by editing the search route.
  • If you need user-managed API keys instead of a shared key, you will need to modify the proxy routes.
  • Search results are not cached client-side - consider adding caching if you expect heavy usage.

Available sound categories

The catalog covers the categories most editors need:

  • Nature and weather: thunder, rain, wind, ocean, forest, birds, water
  • UI and interface: clicks, notifications, transitions, chimes
  • Foley: footsteps, doors, keyboards, glass, camera shutters, corks
  • Music: piano, guitar, drums, synth, vinyl, lofi
  • Cinematic: booms, drones, lasers, whooshes, swooshes
  • Ambient: crowds, subways, fireplaces, helicopters

All 1,500+ sounds are royalty-free and commercially cleared under CC0.

Questions readers usually ask

Next step

Get started with sound effects in your editor

Sign up for Lots of Sounds, add your API key, and your users can search and add audio without leaving the editor.

Continue Reading

Explore more articles from our blog

Video editing transitions showcase
Start Creating Today

Ready to Build YourNext Video Project?

Join developers worldwide who are already creating amazing video experiences. Get started with React Video Editor today.