This project offers schema for XML and JSON to describe channels for online radio stations. Note that the formats differ slightly. However, using these formats enables radio stations to automatically broadcast which channels and playlists in different formats an qualities they are offer. At the same time descriptions, artwork and metadata on last playing and number of listerers is being made available.
With approval from SomaFM, these schemas have been derived and fine tuned according to existing XML and JSON data that they already have in use. The schemas are loosly defined so that only the minimal number of parts are required, enabling for a relatively free usage of these schemas. Examples are https://api.somafm.com/channels.xml and https://api.somafm.com/channels.json respectively.
The schemata developed are channels.xsd and channels.json for which the XSD contains annotation and documentation in HTML and SVG can be found in the doc direcory. However these files cannot be browsed from within the GitHub website and must be downloaded first.
Showcases of projects using the content of channel.xsd files are the folling:
- The music server Mopidy has:
- SomaFM backend, see also its GitHub project
- Intergalactic FM backend (under construction, help wanted)
- The home theatre Kodi has:
- SomaFM add-on, see also its GitHub project
- Intergalactic FM add-on, see also its GitHub project
- The music player Clementine, see also its GitHub project, has:
- SomaFM service provider
- Intergalactic FM service provider
Tools that are practical to use in this context are http://jsoneditoronline.org and http://jsonviewer.stack.hu for JSON. At http://json-schema.org the definition of the JSON schema itself can be found. For XML the tool XML Copy Editor http://xml-copy-editor.sourceforge.net might come in handy.
When editing a channels.xml file manually, e.g. for debugging purposes, see http://unixtimestamp.com to get a current timestamp for the updated element in the XML.
This project also provides example XML and JSON files and scripts that validate them against their schema and report on their content. See the directory examples for more. Note that at the moment there are no examples with disassembled last playing information, only with assembled last playing information.
Note that the files .project
and .pydevproject
are toe be used with liclips.