Plaiground logoPlaiground Radio
Free, embeddable station for the Plaiground universe

A cosmic stream for play, music, and motion.

Broadcast a shuffled Plaiground playlist, keep Now Playing fresh for the mobile app, and drop the mini widget anywhere with an iframe.

Now Playing

Plaiground Radio is warming up

Loading Plaiground Radio…

0:000:00

Mobile API

Fetch /api/current for track, artwork, playback state, and station timing.

Embeddable Widget

Use /widget with query params for an expandable, brandable Now Playing module.

Admin Library + Submissions

Upload MP3s, approve submitted music, and manage contact requests from one protected dashboard.

Submit music or request to get on.

Artists, collaborators, and curators can send a track with contact details. Submissions are not published automatically — admins review and approve what joins the playlist.

Recommended upload

MP3, WAV, AAC, or M4A up to 250MB. Add artwork if you want it to show in the widget and full player.

Submission details

Send a track, contact info, and context for the Plaiground team to review.

Developer-ready widget

Embed the Now Playing player anywhere.

The widget is designed for the Plaiground top-of-screen interaction: compact by default, expandable when a user taps it, and safe to drop into a web view or iframe.

Autoplay-ready controls

Theme query params

API for native UI

Iframe embed

<iframe
  src="https://radio.plaiground.co/widget?theme=cosmic&accent=rainbow&radius=24"
  style="width: 100%; height: 220px; border: 0; border-radius: 24px; background: transparent;"
  allow="autoplay"
></iframe>

Customization options

theme: cosmic, transparent, minimal

accent: rainbow, pink, cyan, lime, orange

compact=1: tighter height for small placements

brand=0: hide Plaiground logo when a host app supplies its own brand chrome

radius=24: match the host card radius

Native/mobile API

GET https://radio.plaiground.co/api/current

{
  "track": {
    "title": "...",
    "artist": "...",
    "audioUrl": "...",
    "albumArtUrl": "..."
  },
  "shuffleEnabled": true,
  "loopEnabled": true
}