Native playlist support

Playlist support

(image generated by stable diffusion)

You can better organize your assets: info-beamer now offers native playlist support. Previously info-beamer had some support for playlist with the scheduled player for a while, but it has not been possible to share such playlists between different setups. The new playlist feature now allows you to do that and a lot more.

How it works

There is a new “Playlists” main tab in the dashboard. Visiting it shows you a list of all the playlists you have configured:

Clicking on one of the playlists brings you to the new playlist editor page:

The editor is divided into three parts:

  • Slots: This is where you configure how items get added to the playlists. In the above examples two assets are added directly. Alternatively you can embed another playlist, so its items get included, or use a dynamic search that adds assets from your account according to one or multiple conditions. More on that later.

  • Filters: Now that you’ve added items to the list you can apply some modifications. You can apply a default play time to items that don’t have a natural playtime on their own (like images). You can also shuffle the resulting playlist, sort it by asset filename and more.

  • Playlist preview: This sections shows you the final playlist after filters have been applied and how it can now be added to your setups.

Setups that use the native configuration interface and have a compatible playlist configuration option like the older HD player package now get a new button: + Add playlist:

Clicking it shows available playlists and you can add like you would add any other playlist item. Of course you can use the same playlist multiple times within a single setup or (more importantly) use the same playlist in multiple setups. If you then change the playlist it will instantly update all setups and synchronize the new content to all affected devices. This means that you can now take a new approach to managing content: Instead of working mostly with setups you can now make a lot of content changes by updating playlists and info-beamer will automatically update all setups that use those playlists. But it gets even better thanks to these two features:

Child playlist slots

You can embed playlists within other playlists up to three levels deep (so your child playlist can itself embed another child playlist). This allows you to be pretty flexible in how you structure your content. You can, for example, have an “adverts” playlist and embed that multiple times within another playlist that you then use in your setups. For example like this:

Playlist slot type Slot content
Asset image1.jpg
Asset image2.jpg
Child playlist Advertisement playlist
Asset image3.jpg
Asset image4.jpg
Child playlist Advertisement playlist

This would play image1, image2, then your advertisement playlist, followed by image3 and image4 and the advertisement playlist again. The nice thing is that you can now edit the advertisement playlist once and it will be automatically updated in all places that embed it.

Dynamic searches

This is where it gets really interesting: You can specify dynamic searches that can automatically add any of your assets automatically to a playlist if they satisfy one or multiple conditions. Here is an example:

The configured search slot adds all assets from your account that satisfy all of these conditions:

  • The asset must have the resolution of exactly 1024x1024 pixels
  • The asset must be an image
  • The asset must be within the folder logos

These conditions are always evaluated, not only once when you save the playlist. This means that if you later upload an new image file logo/example.jpg with 1024x1024 resolution it will be automatically included within that playlist within a few seconds and all setups and devices will be updated accordingly. All without touching the playlist again.

The following conditions are available at the moment:

  • Orientation/Aspect ratio: Finds all assets with a specified aspect ratio (like 16:9)
  • Resolution: Finds assets with a certain resolution (like all FullHD content)
  • Type: Finds all images or all videos, optionally limiting to a format like H264 or JPEG only.
  • Filename: Finds all assets with a specified filename like covid-info*.jpg
  • Folder: Finds all assets within a specified folder
  • Userdata: This can search all assets with a matching userdata value. This is for API users only as userdata values cannot be set through the dashboard.


Of course all that works seamlessly together with the permission system. You can for example allow access to your account, but restrict the accessing user to only be able to add new assets to the logos folder. So while that user then cannot modify any setup or playlist directly, them uploading new content to that folder is then instantly reflected in all playlists, setups and ultimately all devices.

Or you might allow users to only modify certain playlists. These can then be embedded into other playlists that user doesn’t have access to.


At the moment you can have a maximum of 200 playlists. Each playlist can generate at most 1000 items. Any additional items will be ignored and the dashboard shows a warning.

After uploading a new assets or changing an asset (like changing its filename) it will take at least 5 seconds before any conditional playlists slots are evaluated.

Future improvements

It is planned to include scheduling settings into the playlist editor itself and improve packages to then use such scheduling information. Additional playlist slot conditions or filters are pretty easy to add, so suggestions for useful additions are welcome.

