player: add event polling
player.playlist -> player.playlist()