Dynamically change widget content as soon as possible

Hi there.

I have a use case where I need to change displayed content based on third-party triggers. For example, changing a text, image, or video widget content from English to German language.

Ideally, the solution should work for all widget types, shouldn’t interrupt the currently played widget until it’s finished, and change content as soon as possible (e.g. after a widget is finished, check for content changes, do change if needed).

The closest ideas I have:
1 - Using changeLayout API to play a specific layout, but one first API call it’ll interrupt the played layout and subsequent API calls waits until the current layout is finished which is somewhat slow (/displaygroup/{displayGroupId}/action/changeLayout)
2- Using native Xibo triggers via webhooks, but it again interrupts played content and doesn’t respect layout\widget queue that well compared 1st option.
3- DataSets can be interesting, but only for text data, as it doesn’t work with images, videos, etc.

I wonder how else this can be done to fit the ideal criteria. Any help will be greatly appreciated.

You could try Webhooks: Webhooks - Player Control | Xibo Digital Signage again, but use Shell commands to do the updates to the widgets.