API Reference

Audio

Browse audio files and control playback on the device. The phone acts as the media player.

Type Definitions

bash
type Audio {
  id: ID!
  title: String!
  artist: String!
  path: String!
  duration: Int!         # milliseconds
  size: Int!             # bytes
  bucketId: String!
  albumFileId: String!   # use GET /fs?id=<albumFileId> for album art
  createdAt: String!
  updatedAt: String!
  tags: [Tag!]!
}

type PlaylistAudio {
  title: String!
  artist: String!
  path: String!
  duration: Int!         # milliseconds
}

enum MediaPlayMode {
  REPEAT_ALL
  REPEAT_ONE
  SHUFFLE
}

Operations

query

audios

Search audio files. Leave query empty to list all.

bash
query GetAudios($offset: Int!, $limit: Int!, $query: String!, $sortBy: FileSortBy!) {
  audios(offset: $offset, limit: $limit, query: $query, sortBy: $sortBy) {
    id title artist path duration size bucketId albumFileId createdAt
    tags { id name }
  }
}
query

audioCount

Count audio files matching a query.

bash
query GetAudioCount($query: String!) {
  audioCount(query: $query)
}
mutation

playAudio

Start playing an audio file on the device. Adds to playlist if not already present.

bash
mutation PlayAudio($path: String!) {
  playAudio(path: $path) { title artist path duration }
}
mutation

updateAudioPlayMode

Set the playback mode.

bash
mutation UpdateAudioPlayMode($mode: MediaPlayMode!) {
  updateAudioPlayMode(mode: $mode)
}
mutation

clearAudioPlaylist

Clear the current playlist and stop playback.

bash
mutation ClearAudioPlaylist {
  clearAudioPlaylist
}
mutation

deletePlaylistAudio

Remove one track from the playlist by file path.

bash
mutation DeletePlaylistAudio($path: String!) {
  deletePlaylistAudio(path: $path)
}
mutation

addPlaylistAudios

Add up to 1,000 matching audio files to the current playlist.

bash
mutation AddPlaylistAudios($query: String!) {
  addPlaylistAudios(query: $query)
}
mutation

reorderPlaylistAudios

Reorder the playlist by providing an ordered list of file paths.

bash
mutation ReorderPlaylistAudios($paths: [String!]!) {
  reorderPlaylistAudios(paths: $paths)
}