EnglishEnglish RussianРусский SpanishEspañol

HLS-Proxy is a server app for IPTV streaming in HLS format (Apple HTTP Live Streaming) and caching for IPTV-player without dropouts and buffering.

HLS-Proxy setup

  • Unpack an archive with proxy to a folder.
  • Now you need to configure http port for listening.

    By default, HLS-Proxy uses HTTP port 80.
    You can change it by passing a command line parameter -port port_number.

    hls-proxy -port 8080

    To save it permanently add -save

    hls-proxy -port 8080 -save

  • If you are a Linux user:
    • Install using a script:


      An install script uses systemctl to run HLS-Proxy as a service at boot.
      If you under chroot: a script will not work. Add a next line to /etc/rc.local

      sudo -H -u <user> <hls-proxy path>/hls-proxy &

      <user>: user you logged in
      <hls-proxy path>: a directory where HLS-Proxy unpacked

      Important!!! Ubuntu 16 users may not use http port 80.

    • Or you can run HLS-Proxy manually.
      Do not forget to add executable permissions for a file hls-proxy:

      chmod 755 ./hls-proxy

  • After app start, you can open next links for tuning a proxy:

    • http://hls_proxy_ip/ - For IPTV-player it is a link to a m3u8 playlist. For a browser it is a html rich page with channels and EPG.
      You also can access a rich web UI by /channels
    • http://hls_proxy_ip/status - A proxy status page, opened streams and clients.
    • http://hls_proxy_ip/config - A config view and edit page. Changes will be stored to local.json file, which contains parameters different from default.json
    • http://hls_proxy_ip/epg (or /epg.xml.gz) - EPG link for your IPTV-players in xml.gz format
      Second one in brackets is configurable from config by variable epgUrlForClient
    • http://hls_proxy_ip/m3u8 (or /playlist.m3u8)- If the root link (/) is not opened in a player you can use this link as a playlist. Perfect Player for Windows doesn't work.
      Second one in brackets is configurable from config by variable playlistPath
    • http://hls_proxy_ip/rec (or /recordings.m3u8) - Recorded programs.

    Instead of hls_proxy_ip use any local computer address or hostname where hls-proxy runs

    If you get an error on start "Cant start server: listen EADDRINUSE: address already in use"

    then a http port you specified (or 80 by default) is used by another app. Change it by command line.

    Proxy will be available by link http://hls_proxy_ip:port/
    To keep it permanently - open http://hls_proxy_ip:port/config and click "Save"
    or you can specify a command line parameter -save

Playlist setup

The most important thing to setup is a playlist source.
If HLS-Proxy is running, open /config, find "URL" field in "Playlist" section and put there your playlist link. Press "Save" button to apply changes.
Wait a couple of seconds till a playlist is loading and that's it.
By opening a main page / you should see a channels list.

Config catch ups

Proxy stores its settings in JSON files.
The main config file - default.json. It is not recommended to edit it manually. Editing config using web config saves changes into additional local.json file.
Inside local.json stored values different from defaults.
Self-Update will replace hls-proxy executable and default.json


Detailed description of settings you can find at web page /config

EPG is not available at the start. It will take minutes to download and parse. Watch a status at web page /status

Server is not protected by username and password, so it is not recommended to run it on public networks.

HTTP proxy setup

Configure external HTTP proxy to bypass firewalls using environment variables

The following environment variables are respected by HLS Proxy

  • HTTP_PROXY / http_proxy
  • HTTPS_PROXY / https_proxy
  • NO_PROXY / no_proxy

When HTTP_PROXY / http_proxy are set, they will be used to proxy non-SSL requests that do not have an explicit proxy configuration option present. Similarly, HTTPS_PROXY / https_proxy will be respected for SSL requests that do not have an explicit proxy configuration option. It is valid to define a proxy in one of the environment variables, but then override it for a specific request, using the proxy configuration option. Furthermore, the proxy configuration option can be explicitly set to false / null to opt out of proxying altogether for that request.

