Pluto for Channels

Hi there,
all fixed.
Had to re-deply the docker.

Ok, so I pulled jgomez177/pluto-for-channels from docker and now I went from v1.2.14 down to v1.03. Is that correct? I also now have a lot more choices to pick from for the playlist.m3u and epg.xml files. I'm located in the US on the East Coast.

Questions:

  • What's the mjh_compatible vs maddox_compatible? Do I pick one of these for the playlists or one that's listed on the main page?
  • What's the difference between the PLUTO LOCAL vs PLUTO US_EAST?
  • Do I pick the xml or xml.gz file for the EPG?

See screenshot below:

2 Likes

Doesn't matter unless you want the channel-id in the playlist to match maddox or i.mhz.nz style

Local vs East vs West from what you can see comparing the Playlist M3U's
Local: CBS News city, WeatherNation city and maybe some local stations
East: CBS News Philadelphia, WeatherNation Charlotte, WSB Atlanta, WSOC Charlotte, WFTV Orlando
West: WeatherNation Los Angeles, KIRO Seattle

Doesn't matter, they're identical. The *.xml.gz are zipped versions of the *.xml. Channels handles both.

1 Like

I am unable to find Orlando WeatherNation. I am using NoCords.

Should I move to another playlist?

2 Likes

Thank you. This is really helpful.

1 Like

I have migrated the latest version over to GitHub

docker pull ghcr.io/jgomez177/pluto-for-channels:latest

Version 1.04 that cleans up the code and gives the option to pull only those wanted playlists

2 Likes

Once I can port some of my changes from python into javascript may look at doing a PR :blush:

1 Like

No more US East, US West, Canada, UK ?
I only use US Local.

Pluto Playlist v1.04

Last Updated: Feb 23, 2024

PLUTO LOCAL: http://192.168.1.3:8080/pluto/local/playlist.m3u
PLUTO LOCAL channel-id by "provider"-"id" (i.mjh.nz compatibility): http://192.168.1.3:8080/mjh_compatible/pluto/local/playlist.m3u
PLUTO LOCAL channel-id by "slug" (maddox compatibility): http://192.168.1.3:8080/maddox_compatible/pluto/local/playlist.m3u

PLUTO LOCAL EPG: http://192.168.1.3:8080/pluto/epg/local/epg-local.xml
PLUTO LOCAL EPG GZ: http://192.168.1.3:8080/pluto/epg/local/epg-local.xml.gz

This one doesn't play the channels for me.
Here's the docker log after trying to watch 2 channels live.

