quickstart.md 1.8 KB

Using radiomanifest is pretty simple. In an ideal usecase, you can easily do this:

const radiomanifest = require('radiomanifest')
const radio = radiomanifest.get('http://myradio.com/')
console.log(radio.getName())

Now we have radio, a {@link Radio} object, which can be seen as the "center" of our data. From here, we can get more data.

Streaming

The first thing we could want to do is just to play the radio. Let's use the {@link RadioStreaming#pickURLs RadioStreaming.pickURLs} method then

var streaming = radio.getStreaming()
var urls = await streaming.pickURLs()
console.log(urls)

and here we go! This is a list of URLs that the radio is indicating to us as their preferred ones. Why not a single one? Well, this could include different servers, so that the client itself can act as load-balancers.

Shows

Another nice thing you might want to do, is to display a list of all the shows that the radio is broadcasting. Our {@link Radio} keeps track of those, and for each show we can have useful metadata. See {@link RadioShow} for more details.

var shows = radio.getShows()
console.log(shows.map(s => s.getName()))

Schedule

const show = radio.getShowAtTime()
if (show !== null) {
  console.log(show.getName())
} else {
  console.log("Nothing special going on right now, sorry")
}

{@link Radio#getShowAtTime getShowAtTime} is a shortcut, but using {@link Radio#getSchedule} you'll get a nice {@link RadioSchedule}, which has many useful methods to get meaningful information about what's going on right now and {@link RadioSchedule#getNextShow what will go on next}

Conclusions

I hope this tutorial helped you get your feet wet. Hopefully, using radiomanifest you'd be able to create great webapps that work on any webradio (well, any webradio that supports radiomanifest, at least).