Guest - Testers are needed for the reworked CDateTime core component. See... https://forum.kodi.tv/showthread.php?tid=378981 (September 29) x
  • 1
  • 47
  • 48
  • 49
  • 50(current)
  • 51
Release TIDAL music (former WiMP)
Hi @arneson,

that's odd, I didn't get a notification of your message, so sorry for not responding right away. Anyway thanks again for your efforts, installed the appropriate add-on and - sorry for the stupid question - do I actually need that for TIDAL HiFi?
BTW, have increased the version number to 20.5.0.5 in the addon.xml, otherwise I'll get an update notification from libreelec addons all the time....

Many greetings
Manjaro Linux @ minisforum UM780XTX / KODI 'Omega' (Flatpak)
Reply
(2023-10-21, 16:44)Atsome Wrote: Hi,

I'm very new with Kodi (Libreelec) and i just installed the Tidal2 package and it works but i cant see it as a Tidal connect on my Tidal app.
Did i maybe do something wrong with the installation or is it not meant to be a Tidal connect addon for Kodi ?

If it does not work as a Tidal connect app what would be the best way to control this through my phone that has a similar experience like Tidal ?
Well, it would be too nice if this would work with TIDAL Connect, but is unfortunately not the case. I personally have installed Yatse from the PlayStore, so I have KODI on the phone and thus also the TIDAL addon. You can also use Kore, basically the same with less features but completely free.
Furthermore I use BubbleUPnP, with it I can access my TIDAL content and select KODI as playback destination.
Hope that helps you a little...
Manjaro Linux @ minisforum UM780XTX / KODI 'Omega' (Flatpak)
Reply
(2023-10-22, 08:03)C.O.D. Wrote:
(2023-10-21, 16:44)Atsome Wrote: Hi,

I'm very new with Kodi (Libreelec) and i just installed the Tidal2 package and it works but i cant see it as a Tidal connect on my Tidal app.
Did i maybe do something wrong with the installation or is it not meant to be a Tidal connect addon for Kodi ?

If it does not work as a Tidal connect app what would be the best way to control this through my phone that has a similar experience like Tidal ?
Well, it would be too nice if this would work with TIDAL Connect, but is unfortunately not the case. I personally have installed Yatse from the PlayStore, so I have KODI on the phone and thus also the TIDAL addon. You can also use Kore, basically the same with less features but completely free.
Furthermore I use BubbleUPnP, with it I can access my TIDAL content and select KODI as playback destination.
Hope that helps you a little...
Hi K.O.D

Yatse is indeed great to work with Kodi for my local music
I did not yet use the Tidal2 with bubbleUPnp yet, i will try that today or tomorrow, thanks for the tip Smile
I really hope that Tidal2 will work with Tidal connect one way or another in the future because at least Tidal2 works for me unlike other addons, there is just not a great interface for your phone to use with it.
Reply
@Atsome
But keep in mind that the functionality of BubbleUPnP is completely independent from Tidal2 Wink
Manjaro Linux @ minisforum UM780XTX / KODI 'Omega' (Flatpak)
Reply
(2023-10-22, 07:49)C.O.D. Wrote: Hi @arneson,

that's odd, I didn't get a notification of your message, so sorry for not responding right away. Anyway thanks again for your efforts, installed the appropriate add-on and - sorry for the stupid question - do I actually need that for TIDAL HiFi?
BTW, have increased the version number to 20.5.0.5 in the addon.xml, otherwise I'll get an update notification from libreelec addons all the time....

Many greetings

Hi @C.O.D.
If you "only" use TIDAL Hifi, the best way is to use the "Automotive" device type. This one uses normal HTTP streams for all music tracks, so you won't have any trouble with MPEG-Dash streams.
And HTTP streaming can be played gapless. All other stream types are interpreted as video streams and can't play gapless with Kodi.

So you don't have to use any of my precompiled inputstream.ffmpegdirect addons.
But if you want to play with it, you can disable the automatic update for the inputstream.ffmpegdirect addon in its addon information window. You don't have to modify the addon version in the addon.xml file.

>> For other inputstream.ffmpegdirect users: I created a new one for LibreELEC 10.0.4 for x86_64 PC hardware, because it uses older glibc libraries. You can download it here inputstream.ffmpegdirect-19.0.3-LE10-x86_64.zip
Reply
Ok thanks @arneson
Manjaro Linux @ minisforum UM780XTX / KODI 'Omega' (Flatpak)
Reply
Hello everyone,

