Child
A media.
Opensubsonic:
{
  "id": "082f435a363c32c57d5edb6a678a28d4",
  "parent": "e8a0685e3f3ec6f251649af2b58b8617",
  "isDir": false,
  "title": "\"polar expedition\"",
  "album": "Live at The Casbah - 2005-04-29",
  "artist": "The New Deal",
  "track": 4,
  "year": 2005,
  "coverArt": "mf-082f435a363c32c57d5edb6a678a28d4_6410b3ce",
  "size": 19866778,
  "contentType": "audio/flac",
  "suffix": "flac",
  "starred": "2023-03-27T09:45:27Z",
  "duration": 178,
  "bitRate": 880,
  "bitDepth": 16,
  "samplingRate": 44100,
  "channelCount": 2,
  "path": "The New Deal/Live at The Casbah - 2005-04-29/04 - \"polar expedition\".flac",
  "playCount": 8,
  "played": "2023-03-26T22:27:46Z",
  "discNumber": 1,
  "created": "2023-03-14T17:51:22.112827504Z",
  "albumId": "e8a0685e3f3ec6f251649af2b58b8617",
  "artistId": "97e0398acf63f9fb930d7d4ce209a52b",
  "type": "music",
  "mediaType": "song",
  "isVideo": false,
  "bpm": 134,
  "comment": "This is a song comment",
  "sortName": "Polar expedition",
  "musicBrainzId": "189002e7-3285-4e2e-92a3-7f6c30d407a2",
  "isrc": [
    "USSM18300073",
    "DELV42300297",
    "DEE868300011",
    "DEE868300007"
  ],
  "genres": [
    {
      "name": "Hip-Hop"
    },
    {
      "name": "East coast"
    }
  ],
  "artists": [
    {
      "id": "ar-1",
      "name": "Artist 1"
    },
    {
      "id": "ar-2",
      "name": "Artist 2"
    }
  ],
  "displayArtist": "Artist 1 feat. Artist 2",
  "albumArtists": [
    {
      "id": "ar-6",
      "name": "Artist 6"
    },
    {
      "id": "ar-7",
      "name": "Artist 7"
    }
  ],
  "displayAlbumArtist": "Artist 6 & Artist 7",
  "contributors": [
    {
      "role": "composer",
      "artist": {
        "id": "ar-3",
        "name": "Artist 3"
      }
    },
    {
      "role": "composer",
      "artist": {
        "id": "ar-4",
        "name": "Artist 4"
      }
    },
    {
      "role": "lyricist",
      "artist": {
        "id": "ar-5",
        "name": "Artist 5"
      }
    },
    {
      "role": "performer",
      "subRole": "Bass",
      "artist": {
        "id": "ar-5",
        "name": "Artist 5"
      }
    }
  ],
  "displayComposer": "Artist 3, Artist 4",
  "moods": [
    "slow",
    "cool"
  ],
  "explicitStatus": "explicit",
  "replayGain": {
    "trackGain": 0.1,
    "albumGain": 1.1,
    "trackPeak": 9.2,
    "albumPeak": 9,
    "baseGain": 0
  }
}{
  "id": "082f435a363c32c57d5edb6a678a28d4",
  "parent": "e8a0685e3f3ec6f251649af2b58b8617",
  "isDir": false,
  "title": "\"polar expedition\"",
  "album": "Live at The Casbah - 2005-04-29",
  "artist": "The New Deal",
  "track": 4,
  "year": 2005,
  "coverArt": "mf-082f435a363c32c57d5edb6a678a28d4_6410b3ce",
  "size": 19866778,
  "contentType": "audio/flac",
  "suffix": "flac",
  "starred": "2023-03-27T09:45:27Z",
  "duration": 178,
  "bitRate": 880,
  "bitDepth": 16,
  "samplingRate": 44100,
  "channelCount": 2,
  "path": "The New Deal/Live at The Casbah - 2005-04-29/04 - \"polar expedition\".flac",
  "playCount": 8,
  "discNumber": 1,
  "created": "2023-03-14T17:51:22.112827504Z",
  "albumId": "e8a0685e3f3ec6f251649af2b58b8617",
  "artistId": "97e0398acf63f9fb930d7d4ce209a52b",
  "type": "music",
  "isVideo": false
}| Field | Type | Req. | OpenS. | Details | 
|---|---|---|---|---|
id | string | Yes | The id of the media | |
parent | string | No | The id of the parent (folder/album) | |
isDir | boolean | Yes | The media is a directory | |
title | string | Yes | The media name. | |
album | string | No | The album name. | |
artist | string | No | The artist name. | |
track | int | No | The track number. | |
year | int | No | The media year. | |
genre | string | No | The media genre | |
coverArt | string | No | A covertArt id. | |
size | long | No | A file size of the media. | |
contentType | string | No | The mimeType of the media. | |
suffix | string | No | The file suffix of the media. | |
transcodedContentType | string | No | The transcoded mediaType if transcoding should happen. | |
transcodedSuffix | string | No | The file suffix of the transcoded media. | |
duration | int | No | The duration of the media in seconds. | |
bitRate | int | No | The bitrate of the media. | |
bitDepth | int | No | Yes | The bit depth of the media. | 
samplingRate | int | No | Yes | The sampling rate of the media. | 
channelCount | int | No | Yes | The number of channels of the media. | 
path | string | No | The full path of the media. | |
isVideo | boolean | No | Media is a video | |
userRating | int | No | The user rating of the media [1-5] | |
averageRating | number | No | The average rating of the media [1.0-5.0] | |
playCount | long | No | The play count. | |
discNumber | int | No | The disc number. | |
created | string | No | Date the media was created. [ISO 8601] | |
starred | string | No | Date the media was starred. [ISO 8601] | |
albumId | string | No | The corresponding album id | |
artistId | string | No | The corresponding artist id | |
type | string | No | The generic type of media [music/podcast/audiobook/video] | |
mediaType | string | No | Yes | The actual media type [song/album/artist] Note: If you support musicBrainzId you must support this field to ensure clients knows what the ID refers to. | 
bookmarkPosition | long | No | The bookmark position in seconds | |
originalWidth | int | No | The video original Width | |
originalHeight | int | No | The video original Height | |
played | string | No | Yes | Date the album was last played. [ISO 8601] | 
bpm | int | No | Yes | The BPM of the song. | 
comment | string | No | Yes | The comment tag of the song. | 
sortName | string | No | Yes | The song sort name. | 
musicBrainzId | string | No | Yes | The track MusicBrainzID. | 
isrc | Array of string | No | Yes | The track ISRC(s). | 
genres | Array of ItemGenre | No | Yes | The list of all genres of the song. | 
artists | Array of ArtistID3 | No | Yes | The list of all song artists of the song. (Note: Only the required ArtistID3 fields should be returned by default) | 
displayArtist | string | No | Yes | The single value display artist. | 
albumArtists | Array of ArtistID3 | No | Yes | The list of all album artists of the song. (Note: Only the required ArtistID3 fields should be returned by default) | 
displayAlbumArtist | string | No | Yes | The single value display album artist. | 
contributors | Array of Contributor | No | Yes | The list of all contributor artists of the song. | 
displayComposer | string | No | Yes | The single value display composer. | 
moods | Array of string | No | Yes | The list of all moods of the song. | 
replayGain | ReplayGain | No | Yes | The replaygain data of the song. | 
explicitStatus | string | No | Yes | Returns “explicit”, “clean” or “”. (For songs extracted from tags “ITUNESADVISORY”: 1 = explicit, 2 = clean, MP4 “rtng”: 1 or 4 = explicit, 2 = clean. See albumID3 for albums) | 
OpenSubsonic
New fields are added:
playedbpmcommentsortNamemusicBrainzIdisrcgenresartistsdisplayArtistalbumArtistsdisplayAlbumArtistcontributorsdisplayComposermoodsreplayGainexplicitStatus
Note: All OpenSubsonic added fields are optionals. But if a server support a field it must return it with an empty / default value when not present in it’s database so that clients knows what the server supports.
Note: Even if some added fields may looks duplicated, it’s important to still return the legacy data for compatibility reasons.