There are a few things you can't do via the JSON-RPC API (at least AFAICT). For example, getting file path information for songs (although GetSongDetails suggests that it can get the file path, it doesn't work, at least not in Frodo). Also, getting playlists doesn't work (I'm talking about file playlists, not the "currently playing" playlist).
But Yatse has access to this information, and it doesn't require any additional server-side code to be installed. How does it do it? I've been tempted to run a packet trace on it, but I thought I'd ask the forum first to see if anybody knows how it's done. Are there undocumented API calls?