Skip to content

Instantly share code, notes, and snippets.

@ghaiklor
Created September 21, 2015 17:03
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ghaiklor/280741ed1c07f63580f0 to your computer and use it in GitHub Desktop.
Save ghaiklor/280741ed1c07f63580f0 to your computer and use it in GitHub Desktop.
Listen to radio and record it to file
'use strict';
import fs from 'fs';
import program from 'commander';
import Speaker from 'speaker';
import { Decoder } from 'lame';
import Parser from 'icecast-parser';
program
.option('-s, --source <source>', 'Source station')
.option('-d, --destination <destination>', 'Desination file')
.parse(process.argv);
let speakers = new Speaker();
let decoder = new Decoder();
let station = new Parser({url: program.source, keepListen: true});
station.on('metadata', metadata => console.log(metadata.StreamTitle));
station.on('stream', stream => {
stream.pipe(fs.createWriteStream(program.destination));
stream.pipe(decoder).pipe(speakers);
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment