Track

@Serializable
data class Track(externalUrlsString: Map<String, String>, externalIdsString: Map<String, String> = hashMapOf(), availableMarketsString: List<String> = listOf(), val href: String, val id: String, val uri: PlayableUri, val album: SimpleAlbum, val artists: List<SimpleArtist>, val isPlayable: Boolean = true, val discNumber: Int, val durationMs: Int, val explicit: Boolean, val linkedTrack: LinkedTrack? = null, val name: String, val popularity: Double, val previewUrl: String? = null, val trackNumber: Int, val type: String, val isLocal: Boolean? = null, val restrictions: Restrictions? = null, val episode: Boolean? = null, val track: Boolean? = null) : RelinkingAvailableResponse, Playable(source)

Represents a music track on Spotify

Parameters

album

The album on which the track appears. The album object includes a link in href to full information about the album.

artists

The artists who performed the track. Each artist object includes a link in href to more detailed information about the artist.

isPlayable

Part of the response when Track Relinking is applied. If true , the track is playable in the given market. Otherwise false.

discNumber

The disc number (usually 1 unless the album consists of more than one disc).

durationMs

The track length in milliseconds.

explicit

Whether or not the track has explicit lyrics ( true = yes it does; false = no it does not OR unknown).

href

A link to the Web API endpoint providing full details of the track.

id

The Spotify ID for the track.

linkedTrack

Part of the response when Track Relinking is applied and is only part of the response if the track linking, in fact, exists. The requested track has been replaced with a different track. The track in the linkedTrack object contains information about the originally requested track.

name

The name of the track.

popularity

The popularity of the track. The value will be between 0 and 100, with 100 being the most popular. The popularity of a track is a value between 0 and 100, with 100 being the most popular. The popularity is calculated by algorithm and is based, in the most part, on the total number of plays the track has had and how recent those plays are. Generally speaking, songs that are being played a lot now will have a higher popularity than songs that were played a lot in the past. Duplicate tracks (e.g. the same track from a single and an album) are rated independently. Artist and album popularity is derived mathematically from track popularity. Note that the popularity value may lag actual popularity by a few days: the value is not updated in real time.

previewUrl

A link to a 30 second preview (MP3 format) of the track. Can be null

trackNumber

The number of the track. If an album has several discs, the track number is the number on the specified disc.

type

The object type: “track”.

isLocal

Whether or not the track is from a local file.

restrictions

Part of the response when Track Relinking is applied, the original track is not available in the given market, and Spotify did not have any tracks to relink it with. The track response will still contain metadata for the original track, and a restrictions object containing the reason why the track is not available: "restrictions" : {"reason" : "market"}

Constructors

Link copied to clipboard
constructor(externalUrlsString: Map<String, String>, externalIdsString: Map<String, String> = hashMapOf(), availableMarketsString: List<String> = listOf(), href: String, id: String, uri: PlayableUri, album: SimpleAlbum, artists: List<SimpleArtist>, isPlayable: Boolean = true, discNumber: Int, durationMs: Int, explicit: Boolean, linkedTrack: LinkedTrack? = null, name: String, popularity: Double, previewUrl: String? = null, trackNumber: Int, type: String, isLocal: Boolean? = null, restrictions: Restrictions? = null, episode: Boolean? = null, track: Boolean? = null)

Properties

Link copied to clipboard
Link copied to clipboard
@Transient
lateinit var api: GenericSpotifyApi

The API client associated with the request

Link copied to clipboard
Link copied to clipboard

This Playable as a local track, or else null if it is an episode or track.

Link copied to clipboard

This Playable as an episode (podcast), or else null if it is a local track or track.

Link copied to clipboard
open val asTrack: Track?

This Playable as a track, or else null if it is a local track or episode (podcast).

Link copied to clipboard

A list of the countries in which the track can be played, identified by their ISO 3166-1 alpha-2 code.

Link copied to clipboard
@SerialName(value = "disc_number")
val discNumber: Int
Link copied to clipboard
@SerialName(value = "duration_ms")
val durationMs: Int
Link copied to clipboard
val episode: Boolean? = null
Link copied to clipboard
Link copied to clipboard

External IDs for this track.

Link copied to clipboard

Known external URLs for this object

Link copied to clipboard
open override val href: String
Link copied to clipboard
open override val id: String
Link copied to clipboard
@SerialName(value = "is_local")
val isLocal: Boolean? = null
Link copied to clipboard
@SerialName(value = "is_playable")
val isPlayable: Boolean = true
Link copied to clipboard
val length: Int

The track length in milliseconds. Alias of durationMs

Link copied to clipboard
@SerialName(value = "linked_from")
open override val linkedTrack: LinkedTrack? = null
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
@SerialName(value = "preview_url")
val previewUrl: String? = null
Link copied to clipboard
Link copied to clipboard
val track: Boolean? = null
Link copied to clipboard
@SerialName(value = "track_number")
val trackNumber: Int
Link copied to clipboard
open override val type: String
Link copied to clipboard
open override val uri: PlayableUri

The URI associated with the object

Functions

Link copied to clipboard

Check if this response has been relinked.