BluAS, webpage controller for BluOS

Introduction
BluAS stands for BluOS Album Shuffle and is a webpage controller that allows you to control your BluOS player at home. Its main function is to select and play complete albums randomly selected from your local NAS.

Click on the example below for a larger image or click here for a short demo.

Example of BluAS, an album shuffle webpage controller for BluOS (Janis Joplin album) Example of BluAS, an album shuffle webpage controller for BluOS (Supertramp album) Example of BluAS, an album shuffle webpage controller for BluOS (genre filter) Example of BluAS, an album shuffle webpage controller for BluOS (Sea Power album)

The official BluOS Controller mobile app (by BlueSound, check on Google Play) doesn't yet offer such an "album shuffle" function, while users with large music collections on their NAS (like me) would like this (see here).

Background
My first idea was to let a software program (that had access to my NAS) feed the BluOS app in some way. A little later I discovered that there was an actual API for the BluOS system: here you will find the latest specification (v1.7) of the BluOS Custom Integration API.

The implementation was initially developed as a Python script as a proof of concept. The next step was to develop a more interactive solution. While a new mobile app seems like the best approach, that might be somewhat pointless if BlueSound adds the ability to shuffle albums in the future.

A better and easier idea was to create a webpage (html code with some javascript), because most NAS systems also offer a web server? And aren't they up 7x24 at your home? The idea (or challenge) of a webpage controller was born, and the development and design of the basic version took some days in June-July 2025.

Note: Despite all this, the idea of ​​a mobile app persisted, especially now that a potential solution from BlueSound is still elusive. I'm currently developing and testing the first version of an Android app, which looks promising. It has the same functionality, but with an even better user interface thanks to its UI features (and no CORS nonsense). I plan to make the app available through my website in two versions: a free, license-free version (with some limitations) and a paid version. Please email me if you would like more information about this option to make the most of your large music collection.

How to get it?
The BluAS web resources are available in a zip file that can be obtained by an e-mail request to info@phdsoftware.nl. The zip file contains currently 5 html pages, their stylesheets and a subfolder with necessary images files. The latest BluAS version is aligned with BluOS version 4.10.13 (released July, 14th, 2025).

  • bluas.html, webpage of portrait version of BluAS
  • bluas-ls.html, webpage of landscape version of BluAS
  • bluas.js, javascript code for BluAS webpages
  • about.html, webpage with basic info on BluAS
  • bluascan.html, webpage to scan network for BluOS device
  • light.css, light stylesheet for portrait version of BluAS
  • light-ls.css, light stylesheet for landscape version of BluAS
  • dark.css, dark stylesheet for portrait version of BluAS
  • dark-ls.css, dark stylesheet for landscape version of BluAS
  • bluas-sample.csv, sample file with artist names
  • images/, folder with images for buttons etc.
Note: The original Python script has been developped into a more robust version (with just a basic "album shuffle") and is also available on request as zip file, containing the script, a simple bat file (for Windows) and a screendump, showing its commands.

How to use it?
The BluAS resources are available under the Common Creative BY-NC-SA license, which means you can share and modify them as you see fit. You must give appropiate credit to PhD Software and indicate what changes have been made. You may not use the resources for commercial purposes. Using BluAS is at your own risk. PhD Software is not liable for any damage resulting from its use.

How to install it?
To use BluAS you will of course need a (local) web server on which you will need to copy the html pages, CSS files and images. Unfortunately the BluAS page ('bluas.html') can't be used directly with your web browser for an important reason. Modern browsers implement now the Cross-Origin Resource Sharing (CORS) security policy. CORS ensures that the server response includes permission for your browser request, which BlueSound has implemented in BluOS (since release 4.10.13). You must therefore disable CORS in your browser (see below how to)!

You can use the web server function of your NAS (like my WD NAS) by which BluAS can be browsed by any device connected to your local network (laptop, modile device). Otherwise, use the free IIS option on your Windows computer, or use the more general Apache webserver on Windows/Linux. For the Visual Code Studio developers among us, VSC offers an easy way to get it working on your Windows system. See here to implement it on a local web server managed by VSC.

The Apache webserver can be deployed on your computer in a few steps. Download first Apache from the apachelounge-site) and unzip it to the default 'c:\Apache24' folder. Next, unzip the BluAS zip file in the 'c:\Apache24\htdocs' folder. Then, you can start the webserver (open CMD-application, enter command 'httpd.exe' from the 'c:\Apache24\bin' folder). Open your favorite browser and select the BluAS-page by its address 'http://localhost/bluas.html'. In case CORS is not disabled, an error will be shown.

If you need more than just a web server, you might consider the WAMP server, which offers a complete PHP-based web development environment.

