Files
tvheadend-nm3u8dl/proxy_movistar/proxy.py
2024-10-13 10:58:06 +02:00

36 lines
1.1 KiB
Python

import http.server
import socketserver
import requests
from urllib.parse import urlparse, urlunparse
import logging
logging.basicConfig(
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', level=logging.INFO
)
PROXY_PORT = 8080
HEADER_TO_MODIFY = "Content-Type"
NEW_HEADER_VALUE = "application/dash+xml"
class ProxyHandler(http.server.BaseHTTPRequestHandler):
def do_GET(self):
url_parsed = urlparse(self.path[1:])
try:
response = requests.get(urlunparse(url_parsed))
modified_headers = dict(response.headers)
modified_headers[HEADER_TO_MODIFY] = NEW_HEADER_VALUE
self.send_response(response.status_code)
for header, value in modified_headers.items():
self.send_header(header, value)
self.end_headers()
self.wfile.write(response.content)
except requests.RequestException as e:
self.send_error(502, f"Error al contactar el servidor de destino: {e}")
with socketserver.TCPServer(("", PROXY_PORT), ProxyHandler) as httpd:
logging.info(f"Proxy corriendo en el puerto {PROXY_PORT}")
httpd.serve_forever()