[RELEASE] Stream Link/File Manager for Channels [Streaming Library Manager Extension]

Sounds like a plan, I was curious about the lack of anything indicating the issue occurred. If I could recreate on demand it would be easy, but in an effort to prevent it I've just done small changes at one time.

Very large info dump here, this is what I am getting now in the logs after the update:

2024-12-09 19:08:49.071184:  ERROR: Webpage responded... 413 REQUEST ENTITY TOO LARGE
    Client IP: 192.168.1.125
    Method: POST
    URL: http://192.168.1.40:5000/playlists/plm_modify_assigned_stations
    Headers: 
        Host: 192.168.1.40:5000
        User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:133.0) Gecko/20100101 Firefox/133.0
        Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
        Accept-Language: en-US,en;q=0.5
        Accept-Encoding: gzip, deflate
        Content-Type: application/x-www-form-urlencoded
        Content-Length: 905301
        Origin: http://192.168.1.40:5000
        Connection: keep-alive
        Referer: http://192.168.1.40:5000/playlists/plm_modify_assigned_stations
        Cookie: portainer_api_key=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MSwidXNlcm5hbWUiOiJhZG1pbiIsInJvbGUiOjEsInNjb3BlIjoiZGVmYXVsdCIsImZvcmNlQ2hhbmdlUGFzc3dvcmQiOmZhbHNlLCJleHAiOjE3MzM4MjE0OTIsImp0aSI6ImY2NDM4ZGM3LTBlMzQtNDUyOS1iMDBiLTJmZGRiMDMwYzZiZCIsImlhdCI6MTczMzc5MjY5Mn0.9Gp3x3OXnNCgetceS3784QWXXztYa8cfiM79JT_Ayh4; _gorilla_csrf=MTczMzc5MjY5MnxJakpFWW5GcVNqVnRkVUpSVDBZMmRubHVaVms0YjA1eksxRXhZak5TYzNWalkwZGFkWHBtYm1ORGR6QTlJZ289fKXIk3gpAVtj0o9bMxRCjpvvY90CM7k73seBU7dBBEv1
        Upgrade-Insecure-Requests: 1
        Priority: u=0, i
    User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:133.0) Gecko/20100101 Firefox/133.0
    Args: ImmutableMultiDict([])
