All bases
MediaPubflow

Music streaming

One customer account. Free, premium, and verified artist are states on that account. An administrator publishes the catalog.

These are example architectures. They are not affiliated with any company or trademark.

Try the flow here. It is a local sketch of the base, not a live account.

Mixes

GET/api/v1/discover/mixes

Standard quality. Two skips on this account.

200 · three mixes for this listener.

Try as

State

Functions

The customer opens the app and sees three mixes made for them.

Apps

A full pack is not available to clone.

  • backend

    Catalog API

    Lists mixes, signs playback, and accepts a release from a verified artist or an administrator.

    Default node-backend

    Can swap node-backend, go-backend, python-backend, rust-backend

  • web

    Web player

    Mixes, now playing, and the shared list.

    Default react

    Can swap react, nextjs

  • mobile

    Mobile player

    The same listener on a phone, including offline when the state is premium.

    Default react-native

    Can swap react-native

Who signs in

  • Customer

    customer

    The person who listens. One login. The plan and the artist check are states on this account.

    • Free

      Granted at signup. Standard quality and two skips.

    • Premium

      Granted after payment. Same customer. Lossless audio and offline listening.

    • Verified artist

      Granted after review. Same customer, unless this base later gives artists their own login.

  • Administrator

    admin

    Runs the catalog. Publishes releases and does not spend the listener skip count.

Policies

  • Skips follow the state

    Free keeps two skips. Premium and verified artist do not.

  • Artist is a state

    Verified artist is granted on the customer. It is not a second login.

  • Audio keys stay on the server

    The client receives a signed address. The audio key is never returned.

API

  • List mixes

    The customer opens the app and sees three mixes made for them.

    GET /api/v1/discover/mixes

    requireAuth · Hosted by Catalog API

    Customer

  • Play this mix

    Asks for a signed address to play. Free keeps a skip count. Premium does not.

    POST /api/v1/streams/token

    requireAuth · Hosted by Catalog API

    Customer

  • Add to a shared list

    Puts the current track on a list the customer owns or shares.

    POST /api/v1/playlists/:id/items

    requireAuth · Hosted by Catalog API

    Customer

  • Publish a release

    Sends a new release into the catalog. A verified artist does this on their own account. An administrator can do it for the catalog.

    POST /api/v1/artist/releases

    requireAuth · Hosted by Catalog API

    Customer · Verified artist · Administrator

What you see

  • Mixes

    • Three mixes for this listener
    • Quality for the current state
    • A way to start playback

    GET /api/v1/discover/mixes

  • Now playing

    • Track name
    • Play and pause
    • Skip, counted only while the state is free

    POST /api/v1/streams/token

  • Shared list

    • The list name
    • The track about to be added
    • A confirm action

    POST /api/v1/playlists/:id/items

  • Artist studio

    • The release title
    • Who is allowed to publish
    • A result after publish

    POST /api/v1/artist/releases

What is stored