HLS Proxy is also aware of the NO_PROXY/no_proxy environment variables. These variables provide a granular way to opt out of proxying, on a per-host basis. It should contain a comma separated list of hosts to opt out of proxying. It is also possible to opt of proxying when a particular destination port is used. Finally, the variable may be set to * to opt out of the implicit proxy configuration of the other environment variables.

Here's some examples of valid no_proxy values:

  • google.com - don't proxy HTTP/HTTPS requests to Google.
  • google.com:443 - don't proxy HTTPS requests to Google, but do proxy HTTP requests to Google.
  • google.com:443, yahoo.com:80 - don't proxy HTTPS requests to Google, and don't proxy HTTP requests to Yahoo!
  • * - ignore https_proxy/http_proxy environment variables altogether.

HLS-Proxy - это серверное приложение для загрузки IPTV-потоков в формате HLS (Apple HTTP Live Streaming) и кеширования для вашего IPTV-плеера со значительным уменьшением вероятности обрыва и буферизации.

Установка и настройка HLS-Proxy

  • Распаковываем архив с прокси в отдельную папку.
  • Теперь нужно настроить http порт.

    По умолчанию, HLS-Proxy использует HTTP порт 80.
    Можно изменить порт указывая его как параметр командной строки -port port_number.

    hls-proxy -port 8080

    Чтобы сохранить это в настройках добавьте параметр -save

    hls-proxy -port 8080 -save

  • Если вы - пользователь Linux:
    • Используйте установочный скрипт:


      Скрипт использует утилиту systemctl (systemd) чтобы запускать прокси как сервис при загрузке.
      Если вы под chroot: скрипт работать не будет. Вместо него добавьте строку запуска в /etc/rc.local

      sudo -H -u <user> <hls-proxy path>/hls-proxy &

      <user>: Имя пользователя под которым вы залогинились
      <hls-proxy path>: папка, где находится прокси

      Очень важно!!! Пользователи Ubuntu 16 не могут использовать порт 80.

    • Или запускайте HLS-Proxy вручную.
      Не забудьте в этом случае дать права на запуск:

      chmod 755 ./hls-proxy

  • После запуска доступны следующие ссылки для настройки и использования:

    • http://hls_proxy_ip/ - Для IPTV-плеера это ссылка на плейлист. Для браузера - это главная страница прокси с каналами, телегидом.
      Также эта html страница доступна по адресу /channels
    • http://hls_proxy_ip/status - Страница состояния прокси.
    • http://hls_proxy_ip/config - Страница настройки прокси. Изменения сохраняются в файл local.json.
    • http://hls_proxy_ip/epg (или /epg.xml.gz) - Ссылка на телегид для IPTV-плееров в формате xml.gz
      Вторая ссылка настраиваемая из конфига параметром epgUrlForClient
    • http://hls_proxy_ip/m3u8 (или /playlist.m3u8)- Если главная страница (/) в плеере не открывается, можно использовать эту ссылку в качестве плейлиста. Perfect Player для Windows не поддерживается.
      Вторая ссылка в скобках настраивается из конфига параметром playlistPath
    • http://hls_proxy_ip/rec (или /recordings.m3u8) - Ссылка на плейлист записанных программ.

    Вместо hls_proxy_ip используйте любой локальный адрес компьютера или имя хоста где запущен прокси.

    Если прокси выдает ошибку при старте "Cant start server: listen EADDRINUSE: address already in use"

    означает, что http порт, который указан в конфигурации (или 80 по умолчанию) используется другим приложением. Измените порт из командной строки.

    Прокси должен быть доступен по ссылке http://hls_proxy_ip:port/
    Чтобы сохранить порт в конфигурации откройте http://hls_proxy_ip:port/config и нажмите "Сохранить"
    или укажите параметр -save в командно

Настройка плейлиста

Самый важный пункт настройки прокси - указание источника плейлиста (или нескольких) или где брать каналы.
Если прокси уже запущен, открываем веб-страницу /config и в поле "URL" пункта "Источники плейлистов" заносим ссылку на плейлист. Нажимаем кнопку "Сохранить".
Ждём несколько секунд пока загрузится плейлист и... всё.
Открывая главную страницу / вы должны видеть сгруппированый список каналов.