and now a small update for the TIDAL2 addon to V2.1.4:
  • Added "My Profile" to the "My Music" page to show the own user profile
  • Moved followers and following users to the User Profile page
  • Added the new TIDAL feature "My Picks" to the User Profile page:
    • There are four kind of picks: "My favorite track", "My major mood booster", "My go-to artist right now" and "My top album recently"
    • You can play the tracks and open the album and artist page from there
    • You can add and remove this items using the context menu
    • If you go to the user profile page of a different user, you will see his/her Picks
As every time, yo can find it in my TIDAL2 repository.
Reply
I have the problem that KODI crashes / freezes reliably when I listen to TIDAL music and have the artist slideshow activated at the same time - it always happens when I switch between songs. I've already suspected and deactivated all kinds of add-ons and have now even switched to a KODI flatpak installation, which has given me the best running KODI installation I've ever had but unfortunately hasn't changed the problem. I also suspected the inputstream.ffmpegdirect addon, but it wasn't the case either. When I listen to normal music from the library or radio I have no problems with the Artist Slideshow, only with the TIDAL2 addon. I can also run the wildest visualizations instead of the Artist Slideshow in conjunction with TIDAL - no problem at all, KODI then runs for hours without freezing.
As I said, it is a flatpak installation on PC / Manjaro Linux, I have attached a log file, the debug version was probably too big for the pastebin, unfortunately I could not upload it.
I really hope, @arneson, that you can help me here or should I also post the whole thing in the forum thread of the Artist Slideshow?

https://paste.kodi.tv/herewobuxe.kodi
Manjaro Linux @ minisforum UM780XTX / KODI 'Omega' (Flatpak)
Reply
Hi @C.O.D.

I don't know how the Artist Slideshow fetches the information about the artist to search for other images.

Please try following within the TIDAL2 UI settings:
  • disable "Use Colors in Labels"
  • disable "Mark Favorites in Labels"
This will disable the control characters which I added into the item labels. Perhaps the Artist Slideshow addon has problems with them.

Another thing you can try is to enable/disable the "Extended" setting "Set playback information for Web-GUI".
If this is enabled, the TIDAL2 addon adds some metadata into the item when the playback URL is fetched.

And for the inputstream.ffmpegdirect addon problem with missing DASH demultiplexer I precompiled some versions which I placed here: https://github.com/arnesongit/inputstrea...t-binaries
Or did you compile it by yourself ?

Another problem can be missing artist fanart images in TIDAL. Then a HTTP 404 error is shown in the kodi log file like in your kodi logfile: CCurlFile::Open - <http://localhost:45499/artist_fanart?id=13498> Failed with code 404
This error annoys me too. In a next version I will replace missing artist fanart images with the addon background image so that the 404 error will not come anymore.
Reply
(2024-06-08, 13:02)arneson Wrote: Hi @C.O.D.

I don't know how the Artist Slideshow fetches the information about the artist to search for other images.

Please try following within the TIDAL2 UI settings:
  • disable "Use Colors in Labels"
  • disable "Mark Favorites in Labels"
This will disable the control characters which I added into the item labels. Perhaps the Artist Slideshow addon has problems with them.

Another thing you can try is to enable/disable the "Extended" setting "Set playback information for Web-GUI".
If this is enabled, the TIDAL2 addon adds some metadata into the item when the playback URL is fetched.

And for the inputstream.ffmpegdirect addon problem with missing DASH demultiplexer I precompiled some versions which I placed here: https://github.com/arnesongit/inputstrea...t-binaries
Or did you compile it by yourself ?

Another problem can be missing artist fanart images in TIDAL. Then a HTTP 404 error is shown in the kodi log file like in your kodi logfile: CCurlFile::Open - <http://localhost:45499/artist_fanart?id=13498> Failed with code 404
This error annoys me too. In a next version I will replace missing artist fanart images with the addon background image so that the 404 error will not come anymore.

Hey @arneson,
thanks for the feedback and thanks for compiling new versions of inputstream.ffmpegdirect - I hadn't even discovered it yet. I had used your PC version before but even now with the new version and all your nice tips the problem has unfortunately not gone away. Sometimes after just one song, sometimes after 10 songs, at some point KODI freezes. I've tried so much and it's driving me crazy but maybe there's nothing I can do personally.
To everyone reading here, does anyone else have this problem or are there people who can use the artist slideshow in combination with TIDAL2 without any problems?
I really hope that this problem will be solved but maybe you can never have everything!

