Lets the global player play a Bandcamp release with its own controls and list a YouTube playlist's tracks. This module types what the Bandcamp and YouTube routes return to it.
Returned by GET /api/remote/bandcamp for a Bandcamp album or track page,
when the native player plays it.
- artist: string
- artworkUrl: string
- itemType: "album" | "track"
-
resolvedAt: number
When the stream URLs were fetched, in epoch ms. The player resolves the page again once they are old enough to have expired.
- sourceUrl: string
- title: string
- tracks: TralbumTrack[]
Listed by a Tralbum, in the release's order.
-
capped: boolean
Set when Bandcamp capped its free plays, so it may serve only a clip.
-
duration: number
In seconds, with a fraction.
-
index: number
The track's position in the release's list. The player keeps it, with the page URL, to resolve the track again once its stream URL expires.
-
streamUrl: string | null
A signed URL that expires. Null when the track can't be played.
-
streamable: boolean
False for preorder, unreleased and still-encoding tracks. They stay in the list so that the numbering matches the release, but the player skips them.
- title: string
- trackNum: number
Returned by GET /api/remote/youtube to the player, which shows the
titles and lengths of a playlist embed's videos, since the embed exposes
neither.
Listed by a YouTubePlaylist, in the playlist's order.
-
duration: number
In seconds.
- title: string
- videoId: string
Usage
import * as mod from "shared/player.ts";