2024-02-24T03:24:17.226846378Z [2024-02-23 19:24:17,223] ERROR in app: Exception on /pluto/local/watch/5efbd39f8c4ce900075d7698 [GET]
2024-02-24T03:24:17.227825379Z Traceback (most recent call last):
2024-02-24T03:24:17.228117511Z   File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 1463, in wsgi_app
2024-02-24T03:24:17.228500422Z     response = self.full_dispatch_request()
2024-02-24T03:24:17.228688011Z                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-02-24T03:24:17.228976454Z   File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 872, in full_dispatch_request
2024-02-24T03:24:17.229150728Z     rv = self.handle_user_exception(e)
2024-02-24T03:24:17.229252090Z          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-02-24T03:24:17.229387439Z   File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 870, in full_dispatch_request
2024-02-24T03:24:17.229559762Z     rv = self.dispatch_request()
2024-02-24T03:24:17.229665473Z          ^^^^^^^^^^^^^^^^^^^^^^^
2024-02-24T03:24:17.229751170Z   File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 855, in dispatch_request
2024-02-24T03:24:17.230180764Z     return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)  # type: ignore[no-any-return]
2024-02-24T03:24:17.230374398Z            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-02-24T03:24:17.230473403Z   File "/app/pywsgi.py", line 213, in watch
2024-02-24T03:24:17.230575945Z     token = resp.get('token','')
2024-02-24T03:24:17.230671052Z             ^^^^^^^^
2024-02-24T03:24:17.230752549Z AttributeError: 'tuple' object has no attribute 'get'
2024-02-24T03:24:18.309573243Z [2024-02-23 19:24:18,306] ERROR in app: Exception on /pluto/local/watch/5efbd39f8c4ce900075d7698 [GET]
2024-02-24T03:24:18.310470679Z Traceback (most recent call last):
2024-02-24T03:24:18.310667613Z   File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 1463, in wsgi_app
2024-02-24T03:24:18.310884021Z     response = self.full_dispatch_request()
2024-02-24T03:24:18.311076391Z                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-02-24T03:24:18.311223018Z   File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 872, in full_dispatch_request
2024-02-24T03:24:18.311517149Z     rv = self.handle_user_exception(e)
2024-02-24T03:24:18.311708238Z          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-02-24T03:24:18.311900993Z   File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 870, in full_dispatch_request
2024-02-24T03:24:18.312108954Z     rv = self.dispatch_request()
2024-02-24T03:24:18.312214635Z          ^^^^^^^^^^^^^^^^^^^^^^^
2024-02-24T03:24:18.312298419Z   File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 855, in dispatch_request
2024-02-24T03:24:18.312467054Z     return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)  # type: ignore[no-any-return]
2024-02-24T03:24:18.312590257Z            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-02-24T03:24:18.312676093Z   File "/app/pywsgi.py", line 213, in watch
2024-02-24T03:24:18.312772749Z     token = resp.get('token','')
2024-02-24T03:24:18.312904381Z             ^^^^^^^^
2024-02-24T03:24:18.312989499Z AttributeError: 'tuple' object has no attribute 'get'
2024-02-24T03:24:19.252793460Z [2024-02-23 19:24:19,249] ERROR in app: Exception on /pluto/local/watch/5efbd39f8c4ce900075d7698 [GET]
2024-02-24T03:24:19.253721165Z Traceback (most recent call last):
2024-02-24T03:24:19.253905919Z   File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 1463, in wsgi_app
2024-02-24T03:24:19.254041603Z     response = self.full_dispatch_request()
2024-02-24T03:24:19.254214339Z                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-02-24T03:24:19.254454949Z   File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 872, in full_dispatch_request
2024-02-24T03:24:19.254656350Z     rv = self.handle_user_exception(e)
2024-02-24T03:24:19.254835240Z          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-02-24T03:24:19.254968732Z   File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 870, in full_dispatch_request
2024-02-24T03:24:19.255191264Z     rv = self.dispatch_request()
2024-02-24T03:24:19.255395052Z          ^^^^^^^^^^^^^^^^^^^^^^^
2024-02-24T03:24:19.255515116Z   File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 855, in dispatch_request
2024-02-24T03:24:19.255633887Z     return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)  # type: ignore[no-any-return]
2024-02-24T03:24:19.256066947Z            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-02-24T03:24:19.256191891Z   File "/app/pywsgi.py", line 213, in watch
2024-02-24T03:24:19.256295024Z     token = resp.get('token','')
2024-02-24T03:24:19.256476974Z             ^^^^^^^^
2024-02-24T03:24:19.256585557Z AttributeError: 'tuple' object has no attribute 'get'
2024-02-24T03:24:20.390733547Z [2024-02-23 19:24:20,385] ERROR in app: Exception on /pluto/local/watch/5efbd39f8c4ce900075d7698 [GET]
2024-02-24T03:24:20.390948184Z Traceback (most recent call last):
2024-02-24T03:24:20.391049610Z   File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 1463, in wsgi_app
2024-02-24T03:24:20.391196670Z     response = self.full_dispatch_request()
2024-02-24T03:24:20.391290622Z                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-02-24T03:24:20.391464388Z   File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 872, in full_dispatch_request
2024-02-24T03:24:20.391585344Z     rv = self.handle_user_exception(e)
2024-02-24T03:24:20.391678288Z          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-02-24T03:24:20.391763888Z   File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 870, in full_dispatch_request
2024-02-24T03:24:20.391869945Z     rv = self.dispatch_request()
2024-02-24T03:24:20.392003355Z          ^^^^^^^^^^^^^^^^^^^^^^^
2024-02-24T03:24:20.392177993Z   File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 855, in dispatch_request
2024-02-24T03:24:20.392387796Z     return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)  # type: ignore[no-any-return]
2024-02-24T03:24:20.392607354Z            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-02-24T03:24:20.392791917Z   File "/app/pywsgi.py", line 213, in watch
2024-02-24T03:24:20.393018704Z     token = resp.get('token','')
2024-02-24T03:24:20.393207469Z             ^^^^^^^^
2024-02-24T03:24:20.393304771Z AttributeError: 'tuple' object has no attribute 'get'
2024-02-24T03:24:21.270138187Z [2024-02-23 19:24:21,266] ERROR in app: Exception on /pluto/local/watch/5efbd39f8c4ce900075d7698 [GET]
2024-02-24T03:24:21.271064912Z Traceback (most recent call last):
2024-02-24T03:24:21.271266927Z   File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 1463, in wsgi_app
2024-02-24T03:24:21.271644154Z     response = self.full_dispatch_request()
2024-02-24T03:24:21.271833075Z                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-02-24T03:24:21.272009249Z   File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 872, in full_dispatch_request
2024-02-24T03:24:21.272179964Z     rv = self.handle_user_exception(e)
2024-02-24T03:24:21.272447880Z          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-02-24T03:24:21.272624507Z   File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 870, in full_dispatch_request
2024-02-24T03:24:21.272752756Z     rv = self.dispatch_request()
2024-02-24T03:24:21.272844239Z          ^^^^^^^^^^^^^^^^^^^^^^^
2024-02-24T03:24:21.272928271Z   File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 855, in dispatch_request
2024-02-24T03:24:21.273033907Z     return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)  # type: ignore[no-any-return]
2024-02-24T03:24:21.273152382Z            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-02-24T03:24:21.273593370Z   File "/app/pywsgi.py", line 213, in watch
2024-02-24T03:24:21.273744320Z     token = resp.get('token','')
2024-02-24T03:24:21.273841990Z             ^^^^^^^^
2024-02-24T03:24:21.273927522Z AttributeError: 'tuple' object has no attribute 'get'
2024-02-24T03:24:22.343720902Z [2024-02-23 19:24:22,340] ERROR in app: Exception on /pluto/local/watch/5efbd39f8c4ce900075d7698 [GET]
2024-02-24T03:24:22.343970346Z Traceback (most recent call last):
2024-02-24T03:24:22.344084613Z   File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 1463, in wsgi_app
2024-02-24T03:24:22.344193748Z     response = self.full_dispatch_request()
2024-02-24T03:24:22.344285489Z                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-02-24T03:24:22.344465208Z   File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 872, in full_dispatch_request
2024-02-24T03:24:22.344591843Z     rv = self.handle_user_exception(e)
2024-02-24T03:24:22.344686434Z          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-02-24T03:24:22.344772494Z   File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 870, in full_dispatch_request
2024-02-24T03:24:22.344882679Z     rv = self.dispatch_request()
2024-02-24T03:24:22.344979201Z          ^^^^^^^^^^^^^^^^^^^^^^^
2024-02-24T03:24:22.345172739Z   File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 855, in dispatch_request
2024-02-24T03:24:22.345365642Z     return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)  # type: ignore[no-any-return]
2024-02-24T03:24:22.345582165Z            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-02-24T03:24:22.345736752Z   File "/app/pywsgi.py", line 213, in watch
2024-02-24T03:24:22.345897910Z     token = resp.get('token','')
2024-02-24T03:24:22.346105779Z             ^^^^^^^^
2024-02-24T03:24:22.346224647Z AttributeError: 'tuple' object has no attribute 'get'
2024-02-24T03:24:23.368950206Z [2024-02-23 19:24:23,365] ERROR in app: Exception on /pluto/local/watch/5efbd39f8c4ce900075d7698 [GET]
2024-02-24T03:24:23.369861041Z Traceback (most recent call last):
2024-02-24T03:24:23.370049526Z   File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 1463, in wsgi_app
2024-02-24T03:24:23.370191248Z     response = self.full_dispatch_request()
2024-02-24T03:24:23.370393352Z                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-02-24T03:24:23.370574546Z   File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 872, in full_dispatch_request
2024-02-24T03:24:23.370751545Z     rv = self.handle_user_exception(e)
2024-02-24T03:24:23.370938367Z          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-02-24T03:24:23.371076815Z   File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 870, in full_dispatch_request
2024-02-24T03:24:23.371268618Z     rv = self.dispatch_request()
2024-02-24T03:24:23.371579655Z          ^^^^^^^^^^^^^^^^^^^^^^^
2024-02-24T03:24:23.371686693Z   File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 855, in dispatch_request
2024-02-24T03:24:23.371803810Z     return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)  # type: ignore[no-any-return]
2024-02-24T03:24:23.371920533Z            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-02-24T03:24:23.372006196Z   File "/app/pywsgi.py", line 213, in watch
2024-02-24T03:24:23.372103674Z     token = resp.get('token','')
2024-02-24T03:24:23.372540170Z             ^^^^^^^^
2024-02-24T03:24:23.372681113Z AttributeError: 'tuple' object has no attribute 'get'
2024-02-24T03:24:24.515499700Z [2024-02-23 19:24:24,509] ERROR in app: Exception on /pluto/local/watch/5efbd39f8c4ce900075d7698 [GET]
2024-02-24T03:24:24.516618681Z Traceback (most recent call last):
2024-02-24T03:24:24.516884313Z   File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 1463, in wsgi_app
2024-02-24T03:24:24.517179926Z     response = self.full_dispatch_request()
2024-02-24T03:24:24.517557987Z                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-02-24T03:24:24.517788109Z   File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 872, in full_dispatch_request
2024-02-24T03:24:24.518015742Z     rv = self.handle_user_exception(e)
2024-02-24T03:24:24.518231679Z          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-02-24T03:24:24.518518653Z   File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 870, in full_dispatch_request
2024-02-24T03:24:24.518780841Z     rv = self.dispatch_request()
2024-02-24T03:24:24.518992482Z          ^^^^^^^^^^^^^^^^^^^^^^^
2024-02-24T03:24:24.519180233Z   File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 855, in dispatch_request
2024-02-24T03:24:24.519519904Z     return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)  # type: ignore[no-any-return]
2024-02-24T03:24:24.520504746Z            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-02-24T03:24:24.521191405Z   File "/app/pywsgi.py", line 213, in watch
2024-02-24T03:24:24.521510114Z     token = resp.get('token','')
2024-02-24T03:24:24.521739431Z             ^^^^^^^^
2024-02-24T03:24:24.521902724Z AttributeError: 'tuple' object has no attribute 'get'
2024-02-24T03:25:01.005390906Z [2024-02-23 19:25:01,002] ERROR in app: Exception on /pluto/local/watch/55b285cd2665de274553d66f [GET]
2024-02-24T03:25:01.007964226Z Traceback (most recent call last):
2024-02-24T03:25:01.008238643Z   File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 1463, in wsgi_app
2024-02-24T03:25:01.008609395Z     response = self.full_dispatch_request()
2024-02-24T03:25:01.008822243Z                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-02-24T03:25:01.008980505Z   File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 872, in full_dispatch_request
2024-02-24T03:25:01.009172890Z     rv = self.handle_user_exception(e)
2024-02-24T03:25:01.009433819Z          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-02-24T03:25:01.009614604Z   File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 870, in full_dispatch_request
2024-02-24T03:25:01.009783366Z     rv = self.dispatch_request()
2024-02-24T03:25:01.009921832Z          ^^^^^^^^^^^^^^^^^^^^^^^
2024-02-24T03:25:01.010062723Z   File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 855, in dispatch_request
2024-02-24T03:25:01.010241838Z     return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)  # type: ignore[no-any-return]
2024-02-24T03:25:01.010524819Z            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-02-24T03:25:01.010699649Z   File "/app/pywsgi.py", line 213, in watch
2024-02-24T03:25:01.010912640Z     token = resp.get('token','')
2024-02-24T03:25:01.011080530Z             ^^^^^^^^
2024-02-24T03:25:01.011218030Z AttributeError: 'tuple' object has no attribute 'get'
2024-02-24T03:25:02.081394422Z [2024-02-23 19:25:02,078] ERROR in app: Exception on /pluto/local/watch/55b285cd2665de274553d66f [GET]
2024-02-24T03:25:02.081618702Z Traceback (most recent call last):
2024-02-24T03:25:02.081723424Z   File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 1463, in wsgi_app
2024-02-24T03:25:02.081833589Z     response = self.full_dispatch_request()
2024-02-24T03:25:02.081925529Z                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-02-24T03:25:02.082010458Z   File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 872, in full_dispatch_request
2024-02-24T03:25:02.082111747Z     rv = self.handle_user_exception(e)
2024-02-24T03:25:02.082209593Z          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-02-24T03:25:02.082310209Z   File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 870, in full_dispatch_request
2024-02-24T03:25:02.082462388Z     rv = self.dispatch_request()
2024-02-24T03:25:02.082556422Z          ^^^^^^^^^^^^^^^^^^^^^^^
2024-02-24T03:25:02.082641091Z   File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 855, in dispatch_request
2024-02-24T03:25:02.082748813Z     return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)  # type: ignore[no-any-return]
2024-02-24T03:25:02.082855824Z            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-02-24T03:25:02.082944418Z   File "/app/pywsgi.py", line 213, in watch
2024-02-24T03:25:02.083040723Z     token = resp.get('token','')
2024-02-24T03:25:02.083131126Z             ^^^^^^^^
2024-02-24T03:25:02.083226611Z AttributeError: 'tuple' object has no attribute 'get'
2024-02-24T03:25:03.041857525Z [2024-02-23 19:25:03,038] ERROR in app: Exception on /pluto/local/watch/55b285cd2665de274553d66f [GET]
2024-02-24T03:25:03.042651054Z Traceback (most recent call last):
2024-02-24T03:25:03.042815347Z   File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 1463, in wsgi_app
2024-02-24T03:25:03.042946180Z     response = self.full_dispatch_request()
2024-02-24T03:25:03.043052785Z                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-02-24T03:25:03.043150194Z   File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 872, in full_dispatch_request
2024-02-24T03:25:03.043260442Z     rv = self.handle_user_exception(e)
2024-02-24T03:25:03.043432128Z          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-02-24T03:25:03.043580710Z   File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 870, in full_dispatch_request
2024-02-24T03:25:03.043721404Z     rv = self.dispatch_request()
2024-02-24T03:25:03.043817125Z          ^^^^^^^^^^^^^^^^^^^^^^^
2024-02-24T03:25:03.043908561Z   File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 855, in dispatch_request
2024-02-24T03:25:03.044015361Z     return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)  # type: ignore[no-any-return]
2024-02-24T03:25:03.044136710Z            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-02-24T03:25:03.044237295Z   File "/app/pywsgi.py", line 213, in watch
2024-02-24T03:25:03.044376993Z     token = resp.get('token','')
2024-02-24T03:25:03.044501485Z             ^^^^^^^^
2024-02-24T03:25:03.044590067Z AttributeError: 'tuple' object has no attribute 'get'
2024-02-24T03:25:04.114881341Z [2024-02-23 19:25:04,111] ERROR in app: Exception on /pluto/local/watch/55b285cd2665de274553d66f [GET]
2024-02-24T03:25:04.115491493Z Traceback (most recent call last):
2024-02-24T03:25:04.115722941Z   File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 1463, in wsgi_app
2024-02-24T03:25:04.115928462Z     response = self.full_dispatch_request()
2024-02-24T03:25:04.116115430Z                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-02-24T03:25:04.116283975Z   File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 872, in full_dispatch_request
2024-02-24T03:25:04.116627856Z     rv = self.handle_user_exception(e)
2024-02-24T03:25:04.116970129Z          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-02-24T03:25:04.117456778Z   File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 870, in full_dispatch_request
2024-02-24T03:25:04.117748988Z     rv = self.dispatch_request()
2024-02-24T03:25:04.118166308Z          ^^^^^^^^^^^^^^^^^^^^^^^
2024-02-24T03:25:04.118322676Z   File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 855, in dispatch_request
2024-02-24T03:25:04.118527006Z     return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)  # type: ignore[no-any-return]
2024-02-24T03:25:04.118646202Z            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-02-24T03:25:04.118734944Z   File "/app/pywsgi.py", line 213, in watch
2024-02-24T03:25:04.118830471Z     token = resp.get('token','')
2024-02-24T03:25:04.118920586Z             ^^^^^^^^
2024-02-24T03:25:04.119002178Z AttributeError: 'tuple' object has no attribute 'get'
2024-02-24T03:25:05.068111359Z [2024-02-23 19:25:05,064] ERROR in app: Exception on /pluto/local/watch/55b285cd2665de274553d66f [GET]
2024-02-24T03:25:05.128253395Z Traceback (most recent call last):
2024-02-24T03:25:05.128500411Z   File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 1463, in wsgi_app
2024-02-24T03:25:05.128645606Z     response = self.full_dispatch_request()
2024-02-24T03:25:05.128742126Z                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-02-24T03:25:05.128825459Z   File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 872, in full_dispatch_request
2024-02-24T03:25:05.128926501Z     rv = self.handle_user_exception(e)
2024-02-24T03:25:05.129018457Z          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-02-24T03:25:05.129105166Z   File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 870, in full_dispatch_request
2024-02-24T03:25:05.129207761Z     rv = self.dispatch_request()
2024-02-24T03:25:05.129294650Z          ^^^^^^^^^^^^^^^^^^^^^^^
2024-02-24T03:25:05.129425484Z   File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 855, in dispatch_request
2024-02-24T03:25:05.129542496Z     return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)  # type: ignore[no-any-return]
2024-02-24T03:25:05.129656245Z            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-02-24T03:25:05.129747855Z   File "/app/pywsgi.py", line 213, in watch
2024-02-24T03:25:05.129845635Z     token = resp.get('token','')
2024-02-24T03:25:05.129939985Z             ^^^^^^^^
2024-02-24T03:25:05.130021949Z AttributeError: 'tuple' object has no attribute 'get'
2024-02-24T03:25:06.209578698Z [2024-02-23 19:25:06,206] ERROR in app: Exception on /pluto/local/watch/55b285cd2665de274553d66f [GET]
2024-02-24T03:25:06.210458605Z Traceback (most recent call last):
2024-02-24T03:25:06.210653868Z   File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 1463, in wsgi_app
2024-02-24T03:25:06.211071087Z     response = self.full_dispatch_request()
2024-02-24T03:25:06.211215582Z                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-02-24T03:25:06.211309861Z   File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 872, in full_dispatch_request
2024-02-24T03:25:06.211590666Z     rv = self.handle_user_exception(e)
2024-02-24T03:25:06.211703106Z          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-02-24T03:25:06.211793550Z   File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 870, in full_dispatch_request
2024-02-24T03:25:06.211913467Z     rv = self.dispatch_request()
2024-02-24T03:25:06.212017768Z          ^^^^^^^^^^^^^^^^^^^^^^^
2024-02-24T03:25:06.212103453Z   File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 855, in dispatch_request
2024-02-24T03:25:06.212207400Z     return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)  # type: ignore[no-any-return]
2024-02-24T03:25:06.212358594Z            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-02-24T03:25:06.212477079Z   File "/app/pywsgi.py", line 213, in watch
2024-02-24T03:25:06.212582647Z     token = resp.get('token','')
2024-02-24T03:25:06.212678091Z             ^^^^^^^^
2024-02-24T03:25:06.212760144Z AttributeError: 'tuple' object has no attribute 'get'
2024-02-24T03:25:07.093507863Z [2024-02-23 19:25:07,090] ERROR in app: Exception on /pluto/local/watch/55b285cd2665de274553d66f [GET]
2024-02-24T03:25:07.094385532Z Traceback (most recent call last):
2024-02-24T03:25:07.094567151Z   File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 1463, in wsgi_app
2024-02-24T03:25:07.094705004Z     response = self.full_dispatch_request()
2024-02-24T03:25:07.094804472Z                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-02-24T03:25:07.094891071Z   File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 872, in full_dispatch_request
2024-02-24T03:25:07.095011094Z     rv = self.handle_user_exception(e)
2024-02-24T03:25:07.095110671Z          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-02-24T03:25:07.095205033Z   File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 870, in full_dispatch_request
2024-02-24T03:25:07.095433516Z     rv = self.dispatch_request()
2024-02-24T03:25:07.095555125Z          ^^^^^^^^^^^^^^^^^^^^^^^
2024-02-24T03:25:07.095641815Z   File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 855, in dispatch_request
2024-02-24T03:25:07.095751402Z     return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)  # type: ignore[no-any-return]
2024-02-24T03:25:07.095869546Z            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-02-24T03:25:07.095973077Z   File "/app/pywsgi.py", line 213, in watch
2024-02-24T03:25:07.096075044Z     token = resp.get('token','')
2024-02-24T03:25:07.096165741Z             ^^^^^^^^
2024-02-24T03:25:07.096247111Z AttributeError: 'tuple' object has no attribute 'get'
2024-02-24T03:25:08.179419033Z [2024-02-23 19:25:08,176] ERROR in app: Exception on /pluto/local/watch/55b285cd2665de274553d66f [GET]
2024-02-24T03:25:08.179663149Z Traceback (most recent call last):
2024-02-24T03:25:08.179766928Z   File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 1463, in wsgi_app
2024-02-24T03:25:08.179870819Z     response = self.full_dispatch_request()
2024-02-24T03:25:08.179960309Z                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-02-24T03:25:08.180311606Z   File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 872, in full_dispatch_request
2024-02-24T03:25:08.180680675Z     rv = self.handle_user_exception(e)
2024-02-24T03:25:08.180807171Z          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-02-24T03:25:08.180894992Z   File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 870, in full_dispatch_request
2024-02-24T03:25:08.180998820Z     rv = self.dispatch_request()
2024-02-24T03:25:08.181091197Z          ^^^^^^^^^^^^^^^^^^^^^^^
2024-02-24T03:25:08.181174943Z   File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 855, in dispatch_request
2024-02-24T03:25:08.181277049Z     return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)  # type: ignore[no-any-return]
2024-02-24T03:25:08.181443955Z            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-02-24T03:25:08.181551095Z   File "/app/pywsgi.py", line 213, in watch
2024-02-24T03:25:08.181647958Z     token = resp.get('token','')
2024-02-24T03:25:08.181737200Z             ^^^^^^^^
2024-02-24T03:25:08.181819725Z AttributeError: 'tuple' object has no attribute 'get'