Apart from this problem, I would like to thank you again for the add-on and your efforts, @arneson.
It really is one of the few if not the only way to listen to TIDAL so comfortably (under Linux in conjunction with pipewire) and to enjoy HiRes with sample rate switching...
Manjaro Linux @ minisforum UM780XTX / KODI 'Omega' (Flatpak)
Reply
Please try this two things to verify, which component causes the Kodi crash:
 
  1. The inputstream.ffmpegdirect can cause the crash, because it tries to fetch the next stream while the artwork addon tries to load new images (a lock problem inside Kodi).
    Please try to use TIDAL2 without any inputstream addon. This can be done if you use the "Automotive" device type which uses HTTP streams for all qualities incl. MQA.
    I'm using the device type "Tv Non Drm Dolby Atmos" from an old TIDAL apk version 2.36.2. This version uses only HTTP streams and the access token is valid for 7 days instead of 24 hours with the other device types.

  2. You can try to disable all artwork images inside TIDAL2. To do this, you have to open the source file
    plugin.audio.tidal2/resources/lib/tidal2/items.py
    and comment out the line "li.setArt(artwork)" in the method getListItem of the class HasListItem: see line 32 below.
    Then the TIDAL2 addon generates no artwork anymore for all items. If Kodi still crashes, possibly the artwork adddon causes the problem.

python  resources/lib/tidal2/items.py:

class HasListItem(object):

    _is_logged_in = False
    _only_info_context_menu = False
    _initial_cm_items = []

    def setLabelFormat(self):
        self.FOLDER_MASK = settings.folder_mask
        self.STREAM_LOCKED_MASK = settings.stream_locked_mask
        self.FAVORITE_MASK = settings.favorite_mask
        self.USER_PLAYLIST_MASK = settings.user_playlist_mask
        self.DEFAULT_PLAYLIST_MASK = settings.default_playlist_mask
        self.MASTER_AUDIO_MASK = settings.master_audio_mask
        self.DOLBY_ATMOS_MASK = settings.dolby_atmos_mask
        self.SONY_360RA_MASK = settings.sony_360ra_mask
        self.FOLLOWER_MASK = settings.follower_mask
        self.HIRES_MASK = settings.hires_mask

    def getLabel(self, extended=True):
        return self.name

    def getListItem(self):
        li = xbmcgui.ListItem(self.getLabel())
        if isinstance(self, tidal.PlayableMedia) and getattr(self, 'available', True):
            li.setProperty('isplayable', 'true')
        artwork = {'thumb': Const.addon_icon, 'fanart': Const.addon_fanart}
        if getattr(self, 'image', None):
            artwork['thumb'] = self.image
        if getattr(self, 'fanart', None):
            artwork['fanart'] = self.fanart
        # li.setArt(artwork)     << comment out this
        # In Favorites View everything as a Favorite
        if self._is_logged_in and hasattr(self, '_isFavorite') and '/favorites/' in sys.argv[0]:
            self._isFavorite = True
        cm = self._initial_cm_items + self.getContextMenuItems(onlyInfoItems=self._only_info_context_menu)
        if isinstance(self, (tidal.Track, tidal.Video, tidal.Album)) and KODI_VERSION >= (20, 0):
            cm.append((xbmc.getLocalizedString(13347), 'Action(Queue)'))
            cm.append((xbmc.getLocalizedString(10008), 'Action(PlayNext)'))
            # cm.append(('Clear Playlist', 'Playlist.Clear'))
        if isinstance(self, tidal.PlayableMedia):
            #  TIDALs playback URLs have limited life-times
            li.setProperty('ForceResolvePlugin', 'true')
        if len(cm) > 0:
            li.addContextMenuItems(cm)
        return li

Reply
I tried the automotive version first some time ago because I also suspected inputstream.ffmpegdirect - that wasn't the problem.
I tried your second suggestion with commenting out today but unfortunately after three songs KODI froze again.
I also find it kind of interesting that KODI doesn't crash but only freezes, which I only notice when my processor gets hot and the fans start up...
And why does it only happen with TIDAL? I can listen to songs from my library for hours without any problems, even internet radio with permanent artist changes is no problem...
Manjaro Linux @ minisforum UM780XTX / KODI 'Omega' (Flatpak)
Reply
I tested it with Kodi Omega on my Ubuntu 22.04. There I have the same problems as you if I use the ArtistSlideshow with the Arctic Zephyr Reloaded skin.
And also wirth the default Estuary skin I have these crahes, too. That's crazy. I've noticed that this only happens when a new track should start.
Then my CPU fan gets louder but the music still plays. But the ArtistSlideshow stops working. No new pictures. And if I try to skip to the next track, Kodi crashes.

And now I can reproduce this problem on my MacBook too. The CPU (the Kodi threads) run at 100%. This seems to be a deadlock problem with the BusyDialog inside Kodi.
Look at my logfile:

