Делал подобное с dvb s2, поток с карты, Tvheadend стримил в сеть, ключи через oscam получал, через minidlna публиковал каналы. Схема рабочая, но причастом переключение каналов зависала спутниковая плата.
Стоял недавно перед похожим выбором: нужны кроссплатформенные приложения с gui. Написал на kotlin/c#/go. Текущий фоворит: go + web интерфейс. Язык простой, компилируется под разные платформы. Доступ к приложению через браузер избавляет от заморочек с gui.