UNPKG

fruit-company

Version:
165 lines (164 loc) 5.06 kB
import { MusicArtwork, MusicEditorialNotes, MusicPlayParameters, MusicPreview, MusicRelationship, MusicResource, UnknownMusicResource } from "./base"; /** * A specific audio variant for a song. */ export type SongAudioVariant = 'dolby-atmos' | 'dolby-audio' | 'hi-res-lossless' | 'lossless' | 'lossy-stereo'; /** * A Recording Industry Association of America (RIAA) rating. */ export type SongContentRating = 'clean' | 'explicit'; /** * The attributes for a song resource. */ export interface SongAttributes { /** * The name of the album the song appears on. */ readonly albumName: string; /** * The artist’s name. */ readonly artistName?: string; /** * (Extended) The URL of the artist for the content. */ readonly artistUrl?: string; /** * The album artwork. */ readonly artwork: MusicArtwork; /** * (Classical music only) The name of the artist or composer to attribute the song with. */ readonly attribution?: string; /** * (Extended) Indicates the specific audio variant for a song. */ readonly audioVariants?: SongAudioVariant[]; /** * The song’s composer. */ readonly composerName?: string; /** * The Recording Industry Association of America (RIAA) rating of the content. * No value means no rating. */ readonly contentRating?: string; /** * The disc number of the album the song appears on. */ readonly discNumber?: number; /** * The duration of the song in milliseconds. */ readonly durationInMillis: number; /** * The notes about the song that appear in the Apple Music catalog. */ readonly editorialNotes?: MusicEditorialNotes; /** * The genre names the song is associated with. */ readonly genreNames: string[]; /** * Indicates whether the song has lyrics available in the Apple Music catalog. */ readonly hasLyrics: boolean; /** * Indicates whether the response delivered the song as an Apple Digital Master. */ readonly isAppleDigitalMaster: boolean; /** * The International Standard Recording Code (ISRC) for the song. */ readonly isrc?: string; /** * (Classical music only) The movement count of the song. */ readonly movementCount?: number; /** * (Classical music only) The movement name of the song. */ readonly movementName?: string; /** * (Classical music only) The movement number of the song. */ readonly movementNumber?: number; /** * The localized name of the song. */ readonly name: string; /** * When present, this attribute indicates that the song is available to play * with an Apple Music subscription. The value map may be used to initiate playback. * Previews of the song audio may be available with or without an Apple Music subscription. */ readonly playParams?: MusicPlayParameters; /** * The preview assets for the song. */ readonly previews: MusicPreview[]; /** * The release date of the song, when known, in YYYY-MM-DD or YYYY format. * Prerelease songs may have an expected release date in the future. */ readonly releaseDate?: string; /** * The number of the song in the album’s track list. */ readonly trackNumber?: number; /** * The URL for sharing the song in Apple Music. */ readonly url: string; /** * (Classical music only) The name of the associated work. */ readonly workName?: string; } /** * The relationships for a song resource. */ export interface SongRelationships { /** * The albums associated with the song. By default, albums includes identifiers only. * * Fetch limits: 10 default, 10 maximum */ readonly albums: MusicRelationship<UnknownMusicResource>; /** * The artists associated with the song. By default, artists includes identifiers only. * * Fetch limits: 10 default, 10 maximum */ readonly artists: MusicRelationship<UnknownMusicResource>; /** * The composers for a catalog song. */ readonly composers: MusicRelationship<UnknownMusicResource>; /** * The genres associated with the song. By default, genres is not included. * * Fetch limits: None */ readonly genres: MusicRelationship<UnknownMusicResource>; /** * Library song for a catalog song if added to library. */ readonly library: MusicRelationship<UnknownMusicResource>; /** * Music videos for a catalog song. */ readonly "music-videos": MusicRelationship<UnknownMusicResource>; /** * The station associated with the song. By default, station is not included. * * Fetch limits: None */ readonly station: MusicRelationship<UnknownMusicResource>; } /** * A resource object that represents a song. */ export interface SongResource extends MusicResource<SongAttributes, SongRelationships> { }