Manage the Producer song library
GuideAvailability varies by operation
These operations are enabled individually and can return 503 until available.
Reads require task:read; writes require task:create. Use resources authorized
for your account. See resource access and recovery.
Song library and versioned changes
Section titled “Song library and versioned changes”GET /api/v1/producer/songs?limit=50 returns {items, nextCursor}. Limits range from 1 to 100.
Pass the returned cursor without decoding it. A page can be shorter than the
limit, or empty, while still having a nextCursor; continue until it is null.
Library metadata includes lastSyncedAt; reading it does not refresh the song
from the generation service.
Changes have two explicit scopes:
| Scope | Request | Behavior |
|---|---|---|
library (default) | PATCH with title, expectedRevision | Changes only your library title |
library (default) | DELETE with expectedRevision | Removes your access, preserving the song |
source | PATCH with expectedVersion and title or privacy | Creates a Task to change the shared song |
source | DELETE with expectedVersion | Creates a Task to verify song deletion |
Use libraryRevision as expectedRevision and version as expectedVersion
from the latest GET. Privacy is private, unlisted, or public and requires
scope="source". In-place changes require management permission; active
dependencies, other customer access, or derived resources can block deletion.
A 409 means the version or resource state changed: read it again before
making a new decision.
A source-change Task with a stale expectedVersion fails with CONFLICT;
read the latest song version before deciding whether to submit a new change.
Active tasks using the same song can delay changes. Unrelated new generation
tasks do not, although older tasks with incomplete input tracking may still
block a change conservatively.
For scope="source", save and reuse Idempotency-Key on PATCH and DELETE to
recover the same Task. Local library edits use revision checking instead. After
an uncertain local response, GET the song before retrying; removing your access
can make that GET return 404.
Playlists and projects
Section titled “Playlists and projects”Create a collection with POST /api/v1/producer/collections, a kind of playlist or
project, and a title of 1–200 characters. Save an Idempotency-Key for
creation; retries return the same collection. List with
GET /api/v1/producer/collections?kind=playlist or kind=project, following nextCursor.
PATCH /api/v1/producer/collections/{id} requires the current version. Supply title,
songIds, or remove=true. songIds replaces the entire ordered member set
and accepts at most 20 unique authorized songs; an empty array clears it.
Deleting a collection does not delete its songs. Changes use version checking;
after an uncertain response, read the collection before retrying. Collections
are platform organization tools and do not promise synchronization elsewhere.