None of the channels play.
Restarted the container and still the same errors.
Re-pulled and ran again. Same errors.
Giving up on this version.

Thanks for the find, my bad - corrected the error,
Also I had changed the default to only local - but put that back to all available
You can use the optional variable to only select local:

-e PLUTO_CODE=local
# docker pull ghcr.io/jgomez177/pluto-for-channels:latest
latest: Pulling from jgomez177/pluto-for-channels
manifest unknown
# docker pull ghcr.io/jgomez177/pluto-for-channels:1.05
1.05: Pulling from jgomez177/pluto-for-channels
manifest unknown

:x: :interrobang:

1 Like

Nocords pulls using code developed by maddox. And i do not pull data using any geolocation of Orlando, so would be a national weathernation feed

weird...did a rebuild, try again

OK, pulling now. Will reply back if I can actually play a channel :grinning:

Finally. This one works!

The channels are back.
thanks for the quick fix.

1 Like

The container is holding on to old stale guide data!

Two symptoms

  1. Increasing counts of airings and skipped (stale) airings
2024/02/23 21:22:16.587896 [DVR] Indexed 12882 airings into XMLTV-Plutojg (392 channels over 38h30m0s) + 62 skipped [17s index]
2024/02/23 23:23:09.988965 [DVR] Indexed 24801 airings into XMLTV-Plutojg (392 channels over 38h5m0s) + 1069 skipped [33s index]
2024/02/24 01:24:34.684970 [DVR] Indexed 35635 airings into XMLTV-Plutojg (391 channels over 40h0m0s) + 2995 skipped [47s index]
2024/02/24 03:26:29.618113 [DVR] Indexed 45602 airings into XMLTV-Plutojg (391 channels over 38h30m0s) + 5882 skipped [1m1s index]
2024/02/24 05:28:54.249475 [DVR] Indexed 54592 airings into XMLTV-Plutojg (391 channels over 39h0m0s) + 9750 skipped [1m15s index]
2024/02/24 09:54:41.782107 [DVR] Indexed 68332 airings into XMLTV-Plutojg (391 channels over 38h0m0s) + 21724 skipped [1m34s index]
  1. Increasing container memory usage

Here's the oldest airing in the XML guide data. Time corresponds to the first fetch when the container was started.

  <programme channel="545943f1c9f133a519bbac92" start="20240224050000 +0000" stop="20240224064500 +0000">
    <title>Mystery Science Theater 3000: The Wild Wild World of Batwoman</title>

Thanks, forgot to purge old data and just piling on...
will correct that

@joagomez Is PLUTO_CODE=all correct to explicitly set it to "all available"

Edit: Never mind, I see it now in the docs -- temporary brain freeze.

1 Like

https://github.com/jgomez177/pluto-for-channels?tab=readme-ov-file#environement-variables

I saw the documentation, but there's also supposed to be an "all" option. Usually something like that can be set explicitly, rather than only in the absence of other settings.