emms-help
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: new emms-streams.el


From: Yoni Rabkin
Subject: Re: new emms-streams.el
Date: Tue, 14 Jan 2020 17:18:43 -0500
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux)

Mike Kazantsev <address@hidden> writes:

> On Sun, 01 Dec 2019 13:12:52 -0500
> Yoni Rabkin <address@hidden> wrote:
>
>> Mike Kazantsev <address@hidden> writes:
>> 
>> > Guess for players without extensive APIs or stream metadata processing
>> > it can be implemented via timer with http request.
>> 
>> In fact, I implemented it for Emms many (too many) years ago completely
>> in elisp. It actually worked, and was a fun hack, but of course locked
>> up Emacs as it did so.
>
> Note that it's not inevitable these days - emacs has fully async
> sockets, where as far as I know (and was able to test with mpv),
> neither connection nor reception should block, only cpu-bound
> processing, which should be pretty liteweight in this case.
>
> So I think it should be possible to do fully in elisp, and don't think
> there are different standards for these tags - everything uses icy,
> and did for more than a decade now, though haven't looked too closely,
> and might be wrong.

Icy metadata spliced into the stream was, and still is, an ugly and
unstructured kludge. I would want to avoid it if possible, and fall back
to it if needed.

"Modern" icecast servers provide the information in a standard,
structured way: http://icecast.org/docs/icecast-2.4.1/server-stats.html

For instance,

$ curl -H "Icy-MetaData: 1" -v 
"http://audio-mp3.ibiblio.org:8000/status-json.xsl";

Reports an Icecast 2.4.4 server along with a host of structured data at
that address.

...while

$ curl -H "Icy-MetaData: 1" -v "http://stream0.wfmu.org/freeform-high.mp3"; 
>/dev/null
 
Reports an Icecast 2.3.3 server and exposes nothing at "/status-json.xsl"

We need to re-write emms-stream-info.el in any case.

-- 
   "Cut your own wood and it will warm you twice"



reply via email to

[Prev in Thread] Current Thread [Next in Thread]