manifest.json
Rama main · réplica de lectura del repositorio original.
{
"name": "AudioMuse-AI Instant Mix",
"id": "audiomuseai",
"author": "AudioMuse",
"website": "https://github.com/NeptuneHub/AudioMuse-AI-NV-plugin",
"version": "1.0.0",
"description": "Replaces the Instant Mix button with AudioMuse-AI recommendations for similar tracks",
"config": {
"schema": {
"type": "object",
"properties": {
"apiUrl": {
"type": "string",
"title": "AudioMuse-AI API URL",
"description": "Base URL for the AudioMuse-AI server (e.g., http://192.168.3.203:8000).",
"default": "http://192.168.3.203:8000"
},
"apiToken": {
"type": "string",
"title": "API Token",
"description": "Optional Bearer token for AudioMuse-AI API authentication. Leave blank if not required."
},
"server": {
"type": "string",
"title": "Server Name",
"description": "Server name as configured in AudioMuse-AI multi-server setup (e.g. 'Navidrome'). Leave blank if multi-server is not used; the parameter will not be sent."
},
"artistSimilarCount": {
"type": "integer",
"title": "Number of Similar Artists",
"description": "Maximum number of similar artists to request from AudioMuse-AI. Default: 10",
"default": 10,
"minimum": 1,
"maximum": 100
},
"instantMixSource": {
"type": "string",
"title": "Instant Mix Functionality",
"description": "Which AudioMuse-AI similarity engine powers Instant Mix. 'Lyrics by Song' needs the SemGrove index, 'Hyperbolic Similarity' needs the hyperbolic projection and 'DCLAP' needs the CLAP index built in AudioMuse-AI. Default: Similar Song.",
"default": "similarSong",
"oneOf": [
{
"const": "similarSong",
"title": "Similar Song"
},
{
"const": "lyricsBySong",
"title": "Lyrics by Song"
},
{
"const": "hyperbolic",
"title": "Hyperbolic Similarity"
},
{
"const": "dclap",
"title": "DCLAP"
},
{
"const": "songAlchemy",
"title": "Song Alchemy"
}
]
},
"alchemyTemperature": {
"type": "number",
"title": "Temperature",
"description": "Song Alchemy randomness: 0 returns the closest songs, higher values pick more varied songs. Default: 1",
"default": 1,
"minimum": 0,
"maximum": 10
},
"eliminateDuplicates": {
"type": "boolean",
"title": "Eliminate Duplicates",
"description": "Remove duplicate tracks from results. Default: true",
"default": true
},
"radiusSimilarity": {
"type": "boolean",
"title": "Use Radius Similarity",
"description": "Use radius-based similarity algorithm. Default: true",
"default": true
}
}
},
"uiSchema": {
"type": "VerticalLayout",
"elements": [
{
"type": "Group",
"label": "General Configuration",
"elements": [
{
"type": "Control",
"scope": "#/properties/apiUrl"
},
{
"type": "Control",
"scope": "#/properties/apiToken",
"options": {
"format": "password"
}
},
{
"type": "Control",
"scope": "#/properties/server"
}
]
},
{
"type": "Group",
"label": "Song Instant Mix",
"elements": [
{
"type": "Control",
"scope": "#/properties/instantMixSource"
},
{
"type": "Control",
"scope": "#/properties/alchemyTemperature",
"rule": {
"effect": "SHOW",
"condition": {
"scope": "#/properties/instantMixSource",
"schema": {
"const": "songAlchemy"
}
}
}
},
{
"type": "HorizontalLayout",
"rule": {
"effect": "HIDE",
"condition": {
"scope": "#/properties/instantMixSource",
"schema": {
"enum": [
"lyricsBySong",
"hyperbolic",
"songAlchemy"
]
}
}
},
"elements": [
{
"type": "Control",
"scope": "#/properties/eliminateDuplicates"
},
{
"type": "Control",
"scope": "#/properties/radiusSimilarity",
"rule": {
"effect": "HIDE",
"condition": {
"scope": "#/properties/instantMixSource",
"schema": {
"const": "dclap"
}
}
}
}
]
}
]
},
{
"type": "Group",
"label": "Artist Radio",
"elements": [
{
"type": "Control",
"scope": "#/properties/artistSimilarCount"
}
]
}
]
}
},
"permissions": {
"config": {
"reason": "To read plugin configuration in Navidrome UI"
},
"http": {
"reason": "To call AudioMuse-AI API for similar tracks",
"requiredHosts": [
"*"
]
}
}
}