Tubi for Channels docker

Running the latest version (as far as I know) of Tubi for Channels (Tubi Playlist v1.02 Last Updated: July 2, 2024)
Screenshot 2024-07-26 at 18-38-25 Tubi Playlist


Have been seeing these errors in the Channels DVR log for the TubiTV source, here are the last 2.

2024/07/25 09:06:08.573774 [ERR] Unexpected m3u response for tubiTVNoEpg: 500 INTERNAL SERVER ERROR
2024/07/26 09:42:09.069304 [ERR] Unexpected m3u response for tubiTVNoEpg: 500 INTERNAL SERVER ERROR

Corresponding TubiTV container log

2024-07-25T16:06:00.233973829Z [INFO] Reading channel id list cache
2024-07-25T16:06:00.235037114Z [INFO] Retriving EPG Data
2024-07-25T16:06:07.914691346Z [INFO] Channels: Available EPG data: 167
2024-07-25T16:06:08.230570069Z [INFO] Reading channel id list cache
2024-07-25T16:06:08.230904233Z [INFO] Retriving EPG Data
2024-07-25T16:06:08.562752675Z [2024-07-25 16:06:08,471] ERROR in app: Exception on /tubi/playlist.m3u [GET]
2024-07-25T16:06:08.563544642Z Traceback (most recent call last):
2024-07-25T16:06:08.563749968Z   File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 1473, in wsgi_app
2024-07-25T16:06:08.563946590Z     response = self.full_dispatch_request()
2024-07-25T16:06:08.564083523Z                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-07-25T16:06:08.564203234Z   File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 882, in full_dispatch_request
2024-07-25T16:06:08.564385883Z     rv = self.handle_user_exception(e)
2024-07-25T16:06:08.564537710Z          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-07-25T16:06:08.564661620Z   File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 880, in full_dispatch_request
2024-07-25T16:06:08.564811777Z     rv = self.dispatch_request()
2024-07-25T16:06:08.564939876Z          ^^^^^^^^^^^^^^^^^^^^^^^
2024-07-25T16:06:08.565058579Z   File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 865, in dispatch_request
2024-07-25T16:06:08.565202008Z     return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)  # type: ignore[no-any-return]
2024-07-25T16:06:08.565621023Z            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-07-25T16:06:08.565772237Z   File "/app/pywsgi.py", line 84, in playlist
2024-07-25T16:06:08.565921052Z     tmsid_stations = list(filter(lambda d: d.get('tmsid'), stations))
2024-07-25T16:06:08.566075980Z                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-07-25T16:06:08.566198120Z TypeError: 'NoneType' object is not iterable
2024-07-25T16:06:08.576316066Z [INFO] Retriving EPG Data

2024-07-26T16:42:00.285888276Z [INFO] Reading channel id list cache
2024-07-26T16:42:00.286863105Z [INFO] Retriving EPG Data
2024-07-26T16:42:05.055868446Z [INFO] Channels: Available EPG data: 167
2024-07-26T16:42:05.420499553Z [INFO] Reading channel id list cache
2024-07-26T16:42:05.420750328Z [INFO] Retriving EPG Data
2024-07-26T16:42:09.065537037Z [2024-07-26 16:42:09,062] ERROR in app: Exception on /tubi/playlist.m3u [GET]
2024-07-26T16:42:09.066561277Z Traceback (most recent call last):
2024-07-26T16:42:09.066811258Z   File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 1473, in wsgi_app
2024-07-26T16:42:09.067073137Z     response = self.full_dispatch_request()
2024-07-26T16:42:09.067270562Z                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-07-26T16:42:09.067530581Z   File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 882, in full_dispatch_request
2024-07-26T16:42:09.067778698Z     rv = self.handle_user_exception(e)
2024-07-26T16:42:09.067989672Z          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-07-26T16:42:09.068157962Z   File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 880, in full_dispatch_request
2024-07-26T16:42:09.068442350Z     rv = self.dispatch_request()
2024-07-26T16:42:09.068658298Z          ^^^^^^^^^^^^^^^^^^^^^^^
2024-07-26T16:42:09.068846331Z   File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 865, in dispatch_request
2024-07-26T16:42:09.069069858Z     return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)  # type: ignore[no-any-return]
2024-07-26T16:42:09.069317061Z            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-07-26T16:42:09.069579989Z   File "/app/pywsgi.py", line 84, in playlist
2024-07-26T16:42:09.069707661Z     tmsid_stations = list(filter(lambda d: d.get('tmsid'), stations))
2024-07-26T16:42:09.069816063Z                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-07-26T16:42:09.069900172Z TypeError: 'NoneType' object is not iterable
2024-07-26T16:42:10.491802466Z [INFO] Retriving EPG Data

