[REQUEST] SomaFM Internet Radio Addon (Some Work Already Done)
#1
I love SomaFM's various Internet radio stations and it would be fantastic to have an SomaFM addon that could scrape the SomaFM website, show what stations are currently available and then allow playback of the streams. A couple of years ago, some initial work was done on this by "jorsoban." I sent an email out almost three months ago asking about the status of the SomaFM addon, but never received a reply, so I assume the work has been abandoned.

The partially completed addon can be downloaded here:

http://jorsoban-xbmc.googlecode.com/svn/...io.somafm/

I downloaded the individual files to a folder named plugin.audio.somafm, zipped it and then installed it to XBMC via the Install from zip file option. It partially works; the addon launches and displays all the current SomaFM stations with thumbnails, but when you try to launch a stream, unfortunately, nothing happens.

Maybe someone who knows Python can take a look at the source and get it working? I'm hoping it's just a minor fix.

The default.py file is only 2kb. Here are the contents for anyone interested:

Code:
import os,urllib2,xbmcplugin,xbmcgui
#from cgi import parse_qs
from BeautifulSoup import BeautifulStoneSoup as Soup
#, BeautifulStoneSoup

__addon__ = "SomaFM"
__addonid__ = "plugin.audio.somafm"
__version__ = "0.0.1"

def log(msg):
  print "[PLUGIN] '%s (%s)' " % (__addon__, __version__) + str(msg)

log("Initialized!")
log(sys.argv)

rootURL = "http://somafm.com"

#pluginPath = sys.argv[0]
handle = int(sys.argv[1])
query = sys.argv[2]

def getHeaders(withReferrer=None):
  headers = {}
  headers['User-Agent'] = 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3'
  if withReferrer:
    headers['Referrer'] = withReferrer
  return headers

def getHTMLFor(url, withData=None, withReferrer=None):
  log("Get HTML for URL: " + url)
  req = urllib2.Request(url, withData, getHeaders(withReferrer))
  response = urllib2.urlopen(req)
  data = response.read()
  response.close()
  return data
  
  
def addEntries():
    somaHTML = getHTMLFor(url=rootURL)
    stationsDiv = Soup(somaHTML).find("div", id="stations")

    for stations in stationsDiv.findAll("li"):
        #log(stations.prettify())
        title = stations.h3.string
        img = rootURL + stations.img["src"]
        url = rootURL + stations.a["href"].replace("/play","") + ".pls"
        log(title)
        log(img)
        log(url)
        li = xbmcgui.ListItem(title, thumbnailImage=img)
        li.setProperty("IsPlayable","true")
        xbmcplugin.addDirectoryItem(
            handle=handle,
            url=url,
            listitem=li)


addEntries()            
xbmcplugin.endOfDirectory(handle)

#li = xbmcgui.ListItem("GrooveSalad")
#li.setProperty('IsPlayable', 'true')

For the Python programmers out there, does anything obvious stick out?

Thanks in advance to anyone willing to take a look at this!
Reply
#2
Done!

https://github.com/nils-werner/xbmc-somafm

There were a few issues, mostly old stuff from earlier XBMC versions and a nonexistent Python module.

The new version also uses the SomaFM XML API where the old one was trying to parse HTML (yuck!)
Reply
#3
YES! Thanks for fixing this! I'm using it right now and it works great! I wonder what the next step is to get it added to the main repository, so that more XBMC users will become aware of its existence?

Also, not to look a gift horse in the mouth, but how difficult would it be to add a description under the thumbnail? That's certainly not essential, but it would be really handy for new stations.

Thanks again for putting in the effort to fix this, you're awesome!
Reply
#4
Hey, Nils. I was checking out your updated default.py file. I don't understand much of it, but I noticed the reference to channels.xml. On a hunch, I tried putting this address in my browser:

http://somafm.com/channels.xml

Bingo!

In looking at channels.xml, I noticed that station thumbnails are available in three resolutions: <image> at 120x120, <largeimage> at 256x256, and <xlimage> at 512x512. Unfortunately, not every station has all three image sizes available. Is it possible to have it use <xlimage> first, drop down to <largeimage> second if it's not available, and finally drop down to <image> third if the other two aren't available?

Also, for information that could be located under the thumbnail, I noticed these two useful tags: <genre> and <description>.

Again, thanks for the efforts you've already put in. We all really appreciate it! I'm sorry if I come off as pushy! I don't mean to, I just want the SomaFM addon to be as good as it can be!
Reply
#5
I just tried adding some more text to the entries, but it won't show up. Do you have an example of a plugin that achieved what you want to see?

If available the plugin now shows the 256x256 px image and falls back to the smaller one. I didn't implement the xlimage because thumbnails are supposed to be 256x256 in size anyways.
Reply
#6
You're right! I had it in my head that the SHOUTcast 2 addon had additional information below the thumbnail, but I just checked and it doesn't. Unfortunately, there probably isn't a way to add this. Sorry about that!

BTW, the higher resolution thumbnails look really nice! Thanks for fixing that!

When I listen to music, I like to turn on the full screen visualization. It's a really nice effect with the Artist Slideshow addon. I've noticed when I play a SomaFM station, it doesn't display the station thumbnail as the album cover. The Radio Add-on is an example of an addon that does use the thumbnail as album cover:

http://forum.xbmc.org/showthread.php?tid=119362
Reply
#7
That will probably not be possible as all I'm doing is handing the URLs of the playlists over to XBMC. The albumart/thumbnail should probably be embedded in the playlist or the stream.
Reply
#8
Okay, cool. I figured I'd mention it because it was really the only "missing" feature compared to some of the other streaming radio addons.

Thanks again for all your effort on this!
Reply
#9
Thanks so much for this, have it running on my system, love Secret Agent!
Reply
#10
I have not been able to get the Soma FM plugin working on 2 different Kodi/xbmc installations. I get the full channel list, but selecting any channel to play results in a failure. The debug log appears to indicate a problem occurred parsing the stream list results, but I am by no means a debug log guru. Any suggestions would be appreciated.[/code]

