'', 'artist' => '', 'raw' => '', 'listeners' => null, 'live' => bool, 'server' => 'icecast' ] */ interface Provider { /** * Provider id (icecast, shoutcast, ...). * * @return string */ public function id(); /** * Try to fetch now-playing for a station metadata source. * * @param array $source { provider, url, mount } plus 'stream_url' of the primary stream. * @return array|null Normalized payload or null when this provider can't handle it. */ public function fetch( array $source ); }