There are many ways by which we can extend our module. For example, we could make it support more MP3 formats, but this is merely leg work. All it takes is finding out the different sync words and bitrates for different types of MP3 and then adding these at the relevant places.
For a more interesting venture, we could extend the API, creating more options for our module users.
Since we use a stream to read our MP3 file, we can allow the user to pass in either a filename or a stream of MP3 data, which offers both ease (with a simple filename) and flexibility (with streams). This way, we could start a download stream, STDIN stream, or in fact, any stream of MP3 data.
We'll pick up our module from where we left ...