-
Notifications
You must be signed in to change notification settings - Fork 238
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Wrong DVR IP detected #130
Comments
I call the update.xepg through the cronjob.sh of alturismo's docker container via localhost (because its the same host, why i shouldn't?). After that xteve changes the url in xteve.xml -> Plex won't load icons anymore. Now i go to the web interface that i am accessing through a reverse proxy and make some changes in the mapping. Again another wrong url in xteve.xml -> Plex won't load icons anymore. To get the right url in xteve.xml i have to access the web ui in the same way plex can access it? Just provide a possibilty to override this url used in xteve.xml otherwise people will get a headache this way. |
And why don't you use the reverse proxy URL for Plex? |
I now have finally fixed my problems with my icons. The reason one rather have plex connect through the internal docker network is for portability. Not much work you can say, but if you have to do it for 100's of configurations / containers... The docker network allows name resolution, so you could connect to http://xteve:34400 which resolves to the docker internal network ip address of the xteve container. This will always be the same, no matter what DNS name you are using on your proxy. By using internal docker networking everything works fine, except for the icons, because a remote client (on the wan) also would look on the internal URL to download the icon. Somehow plex decided not to proxy those icons. This is not a design issue with Xteve in my opinion. Plex proxies everything, except for the icons which is inconsistent to say the least. Xteve has an option to cache icons. By choosing not to cache icons, xteve will retain the original URLs / locations of the icons. Disabling that option allows you to use internal networking between plex and xteve, while still having the icons. |
This answer is another prove for the unnecessary complexity of the image caching. To disable the caching is my current workaround and there are a lot of possible workarounds for this problem. But the design of software should not be to force the user using workarounds to access its features.
I don't want to add another dependency to plex and it would not match my network design. Maybe I have to because an outside client has to access xteve to load images like solipsist01 said but thats another point. It is rather an issue because an access through another url (and making changes in the mapping for example) changes the url for another service like in this case plex. You have to invest time to understand this behavior to avoid it or have a workaround for it. |
@solipsist01 @klatka Icon Example Base Address: <channel id="1032">
<display-name>ESPN</display-name>
<icon src="http://MY_BASE_ADDRESS:34400/images/15dbb84da186ab92ba3de8d8ab7d10b6.png"></icon>
</channel>
What would you enter there in your network constellation? |
Yes, but more general (maybe someone wants to change port or proto):
In my case: |
I use traefik v2 as a reverse proxy. I use this, so i can login safely into my environment using 2factor auth. I have tested the following: docker exec -it plex bash cat xteve.xml shows that image urls are http://xteve.domainname.com/images/f25ca48ff66828f9ca1a465e44329fe2.png Perhaps extracting the Request URL from the requestheader to get the desired base url? |
I suspect The following requests from the WAN would no longer be possible if there was a local address in the files.
As already described above: If all clients, regardless of whether Plex, Emby, IPTV Player or VLC use the same URL and this can be resolved via DNS, it already works. xTeVe looks at the HTTP headers with every request to find the Request URL via which the call was made. Except for the for the xteve.xml file, this URL is used immediately for Plex / Emby DVR, M3U and images. It takes too long for slower servers to create the xteve.xml for several hundred channels and some clients then run into a timeout. |
There is no need for me to access xTeVe from the WAN (if Plex proxies everything from xTeVe). |
Correct and therefore the URL from the last request is used, then it also works for 99% of people. |
So you can not use xTeVe with two different URLs at the same time. |
This is possible if all clients can resolve all URLs. I saw screenshots where people copied the xteve.m3u URL to Plex DVR. If they still have to fill up fields with a Base_URL, I have no peace at all. |
I understand your point but this can be an optional, more expert option like
Is that mentioned in the docs? It would save me a lot of time. |
What if you didn't create it from scratch, but do a search and replace. That would take less time methinks. Could be an advanced option which you enable or disable |
I have to check if it is missing, I add it.
I have not yet fully understood why different clients access xTeVe via different URLs. If it is only about Plex that contains the "wrong" URL during an XMLTV update, this can certainly be solved now with the xTeVe API. |
This is my usecase. I have hosted a server offsite. On this server is also running a reverse proxy which only listens to ip addresses of cloudflare. Onsite i have a raspberry pi 4 with Kodi on it. I connect from my work location to Xteve to make a quick adjustment, via 2factor auth. You could say, why not connect plex to xteve through the reverse proxy? We could also make a path which isn't routed through cloudflare, but why do that when we can connect internally. In the docker world, Microservices always connect internally to eachother. All my services do. However, for me this isn't a big issue, because i just don't cache the icons. This solution is also perfectly viable for me. It is however inconsistent. |
It's a bit more complex. I have no idea what the Cloudflare network looks like from the inside. But I would simply run an |
@solipsist01 i also use xteve in docker, plex in docker, reverse proxy in docker, remote access overall ... etc etc ... |
After all there should be a possibility to disable the automatic recognition and changing of IP or FQDN through the request. I don't want to get everything generated with the wrong URL just to call the api from the right network to generate the files again with the right URL that plex can connect to. People will run into this issue because its a very unexpected behavior and i think that you always will have some open issues with this topic. A simple setting would solve this and all related issues completely. |
see how different the views are, and i really dont understand why you just not use the api call with a proper ip, and call it before your plex update and(or even use the plex update function from my docker ... then u have xteve update properly and plex right behind ... set the plex internal timer just besides it and there is nothing u have to worry about, but u always have the proper setup from anywhere u call xteve actually ... plex only updates once / day ... come on .... |
You have to understand that for new users it is not easy to understand that behavior. You are using this workaround and it works, now i am using it too. But look how many issues there are on github related to this behavior... I have now a working setup for plex with a workaround to use xTeVes web ui with a reverse proxy without losing the ability of plex to connect to xTeVe. Thanks for your time. |
You can also disable image caching. A quick look at the Plex Client and you can see that Plex also caches the images.
|
Can we reopen this issue? I have xteve running on a server that has an internal IP, and a VPN IP. Xteve has chosen the VPN IP for the ip address it uses in xteve.xml This is a problem for two reasons:
Just like we can specify a port for xteve, we should be able to specify the IP address or hostname uses in the xml file. |
That's quite the same issue I ran into. I still think that this issue will be a problem for new users but I don't think that somebody will create an option in xTeVe to change the base URL or IP... Reopened to arouse some importance :) |
this can and will only be a issue when you dont use xteve like intended to use it uses the ip which is triggered, so use the ip u with by using the ip way and not the path. sample, u trigger externally, xteve will write the external ip to the xml due its been called there, now, when u use the path for another client it will have the path in there, when u use the ip to fetch it has the internal ip like its supposed ... static would mean in case u use both ways you have issues, the way it is now its just a wrong setup on your client sides ... |
may to make a more real life scenario xteve on host xteve on host |
or as described, simple make a api call from your prefered location before "whatever" u do on updating from whereever to keep your xml files the way you want them, its a oneliner ... |
The problem is still that this design has no separation between admin (Web UI) calls and service (plex) calls. They don't have to be in the same network... In other words, there are many users with their own network setups who can not benefit from your easy but restrictive design. In this setup where it is necessary to separate every time you access the UI, you have to make sure to run the API call. This issue is not really big after you understand (or developed) it but it is a potential headache for new users (and I don't think that this software is intended to be used by users, who don't know how to use a mouse....). |
may point out a real life scenario so i could potentially follow the "issue" you have webui management externally through reverse proxy as sample, when you hit save, yes, it will use the url you connected to xteve (some external ip), now your client (lets say plex for sample on the host mashine) which is using the external ip is your issue i assume then cause the management was done externally before, then yes, you have to use the oneliner ... and now we are at the point, when you use xteve like this you should know what you do and be capable to cron your oneliner |
Yes we are capable of a cron oneliner. It doesn't matter which hostname i use to visit the webinterface. The webinterface adjusts itself, and the URLS according to the request URL. The XML file however does not. The reason people keep bringing this up, is that one gets surprised that the XML file behaves different then you'd expect. |
Was hit by this myself. As a new xteve user this weekend, first of all THANK YOU! I have a simple server setup with a single configured IP address, but I also run libvirtd which creates a default network bridge (192.168.122.1/24). For some reason xteve picks 192.168.122.1 as it's preferred address to populate the generated files. For example:
I went looking for an option to change this, but sadly I ended up here. |
I have the same problem. Even if I get my .m3u file from an external https url, all logos inside are using a docker-network internal url. If I remove image caching I think it kinda solves my problem, but I would love to keep image caching on. Is there any way to solve this ? |
I guess there is still no real solution for this problem? it seems like all we are asking for is an option to specify the host IP address so using cached images it shows as the base url address in .m3u and .xml |
They wont fix this issue. They even ignored the pull request, because of stubborness. Apparently they fix everything with cron oneliners. Also, this project is dead. https://github.com/Threadfin/Threadfin |
I wonder if brycelarge/xteve-vpn works with Threadfin. |
There are serperate openvpn containers. You can attach every container to that vpn container you like. When im behind a computer, i can share a docker-compose example :) |
traffic from container deluge will be routed through the VPN. |
Thanks for sharing, that's a good solution. |
Recently i moved to docker containers and now i run xTeVe as container (alturismo/xteve_guide2go).
Now i have the problem that xTeVe picks a different ip as DVR ip everytime (i have assigned multiple networks to the container) i restart the container with the consequence that the xteve.xml has the wrong ip for icons and plex can't route to it correctly. Sometimes there is even the hostname of my reverse proxy in the dvr ip which is not accessible without https...
It would be nice to have a possibilty to override the dvr ip in the settings :)
The text was updated successfully, but these errors were encountered: