
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
https://github.com/gibby/iptv-proxy/workflows/CI/badge.svg](https://github.com/gibby/iptv-proxy/actions?query=workflow%3ACI)
Iptv-Proxy is a project to proxyfie an m3u file and to proxyfie an Xtream iptv service (client API).
M3U service convert an iptv m3u file into a web proxy server.
It's transform all the original tracks to an new url pointing on the proxy.
proxy on Xtream code (client API)
support live, vod, series and full epg :rocket:
Original iptv m3u file
m3u#EXTM3U #EXTINF:-1 tvg-ID="examplechanel1.com" tvg-name="chanel1" tvg-logo="http://ch.xyz/logo1.png" group-title="USA HD",CHANEL1-HD http://iptvexample.net:1234/12/test/1 #EXTINF:-1 tvg-ID="examplechanel2.com" tvg-name="chanel2" tvg-logo="http://ch.xyz/logo2.png" group-title="USA HD",CHANEL2-HD http://iptvexample.net:1234/13/test/2 #EXTINF:-1 tvg-ID="examplechanel3.com" tvg-name="chanel3" tvg-logo="http://ch.xyz/logo3.png" group-title="USA HD",CHANEL3-HD http://iptvexample.net:1234/14/test/3 #EXTINF:-1 tvg-ID="examplechanel4.com" tvg-name="chanel4" tvg-logo="http://ch.xyz/logo4.png" group-title="USA HD",CHANEL4-HD http://iptvexample.net:1234/15/test/4
What M3U proxy IPTV do
Start proxy server example
Bashiptv-proxy --m3u-url http://example.com/get.php?username=user&password=pass&type=m3u_plus&output=m3u8 \ --port 8080 \ --hostname proxyexample.com \ --user test \ --password passwordtest
That's give you an m3u file on a specific endpoint iptv.m3u in our example
http://proxyserver.com:8080/iptv.m3u?username=test&password=passwordtest
All the new routes pointing on your proxy server
m3u#EXTM3U #EXTINF:-1 tvg-ID="examplechanel1.com" tvg-name="chanel1" tvg-logo="http://ch.xyz/logo1.png" group-title="USA HD",CHANEL1-HD http://proxyserver.com:8080/12/test/1?username=test&password=passwordtest #EXTINF:-1 tvg-ID="examplechanel2.com" tvg-name="chanel2" tvg-logo="http://ch.xyz/logo2.png" group-title="USA HD",CHANEL2-HD http://proxyserver.com:8080/13/test/2?username=test&password=passwordtest #EXTINF:-1 tvg-ID="examplechanel3.com" tvg-name="chanel3" tvg-logo="http://ch.xyz/logo3.png" group-title="USA HD",CHANEL3-HD http://proxyserver.com:8080/14/test/3?username=test&password=passwordtest #EXTINF:-1 tvg-ID="examplechanel4.com" tvg-name="chanel4" tvg-logo="http://ch.xyz/logo4.png" group-title="USA HD",CHANEL4-HD http://proxyserver.com:8080/15/test/4?username=test&password=passwordtest
The m3u8 feature is like m3u. The playlist should be in the m3u format and should contain all m3u8 tracks.
Sample of the original m3u file containing m3u8 track:
Shell#EXTM3U #EXTINF:-1 tvg-ID="examplechanel1.com" tvg-name="chanel1" tvg-logo="http://ch.xyz/logo1.png" group-title="USA HD",CHANEL1-HD http://iptvexample.net:1234/12/test/1.m3u8 #EXTINF:-1 tvg-ID="examplechanel2.com" tvg-name="chanel2" tvg-logo="http://ch.xyz/logo2.png" group-title="USA HD",CHANEL2-HD http://iptvexample.net:1234/13/test/2.m3u8
Bash% iptv-proxy --m3u-url http://example.com:1234/get.php?username=user&password=pass&type=m3u_plus&output=m3u8 \ --port 8080 \ --hostname proxyexample.com \ ## put xtream flags if you want to add xtream proxy --xtream-user xtream_user \ --xtream-password xtream_password \ --xtream-base-url http://example.com:1234 \ --user test \ --password passwordtest
What Xtream proxy do
xtream-user and xtream-password into new user and passwordxtream-base-url with hostname and portOriginal xtream credentials
user: xtream_user password: xtream_password base-url: http://example.com:1234
New xtream credentials
user: test password: passwordtest base-url: http://proxyexample.com:8080
All xtream live, streams, vod, series... are proxyfied!
You can get the m3u file with the original Xtream api request:
http://proxyexample.com:8080/get.php?username=test&password=passwordtest&type=m3u_plus&output=ts
Download lasted https://github.com/gibby/iptv-proxy/releases
Or
% go install in root repository
docker-compose.yml or add local file in iptv folderHOSTNAME and PORT to exposePORT ENV variableYamlports: # have to be the same as ENV variable PORT - 8080:8080 environment: # if you are using m3u remote file # M3U_URL: http://example.com:1234/get.php?username=user&password=pass&type=m3u_plus&output=m3u8 M3U_URL: /root/iptv/iptv.m3u # Port to expose the IPTVs endpoints PORT: 8080 # Hostname or IP to expose the IPTVs endpoints (for machine not for docker) HOSTNAME: localhost GIN_MODE: release ## Xtream-code proxy configuration ## (put these env variables if you want to add xtream proxy) XTREAM_USER: xtream_user XTREAM_PASSWORD: xtream_password XTREAM_BASE_URL: "http://example.com:1234" USER: test PASSWORD: testpassword
% docker-compose up -d
Put files and folders of ./traekik folder in root repo:
Shell$ cp -r ./traekik/* .
Shell$ mkdir config \ && mkdir -p Traefik/etc/traefik \ && mkdir -p Traefik/log
docker-compose sample with traefik:
Yamlversion: "3" services: iptv-proxy: build: context: . dockerfile: Dockerfile volumes: # If your are using local m3u file instead of m3u remote file # put your m3u file in this folder - ./iptv:/root/iptv container_name: "iptv-proxy" restart: on-failure labels: - "traefik.enable=true" - "traefik.http.routers.iptv-proxy.rule=Host(`iptv.proxyexample.xyz`)" - "traefik.http.routers.iptv-proxy.entrypoints=websecure" - "traefik.http.routers.iptv-proxy.tls.certresolver=mydnschallenge" - "traefik.http.services.iptv-proxy.loadbalancer.server.port=8080" environment: # if you are using m3u remote file # M3U_URL: https://example.com/iptvfile.m3u M3U_URL: /root/iptv/iptv.m3u # Iptv-Proxy listening port PORT: 8080 # Port to expose for Xtream or m3u file tracks endpoint ADVERTISED_PORT: 443 # Hostname or IP to expose the IPTVs endpoints (for machine not for docker) HOSTNAME: iptv.proxyexample.xyz GIN_MODE: release # Inportant to activate https protocol on proxy links HTTPS: 1 ## Xtream-code proxy configuration XTREAM_USER: xtream_user XTREAM_PASSWORD: xtream_password XTREAM_BASE_URL: "http://example.tv:1234" #will be used for m3u and xtream auth proxy USER: test PASSWORD: testpassword traefik: restart: always image: traefik:v2.4 read_only: true ports: - "80:80" - "443:443" volumes: - /var/run/docker.sock:/var/run/docker.sock:ro - ./Traefik/traefik.yaml:/traefik.yaml:ro - ./Traefik/etc/traefik:/etc/traefik/ - ./Traefik/log:/var/log/traefik/
Replace iptv.proxyexample.xyz in docker-compose.yml with your desired domain.
Shell$ docker-compose up -d
there is basic auth just for testing. change with a real auth with database and user management and auth with token...
ENJOY!
Grab me a beer 🍻
![]([]
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务