免费玩转Cloudflare-08:用Cloudflare搭建你的专属 EPG 节目单接口

免费玩转Cloudflare-08:用Cloudflare搭建你的专属 EPG 节目单接口
免费玩转Cloudflare-08用Cloudflare搭建你的专属 EPG 节目单接口哈喽大家好我是星哥。玩 IPTV 和直播源的朋友都知道没有 EPGElectronic Program Guide 电子节目单的直播是没有灵魂的。看着黑乎乎的播放界面连当前在播什么、下一集是什么都不知道体验直接大打折扣。很多小伙伴想自己搭个 EPG 服务但一听说要买 VPS、配环境、搞数据库瞬间就劝退了。今天星哥教大家一招“白嫖”大法无需服务器、无需买 VPS只需一个 Cloudflare 账号几分钟就能搭建一个属于你自己的 112114 镜像 EPG 接口课前科普为什么选 Cloudflare Workers在开始动手前星哥先简单给大家科普一下今天的主角。Cloudflare大家应该不陌生了全球顶级的 CDN 和安全服务商。而我们要用的Workers是它提供的一种“无服务器Serverless”边缘计算服务。通俗点说你只需要写几行 JavaScript 代码Cloudflare 就会把它运行在全球各地的边缘节点上。不用管服务器不用装系统、不用配环境。速度飞快代码在全球节点运行延迟极低。免费额度够用免费版每天有10 万次请求额度个人当 EPG 接口用简直绰绰有余保姆级部署教程准备工作注册一个 Cloudflare 账号免费。准备一个自己的域名并将其 DNS 托管到 Cloudflare因为 CF 默认分配的workers.dev域名在国内访问不稳定绑定自己的域名是必须的。步骤 1进入 Workers 控制台登录 Cloudflare 后台在左侧菜单栏找到并点击“计算和 AI” (Compute AI)-“Workers 和 Pages” (Workers Pages)。步骤 2创建 Worker 应用点击右上角的“创建应用程序” (Create application)。选择“从 Hello World! 开始” (Create Worker)。给你的 Worker 起个名字比如my-epg或diyp-epg然后点击“部署” (Deploy)。(此时 CF 会帮你生成一个默认的示例项目)点击部署步骤 3注入 EPG 核心代码部署完成后点击右上角的“编辑代码” (Edit code)。将左侧编辑器里的默认代码全部删除。把下面这段星哥为大家准备好的EPG 镜像核心代码完整复制粘贴进去addEventListener(fetch, event { event.respondWith(handleRequest(event.request)); }); async function handleRequest(request) { const url new URL(request.url); // 目标镜像源112114 EPG let originalUrl http://epg.112114.xyz url.pathname url.search; // 如果 URL 后参数为空则设置默认参数为当前日期上海时区和默认频道 CCTV1 if (url.search ) { originalUrl ?chCCTV1date${getCurrentDateInShanghaiTimezone()}; } const response await fetch(originalUrl); const { status, statusText, headers } response; const body await response.arrayBuffer(); // 根据请求 URL 是否包含 .xml 自动设置响应的 Content-Type const contentType url.pathname.includes(.xml) ? text/xml : application/json; return new Response(body, { status, statusText, headers: { ...headers, Content-Type: contentType, Access-Control-Allow-Origin: *, // 允许跨域方便各类播放器调用 }, }); } // 获取当前日期格式为 yyyy-MM-dd以上海时区UTC8:00为准 function getCurrentDateInShanghaiTimezone() { const dateObj new Date(); dateObj.setHours(dateObj.getHours() 8); const year dateObj.getFullYear(); const month (0 (dateObj.getMonth() 1)).slice(-2); const day (0 dateObj.getDate()).slice(-2); return ${year}-${month}-${day}; }步骤 4保存并部署代码粘贴好后点击右上角的“部署” (Deploy)-“保存并部署” (Save and Deploy)。 看到下方出现绿色的成功提示你的 EPG 核心逻辑就上线啦步骤 5绑定自定义域名关键前面说了CF 默认域名国内不好访问所以必须绑定自己的域名。在 Worker 设置页面找到“设置” (Settings)-“域和路由” (Domains Routes)。点击“添加” (Add)- 选择“自定义域” (Custom Domain)。输入你的子域名比如epg.你的域名.com然后保存。等待 DNS 解析生效通常几分钟。播放器接入指南电视节目预告数据本身不能直接播放视频 你需要直播源m3u/m3u8 支持 EPG 的播放器把这个 xml 地址填进播放器的节目指南栏才能显示节目时间表。绑定好域名后你的专属 EPG 接口就诞生了假设你的域名是epg.你的域名.com以下是不同播放器的接入地址1. XML 格式适合 Kodi、OK影视、酷9、TiviMate 等https://epg.你的域名.com/pp.xml2. DIYP 类播放器 / 影视壳http://epg.你的域名.com3. 测试单频道节目表浏览器直接访问测试https://epg.你的域名.com/?chCCTV14date2026-06-29(把 CCTV14 换成你想查的频道拼音或名称日期换成 yyyy-MM-dd 格式)星哥温馨提示虽然这个方案很香但有几个注意事项大家一定要看免费额度限制Cloudflare 免费版每天限制10 万次请求。个人家庭使用绝对够但千万不要把接口公开分享到大群或论坛否则一旦被刷爆你的账号可能会被限制。默认参数代码里设置了默认频道为CCTV1默认日期为当天上海时区。如果你不传参数它就会返回 CCTV1 当天的节目单。格式自适应代码做了智能判断请求.xml后缀就返回 XML 格式否则返回 JSON 格式完美兼容各种播放器。扩容方案如果以后你的 IPTV 圈子做大了10 万次不够用可以在 CF 后台开启 Worker 的付费计划按量计费非常便宜。总结通过 Cloudflare Workers我们完美实现了“零服务器、零成本、高可用”的 EPG 接口搭建。无论你是 IPTV 直播源爱好者想给自己的电视盒子做个漂亮的节目单还是单纯想学习一下 Serverless 边缘计算这个项目都是绝佳的练手实践赶紧动手搭一个让你的播放器告别“盲看”吧觉得文章有用的话别忘了给星哥点个“赞”和“在看”你的支持是我持续更新的最大动力我们下期见(本文技术思路源自恩山无线论坛星哥进行了重新梳理与代码优化仅供技术交流与学习使用。)