Add option for external player
It's fairly straight-forward to emit a blob. Working example code you can paste in https://jsfiddle.net/.
const downloadBlobAsFile = function(contentType, dataFile, fileName){
var blob = new Blob([dataFile], {type: contentType}),
e = document.createEvent('MouseEvents'),
a = document.createElement('a')
a.download = fileName
a.href = window.URL.createObjectURL(blob)
a.dataset.downloadurl = [contentType, a.download, a.href].join(':')
e.initMouseEvent('click', true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null)
a.dispatchEvent(e)
}
const dataName = "NME"
const dataURL = "http://svr1.msmn.co:8136/"
const dataFile = `
#EXTM3U
#EXTINF:-1,${dataName}
${dataURL}
`
const dataType = "application/vnd.apple.mpegurl"
const fileName = "listen.m3u";
downloadBlobAsFile(dataType, dataFile, fileName);
That's M3U format. PLS would be:
const dataFile = `
[playlist]
numberofentries=1
File1=${dataURL}
Title1=${dataName}
Length1=-1
Version=2
`
const dataType = "audio/x-scpls"
const fileName = "listen.pls";
And for XSPF:
const dataFile = `
<?xml version="1.0" encoding="UTF-8"?><playlist version="1" xmlns="http://xspf.org/ns/0/"><trackList><track>
<title>${dataName}</title><location>${dataURL}</location>
</track></trackList></playlist>
`
const dataType = "application/xspf+xml"
const fileName = "listen.xspf";