seratojs

3.2.0 • Public • Published

seratojs

Manage Serato Crates Programatically in NodeJS.

Installing

npm install seratojs

Usage

const seratojs = require("seratojs");

// List all crates defined by user.
const crates = seratojs.listCratesSync();
console.log(crates);

// List all song filepaths in a given crate.
const crate = crates[0];
const songs = crate.getSongPathsSync();
console.log(songs);

// Create a crate
const newCrate = new seratojs.Crate("ProgramaticallyCreatedCrate");
newCrate.addSong("Users/bcollazo/Music/song.mp3");
newCrate.addSong("C:\\Users\\bcollazo\\Music\\second_song.mp3");
newCrate.saveSync();

Asynchronous (await-async / promise-based) API:

const seratojs = require("seratojs");

(async function () {
  const crates = await seratojs.listCrates();
  const songs = await crates[0].getSongPaths();
  const newCrate = new seratojs.Crate("ProgramaticallyCreatedCrate");
  newCrate.addSong("Users/bcollazo/Music/song.mp3");
  await newCrate.save();
})();

Adding songs from different drives will replicate Serato's behavior of saving the crate in all drives participating in the crate.

const crate = new seratojs.Crate("MyCrate");
crate.addSong("D:\\Music\\song1.mp3");
crate.addSong("C:\\Users\\bcollazo\\Music\\song2.mp3");
crate.saveSync(); // will save in D:\\_Serato_ and C:\\Users\\bcollazo\\Music\\_Serato_

Notes

SeratoJS tries to sanitize crate name before creation. This is to allow crates named 'Some / Name' to be created without giving trouble. It will be created as 'Some - Name' instead.

Migrating from 1.x to 2.x

  • Change crate.getSongPaths() to crate.getSongPathsSync() or await crate.getSongPaths().
  • Change newCrate.save() to newCrate.saveSync() or await newCrate.save().

Package Sidebar

Install

npm i seratojs

Weekly Downloads

2

Version

3.2.0

License

MIT

Unpacked Size

24.5 kB

Total Files

10

Last publish

Collaborators

  • bcollazo