rocksky/playlist

app.rocksky.playlist.* — the global, AT-Proto-backed playlists.

Distinct from rocksky/library, whose playlist functions drive the Subsonic/Navidrome library (app.rocksky.library.*).

Writes publish records to the caller’s repo, so they take a token and only appear in reads once the AppView has ingested the commit. Pass "" to omit an optional argument.

Values

pub fn add_songs(
  token: String,
  uri: String,
  songs: List(String),
) -> dynamic.Dynamic

Add songs by their app.rocksky.song AT-URIs. Owner only.

pub fn add_songs_at(
  base: String,
  token: String,
  uri: String,
  songs: List(String),
) -> dynamic.Dynamic

add_songs against a custom AppView endpoint.

pub fn create(token: String, name: String) -> dynamic.Dynamic

Create a playlist. Returns the new record’s uri and cid.

pub fn create_full(
  base: String,
  token: String,
  name: String,
  description: String,
  picture_url: String,
) -> dynamic.Dynamic

create with a description, cover image and custom endpoint.

pub fn get(uri: String) -> dynamic.Dynamic

A single playlist with its tracks.

pub fn get_at(base: String, uri: String) -> dynamic.Dynamic

get against a custom AppView endpoint.

pub fn list(limit: Int, offset: Int) -> dynamic.Dynamic

The playlist catalog.

pub fn list_at(
  base: String,
  limit: Int,
  offset: Int,
) -> dynamic.Dynamic

list against a custom AppView endpoint.

pub fn post(
  nsid: String,
  params_json: String,
  token: String,
) -> dynamic.Dynamic

Escape hatch — any app.rocksky.* procedure whose arguments ride the query string. params_json is a pre-encoded JSON object.

pub fn remove(token: String, uri: String) -> dynamic.Dynamic

Delete a playlist and the caller’s own entries. Owner only.

pub fn remove_track(
  token: String,
  uri: String,
  song_uri: String,
) -> dynamic.Dynamic

Remove a song. Only the repo that added an entry can retract it.

pub fn update(
  base: String,
  token: String,
  uri: String,
  name: String,
  description: String,
  picture_url: String,
) -> dynamic.Dynamic

Rename or re-describe a playlist. Owner only; the AT-URI is unchanged.

Search Document