Any idea what's causing these?

Looks like it had an issue reading the EPG data from Tubi. Hopefully this clears itself up as I haven’t noticed anything but will look on my container as well

1 Like

I had the same error last night. Recreated the container and it’s working again :person_shrugging:

I also noticed a couple [CRITICAL] Scheduler crashed errors in the container log. One 3 days ago and one yesterday.

2024-07-25T02:49:07.680912605Z [INFO] Retriving EPG Data
2024-07-25T02:49:18.045519370Z [CRITICAL] Scheduler crashed: Response ended prematurely. Restarting...
2024-07-27T02:51:11.850817076Z [INFO] Retriving EPG Data
2024-07-27T02:51:20.465476537Z [CRITICAL] Scheduler crashed: Response ended prematurely. Restarting...

Doesn't look like I'm missing any guide data though.

Got the 500 error again this morning when Channels DVR was refreshing the lineup m3u

2024/07/28 09:57:07.929422 [ERR] Unexpected m3u response for tubiTV: 500 INTERNAL SERVER ERROR

Container log shows this

2024-07-28T16:57:00.430907497Z [INFO] Reading channel id list cache
2024-07-28T16:57:00.431699855Z [INFO] Retriving EPG Data
2024-07-28T16:57:07.925737020Z [2024-07-28 16:57:07,878] ERROR in app: Exception on /tubi/playlist.m3u [GET]
2024-07-28T16:57:07.926575705Z Traceback (most recent call last):
2024-07-28T16:57:07.926750542Z   File "/usr/local/lib/python3.12/site-packages/requests/models.py", line 820, in generate
2024-07-28T16:57:07.926895876Z     yield from self.raw.stream(chunk_size, decode_content=True)
2024-07-28T16:57:07.927009106Z   File "/usr/local/lib/python3.12/site-packages/urllib3/response.py", line 1057, in stream
2024-07-28T16:57:07.927122009Z     yield from self.read_chunked(amt, decode_content=decode_content)
2024-07-28T16:57:07.927221473Z   File "/usr/local/lib/python3.12/site-packages/urllib3/response.py", line 1206, in read_chunked
2024-07-28T16:57:07.927376536Z     self._update_chunk_length()
2024-07-28T16:57:07.927500608Z   File "/usr/local/lib/python3.12/site-packages/urllib3/response.py", line 1136, in _update_chunk_length
2024-07-28T16:57:07.927616353Z     raise ProtocolError("Response ended prematurely") from None
2024-07-28T16:57:07.927726286Z urllib3.exceptions.ProtocolError: Response ended prematurely
2024-07-28T16:57:07.927825333Z 
2024-07-28T16:57:07.927908958Z During handling of the above exception, another exception occurred:
2024-07-28T16:57:07.928018884Z 
2024-07-28T16:57:07.928102069Z Traceback (most recent call last):
2024-07-28T16:57:07.928194811Z   File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 1473, in wsgi_app
2024-07-28T16:57:07.928318988Z     response = self.full_dispatch_request()
2024-07-28T16:57:07.928480845Z                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-07-28T16:57:07.928577989Z   File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 882, in full_dispatch_request
2024-07-28T16:57:07.928689347Z     rv = self.handle_user_exception(e)
2024-07-28T16:57:07.929046172Z          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-07-28T16:57:07.929268891Z   File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 880, in full_dispatch_request
2024-07-28T16:57:07.929452161Z     rv = self.dispatch_request()
2024-07-28T16:57:07.929559876Z          ^^^^^^^^^^^^^^^^^^^^^^^
2024-07-28T16:57:07.929732439Z   File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 865, in dispatch_request
2024-07-28T16:57:07.929964591Z     return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)  # type: ignore[no-any-return]
2024-07-28T16:57:07.930123192Z            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-07-28T16:57:07.930215840Z   File "/app/pywsgi.py", line 82, in playlist
2024-07-28T16:57:07.930318690Z     stations, err = providers[provider].channels()
2024-07-28T16:57:07.930506918Z                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-07-28T16:57:07.930602220Z   File "/app/tubi.py", line 148, in channels
2024-07-28T16:57:07.930706315Z     error = self.read_epg()
2024-07-28T16:57:07.930800219Z             ^^^^^^^^^^^^^^^
2024-07-28T16:57:07.930883449Z   File "/app/tubi.py", line 134, in read_epg
2024-07-28T16:57:07.930985210Z     response = session.get(f'https://tubitv.com/oz/epg/programming', params=params)
2024-07-28T16:57:07.931101116Z                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-07-28T16:57:07.931189279Z   File "/usr/local/lib/python3.12/site-packages/requests/sessions.py", line 602, in get
2024-07-28T16:57:07.931296491Z     return self.request("GET", url, **kwargs)
2024-07-28T16:57:07.931458659Z            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-07-28T16:57:07.931555243Z   File "/usr/local/lib/python3.12/site-packages/requests/sessions.py", line 589, in request
2024-07-28T16:57:07.931663755Z     resp = self.send(prep, **send_kwargs)
2024-07-28T16:57:07.931762809Z            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-07-28T16:57:07.931846100Z   File "/usr/local/lib/python3.12/site-packages/requests/sessions.py", line 746, in send
2024-07-28T16:57:07.932005457Z     r.content
2024-07-28T16:57:07.932197982Z   File "/usr/local/lib/python3.12/site-packages/requests/models.py", line 902, in content
2024-07-28T16:57:07.932385138Z     self._content = b"".join(self.iter_content(CONTENT_CHUNK_SIZE)) or b""
2024-07-28T16:57:07.932517116Z                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-07-28T16:57:07.932606944Z   File "/usr/local/lib/python3.12/site-packages/requests/models.py", line 822, in generate
2024-07-28T16:57:07.932720182Z     raise ChunkedEncodingError(e)
2024-07-28T16:57:07.932813326Z requests.exceptions.ChunkedEncodingError: Response ended prematurely
2024-07-28T16:57:07.932113529Z [INFO] Reading channel id list cache
2024-07-28T16:57:07.933019283Z [INFO] Retriving EPG Data
2024-07-28T16:57:11.520794020Z [INFO] Channels: Available EPG data: 167
2024-07-28T16:57:11.867585859Z [INFO] Retriving EPG Data