Особенности конфигурирования.

Прокси хранит настройки в файлах типа json.
Главный файл конфигурации - default.json. Его лучше руками не трогать, пусть живет. Конфигуратор прокси сохраняет изменения конфигурации в дополнительном файле local.json.
Именно он отражает реальное отличие настроек по-умолчанию от ваших индивидуальных. В файле local.json хранятся значения, отличные от значений по-умолчанию.


Детальное описание каждой из настроек смотрите на странице /config

Обратите внимание, что ТВ-программа недоступна несколько минут при самом первом запуске сервера, так как сначала она загружается из интернета.

Сервер не защищен паролем, так как предназначен для домашнего использования. Поэтому, не рекомендуется его держать в открытых сетях.

Настройка HTTP proxy для обхождения файрвола

Следующие переменные окружения используются HLS Proxy для указания HTTP proxy

  • HTTP_PROXY / http_proxy
  • HTTPS_PROXY / https_proxy
  • NO_PROXY / no_proxy

Когда HTTP_PROXY / http_proxy указан, он будет использован для запросов non-SSL. Для SSL-запросов будет использоваться HTTPS_PROXY /https_proxy

HLS Proxy также использует NO_PROXY/no_proxy для адресов, для которых прокси не должен использоваться. Список хостов разделяется запятыми. Можно указывать и номер порта. И, переменная может быть установлена в *. В этом случае прокси не используется.

Несколько примеров использования значений переменной no_proxy:

  • google.com - не использовать прокси для HTTP/HTTPS запросов к Google.
  • google.com:443 - не использовать прокси для HTTPS запросов к Google, но использовать для HTTP запросов к Google.
  • google.com:443, yahoo.com:80 - исключить HTTPS запросы к Google, и HTTP запросы к Yahoo!
  • * - игнорировать переменные https_proxy/http_proxy.

HLS-Proxy es una aplicación servidor para transmisión de IPTV en formato HLS (Apple HTTP Live Streaming) y almacenamiento en caché para reproductores de IPTV sin interrupciones ni almacenamiento en búfer.

Configuración HLS-Proxy

  • Descomprime el archivo HLS-proxy en una carpeta.
  • Ahora necesita configurar el puerto http para escuchar.

    Por defecto, HLS-Proxy usa el puerto HTTP 80.
    Puede cambiarlo pasando un parámetro de línea de comando -port número_puerto.

    hls-proxy -port 8080

    Para guardarlo permanentemente agregue -save

    hls-proxy -port 8080 -save

  • Si eres un usuario de Linux:
    • Instalar usando un script:


      Una secuencia de comandos de instalación utiliza systemctl (systemd) para ejecutar HLS-Proxy como un servicio en el arranque.
      Si está bajo chroot: un script no funcionará. Agregar una línea siguiente a /etc/rc.local

      sudo -H -u <user> <hls-proxy path>/hls-proxy &

      <user>: usuario con el que inició sesión
      <hls-proxy path>: una carpeta donde desempaquetado el Proxy HLS

      ¡¡¡Importante!!! Los usuarios de Ubuntu 16 no pueden usar el puerto 80 http.

    • O puede ejecutar HLS-Proxy manualmente.
      No olvide agregar permisos ejecutables para un archivo hls-proxy:

      chmod 755 ./hls-proxy

  • Después del inicio de la aplicación, puede abrir los siguientes enlaces para ajustar un proxy:

    • http://hls_proxy_ip/ - Para IPTV-player es un enlace a una lista de reproducción m3u8. Para un navegador, es una página rica en html con canales y EPG.
      También puede acceder a una interfaz de usuario web rica mediante /channels
    • http://hls_proxy_ip/status - Una página de estado de proxy, transmisiones abiertas y clientes.
    • http://hls_proxy_ip/config - Una vista de configuración y página de edición. Los cambios se almacenarán en el archivo local.json, que contiene parámetros diferentes de default.json
    • http://hls_proxy_ip/epg (o /epg.xml.gz) - Enlace EPG para sus reproductores de IPTV en formato xml.gz
      El segundo entre paréntesis es configurable desde la configuración por variable epgUrlForClient
    • http://hls_proxy_ip/m3u8 (o /playlist.m3u8)- Si el enlace raíz (/) no se abre en un reproductor, puede usar este enlace como lista de reproducción. Perfect Player para Windows no funciona.
      El segundo entre paréntesis es configurable desde la configuración por variable playlistPath
    • http://hls_proxy_ip/rec (o /recordings.m3u8) - Programas grabados.

    En lugar de hls_proxy_ip, use cualquier dirección de computadora local o nombre de host donde se ejecute hls-proxy

    Si obtiene un error al iniciar "Cant start server: listen EADDRINUSE: address already in use"

    entonces otra aplicación usa el puerto http que especificó (u 80 por defecto). Cámbielo por línea de comando.

    Proxy estará disponible por enlace http://hls_proxy_ip:port/
    Para mantenerlo permanentemente - abierto http://hls_proxy_ip:port/config y haga clic "Salvar"
    o puede especificar un parámetro de línea de comando -save

