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:
- Edit
channels.json. - Keep
channels.m3uin sync for other IPTV players. - Increment
versioninversion.jsonandchannels.json. - 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 automatically and downloads channels.json when the channel version increases.
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.
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.