Anmelden:     


Forum: VirtualDJ Plugins

Topic: OnlineSource Metadata Mapping and Missing Fields
Hi all,

I am building a VirtualDJ Online Source plugin in C++ for OpenSubsonic and Navidrome.

Short plan:
- Use native OnlineSource fields first (title, artist, genre, length, bpm, year, cover, stream URL).

I need clarification on missing metadata fields and the correct way to expose them in OnlineSource plugins.

Questions:
1. Is there an official mapping table from `IVdjTracksList::add` parameters to browser columns and database tags?
2. Which add parameter should be used for Album, Rating, LastPlay, PlayCount in OnlineSource mode?

3. Is there a supported API to set user rating from an OnlineSource plugin and have it reflected natively in VirtualDJ?
4. If fields are not available in add, is there an extension mechanism (or recommended workaround) besides writing to Comment?


How I think the field names should ideally map:
- uniqueId -> NetSearch ID
- title -> Title
- artist -> Artist
- remix -> Remix
- genre -> Genre
- label -> Label
- comment -> Comment
- coverUrl -> Cover
- streamUrl -> Stream URL
- length -> Length
- bpm -> BPM
- key -> Key
- year -> Year
- isVideo -> Type (Video)
- isKaraoke -> Type (Karaoke)

Missing fields I would like to expose natively:
- Album
- Composer
- Grouping
- Track Number
- Play Count
- First Seen
- Bitrate
- File Size
- Rating or Stars (float, for example 0 to 5)

Minimal code context:
- OnSearch returns tracks via IVdjTracksList::add
- GetStreamUrl resolves per-track stream URL
- Context menu can call server-side rating endpoint (for example setRating.view)

// OnSearch: return one item with native fields only
tracksList->add(
item.id.c_str(),
item.title.c_str(),
item.artist.c_str(),
item.genre.c_str(),
item.serverComment.c_str(),
item.coverUrl.c_str(),
item.lengthSec,
item.bpm,
item.key,
item.year
);



Any guidance from Atomix devs or plugin authors on the official and future-proof mapping would be very helpful.

Thanks.
 

geposted 6 hours ago
Currently these are the only fields available.
I don't think there's any practical workaround to get other data into vdj either.