TV Hosting Files
TV Hosting Files
Copy these files into the homepage project so they are served as:
https://frankzh.top/tv/version.jsonhttps://frankzh.top/tv/channels.jsonhttps://frankzh.top/tv/channels.m3uhttps://frankzh.top/tv/app-version.jsonhttps://frankzh.top/tv/mytv.apkhttps://frankzh.top/tv/player/
For a Next.js or Vercel static site, place this folder’s contents under:
public/tv/
Update process:
- Run the
tv-aggregatordaily refresh job or editchannels.json. - Keep
channels.m3uin sync for other IPTV players. - Increment
versioninversion.jsonandchannels.jsononly when the usable channel list changes. - Redeploy
frankzh.top.
Channel sources:
- Public, verified HLS streams are kept as normal channels.
- IPv6/operator-dependent sources are marked in
sourceNoteand may require router IPv6 support or policy routing. - Geo-limited sources are kept only when they are public/free streams; route the TV box or the stream domain through the matching region if needed.
- Current source pools include iptv-org public playlists and fanmingming IPv6 playlist, with manual additions for public city/news streams.
The APK checks version.json at most once per day when MyTV starts. If the channel version increases, it shows a prompt; the user presses 更新 or the remote Menu key to download channels.json. If the remote version is older than the box’s local version, MyTV refuses the downgrade and keeps the local channels.
APK update process:
- Build a new APK with a higher
versionCodeinandroid-tv-live-apk/app/build.gradle. - Copy the APK to
public/tv/mytv.apk. - Update
app-version.jsonwith the newversionCode,versionName, and SHA-256. - Redeploy
frankzh.top.
On the TV box, press Menu from MyTV. If app-version.json has a newer versionCode, MyTV downloads mytv.apk and opens the Android installer for a confirmed overwrite install. If the app is current, the same action updates the channel list without downgrading to an older remote catalog.
Web player:
player/index.htmlreads../channels.jsonat runtime.- Safari uses native HLS playback; Chrome and Edge use hls.js from jsDelivr.
- Some channels may not play in browsers if the source blocks browser CORS, even when the same stream works in the APK or IPTV player.