I created a DIY Tidal media player for Home Assistant

After scraping the internet for a solution to integrate Tidal into Home Assistant, I gave up and made my own, DIY version of a “media player”:

Mediaplayer
How it looks in my Lovelace UI (Google Dark Theme)

What I did:

  1. Installed Tidal RPC on my media playback PC to show my listened song information in my Discord profile (here)

  2. Installed Mosquitto MQTT for HA

  3. Created a MQTT user for my usecase

  4. Installed HASS Workstation Service (here) on the media playback PC to enable commands like “volume up/down”, “play/pause”, “skip”…

  5. Configured the MQTT settings in the HASS workstation service window and set the commands

  6. Installed Discord Game (here) and multiple-entity-row (here) in HACS

  7. Followed the guide on Github for “Discord Game” (creating a Discord bot, getting the tokens, …)

  8. Added “Discord Game” to my configuration.yaml

  9. Aligned a multiple-entity-row and two horizontal-stack s in Lovelace and chose the right entities and
    arguments (The icon is your Discord profile picture, the argument “game_state” gives you the artist, “game_details” the track name and “game_image_small_text” the status of the player)

Works pretty good. You could sync the album cover, but as mentioned in the Tidal RPC repository, Discord bans accounts for doing that because they use their accounts as a “bot”.

Upper part (info part):

type: entities
entities:
  - type: section
  - entity: sensor.discordname_id
    type: custom:multiple-entity-row
    name: Tidal
    entities:
      - attribute: game_state
      - attribute: game_details
      - attribute: game_image_small_text
show_header_toggle: false
state_color: false
title: Bobs Mediaplayer

Lower part (media controls):

type: vertical-stack
        cards:
          - type: horizontal-stack
            cards:
              - type: button
                tap_action:
                  action: toggle
                entity: switch.command_previous
                name: Previous
                icon_height: 50px
                icon: mdi:chevron-left
              - type: button
                tap_action:
                  action: toggle
                entity: switch.command_playpause
                icon: mdi:pause
                icon_height: 50px
                name: Play/Pause
              - type: button
                tap_action:
                  action: toggle
                entity: switch.command_next
                icon: mdi:chevron-right
                icon_height: 50px
                name: Skip
          - type: horizontal-stack
            cards:
              - type: button
                tap_action:
                  action: toggle
                entity: switch.command_volumedown
                icon: mdi:minus
                name: Leiser
                icon_height: 50px
              - type: button
                tap_action:
                  action: toggle
                entity: switch.command_volumeup
                icon: mdi:plus
                name: Lauter
                icon_height: 50px

Did you consider LMS? There is already support in HA.