mirror of
https://github.com/KRTirtho/spotube.git
synced 2025-09-12 23:45:18 +00:00
191 lines
9.5 KiB
Plaintext
191 lines
9.5 KiB
Plaintext
---
|
|
layout: "layouts/DocLayout.astro"
|
|
title: Plugin Models
|
|
description: "Different types of objects used in Spotube."
|
|
order: 0
|
|
---
|
|
|
|
## Image
|
|
|
|
Following is the structure of the `SpotubeImageObject`:
|
|
|
|
| Property | Type |
|
|
| -------- | --------------- |
|
|
| width | `int` or `null` |
|
|
| height | `int` or `null` |
|
|
| url | `string` |
|
|
|
|
## User
|
|
|
|
Structure of the `SpotubeUserObject`, which is used to represent a user in Spotube returned by Spotube Plugins.
|
|
|
|
| Property | Type |
|
|
| ----------- | -------------------------------------------------- |
|
|
| id | `string` |
|
|
| name | `string` |
|
|
| externalUri | `string` |
|
|
| images | List of [`SpotubeImageObject`][SpotubeImageObject] |
|
|
|
|
> `externalUri` is a URL that points to the user's profile on the external service (e.g. Listenbrainz)
|
|
|
|
## Artist
|
|
|
|
### SpotubeSimpleArtistObject
|
|
|
|
Following is the structure of the `SpotubeArtistObject`:
|
|
|
|
| Property | Type |
|
|
| ----------- | ------------------------------------------------------------ |
|
|
| id | `string` |
|
|
| name | `string` |
|
|
| externalUri | `string` |
|
|
| images | List of [`SpotubeImageObject`][SpotubeImageObject] or `null` |
|
|
|
|
### SpotubeFullArtistObject
|
|
|
|
Following is the structure of the `SpotubeFullArtistObject`:
|
|
|
|
| Property | Type |
|
|
| ----------- | ----------------------------------------------------- |
|
|
| id | `string` |
|
|
| name | `string` |
|
|
| externalUri | `string` |
|
|
| images | List of [`SpotubeImageObject`][SpotubeImageObject] or |
|
|
| followers | `number` |
|
|
| genres | List of `string` or `null` |
|
|
|
|
## Album
|
|
|
|
### SpotubeSimpleAlbumObject
|
|
|
|
Following is the structure of the `SpotubeAlbumObject`:
|
|
|
|
| Property | Type |
|
|
| ----------- | ---------------------------------------------------------------- |
|
|
| id | `string` |
|
|
| name | `string` |
|
|
| externalUri | `string` |
|
|
| images | List of [`SpotubeImageObject`][SpotubeImageObject] |
|
|
| albumType | `album`, `single` or `compilation` |
|
|
| artists | List of [`SpotubeSimpleArtistObject`][SpotubeSimpleArtistObject] |
|
|
| releaseDate | `string` (YYYY-MM-DD format) or `null` |
|
|
|
|
### SpotubeFullAlbumObject
|
|
|
|
Following is the structure of the `SpotubeFullAlbumObject`:
|
|
|
|
| Property | Type |
|
|
| ----------- | ---------------------------------------------------------------- |
|
|
| id | `string` |
|
|
| name | `string` |
|
|
| externalUri | `string` |
|
|
| images | List of [`SpotubeImageObject`][SpotubeImageObject] |
|
|
| albumType | `album`, `single` or `compilation` |
|
|
| artists | List of [`SpotubeSimpleArtistObject`][SpotubeSimpleArtistObject] |
|
|
| releaseDate | `string` (YYYY-MM-DD format) |
|
|
| totalTracks | `number` |
|
|
| recordLabel | `string` or `null` |
|
|
|
|
## Track
|
|
|
|
Following is the structure of the `SpotubeFullTrackObject`:
|
|
|
|
| Property | Type |
|
|
| ---------------------------- | ---------------------------------------------------------------- |
|
|
| id | `string` |
|
|
| name | `string` |
|
|
| externalUri | `string` |
|
|
| artists | List of [`SpotubeSimpleArtistObject`][SpotubeSimpleArtistObject] |
|
|
| album | [`SpotubeSimpleAlbumObject`][SpotubeSimpleAlbumObject] |
|
|
| durationMs (in milliseconds) | `number` |
|
|
| explicit | `boolean` |
|
|
| [isrc][isrc_wiki] | `string` |
|
|
|
|
> `isrc` stands for International Standard Recording Code, which is a unique identifier for tracks.
|
|
> It is used to identify recordings and is often used in music distribution and royalty collection. The format is typically a 12-character alphanumeric code.
|
|
|
|
## Playlist
|
|
|
|
### SpotubeSimplePlaylistObject
|
|
|
|
Following is the structure of the `SpotubeSimplePlaylistObject`:
|
|
|
|
| Property | Type |
|
|
| ----------- | ------------------------------------------------------------ |
|
|
| id | `string` |
|
|
| name | `string` |
|
|
| description | `string` |
|
|
| externalUri | `string` |
|
|
| images | List of [`SpotubeImageObject`][SpotubeImageObject] or `null` |
|
|
| owner | [`SpotubeUserObject`][SpotubeUserObject] |
|
|
|
|
### SpotubeFullPlaylistObject
|
|
|
|
Following is the structure of the `SpotubeFullPlaylistObject`:
|
|
|
|
| Property | Type |
|
|
| ------------- | ------------------------------------------------------------ |
|
|
| id | `string` |
|
|
| name | `string` |
|
|
| description | `string` |
|
|
| externalUri | `string` |
|
|
| images | List of [`SpotubeImageObject`][SpotubeImageObject] or `null` |
|
|
| owner | [`SpotubeUserObject`][SpotubeUserObject] |
|
|
| collaborators | List of [`SpotubeUserObject`][SpotubeUserObject] or `null` |
|
|
| collaborative | `boolean` |
|
|
| public | `boolean` |
|
|
|
|
## Search Response
|
|
|
|
Following is the structure of the `SpotubeSearchResponseObject`:
|
|
|
|
| Property | Type |
|
|
| --------- | -------------------------------------------------------------------- |
|
|
| albums | List of [`SpotubeSimpleAlbumObject`][SpotubeSimpleAlbumObject] |
|
|
| artists | List of [`SpotubeFullArtistObject`][SpotubeFullArtistObject] |
|
|
| playlists | List of [`SpotubeSimplePlaylistObject`][SpotubeSimplePlaylistObject] |
|
|
| tracks | List of [`SpotubeFullTrackObject`][SpotubeFullTrackObject] |
|
|
|
|
## Browse Section
|
|
|
|
Following is the structure of `SpotubeBrowseSectionObject`:
|
|
|
|
| Property | Type |
|
|
| ----------- | ---------------- |
|
|
| id | `string` |
|
|
| title | `string` |
|
|
| externalUri | `string` |
|
|
| browseMore | `boolean` |
|
|
| items | List of `Object` |
|
|
|
|
The `items` property array can contain multiple type of `Object` in it but it will always be
|
|
|
|
- [`SpotubeFullPlaylistObject`][SpotubeFullPlaylistObject]
|
|
- [`SpotubeFullAlbumObject`][SpotubeFullAlbumObject]
|
|
- [`SpotubeFullArtistObject`][SpotubeFullArtistObject]
|
|
|
|
## Pagination Response
|
|
|
|
`SpotubePaginationResponseObject` is generic model. The `items` property can contain any type of `Object` in it.
|
|
|
|
This is the structure of `SpotubePaginationResponseObject`:
|
|
|
|
| Property | Type |
|
|
| ---------- | ----------------------------------------------- |
|
|
| limit | `number` |
|
|
| nextOffset | `number` or `null` |
|
|
| total | `number` |
|
|
| hasMore | `boolean` |
|
|
| items | List of generic type `T` which extends `Object` |
|
|
|
|
[isrc_wiki]: https://en.wikipedia.org/wiki/International_Standard_Recording_Code
|
|
[SpotubeImageObject]: /docs/reference/models#image
|
|
[SpotubeSimpleArtistObject]: /docs/reference/models#spotubesimpleartistobject
|
|
[SpotubeSimpleAlbumObject]: /docs/reference/models#spotubesimplealbumobject
|
|
[SpotubeUserObject]: /docs/reference/models#user
|
|
[SpotubeFullArtistObject]: /docs/reference/models#spotubefullartistobject
|
|
[SpotubeSimplePlaylistObject]: /docs/reference/models#spotubesimpleplaylistobject
|
|
[SpotubeFullTrackObject]: /docs/reference/models#track
|
|
[SpotubeFullPlaylistObject]: /docs/reference/models#spotubefullplaylistobject
|
|
[SpotubeFullAlbumObject]: /docs/reference/models#spotubefullalbumobject
|