broadcast.radio users can take advantage of the public API, for example, to embed song information directly onto a website. This page is provided as a reference.
You can find your "station ID" in the address bar from any broadcast.radio page.
Public API
All API endpoints use the JSON format with optional support for JSONP. You can access the API from both a server-side script, and from JavaScript in the web browser.
GET /api/nowplaying/:stationId
Returns the now playing information, and any schedule information.
By default, only a few hours of scheduling information are provided. Set the scheduleLength query parameter to true to access the full weekly schedule.
{ "success": true, "body": { "now_playing": { "stationId": 8, "title": "Non Stop Tunes", "artist": "", "artworkUrl": "/api/image/ae06e77a-6f38-4f91-bf4a-f6705ff70084.png?g=center&w=400&h=400&c=true", "mediaItemId": 51, "mediaItemType": 2, "startDate": "2022-09-06T10:01:39.000Z", "default": true }, "schedule": [ { "start_tza": 1663160400000, "end_tza": 1663182000000, "contentId": 642927816, "assignmentId": 7, "entryId": 8072, "override": false, "stationId": 8, "start_tza_string": "2022-09-14T13:00:00.000Z", "end_tza_string": "2022-09-14T19:00:00.000Z", "start_time_in_station_tz": 1663156800000, "end_time_in_station_tz": 1663178400000, "start_time_local_tza": "2022-09-14T12:00:00.000Z", "end_time_local_tza": "2022-09-14T18:00:00.000Z", "content": [ { "revision": 120381, "contentId": 642927816, "contentType": { "id": 8, "display_name": "Show", "slug": "show", "slug_plural": "shows", "has_slug": true }, "contentTypeId": 8, "authorId": 3, "display_title": "Non Stop Tunes", "parentContentId": null, "status": 1, "excerpt": null, "body": "<!-- wp:paragraph -->\n<p>All the best tunes, all the time!</p>\n<!-- /wp:paragraph -->", "href": "/show/automation/non-stop-tunes", "permalink": "non-stop-tunes", "createdAt": "2021-10-06T13:38:23.000Z", "updatedAt": "2021-10-08T11:12:18.000Z", "meta": null }, { "revision": 180, "contentId": 642927816, "contentType": { "id": 7, "display_name": "Featured Image", "slug": "featuredImage", "slug_plural": "featuredImages", "has_slug": false }, "contentTypeId": 7, "authorId": 1, "display_title": "icon.png", "parentContentId": 769695645, "status": 1, "excerpt": "", "body": "cms-blob_image/png:ae06e77a-6f38-4f91-bf4a-f6705ff70084:center", "href": null, "permalink": null, "createdAt": "2020-08-11T21:23:14.000Z", "updatedAt": "2022-04-21T20:04:03.000Z", "meta": null } ], "current": true } ], "recently_played": [ { "stationId": 8, "title": "Love Shy", "artist": "Kristine Blond", "artworkUrl": "/api/art/image/20171116/images/discogs/158337/1247482237.jpeg.jpg?w=400&h=400&g=center&c=true", "mediaItemId": 13810, "mediaItemType": 7, "startDate": "2022-09-06T09:56:42.000Z" }, { "stationId": 8, "title": "Crash", "artist": "The Primitives", "artworkUrl": "/api/art/image/20171116/images/discogs/1682282/1482914423-5859.jpeg.jpg?w=400&h=400&g=center&c=true", "mediaItemId": 10776, "mediaItemType": 7, "startDate": "2022-09-06T09:54:23.000Z" }, { "stationId": 8, "title": "I Don't Care", "artist": "Fall Out Boy", "artworkUrl": "/api/art/image/20171116/images/discogs/14150249/1568765126-5789.jpeg.jpg?w=400&h=400&g=center&c=true", "mediaItemId": 16540, "mediaItemType": 7, "startDate": "2022-09-06T09:50:55.000Z" } ] } }
GET /api/player/:stationId
Returns the configuration information as used by the Broadcast Radio Player
{ "success": true, "body": { "options": { "style.theme": "default", "style.logo": "cms-blob_image/png:be759809-7bcf-4871-876b-d79ff952792f:center", "site.title": "Purgatory FM", "site.tagline": "It's a Hell Of A Station", "site.contact_email": true, "style.tint_colour": "#ffa600", "app.background_colour": "#000000", "app.secondary_colour": "#ffffff", "app.border_button_colour": "#ffc400", "app.border_icon_colour": "#FFF", "app.logo_url": null, "style.app-icon": "cms-blob_image/png:ae06e77a-6f38-4f91-bf4a-f6705ff70084:center:500:500", "app.social_icon_colour": "#FFFFFF", "app.main_background_colour": "#000000", "app.now_playing_background_colour": "#121212", "app.now_playing_text_colour": "#ffffff", "app.show_contact_button": null, "player.enable": true, "player.artwork.enable": true, "player.nowplaying.enable": true, "player.contact.enable": true, "player.mixcloud.enable": true, "player.logo_override": "cms-blob_image/png:04ec838c-e1f1-45d4-9231-dcb6bc69e40e:center", "social.facebook": "purgatoryfm", "social.twitter": "purgatoryfm", "social.instagram": "purgatory.fm", "player.history.enable": true, "player.background_image": null, "player.schedule.enable": true, "player.schedule.mode": "now-next", "social.mixcloud": "PurgatoryFM", "app.hero_image": "cms-blob_image/png:ecbb9073-5ace-4d7d-b4a0-254652788365:center", "player.defaults.mode": "embed", "player.defaults.size": [ 400, 730, 0 ], "player.defaults.autoplay": true, "player.menu_text_colour": "#FFFFFF", "player.menu_background_colour": "#000000", "player.history.length": 3, "player.background_colour": "#1f1f1f", "player.secondary_colour": "#FFF", "player.tint_colour": "#ffbb00", "app.custom_social": null }, "streams": [ { "id": 10, "stationId": 8, "url": "https://mp3streaming.broadcastradio.com:9112/PG96AAC", "priority": 1, "name": "96k AAC", "app_enabled": false, "player_enabled": true } ], "station": { "id": 8, "customerId": 3, "parentStationId": null, "name": "Purgatory FM", "tagline": "It's a Hell of a station", "timezone": "Europe/London", "domain": "purgatory.broadcast.radio", "website_enabled": false, "voice_enabled": true, "app_enabled": true, "player_enabled": true, "max_live_rooms": 0, "live_room_user_limit": 2, "podcast_quota": 1024, "parent": null, "children": [ { "id": 216, "customerId": 3, "parentStationId": 8, "name": "Purgatory 80s", "tagline": null, "timezone": null, "domain": "purgatory80s.broadcast.radio", "website_enabled": false, "voice_enabled": false, "app_enabled": true, "player_enabled": true, "max_live_rooms": 0, "live_room_user_limit": 2, "podcast_quota": null } ] } } }
Displaying Images
Image URLs are encoded in a special format. As un-friendly as they may look, these links are straightforward to programatically interpret and convert into a real link.
An example of a broadcast.radio Image URL is:
cms-blob_image/png:ae06e77a-6f38-4f91-bf4a-f6705ff70084:center:500:500
When split by a colon, it can be described as
cms-blob_image/png:image-unique-identifier:alignment:width[:height]
If a height is provided, the image will be cropped to the specified dimensions.
The example above can be translated into this URL:
https://brusercontent.broadcast.radio/api/image/ae06e77a-6f38-4f91-bf4a-f6705ff70084.png?g=center&w=500&h=500&c=true
Comments
0 comments
Please sign in to leave a comment.