Changes for version 1.80 - 2021-11-10

  • This turned into a major release with many improvements to handling podcasts, particularly metadata fetching and handling of podcast pages and the multi-episode playlists they can return.
  • Refactor podcast modules to always return full metadata for the first (latest) episode for podcast pages (as if they had been called with the id/URL for the first episode itself - ie. the "description" field, etc. often had that of the podcast page itself instead of that of the first episode). Also have the podcast modules always return a full extended m3u playlist when $podcast->get('playlist') is called. This affects StreamFinder::Apple, ::Castbox, ::Google, and ::Spreaker.
  • Also make "genre" and "year" fields work in all of the above, and ensure the genre and album fields are included in the m3u playlist (#EXTGENRE and #EXTALB lines) in all of the above.
  • Also reverse "artist" and "album" fields in all of the above: I was never sure which field was which for podcasts (as most appear similar) but some actually used them for the artist(s)' names and the podcast name, and we had them reversed.
  • Add new "playlist" option to the $podcast->count() function to return the number of episodes in the playlist instead of the number of streams returned (for the first episode) in all of the above.
  • StreamFinder::Apple - Make podcast pages work again (Apple changed their code some) - episode pages were still working though.
  • StreamFinder::IHeartRadio (Podcasts), ::Tunein (Podcasts), and ::SermonAudio (non-Sermon pages): Add ability to accept podcast pages and return the first (latest) episode when given a podcast page URL: (IHeartRadio returned the oldest (last) one rather than latest (first) due to their podcast pages sometimes having them listed in reverse order. Tunein did not return anything for a podcast page, only for specific podcast episode pages).

Modules

Fetch actual raw streamable URLs from various radio-station, video & podcast websites.
Fetch any raw streamable URLs from an HTML page.
Fetch actual raw streamable URLs from Apple podcasts on podcasts.apple.com
Fetch actual raw streamable URLs from Bitchute.com.
Fetch actual raw streamable URLs from Blogger / Blogspot videos.
Fetch actual raw streamable URLs from Brighteon.com.
Fetch actual raw streamable podcast URLs on castbox.com
Fetch actual raw streamable podcast URLs on google.com
Fetch actual raw streamable URLs from radio-station websites on IHeartRadio.com
Fetch actual raw streamable URLs from Odysee.com.
Fetch actual raw streamable URLs from radio-station websites on radio.net
Fetch actual raw streamable URLs from Rumble.com.
Fetch actual raw streamable URLs on sermonaudio.com
Fetch actual raw streamable URLs on widget.spreaker.com
Fetch actual raw streamable URLs from radio-station websites on Tunein.com
Fetch actual raw streamable URLs from Vimeo.com.
Fetch actual raw streamable URLs from YouTube and others.
Base module containing default methods common to all StreamFinder submodules.