The begin playback immediately feature needs this to be fixed in order for it to interact properly with Growl/Last.fm
If something asks for metadata that hasn't been read, it gets nothing. This is a problem with playing songs on startup. Growl/Last.fm has no metadata when the song starts.
I suggest adding NSDictionary metadata to PlaylistEntry?, and using that instead of separate strings. Bindings can bind to "metadata.key". However, apps that need the data if it exists can use - (id)metadataForKey:(NSString )key, which would need to be thread safe. It would check a "metadata loaded" flag and load metadata if it is false.