Fubo TV project

So looks like something in my ControlD DNS configuration was blocking the services. I’m not sure what it was, but when I place it is bypass mode the channels resumed working in the DVR and official app

Had to allow this URL for it to work properly

segments.ads.fubo.tv

Is this something you did in Channels or on your computer?

On ControlD’s interface because I used them for DNS to block ads and other malware tor stuff.

And I believe that URL got added to some blocklist. So I just whitelisted it.

Should be similar if you use NextDNS, Adguard, Pi-Hole, etc.

Thanks. I don’t use any of those things so I’ll have to figure out another workaround for my situation.

Ok. Maybe it’s something built into your router that you’re unaware of?

Maybe, but I have other containers such as Frndly, mlbserver, E+, tubi, etc. that work perfectly.

They don’t use the same servers as Fubo. So that would make sense that they still work.

But good luck to you getting it back up and running.

.

Thanks. I’ll try that. It could just be that I have the free version and it doesn’t work with the container. The channel I’m really looking for is ESPN 8 the Ocho. I can’t find it anywhere else to bring in to Channels. Fubo and DIRECTV have in their free channels.

EDIT: I do not see any errors. I checked to make sure I had the most recent pre-release, updated the container and tried to re-add the m3u. I got the following error, "failed to load m3u: no channels found in m3u." I'm thinking the issue is the free version. I may sign up for FUBO once it gets the skinny sports bundle and try again.

EDIT 2: I signed up for a free trial and still cannot add. I get the following error now: failed to load m3u: failed to retrieve m3u: "GET: http://localhost:7782/fubo/playlist-hls.m3u: 500 INTERNAL SERVER ERROR" I used a different email for the free trial but made sure I updated the username and password in portainer.

Try using the IP address of the machine running portainer instead of localhost in the channels source

Just tried your suggestion. Same error.

OK, I deleted the Fubo VLC and re-added it through One-Click with my free trial password. Everything worked. Then, I cancelled the free trial, and it stopped working. So now we know that, if you have the free tier only, it does not work with the container.

2 Likes

Never mind, I was able to get working properly. I deleted the container and loaded the newest version (shows V 0.0.9 but unsure what the previous version was). But Container Manager is saying I have the latest version now so I assume that's correct.

Was looking to see what channels I was seeing on the HLS.m3u by downloading it directly from the container. Usually works, however I am currently getting this error when I try and download by clicking the link from the localhost:7777 page:

HTTP failure 401: {"error":{"code":"INVALID_USERNAME_PASSWORD","message":"The username and/or password used for authentication are invalid","lc_message":"The username and/or password used for authentication are invalid"}}

I went into the container log and unfortunately it's all Greek or Italian to me:

2025/08/10 13:33:30	stderr	ValueError: Header values must not contain newline characters.
2025/08/10 13:33:30	stderr	    raise ValueError("Header values must not contain newline characters.")
2025/08/10 13:33:30	stderr	  File "/usr/local/lib/python3.12/site-packages/werkzeug/datastructures/headers.py", line 600, in _str_header_value
2025/08/10 13:33:30	stderr	                ^^^^^^^^^^^^^^^^^^^^^^^^
2025/08/10 13:33:30	stderr	    value_str = _str_header_value(value)
2025/08/10 13:33:30	stderr	  File "/usr/local/lib/python3.12/site-packages/werkzeug/datastructures/headers.py", line 360, in add
2025/08/10 13:33:30	stderr	    self.add(key, value)
2025/08/10 13:33:30	stderr	  File "/usr/local/lib/python3.12/site-packages/werkzeug/datastructures/headers.py", line 252, in extend
2025/08/10 13:33:30	stderr	    self.extend(defaults)
2025/08/10 13:33:30	stderr	  File "/usr/local/lib/python3.12/site-packages/werkzeug/datastructures/headers.py", line 73, in __init__
2025/08/10 13:33:30	stderr	                   ^^^^^^^^^^^^^^^^
2025/08/10 13:33:30	stderr	    self.headers = Headers(headers)
2025/08/10 13:33:30	stderr	  File "/usr/local/lib/python3.12/site-packages/werkzeug/sansio/response.py", line 125, in __init__
2025/08/10 13:33:30	stderr	    super().__init__(
2025/08/10 13:33:30	stderr	  File "/usr/local/lib/python3.12/site-packages/werkzeug/wrappers/response.py", line 155, in __init__
2025/08/10 13:33:30	stderr	         ^^^^^^^^^^^^^^^^^^^^
2025/08/10 13:33:30	stderr	    rv = self.response_class(
2025/08/10 13:33:30	stderr	  File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 1224, in make_response
2025/08/10 13:33:30	stderr	               ^^^^^^^^^^^^^^^^^^^^^^
2025/08/10 13:33:30	stderr	    response = self.make_response(rv)
2025/08/10 13:33:30	stderr	  File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 939, in finalize_request
2025/08/10 13:33:30	stderr	           ^^^^^^^^^^^^^^^^^^^^^^^^^
2025/08/10 13:33:30	stderr	    return self.finalize_request(rv)
2025/08/10 13:33:30	stderr	  File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 920, in full_dispatch_request
2025/08/10 13:33:30	stderr	               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2025/08/10 13:33:30	stderr	    response = self.full_dispatch_request()
2025/08/10 13:33:30	stderr	  File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 1511, in wsgi_app
2025/08/10 13:33:30	stderr	Traceback (most recent call last):
2025/08/10 13:33:30	stderr	[2025-08-10 17:33:30,559] ERROR in app: Exception on /fubo/watch-hls/45409 [GET]

The last log is a few days ago as well, not sure why it's not still throwing errors when I try and access the hls.m3u download.

Now here's the real kicker.....I'm still able to access the channels in CDVR. Not sure if there's a time lag of when I won't be able to access anymore, but curious if anyone has any line of sight into this as I don't want to have things go down in the middle of watching something, especially any live sporting event. TIA.

There appears to be something going on with the authentication. If you refresh a few times it works and you can download your m3u.

The second error has something to do with header values and passing newline characters when flask is being called in the code. After doing some research, I believe that newer versions of flask, which is a dependency enforced stricter guidelines on what can be passed in header values to make it more secure. I am not sure how to fix this, but am actively looking into it.

If anyone has any ideas on how to fix the errors that @jator referenced, please let us know here or post a pull request at gitlab here: vlc-bridge-fubo-test / vlc-bridge-fubo · GitLab

Can confirm the auth issue is back even with the newest version installed:

HTTP failure 401: {"error":{"code":"INVALID_USERNAME_PASSWORD","message":"The username and/or password used for authentication are invalid","lc_message":"The username and/or password used for authentication are invalid"}}

After hitting refresh about 5 times did finally allow me to download the M3U.

Sorry to keep coming back to this; I found a solution. If you only want the free channels from FuboTV, sign up for a free trial. Add the container. Don't add the Fubo m3u's links from the admin page. Instead, download the txt files. Add the HLS and MPEG-TS as separate sources on your CDVR as text rather than URL. I copied the txt file for each and pasted it into each source. My two Fubo sources show 236 and 253 channels. The free channels will play! The paid channels (once your trial is over) will not. I hope this helps anyone who wants the free tier of Fubo channels. It still doesn't have ESPN 8, the Ocho. (It's now available through SamsungTV plus container, though.)

1 Like

Getting the following error both in docker and standalone

⇨ http server started on [::]:7777
[Errno 97] Address family not supported by protocol

I figured it out. the app needs ipv6 in order to work.

new bug. I get incorrect password unless I restart the docker 3 times or so. my password is correct though