The work-in-progress player package will be improved in the future. The goals is to make it the default player package that solves most popular uses cases like content scheduling, using playlist and synchronizing content across multiple displays for video wall or other multi-screen content. Stay tuned.


Your feedback is very welcome!

Update 2022-08-02

  • Added a new filter:

    Mix: If a playlist includes multiple conditions or child playlists, the mix filter can rearrange generated items according to two strategies. An example:

    If you have two playlists A and B, both containing 10 items with 5 seconds play time each. Normally when adding both child playlists to a playlist, the generated playlist would first use the 10 items from A, followed by the 10 items from B. The mix filter allows you to mix both playlists, so that one item is taken from A, followed by one item from B, followed by one item from A and so on. The duration mix filter additionally uses each play duration and tries to mix, so that both playlists get proportional play time when mixing.

  • Weak linking from dynamically generated assets.

    info-beamer prevents you from deleting assets that are in use by any of your setups. Similarly it prevents you from deleting an asset if it is used as an assets slot within a playlist. Starting today, you can now delete an asset if its only use within your account is being added to a playlist as the result of a dynamic search. An example: Say you have the following conditional search in one of your playlists:

    Uploading an assets testing/example.jpg will add it to the generated list of playlist items for that playlist. Starting today you can now delete this asset. When you do that, the search will be updated and the asset is removed from the playlist again.

Some FAQs

  • Q: Can I use the playlist feature with the existing scheduled player package?

    A: No, that’s not possible at the moment. The scheduled player package cannot handle native playlists at the moment. It’s still unclear how and if support might be added in the future. One of the goals of having this new playlist feature in combination with the added setup scheduling support is to make the scheduled player package obsolete.


would it be Possible to add a end of life for Assets/playlists so the asset automatically gets removed after a specified time/date?

Thanks for the feedback/suggestion!

Playlists on their own probably won’t get any explicit expiry date, as only the individual items are relevant to the decision on what’s being played on the device. At least currently the playlists/assets don’t change except as a result of a user action, only the on-device decision of whether or not to play something changes depending on an item’s schedule.

As such changing the expiry date for all items within a playlist can be implemented by creating a new playlist, including the other playlist and then creating a schedule for the included playlist instead of inheriting the schedule of each of its item. This will overwrite the expiry date for all included items, thereby having the same effect:

First, activate scheduling options for a playlist by clicking on the “Show scheduling” button. Then create a custom schedule for the imported playlist

Now all items from that playlist will use the custom schedule.

Important note: currently only the work-in-progress player package supports the resulting playlist and will evaluate the scheduling decisions on-device. Getting this package fully production ready is the next step in improving scheduling overall, so stay tuned.

As for expiry date of individual assets. This is something planned for the future. The goal is to have a schedule attached to an individual asset. When such an asset is then included within a playlist, it can bring with it its own expiry date. Assets with expired schedule can then be filtered in the asset list view.

Update 2022-08-08

  • Added scheduling support for items generated by a playlist

    Important note: currently the resulting playlist can only be used in combination with this package as no other package supports evaluating scheduling decision on your devices.

    To use this feature, click on the Show scheduling button:

    This will show a third scheduling related column for all slots within a playlist:

    The following customizations are possible:

    • For asset slots: The individual schedule of a single asset can be changed to “Always”, “Never” or can have a custom schedule.
    • For child playlist slots: By default all the scheduling settings from the included playlist are inherited. You can overwrite this and force all assets to always or never play. Or you can create a custom schedule for all included items.
    • For conditional searches: You can set all matching playlist items to either be scheduled either “Always”, “Never” or all can have a custom schedule.

i just found what I think is a bug:
I made a Playlist, copied it, renamed the copy and then tried to change the Folder in the filter
when hitting save i get an “Internal API error.”

That does indeed sound like a bug. Thanks. So far I haven’t been able to reproduce the issue locally. Do you have a sequence of steps in your account that reliably reproduces the issue?

Nevermind. I think I found the problem in the log. Looking into it.

Should be fixed now. Thanks again. I’ve added a few credits to your account.

Thank you very much, out of interest: what was the issue?

A stupid one. Unicode issue while writing debug logs for the playlist feature. That would have been removed once the feature is deemed stable, so…

The playlist feature is now available to all accounts. Next step: Make more packages support the scheduling.