StreamFinder

 view release on metacpan or  search on metacpan

Changes  view on Meta::CPAN

        recent changes in their site (more stupid javascripting).
        - StreamFinder::PodcastAddict - Mark DEPRECIATED since they recently 
        javascripted & crapped up their podcast pages making it now impossible 
        to fetch a playlist or first episode from them (correct episode pages 
        still seem to work for now, if you get them from your browser first).
2.17    2023/08/25
        - StreamFinder::Rumble - Further Cleanup artist and description fields 
        of excess leading & trailing spacing likely introduced by possible 
        tweaks in their site.  This issue was causing Fauxdacious mediaplayer 
        to fail to properly load display metadata for Rumble streams.
2.18    2023/09/04
        - StreamFinder::Anystream - Add -maxstreams option to limit number of 
        streams that can be returned - some sites contain tons.  Also 
        add ability to fetch additional metadata (ie. iconurl, description, 
        channel (artist), etc. from sites that contain them in standard HTML 
        <meta> tags.  One site that does is:  www.theepochtimes.com/epochtv
        - StreamFinder::Goodpods - REMOVED due to them javascripting up their 
        site to where it's no longer possible to scrape any streams.
2.19    2023/09/12
        - StreamFinder::Youtube - 1) Fix failure to fetch artist, icon, etc. 
        sometimes on embedded IFRAME urls (slight site changes) and first 
        episode from some channels.  2) Add -youtube-site argument to specify 
        a different default youtube site (default https://www.youtube.com).  
        3) Add ability to parse youtube channel URLs containing an at-sign, 
        ie.: https://www.youtube.com/@channelID.
        - StreamFinder::Subsplash - Restore as EXPERIMENTAL, as this site 
        seems to now work again, at least for audio streams on some sites.
        - StreamFinder::Anystream - doc. touchups.
