Revision history for StreamFinder 1.00 Date/time First version, released on an unsuspecting world. 1.01 2018/08/10 - Fixed issue with some Facebook videos on Youtube. - Removed Tunein as a valid site (can no longer extract streams). 1.02 2019/01/31 - Make StreamFinder::Youtube the default and handle pretty much anything youtube-dl handles, ie. brighteon, vimeo, etc. 1.03 2019/08/15 - Fix StreamFinder::Reciva now failing to connect to server (added wget as fallthrough as LWP::UserAgent and curl fail with unsupported SSL protocol errors). - Fix StreamFinder.IHeartRadio now failing to grab images / icons. - Strip off "?autoplay=true" from StreamFinder::Youtube urls. - Minor doc fixes. 1.04 NOT RELEASED - Make debug option work for all stream types, and allow specifying as either "debug", "-debug", "debug => 1", or "-debug => 1" in parameter list for new() (ie. my $station = new StreamFinder($url, -debug => 1); - Better handle ".m3u8" streams returned by brighteon.com (Youtube). 1.05 2019/09/03 - Add StreamFinder::BannedVideo (https://banned.video/) to handle their video streams (which youtube-dl doesn't currently handle). 1.10 2019/09/07 - Add user-configuration files (~/.config/StreamFinder/config, ~/.config/StreamFinder//config (see docs). User can now specify / override most LWP::UserAgent options, ie. "agent", "timeout", etc. in the new configuration files. User must create these files, if needed with a text editor. - Greatly reduce falling back to wget by adding default user-agent and checking for wget availability. Specify an "agent" => "your agent" line in the user-configuration file to change. - Add "-random" and "-noplaylists" options to $station->getURL() (see docs) - StreamFinder::BannedVideo: Add "-keep" option to better control type and order of streams returned (see docs). - StreamFinder::Facebook: Depreciated ~/.config/.fbdata for new user-configuration files. - StreamFinder::IHeartRadio: Add podcast-playing capability. - StreamFinder::IHeartRadio: Depreciated old stream order options, replacing them with new -keep and -skip arguments and configuration file entries. - StreamFinder::RadioNet: (https://www.radio.net/) ADDED - StreamFinder::Tunein: RESTORED (now uses StreamFinder::Youtube for stream fetching), but adds metadata loading (which youtube-dl does not currently fetch for these streams. - StreamFinder::Youtube: Better handle "chunky" brighteon.com .m3u8 video streams. Also add "-notitle" option, streamlining use by StreamFinder::Tunein (see docs). 1.11 2019/09/07 - StreamFinder::Youtube: bugfix for brighteon.com m3u8 video URLs. - Docs: fix a cpl. typos, actually include the updated README file. 1.12 2019/09/10 - StreamFinder::Tunein: Add podcast-playing capability. (Will look for "playUrl" before falling back to youtube-dl for stream). - StreamFinder::Reciva: Fix to make LWP::Useragent fetch reciva URLs using the ANCIENT TLSv1 to allow to work without falling back to wget. See the StreamFinder::Reciva docs for creating a one-line custom config file to do this - I didn't make it the default since they could FIX this at ANY time, which would break things! - Add URI::Escape and HTML::Entities as DEPENDENCIES - in order to ensure that the returned stream titles are un-escaped. - Fix $station->getID('fcc') to work properly (return the station's FCC call-letters for sights and stations that support it. - Set $station->{artist} and $station->{year} where applicable. - Minor doc updates. - Fix some sight-specific submodules to properly accept just a station / video ID rather than a full URL (see docs). - Add "desc" option go getTitle() to fetch station's (long) description (for sites that provide that field), otherwise, the title is returned. 1.13 2019/09/11 - Fix missing (recently-added) file (RadioNet.pm) in MANIFEST file. - More doc. fixes, mostly to the individual submodules. 1.20 2019/09/16 - Removed usage and all references to WWW::Youtube::Download - This module no longer fetches the "author" (Youtube user) nor does anything else we can't more easily do manually. - StreamFinder::Apple: (podcasts.apple.com) ADDED! - StreamFinder::Brighteon: (brighteon.com) ADDED (split off from StreamFinder::Youtube). - StreamFinder::Vimeo: (vimeo.com) ADDED (split off from StreamFinder::Youtube. We separated these for better support - ie. ability to get the "author" fields and access some additional streams. We also can often avoid having to call youtube-dl. - StreamFinder::Youtube: Removed "notitle" option, added "fast" option, and add "description" field fetch to youtube-dl. Fixed url-fetching order to call youtube-dl FIRST to prevent infinite stall if called with an already-valid stream-url (Fauxdacious mediaplayer). StreamFinder::IHeartRadio - Fix sometimes-corrupted ID field. StreamFinder::Reciva - Fix failure to always capture ID field if given wrongly-formatted full url. - Add $station->{'genre'} field to IHeartRadio, RadioNet, Reciva, and Tunein (the sites that support it). - Various small code and doc. tweaks / cleanups. - DEBUG was accidently left set to ON, now turned OFF by default! 1.21 2019/09/18 - Significant documentation improvements & polishing. - StreamFinder::BannedVideo: Fix incorrect IDs returned. - StreamFinder::Tunein: (new()) - Fix mishandled URL if only station-ID specified (non-full URL). - StreamFinder::Apple: (new()) - Handle if only podcast-ID specified. 1.22 2019/10/07 - Minor bugfixes, namely handling double-quotes in titles in some submodules. - Minor doc. improvements. 1.23 2019/11/02 - StreamFinder::BannedVideo: Fix to handle change in their site - to execute extra step now needed for infowarsmedia.com videos and make the retrieved mp4 stream the "best" stream. 1.24 2019/11/06 - StreamFinder::Youtube: Eliminate express page scan for metadata for non-Youtube sites processed to prevent ocassional infinite loop caused by attempting to scan a media stream instead of a website. - Unescape HTML entities in the Genre string in Reciva & Tunein. - Minor doc. improvements. 1.25 2019/11/08 - StreamFinder::Brighteon: Fix another site-change that caused blank titles to be returned, and broaden title and description searching ability. 1.26 2019/11/19 - Correctly handle "HOME" directory in M#-Windows. - StreamFinder::IHeartRadio - Handle non-US site URLs. Change default "keep" priority to "secure_shoutcast, shoutcast, secure, any" for easier use by Fauxdacious. 1.27 2020/04/23 - Added StreamFinder::Spreaker for https://widget.spreaker.com podcasts. - Minor doc. improvements. 1.28 2020/04/25 - Fix failure to include StreamFinder::Spreaker in MANIFEST and to update change log.