Configuración de la lista de reproducción

Lo más importante para configurar es una fuente de lista de reproducción.
Si HLS-Proxy se está ejecutando , abra / config, busque el campo "URL" en la sección "Lista de reproducción" y ponga allí su enlace de lista de reproducción. Presiona el botón "Guardar" para aplicar los cambios.
Espera un par de segundos hasta que la lista de reproducción se cargue y eso es todo.
Al abrir la página principal / debería ver una lista de canales.

Configuracion de capturas

Proxy almacena su configuración en archivos JSON.
El archivo de configuración principal es - default.json. No se recomienda editarlo manualmente. La edición del archivo de configuración utilizando un explorador web guarda los cambios en un archivo adicional de local.json .
Dentro de local.json se almacenan valores diferentes a los predeterminados.


Descripción detallada de los ajustes que puede encontrar en la página web / config.

EPG no está disponible al inicio. Tardará unos minutos en descargar y analizar.

El servidor no está protegido por nombre de usuario y contraseña, por lo que no se recomienda ejecutarlo en redes públicas.

Configuración de proxy HTTP

Configure el proxy HTTP externo para evitar los cortafuegos que utilizan variables de entorno

The following environment variables are respected by HLS Proxy

  • HTTP_PROXY / http_proxy
  • HTTPS_PROXY / https_proxy
  • NO_PROXY / no_proxy

Cuando HTTP_PROXY / http_proxy están configurados, se utilizarán para proxy solicitudes no SSL que no tienen un explicito proxy Opción de configuración actual. Similar, HTTPS_PROXY / https_proxyserá respetado para las solicitudes SSL que no tienen un explícitoproxy Opción de configuración. Es válido definir un proxy en una de las variables de entorno, pero luego anularlo para una solicitud específica, utilizando el proxy Opción de configuración. Además, elproxy la opción de configuración se puede establecer explícitamente en falso / nulo para optar por excluirse por completo de esa solicitud.

HLS Proxy También es consciente de la NO_PROXY/no_proxyvariables de entorno. Estas variables proporcionan una forma granular de rechazar el envío de proxy, por host. Debe contener una coma lista separada de hosts para optar por no enviar fuera del proxy. También es posible optar por proxy cuando un determinado puerto de destino es utilizado. Finalmente, la variable se puede configurar para * para optar por el proxy implícito configuración de las demás variables de entorno.

Aquí hay algunos ejemplos de validez no_proxy valores:

  • google.com - no enviar solicitudes HTTP / HTTPS a Google.
  • google.com:443 - no enviar solicitudes HTTPS a Google, pero hacer solicitudes HTTP de proxy para Google.
  • google.com:443, yahoo.com:80 - no haga proxy solicitudes HTTPS a Google, y no haga proxy HTTP a solicitudes hacia Yahoo!
  • * - ignorar https_proxy/http_proxy variables de entorno en conjunto.