FastChannels - FAST Channels aggregator/manager

All three of these result in the same error.
https://www.youtube.com/@KittenAcademy/live
https://www.youtube.com/watch?v=T4XZmMPQ9Kw
https://www.youtube.com/live/T4XZmMPQ9Kw?si=5qExrNXHHEvabOS8
brave_screenshot

All three urls work with SLM.

FastChannels and SLM are both installed in containers on the same Synology NAS and both are using my ISP DNS. I have no ad blocker in use.

You can see the output from the FC and SLM containers yt-dlp in this post

Do any of these work for you?
https://www.youtube.com/@KittenAcademy/live
https://www.youtube.com/watch?v=T4XZmMPQ9Kw
https://www.youtube.com/live/T4XZmMPQ9Kw?si=5qExrNXHHEvabOS8

1 Like

All of my YouTube streams have stopped working. I'm pretty sure the FOBBV nest cam was working early this morning and am certain it was working yesterday.

The Channels Android TV client shows "403 forbidden" for all of them. Redetect fails as shown in your screenshots.

1 Like

No clue what would be different between mine and y’all’s. Working 100% here. Same exact image you guys are on too. I’ll keep looking.

I'm also clueless.
Just for grins, I overrode the container DNS server to Cloudflare in case my ISP was doing DNS filtering.

Synology NAS

root@nas-1019:~# cat /etc/resolv.conf
nameserver      75.75.75.75

SLM Container

# cat /etc/resolv.conf
nameserver      75.75.75.75

FC Container

# cat /etc/resolv.conf
nameserver      75.75.75.75

FC Portainer stack compose

services:
  fastchannels:
    # GitHub home for this project: https://github.com/kineticman/FastChannels
    # Docker container home for this project: https://github.com/kineticman/FastChannels/pkgs/container/fastchannels
    image: ghcr.io/kineticman/fastchannels:latest
    container_name: fastchannels
    environment:
      # Set the timezone to your local timezone
      - TZ=America/Los_Angeles
    network_mode: "bridge"
    ports:
      - "5523:5523"
    restart: unless-stopped
    volumes:
      - db_data:/data
volumes:
  db_data:

override DNS server to Cloudflare

services:
  fastchannels:
    # GitHub home for this project: https://github.com/kineticman/FastChannels
    # Docker container home for this project: https://github.com/kineticman/FastChannels/pkgs/container/fastchannels
    image: ghcr.io/kineticman/fastchannels:latest
    container_name: fastchannels
    environment:
      # Set the timezone to your local timezone
      - TZ=America/Los_Angeles
    network_mode: "bridge"
    dns:
      - "1.1.1.1" # override host OS DNS servers with Cloudflare
    ports:
      - "5523:5523"
    restart: unless-stopped
    volumes:
      - db_data:/data
volumes:
  db_data:

FC Container

# cat /etc/resolv.conf
nameserver 1.1.1.1

Same error.
brave_screenshot (1)

Sorry to hear that, but good to know it's not just me and Waffles.
Do you have SLM to try?

Out of the box, you do not even need to have PLM turned on to take advantage of these features. With just a base installation of Streaming Library Manager , you can input the following:
Some examples for the [URL_TO_CONTENT] (and certainly not limited to) are:

  • YouTube Live Stream (Specific): https://www.youtube.com/watch?v=R7vrbiDi0Tc
  • YouTube Live Stream (Latest for Channel): https://www.youtube.com/@KittenAcademy/live
  • Twitch Live Stream: https://www.twitch.tv/timthetatmanvods
  • CBS News Live Stream: https://www.cbsnews.com/live

thats whats so strange. i haven't touched that code in weeks- and SLM and FC use the same plugin (yt-dlp).

Have you updated yt-dlp recently?
SLM is using an older version.

could be that.

can u run this and send me the output pls?

docker exec fastchannels yt-dlp -v -F --extractor-args "youtube:player_client=web_safari" "https://www.youtube.com/@KittenAcademy/live" 2>&1 |
  grep -iE "pot|sign in|bot|403|throttl|JS runtime"
