Add browse icons

Your service can use browse icons to represent a category, genre, or other container type in the Sonos app. For example, in the root browse container. The image below shows an example of browse icons for items in a container.

Browse icons

This guide goes over:


Create custom browse icons

First, determine the custom icons you would like to use for your service on Sonos. For example, you may want to offer different icons for browsing Artist, Albums, and Playlists or maybe you want to have icons for custom categories such as Favorites, Trending, or Featured.

Next, create icons in the required sizes. See below for details.


How the Sonos app displays browse icons

The Sonos app sends a getMetadata request for browse icons as well as other metadata. Your service should return a URI reference to an image file for the custom browse icon as the value for the albumArtURI element. The albumArtURI element is a sub-element of trackMetadata and mediaCollection in your getMetadata response. Custom browse icons will most likely be used with mediaCollection elements and not trackMetadata.

For example, Sonos sends a getMetadata request to your music service that might look something like this:

Your service would send a getMetadata response that has one or more albumArtURI elements for mediaCollection:


Use image substitution for browse icons

The Sonos app uses image substitution to deliver a high-quality visual experience for every screen and device that listeners are using. Set the substitution rules for images in the presentation map. When the Sonos app requests a browse icon image, it will look at these rules to see if there is a value to substitute in the albumArtURI for the image. If there is, the app will use the substitution rules to rewrite the URI to get an image of the appropriate size.

Set the substitution rules in the presentation map

Set the substitution rules for browse icons in the presentation map. When the Sonos app requests browse icons, it will look at these rules to see if there is a value to substitute in the albumArtURI for the image. If there is, the app will use the substitution rules to rewrite the URI to get an image of the appropriate size.

The Sonos app would use the URI for the following image for the browse icon if you do not provide any substitution rules:

We suggest that you use a suffix, such as “_legacy.png” to identify the default image that Sonos apps will use as the base albumArtURI on legacy devices. The base albumArtURI is the URI that your service sends Sonos in a getMetadata response. This must be the PNG image image to use on the Sonos app for Windows and MacOS (see Add images for details).

The Sonos app on phones and tablets will use the rules set in the browseIconSizeMap to rewrite the URI for the appropriate SVG image. If you do not provide SVG images or substitution rules, the Sonos app will resize the legacy PNG image as needed. Since this may not be the best visual experience for listeners, we recommend setting up substitution rules.

If the listener is using a phone or tablet, the Sonos app follows the substitution rules you set and replaces the “_legacy.png” with one of the SVG images, depending on the device and screen. For a small screen, it might substitute the “_legacy.png” in the albumArtURI for “_40.svg”, resulting in the following URI:

Set up image substitution for custom browse icons

To set up image substitution for custom browse icons, define your icon artwork sizes using the browseIconSizeMap element in a PresentationMap of type BrowseIconSizeMap. The imageSizeMap sets the rules the Sonos app uses to pick the custom browse icon with the best resolution to display using sizeEntry elements.

Set a sizeEntry element for each size that you want to substitute. Set the size parameter of the sizeEntry element to the resolution size of the image that the Sonos app will request. Then set the substitution parameter to the substitution string. This should be a unique string for each size. For example:

The sample presentation map above shows that your service provides browse icons in three sizes. The Sonos app on Mac or PC will use the PNG image for your browse icons. The Sonos app on phones and tablets will use your substitution rules to choose the appropriate SVG image for your browse icons.

Note: The legacy icon is listed with a size of zero. Sonos requires this configuration to display custom browse icons on the Sonos app for MacOS and PC. It’s important that you specify this legacy icon as it’s the only one used by the Sonos app for Mac and PC. The Sonos app for mobile devices use image substitution to display browse icons.


Test your browse icons

You should test your service to verify that the correct nodes are present in the presentation map file, that the image substitutions configured in the presentation map work, images can be downloaded, and images are the correct size. To do this, host the presentation map, enable your service using customsd.htm, and point to your hosted presentation map. See Test your service for details.


Sonos app image formats

Custom browse icons are displayed in different sizes and formats, depending on the app. iOS and Android apps require SVGs, while Windows, and Mac apps require PNGs. While you can provide PNGs for your custom browse icons for all apps, we encourage you to use SVGs as they are easier to scale and will be used by all apps in the future.

iOS and Android image formats (SVG)

While you can submit images in PNG or SVG format, we prefer SVG format. This is because the Sonos app for mobile devices can easily scale SVG formatted images to different sizes.

Use a primary brand color with no gradients for the tile background and a white or secondary brand color custom browse icon that is half the width and height of the tile. Be sure not to use gradients in your background color.

iOS and Android custom browse SVG format

See Add images for details on how to save SVG icons for proper display on Sonos apps.

iOS and Android image formats (PNG)

See below for the iOS and Android custom browse icons in PNG format.

iOS and Android custom browse PNG format

Note that while you can provide these icons in PNG format, you may have to update them to SVG when they are no longer supported.

Windows, Mac, and legacy Controller image formats (PNG)

You must also include custom assets that match the visual language of legacy firmware in the field, such as the Sonos app for Mac and PC.

Provide an 80×80 icon in PNG format, as shown above, for the Sonos app on legacy devices. Add a suffix, such as “_legacy.png”, to identify these as legacy browse icons so these apps can use it in image substitution. See Set up image substitution for custom browse icons for details on how these apps use the legacy browse icon.