Damit sollte das das AddOn wieder in Kodi 19.x funktionieren.
Ronny: Bevor ich das auf GitHub hochlade, könntest du bitte mal bei dir checken, ob mit dieser Version des AddOns mit Kodi v19.x jetzt wieder alles funktioniert, wie es soll?
Damit sollte das das AddOn wieder in Kodi 19.x funktionieren.
Ronny: Bevor ich das auf GitHub hochlade, könntest du bitte mal bei dir checken, ob mit dieser Version des AddOns mit Kodi v19.x jetzt wieder alles funktioniert, wie es soll?
Das war die Änderung hier für: https://github.com/fivebanger/kodi_addons/issues/8. Ich werde das kompatibel zu Kodi 19.x machen und für die älteren Kodi-Versionen wieder den alten Ansatz von der Version < v1.7 verwenden.
Es könnte allerdings auch ein generelles Problem des jellycon addons sein, evtl. sollte das addon in der Lage sein, ein Fehlen von "play_data["item_id"]" handeln zu können. Keine Ahnung, ob das addon "jellyfin_item_id" im weiteren Programm-Ablauf zwingend benötigt. Falls nicht, sollte das im jellycon addon abgefangen werden.
In jedem Fall ist es allerdings unschön, dass das Ganze mit einer Exception aussteigt, wenn ein Key nicht vorhanden ist. Ein beliebiges addon X weiß ja nicht, was das jellycon addon alles benötigt oder wird dies immer zur Verfügung stellen können (oder wollen).
Evtl. ein Issue für die Entwickler des jellycon addons.
Das jellycon addon wird offensichtlich beim Abspielen eines Senders vom Radio.de addon getriggert. Warum weiß ich nicht, ich kenne das addon nicht. Abhängigkeiten zwischen Radio.de und jellycon gibt es keine, das muss also irgendwie im Hintergrund passieren.
Offensichtlich fehlt beim Aufruf des jellycon addons der key "item_id". Das Radio.de addon könnte evtl. "item_id" mitliefern, allerdings habe ich keine Ahnung, welches Dict hier anzupassen ist, bzw. was dem jellycon addon an der Stelle übergeben wird und von wem.
Alles, was über Kodi-Standard-Mechanismen wie ListItem, z.B.
li = xbmcgui.ListItem(path=url_resolved)
li.setInfo('music', {'title': name})
li.setArt({'thumb': icon, 'icon': icon, 'fanart': self.fanart_radio})
hinaus geht, wird schwierig.
Alles anzeigenAuch mein Lieblingssender "Radio Swizz Jazz" fehlt leider noch.
Es wäre schön wenn das "Radio.de light" kompatibler mit dem "Original" würde.
Ich habe auf Basis eines RPi2 ein Internet-Radio gebaut mit Titelanzeige im LCD, Fernbedienung und Stationstasten.
Die Stationstasten greifen auf "Meine Lieblingssender" zu, das was gerade wohl nicht mehr funktionieren wird, schade.
Wäre schön wenn der Original Autor da Hilfestellung geben würde um eine bessere Kompatibilität zu erreichen.
Wie auch immer, vielen Dank für eure tolle Arbeit.
Evt. gibt es einen Unterschied zwischen "Radio Swizz Jazz" ("zz") und "Radio Swiss Jazz" ("ss"), aber "Radio Swiss Jazz" ist über die neue API aufzufinden. "Radio Swizz Jazz" findet man mit dem AddOn nicht, gibt es aber auch nicht auf der Seite "radio.de"
radio.de (oder besser: radio.net) hat auf eine neue API umgestellt, die einen anderen Datensatz zurückliefert (im Vergleich zur alten API und damit dem alten Radio-AddOn). Die alten IDs sind nicht mehr gültig, außerdem sind die Endpoints der Icons nicht mehr erreichbar. Von der alten Liste des alten Radio-AddOns (my_stations.json) sind lediglich noch die Namenseinträge und die Stream-URLs zu gebrauchen, ohne Gewähr, dass die Stream-URLs noch gültig sind. Die Icon-Links sind nicht mehr gültig, ebensowenig die IDs. Somit ist eine Kompatibilität zwischen alter Liste und -welcher Liste auch immer- nicht mehr möglich. Natürlich kannst du ein kleines Script schreiben, welches die alte my_stations.json Liste in ein anderes Format konvertiert und umgekehrt. Aber außer Name und Stream-URL kannst du nichts verwenden.
Ich habe das AddOn geschrieben, welches Publish3r erwähnt hat. Im Source-Code dieses AddOns findest du auch eine (von Kodi unabhängige) neue radio-API, die für andere Projekte verwendet werden kann. Vielleicht hilft dir das für dein Webradio weiter.
Noch ein Tipp: Ich nutze in meinem Audio-Addon zum Abspielen der Radiostationen nicht 'xbmcplugin.setResolvedUrl(self.addon_handle, True, listitem=li)' sondern 'li = xbmcgui.ListItem(NAME, path=LINK) und dann xbmc.Player().play(item=LINK, listitem=li)' dann darf allerdings z.B. beim erstellen des 'def add_music_item(self, name, mode, data, icon='', fanart='', duration=0)' nicht '
self.li.setProperty('IsPlayable', 'true')' darin stehen (sonst wird nichts abgespielt) !Funktioniert auch für Videostreams, wenn man den 'gesehen' Haken vermeiden will.
Da mit dieser Funktion keine Einträge z.B. 'description' oder 'image' des 'listitem' übergeben werden, müssen diese extra hinzugefügt werden !
Das hatte ich auch schon, aber dann startet Kodi einen Stream offensichtlich "full screen", was mich beim "durch-zappen" durch eine Ergebnisliste irgendwann genervt hat.
Schon mal mit dem 'script.module.requests' versucht die Streams abzurufen und zu testen, läuft bei mir viel besser als das 'urllib.request' Modul, da es es auch ein redirect zulässt.
Nein, aber danke für den Tip, kann ich mal probieren. Allerdings ist mein "resolve" in meinem radio_api-Modul, das ich unabhängig von Kodi halten will, zwecks Wiederverwertbarkeit in meinen anderen Projekten. Ich probiere das aber trotzdem mal...
soweit stimme ich zu. Meinem verlinkten alten Forum-Beitrag folgend, könnte man zusätzlich noch das curlclientimeout in der advancedsettings
.xml auf 0 setzen. Wir kommen wohl am Probieren von geänderten Einstellungen nicht vorbei. Offensichtlich trifft dein guter Hinweis auf geblockte Ports bei @Orakel nicht zu, denn er kann ja die Streams in anderer Umgebung abspielen (so habe ich Post #73 verstanden).
/R
Ich habe leider keine Ahnung, was so ein Android-TV Gerät alles macht und tut. Ich stimme dir zu, ein generelles Blocken von Port 8001 nach außen dürfte bei @Orakel wohl nicht das Problem sein (wird wohl hier bei mir am Firmennetz liegen, daheim funktioniert der Stream). Aber kann es sein, dass Android-TV sowas macht? Ich meine, den Port nach außen blocken? An sonsten (wie vorher schon geschrieben), macht urllib.requests beim Aufruf der Adresse unter Android (bei mir zumindest) auch Probleme, irgendwas scheint da fishy zu sein...
Gerade zufällig gefunden:
Inzwischen hat sich auf Github auch ein anderer User mit der neuen API von Radio.de beschäftigt und ein Addon dazu geschrieben, vielleicht einfach mal ausprobieren ?!
Dieses Addon bietet mehr Auswahl als die von Publish3r angebotene "Radio.de light" Version.
Hier der Link zur REPO: https://github.com/fivebanger/kod…n.audio.radiode
Gruß
Das AddOn habe ich geschrieben, da läuft der Stream unter Android generell nicht (auf meinem Smartphone probiert), da ich vorher noch mittels Python urllib.request versuche, die von radio.de gelieferte URL-Adresse aufzulösen (zwecks URL redirect, m3u resolving und weil ich einige Adressen gefunden habe, die 401 zurück liefern). urlopen() steigt hier aber mit einer Exception aus ("sslv3_alert_handshake_failure") und liefert nach dem Resolve dann None zurück -> Stream wird nicht abgespielt. Die Exception von urlopen() kann lt. Google aber auf ein Problem im requests-Modul hindeuten, je nach dem, welche Modulversion verwendet wird.
Alles anzeigenLeider fehlt mir eine Android-Umgebung zum Testen und eine offensichtliche Ursache habe ich beiden Logs nicht gesehen. Relevant scheinen mir aber die Zeilen
CCurlFile::GetMimeType - <https://meralunafm.radionetz.de:8001/meralunafm.mp3> -> failed
zu sein. Ich würde testweise zwei Codeänderungen versuchen, jeweils in Funktion addLink(), addMy() und addDir():
1. in Zeile 193 den Typ "Video" in "music" ändern (falls CPlayerCoreFactory in den C-Quellen unter Android empfindlich auf den Typ reagiert)
2. hinter Zeile 193 einfügen: liz.setContentLookup(False) (s. alten Beitrag im Kodi-forum)
Vielleicht kann das Publish3r übernehmen und zur Verfügung stellen. Zugegeben, Schüsse ins Blaue, aber besseres fällt mir im Moment nicht ein..
/R
Ich denke eher, dass der GetMimeType -> fail ein Folgefehler der Zeile vorher ist:
2024-05-08 07:13:36.584 T:19377 error <general>: CCurlFile::Stat - <https://meralunafm.radionetz.de:8001/meralunafm.mp3> Failed: Couldn't connect to server(7)
2024-05-08 07:13:36.584 T:19377 debug <general>: CCurlFile::GetMimeType - <https://meralunafm.radionetz.de:8001/meralunafm.mp3> -> failed
So wie es aussieht kann Curl keine Verbindung zum Server herstellen, warum auch immer. Interessant wäre natürlich die Erklärung für Couldn't connect to server(7). Die Google-Suchergebnisse zu diesem Fehler sind mir persönlich aber zu aufwendig anzuschauen, in dem Thema bin ich definitiv nicht drin und das sagt mir alles nichts.
Edit:
Am Ende denke ich eh nicht, dass das AddOn (oder der Entwickler) hier etwas richten können: Die von der radio.de-API gelieferte Stream-Adresse wird dem Kodi-Player korrekt übergeben, aber irgendwas geht danach Seitens der weiteren Verarbeitung innerhalb von Kodi schief (in dem Fall ein Curl-Verbindungsproblem).
ändere, dann kommt natürlich nichts. Es würde mich ein wenig interssieren, ob es vielleicht an eurer Router-Konfig oder vielleicht auch am Anbieter liegen könnte?!
Aber das beide nicht gehen ist schon sehr merkwürdig
In meinem Fall beziehen sich die vorherigen Aussagen auf unser Firmennetz, da ist nicht viel mit Router-Konfig und ändern...
Ja tut er, auch Kodi mit dem Radio.de Light addon spielt ihn ab, liegt also eher meiner installation auf dem android geräten
werde nachher nochmal neu installieren...mal sehen was dann passiert
Dank an die, die ehrlich helfen wollen
Wie schon erwähnt, kann ich in dem Netzwerk hier den Port 8000 und 8001 auch nicht erreichen. Das sind m.M.n. eher ungünstige Ports für einen Server im WWW, weil man nicht wissen kann, ob die Ports von irgendwas geblockt werden. Kann deshalb auch sein, dass dein Problem in der Ecke liegt, sprich, dass das Gerät, auf dem du die AddOns (und Kodi) laufen lässt, Traffic über diese Pors einfach nicht zulässt.
Hast du ein Pihole? stargazer radio.de taucht in einer Liste auf!
Nein, aber wenn ich mir's recht überlege, an dem Netzwerk hier sind soweit ich weiß alle Ports (außer 443und 80) nach außen geblockt. Würde erklären, warum ich hier Port 8000 (für den aac Stream) und 8001 (mp3) weder von Kodi aus, noch im Browser erreiche.
TuneIn2017 (im kodinerds-Repo) findet auf meinem PC den den aac-Stream und spielt ihn ab. Von daher ist für die weitere Hilfe ein Debug-Log tatsächlich unerlässlich.
/R
Und das ist der gleiche Stream wie oben geschrieben? Also http://meralunafm.radionetz.de:8000/meralunafm.aac? Der Stream lässt sich bei mir weder über Kodi, noch über den Browser aufrufen. Das Python-Rerquests-Modul liefert mir in meinem AddOn (beim URL-Resolve) folgenden Error: "<urlopen error [WinError 10054] An existing connection was forcibly closed by the remote host>". Da ist dann spätestens Schluss...
Edit: rols1 Bei mir funktioniert der Stream auch mit deinem TuneIn2017 AddOn nicht. Fehlermeldung: "Kein Stream gefunden zu Mear Luna FM". Und dann: "Fehler timed out http://meralunafm.radionetz.de:8000/meralunafm.aac"
@Orakel: Die Radio.de API liefert für den Sender "M'era Luna FM" zwei Stream-URLs:
https://meralunafm.radionetz.de:8001/meralunafm.mp3
http://meralunafm.radionetz.de:8000/meralunafm.aac
Beide werden von Kodi nicht abgespielt und beide können auch im Browser nicht aufgerufen werden (Aufruf der Seite führt zu einer Fehlermeldung). Somit liegt das Problem auf der Server-Seite. Kodi (inkl. sämtlicher Radio.de AddOns) kann hier nichts mehr machen.
Edit: Auch die Website radio.de (https://www.radio.de/s/meralunafm) im Browser kann den Stream nicht aufrufen. Bei Problemen mit Streams würde ich dir Empfehlen, immer auch parallel zu versuchen, den Sender auf der radio.de Website abzuspielen. Wenn der Stream dort auch nicht funktioniert, dann liegt das Problem auf der Server-Seite.
Edit_2: Liegt bei mir hier z.Zt. wohl daran, dass in diesem Netzwerk hier Ports nach außen (außer 443 und 80) geblockt sind. -> Also keine Verbindung zu den Stream-Servern möglich, weder von Kodi, noch vom Browser.
Hallo,
erst mal vielen Dank an Publish3r für die schnelle Lösung des "Radio.de" Problems mittels neuem AddOn. Ich habe mich mal auf Grund der Infos von k-jell (besten Dank auch dir für die Infos) aus dem github-thread bez. der neuen API Endpoints hingesetzt und versucht, so viel wie möglich an neuen API-Endpoints in Form eines neuen AddOns zu implementieren. Falls jemand Interesse hat das AddOn auszuprobieren, hier der Link zu github:
Ich habe leider noch keine Möglichkeit gefunden die API in der Art aufzurufen, dass irgendwie sinnvoll gefilterte Resultate geliefert werden (z.B. nach Beliebtheit sortiert, nach Region, etc.). Falls hier jemand mehr Ahnung von HTTP (oder Java oder was auch immer nötig ist) hat als ich und entsprechende Aufrufparameter beisteuern kann, bin ich für weitere Infos dankbar.
Edit:
Das Filter-Problem ist gelöst, es werden jetzt Resultate gemäß den Regional-Einstellung in AddOn geliefert.
Die Änderung aus GitHub github.com/Sandmann79/xbmc/pull/295 funktioniert bei mir auch. Getestet mit Milhouse RPi buid 2019-03-26, auf einem RaspberryPi 3. WideVine Version weiß ich nicht, habe aber schon öfters ein Update mit 'cancel' abgelehnt. Müsste also ein alter Stand sein.