Code:
19:14:05 T:1455704128  NOTICE: Log level changed to "LOG_LEVEL_DEBUG_FREEMEM"
19:14:05 T:1455704128  NOTICE: Enabled debug logging due to GUI setting. Level 2.
19:14:05 T:1455704128   DEBUG: ------ Window Init () ------
19:14:08 T:1455704128   DEBUG: Keyboard: scancode: 0x04, sym: 0x0008, unicode: 0x0000, modifier: 0x0
19:14:08 T:1455704128   DEBUG: bool CApplication::OnKey(const CKey&): backspace (0xf008) pressed, action is Back
19:14:08 T:1455704128   DEBUG: CGUIWindowManager::PreviousWindow: Deactivate
19:14:08 T:1455704128   DEBUG: ------ Window Deinit (SettingsCategory.xml) ------
19:14:08 T:1455704128   DEBUG: CGUIWindowManager::PreviousWindow: Activate new
19:14:08 T:1455704128   DEBUG: ------ Window Init (Settings.xml) ------
19:14:08 T:1656596240  NOTICE: Thread JobWorker start, auto delete: true
19:14:09 T:1455704128   DEBUG: Keyboard: scancode: 0x04, sym: 0x0008, unicode: 0x0000, modifier: 0x0
19:14:09 T:1455704128   DEBUG: bool CApplication::OnKey(const CKey&): backspace (0xf008) pressed, action is Back
19:14:09 T:1455704128   DEBUG: CGUIWindowManager::PreviousWindow: Deactivate
19:14:09 T:1455704128   DEBUG: ------ Window Deinit (Settings.xml) ------
19:14:09 T:1455704128   DEBUG: CGUIWindowManager::PreviousWindow: Activate new
19:14:09 T:1455704128   DEBUG: ------ Window Init (Home.xml) ------
19:14:10 T:1455704128   DEBUG: Keyboard: scancode: 0x15, sym: 0x0114, unicode: 0x0000, modifier: 0x0
19:14:10 T:1455704128   DEBUG: bool CApplication::OnKey(const CKey&): left (0xf082) pressed, action is Left
19:14:10 T:1455704128   DEBUG: Keyboard: scancode: 0x14, sym: 0x0112, unicode: 0x0000, modifier: 0x0
19:14:10 T:1455704128   DEBUG: bool CApplication::OnKey(const CKey&): down (0xf081) pressed, action is Down
19:14:11 T:1455704128   DEBUG: Keyboard: scancode: 0x14, sym: 0x0112, unicode: 0x0000, modifier: 0x0
19:14:11 T:1455704128   DEBUG: bool CApplication::OnKey(const CKey&): down (0xf081) pressed, action is Down
19:14:11 T:1455704128   DEBUG: Keyboard: scancode: 0x17, sym: 0x000d, unicode: 0x0000, modifier: 0x0
19:14:11 T:1455704128   DEBUG: bool CApplication::OnKey(const CKey&): return (0xf00d) pressed, action is Select
19:14:11 T:1455704128   DEBUG: Activating window ID: 10501
19:14:11 T:1455704128   DEBUG: ------ Window Deinit (Home.xml) ------
19:14:11 T:1455704128   DEBUG: ------ Window Init (MyMusicSongs.xml) ------
19:14:11 T:1455704128   DEBUG: CGUIMediaWindow::GetDirectory (plugin://plugin.audio.somafm/)
19:14:11 T:1455704128   DEBUG:   ParentPath = [plugin://plugin.audio.somafm/]
19:14:12 T:1455704128   DEBUG: bool XFILE::CPluginDirectory::StartScript(const string&, bool) - calling plugin SomaFM('plugin://plugin.audio.somafm/','105','')
19:14:12 T:1455704128   DEBUG: bool XFILE::CPluginDirectory::WaitOnScriptResult(const string&, int, const string&, bool) - waiting on the SomaFM (id=111) plugin...
19:14:12 T:1667686112  NOTICE: Thread LanguageInvoker start, auto delete: false
19:14:12 T:1667686112    INFO: initializing python engine.
19:14:12 T:1667686112   DEBUG: CPythonInvoker(111, /storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.audio.somafm/default.py): start processing
19:14:12 T:1667686112  NOTICE: -->Python Interpreter Initialized<--
19:14:12 T:1667686112   DEBUG: CPythonInvoker(111, /storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.audio.somafm/default.py): the source file to load is "/storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.audio.somafm/default.py"
19:14:12 T:1455704128   ERROR: Control 50 in window 10501 has been asked to focus, but it can't
19:14:12 T:1667686112   DEBUG: CPythonInvoker(111, /storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.audio.somafm/default.py): setting the Python path to /storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.audio.somafm:/storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/script.module.beautifulsoup/lib:/:/data/app/org.xbmc.kodi-2.apk/assets/python2.6/lib/python26.zip:/data/app/org.xbmc.kodi-2.apk/assets/python2.6/lib/python2.6:/data/app/org.xbmc.kodi-2.apk/assets/python2.6/lib/python2.6/plat-linux3:/data/app/org.xbmc.kodi-2.apk/assets/python2.6/lib/python2.6/lib-tk:/data/app/org.xbmc.kodi-2.apk/assets/python2.6/lib/python2.6/lib-old:/data/app/org.xbmc.kodi-2.apk/assets/python2.6/lib/python2.6/lib-dynload
19:14:12 T:1667686112   DEBUG: CPythonInvoker(111, /storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.audio.somafm/default.py): entering source directory /storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.audio.somafm
19:14:12 T:1667686112   DEBUG: CPythonInvoker(111, /storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.audio.somafm/default.py): instantiating addon using automatically obtained id of "plugin.audio.somafm" dependent on version 2.1.0 of the xbmc.python api
19:14:12 T:1667686112  NOTICE: ['plugin://plugin.audio.somafm/', '105', '']
19:14:12 T:1667686112  NOTICE: Cache setting is 1, using ttl of 86400000ms
19:14:12 T:1667686112  NOTICE: Using cached channel.xml
19:14:12 T:1455704128   DEBUG: bool XFILE::CPluginDirectory::WaitOnScriptResult(const string&, int, const string&, bool)- plugin returned successfully
19:14:12 T:1667686112    INFO: CPythonInvoker(111, /storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.audio.somafm/default.py): script successfully run
19:14:12 T:1667686112    INFO: Python script stopped
19:14:12 T:1667686112   DEBUG: Thread LanguageInvoker 1667686112 terminating
19:14:12 T:1667686112  NOTICE: Thread BackgroundLoader start, auto delete: false
19:14:12 T:1667686112   DEBUG: Thread BackgroundLoader 1667686112 terminating
19:14:12 T:1455704128   DEBUG: RetrieveMusicInfo() took 58 msec
19:14:12 T:1666381976  NOTICE: Thread BackgroundLoader start, auto delete: false
19:14:12 T:1666381976   DEBUG: Thread BackgroundLoader 1666381976 terminating
19:14:13 T:1455704128   DEBUG: Keyboard: scancode: 0x13, sym: 0x0111, unicode: 0x0000, modifier: 0x0
19:14:13 T:1455704128   DEBUG: bool CApplication::OnKey(const CKey&): up (0xf080) pressed, action is Up
19:14:14 T:1455704128   DEBUG: Keyboard: scancode: 0x17, sym: 0x000d, unicode: 0x0000, modifier: 0x0
19:14:14 T:1455704128   DEBUG: bool CApplication::OnKey(const CKey&): return (0xf00d) pressed, action is Select
19:14:14 T:1455704128   DEBUG: CAnnouncementManager - Announcement: OnAdd from xbmc
19:14:14 T:1455704128   DEBUG: GOT ANNOUNCEMENT, type: 2, from xbmc, message OnAdd
19:14:14 T:1455704128   DEBUG: CAnnouncementManager - Announcement: OnAdd from xbmc
19:14:14 T:1455704128   DEBUG: GOT ANNOUNCEMENT, type: 2, from xbmc, message OnAdd
19:14:14 T:1455704128   DEBUG: CAnnouncementManager - Announcement: OnAdd from xbmc
19:14:14 T:1455704128   DEBUG: GOT ANNOUNCEMENT, type: 2, from xbmc, message OnAdd
19:14:14 T:1455704128   DEBUG: CAnnouncementManager - Announcement: OnAdd from xbmc
19:14:14 T:1455704128   DEBUG: GOT ANNOUNCEMENT, type: 2, from xbmc, message OnAdd
19:14:14 T:1455704128   DEBUG: CAnnouncementManager - Announcement: OnAdd from xbmc
19:14:14 T:1455704128   DEBUG: GOT ANNOUNCEMENT, type: 2, from xbmc, message OnAdd
19:14:14 T:1455704128   DEBUG: CAnnouncementManager - Announcement: OnAdd from xbmc
19:14:14 T:1455704128   DEBUG: GOT ANNOUNCEMENT, type: 2, from xbmc, message OnAdd
19:14:14 T:1455704128   DEBUG: CAnnouncementManager - Announcement: OnAdd from xbmc
19:14:14 T:1455704128   DEBUG: GOT ANNOUNCEMENT, type: 2, from xbmc, message OnAdd
19:14:14 T:1455704128   DEBUG: CAnnouncementManager - Announcement: OnAdd from xbmc
19:14:14 T:1455704128   DEBUG: GOT ANNOUNCEMENT, type: 2, from xbmc, message OnAdd
19:14:14 T:1455704128   DEBUG: CAnnouncementManager - Announcement: OnAdd from xbmc
19:14:14 T:1455704128   DEBUG: GOT ANNOUNCEMENT, type: 2, from xbmc, message OnAdd
19:14:14 T:1455704128   DEBUG: CAnnouncementManager - Announcement: OnAdd from xbmc
19:14:14 T:1455704128   DEBUG: GOT ANNOUNCEMENT, type: 2, from xbmc, message OnAdd
19:14:14 T:1455704128   DEBUG: CAnnouncementManager - Announcement: OnAdd from xbmc
19:14:14 T:1455704128   DEBUG: GOT ANNOUNCEMENT, type: 2, from xbmc, message OnAdd
19:14:14 T:1455704128   DEBUG: CAnnouncementManager - Announcement: OnAdd from xbmc
19:14:14 T:1455704128   DEBUG: GOT ANNOUNCEMENT, type: 2, from xbmc, message OnAdd
19:14:14 T:1455704128   DEBUG: CAnnouncementManager - Announcement: OnAdd from xbmc
19:14:14 T:1455704128   DEBUG: GOT ANNOUNCEMENT, type: 2, from xbmc, message OnAdd
19:14:14 T:1455704128   DEBUG: CAnnouncementManager - Announcement: OnAdd from xbmc
19:14:14 T:1455704128   DEBUG: GOT ANNOUNCEMENT, type: 2, from xbmc, message OnAdd
19:14:14 T:1455704128   DEBUG: CAnnouncementManager - Announcement: OnAdd from xbmc
19:14:14 T:1455704128   DEBUG: GOT ANNOUNCEMENT, type: 2, from xbmc, message OnAdd
19:14:14 T:1455704128   DEBUG: CAnnouncementManager - Announcement: OnAdd from xbmc
19:14:14 T:1455704128   DEBUG: GOT ANNOUNCEMENT, type: 2, from xbmc, message OnAdd
19:14:14 T:1455704128   DEBUG: CAnnouncementManager - Announcement: OnAdd from xbmc
19:14:14 T:1455704128   DEBUG: GOT ANNOUNCEMENT, type: 2, from xbmc, message OnAdd
19:14:14 T:1455704128   DEBUG: CAnnouncementManager - Announcement: OnAdd from xbmc
19:14:14 T:1455704128   DEBUG: GOT ANNOUNCEMENT, type: 2, from xbmc, message OnAdd
19:14:14 T:1455704128   DEBUG: CAnnouncementManager - Announcement: OnAdd from xbmc
19:14:14 T:1455704128   DEBUG: GOT ANNOUNCEMENT, type: 2, from xbmc, message OnAdd
19:14:14 T:1455704128   DEBUG: CAnnouncementManager - Announcement: OnAdd from xbmc
19:14:14 T:1455704128   DEBUG: GOT ANNOUNCEMENT, type: 2, from xbmc, message OnAdd
19:14:14 T:1455704128   DEBUG: CAnnouncementManager - Announcement: OnAdd from xbmc
19:14:14 T:1455704128   DEBUG: GOT ANNOUNCEMENT, type: 2, from xbmc, message OnAdd
19:14:14 T:1455704128   DEBUG: CAnnouncementManager - Announcement: OnAdd from xbmc
19:14:14 T:1455704128   DEBUG: GOT ANNOUNCEMENT, type: 2, from xbmc, message OnAdd
19:14:14 T:1455704128   DEBUG: CAnnouncementManager - Announcement: OnAdd from xbmc
19:14:14 T:1455704128   DEBUG: GOT ANNOUNCEMENT, type: 2, from xbmc, message OnAdd
19:14:14 T:1455704128   DEBUG: CAnnouncementManager - Announcement: OnAdd from xbmc
19:14:14 T:1455704128   DEBUG: GOT ANNOUNCEMENT, type: 2, from xbmc, message OnAdd
19:14:14 T:1455704128   DEBUG: CAnnouncementManager - Announcement: OnAdd from xbmc
19:14:14 T:1455704128   DEBUG: GOT ANNOUNCEMENT, type: 2, from xbmc, message OnAdd
19:14:14 T:1455704128   DEBUG: CAnnouncementManager - Announcement: OnAdd from xbmc
19:14:14 T:1455704128   DEBUG: GOT ANNOUNCEMENT, type: 2, from xbmc, message OnAdd
19:14:14 T:1455704128   DEBUG: CAnnouncementManager - Announcement: OnAdd from xbmc
19:14:14 T:1455704128   DEBUG: GOT ANNOUNCEMENT, type: 2, from xbmc, message OnAdd
19:14:14 T:1455704128   DEBUG: CAnnouncementManager - Announcement: OnAdd from xbmc
19:14:14 T:1455704128   DEBUG: GOT ANNOUNCEMENT, type: 2, from xbmc, message OnAdd
19:14:14 T:1455704128   DEBUG: CAnnouncementManager - Announcement: OnAdd from xbmc
19:14:14 T:1455704128   DEBUG: GOT ANNOUNCEMENT, type: 2, from xbmc, message OnAdd
19:14:14 T:1455704128   DEBUG: CAnnouncementManager - Announcement: OnAdd from xbmc
19:14:14 T:1455704128   DEBUG: GOT ANNOUNCEMENT, type: 2, from xbmc, message OnAdd
19:14:14 T:1455704128   DEBUG: CAnnouncementManager - Announcement: OnAdd from xbmc
19:14:14 T:1455704128   DEBUG: GOT ANNOUNCEMENT, type: 2, from xbmc, message OnAdd
19:14:14 T:1455704128   DEBUG: CAnnouncementManager - Announcement: OnAdd from xbmc
19:14:14 T:1455704128   DEBUG: GOT ANNOUNCEMENT, type: 2, from xbmc, message OnAdd
19:14:14 T:1455704128   DEBUG: CAnnouncementManager - Announcement: OnAdd from xbmc
19:14:14 T:1455704128   DEBUG: GOT ANNOUNCEMENT, type: 2, from xbmc, message OnAdd
19:14:14 T:1455704128   DEBUG: CAnnouncementManager - Announcement: OnAdd from xbmc
19:14:14 T:1455704128   DEBUG: GOT ANNOUNCEMENT, type: 2, from xbmc, message OnAdd
19:14:14 T:1455704128   DEBUG: bool XFILE::CPluginDirectory::StartScript(const string&, bool) - calling plugin SomaFM('plugin://plugin.audio.somafm/groovesalad','106','')
19:14:14 T:1455704128   DEBUG: bool XFILE::CPluginDirectory::WaitOnScriptResult(const string&, int, const string&, bool) - waiting on the SomaFM (id=112) plugin...
19:14:14 T:1665972704  NOTICE: Thread LanguageInvoker start, auto delete: false
19:14:14 T:1665972704    INFO: initializing python engine.
19:14:14 T:1665972704   DEBUG: CPythonInvoker(112, /storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.audio.somafm/default.py): start processing
19:14:15 T:1665972704  NOTICE: -->Python Interpreter Initialized<--
19:14:15 T:1665972704   DEBUG: CPythonInvoker(112, /storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.audio.somafm/default.py): the source file to load is "/storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.audio.somafm/default.py"
19:14:15 T:1665972704   DEBUG: CPythonInvoker(112, /storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.audio.somafm/default.py): setting the Python path to /storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.audio.somafm:/storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/script.module.beautifulsoup/lib:/:/data/app/org.xbmc.kodi-2.apk/assets/python2.6/lib/python26.zip:/data/app/org.xbmc.kodi-2.apk/assets/python2.6/lib/python2.6:/data/app/org.xbmc.kodi-2.apk/assets/python2.6/lib/python2.6/plat-linux3:/data/app/org.xbmc.kodi-2.apk/assets/python2.6/lib/python2.6/lib-tk:/data/app/org.xbmc.kodi-2.apk/assets/python2.6/lib/python2.6/lib-old:/data/app/org.xbmc.kodi-2.apk/assets/python2.6/lib/python2.6/lib-dynload
19:14:15 T:1665972704   DEBUG: CPythonInvoker(112, /storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.audio.somafm/default.py): entering source directory /storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.audio.somafm
19:14:15 T:1665972704   DEBUG: CPythonInvoker(112, /storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.audio.somafm/default.py): instantiating addon using automatically obtained id of "plugin.audio.somafm" dependent on version 2.1.0 of the xbmc.python api
19:14:15 T:1665972704  NOTICE: ['plugin://plugin.audio.somafm/groovesalad', '106', '']
19:14:15 T:1665972704   ERROR: EXCEPTION Thrown (PythonToCppException) : -->Python callback/script returned the following error<--
                                             - NOTE: IGNORING THIS CAN LEAD TO MEMORY LEAKS!
                                            Error Type: <type 'exceptions.SyntaxError'>
                                            Error Contents: expected path separator ([)
                                            Traceback (most recent call last):
                                              File "/storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.audio.somafm/default.py", line 174, in <module>
                                                play(item_to_play)
                                              File "/storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.audio.somafm/default.py", line 145, in play
                                                channel_data = xml_data.find(".//channel[@id='" + item_to_play + "']")
                                              File "/home/jenkins/workspace/Android-ARM/tools/depends/xbmc-depends/arm-linux-androideabi-android-14/lib/python2.6/xml/etree/ElementTree.py", line 330, in find
                                              File "/home/jenkins/workspace/Android-ARM/tools/depends/xbmc-depends/arm-linux-androideabi-android-14/lib/python2.6/xml/etree/ElementPath.py", line 186, in find
                                              File "/home/jenkins/workspace/Android-ARM/tools/depends/xbmc-depends/arm-linux-androideabi-android-14/lib/python2.6/xml/etree/ElementPath.py", line 176, in _compile
                                              File "/home/jenkins/workspace/Android-ARM/tools/depends/xbmc-depends/arm-linux-androideabi-android-14/lib/python2.6/xml/etree/ElementPath.py", line 93, in __init__
                                            SyntaxError: expected path separator ([)
                                            -->End of Python script error report<--
19:14:15 T:1665972704    INFO: Python script stopped
19:14:15 T:1665972704   DEBUG: Thread LanguageInvoker 1665972704 terminating
19:14:15 T:1455704128   DEBUG:  bool XFILE::CPluginDirectory::WaitOnScriptResult(const string&, int, const string&, bool) - plugin exited prematurely - terminating
19:14:15 T:1455704128   ERROR: Playlist Player: skipping unplayable item: 0, path [plugin://plugin.audio.somafm/groovesalad]
19:14:15 T:1455704128   DEBUG: bool XFILE::CPluginDirectory::StartScript(const string&, bool) - calling plugin SomaFM('plugin://plugin.audio.somafm/secretagent','107','')
19:14:15 T:1455704128   DEBUG: bool XFILE::CPluginDirectory::WaitOnScriptResult(const string&, int, const string&, bool) - waiting on the SomaFM (id=113) plugin...
19:14:15 T:1655257224  NOTICE: Thread LanguageInvoker start, auto delete: false
19:14:15 T:1655257224    INFO: initializing python engine.
19:14:15 T:1655257224   DEBUG: CPythonInvoker(113, /storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.audio.somafm/default.py): start processing
19:14:15 T:1455704128   DEBUG: ------ Window Init (DialogKaiToast.xml) ------
19:14:15 T:1655257224  NOTICE: -->Python Interpreter Initialized<--
19:14:15 T:1655257224   DEBUG: CPythonInvoker(113, /storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.audio.somafm/default.py): the source file to load is "/storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.audio.somafm/default.py"
19:14:15 T:1655257224   DEBUG: CPythonInvoker(113, /storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.audio.somafm/default.py): setting the Python path to /storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.audio.somafm:/storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/script.module.beautifulsoup/lib:/:/data/app/org.xbmc.kodi-2.apk/assets/python2.6/lib/python26.zip:/data/app/org.xbmc.kodi-2.apk/assets/python2.6/lib/python2.6:/data/app/org.xbmc.kodi-2.apk/assets/python2.6/lib/python2.6/plat-linux3:/data/app/org.xbmc.kodi-2.apk/assets/python2.6/lib/python2.6/lib-tk:/data/app/org.xbmc.kodi-2.apk/assets/python2.6/lib/python2.6/lib-old:/data/app/org.xbmc.kodi-2.apk/assets/python2.6/lib/python2.6/lib-dynload
19:14:15 T:1655257224   DEBUG: CPythonInvoker(113, /storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.audio.somafm/default.py): entering source directory /storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.audio.somafm
19:14:15 T:1655257224   DEBUG: CPythonInvoker(113, /storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.audio.somafm/default.py): instantiating addon using automatically obtained id of "plugin.audio.somafm" dependent on version 2.1.0 of the xbmc.python api
19:14:15 T:1655257224  NOTICE: ['plugin://plugin.audio.somafm/secretagent', '107', '']
19:14:15 T:1655257224   ERROR: EXCEPTION Thrown (PythonToCppException) : -->Python callback/script returned the following error<--
                                             - NOTE: IGNORING THIS CAN LEAD TO MEMORY LEAKS!
                                            Error Type: <type 'exceptions.SyntaxError'>
                                            Error Contents: expected path separator ([)
                                            Traceback (most recent call last):
                                              File "/storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.audio.somafm/default.py", line 174, in <module>
                                                play(item_to_play)
                                              File "/storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.audio.somafm/default.py", line 145, in play
                                                channel_data = xml_data.find(".//channel[@id='" + item_to_play + "']")
                                              File "/home/jenkins/workspace/Android-ARM/tools/depends/xbmc-depends/arm-linux-androideabi-android-14/lib/python2.6/xml/etree/ElementTree.py", line 330, in find
                                              File "/home/jenkins/workspace/Android-ARM/tools/depends/xbmc-depends/arm-linux-androideabi-android-14/lib/python2.6/xml/etree/ElementPath.py", line 186, in find
                                              File "/home/jenkins/workspace/Android-ARM/tools/depends/xbmc-depends/arm-linux-androideabi-android-14/lib/python2.6/xml/etree/ElementPath.py", line 176, in _compile
                                              File "/home/jenkins/workspace/Android-ARM/tools/depends/xbmc-depends/arm-linux-androideabi-android-14/lib/python2.6/xml/etree/ElementPath.py", line 93, in __init__
                                            SyntaxError: expected path separator ([)
                                            -->End of Python script error report<--
19:14:15 T:1655257224    INFO: Python script stopped
19:14:15 T:1655257224   DEBUG: Thread LanguageInvoker 1655257224 terminating
19:14:15 T:1455704128   DEBUG:  bool XFILE::CPluginDirectory::WaitOnScriptResult(const string&, int, const string&, bool) - plugin exited prematurely - terminating
19:14:15 T:1455704128   ERROR: Playlist Player: skipping unplayable item: 1, path [plugin://plugin.audio.somafm/secretagent]
19:14:15 T:1455704128   DEBUG: bool XFILE::CPluginDirectory::StartScript(const string&, bool) - calling plugin SomaFM('plugin://plugin.audio.somafm/dronezone','108','')
19:14:15 T:1455704128   DEBUG: bool XFILE::CPluginDirectory::WaitOnScriptResult(const string&, int, const string&, bool) - waiting on the SomaFM (id=114) plugin...
19:14:15 T:1655257224  NOTICE: Thread LanguageInvoker start, auto delete: false
19:14:15 T:1655257224    INFO: initializing python engine.
19:14:15 T:1655257224   DEBUG: CPythonInvoker(114, /storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.audio.somafm/default.py): start processing
19:14:15 T:1655257224  NOTICE: -->Python Interpreter Initialized<--
19:14:15 T:1655257224   DEBUG: CPythonInvoker(114, /storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.audio.somafm/default.py): the source file to load is "/storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.audio.somafm/default.py"
19:14:15 T:1655257224   DEBUG: CPythonInvoker(114, /storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.audio.somafm/default.py): setting the Python path to /storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.audio.somafm:/storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/script.module.beautifulsoup/lib:/:/data/app/org.xbmc.kodi-2.apk/assets/python2.6/lib/python26.zip:/data/app/org.xbmc.kodi-2.apk/assets/python2.6/lib/python2.6:/data/app/org.xbmc.kodi-2.apk/assets/python2.6/lib/python2.6/plat-linux3:/data/app/org.xbmc.kodi-2.apk/assets/python2.6/lib/python2.6/lib-tk:/data/app/org.xbmc.kodi-2.apk/assets/python2.6/lib/python2.6/lib-old:/data/app/org.xbmc.kodi-2.apk/assets/python2.6/lib/python2.6/lib-dynload
19:14:15 T:1655257224   DEBUG: CPythonInvoker(114, /storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.audio.somafm/default.py): entering source directory /storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.audio.somafm
19:14:15 T:1655257224   DEBUG: CPythonInvoker(114, /storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.audio.somafm/default.py): instantiating addon using automatically obtained id of "plugin.audio.somafm" dependent on version 2.1.0 of the xbmc.python api
19:14:16 T:1655257224  NOTICE: ['plugin://plugin.audio.somafm/dronezone', '108', '']
19:14:16 T:1655257224   ERROR: EXCEPTION Thrown (PythonToCppException) : -->Python callback/script returned the following error<--
                                             - NOTE: IGNORING THIS CAN LEAD TO MEMORY LEAKS!
                                            Error Type: <type 'exceptions.SyntaxError'>
                                            Error Contents: expected path separator ([)
                                            Traceback (most recent call last):
                                              File "/storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.audio.somafm/default.py", line 174, in <module>
                                                play(item_to_play)
                                              File "/storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.audio.somafm/default.py", line 145, in play
                                                channel_data = xml_data.find(".//channel[@id='" + item_to_play + "']")
                                              File "/home/jenkins/workspace/Android-ARM/tools/depends/xbmc-depends/arm-linux-androideabi-android-14/lib/python2.6/xml/etree/ElementTree.py", line 330, in find
                                              File "/home/jenkins/workspace/Android-ARM/tools/depends/xbmc-depends/arm-linux-androideabi-android-14/lib/python2.6/xml/etree/ElementPath.py", line 186, in find
                                              File "/home/jenkins/workspace/Android-ARM/tools/depends/xbmc-depends/arm-linux-androideabi-android-14/lib/python2.6/xml/etree/ElementPath.py", line 176, in _compile
                                              File "/home/jenkins/workspace/Android-ARM/tools/depends/xbmc-depends/arm-linux-androideabi-android-14/lib/python2.6/xml/etree/ElementPath.py", line 93, in __init__
                                            SyntaxError: expected path separator ([)
                                            -->End of Python script error report<--
19:14:16 T:1655257224    INFO: Python script stopped
19:14:16 T:1655257224   DEBUG: Thread LanguageInvoker 1655257224 terminating
19:14:16 T:1455704128   DEBUG:  bool XFILE::CPluginDirectory::WaitOnScriptResult(const string&, int, const string&, bool) - plugin exited prematurely - terminating
19:14:16 T:1455704128   ERROR: Playlist Player: skipping unplayable item: 2, path [plugin://plugin.audio.somafm/dronezone]
19:14:16 T:1455704128   DEBUG: bool XFILE::CPluginDirectory::StartScript(const string&, bool) - calling plugin SomaFM('plugin://plugin.audio.somafm/indiepop','109','')
19:14:16 T:1668115184  NOTICE: Thread LanguageInvoker start, auto delete: false
19:14:16 T:1455704128   DEBUG: bool XFILE::CPluginDirectory::WaitOnScriptResult(const string&, int, const string&, bool) - waiting on the SomaFM (id=115) plugin...
19:14:16 T:1668115184    INFO: initializing python engine.
19:14:16 T:1668115184   DEBUG: CPythonInvoker(115, /storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.audio.somafm/default.py): start processing
19:14:16 T:1668115184  NOTICE: -->Python Interpreter Initialized<--
19:14:16 T:1668115184   DEBUG: CPythonInvoker(115, /storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.audio.somafm/default.py): the source file to load is "/storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.audio.somafm/default.py"
19:14:16 T:1668115184   DEBUG: CPythonInvoker(115, /storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.audio.somafm/default.py): setting the Python path to /storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.audio.somafm:/storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/script.module.beautifulsoup/lib:/:/data/app/org.xbmc.kodi-2.apk/assets/python2.6/lib/python26.zip:/data/app/org.xbmc.kodi-2.apk/assets/python2.6/lib/python2.6:/data/app/org.xbmc.kodi-2.apk/assets/python2.6/lib/python2.6/plat-linux3:/data/app/org.xbmc.kodi-2.apk/assets/python2.6/lib/python2.6/lib-tk:/data/app/org.xbmc.kodi-2.apk/assets/python2.6/lib/python2.6/lib-old:/data/app/org.xbmc.kodi-2.apk/assets/python2.6/lib/python2.6/lib-dynload
19:14:16 T:1668115184   DEBUG: CPythonInvoker(115, /storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.audio.somafm/default.py): entering source directory /storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.audio.somafm
19:14:16 T:1668115184   DEBUG: CPythonInvoker(115, /storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.audio.somafm/default.py): instantiating addon using automatically obtained id of "plugin.audio.somafm" dependent on version 2.1.0 of the xbmc.python api
19:14:16 T:1668115184  NOTICE: ['plugin://plugin.audio.somafm/indiepop', '109', '']
19:14:16 T:1668115184   ERROR: EXCEPTION Thrown (PythonToCppException) : -->Python callback/script returned the following error<--
                                             - NOTE: IGNORING THIS CAN LEAD TO MEMORY LEAKS!
                                            Error Type: <type 'exceptions.SyntaxError'>
                                            Error Contents: expected path separator ([)
                                            Traceback (most recent call last):
                                              File "/storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.audio.somafm/default.py", line 174, in <module>
                                                play(item_to_play)
                                              File "/storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.audio.somafm/default.py", line 145, in play
                                                channel_data = xml_data.find(".//channel[@id='" + item_to_play + "']")
                                              File "/home/jenkins/workspace/Android-ARM/tools/depends/xbmc-depends/arm-linux-androideabi-android-14/lib/python2.6/xml/etree/ElementTree.py", line 330, in find
                                              File "/home/jenkins/workspace/Android-ARM/tools/depends/xbmc-depends/arm-linux-androideabi-android-14/lib/python2.6/xml/etree/ElementPath.py", line 186, in find
                                              File "/home/jenkins/workspace/Android-ARM/tools/depends/xbmc-depends/arm-linux-androideabi-android-14/lib/python2.6/xml/etree/ElementPath.py", line 176, in _compile
                                              File "/home/jenkins/workspace/Android-ARM/tools/depends/xbmc-depends/arm-linux-androideabi-android-14/lib/python2.6/xml/etree/ElementPath.py", line 93, in __init__
                                            SyntaxError: expected path separator ([)
                                            -->End of Python script error report<--
19:14:16 T:1668115184    INFO: Python script stopped
19:14:16 T:1668115184   DEBUG: Thread LanguageInvoker 1668115184 terminating
19:14:16 T:1455704128   DEBUG:  bool XFILE::CPluginDirectory::WaitOnScriptResult(const string&, int, const string&, bool) - plugin exited prematurely - terminating
19:14:16 T:1455704128   ERROR: Playlist Player: skipping unplayable item: 3, path [plugin://plugin.audio.somafm/indiepop]
19:14:16 T:1455704128   DEBUG: bool XFILE::CPluginDirectory::StartScript(const string&, bool) - calling plugin SomaFM('plugin://plugin.audio.somafm/cliqhop','110','')
19:14:16 T:1455704128   DEBUG: bool XFILE::CPluginDirectory::WaitOnScriptResult(const string&, int, const string&, bool) - waiting on the SomaFM (id=116) plugin...
19:14:16 T:1635768296  NOTICE: Thread LanguageInvoker start, auto delete: false
19:14:16 T:1635768296    INFO: initializing python engine.
19:14:16 T:1635768296   DEBUG: CPythonInvoker(116, /storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.audio.somafm/default.py): start processing
19:14:16 T:1635768296  NOTICE: -->Python Interpreter Initialized<--
19:14:16 T:1635768296   DEBUG: CPythonInvoker(116, /storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.audio.somafm/default.py): the source file to load is "/storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.audio.somafm/default.py"
19:14:16 T:1635768296   DEBUG: CPythonInvoker(116, /storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.audio.somafm/default.py): setting the Python path to /storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.audio.somafm:/storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/script.module.beautifulsoup/lib:/:/data/app/org.xbmc.kodi-2.apk/assets/python2.6/lib/python26.zip:/data/app/org.xbmc.kodi-2.apk/assets/python2.6/lib/python2.6:/data/app/org.xbmc.kodi-2.apk/assets/python2.6/lib/python2.6/plat-linux3:/data/app/org.xbmc.kodi-2.apk/assets/python2.6/lib/python2.6/lib-tk:/data/app/org.xbmc.kodi-2.apk/assets/python2.6/lib/python2.6/lib-old:/data/app/org.xbmc.kodi-2.apk/assets/python2.6/lib/python2.6/lib-dynload
19:14:16 T:1635768296   DEBUG: CPythonInvoker(116, /storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.audio.somafm/default.py): entering source directory /storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.audio.somafm
19:14:16 T:1635768296   DEBUG: CPythonInvoker(116, /storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.audio.somafm/default.py): instantiating addon using automatically obtained id of "plugin.audio.somafm" dependent on version 2.1.0 of the xbmc.python api
19:14:17 T:1635768296  NOTICE: ['plugin://plugin.audio.somafm/cliqhop', '110', '']
19:14:17 T:1635768296   ERROR: EXCEPTION Thrown (PythonToCppException) : -->Python callback/script returned the following error<--
                                             - NOTE: IGNORING THIS CAN LEAD TO MEMORY LEAKS!
                                            Error Type: <type 'exceptions.SyntaxError'>
                                            Error Contents: expected path separator ([)
                                            Traceback (most recent call last):
                                              File "/storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.audio.somafm/default.py", line 174, in <module>
                                                play(item_to_play)
                                              File "/storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.audio.somafm/default.py", line 145, in play
                                                channel_data = xml_data.find(".//channel[@id='" + item_to_play + "']")
                                              File "/home/jenkins/workspace/Android-ARM/tools/depends/xbmc-depends/arm-linux-androideabi-android-14/lib/python2.6/xml/etree/ElementTree.py", line 330, in find
                                              File "/home/jenkins/workspace/Android-ARM/tools/depends/xbmc-depends/arm-linux-androideabi-android-14/lib/python2.6/xml/etree/ElementPath.py", line 186, in find
                                              File "/home/jenkins/workspace/Android-ARM/tools/depends/xbmc-depends/arm-linux-androideabi-android-14/lib/python2.6/xml/etree/ElementPath.py", line 176, in _compile
                                              File "/home/jenkins/workspace/Android-ARM/tools/depends/xbmc-depends/arm-linux-androideabi-android-14/lib/python2.6/xml/etree/ElementPath.py", line 93, in __init__
                                            SyntaxError: expected path separator ([)
                                            -->End of Python script error report<--
19:14:17 T:1635768296    INFO: Python script stopped
19:14:17 T:1635768296   DEBUG: Thread LanguageInvoker 1635768296 terminating
19:14:17 T:1455704128   DEBUG:  bool XFILE::CPluginDirectory::WaitOnScriptResult(const string&, int, const string&, bool) - plugin exited prematurely - terminating
19:14:17 T:1455704128   ERROR: Playlist Player: skipping unplayable item: 4, path [plugin://plugin.audio.somafm/cliqhop]
19:14:17 T:1455704128   DEBUG: bool XFILE::CPluginDirectory::StartScript(const string&, bool) - calling plugin SomaFM('plugin://plugin.audio.somafm/beatblender','111','')
19:14:17 T:1455704128   DEBUG: bool XFILE::CPluginDirectory::WaitOnScriptResult(const string&, int, const string&, bool) - waiting on the SomaFM (id=117) plugin...
19:14:17 T:1662559656  NOTICE: Thread LanguageInvoker start, auto delete: false
19:14:17 T:1662559656    INFO: initializing python engine.
19:14:17 T:1662559656   DEBUG: CPythonInvoker(117, /storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.audio.somafm/default.py): start processing
19:14:17 T:1662559656  NOTICE: -->Python Interpreter Initialized<--
19:14:17 T:1662559656   DEBUG: CPythonInvoker(117, /storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.audio.somafm/default.py): the source file to load is "/storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.audio.somafm/default.py"
19:14:17 T:1662559656   DEBUG: CPythonInvoker(117, /storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.audio.somafm/default.py): setting the Python path to /storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.audio.somafm:/storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/script.module.beautifulsoup/lib:/:/data/app/org.xbmc.kodi-2.apk/assets/python2.6/lib/python26.zip:/data/app/org.xbmc.kodi-2.apk/assets/python2.6/lib/python2.6:/data/app/org.xbmc.kodi-2.apk/assets/python2.6/lib/python2.6/plat-linux3:/data/app/org.xbmc.kodi-2.apk/assets/python2.6/lib/python2.6/lib-tk:/data/app/org.xbmc.kodi-2.apk/assets/python2.6/lib/python2.6/lib-old:/data/app/org.xbmc.kodi-2.apk/assets/python2.6/lib/python2.6/lib-dynload
19:14:17 T:1662559656   DEBUG: CPythonInvoker(117, /storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.audio.somafm/default.py): entering source directory /storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.audio.somafm
19:14:17 T:1662559656   DEBUG: CPythonInvoker(117, /storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.audio.somafm/default.py): instantiating addon using automatically obtained id of "plugin.audio.somafm" dependent on version 2.1.0 of the xbmc.python api
19:14:17 T:1662559656  NOTICE: ['plugin://plugin.audio.somafm/beatblender', '111', '']
19:14:17 T:1662559656   ERROR: EXCEPTION Thrown (PythonToCppException) : -->Python callback/script returned the following error<--
                                             - NOTE: IGNORING THIS CAN LEAD TO MEMORY LEAKS!
                                            Error Type: <type 'exceptions.SyntaxError'>
                                            Error Contents: expected path separator ([)
                                            Traceback (most recent call last):
                                              File "/storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.audio.somafm/default.py", line 174, in <module>
                                                play(item_to_play)
                                              File "/storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.audio.somafm/default.py", line 145, in play
                                                channel_data = xml_data.find(".//channel[@id='" + item_to_play + "']")
                                              File "/home/jenkins/workspace/Android-ARM/tools/depends/xbmc-depends/arm-linux-androideabi-android-14/lib/python2.6/xml/etree/ElementTree.py", line 330, in find
                                              File "/home/jenkins/workspace/Android-ARM/tools/depends/xbmc-depends/arm-linux-androideabi-android-14/lib/python2.6/xml/etree/ElementPath.py", line 186, in find
                                              File "/home/jenkins/workspace/Android-ARM/tools/depends/xbmc-depends/arm-linux-androideabi-android-14/lib/python2.6/xml/etree/ElementPath.py", line 176, in _compile
                                              File "/home/jenkins/workspace/Android-ARM/tools/depends/xbmc-depends/arm-linux-androideabi-android-14/lib/python2.6/xml/etree/ElementPath.py", line 93, in __init__
                                            SyntaxError: expected path separator ([)
                                            -->End of Python script error report<--
19:14:17 T:1662559656    INFO: Python script stopped
19:14:17 T:1662559656   DEBUG: Thread LanguageInvoker 1662559656 terminating
19:14:17 T:1455704128   DEBUG:  bool XFILE::CPluginDirectory::WaitOnScriptResult(const string&, int, const string&, bool) - plugin exited prematurely - terminating
19:14:17 T:1455704128   ERROR: Playlist Player: skipping unplayable item: 5, path [plugin://plugin.audio.somafm/beatblender]
19:14:17 T:1455704128   DEBUG: bool XFILE::CPluginDirectory::StartScript(const string&, bool) - calling plugin SomaFM('plugin://plugin.audio.somafm/thetrip','112','')
19:14:17 T:1455704128   DEBUG: bool XFILE::CPluginDirectory::WaitOnScriptResult(const string&, int, const string&, bool) - waiting on the SomaFM (id=118) plugin...
19:14:17 T:1662559656  NOTICE: Thread LanguageInvoker start, auto delete: false
19:14:17 T:1662559656    INFO: initializing python engine.
19:14:17 T:1662559656   DEBUG: CPythonInvoker(118, /storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.audio.somafm/default.py): start processing
19:14:17 T:1662559656  NOTICE: -->Python Interpreter Initialized<--
19:14:17 T:1662559656   DEBUG: CPythonInvoker(118, /storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.audio.somafm/default.py): the source file to load is "/storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.audio.somafm/default.py"
19:14:17 T:1662559656   DEBUG: CPythonInvoker(118, /storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.audio.somafm/default.py): setting the Python path to /storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.audio.somafm:/storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/script.module.beautifulsoup/lib:/:/data/app/org.xbmc.kodi-2.apk/assets/python2.6/lib/python26.zip:/data/app/org.xbmc.kodi-2.apk/assets/python2.6/lib/python2.6:/data/app/org.xbmc.kodi-2.apk/assets/python2.6/lib/python2.6/plat-linux3:/data/app/org.xbmc.kodi-2.apk/assets/python2.6/lib/python2.6/lib-tk:/data/app/org.xbmc.kodi-2.apk/assets/python2.6/lib/python2.6/lib-old:/data/app/org.xbmc.kodi-2.apk/assets/python2.6/lib/python2.6/lib-dynload
19:14:17 T:1662559656   DEBUG: CPythonInvoker(118, /storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.audio.somafm/default.py): entering source directory /storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.audio.somafm
19:14:17 T:1662559656   DEBUG: CPythonInvoker(118, /storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.audio.somafm/default.py): instantiating addon using automatically obtained id of "plugin.audio.somafm" dependent on version 2.1.0 of the xbmc.python api
19:14:18 T:1662559656  NOTICE: ['plugin://plugin.audio.somafm/thetrip', '112', '']
19:14:18 T:1662559656   ERROR: EXCEPTION Thrown (PythonToCppException) : -->Python callback/script returned the following error<--
                                             - NOTE: IGNORING THIS CAN LEAD TO MEMORY LEAKS!
                                            Error Type: <type 'exceptions.SyntaxError'>
                                            Error Contents: expected path separator ([)
                                            Traceback (most recent call last):
                                              File "/storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.audio.somafm/default.py", line 174, in <module>
                                                play(item_to_play)
                                              File "/storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.audio.somafm/default.py", line 145, in play
                                                channel_data = xml_data.find(".//channel[@id='" + item_to_play + "']")
                                              File "/home/jenkins/workspace/Android-ARM/tools/depends/xbmc-depends/arm-linux-androideabi-android-14/lib/python2.6/xml/etree/ElementTree.py", line 330, in find
                                              File "/home/jenkins/workspace/Android-ARM/tools/depends/xbmc-depends/arm-linux-androideabi-android-14/lib/python2.6/xml/etree/ElementPath.py", line 186, in find
                                              File "/home/jenkins/workspace/Android-ARM/tools/depends/xbmc-depends/arm-linux-androideabi-android-14/lib/python2.6/xml/etree/ElementPath.py", line 176, in _compile
                                              File "/home/jenkins/workspace/Android-ARM/tools/depends/xbmc-depends/arm-linux-androideabi-android-14/lib/python2.6/xml/etree/ElementPath.py", line 93, in __init__
                                            SyntaxError: expected path separator ([)
                                            -->End of Python script error report<--
19:14:18 T:1662559656    INFO: Python script stopped
19:14:18 T:1662559656   DEBUG: Thread LanguageInvoker 1662559656 terminating
19:14:18 T:1455704128   DEBUG:  bool XFILE::CPluginDirectory::WaitOnScriptResult(const string&, int, const string&, bool) - plugin exited prematurely - terminating
19:14:18 T:1455704128   ERROR: Playlist Player: skipping unplayable item: 6, path [plugin://plugin.audio.somafm/thetrip]
19:14:18 T:1455704128   DEBUG: bool XFILE::CPluginDirectory::StartScript(const string&, bool) - calling plugin SomaFM('plugin://plugin.audio.somafm/illstreet','113','')
19:14:18 T:1663720392  NOTICE: Thread LanguageInvoker start, auto delete: false
19:14:18 T:1663720392    INFO: initializing python engine.
19:14:18 T:1663720392   DEBUG: CPythonInvoker(119, /storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.audio.somafm/default.py): start processing
19:14:18 T:1455704128   DEBUG: bool XFILE::CPluginDirectory::WaitOnScriptResult(const string&, int, const string&, bool) - waiting on the SomaFM (id=119) plugin...
19:14:18 T:1663720392  NOTICE: -->Python Interpreter Initialized<--
19:14:18 T:1663720392   DEBUG: CPythonInvoker(119, /storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.audio.somafm/default.py): the source file to load is "/storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.audio.somafm/default.py"
19:14:18 T:1663720392   DEBUG: CPythonInvoker(119, /storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.audio.somafm/default.py): setting the Python path to /storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.audio.somafm:/storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/script.module.beautifulsoup/lib:/:/data/app/org.xbmc.kodi-2.apk/assets/python2.6/lib/python26.zip:/data/app/org.xbmc.kodi-2.apk/assets/python2.6/lib/python2.6:/data/app/org.xbmc.kodi-2.apk/assets/python2.6/lib/python2.6/plat-linux3:/data/app/org.xbmc.kodi-2.apk/assets/python2.6/lib/python2.6/lib-tk:/data/app/org.xbmc.kodi-2.apk/assets/python2.6/lib/python2.6/lib-old:/data/app/org.xbmc.kodi-2.apk/assets/python2.6/lib/python2.6/lib-dynload
19:14:18 T:1663720392   DEBUG: CPythonInvoker(119, /storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.audio.somafm/default.py): entering source directory /storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.audio.somafm
19:14:18 T:1663720392   DEBUG: CPythonInvoker(119, /storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.audio.somafm/default.py): instantiating addon using automatically obtained id of "plugin.audio.somafm" dependent on version 2.1.0 of the xbmc.python api
19:14:18 T:1663720392  NOTICE: ['plugin://plugin.audio.somafm/illstreet', '113', '']
19:14:18 T:1663720392   ERROR: EXCEPTION Thrown (PythonToCppException) : -->Python callback/script returned the following error<--
                                             - NOTE: IGNORING THIS CAN LEAD TO MEMORY LEAKS!
                                            Error Type: <type 'exceptions.SyntaxError'>
                                            Error Contents: expected path separator ([)
                                            Traceback (most recent call last):
                                              File "/storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.audio.somafm/default.py", line 174, in <module>
                                                play(item_to_play)
                                              File "/storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.audio.somafm/default.py", line 145, in play
                                                channel_data = xml_data.find(".//channel[@id='" + item_to_play + "']")
                                              File "/home/jenkins/workspace/Android-ARM/tools/depends/xbmc-depends/arm-linux-androideabi-android-14/lib/python2.6/xml/etree/ElementTree.py", line 330, in find
                                              File "/home/jenkins/workspace/Android-ARM/tools/depends/xbmc-depends/arm-linux-androideabi-android-14/lib/python2.6/xml/etree/ElementPath.py", line 186, in find
                                              File "/home/jenkins/workspace/Android-ARM/tools/depends/xbmc-depends/arm-linux-androideabi-android-14/lib/python2.6/xml/etree/ElementPath.py", line 176, in _compile
                                              File "/home/jenkins/workspace/Android-ARM/tools/depends/xbmc-depends/arm-linux-androideabi-android-14/lib/python2.6/xml/etree/ElementPath.py", line 93, in __init__
                                            SyntaxError: expected path separator ([)
                                            -->End of Python script error report<--
19:14:18 T:1663720392    INFO: Python script stopped
19:14:18 T:1663720392   DEBUG: Thread LanguageInvoker 1663720392 terminating
19:14:18 T:1455704128   DEBUG:  bool XFILE::CPluginDirectory::WaitOnScriptResult(const string&, int, const string&, bool) - plugin exited prematurely - terminating
19:14:18 T:1455704128   ERROR: Playlist Player: skipping unplayable item: 7, path [plugin://plugin.audio.somafm/illstreet]
19:14:18 T:1455704128   DEBUG: bool XFILE::CPluginDirectory::StartScript(const string&, bool) - calling plugin SomaFM('plugin://plugin.audio.somafm/spacestation','114','')
19:14:18 T:1455704128   DEBUG: bool XFILE::CPluginDirectory::WaitOnScriptResult(const string&, int, const string&, bool) - waiting on the SomaFM (id=120) plugin...
19:14:18 T:1664680664  NOTICE: Thread LanguageInvoker start, auto delete: false
19:14:18 T:1664680664    INFO: initializing python engine.
19:14:18 T:1664680664   DEBUG: CPythonInvoker(120, /storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.audio.somafm/default.py): start processing
19:14:18 T:1664680664  NOTICE: -->Python Interpreter Initialized<--
19:14:18 T:1664680664   DEBUG: CPythonInvoker(120, /storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.audio.somafm/default.py): the source file to load is "/storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.audio.somafm/default.py"
19:14:18 T:1664680664   DEBUG: CPythonInvoker(120, /storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.audio.somafm/default.py): setting the Python path to /storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.audio.somafm:/storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/script.module.beautifulsoup/lib:/:/data/app/org.xbmc.kodi-2.apk/assets/python2.6/lib/python26.zip:/data/app/org.xbmc.kodi-2.apk/assets/python2.6/lib/python2.6:/data/app/org.xbmc.kodi-2.apk/assets/python2.6/lib/python2.6/plat-linux3:/data/app/org.xbmc.kodi-2.apk/assets/python2.6/lib/python2.6/lib-tk:/data/app/org.xbmc.kodi-2.apk/assets/python2.6/lib/python2.6/lib-old:/data/app/org.xbmc.kodi-2.apk/assets/python2.6/lib/python2.6/lib-dynload
19:14:18 T:1664680664   DEBUG: CPythonInvoker(120, /storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.audio.somafm/default.py): entering source directory /storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.audio.somafm
19:14:18 T:1664680664   DEBUG: CPythonInvoker(120, /storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.audio.somafm/default.py): instantiating addon using automatically obtained id of "plugin.audio.somafm" dependent on version 2.1.0 of the xbmc.python api
19:14:19 T:1664680664  NOTICE: ['plugin://plugin.audio.somafm/spacestation', '114', '']
19:14:19 T:1455704128   DEBUG: Keyboard: scancode: 0x04, sym: 0x0008, unicode: 0x0000, modifier: 0x0
Reply
#11
I've been using the somafm plugin for months on XBMC, Kodi and now OSMC.

Great app! Big Grin

But unfortunately it stopped working since a week or two: I'm getting "can't play this stream" and "check your logs" errors for all stations, except for Seven Inch Soul, which does play somehow.

I can't find anything relevant with journalctl and I've reinstalled the app, but no joy. Rolleyes

Please help getting this app back online on OSMC! Big Grin

Thanks !

A fan of both the station and the app. Cool
Reply
#12
Will this great addon be ported for Kodi 19?
Nvidia ShieldTV+Matrix
Reply
#13
(2021-02-22, 00:30)christoofar Wrote: Will this great addon be ported for Kodi 19?
We can only hope, but until then you can play the various *.pls file links for each *station* in Kodi 19. It's what I do to get my Groovesalad fix...

https://somafm.com/groovesalad/directstreamlinks.html
Matrix 19.x (LE), Aeon Nox SiLVO, NUC8i5BEK (i5-8259U, Intel Iris Plus Graphics 655, 16 GB ram, 128 GB M.2 SSD)
Samsung F6300 46" LED LCD TV, SMSL Q5 Pro amplifier, Pioneer HPM-100 speakers
Synology DS215j NAS fileserver (WD Gold 10TB x 2)
Reply
#14
I can still access SomaFM thru TuneIn radio in Shield TV, but it's very clunky , does not seem to list all of their channels, and gives no song info.
Nvidia ShieldTV+Matrix
Reply
#15
(2021-02-22, 00:48)whysoserious Wrote:
(2021-02-22, 00:30)christoofar Wrote: Will this great addon be ported for Kodi 19?
We can only hope, but until then you can play the various *.pls file links for each *station* in Kodi 19. It's what I do to get my Groovesalad fix...

https://somafm.com/groovesalad/directstreamlinks.html

Can you explain how to do this? I decided to update to Matrix, and I am already missing my SomaFm fix...
Nvidia ShieldTV+Matrix
Reply



Logout Mark Read Team Forum Stats Members Help
[REQUEST] SomaFM Internet Radio Addon (Some Work Already Done)0
This forum uses Lukasz Tkacz MyBB addons.