beetbox / beetbox/aura

Expose playlists

Open
#31 0 comments 1 reaction 0 assignees View on GitHub
Dominant language
JavaScript
Stars
77
Forks
9
PR merge metrics
No merged PRs in 30d

Description

The queries used to generate playlists are often specific to the underlying audio library contents (since they likely depend on specific plugins that were used to import the audio data into the library). Correspondingly, it would make sense to maintain playlist generation logic also within the audio library along with the audio files.
Also, I think it would be beneficial to make playlist serving a core feature of the AURA API (as opposed to implementing that as an extension) so that clients can support playlist browsing consistently.

Thus, I propose to add two new GET endpoints to the AURA API that each return a JSON response:
* `/aura/playlists` to list the available playlists (only their IDs really).
* `/aura/playlists/{id}` to list the tracks contained within a particular playlist (specified by path param) using the same response format as the `/aura/tracks` endpoint.

Example response body of the `/aura/playlists` endpoint:
```json
{
"data": [
{
"id": "id1",
"name": "Jazz",
},
]
}
```

Example response body of the `/aura/playlists/{id}` endpoint:
```json
{
"data": [
{
"title": "Bag's Groove",
"artist": "Miles Davis",
...
},
...
]
}
```

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reading the existing /aura/tracks endpoint and its response format. Define how playlist data is exposed through /aura/playlists and /aura/playlists/{id}, then verify that both endpoints return the proposed JSON structures and that the latter lists tracks consistently with /aura/tracks.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript
Domain
api, backend
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.