The Universal Device Detection library will parse any User Agent and detect the browser, operating system, device used (desktop, tablet, mobile, tv, cars, console, etc.), brand and model.
utf-8 - encoding expected for in-stream metadata***
* = This is the software version. Known versions so far are 0.4 and 0.5.
** = It uses a Python3 module, so these depend on what the platform module reports.
*** = typically utf-8 or latin1 but can be empty (=guess) or have other values.
It is difficult to categorize, since it’s no browser but concentrates on detecting if an audio stream is live, and reads ICY metadata for displaying purposes ("now playing"). It is also not a bot or a crawler but typically watches this one stream defined in its configuration.
Maybe it could be categorized as a (non-mobile) app, or, better yet, a media player, since it behaves exactly like a media player: Connects to an audio stream and reads it (although throwing away all audio information and just keeping the in-stream metadata).
I’d still be happy if it was at least detected as StudioDisplay 0.5 and not "unknown". It is of interest to station operators (like AzuraCast) to see which listeners are actually listeners and which are just dumb displays hanging at studio walls.
Together with other data, this is typically used by web radio studios for a wall-mounted studio display like this:
AzuraCast uses your library and pointed me here.
I was wondering why my
StudioDisplay
is reported asUnknown browser 0.00
, instead of (at least)StudioDisplay 0.5
.StudioDisplay is a modular MQTT-based signalling & display solution for Web Radio Stations. The software is around since 2017.
It has a stream metadata reader module that reads in-stream metadata from Icecast and Shoutcast audio streams and publishes that to an MQTT server.
Its user agent looks like this (examples):
where
StudioDisplay
- name (doesn’t change)0.5
- version*Linux
- system**5.10.63-v7+
- release**armv7l
- machine type**32bit
- bitness**utf-8
- encoding expected for in-stream metadata**** = This is the software version. Known versions so far are
0.4
and0.5
.** = It uses a Python3 module, so these depend on what the
platform
module reports. *** = typicallyutf-8
orlatin1
but can be empty (=guess) or have other values.It is difficult to categorize, since it’s no browser but concentrates on detecting if an audio stream is live, and reads ICY metadata for displaying purposes ("now playing"). It is also not a bot or a crawler but typically watches this one stream defined in its configuration.
Maybe it could be categorized as a (non-mobile) app, or, better yet, a media player, since it behaves exactly like a media player: Connects to an audio stream and reads it (although throwing away all audio information and just keeping the in-stream metadata).
I’d still be happy if it was at least detected as
StudioDisplay 0.5
and not "unknown". It is of interest to station operators (like AzuraCast) to see which listeners are actually listeners and which are just dumb displays hanging at studio walls.Together with other data, this is typically used by web radio studios for a wall-mounted studio display like this: