[collected] TuneIn support

TuneIn support would be great to include all your favourites!

Yes, please. I am looking for this feature too.

TuneIn would be great. I am using it on my Kodi installation.
I do not know if the open source code of the TuneIn Add-on could help in implementing this into Volumio

Here is the link to the Github


and the website


I hope someone more experienced can implement this into volumio


I use a Sonos system regularly, and is really miss tunein at home :slight_smile:


Any news or update on this feature request? It would be also great if support for Radio Tunes will be added to Volumio. :slight_smile:

I also use Tunein for a source and I strongly recommend @mrhk13 's metode to find out the url for Tunein radio streams.
Then just add the channel under “My Web Radios”


Thanks, what about Radio Tunes? Is there also a way to get the IP of a specific stream?

Radiotunes.com uses some kind of Flash player (for free listening), I think you need a Premium account
But I don’t know if the “custom” streams works in Volumio !

Tnx, for the info!

Hey all !

For those who feel like building a TuneIn plugin, I’ve just published node-tunein (github.com/jledun/node-tunein) in npm repository :smiley: .

It’s a module helping you to browse and search in TuneIn library via github.com/kingosticks/mopidy-tunein.

I’m available by emails if you have questions but, as I didn’t find any docs on opml.radiotime.com specifications, I’m afraid my help won’t be very usefull…

Enjoy !

@mrhk13 's method works well if using Firefox. But we cannot use this if we would like to write a plugin. I found some Python script named streamsearch.py which finds all the streams for a given TuneIn URL (works on Ubuntu 16.04):


Use from commandline: ./streamsearch.py URL

URL to test, for example:



import urllib.request
import json
import re
import sys

url1 = str(sys.argv[1])
print(‘ERROR.\nUsage: StreamSearch.py http://tunein.com/radio/…’)

if not url1.startswith(“http://tunein.com/radio”):
print(‘ERROR.\nUsage: StreamSearch.py http://tunein.com/radio/…’)

result = str(urllib.request.urlopen(url1).read())
url2 = result.split(‘StreamUrl’)[1].split(’","’)[0].replace(’":"’,‘http:’)
result = str(urllib.request.urlopen(url2).read())[15:-3]
result = json.JSONDecoder().decode(result)

for obj in result:
print(“URL :”, obj[‘Url’], ‘\n’
“Bitrate:”, str(obj[‘Bandwidth’]), ‘kbps\n’
“Type :”, obj[‘MediaType’], ‘\n’
“Reliab.:”, obj[‘Reliability’], ‘\n’)[/code]

In case of Swiss Jazz, the output of the following command will be:

./streamsearch.py http://tunein.com/radio/Radio-Swiss-Jazz-s6814/

[code]URL : http://stream.srg-ssr.ch/m/rsj/mp3_128
Bitrate: 128 kbps
Type : MP3
Reliab.: 76

URL : http://stream.srg-ssr.ch/m/rsj/aacp_96
Bitrate: 96 kbps
Type : AAC
Reliab.: 99[/code]


Sent from my iPhone using Tapatalk

Hi, I’ve recently migrated over from Pi MusicBox to Volumio… Volumio rocks! The only think I am missing is TuneIn which was on the MusicBox. Would be great to get this feature added - I’m missing my Sunday morning favourite radio station.

I created some Python 3.x script using the RadioTime API. Seems like TuneIn uses this as well, or this is TuneIn’s. You need Python3 OPML plugin which you can install on Linux with sudo pip3 install opml . With this script you can just search for any string, instead of using an existing TuneIn URL.

I just looked at the examples at https://github.com/brianhornsby/plugin.audio.tuneinradio/wiki/RadioTime-API-Methods. Querying too much or too frequent will result in a 403 Forbidden status.

# ToDo: status detection (200, 403, etc)
# Use from commandline: ./streamsearch.py search_query, for example:
# ./streamsearch.py Swiss Jazz

import opml
import sys
import urllib.request

query = ''

args = sys.argv[1:]
if len(args) == 1:
    query = str(args[0])
    for arg in args:
        query = str(query + ' ' + arg)

query = query.strip()

outline = opml.parse('http://opml.radiotime.com/Search.ashx?query=' + query)
print('Searching for \'' + query + '\'. Number of all results: ', len(outline))
print('http://opml.radiotime.com/Search.ashx?query=' + query, '\n')

for item in outline:
    if item.type == 'audio' and item.URL.startswith('http://opml.radiotime.com/Tune.ashx?id=s'):
        result = str(urllib.request.urlopen(item.URL).read())

        print('Station    :', item.text)
        print('Slogan     :', item.subtext)
        print('Bitrate    :', item.bitrate, 'kbps')
        print('Reliability:', item.reliability)
        print('Logo URL   :', item.image)
        print('Query URL  :', item.URL)
        print('Stream URL :', result, '\n')

The search for Swiss Jazz will result in the following output:

Searching for 'Swiss Jazz'. Number of all results:  26
http://opml.radiotime.com/Search.ashx?query=Swiss Jazz 

Station    : Radio Swiss Jazz
Slogan     : Freddy Cole - To Be Or Not To Be In Love
Bitrate    : 128 kbps
Reliability: 73
Logo URL   : http://cdn-radiotime-logos.tunein.com/s6814q.png
Query URL  : http://opml.radiotime.com/Tune.ashx?id=s6814
Stream URL : b'http://stream.srg-ssr.ch/m/rsj/mp3_128\n' 

etc, etc, etc.

Hi all,

I am currently working on a TuneIn plugin for Volumio.

Initial work is available [in my GitHub][github.com/piffio/volumio-plugins/tree/tunein_radio].
Will post an update here once this gets merged into the official plugins repo.

It works well? Can you pass exactly how I install it?

It’s still very much WIP and not functional yet.
I expect I will need roughly another week before I can open a Pull Request and get it approved as plugin.

At that moment it will show up in the plugin sections in your volumio device

A PR has been submitted [here][github.com/volumio/volumio-plugins/pull/156].

Ideally the plugin should be available soon for early testing.
Consider this as the first Beta release, and bug reports are more than welcome

Thanks for the tune in support.
seems to work very well.

no comments yet,
seems to work as expected!


Good to know @dvpaassen, I’m glad it’s working for you!

Shall you encounter any bug / issue, please report it on github: https://github.com/volumio/volumio-plugins/issues