github babsonnexus/stream-link-manager-for-channels v2026.07.28.1543

3 hours ago

Summary

  • MODIFIED: [SLM] Video and Video Channel Capabilities
  • MODIFIED: [SLM/PLM] Live and Static Video Playback
  • NEW: [PLM] Fallback Station Playlists
  • DEPRECATED: [PLM] '/playlists/streams/youtubelive' Endpoint
  • FIXED: [GEN] Removing all articles for sorting
  • MODIFIED: [GEN/SLM/PLM/MTM] General code and documentation cleanup

MODIFIED: [SLM] Video and Video Channel Capabilities

A massive rewrite and expansion of much of the Video and Video Channel capabilities has been undertaken. All of the changes discussed below make significant headway on #76. Key highlights include:

  • DEPRECATED: Helper program youtube-search-python has been completely removed

    As part of all this, the requirement of locking httpx to v0.27.2 is officially dropped and the latest will now be installed.

  • NEW/MODIFIED: Helper program tubescaper for video and video channel discovery and management

    After working with the developer to get it fully up to speed, tubescraper is not only a slide-in replacement for youtube-search-python, but has allowed the expansion of capabilities, detailed below. This includes now fully realizing being able to get all videos from video channels and playlists with no limitations whatsoever.

  • MODIFIED: The helper program yt-dlp is now fully integrated as the backup solution for discovery and management

    Further, tubescraper has been promoted to be the default engine for retrieving metadata and yt-dlp demoted to the backup, speeding up metadata retrieval significantly.

  • NEW: Video filtering for search and subscribed channels

    Using video search, users can now filter out YouTube Shorts and decide the uploaded timeframe. Also, there are no longer any limitations on the number of videos that can be retrieved from search (previously capped at 100). With getting videos from subscribed video channels, users can choose from among any combination of regular, live, and shorts (discussed on the Wiki), as well as determine the maximum amount of videos they even want to retrieve from said video channel. Setting these values can significantly speed up the retrieval process, most notably with feeds.

  • MODIFIED: More info for Search and Feed Videos

    Additional information is now available when searching for videos or getting updates from subscribed video channels. While these vary by source, these include view counts, posted timeframe, and details like if it is YouTube Short or an upcoming live stream.

  • FIXED/MODIFIED: Searching for Video Channels Columns

    When searching for Video Channels, the 'uploader ID' (i.e., @babsonnexus) once again appears under the 'Core Info' column. As such, the appropriate data will parse through when bookmarking one, too. Additionally, the current subscriber count now appears in 'Other Info' column

  • FIXED: Search Results Button Sizes and Wrapping

    With the addition of the potential fourth button in search results, the buttons were going into a second row. They have been resized to continue to stay on one row, as before.

  • MODIFIED: SLM Manage Programs and Providers UXs

    In order to support all of the above and do some general cleanup, a significant number of modifications were made to the layout, fields, and locations seen on the Manage Programs and Manage Provider webpages. Some minor bugs like not being able to save when a zero was present in certain fields like "Duration Override" have also been addressed.


MODIFIED: [SLM/PLM] Live and Static Video Playback

Due to recent aggressive behavior from YouTube to stop outside tools from playing content posted on there, some changes have been made.

First, the primary and fallback mechanisms for playing YouTube live streams using 'Live Stream (HLS)' have been removed and a single currently functioning one has been put in its place (Tier 4 combining separate video and audio feeds together still exists). Even with this, there is great concern that this will soon be shutdown. As such, it is highly recommended to switch to the 'Live Stream (MPEG-TS)' method, which uses helper tool Streamlink (no relation) instead of yt-dlp. Testing has found that this continues to work, albeit a bit slower while tuning.

Because of the above item, SLM Streams for YouTube are currently not working using the default method. However, recent updates to Streamlink now allow the playing of static videos. Testing reveals that YouTube works using this tool, thus a new capability has been added to SLM Streams that allows users to switch to using the 'MPEG-TS' method instead of the default 'HLS' one. This is accomplished by putting in a pattern that can be found in a URL, i.e., 'youtu' for YouTube videos. Anything in this pattern recognition will make the expected shift. By default, 'youtu' has been added to this list to immediately cause the switchover without any user intervention, aside from regenerating Stream Links/Files. Please note that YouTube videos seem to be limited to 360p using this method, but work is continuing separately to increase this.

Due to these limitations in quality and other considerations such as the need to completely eliminate this capability, a new function has been put in place called 'YouTube Special Treatment'. By setting one of the options outside of 'Default (Normal)', the SLM Stream YouTube videos will be transformed into Stream Links instead of being Steam Files. This makes it so you don't have to manually make any other updates outside of the dropdown selection and regenerating Stream Links/Files. After this, you will then automatically have links completely ready for YouTube YouTube-accessible (i.e., SmartTube) apps.

It should be noted this last solution does more than deal with the problems we are seeing with YouTube at the moment, but allows Channels DVR Apple TV users to fully take advantage of the these capabilities without any intervention. Additionally, some users may just desire to use Stream Links for YouTube anyway in order to get better integration, like with watch history. Another use case might be while traveling and SLM Streams are not available for the end users.

More details are available on the Wiki.

Beyond this, it is fair to note that no other providers are affected. In other words, things like Twitch continue to work exactly as they did before unless you take actions as highlighted above. That said, it may be beneficial to experiment and see if certain providers work or work better/more reliably with the MPEG-TS option.

While all of this closes #107, it should be noted that additional development is continuing for a more stable and long-term solution. This, unfortunately, may mean either logging in and/or slower performance, but nothing is set in stone at this time.


NEW: [PLM] Fallback Station Playlists

A new way of getting m3u's and guide data has been added called "Fallback" feed(s). At a high level, what this means is that a Parent station with multiple Children can be parsed through at the time of a request until a functioning one is found and passed on to a consuming tool like Channels DVR. A lot more has gone into this and its capabilities, therefore complete details can be found on the Wiki.

This resolves #54.


DEPRECATED: [PLM] '/playlists/streams/youtubelive' Endpoint

The '/playlists/streams/youtubelive' endpoint was replaced a long time ago with '/playlists/streams/stream'. As such, more than enough time has passed to fully retire the old route. If you are still using the former method in a manual playlist somewhere (not recommended, please switch to auto-built SLM Streams playlists), you will need to update.


FIXED: [GEN] Removing all articles for sorting

If you removed every article for sorting and saved, the webpage would fail and it would not stick. This has now been corrected so you can get rid of everything in a list like this.


MODIFIED: [GEN/SLM/PLM/MTM] General code and documentation cleanup

A significant number of minor tweaks have been made throughout the entire codebase, interface, and documentation. These are too numerous to list but can be seen by comparing release versions.

Don't miss a new stream-link-manager-for-channels release

NewReleases is sending notifications on new releases.