Skip to content

amilajack/freesound-client

Repository files navigation

freesound-client

Test NPM version npm

A freesound v2 client that works in node and the browser

Installation

npm install freesound-client
yarn add freesound-client

Usage

Setup

import FreeSound from "freesound-client";

const freeSound = new FreeSound();

// Set token
freeSound.setToken("your-api-key");

Searching

// Text search
await freeSound.textSearch("violoncello", {
  page: 1,
  filter: "tag:tenuto duration:[1.0 TO 15.0]",
  sort: "rating_desc",
  fields: "id,name,url",
});

// Combined search
await freeSound.combinedSearch({
  target: "rhythm.bpm:120&filter=tag:loop",
});

// Content search
await freeSound.contentSearch({
  target: "lowlevel.pitch.mean:220",
});

Retrieving a sound or pack of sounds

// Getting a pack
const pack = await freeSound.getPack(9678);
// Getting a pack's sounds
const packSounds = await pack.sounds();

// Getting a sound
const sound = await freeSound.getSound(96541);
// Getting a sound's related data
const [analysis, similar, comments] = await Promise.all([
  sound.getAnalysis(),
  sound.getSimilar(),
  sound.getComments(),
]);

Retrieving User Data

// Getting a user
await freeSound.getUser("Jovica");
// Getting a user's related data
const [sounds, packs, bookCat, bookCatSounds] = await Promise.all([
  user.sounds(),
  user.packs(),
  user.bookmarkCategories(),
  user.bookmarkCategorySounds(),
]);

OAuth

// OAuth login
freeSound.setToken("your-api-key", "oauth");
// Set your application's client_id and client_secret
freeSound.setClientSecrets("your-client-id", "your-client-secret");
// Make the user navigate here
freeSound.getLoginURL();
// Use the authorization code from the login
freeSound.postAccessCode("your-temporary-code-from-login");

API Docs

See the API Docs

Runnable Example

  • See the runnable example here

Local setup

git clone https://github.com/amilajack/freesound-client
cd freesound-client
yarn
cp .env.example .env
yarn test