Gå til innhold
  • Bli medlem
Støtt hjemmeautomasjon.no!

Hvordan får mann metadata (tittel, logo, etc.) fra NRK radio?


Askeladden

Anbefalte innlegg

Jeg bruker denne scripten for å spille NRK statsjoner fra Home Assistant radio browser

service: media_player.play_media
target:
  entity_id: media_player.kjokken_hoyttaler
data:
  media_content_id: media-source://radio_browser/96107161-0601-11e8-ae97-52543be04c81
  media_content_type: audio/mpeg
metadata:
  title: NRK Klassisk (Høy Kvalitet)
  thumbnail: https://static.nrk.no/radio/dist/favicons/apple-touch-icon.png
  media_class: music
  children_media_class: null
  navigateIds:
    - {}
    - media_content_type: app
      media_content_id: media-source://radio_browser
    - media_content_type: music
      media_content_id: media-source://radio_browser/country/NO



Og den spiller bra, men selve Lovelace kortet i Home Assistant vet ikke noe om hva som spiller. Det kommer bare opp som 'Default Media Reciever', på alle diverse media spill kort (mini player eller standard lovelace). Selv ikke thumbnail kommer opp, selv om det har jeg i metadata.

Hva bruker dere som media content id for NRK stasjoner?

 

Lenke til kommentar
Del på andre sider

  • 4 uker senere...

Det er ikke løsningen du spør etter, men i Homeseer bruker jeg script som setter en device value, basert på hvilken kanal som er valgt i en annen device. På den måten får jeg opp metadata om sang, artist/program osv. I HS Touch vises logoen til radiokanalen som spilles, men jeg har ikke funnet noe måte å hente inn det bildet som kommer opp på DAB-radioer.

SkjermbildeHSTouchStreaming.thumb.png.02ca3045c1eb47ffbcf68dde0ad32cc3.png
 

Imports System.Collections.Generic
Imports System.Net
Imports System.Text

' ChatGPT - May 2, 2023
Sub Main(ByVal Parms As Object)
    Dim radioChannels As New Dictionary(Of Integer, String)
    radioChannels.Add(10, "https://lyd.nrk.no/nrk_radio_p1_buskerud_aac_h.xspf")
    radioChannels.Add(20, "https://lyd.nrk.no/nrk_radio_p2_aac_h.xspf")
    radioChannels.Add(30, "https://lyd.nrk.no/nrk_radio_p3_aac_h.xspf")
    radioChannels.Add(40, "https://lyd.nrk.no/nrk_radio_alltid_nyheter_aac_h.xspf")
    radioChannels.Add(45, "https://lyd.nrk.no/nrk_radio_p13_aac_h.xspf")
    radioChannels.Add(50, "https://lyd.nrk.no/nrk_radio_jazz_aac_h.xspf")
    radioChannels.Add(60, "https://lyd.nrk.no/nrk_radio_mp3_aac_h.xspf")
    radioChannels.Add(70, "https://lyd.nrk.no/nrk_super_aac_h.xspf")
    ' Add additional radio channels here

    Dim radioChannelDeviceRef As Integer = 964
    Dim radioChannelValue As Integer = hs.DeviceValue(radioChannelDeviceRef)

    If radioChannels.ContainsKey(radioChannelValue) Then
        Dim xspfUrl As String = radioChannels(radioChannelValue)
        Dim xmlDoc As New XmlDocument()

        ' Download the XSPF file from the URL
        Using webClient As New WebClient()
            Dim xspfBytes As Byte() = webClient.DownloadData(xspfUrl)
            Dim xspfContent As String = Encoding.UTF8.GetString(xspfBytes)
            xmlDoc.LoadXml(xspfContent)
        End Using

        Dim nsManager As New XmlNamespaceManager(xmlDoc.NameTable)
        nsManager.AddNamespace("xspf", "http://xspf.org/ns/0/")

        Dim trackList As XmlNodeList = xmlDoc.SelectNodes("/xspf:playlist/xspf:trackList/xspf:track", nsManager)

        ' Example: Extract track titles and display them in HomeSeer
        Dim trackTitles As New List(Of String)
        For Each trackNode As XmlNode In trackList
            Dim titleNode As XmlNode = trackNode.SelectSingleNode("xspf:title", nsManager)
            If titleNode IsNot Nothing Then
                trackTitles.Add(titleNode.InnerText)
            End If
        Next

         ' Set a device string to display the track titles
        Dim deviceRef As Integer = 965
    '    hs.WriteLog("XSPF-Mottaker", "Track titles: " & String.Join(", ", trackTitles))
    '    hs.WriteLog("XSPF-Mottaker", "Device ref: " & deviceRef.ToString())
        hs.SetDeviceString(deviceRef, String.Join(", ", trackTitles), True)
    'Else
    '    hs.WriteLog("XSPF-Mottaker", "No URL found for the selected radio channel (Value: " & radioChannelValue.ToString() & ")")
    End If
End Sub

 

  • Like 1
Lenke til kommentar
Del på andre sider

Bli med i samtalen

Du kan publisere innhold nå og registrere deg senere. Hvis du har en konto, logg inn nå for å poste med kontoen din.

Gjest
Skriv svar til emnet...

×   Du har limt inn tekst med formatering.   Lim inn uten formatering i stedet

  Du kan kun bruke opp til 75 smilefjes.

×   Lenken din har blitt bygget inn på siden automatisk.   Vis som en ordinær lenke i stedet

×   Tidligere tekst har blitt gjenopprettet.   Tøm tekstverktøy

×   Du kan ikke lime inn bilder direkte. Last opp eller legg inn bilder fra URL.

×
×
  • Opprett ny...

Viktig informasjon

Vi har plassert informasjonskapsler/cookies på din enhet for å gjøre denne siden bedre. Du kan justere dine innstillinger for informasjonskapsler, ellers vil vi anta at dette er ok for deg.