forked from jon/glowers-radio
97 lines
3.7 KiB
Markdown
97 lines
3.7 KiB
Markdown
# glowers-radio
|
|
This repo contains backing information for Glowers Radio.
|
|
|
|
## Format
|
|
The `songs.json` format **is only intended for use for Glowers Radio**, and is effectively a living standard as a result. **Live data may change drastically without warning**
|
|
|
|
If you do wish to use this data for your own purposes, i.e: to make a custom player, you should be caching the songs list so your application has something to fallback to if a breaking change to the format is made.
|
|
|
|
```yaml
|
|
required: [ version, songs ]
|
|
$defs:
|
|
GWRadioURI:
|
|
type: uri
|
|
description: 'A URI that points to the source file. See `GWMediaPlayer.fromURIToAbsolute()` for how to convert to a URL'
|
|
properties:
|
|
version: { type: integer }
|
|
songs:
|
|
items:
|
|
required: [ id, sources ]
|
|
properties:
|
|
id:
|
|
type: string
|
|
tags:
|
|
description: 'A list of tags used for filtering.'
|
|
type: array
|
|
items:
|
|
- const: sus
|
|
description: >-
|
|
Media information will render in the Among Us Font.
|
|
In imposter mode, only songs tagged with sus will be in shuffle
|
|
|
|
- const: niggers
|
|
description: >-
|
|
Media that was originally available through the now-defunct nigge.rs online radio.
|
|
Tagged items may contain the original _nigid and/or _nigkey as metadata
|
|
|
|
$seeAlso:
|
|
- '#/properties/songs/items/properties/metadata/properties/_nigid'
|
|
- '#/properties/songs/items/properties/metadata/properties/_nigkey'
|
|
|
|
- const: splash-song
|
|
description: 'Media that can play on the Glowers Club splash page.'
|
|
|
|
- const: misc
|
|
description: 'Media that does not significantly contain music.'
|
|
|
|
- const: moonman
|
|
description: 'Moonman songs'
|
|
|
|
- regex: '^radio\-media\-style\-[a-z\-]+'
|
|
description: >-
|
|
Used to add or remove styling for a particular song, such as to remove the
|
|
Album Art box or disable background blur.
|
|
|
|
- type: string
|
|
description: 'Tags may also be arbitrary'
|
|
|
|
metadata:
|
|
required: [ title, artist ]
|
|
properties:
|
|
title: { type: string }
|
|
artist: { type: string }
|
|
href:
|
|
description: 'A URL the original source can be found, if known. Link may be dead'
|
|
type: string
|
|
format: url
|
|
_nigid:
|
|
$seeAlso: '#/properties/songs/items/properties/tags/items/1'
|
|
description: 'The original song id from nigge.rs.'
|
|
type: string
|
|
_nigkey:
|
|
$seeAlso: '#/properties/songs/items/properties/tags/items/1'
|
|
description: 'Content of _id from the original nigge.rs song entry.'
|
|
type: string
|
|
sources:
|
|
type: array
|
|
items:
|
|
- required: [ type, url ]
|
|
properties:
|
|
type: { type: string, format: mimetype }
|
|
uri: { "$ref": "#/$defs/GWRadioURI" }
|
|
previews:
|
|
description: >-
|
|
This is an array so GWMediaPlayer can better display videos being played as audio only.
|
|
The first Item is how the MediaItem *should* be displayed, other Items are alternative versions the player may use.
|
|
type: array
|
|
items:
|
|
- properties:
|
|
display_type:
|
|
description: 'Used to determine how the media should be displayed. See GWMediaPlayer.EDisplayType'
|
|
type: string
|
|
uri: { "$ref": "#/$defs/GWRadioURI" }
|
|
type: { type: string, format: mimetype }
|
|
size: { type: string }
|
|
```
|
|
|