Skip to content

A node module for validating your MP3 files to be used in your Amazon Alexa skill.

License

Notifications You must be signed in to change notification settings

tejashah88/alexa-mp3-validator

Repository files navigation

alexa-mp3-validator

NPM Version Build Status Coverage Status dependencies Status

A node module for validating your MP3 files to be used in your Amazon Alexa skill. If you are looking for a CLI version, check out ssmlol. If you want to convert your MP3 files to be usable by Alexa, check out this website.

Upgrading from < 1.0

If you are upgrading from < 1.0, please see UPGRADING for migration instructions.

Requirements of Alexa-ready MP3 Files

Every MP3 file you want Alexa to play must meet several basic requirements. They are as follows:

  • A valid (MPEG version 2) MP3 file
  • No longer than 90 seconds
  • Encoded with a bit rate of exactly 48 kbps
  • Encoded with a sample rate of exactly 16,000 Hz

Usage

The module will check the requirements and return a Promise that returns true or false. An error will be thrown if the module is unable to read the file.

Function signature

Boolean validateMP3(String filepath, optional Boolean throwOnValidationError = false)

Using with Promises

const { validateMP3 } = require('alexa-mp3-validator');
validateMP3('path/to/file.mp3')
  .then(isValid => {
    // more logic goes here
  })
  .catch(err => {
    // error handling logic goes here
  })

Using with async/await

const { validateMP3 } = require('alexa-mp3-validator');
(async () => {
  try {
    let isValid = await validateMP3('path/to/file.mp3');
    // more logic goes here
  } catch (err) {
    // error handling logic goes here
  }
})()

By default, if a validation error occurs, it will return false. By setting throwOnValidationError to true, all errors will throw.

Using with async/await and throwOnValidationError = true

const { validateMP3, AudioValidationError } = require('alexa-mp3-validator');
(async () => {
  try {
    let isValid = await validateMP3('path/to/file.mp3', true);
    // more logic goes here
  } catch (err) {
    if (err instanceof AudioValidationError) {
      // validation error handling logic goes here
    } else {
      // other error handling logic goes here
    }
  }
})()

About

A node module for validating your MP3 files to be used in your Amazon Alexa skill.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published