[ERROR | 2024-12-09 19:08:49,071] - Exception on /playlists/plm_modify_assigned_stations [POST]
Traceback (most recent call last):
  File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 1511, in wsgi_app
    response = self.full_dispatch_request()
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 920, in full_dispatch_request
    return self.finalize_request(rv)
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 941, in finalize_request
    response = self.process_response(response)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 1319, in process_response
    response = self.ensure_sync(func)(response)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/app/slm.py", line 7183, in web_errors
    if request.data:
       ^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/werkzeug/utils.py", line 107, in __get__
    value = self.fget(obj)  # type: ignore
            ^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/werkzeug/wrappers/request.py", line 373, in data
    return self.get_data(parse_form_data=True)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/werkzeug/wrappers/request.py", line 421, in get_data
    self._load_form_data()
  File "/usr/local/lib/python3.12/site-packages/flask/wrappers.py", line 198, in _load_form_data
    super()._load_form_data()
  File "/usr/local/lib/python3.12/site-packages/werkzeug/wrappers/request.py", line 271, in _load_form_data
    data = parser.parse(
           ^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/werkzeug/formparser.py", line 242, in parse
    return parse_func(stream, mimetype, content_length, options)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/werkzeug/formparser.py", line 282, in _parse_urlencoded
    raise RequestEntityTooLarge()
werkzeug.exceptions.RequestEntityTooLarge: 413 Request Entity Too Large: The data value transmitted exceeds the capacity limit.
2024-12-09 19:08:49.073427:  ERROR: Webpage responded... 500 INTERNAL SERVER ERROR
    Client IP: 192.168.1.125
    Method: POST
    URL: http://192.168.1.40:5000/playlists/plm_modify_assigned_stations
    Headers: 
        Host: 192.168.1.40:5000
        User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:133.0) Gecko/20100101 Firefox/133.0
        Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
        Accept-Language: en-US,en;q=0.5
        Accept-Encoding: gzip, deflate
        Content-Type: application/x-www-form-urlencoded
        Content-Length: 905301
        Origin: http://192.168.1.40:5000
        Connection: keep-alive
        Referer: http://192.168.1.40:5000/playlists/plm_modify_assigned_stations
        Cookie: portainer_api_key=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MSwidXNlcm5hbWUiOiJhZG1pbiIsInJvbGUiOjEsInNjb3BlIjoiZGVmYXVsdCIsImZvcmNlQ2hhbmdlUGFzc3dvcmQiOmZhbHNlLCJleHAiOjE3MzM4MjE0OTIsImp0aSI6ImY2NDM4ZGM3LTBlMzQtNDUyOS1iMDBiLTJmZGRiMDMwYzZiZCIsImlhdCI6MTczMzc5MjY5Mn0.9Gp3x3OXnNCgetceS3784QWXXztYa8cfiM79JT_Ayh4; _gorilla_csrf=MTczMzc5MjY5MnxJakpFWW5GcVNqVnRkVUpSVDBZMmRubHVaVms0YjA1eksxRXhZak5TYzNWalkwZGFkWHBtYm1ORGR6QTlJZ289fKXIk3gpAVtj0o9bMxRCjpvvY90CM7k73seBU7dBBEv1
        Upgrade-Insecure-Requests: 1
        Priority: u=0, i
    User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:133.0) Gecko/20100101 Firefox/133.0
    Args: ImmutableMultiDict([])
