mopidy-tunein
Mopidy extension for playing music from TuneIn. Listen to the world's radio with 70,000 stations of music, sports and news streaming from every continent.
This product uses TuneIn but is not endorsed, certified or otherwise approved in any way by TuneIn. TuneIn is the registered trade mark of TuneIn Inc.
Installation
Install by running:
python3 -m pip install mopidy-tunein
See https://mopidy.com/ext/tunein/ for alternative installation methods.
Most stations stream MP3, which the GStreamer plugins that Mopidy already
needs can decode. Some stations only stream AAC. To play those, install
gstreamer1.0-plugins-bad or gstreamer1.0-libav, or the packages that hold
these GStreamer plugin sets on your system. If you do not want the AAC
stations at all, see the tunein/formats config value below.
Configuration
The extension is enabled by default when it is installed. Configuration is not required, but you can add this to your Mopidy configuration file:
[tunein]
timeout = 5000
formats = mp3, aac
The following configuration values are available:
tunein/enabled: If the TuneIn extension should be enabled or not. Defaults totrue.tunein/filter: Limit the search results tostationorprogram. Leave it blank to turn off filtering. Defaults to blank.tunein/timeout: Milliseconds before giving up waiting for results. Defaults to5000.tunein/formats: The stream formats to ask TuneIn for, as a comma separated list. TuneIn leaves out the stations that it cannot give you in any of these formats. Defaults tomp3, aac. Set it tomp3if you do not have the GStreamer plugins for AAC. Mopidy plays the MP3 stream of a station when there is one, and uses AAC only for the stations that have no MP3 stream.tunein/location: The place to use for the "Local Radio" category, as a comma separated latitude and longitude pair, e.g.51.5,-0.13. Leave it blank to let TuneIn choose the place from your IP address.
Usage
Browse the "TuneIn" directory to find stations by category, by location, or among the ones that are popular now. TuneIn gives 25 stations at a time, so a category that holds more ends with a "More stations" entry that opens the next 25.
Known issues
The following functionality is not implemented:
- User login and access to saved stations.
Project resources
Development
Set up development environment
Clone the repo using, e.g. using gh:
gh repo clone mopidy/mopidy-tunein
Enter the directory, and install dependencies using uv:
cd mopidy-tunein/
uv sync
Running tests
To run all tests and linters in isolated environments, use tox:
tox
To only run tests, use pytest:
pytest
To format the code, use ruff:
ruff format .
To check for lints with ruff, run:
ruff check .
To check for type errors, use pyright:
pyright .
Making a release
To make a release to PyPI, go to the project's GitHub releases page and click the "Draft a new release" button.
In the "choose a tag" dropdown, select the tag you want to release or create a
new tag, e.g. v0.1.0. Add a title, e.g. v0.1.0, and a description of the changes.
Decide if the release is a pre-release (alpha, beta, or release candidate) or should be marked as the latest release, and click "Publish release".
Once the release is created, the release.yml GitHub Action will automatically
build and publish the release to
PyPI.
Credits
- Original author: Nick Steel
- Current maintainer: Nick Steel
- Contributors
Thanks to Marius Wyss for the original version of this extension, and to Brian Hornsby's XBMC plugin, which it was based on.
Release files for mopidy-tunein 2.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| mopidy_tunein-2.0.0.tar.gz | 30.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| mopidy_tunein-2.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size:52.2 kB
Release files / mopidy_tunein-2.0.0.tar.gz
| Download URL | mopidy_tunein-2.0.0.tar.gz |
|---|---|
| Size | 30.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f74683ca63c7d59852f24b3661afa31303fdbdc1af5d115529fc4003e4fd47a3
|
|
BLAKE2b-256 checksum How to use checksums |
09dcde365d2853799de5fde818bdef77d4bdfc4fd0d518d7ba3b3af612a6c4a2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 14, 2026.
Transparency logRelease files / mopidy_tunein-2.0.0-py3-none-any.whl
| Download URL | mopidy_tunein-2.0.0-py3-none-any.whl |
|---|---|
| Size | 21.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
781262ef7fdcab337f94ca3d0a710a88b5aabb8c17afddcd0df59889c9814aa3
|
|
BLAKE2b-256 checksum How to use checksums |
f911f8178b14ca3b8eacad4a3f792077291bdb765a1b2a74175e0279eea49f76
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 14, 2026.
Transparency log