I just manually refreshed the lineup with no errors.
2024/07/28 12:43:00.561882 [M3U] Refreshed lineup for tubiTV with 124 channels

added some additional error handling in the latest update

Thanks @joagomez
I pulled the latest release and will let you know if any more issues.

Failed refreshing the lineup for tubiTV (/tubi/playlist.m3u?gracenote=include) this morning.

Channels DVR log

2024/08/02 09:55:10.350105 [ERR] Unexpected m3u response for tubiTV: 500 INTERNAL SERVER ERROR

TubiTV container log

2024-08-02T16:55:00.254000680Z [INFO] Reading channel id list cache
2024-08-02T16:55:00.254732877Z [INFO] Retriving EPG Data
2024-08-02T16:55:10.347780626Z [2024-08-02 16:55:10,268] ERROR in app: Exception on /tubi/playlist.m3u [GET]
2024-08-02T16:55:10.348635722Z Traceback (most recent call last):
2024-08-02T16:55:10.348808229Z   File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 1473, in wsgi_app
2024-08-02T16:55:10.348939421Z     response = self.full_dispatch_request()
2024-08-02T16:55:10.349036576Z                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-08-02T16:55:10.349121671Z   File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 883, in full_dispatch_request
2024-08-02T16:55:10.349227273Z     return self.finalize_request(rv)
2024-08-02T16:55:10.349323278Z            ^^^^^^^^^^^^^^^^^^^^^^^^^
2024-08-02T16:55:10.349558294Z   File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 902, in finalize_request
2024-08-02T16:55:10.349784972Z     response = self.make_response(rv)
2024-08-02T16:55:10.350009609Z                ^^^^^^^^^^^^^^^^^^^^^^
2024-08-02T16:55:10.350217855Z   File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 1211, in make_response
2024-08-02T16:55:10.350644314Z     raise TypeError(
2024-08-02T16:55:10.350888146Z TypeError: The view function did not return a valid response. The return type must be a string, dict, list, tuple with headers or status, Response instance, or WSGI callable, but it was a tuple.
2024-08-02T16:55:10.354109593Z [INFO] Reading channel id list cache
2024-08-02T16:55:10.354433513Z [INFO] Retriving EPG Data

added more error handling

2 Likes

Thanks, I pulled v1.03a and will let you know if I see any more errors.

Another error today while refreshing the playlist
DVR log

2024/08/09 09:55:02.876819 [ERR] Unexpected m3u response for tubiTVNoEpg: 500 INTERNAL SERVER ERROR

Tubi container log

2024-08-09T16:55:00.036585530Z [INFO] Reading channel id list cache
2024-08-09T16:55:00.037655809Z [INFO] Retriving EPG Data
2024-08-09T16:55:02.861939480Z [2024-08-09 16:55:02,842] ERROR in app: Exception on /tubi/playlist.m3u [GET]
2024-08-09T16:55:02.862775533Z Traceback (most recent call last):
2024-08-09T16:55:02.863055739Z   File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 1473, in wsgi_app
2024-08-09T16:55:02.863206874Z     response = self.full_dispatch_request()
2024-08-09T16:55:02.863310221Z                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-08-09T16:55:02.863492476Z   File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 883, in full_dispatch_request
2024-08-09T16:55:02.863609999Z     return self.finalize_request(rv)
2024-08-09T16:55:02.863705601Z            ^^^^^^^^^^^^^^^^^^^^^^^^^
2024-08-09T16:55:02.863792080Z   File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 902, in finalize_request
2024-08-09T16:55:02.863894931Z     response = self.make_response(rv)
2024-08-09T16:55:02.863987594Z                ^^^^^^^^^^^^^^^^^^^^^^
2024-08-09T16:55:02.864070674Z   File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 1211, in make_response
2024-08-09T16:55:02.864200550Z     raise TypeError(
2024-08-09T16:55:02.864293683Z TypeError: The view function did not return a valid response. The return type must be a string, dict, list, tuple with headers or status, Response instance, or WSGI callable, but it was a tuple.
2024-08-09T16:55:07.195136310Z [INFO] Reading channel id list cache
2024-08-09T16:55:07.195769839Z [INFO] Retriving EPG Data
2024-08-09T16:55:11.377434955Z [INFO] Channels: Available EPG data: 167
2024-08-09T16:55:11.788043865Z [INFO] Retriving EPG Data

13 posts were split to a new topic: Need help installing Tubi for Channels docker

For some reason I've got one Tubi channel missing from my playlist. "At the Movies" from WB does't appear. Is this only on the Gracenote or EPG only playlist instead of the regular Tubi playlist?

I'm seeing "At the Movies" on tubi/playlist.m3u and tubi/playlist.m3u?gracenote=exclude

Hmm. Weird. Not showing up for me. Oh well, not a deal breaker, just strange.

Yes I set up each version of Tubi seperately and that particular channel only shows up on this one with 49 channels:
http://10.0.1.21:7755/tubi/playlist.m3u?gracenote=exclude
That playlist's channels have crappy guide data though. But I figure it's better than zero guide data. After all, it's free.

This other playlist has great guide data for 129 channels via Gracenote:
http://10.0.1.21:7755/tubi/playlist.m3u?gracenote=include

SCR-20240912-mdgb

I also created an "automatic" Channel Collection to combine both of these sources into one, just called Tubi. Followed this great tip: Automatic Channel Collections - INCLUDE sources - #9 by fashioncents

1 Like

Thanks much I will give that a shot.

I'm having an issue with the Tubi docker. None of the channels or guide data are showing up at all. Here's what I have in the Docker log.

2024-10-27 20:10:06 [INFO] Initialize XML File
2024-10-27 20:10:06 [INFO] Retriving EPG Data
2024-10-27 20:10:06 [INFO] Initialize channel_list
2024-10-27 20:10:08 Error: No Data located
2024-10-27 20:10:08 ⇨ http server started on [::]:7777
2024-10-27 20:11:33 [INFO] Retriving EPG Data
2024-10-27 20:11:33 [INFO] Initialize channel_list

And here are some screenshots of the error messages I received.



I hope any of this is useful to someone here. From just looking around this community, I'm clearly not the tech-savviest person here, so I turn to my betters in my time of need. If there's any more information I can provide that'd help, please let me know!

Yes noticed that as well. I assume they changed the API and will look into it when I return from vacation

1 Like

Swell! Thanks in advance, and enjoy the rest of your vacation!