Using "album fanart" fallback for Artists without fanart
#1
Hi there,

I am using Kodi 18 Beta 5, and I see its possible to choose individual fanarts for Albums of the same Artist. Thats really nice since I have a lot of OST Albums with Various Artists, so I now can have a specific fanart for each OST Album.

The problem I have is, that I don't have Artwork for every single Artist. I know I can set a fallback, but I don't want to link to a Default fanart, I like to link to the the Album fanart of the song that is currently selected/playing, if no Artist fanart exists.

Is that possible to achieve?

Thanks in advance for your help.

Regards sonic
Reply
#2
(2018-11-28, 11:08)sonic00 Wrote: Hi there,

I am using Kodi 18 Beta 5, and I see its possible to choose individual fanarts for Albums of the same Artist. Thats really nice since I have a lot of OST Albums with Various Artists, so I now can have a specific fanart for each OST Album.

The problem I have is, that I don't have Artwork for every single Artist. I know I can set a fallback, but I don't want to link to a Default fanart, I like to link to the the Album fanart of the song that is currently selected/playing, if no Artist fanart exists.

Is that possible to achieve?

Thanks in advance for your help.

Regards sonic

I assume you are using Estuary skin?  For that skin I think you would need to edit the skin file for music visualisation (MusicVisualisation.xml).  You need to be able to access the main Kodi addon folder to get to the skin  addon folder and then the xml subfolder that contains the actual skin files.

Near the top of the file you see the skin image "control" that loads the artist fanart:
Code:
<control type="image">
<aspectratio>scale</aspectratio>
<fadetime>400</fadetime>
<animation effect="fade" start="0" end="100" time="400">WindowOpen</animation>
<animation effect="fade" start="100" end="0" time="300">WindowClose</animation>
<texture background="true" colordiffuse="88FFFFFF">$INFO[Player.Art(fanart)]</texture>
</control>

Copy that entire block of text and paste it immediately following (so it is repeated).  Edit the <texture> line and add a new line as follows into the copy you just added:
Code:
<texture background="true" colordiffuse="88FFFFFF">$INFO[Player.Art(album.fanart)]</texture>
<visible>String.IsEmpty(Control.GetLabel(1000))</visible>

Then in the first of the two image controls, add the id "1000" in the first line:
Code:
<control type="image" id="1000">

Save your modified file (probably good to back up the original in case you make a mistake or want to restore the original version).  Note that if you update Kodi it will over-write your modified file.

This assumes you have an art assigned in the album "fanart" slot.

Edit:  OK looking further, there's another small change that needs to be made.  This one ensure that the "ColoredBackgroundImages" fade when you use the Player.Art(album.fanart).  This is a line a bit further down (after adding the previous, the new line number is 43):
Code:
<animation effect="fade" start="100" end="30" time="0" condition="!Skin.HasSetting(hide_background_fanart) + [!String.IsEmpty(Player.Art(fanart)) | Visualisation.Enabled | System.HasAddon(script.artistslideshow)]">Conditional</animation>

It needs to look like this:
Code:
<animation effect="fade" start="100" end="30" time="0" condition="[!Skin.HasSetting(hide_background_fanart) + [!String.IsEmpty(Player.Art(album.fanart) | !String.IsEmpty(Player.Art(fanart)) | System.HasAddon(script.artistslideshow)]] | Visualisation.Enabled">Conditional</animation>

scott s.
.
Reply
#3
Thank you very much for your help, it worked like a charm Smile

May I ask you one more thing? I also like to use the Album fanart for the Song view, when no Artist fanart exists, but it does not work. Here is the code I tried to use in includes.html (DefaultBackground):

xml:

<control type="image" id="33000">
   <include>FullScreenDimensions</include>
   <aspectratio>scale</aspectratio>
                        <texture background="true" colordiffuse="80FFFFFF">$VAR[MediaFanartVar]</texture >
                        <visible>Control.IsVisible(98) + Container.Content(songs)</visible>
                    </control>

<control type="image" id="33001">
   <include>FullScreenDimensions</include>
   <aspectratio>scale</aspectratio>
   <texture background="true" fallback="media-overlay.jpg">$INFO[ListItem.Art(album.fanart)]</texture>
   <visible>Control.IsVisible(98) + Container.Content(songs) + String.IsEmpty(Control.GetLabel(33000))</visible>
</control>
Reply
#4
Seems like it should work.  Are you using artworkbeef to fill your album fanart or <albumextraart> in advancedsettings?

scott s.
.
Reply
#5
Neither of both. I don't use any 3rd party tool for downloading Artwork. I only have a couple of Albums with Various Artists, where I needed a Album Fanart because of the none existing Artist Fanart. Therefor I added a new art type in the album view called "Fanart" and chose the downloaded Fanart. I see the Fanart in the Album View, but in the Song View it disappears after a couple of seconds.

After your comment, I tried to add following to the advancedsettings.xml (and restarted Kodi), but nothing has changed.

xml:

<advancedsettings>
   <musiclibrary>
      <albumextraart>
         <arttype>Fanart</arttype>
      </albumextraart>
   </musiclibrary>
</advancedsettings>
Reply
#6
I was curious if it's something in how the art was stored, but I think we can discount that as a problem.  I would need to see more of your xml (maybe the whole file) to see if I have another idea.

scott s.
.
Reply
#7
Thank you for the offer, but I figured it out - I guess.

Did some trial & error and noticed that when I use "Fanart" instead of "fanart" it will show correctly the manually added Album fanart if no Artist fanart exists.

So this is what I changed in Includes.xml (under DefaultBackground):

xml:

<control type="image" id="33000">
   <include>FullScreenDimensions</include>
   <aspectratio>scale</aspectratio>
   <texture background="true">$VAR[MediaFanartVar]</texture>
   <visible>Control.IsVisible(97) | Control.IsVisible(98)</visible>
</control>
                    
<control type="image" id="33001">
   <include>FullScreenDimensions</include>
   <aspectratio>scale</aspectratio>
   <texture background="true" fallback="media-overlay.jpg">$INFO[ListItem.Art(Fanart)]</texture>
   <visible>[Control.IsVisible(97) | Control.IsVisible(98)] + Container.Content(albums) + String.IsEmpty(Control.GetLabel(33000))</visible>
</control>
                    
<control type="image" id="33002">
   <include>FullScreenDimensions</include>
   <aspectratio>scale</aspectratio>
   <texture background="true" fallback="media-overlay.jpg">$INFO[ListItem.Art(album.Fanart)]</texture>
   <visible>[Control.IsVisible(97) | Control.IsVisible(98)] + Container.Content(songs) + String.IsEmpty(Control.GetLabel(33000))</visible>
</control>

Don't know if this is right, but at least it seems to do what I want Wink
Reply
#8
I didn't realize this until I did some testing, but arttype is case-sensitive, so you can have both fanart and Fanart for a media.  And if you use advancedsettings file to specify album arttype to read during scans, you can define both fanart and Fanart.  During scan, path/filename is case INsensitive, so if you have a file named fanart.jpg, it will be added as both fanart AND Fanart.  Not sure if this is a bug or a feature.

scott s.
.
Reply

Logout Mark Read Team Forum Stats Members Help
Using "album fanart" fallback for Artists without fanart0