Pluto for Channels

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.

Where did you see that?

Looking at it again though, maybe it's a comma separated list that includes everything shown in the doc, as opposed to something like "all":

PLUTO_CODE=us_east,us_west,local,ca,uk

Or some subset of the above? Not sure why you'd want all of them, but maybe one region and local?

Doh, I see it now, it's a comma separated list shown right in the default box in the docs.

1 Like

@joagomez
You can tell you pulled :latest :1.06 commit 8b612ce
When you see this

Because v1.04 Last Updated: Feb 23, 2024 is hard coded in the included pywsgi.py

          <section class="section">\
            <div class="container">\
              <h1 class="title">\
                {provider.capitalize()} Playlist\
                <span class="tag">v1.04</span>\
              </h1>\
              <p class="subtitle">\
                Last Updated: Feb 23, 2024\
              '