root@nas-1019:~# docker exec fastchannels yt-dlp -v -F --extractor-args "youtube:player_client=web_safari" "https://www.youtube.com/@KittenAcademy/live" 2>&1 | grep -iE "pot|sign in|bot|403|throttl|JS runtime"
[debug] JS runtimes: none
[debug] [youtube] [pot] PO Token Providers: none
[debug] [youtube] [pot] PO Token Cache Providers: memory
[debug] [youtube] [pot] PO Token Cache Spec Providers: webpo
FULL OUTPUT from inside container
# yt-dlp -v -F --extractor-args "youtube:player_client=web_safari" "https://www.youtube.com/@KittenAcademy/live"
[debug] Command-line config: ['-v', '-F', '--extractor-args', 'youtube:player_client=web_safari', 'https://www.youtube.com/@KittenAcademy/live']
[debug] Encodings: locale UTF-8, fs utf-8, pref UTF-8, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version [email protected] from yt-dlp/yt-dlp [821bef0f0]
[debug] Lazy loading extractors is disabled
[debug] Python 3.12.13 (CPython x86_64 64bit) - Linux-4.4.302+-x86_64-with-glibc2.41 (OpenSSL 3.5.6 7 Apr 2026, glibc 2.41)
[debug] exe versions: none
[debug] Optional libraries: Cryptodome-3.23.0, brotli-1.2.0, certifi-2026.05.20, curl_cffi-0.15.0, mutagen-1.47.0, requests-2.34.2, sqlite3-3.46.1, urllib3-2.7.0, websockets-16.0, yt_dlp_ejs-0.8.0
[debug] JS runtimes: none
[debug] Proxy map: {}
[debug] Request Handlers: urllib, requests, websockets, curl_cffi
[debug] Plugin directories: none
[debug] Loaded 1739 extractors
[youtube:tab] Extracting URL: https://www.youtube.com/@KittenAcademy/live
[youtube:tab] @KittenAcademy/live: Downloading webpage
[debug] [youtube] [pot] PO Token Providers: none
[debug] [youtube] [pot] PO Token Cache Providers: memory
[debug] [youtube] [pot] PO Token Cache Spec Providers: webpo
[debug] [youtube] [jsc] JS Challenge Providers: bun (unavailable), deno (unavailable), node (unavailable), quickjs (unavailable)
[youtube] Extracting URL: https://www.youtube.com/watch?v=T4XZmMPQ9Kw
[youtube] T4XZmMPQ9Kw: Downloading webpage
[debug] [youtube] Forcing "main" player JS variant for player 445213fb
        original url = /s/player/445213fb/player_es6.vflset/en_US/base.js
WARNING: [youtube] T4XZmMPQ9Kw: n challenge solving failed: Some formats may be missing. Ensure you have a supported JavaScript runtime and challenge solver script distribution installed. Review any warnings presented before this message. For more details, refer to  https://github.com/yt-dlp/yt-dlp/wiki/EJS
[debug] [youtube] T4XZmMPQ9Kw: Detected experiment to bind GVS PO Token to video ID for web_safari client
ERROR: [youtube] T4XZmMPQ9Kw: No video formats found!; please report this issue on  https://github.com/yt-dlp/yt-dlp/issues?q= , filling out the appropriate issue template. Confirm you are on the latest version using  yt-dlp -U
Traceback (most recent call last):
  File "/usr/local/lib/python3.12/site-packages/yt_dlp/YoutubeDL.py", line 1726, in wrapper
    return func(self, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/yt_dlp/YoutubeDL.py", line 1882, in __extract_info
    return self.process_ie_result(ie_result, download, extra_info)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/yt_dlp/YoutubeDL.py", line 1941, in process_ie_result
    ie_result = self.process_video_result(ie_result, download=download)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/yt_dlp/YoutubeDL.py", line 2954, in process_video_result
    self.raise_no_formats(info_dict)
  File "/usr/local/lib/python3.12/site-packages/yt_dlp/YoutubeDL.py", line 1191, in raise_no_formats
    raise ExtractorError(msg, video_id=info['id'], ie=info['extractor'],
yt_dlp.utils.ExtractorError: [youtube] T4XZmMPQ9Kw: No video formats found!; please report this issue on  https://github.com/yt-dlp/yt-dlp/issues?q= , filling out the appropriate issue template. Confirm you are on the latest version using  yt-dlp -U

Is this related to the YT issue that @babsonnexus had issues with earlier this year?
The issue I'm referring to was with PLM/SLM...

Pretty sure it's related to the JS Challenge solving @babsonnexus had to incorporate in SLM

[debug] [youtube] [jsc] JS Challenge Providers: bun (unavailable), deno (unavailable), node (unavailable), quickjs (unavailable)
WARNING: [youtube] T4XZmMPQ9Kw: n challenge solving failed: Some formats may be missing. Ensure you have a supported JavaScript runtime and challenge solver script distribution installed. Review any warnings presented before this message. For more details, refer to  https://github.com/yt-dlp/yt-dlp/wiki/EJS

Just weird that @KineticMan is not having any problem on his side...

1 Like

Could be as the developer he has something in his that we didn't get when we pulled the image :man_shrugging:

Do you guys sign in with your YouTube account with Fastchannels and yt-dlp or is it anonymous?

:point_up:

It's a Custom Channel, no credentials like FrndlyTV

i.e. No bun, deno, node or quickjs available

And here's the same channel in CDVR using SLM that's working

1 Like

bingo thats it. will fix. So weird that it was working before with no issues.

Anyway, @babsonnexus .. stealing your code sucka! :slight_smile: ...

even easier, i just needed to upgrade the version of node in the image it appears.

1 Like

Thanks for looking into it and finding a fix.

Sorry for the extra pushes today.

V4.4.6 pushed

  • Upgraded Node to V24 inside container to fix YT-DLP for Youtube stream detector
2 Likes

Thanks. I be tubin' again.

1 Like

in other news, Kaloopy is back too...