pierre-emmanuelJ / iptv-proxy

Reverse proxy on iptv m3u and m3u8 file and xtream codes client api
GNU General Public License v3.0
508 stars 150 forks source link

xmltv proxied incorrectly #155

Open idaanx opened 1 year ago

idaanx commented 1 year ago

The last few months I've used a couple of different providers, on on some I've encountered issues with the xmltv file.

Looking at the log files, the requested uri is /xmltv.php?username=user&password=pass which is proxied to /xmltv.php?username=user&password=pass&action=xmltv.php. With an error of cannot reach server: connection reset by peer.

To work around this issue, I've used a separate Nginx proxy pass for the uri starting with /xmltv.php to remove the &action=xmltv.php part.

Any possibility of fixing this issue or making the removal of the extra query part optional? I don't know if it is mandatory for other providers.

olomberg commented 11 months ago

Hi. I am suffering the same issue. can you please share your nginx config for this part. Thanks.

idaanx commented 11 months ago

I am suffering the same issue. can you please share your nginx config for this part. Thanks.

No problem, make sure to update the parts marked within <>, or just use the location = /xmltv.php {...} part with most importantly set $args ""; which deletes the extra arguments. My setup only uses https with cert defined globally, no point of using http and this proxy in my opinion. This way the xmltv bypasses iptv-proxy and goes only through Nginx, so won't show up in the logs.

I hope this helps you out, but might not be a plug-n-play solution for your setup.

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name <yourdomain.tld>;

    access_log off;

    # HSTS (ngx_http_headers_module is required) (63072000 seconds)
    add_header Strict-Transport-Security "max-age=63072000" always;

    allow <yourip>;
    deny all;

    location / {
        proxy_pass http://127.0.0.1:<proxyport or 8080>;

        proxy_set_header Host '';
        proxy_set_header X-Real-IP $remote_addr;

        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $http_connection;

        # Disable buffering when the nginx proxy gets very resource heavy upon streaming
        proxy_buffering off;
    }

    location = /xmltv.php {
        set $args "";
        proxy_pass http://<providerdomain.tld>[:<port>]/xmltv.php?username=<username>&password=<password>;

        # Disable buffering when the nginx proxy gets very resource heavy upon streaming
        proxy_buffering off;
    }
}
onestix commented 8 months ago

Having the same issue here.. @pierre-emmanuelJ, any chance you could take a look at this? Thank you!

Edit: Tried a second xtream provider today (24 Jan). Same issue again.