Playlist items would previously have been added once for each attempt, due to items being scoped differently than the playlist parsing attempts. Each attempt would add to the playlist every time, since we only returned outside the attempts loop.
+----------------------------------------------------------+
| <-| URLItem <-- URLFromPlaylistItem |
| BaseItem <-| FileItem |
| <-| RadioItem |
++---------------------------------------------------------+