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 numeric "station ID" in the address bar from any broadcast.radio page. Within this article, wherever you see {stationId} then you should use the number - for example in this article we are using station 8:
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.
API Server URL
The API is available via https only via the URL:
https://api.broadcast.radio
API methods:
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.