Showing status of video played in Jellyfin on Ulazi clock

Hi. I have this automation - it was working superb with Kodi for a couple of years, showing the currently played video and live progress on an ulazi clock (the automation was running on a loop while the video was playing)
Recently i have migrated from kodi to jellyfin, updated the entities in the automation, but it doesnt work anymore. It seems it just updates the ulanzi clock once, when i press play or pause triggering it and then stops running (in fact, looking at traces it actually fails with: "Error: While condition [{‘condition’: ‘template’, ‘value_template’: Template<template=({{ active_player != ‘none’ and states(active_player) == ‘playing’ }}) renders=33278>}] terminated because it looped 10000 times
")
Ive been trying to troubleshoot it and make it working as it used to work with Kodi for months now, but without any luck :frowning:

alias: Ulanzi Living Room Jellyfin
description: Show Kodi progress on living room Ulanzi - TBD
triggers:
  - entity_id: media_player.jellyfin_livingroom_michal
    trigger: state
    from: null
    to: null
  - entity_id: media_player.jellyfin_livingroom_emilia
    trigger: state
    from: null
    to: null
  - entity_id:
      - remote.living_room_harmony_hub
    trigger: state
conditions: []
actions:
  - data:
      qos: 0
      retain: false
      topic: awtrix_livingroom/custom/kodi_title
    action: mqtt.publish
  - data:
      qos: 0
      retain: false
      topic: awtrix_livingroom/custom/kodi_time
    action: mqtt.publish
  - data:
      qos: 0
      retain: false
      topic: awtrix_livingroom/custom/temperature
    action: mqtt.publish
  - data:
      qos: 0
      retain: false
      topic: awtrix_livingroom/custom/humidity
    action: mqtt.publish
  - variables:
      active_player: >
        {% if is_state('media_player.jellyfin_livingroom_michal', 'playing') %}
          media_player.jellyfin_livingroom_michal
        {% elif is_state('media_player.jellyfin_livingroom_emilia', 'playing')
        %}
          media_player.jellyfin_livingroom_emilia
        {% elif is_state('media_player.jellyfin_livingroom_michal', 'paused') %}
          media_player.jellyfin_livingroom_michal
        {% elif is_state('media_player.jellyfin_livingroom_emilia', 'paused') %}
          media_player.jellyfin_livingroom_emilia
        {% else %}
          none
        {% endif %}
  - choose:
      - conditions:
          - condition: template
            value_template: >-
              {{ active_player != 'none' and states(active_player) == 'playing'
              }}
        sequence:
          - data:
              qos: 0
              retain: false
              payload: |-
                {
                  "text": "{% if state_attr(active_player, 'media_content_type') == 'tvshow' %}{{ state_attr(active_player, 'media_series_title') | slugify(separator=" ")}} - {{ state_attr(active_player, 'media_season') }}x{{ state_attr(active_player, 'media_episode') }} - {{ state_attr(active_player, 'media_title') | slugify(separator=" ")}} {% elif state_attr(active_player, 'media_content_type') == 'movie' %}{{ state_attr(active_player, 'media_title') | slugify(separator=" ")}}{% endif %}",
                  "icon": "1405",
                  "rainbow": false,
                  "repeat": 1,
                  "pushIcon": 0,
                  "textCase": 0,
                  "progress": {{ ( ((state_attr(active_player, 'media_position') | int) + ( as_timestamp(now()) | int - as_timestamp(state_attr(active_player,'media_position_updated_at')) | int )) / states.media_player.jellyfin_livingroom_michal.attributes.media_duration * 100 ) | round() }},
                  "progressC": "18B04C"
                }
              topic: awtrix_livingroom/custom/kodi_title
            action: mqtt.publish
          - data:
              qos: 0
              retain: false
              payload: |-
                {
                  "text": "[{{(((state_attr(active_player, 'media_position') | int) + ( as_timestamp(now()) | int - as_timestamp(state_attr(active_player,'media_position_updated_at')) | int )) | timestamp_custom('%H:%M:%S',false))}}/{{(state_attr(active_player, 'media_duration') | int | timestamp_custom('%H:%M:%S',false))}}]",
                  "icon": "1405",
                  "rainbow": false,
                  "repeat": 1,
                  "pushIcon": 0,
                  "textCase": 0,
                  "progress": {{ ( ((state_attr(active_player, 'media_position') | int) + ( as_timestamp(now()) | int - as_timestamp(state_attr(active_player,'media_position_updated_at')) | int )) / states.media_player.jellyfin_livingroom_michal.attributes.media_duration * 100 ) | round() }},
                  "progressC": "18B04C"
                }
              topic: awtrix_livingroom/custom/kodi_time
            action: mqtt.publish
          - repeat:
              sequence:
                - data:
                    qos: 0
                    retain: false
                    payload: |-
                      {
                        "text": "{% if state_attr(active_player, 'media_content_type') == 'tvshow' %}{{ state_attr(active_player, 'media_series_title') | slugify(separator=" ")}} - {{ state_attr(active_player, 'media_season') }}x{{ state_attr(active_player, 'media_episode') }} - {{ state_attr(active_player, 'media_title') | slugify(separator=" ")}} {% elif state_attr(active_player, 'media_content_type') == 'movie' %}{{ state_attr(active_player, 'media_title') | slugify(separator=" ")}}{% endif %}",
                        "icon": "1405",
                        "rainbow": false,
                        "repeat": 1,
                        "pushIcon": 0,
                        "textCase": 0,
                        "progress": {{ ( ((state_attr(active_player, 'media_position') | int) + ( as_timestamp(now()) | int - as_timestamp(state_attr(active_player,'media_position_updated_at')) | int )) / states.media_player.jellyfin_livingroom_michal.attributes.media_duration * 100 ) | round() }},
                        "progressC": "18B04C"
                      }
                    topic: awtrix_livingroom/custom/kodi_title
                  action: mqtt.publish
                - data:
                    qos: 0
                    retain: false
                    payload: |-
                      {
                        "text": "[{{(((state_attr(active_player, 'media_position') | int) + ( as_timestamp(now()) | int - as_timestamp(state_attr(active_player,'media_position_updated_at')) | int )) | timestamp_custom('%H:%M:%S',false))}}/{{(state_attr(active_player, 'media_duration') | int | timestamp_custom('%H:%M:%S',false))}}]",
                        "rainbow": false,
                        "repeat": 1,
                        "pushIcon": 0,
                        "textCase": 0,
                        "progress": {{ ( ((state_attr(active_player, 'media_position') | int) + ( as_timestamp(now()) | int - as_timestamp(state_attr(active_player,'media_position_updated_at')) | int )) / states.media_player.jellyfin_livingroom_michal.attributes.media_duration * 100 ) | round() }},
                        "progressC": "18B04C"
                      }
                    topic: awtrix_livingroom/custom/kodi_time
                  action: mqtt.publish
              while:
                - condition: template
                  value_template: >-
                    {{ active_player != 'none' and states(active_player) ==
                    'playing' }}
      - conditions:
          - condition: template
            value_template: >-
              {{ active_player != 'none' and states(active_player) == 'paused'
              }}
        sequence:
          - data:
              qos: 0
              retain: false
              payload: |-
                {
                  "text": "{% if state_attr(active_player, 'media_content_type') == 'tvshow' %}{{ state_attr(active_player, 'media_series_title') | slugify(separator=" ")}} - {{ state_attr(active_player, 'media_season') }}x{{ state_attr(active_player, 'media_episode') }} - {{ state_attr(active_player, 'media_title') | slugify(separator=" ")}} {% elif state_attr(active_player, 'media_content_type') == 'movie' %}{{ state_attr(active_player, 'media_title') | slugify(separator=" ")}}{% endif %}",
                  "icon": "1405",
                  "rainbow": false,
                  "repeat": 1,
                  "pushIcon": 0,
                  "textCase": 0,
                  "progress": {{ ( ((state_attr(active_player, 'media_position') | int) + ( as_timestamp(now()) | int - as_timestamp(state_attr(active_player,'media_position_updated_at')) | int )) / states.media_player.jellyfin_livingroom_michal.attributes.media_duration * 100 ) | round() }},
                  "progressC": "18B04C"
                }
              topic: awtrix_livingroom/custom/kodi_title
            action: mqtt.publish
          - data:
              qos: 0
              retain: false
              payload: |-
                {
                  "text": "[{{(state_attr(active_player, 'media_position') | int|timestamp_custom('%H:%M:%S',false))}}/{{(state_attr(active_player, 'media_duration') | int|timestamp_custom('%H:%M:%S',false))}}]",
                  "icon": "1405",
                  "rainbow": false,
                  "repeat": 1,
                  "pushIcon": 0,
                  "textCase": 0,
                  "progress": {{ ( ((state_attr(active_player, 'media_position') | int) + ( as_timestamp(now()) | int - as_timestamp(state_attr(active_player,'media_position_updated_at')) | int )) / states.media_player.jellyfin_livingroom_michal.attributes.media_duration * 100 ) | round() }},
                  "progressC": "18B04C"
                }
              topic: awtrix_livingroom/custom/kodi_time
            action: mqtt.publish
mode: single