Me and @Roman_Rizzi worked in a solution to this exact problem years ago. It wasn’t open source because it is quite a niche use case, but here it is:
Me and @Roman_Rizzi worked in a solution to this exact problem years ago. It wasn’t open source because it is quite a niche use case, but here it is: