Smart Playlists

Note : any actions that modify criterias set in any way (add/edit/remove criterias, change active set, etc.) will trigger a smart playlist regeneration

Types of criterias

Expected values

  • Types 1 to 999 take tag ID numbers
  • Types 0, 1000, and 1004 take strings
  • Type 1006 takes either MISSING, DOWNLOADED or DOWNLOADING (but why would you want to blacklist downloaded or downloading songs?)
  • Type 1001 takes karaoke ID numbers
  • Types 1002, 1003 take numeric values.

Types description

  • 0 : Ban on year.
  • 1 : Ban on series.
  • 2 : Ban on singer.
  • 3 : Ban on songtype.
  • 4 : Ban on creator.
  • 5 : Ban on language.
  • 6 : Ban on author
  • 7 : Ban on misc tags
  • 8 : Ban on songwriter
  • 9 : Ban on downloadable groups
  • 10 : Ban on family
  • 11 : Ban on origin
  • 12 : Ban on genre
  • 13 : Ban on platform
  • 14 : Ban on version
  • 15 : Ban on warning
  • 16 : Ban on collection
  • 1000 : Ban on series' name. Example : Gundam will ban Mobile Suit G Gundam and Gundam SEED
  • 1001 : Ban on exact karaoke ID. Used to ban specific karaoke songs. Value should contain a single karaoke ID.
  • 1002 : Ban song if longer than xx seconds.
  • 1003 : Ban song if shorter than xx seconds.
  • 1004 : Ban on song title's name. Example : Mambo will ban Mahoro de Mambo and any other song containing Mambo
  • 1005 : Ban on the tag's name. Example : Nana will ban all songs with a tag containing Nana
  • 1006 : Ban on download status

Empty criterias

emptyCriterias Operator user required Frontend can be closed, restricted or open

Empty criterias for a playlist

Request
{
    plaid: 'abcdefgh'
}

No message is sent, promise is simply resolved.

Response
{
    code: 500,
    message: {
        code: 'CRITERIAS_EMPTY_ERROR'
    }
}
Response
{
    code: 404,
    message: {
        code: 'CRITERIAS_EMPTY_ERROR',
        data: 'Playlist unknown'
    }
}

Get list of criterias

getCriterias Operator user required Frontend needs to be open

List all criterias from a specific smart playlist

Request
{
    plaid: 'abcdefghj'
}
Response
[
    {
        "type": 6,
        "value": "500030d3-8600-4728-b367-79ff029ea7c9",
        "value_i18n": "Jean-Jacques Debout",
        "plaid": "abcdefghj"
    }
]

Response
{
    code: 500,
    message: {
        code: 'CRITERIAS_VIEW_ERROR'
    }
}

Add criterias

addCriterias Operator user required Frontend needs to be open

Add new criterias to a specific smart playlist

Request
[
    {
        "type": 6,
        "value": "500030d3-8600-4728-b367-79ff029ea7c9",
        "value_i18n": "Jean-Jacques Debout",
        "plaid": "abcdefghj"
    }
]

Simply returns

Response
{
    code: 400,
    message: {
        code: 'CRITERIA_ADD_ERROR'
    }
}
Response
{
    code: 404,
    message: {
        code: 'CRITERIA_ADD_ERROR'
    }
}
Response
{
    code: 500,
    message: {
        code: 'CRITERIA_ADD_ERROR'
    }
}

Delete criteria

removeCriterias Operator user required Frontend needs to be open

Remove criterias

Request
[
    {
        "type": 6,
        "value": "500030d3-8600-4728-b367-79ff029ea7c9",
        "value_i18n": "Jean-Jacques Debout",
        "plaid": "abcdefghj"
    }
]

Request simply returns.

Response
{
    code: 404,
    message: {
        code: 'CRITERIA_DELETE_ERROR'
    }
}
Response
{
    code: 500,
    message: {
        code: 'CRITERIA_DELETE_ERROR'
    }
}

Create problematic Smart Playlist

createProblematicSmartPlaylist Operator user required Frontend can be closed, restricted or open

This creates a smart playlist with only problematic tags inside (like R18, Spoiler, etc.)

This route is only used on the app's first run after setup is complete and all songs and tags have been downloaded.

Response
{
    code: 500,
    message: {
        code: 'BLC_PROBLEMATIC_SET_ERROR'
    }
}