2.20    2023/10/24
        - Update default user-agent to:
        "Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/115.0"
        - StreamFinder::Apple - Handle "embedded" Apple podcasts 
        (https://embed.podcasts.apple.com/).  Also fix embedded 
        subsplash.com stream URLs that contain "\u00##" characters and were 
        being trimmed when encountered.
        - StreamFinder::Rumble - Convert one of their hosting sites that no 
        longer works (hugh.cdn.rumble.cloud/video) to the standard one that 
        still does (sp.rmbl.ws).
        - StreamFinder::Youtube - Try harder to get the first (most recent) 
        video from channel pages (by skipping any "banner" video before it).
2.21    2023/11/16
        - StreamFinder::Anystream - Handle "escaped" URLs embedded in some 
        sites, ie. crap like:  https:\/\/stupidsite\u002fstream.mp3 and ones 
        that start with "//", ie. "//stupidsite/stream.mp3".
        - StreamFinder::Bitchute - Fix failure to fetch artist and albumartist 
        (channel name and page URL) due to a slight tweak to their site.
        - StreamFinder::Brighteon - Hide extraneous debug message (when not 
        running in debug mode).
        - StreamFinder::Rumble - Warn if had to convert new "bad" site:
        "hugh.cdn.rumble.cloud.video" to "sp.rmbl.ws".
        Also:  try harder to fetch artist, albumartist, and icon (from "embed" 
        URLs), since some channels allow public access to the "embed" version 
        of their URLs but NOT always to their main (html) ones (go figure).
2.22    2024/01/20
        - Remove StreamFinder::LinkTV (site no longer hosts videos onsite).
        - Mark StreamFinder::SoundCloud DEPRECIATED (now requires cookies and 
        trackers to be enabled onsite to browse, but song URLs still work here.
        - Minor module doc touchups (to note recent depreciations, etc.)
        - StreamFinder::Rumble - Add -bitrate (max kbps) option.
2.23    2024/01/28
        - StreamFinder::Rumble - Stop converting Rumble's "new" streaming URLs 
        to their "old" format (initiated by v2.20) since the new URLS now seem 
        to work properly and Rumble seems to be bandwidth-throttling the old 
        ones, I assume to force usage of the new ones and close the old hosts.
        - StreamFinder::Bitchute - Silence cpl. stray debug messages when 
        debug mode is not on.
        - Update copyright year to 2024.
2.30    2024/04/25
        - StreamFinder::Castbox - Refactor to scrape episode data from the 
        podcast page as now Castbox episode pages are no longer scrapable 
        (now dynamically generated by javascript), but for now, all required 
        episode data is embedded in the corresponding podcast page (for now).
        Also now append "lyrics" (transcript) to the "description" field (for 
        Fauxdacious, etc.) for Castbox pages that provide this in a "lyrics" 
        (.lrc) link!
        - StreamFinder::Google - REMOVED since Google has officially closed 
        down it's podcast service.
        - StreamFinder::Podchaser - Fix failure to fetch episode data for the 
        first episode (when a podcast page given) and failure to fetch all due 
        to minor changes in their site.
        - StreamFinder::Spreaker - Refactor since Spreaker has now javascripted 
        and cookied up their pages, but we're still able to scrape it's podcast 
        pages for podcast metadata, required playlist data and 1st episode ID, 
        and they provide a separate api site for fetching all episode data when 
        given the episode-ID.
        - StreamFinder::Subsplash - Fix extraction of the artist & album fields 
        due to minor changes in their site.  Also add missing "Url" (first 
        stream) field (not required for fetching streams).
2.31    2024/04/27
        - StreamFinder::Castbox - Document new feature (in v2.30) that appends 
        any transcript (.lrc) link into the "description" field.
        - StreamFinder::Podchaser - Fix failure to fetch the proper iconurl for 
        the first episode and the podcast's album fields when given a podcast 
        URL.
        - docs - Remove StreamFinder::Google (removed in v2.30) from supported 
        podcast list.
2.32    2024/05/18
        - Welcome epochtimes.com/epochtv videos by adding 
        StreamFinder::EpochTV.  Site was previously supported by youtube-dl, 
        but was often missing some metadata & often returned wrong HLS stream 
        quality, particularly for users with limited bandwidth.
2.33    2024/06/03
        - StreamFinder::Brighteon - Redo to handle their redesigned site (which 
        now requires JavaScript in order to view pages).  Channel pages are no 
        longer scrapable (so no more video playlist or fetching latest video), 
        but individual video pages still contain all the same data embedded 
        in Json format (at least for now).
        - StreamFinder::EpochTV - Few minor tweaks to try harder to fetch 
        streams, the artist, the artist's channel icon, and the year.
2.34    2024/07/03
        - StreamFinder::Bitchute - Refactor due to Bitchute's major recent 
        redo of their site (more Javascript & crap), but they have a second 
        site URL (api.bitchute.com) which still works well, so we autoconvert 
        non-working URLs from www.bitchute.com to api.bitchute.com.
2.40    2024/07/26
        - StreamFinder::Youtube - Refactor to add "-format-fallback" option to 
        allow specifying a second "-f <format-string>" option for use if no 
        streams match the "-format" option.  Defaults have been changed from 
        "mp4" to "best", and the "-format-fallback" defaults to "bestaudio".  
        These changes are required after 07/24 due to Youtube making (nearly) 
        all of their public streams either audio-only or video-only, which 
        are pretty much useless for streaming via your own media-player without 
        actually downloading the video (and remuxing to combine the audio and 
        video streams) to a file first!  Note:  The ability to do this is only 
        possible due to the Herculean efforts of the yt-dlp developers and 
        users are strongly encouraged to upgrade to the latest version 
        2024.07.25 to avoid likely just getting audio streams, as the internet 
        continues to get more crapped up and locked down every day. :(
2.41    2024/09/14
        - StreamFinder::AnyStream - Intercept & handle all .m3u8 (HLS) urls 
        in order to apply any "hls_bitrate" option limits and select the 
        highest one from the stream list if the HLS url is a master list.  
        This seems to be necessary as ffmpeg, used in Fauxdacious for HLS 
        streams always seems to select the highest bitrate stream and provided 
        no known argument for limiting stream selection by bitrate.
        - StreamFinder::SermonAudio - Massive redo due to them completely 
        overhauling their site, which now only offers a single video stream 
        in HLS format in place of multiple bitrate choices, obsoleting the 
        "high" and "low" "quality" options.  The choices are now:  "audio" or 
        "any".  Users should now use the "hls_bitrate" option to limit 
        bandwidth for slower internet connections.
        Also add new "nowebp" option to download icon images in their native 
        formats instead of webp (needed by Fauxdacious GTK versions and 
        perhaps others).
        - StreamFinder::Youtube - Change default external Youtube-fetching 
        program from "youtube-dl" to "yt-dlp", as the former may no longer 
        properly handle many youtube streams.
2.42    2024/09/22
        - StreamFinder::SermonAudio - Fix excess padding sometimes left on both 
        sides of Genre text.  Also update copyright year & docs.
        - StreamFinder::Podchaser - Fix failure to fetch failure to fetch 
        episode icon, and sometimes other fields for the latest episode when 
        given a podcast url due to slight changes in their site.
        - StreamFinder - Fix some issues with handling HLS (.m3u8) streams, 
        particularly in StreamFinder::Anystream, but effecting all modules, 
        mostly for better handling by Fauxdacious Mediaplayer and the ffmpeg 
        library when using internet connections with limited bandwidth.  The 
        biggest change is we no longer attempt to parse out HLS master 
        playlists when neither hls_bandwidth (limit) or -noplaylists parameters 
        are set.  Instead, just return the master playlist stream as-is.  This 
        allows for better control over selected streams within bandwidth limits 
        within Fauxdacious itself.  To function the old way, simply specify 
        an hls_bandwidth limit (in the config file) or "-noplaylists => 1".
2.43    - Update copyright year to include 2025
        - StreamFinder::SermonAudio - Fix failure to return description 
        field and sometimes incorrect icon and image URLs due to slight changes 
        to their site.  Also try harder to find description.
2.44    - StreamFinder::Rumble - Add "-order" option & refactor to better deal 
        with their recent addition of m3u8(hls) streams; and, if accepted, 
        force audio-only (aac) stream-option to last (for use if no streams 
        fall within the user's max. bandwidth/quality limit options.  Also 
        exclude their new "video-only" streams ("*.[A-Z]aa.mp4*" urls).
        - StreamFinder::Youtube - Strip "?list=..." part off Youtube video urls 
        to prevent fetch "hanging" issue.
2.45    2025/07/22
        - StreamFinder::Youtube - Add ability to fetch the "New & Improved xxxx 
        Screwed Up" Bitchute streams which can no longer be scraped except by 
        the very latest (version 2025.05.22) of yt-dlp!  We still scrape the 
        Bitchute video page for metadata (so StreamFinder::Bitchute remains 
        the default and best way to fetch Bitchute videos).  NOTE:  Users 
        must *NOT* have the "-youtube" option set to 'No', else Bitchute video 
        streams can no longer be retrieved.  Also, users can no longer supply 
        a Bitchute channel page and get the latest video.  
        Internet Encrapification continues at full speed ahead here in 2025 as 
        more and more streaming sites continue to invest tons of money to 
        hire developers to obfuscate their sites to prevent a handful of users 
        like us avoiding their javascripts, trackers, spam, excess ads, etc. :(
        - StreamFinder::Rumble - Set default "-order" to "quality".
2.46    2025/11/14
        - StreamFinder::Rumble - Add "-notrim" option, and strip off "?ets=..."
        from urls unless set.  Also fix a Perl uninitialized variable warning.
        - StreamFinder::Youtube - Properly strip off excess bs from URLs, such 
        as "&source=..." unless "-notrim" option set.
        Also now search for any Youtube urls embedded in webpages' JSON code 
        as a fallback.  Update copyright year to 2025.
2.47    2026/01/09
        - StreamFinder::Odysee - Fix failure to fetch artist field and streams 
        from their webpages (they've tweaked their site and have added back 
        stream-fetchability directly from their pages).  We also no longer call 
        StreamFinder::Youtube if -youtube => 'no', or if one or more streams 
        are successfully fetched from their webpage(s) and 
        -youtube => 'ifneeded' (how it was meant to work).
        - StreamFinder::Rumble - Fix failure to fetch artist name and full 
        description text (slight changes in their site).  Also reject streams 
        named "*.[A-Z]aa.rec.{mp4|webm}" as these seem to be video-only / 
        "dash"? streams, and any stream with non-numeric "quality" (except 
        "hls" or "auto" (ie. "timeline", "pause_ads_params", etc. as these are 
        not real streams.
        - StreamFinder::Youtube - Fix sometimes failure to fetch the proper 
        image URL and/or the youtube video-url often embedded in many Odysee 
        videos as the last line of their description via StreamFinder::Odysee.
        Also allow the -format-fallback option to be set to "" or 0 to allow 
        fallback to any available format (no -f option appended to yt-dlp or 
        youtube-dl) - unless -formatonly option is set.
2.50    2016/01/29
        - Add StreamFinder::PragerU to handle www.prageru.com videos.
        - StreamFinder::Subsplash - Refactor to optionally use yt-dlp to fetch 
        video streams (-youtube => {yes|no|first|last|ifneeded}) similar to 
        several of the other fetcher modules, as Subsplash pages pretty much 
        only return audio streams (if at all) without javascripts/cookies now.
        Also fixed & greatly improved metadata fetch from their pages.
        - StreamFinder::Brighteon - Fix failure when -youtube => 'only' is set.
        - StreamFinder::(BitChute,Brighteon,Odysee) - Try harder to get full 
        "description" field, tweak a cpl. regices to better handle non-ascii 
        characters sometimes found in certain text and/or URL fields.
        - StreamFinder::Rumble - Filter out some more now non-playable 
        .mp4/.webm streams from consideration.
        - StreamFinder::Youtube - Prevent sometimes non-URLs being returned as 
        valid streams causing failure to fallback to StreamFinder::Anystream 
        when no valid streams found.
2.51    2016/01/31
        - StreamFinder::EpochTV - Fix returning mostly invalid stream URLs.
        Also add "-speakericon" (boolean) to return artist's icon instead of 
        the default channel icon (EpochTV offers separate ones, like 
        StreamFinder::SermonAudio).
        Also improved several other metadata values returned.
        - StreamFinder::Bitchute - Change default -youtube value from "no" to 
        "yes" as yt-dlp is now required to fetch Bitchute streams.  Also 
        clean up code & docs a bit.
        StreamFinder::(Anystream,Subsplash) - Touch up docs a bit.
2.60    2016/02/07
        - Did a quick test of all StreamFinder modules to see if they still 
        work (many I haven't used in ages, and sites change!).  Results below:
        - StreamFinder::BrandNewTube - Refactor to work again after 
        brandnewtube.com became onevsp.com and ugettube.com closed up shop.



( run in 0.538 second using v1.01-cache-2.11-cpan-39bf76dae61 )