Fubo TV project

You put them in under environment

FUBO_USER=sportman09
FUBO_PASS=1233455

Where do I get to that though? @Rice

I don’t have a nas but I would imagine you would go to your container manager and click on and edit the container from there. Consider installing portainer, it’s a great gui tool for managing containers.

They're environment variables you set in the docker run command or compose statement

I think I was able to get it to work. Now how or where can I find my m3u playlist? Im getting this message on my container log instead of user & PW=NONE
⇨ http server started on [::]:7777

IP address of machine:7777

I can’t have more than one stream open at a time, is that a thing?

Edit: nas had changed ip address.. all fixed

I tried that & it does nothing. Not sure if I've got something messed up somewhere

Use the IP address of your docker host (QNAP NAS?)

Then you copy and paste the FUBO HLS url into your Channels DVR Custom M3U settings

I can see the 2 playlists from Serverip:7777 but if i try to click the links I get nothing. If I try to copy & paste the urls to use in CDVR custom channels I get:

invalid source url: failed to retrieve m3u: GET: http://IP:7777/fubo/playlist-hls.m3u: 500 INTERNAL SERVER ERROR

Check the Fubo docker container log
Also, make sure you use the actual IP address, not the letters ip you show in http://ip:7777/fubo/playlist-hls.m3u

This is what I got in the container log after trying to load into CDVR

[2024-08-16 23:58:48,259] ERROR in app: Exception on /fubo/playlist-hls.m3u [GET]
Traceback (most recent call last):
File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 1473, in wsgi_app
response = self.full_dispatch_request()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 882, in full_dispatch_request
rv = self.handle_user_exception(e)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 880, in full_dispatch_request
rv = self.dispatch_request()
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 865, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/pywsgi.py", line 72, in playlist
stations, err = providers[provider].channels()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/fubo.py", line 144, in channels
for elem in user_data.get('recurly').get('purchased_packages'):
TypeError: 'NoneType' object is not iterable
[2024-08-16 23:58:48,527] ERROR in app: Exception on /fubo/playlist-hls.m3u [GET]
Traceback (most recent call last):
File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 1473, in wsgi_app
response = self.full_dispatch_request()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 882, in full_dispatch_request
rv = self.handle_user_exception(e)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 880, in full_dispatch_request
rv = self.dispatch_request()
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 865, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/pywsgi.py", line 72, in playlist
stations, err = providers[provider].channels()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/fubo.py", line 144, in channels
for elem in user_data.get('recurly').get('purchased_packages'):
TypeError: 'NoneType' object is not iterable
[2024-08-16 23:59:06,569] ERROR in app: Exception on /fubo/playlist-mpeg.m3u [GET]
Traceback (most recent call last):
File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 1473, in wsgi_app
response = self.full_dispatch_request()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 882, in full_dispatch_request
rv = self.handle_user_exception(e)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 880, in full_dispatch_request
rv = self.dispatch_request()
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 865, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/pywsgi.py", line 72, in playlist
stations, err = providers[provider].channels()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/fubo.py", line 144, in channels
for elem in user_data.get('recurly').get('purchased_packages'):
TypeError: 'NoneType' object is not iterable
[2024-08-16 23:59:06,928] ERROR in app: Exception on /fubo/playlist-mpeg.m3u [GET]
Traceback (most recent call last):
File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 1473, in wsgi_app
response = self.full_dispatch_request()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 882, in full_dispatch_request
rv = self.handle_user_exception(e)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 880, in full_dispatch_request
rv = self.dispatch_request()
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 865, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/pywsgi.py", line 72, in playlist
stations, err = providers[provider].channels()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/fubo.py", line 144, in channels
for elem in user_data.get('recurly').get('purchased_packages'):
TypeError: 'NoneType' object is not iterable
[2024-08-16 23:59:28,846] ERROR in app: Exception on /fubo/playlist-hls.m3u [GET]
Traceback (most recent call last):
File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 1473, in wsgi_app
response = self.full_dispatch_request()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 882, in full_dispatch_request
rv = self.handle_user_exception(e)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 880, in full_dispatch_request
rv = self.dispatch_request()
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 865, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/pywsgi.py", line 72, in playlist
stations, err = providers[provider].channels()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/fubo.py", line 144, in channels
for elem in user_data.get('recurly').get('purchased_packages'):
TypeError: 'NoneType' object is not iterable

That looks like something that was supposed to be fixed in the latest version 3 days ago.

Do you have a current subscription to Fubo?
Are your FUBO_USER and FUBO_PASS environment variables correct in the docker container?

I do but I'm currently in a trial if that matters. As far as the env variables. I plugged them in this field like this during setup of the container. With my username & PW being correct obviously

I'm sure it worked during my short trial period, but I no longer use Fubo.
Do you have the newest version released 3 days ago?
I just did a quick pull of registry.gitlab.com/yankees4life/vlc-bridge-fubo/main:latest using portainer and the image it gets was from 2024-05-20

Tag @Jean0987654321

I just did a test here.
The errors being experienced are due to not having a valid subscription.
If you have a valid subscription, it will work as expected.
From what i was able to see, the pro package does what i need.
I am using ADB Tuner and really missing Fubo a lot due to quality and natural interaction.
I just need to get the billing to lineup so i can make sur eit is paid for YTTV isn't bad but oh well.

Yes I did use the latest image, but also wonder if the previous users fix for this issue in actually in that pull or not

Not there if you pulled the docker image

I'm not a developer and I don't create docker images, but pretty sure he has to somehow make the latest changes available in the image we pull from that registry.

Cut him some slack since he's not the original developer and "rescued" it so you could use it.

1 Like

No worries. I'm just glad I'm not crazy. I see on gitlab where he merged main into main in reference to this issue, but I have no idea what any of that means lol. I assume I can only wait for him to update the image in the registry?