https://paste.kodi.tv/nujudomexa.kodi

If the CPU runs at 100% on my Mac the next track will not start, but Kodi will not crash until I press a button.
If I wait for 5 Minutes, Kodi will continue to play the next track with my TIDAL2 addon, but the ArtistSlideshow still hangs.
And when the next track should be started, Kodi will freeze for another 5 Minutues until it continues playing.
Only if I press any key while it is freezing, Kodi will crash.

I will try to look into the ArtistSlideshow addon if there is a call to the BusyDialog which can cause the deadlock.
That's maybe a timing problem. The Skin show the busydialog because it waits for the next track and the ArtistSlidesho maybe opens the busydialog at the same time
or an opened busydialog is not closed correctly and therefore can not be opened again, because it is still locked.

In an older version of my TIDAL2 addon a had a deadlock problem with the BusyDialog, too. After I removed any call to this dialog, I had no locks anymore.
Reply
As unpleasant as the whole thing is, I am relieved that you can reproduce the problem. I also had these BusyDialog entries, sometimes KODI still reacts to inputs but sometimes not, but I never waited five minutes like you did, I didn't want to annoy my CPU so much.
I have the feeling that the problem primarily occurs when the songs change automatically, when I step through them manually I can do this for quite a while without any problems - which may indicate a timing problem after all?
I really hope you can solve the problem and keep my fingers crossed - thanks again for your efforts!
Manjaro Linux @ minisforum UM780XTX / KODI 'Omega' (Flatpak)
Reply
I think, the ArtistSlideshow addon is the problem. The script stops sometimes between two tracks.

After looking into the sources, I found two things in the Main class of the script "artistslideshow.py" which can be dangerous:

The first thing is the method "_clear_properties" which starts a new slideshow thread when the main script should be stopped.
I inserted "and ( fadetoblack or clearartists )" there because the thread should not be started if the Main thread terminates.
Look at line 11 below:

python  artistslideshow.py:

    def _clear_properties(self, fadetoblack=False, clearartists=False):
        LW.log(['main thread is cleaning all the properties'])
        self.MBID = ''
        self.FANARTNUMBER = False
        if clearartists:
            self.ALLARTISTS = []
        if self._get_infolabel('ArtistSlideshow.Image'):
            self.SLIDESHOW.ClearImages(fadetoblack=fadetoblack)
        self._slideshow_thread_stop()
        if self._is_playing() and ( fadetoblack or clearartists ):  # Only restart slideshow if fadetoblack or clearartists is set while the script is running
            self._slideshow_thread_start()
        if self._get_infolabel('ArtistSlideshow.ArtistBiography'):
            self._set_property('ArtistSlideshow.ArtistBiography')
        similar_count = self._get_infolabel('ArtistSlideshow.SimilarCount')
        if similar_count:
            for count in range(int(similar_count)):
                self._set_property(
                    'ArtistSlideshow.%d.SimilarName' % (count + 1))
                self._set_property(
                    'ArtistSlideshow.%d.SimilarThumb' % (count + 1))
            self._set_property('ArtistSlideshow.SimilarCount')
        album_count = self._get_infolabel('ArtistSlideshow.AlbumCount')
        if album_count:
            for count in range(int(album_count)):
                self._set_property(
                    'ArtistSlideshow.%d.AlbumName' % (count + 1))
                self._set_property(
                    'ArtistSlideshow.%d.AlbumThumb' % (count + 1))
            self._set_property('ArtistSlideshow.AlbumCount')

The second thing is the method "_slideshow_thread_stop" which should wait until the slideshow thread is terminated.
But the "join()" call waits forever if no timeout is given and if the join() is called when the thread is allready stopped.
So I added a line to test if the thread is alive and then wait for its termination with a timeout of 5 seconds (lines 8 and 9 below).

python  artistslideshow.py:

    def _slideshow_thread_stop(self):
        try:
            self.SLIDESHOW.StopSlideshow()
        except AttributeError:
            LW.log(['Error stopping Slideshow thread'], xbmc.LOGERROR)
            return
        if self.SLIDESHOW.is_alive():   # Only if the thread is still running
            self.SLIDESHOW.join(5)      # wait for it with a timeout

After this two changes I played around with a lot of track changes on my MacBook and I have no crash anymore  Nod

I hope this will work on your Linux platform, too.
Reply
  • 1
  • 47
  • 48
  • 49
  • 50(current)
  • 51

Logout Mark Read Team Forum Stats Members Help
TIDAL music (former WiMP)8