Csv file (with artists)
The BluAS webpage controller requires a csv file with your artists on your NAS. Importing a file will give you a better and faster response (and it doesn't need to be updated often if you have already a large collection). Another advantage is that you can also make just a selection of your artists and play random albums from them. And in case the csv load fails, a single artist is used (from the song in your current playlist or - if empty - 'Beatles').

You may also provide a text file with only artist names. In that case filtering on music genre is of course not possible. However, you can always play an album without a csv file by entering an existing artist name (it must exactly match the name on your NAS; in other words, your input must be case-sensitive).

Tip: To create a list of all your (unique) artists from your NAS, you can use the export function of the well-known utility mp3tag. With a simple script you can make a csv file in the right format ('genre;artist'). Just send me an email for if you want more information. A sample file ('bluas-sample.csv') is part of the BluAS zip (just rename it to 'bluas.csv').

More on metadata!
The BluOS controller app currently can only display a limited set of metadata: Year, Composer, and Genre are not available. This is due to the lack of support for current streaming protocols. The BluAS webpage controller is no different.

A possible solution is to also add the metadata as a (csv) file. If the user can create such a file (using their music management software like MusicBee or metadata reporting tools like ExifTool), this could be implemented quite easily in BluAS. I am currently working on this idea; suggestions are still welcome!

Configuring it
To communicate with your BluOS-player three technical parameters are important:

  • IP address of your BluOS player within your local network (use the BluAScan web page or find the address by choosing diagnostic info in your Controller app)
  • Portnumber to which the API of BluOS-player listens to (default 11000)
  • Servicename of your music library on your NAS (default LocalMusic)
In the javascript-source ('bluas.js'), edit these variables when appropiate (with notepad):
let bluosAddr = "192.168.0.111";
const bluosPort = "11000";
const musicService = "LocalMusic";

PS With the additional BluAScan webpage, you can easily find the address of your BluOS device in your local network. Just enter your network (default 192.168.0), port number (usually 11000), and IP range to scan (usually 1..254) and hit the Scan-button. In a few seconds, this network is scanned for any logical BluOS Status response and when found the address is displayed.

Parameters
You can call the BluAS page with some parameters:

  • ip overrules the hard-coded IP address of your BluOS player
  • exclude filters artist names out for picking by their music genre names
  • include filters artist names only for picking by their music genre names*1
  • artist overrules loaded names by a single artist name*2 (use '+' as space in names)
  • css supports an alternate CSS definition*3
  • pubquiz disables display of artist and album after selection, disclose by the Info-button
  • confirm asks the user for confirmation before playing the selected album*3
  • slim minimizes page after 30 secs when playing, leaving buttons and progress bars*5
*1 You can also use the small Artists button in the header to select a single genre. *2 You can also use the invisble or label-less input field at the right hand side of the version date. *3 The BluAS zip file contains 2 CSS files for portrait as for landscape mode. *4 The default behavior of BluAS is to immediately play the selected album. *5 The slim mode works only in portrait mode and can be reset with the Info-button (or F5).

Examples (address of web-server dependant of your local situation):
http://192.168.0.108/bluas.html?ip=192.168.0.113&include=World
http://192.168.0.108/bluas.html?exclude=Jazz,Classical
http://192.168.0.108/bluas.html?artist=Rolling+Stones
http://192.168.0.108/bluas.html?css=dark.css

Buttons
Clicking the Info(rmation)-button shows the current state of your player. Clicking the Artist-button randomly selects a new artist, and clicking the Album-button randomly selects another album by that artist. The combination of the following buttons (BluAS- and Repeat-button) determines how BluAS continues after the current album ends.

BluAS player artist off BluAS player artist on
When BluAS is active! *1
BluAS player repeat off Player will stop Player will play random album of random artist
BluAS player repeat on Player will continue to replay current album Player will play random album of current artist

*1 To keep BluAS active on a mobile device, you need to increase probably the screen timeout. Another option is to use an additional app, such as Keep Device On (for Android), which tries to minimize battery usage by displaying a black screen during active mode.

Tracklist
To show the current tracklist of the album, you can check the little checkbox next to the Song label. The duration of the album is shown as info value, preceded by the (assumed) year of release, which is inferred from the album track file path (if applied by you). The tracklist gets updated when the Info-button is clicked. But if the album is not (yet) set by BluAS, the text "Unset" is displayed.

Progress bars
Both the progress of the album playing and song are visualized by horizontal bars (if an album not set yet by BluAS). Every time the Info-button is clicked, it is updated (including the song title) but also continuously by using the tracklist and monitoring the elapsed time. This is the main reason why the track shuffle mode (via the BluOS app) should not be enabled while using the BluAS web player.

Pubquiz mode
A fun feature of the BluAS webpage controller is perhaps the pubquiz mode. If you start the page with 'pubquiz' as the parameter, the randomly selected artist and album are only displayed after you click the Info-button. As a teaser, the background is already filled with the album cover. So, can you guess which artist and album you're hearing?

It is possible to change the pubquiz mode by entering 'pb+' or 'pb-' in the invisible input field next to version in the top of the page.

Confirm mode
It is possible to change the confirm mode by entering 'cf+' or 'cf-' in the invisible input field next to version in the top of the page.

'MyArtist' mode
In case you want to preselect an artist and play random albums of only this artist, you can enter the artist name (or first characters) in the invisible input field next to version in the top of the page.

It's even possible to select a specific album by an artist in just 2 steps (prompt option). Enter the artist's name (or the first few characters), preceded by a period. A popup will appear with a list of all found albums. Enter the desired number in the input field and hit enter.

Landscape version
If you prefer a landscape view on your device, the default BluAS page won't work well. It's designed for mobile phones. However, a landscape version is also available, with its own CSS definition. This consists of a web page named 'bluas-ls.html' (with specific CCS files: 'light-ls.css' or the darker version 'dark-ls.css'). All necessary files are included in the BluAS zip file. Click on the example below for a larger image.

Example of BluAS, an album shuffle webpage controller for BluOS (Sea Power album, in landscape mode)

Disable CORS
When using a browser in the external world on the internet, it's unsafe to allow a web server to provide non-public data. Although one might wonder whether this is the case for BluOS. In general visiting a malicious webpage can lead to harmful activities. That's where CORS comes in; it configures the web server to provide data only to certain domains. It's a rigid way to autorise the browser in getting data from a server without authentication (logon).

In the external world, domains are registered by legal authorities so they can't be misused. But within the local network, you can use your own names without any registration! Therefore, it's strictly spoken not safe, to whitelist (by the BluOS API) your internal domain names, such as the commonly used 'localhost' or the IP addresses of your private space domain (192.168.*.*) Any browser requesting data from BluOS will therefore generate a CORS error (since v4.10.13). Therefore, you should disable CORS in your browser for use within your local network. But, most browsers support additional extensions or add-ons to achieve this. That's the downside of this webbrowser-based approach.

For Firefox (on Windows), you can use the CORS Everywhere extension. You can configure this to apply only to your BluAS page address. The example below uses my current address of my BluAS page on my local network ('192.168.0.108'). Click the image to enlarge it!

CORS example using Firefox

For Google Chrome (on Windows), you can use this Allow CORS extension to run it without CORS. Another safer way may be to run Chrome without security, like explained here.

CORS example using Chrome

You can run make a simple batch script for Chrome, but you have to stop all Chrome sessions first:
"C:\Program Files\Google\Chrome\Application\chrome.exe" ^
--chrome-frame --window-size=440,860 ^
--window-position=40,40 ^
--disable-web-security ^
--user-data-dir=%LOCALAPPDATA%\Google\chromeTemp ^
--app="http://192.168.0.111/bluas.html"
Don't forget to adapt the address to your situation!

If you're using an Android browser, I recommend using the Firefox or Kiwi browser (with the Disable CSP and CORS extension). Make sure you disable CORS when using it for sites other than BluAS or use it only for BluAS! I don't have any information about browsers on iOS, but I think any browser with a temporary CORS disable option should work.

Any Questions?
Send an email to info@phdsoftware.nl. And if you're happy with it, please share it with others and let me (Paul Dullaart) know if I can add your feedback as a testimonial.

PS: The latest version works flawlessly with my frozen BluOS version 4.10.13 with CORS disabled. Please tell me if it also works without CORS in newer BluOS versions (as there is no strict security reason to deny browsers on the local network (like 192.168.x.y) the access to BluOS resources, which BlueSound might consider).

Donate
You may support my work by donating via paypal.me. If you have specific wishes (for example different layout), I may be able to help you.

Version history
DateVer.Comments
18-06-10251aFirst basic version
30-06-20252aAdd picking of albums for picked artist
19-07-20253aRebranded to BluAS, updated layout, fix tracklist error
05-08-20254aAdd landscape version, progress bar for song and a lot more
15-08-20254cAdd display of volume level, some fixes and finetunings
27-08-20254eAdd Confirm-mode, display streaming format and BluAScan-page
09-09-20254gAdd Prompt option to select and play specific album in 2 steps
07-01-20264jImprove lay-out, fix rare error when screen was re-rendered
21-01-20264kAdd slim mode (portrait only), add some fixes
05-02-20264lAdd genre filter mode with new Artists button
11-02-20264mMade more robust if an album has not yet been set by BluAS

Known issues

  • Diacritics in artist names and album titles are not supported by the BluAS webpage controller.

PS One last remark, don't refer to this BluAS solution on the BlueSound forum, you'll risk being banned. It seems that a free webpage controller is not meant to be a freely available by BlueSound. Like most of you know already, its upgrade policy is not without dangers either. Therefore I've blocked the address upgrade.nadelectronics.com in my firewall.

PhD Software - © 2026
Last update