AlbumArtFinder - Get album art for a song from Last.fm, Deezer, or iTunes.

AlbumArtFinder
Get album art for a song from Last.fm, Deezer, or iTunes.

Only Last.fm needs an API key.

  • If you don't use the API key, the album art will be searched for on Deezer and iTunes, which don't require an API key.

LastFmApiKey

Your Last.fm API key.

  • If it's empty, this service will be skipped.

GetAlbumArt

Search for the album art by first trying Last.fm, then Deezer, and finally iTunes.


GotAlbumArt

Returns the URL of the found cover.

component_event (9)


v1.0 Jan 17, 2026.

AlbumArtFinder.aia (10.6 KB)

joejsanz.joedevalbumartfinder.aix (8.4 KB)


JDK: 11
Minimum API Level: 21
Updated On: 2026-01-17T08:00:00Z

Built using: FAST-CLI v5.3.2-premium


Thanks.

5 Likes

Hey friend, I found a small issue implementing the 3 extensions
JoeDevLyricsFinder, JoeDevMedia
and JoeDevAlbumArtFinder. I downloaded the APK and installed it on my phone. The problem is that when I close the application, it keeps playing in the background. Up to that point, everything is fine, but after a certain amount of time, the application stops and shows me the message I've attached. What could be the problem?

Will the detail be in this code module?

ima

The problem lies precisely in that part of the blocks. What I did was separate the string sent by Shoutcast and Icecast, which usually looks like this: Title - Artist or Artist - Title, and add it to a list to get the indices. It all depends on how the information was entered in Current Song, but sometimes it only contains the title, and calling index 1 and index 2 will throw an error because only one element is being saved in the list, not two or more. You would need to create the logic if only the title is present.

Some radio stations don't get the metadata, as is the case with this link: https://radio.yaservers.com:6060/stream?q=8220. I suppose that's the one that gave you the error. The information is different; I would have to add a method to get the Stream Name. I don't see any title of the song being played on the page.

1 Like

My friend, you're right in mentioning that not all audio IPs fill the list, and when the list isn't filled, the vector loses its information and index. That's why, by creating some logic, the following block, along with this block, can save some audio IPs that don't fill the list. Anyway, thanks for your attention.