[ERROR | 2024-12-09 19:08:49,073] - Request finalizing failed with an error while handling an error
Traceback (most recent call last):
  File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 1511, in wsgi_app
    response = self.full_dispatch_request()
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 920, in full_dispatch_request
    return self.finalize_request(rv)
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 941, in finalize_request
    response = self.process_response(response)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 1319, in process_response
    response = self.ensure_sync(func)(response)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/app/slm.py", line 7183, in web_errors
    if request.data:
       ^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/werkzeug/utils.py", line 107, in __get__
    value = self.fget(obj)  # type: ignore
            ^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/werkzeug/wrappers/request.py", line 373, in data
    return self.get_data(parse_form_data=True)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/werkzeug/wrappers/request.py", line 421, in get_data
    self._load_form_data()
  File "/usr/local/lib/python3.12/site-packages/flask/wrappers.py", line 198, in _load_form_data
    super()._load_form_data()
  File "/usr/local/lib/python3.12/site-packages/werkzeug/wrappers/request.py", line 271, in _load_form_data
    data = parser.parse(
           ^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/werkzeug/formparser.py", line 242, in parse
    return parse_func(stream, mimetype, content_length, options)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/werkzeug/formparser.py", line 282, in _parse_urlencoded
    raise RequestEntityTooLarge()
werkzeug.exceptions.RequestEntityTooLarge: 413 Request Entity Too Large: The data value transmitted exceeds the capacity limit.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 941, in finalize_request
    response = self.process_response(response)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 1319, in process_response
    response = self.ensure_sync(func)(response)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/app/slm.py", line 7183, in web_errors
    if request.data:
       ^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/werkzeug/utils.py", line 107, in __get__
    value = self.fget(obj)  # type: ignore
            ^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/werkzeug/wrappers/request.py", line 373, in data
    return self.get_data(parse_form_data=True)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/werkzeug/wrappers/request.py", line 421, in get_data
    self._load_form_data()
  File "/usr/local/lib/python3.12/site-packages/flask/wrappers.py", line 198, in _load_form_data
    super()._load_form_data()
  File "/usr/local/lib/python3.12/site-packages/werkzeug/wrappers/request.py", line 271, in _load_form_data
    data = parser.parse(
           ^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/werkzeug/formparser.py", line 242, in parse
    return parse_func(stream, mimetype, content_length, options)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/werkzeug/formparser.py", line 282, in _parse_urlencoded
    raise RequestEntityTooLarge()
werkzeug.exceptions.RequestEntityTooLarge: 413 Request Entity Too Large: The data value transmitted exceeds the capacity limit.
1 Like

@babsonnexus Version from 12/09 broke SLM for me, but reverting to the previous version works (running the container on Unraid). The latest version wouldn't even allow me to access the frontend. The log was showing a bunch of "number of tries exceeded" and tons of attempts to reach out to justwatch.com.

On another note, now that I've gotten more than a couple test channels into the system, I'm noticing a number of my channels have the following after the program name "รกยดยบรกยตย‰". Looks like it might be unicode 8 or something? I don't know, but I've never seen this in the guide before and if I just go straight via the M3U and XML file sources or even with m3u4u, I've never seen it and still don't. Seems to be something from SLM, but I can't figure out what it could be. Deleting and recreating the guide DB via Channels gui didn't help.

This is a safety check in all versions of SLM to make sure it doesn't delete everything in case there is an issue. The fact that it gave you this means that either you had an internet issue, JustWatch was down, or JustWatch was refusing your connection. Since you were able to connect in an earlier version, you should be able to re-upgrade to the latest with no issue. You probably just hit a bad timing issue that resolved after you downgraded. The code and approach did not change between versions.

I'm going to need to see examples. Please provide me:

  • A screenshot in the Channels Guide with this
  • A quote from the PLM XML guide data file where you are seeing it
  • A link or a copy of the the source XML guide data where PLM is getting the record from

It's possible, but unlikely, as PLM already uses encoding="utf-8" every time it reads or write a file. Still, I won't be able to check until I have something to test against.

I see some strange/missing characters in the interface and log.


MacOS, Safari if makes a difference. Thanks

Chrome does not show issues in log, but in sidebar.

I decided to back up my containers - including SLM so I could more safely perform the update. Due to a couple of other container backup size issues I wanted to correct I ended up doing it several times fairly quickly, then I updated SLM (twice, long story). Now I can't access the GUI and my m3u isn't loading into Channels - even though I see it looks fine in the appdata directory. When I check the console logs via Unraid I'm not seeing the connection refused error like I was before, but I AM seeing it in the slm.log file.

So this safety check.....I take it Justwatch has a cooldown that I triggered by the unusual rapid updates? If so, I can just stop the container for a while and it should get back to normal if I start it after the cooldown period expired?

I can't seem to run this container. Running Docker Desktop in Windows 11 using WSL2. My Channels DVR folder is "Channels DVR" with a space. The docker command doesn't seem to like the space and I get "docker: invalid reference format" when I try to run it. Any ideas?

Here's the full command I'm running:

docker run -d --restart unless-stopped --name slm -p 7900:5000 -v Z:/TV/SLM:/app/program_files -v "Z:/TV/Channels DVR":/app/channels_folder -e TZ="America/Los_Angeles" ghcr.io/babsonnexus/stream-link-manager-for-channels:latest

I see it, too. Looks like "Font Awesome" changed a reference on their end. I have a solution tested and it will be in the next release.

I don't know what might happen on their end, but back in alpha testing I made it happen once or twice, hence the need for the safety check. You might just want to protect the program_files directory and rebuild. SLM/PLM the program and its control files are completely separate things, so you can always get back to where you were so long as you have the files in the program_files directory.

As shown on the repo, this needs to be inside quotes, so "Z:/TV/SLM".

image

Here's it working for me:

Noticed your screenshot was command prompt instead of PowerShell so I did it there instead and it worked. Thank you!

I waited almost a half hour and I'm still seeing the connection refused items in slm.log, with no GUI available. I'm going to review the info you posted later today, and maybe revert versions again. I can connect to justwatch.com just fine via a browser from my laptop, so it seems to be something with SLM and JW. For now, I've just stopped the container to let it rest for a longer cooldown, and I mapped the /appdata/slm path into Channels and changed the source to call the files directly vs. the container-supplied URL. That's working in the interim, anyway.

Can you post the specific log lines? There's several types of messages in there depending upon the situation, which mean different things.

And it won't. It must pass the safety check for Initialization to complete and the GUI to come up. It'll just stay an infinite loop until it does.

I'll have to disagree. No one else is reporting an issue and I've probably run 30 test start-ups today on various platforms. Without additional data, it's looking like an installation, network, or Docker issue on your end. My recommendation again is to take the files in the program_files directory off to the side somewhere, delete the container, delete the image, do a fresh install, and move the program_files back into the new installation (assuming the program comes up).

2 Likes

I'll give it a go as soon as I get home. It must be that. As I was driving I was thinking on yesterday, and despite getting those errors it instantly worked when I reverted to the last version. I'm now convinced something corrupted between the version upgrades, and I'm going to go through the steps you mentioned.

EDIT - I deleted the backups folder (I'd copied them locally JIC) and uninstalled the container then re-added it via Previous Apps (Unraid is awesome). The only change I made before having it re-create is changing the DNS server from my local one (which all my other containers use just fine) to Quad9. Whatever the issue was, it is running again. Thanks for working through it with me. Now I'll work on the extra characters troubleshooting.

EDIT 2 - I don't see the strange characters in the source XML files, so I think mine's coming from the Fontawesome issue you referenced. I'll wait for the update - no rush! Thanks for this great piece of work!

As requested, was in the Assigned stations list, matching ignored stations. Started at the bottom and was working my way up. I had changed about 30-40 ignored to assigned. Hit save and got this. Thanks

2024-12-12 09:20:59.014786: ERROR: Webpage responded... 413 REQUEST ENTITY TOO LARGE
Client IP: 192.168.80.1
Method: POST
URL: http://192.168.1.200:5000/playlists/plm_modify_assigned_stations
Headers:
Host: 192.168.1.200:5000
Origin: http://192.168.1.200:5000
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
Connection: keep-alive
Upgrade-Insecure-Requests: 1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.2 Safari/605.1.15
Referer: http://192.168.1.200:5000/playlists/plm_modify_assigned_stations
Content-Length: 1362523
Accept-Language: en-US,en;q=0.9
User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.2 Safari/605.1.15
Args: ImmutableMultiDict([])
[ERROR | 2024-12-12 09:20:59,016] - Exception on /playlists/plm_modify_assigned_stations [POST]
Traceback (most recent call last):
File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 1511, in wsgi_app
response = self.full_dispatch_request()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 920, in full_dispatch_request
return self.finalize_request(rv)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 941, in finalize_request
response = self.process_response(response)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 1319, in process_response
response = self.ensure_sync(func)(response)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/slm.py", line 7183, in web_errors
if request.data:
^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/werkzeug/utils.py", line 107, in get
value = self.fget(obj) # type: ignore
^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/werkzeug/wrappers/request.py", line 373, in data
return self.get_data(parse_form_data=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/werkzeug/wrappers/request.py", line 421, in get_data
self._load_form_data()
File "/usr/local/lib/python3.12/site-packages/flask/wrappers.py", line 198, in _load_form_data
super()._load_form_data()
File "/usr/local/lib/python3.12/site-packages/werkzeug/wrappers/request.py", line 271, in _load_form_data
data = parser.parse(
^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/werkzeug/formparser.py", line 242, in parse
return parse_func(stream, mimetype, content_length, options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/werkzeug/formparser.py", line 282, in _parse_urlencoded
raise RequestEntityTooLarge()
werkzeug.exceptions.RequestEntityTooLarge: 413 Request Entity Too Large: The data value transmitted exceeds the capacity limit.
2024-12-12 09:20:59.141024: ERROR: Webpage responded... 500 INTERNAL SERVER ERROR
Client IP: 192.168.80.1
Method: POST
URL: http://192.168.1.200:5000/playlists/plm_modify_assigned_stations
Headers:
Host: 192.168.1.200:5000
Origin: http://192.168.1.200:5000
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
Connection: keep-alive
Upgrade-Insecure-Requests: 1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.2 Safari/605.1.15
Referer: http://192.168.1.200:5000/playlists/plm_modify_assigned_stations
Content-Length: 1362523
Accept-Language: en-US,en;q=0.9
User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.2 Safari/605.1.15
Args: ImmutableMultiDict([])
[ERROR | 2024-12-12 09:20:59,141] - Request finalizing failed with an error while handling an error
Traceback (most recent call last):
File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 1511, in wsgi_app
response = self.full_dispatch_request()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 920, in full_dispatch_request
return self.finalize_request(rv)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 941, in finalize_request
response = self.process_response(response)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 1319, in process_response
response = self.ensure_sync(func)(response)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/slm.py", line 7183, in web_errors
if request.data:
^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/werkzeug/utils.py", line 107, in get
value = self.fget(obj) # type: ignore
^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/werkzeug/wrappers/request.py", line 373, in data
return self.get_data(parse_form_data=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/werkzeug/wrappers/request.py", line 421, in get_data
self._load_form_data()
File "/usr/local/lib/python3.12/site-packages/flask/wrappers.py", line 198, in _load_form_data
super()._load_form_data()
File "/usr/local/lib/python3.12/site-packages/werkzeug/wrappers/request.py", line 271, in _load_form_data
data = parser.parse(
^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/werkzeug/formparser.py", line 242, in parse
return parse_func(stream, mimetype, content_length, options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/werkzeug/formparser.py", line 282, in _parse_urlencoded
raise RequestEntityTooLarge()
werkzeug.exceptions.RequestEntityTooLarge: 413 Request Entity Too Large: The data value transmitted exceeds the capacity limit.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 941, in finalize_request
response = self.process_response(response)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 1319, in process_response
response = self.ensure_sync(func)(response)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/slm.py", line 7183, in web_errors
if request.data:
^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/werkzeug/utils.py", line 107, in get
value = self.fget(obj) # type: ignore
^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/werkzeug/wrappers/request.py", line 373, in data
return self.get_data(parse_form_data=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/werkzeug/wrappers/request.py", line 421, in get_data
self._load_form_data()
File "/usr/local/lib/python3.12/site-packages/flask/wrappers.py", line 198, in _load_form_data
super()._load_form_data()
File "/usr/local/lib/python3.12/site-packages/werkzeug/wrappers/request.py", line 271, in _load_form_data
data = parser.parse(
^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/werkzeug/formparser.py", line 242, in parse
return parse_func(stream, mimetype, content_length, options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/werkzeug/formparser.py", line 282, in _parse_urlencoded
raise RequestEntityTooLarge()
werkzeug.exceptions.RequestEntityTooLarge: 413 Request Entity Too Large: The data value transmitted exceeds the capacity limit.
[INFO | 2024-12-12 09:20:59,144] - 192.168.80.1 - - [12/Dec/2024 09:20:59] "e[35me[1mPOST /playlists/plm_modify_assigned_stations HTTP/1.1e[0m" 500 -
[INFO | 2024-12-12 09:21:30,865] - 192.168.80.1 - - [12/Dec/2024 09:21:30] "GET / HTTP/1.1" 200 -
[INFO | 2024-12-12 09:21:30,886] - 192.168.80.1 - - [12/Dec/2024 09:21:30] "e[36mGET /static/assets/css/nucleo-icons.css HTTP/1.1e[0m" 304 -
[INFO | 2024-12-12 09:21:30,889] - 192.168.80.1 - - [12/Dec/2024 09:21:30] "e[36mGET /static/assets/img/slm_navicon.png HTTP/1.1e[0m" 304 -
[INFO | 2024-12-12 09:21:30,889] - 192.168.80.1 - - [12/Dec/2024 09:21:30] "e[36mGET /static/assets/css/nucleo-svg.css HTTP/1.1e[0m" 304 -
[INFO | 2024-12-12 09:21:30,891] - 192.168.80.1 - - [12/Dec/2024 09:21:30] "e[36mGET /static/assets/css/material-dashboard.css?v=3.0.0 HTTP/1.1e[0m" 304 -
[INFO | 2024-12-12 09:21:30,894] - 192.168.80.1 - - [12/Dec/2024 09:21:30] "e[36mGET /static/assets/js/core/popper.min.js HTTP/1.1e[0m" 304 -
[INFO | 2024-12-12 09:21:30,895] - 192.168.80.1 - - [12/Dec/2024 09:21:30] "e[36mGET /static/assets/img/slm_logo_v2.png HTTP/1.1e[0m" 304 -
[INFO | 2024-12-12 09:21:30,897] - 192.168.80.1 - - [12/Dec/2024 09:21:30] "e[36mGET /static/assets/js/core/bootstrap.min.js HTTP/1.1e[0m" 304 -
[INFO | 2024-12-12 09:21:30,901] - 192.168.80.1 - - [12/Dec/2024 09:21:30] "e[36mGET /static/assets/js/plugins/perfect-scrollbar.min.js HTTP/1.1e[0m" 304 -
[INFO | 2024-12-12 09:21:30,902] - 192.168.80.1 - - [12/Dec/2024 09:21:30] "e[36mGET /static/assets/js/plugins/smooth-scrollbar.min.js HTTP/1.1e[0m" 304 -
[INFO | 2024-12-12 09:21:30,903] - 192.168.80.1 - - [12/Dec/2024 09:21:30] "e[36mGET /static/assets/js/material-dashboard.min.js?v=3.0.0 HTTP/1.1e[0m" 304 -

Okay, these were very helpful, along with the files I got for testing. As I suspected, I could not replicate in my development environment. As such, I'm now 99% certain this is a MacOS related issue. In v2024.12.12.1355, I've added something that should hopefully help. Let me know!

2 Likes

ok, will keep an eye on it. Thanks

Looks like Fandango at Home has cleaned up their site so there's no mention of Vudu.com anymore, in their app or in their links. This gives me renewed optimism that we might eventually get deeplinking working so my titles there can be added properly to Channels DVR as stream links.

The fandangonow:// URL scheme still launches on tvOS and the format for movies is now: https://athome.fandango.com/content/browse/details/The-Truman-Show/13653

Unfortunately I still can't manage to get it to go launch to that movie in the app on AppleTV. I've tried all sorts of combinations but it feels like I'm stabbing in the dark. Is there a good way to tell if an app even supports deeplinking? Perhaps a tool to sniff it out?

When I'm on iOS, using the JustWatch app and I tap the new icons for Fandango at Home that appear next to title, they open properly, but in Safari to a web page, not the Fandango at Home app. Which feels like a bad omen. But I figured I'd ask here, in case I'm missing something obvious.

I'd manually cleaned the weird characters out of my EPG yesterday morning so I wanted to let my EPG update overnight during its scheduled job before reporting back in. Happy to report that the guide appears to be free of strange characters again this morning, so the Fontawesome fix must've helped. Thanks!

1 Like

Glad to hear! Just for the record, it was a different fix in the same release :grin:

3 Likes

Sounds like the same issue as this one:

I know a tool for decompiling Android apps so you can read in plain text certain files to test for deep linking capabilities, but am unaware if such a thing exists for Apple. Even if it did, the process is not simple, rather laborious, and requires so much manual intervention and interpretation it's hardly worth it. I only did it a couple of times to make sure I understood what I wanted to look for, but the end result was the same: the app developers needed to make changes and were unresponsive to the request.

Out of curiosity, what does the "Channels DVR Integration" do?