Developers
Add a lightweight, embeddable radio player to your website with the TuneJourney Widget. It streams live stations from around the globe and exposes rich metadata — current station, location, and now-playing info — so you can deeply integrate it into your own site experience.
Integration is free and unlimited. The only requirement is attribution via "Powered by TuneJourney.com," exactly as shown in the embed snippet below.
Widget Builder
Toggle settings below. The live preview and embed snippet update instantly.
Live Preview
<!-- TuneJourney Radio Widget -->
<div id="tunejourney-widget" style="display:inline-block;" data-theme="auto">
<a href="https://tunejourney.com"
target="_blank"
title="TuneJourney - Explore the world through radio"
rel="noopener"
style="font-family:system-ui,sans-serif;font-size:11px;color:#4CB648;text-decoration:none;">
Powered by TuneJourney.com
</a>
</div>
<script src="https://tunejourney.com/widget/v1/embed.js" async></script>Need a pure html/js static integration test page? See /widget/demo.html.
JavaScript API & Live Events
Use events for context updates (location, station metadata) and commands for control.
// Minimal host integration
window.TuneJourney.on("stationChanged", function (payload) {
console.log("Journey:", payload.journey.name, payload.journey.coords);
console.log("Station:", payload.station.name, payload.station.genres);
console.log("Location:", payload.station.location);
});
window.TuneJourney.on("nowPlaying", function (payload) {
console.log("Now playing metadata:", payload.nowPlaying);
});
window.TuneJourney.spin();
window.TuneJourney.pause();
window.TuneJourney.setVolume(0.5);
window.TuneJourney.getState();Live Event Data
Play a station in the widget above. Events received via postMessage will appear here in real time.
Troubleshooting
- Ensure the script source is exactly https://tunejourney.com/widget/v1/embed.js.
- Widget panels (volume, playlists, filters) expand inside iframe space, so the iframe must allow enough vertical room to expand.
- Do not strip iframe sandbox attributes from the generated embed.