tizenbrew-iptv-viet
v0.1.2
Published
IPTV app module for TizenBrew (TiVi UI, AVPlay with HTML5 fallback)
Maintainers
Readme
IPTV Viet (TizenBrew app module)
Ứng dụng IPTV chạy qua TizenBrew (packageType=app), ưu tiên AVPlay, fallback HTML5 video. Ngôn ngữ UI: Tiếng Việt.
Tính năng
- Nạp playlist M3U/M3U8 (HTTP/HLS), parse group-title, tên kênh, logo (nếu có)
- Danh sách kênh theo nhóm, tìm kiếm, đánh dấu ưa thích, nhớ kênh cuối
- Remote keys: Lên/Xuống/OK/Back, phím màu:
- Đỏ: tải lại playlist hiện tại
- Lục: toggle ưa thích kênh đang xem
- Vàng: focus ô tìm kiếm
- Lam: xóa tìm kiếm
- Player: ưu tiên AVPlay (tizen.avplay), fallback
<video>HLS nếu AVPlay không khả dụng - Auto-retry đơn giản cho HTML5 video error (reload và play lại)
Cấu trúc
package.json:packageType: "app"appPath: "app/index.html"serviceFile: "service.js"keys: Arrow/Enter/Back + ColorF0..F3 + MediaPlay/Pause/Stop
service.js: entry tối giản (log start)app/index.html: UIapp/style.css: giao diện tốiapp/app.js: logic parse playlist, render, player AVPlay/HTML5, remote
Cài đặt (tham khảo TizenBrew MODULES)
- Copy toàn bộ thư mục module này vào nơi TizenBrew server phục vụ modules (ví dụ
modules/iptv-module). - Đảm bảo
package.jsongiữpackageType: "app"vàappPath: "app/index.html". - Khởi động/làm mới TizenBrew server trên TV. Ứng dụng sẽ xuất hiện trong danh sách app modules.
- Nếu cần đăng ký key, TizenBrew sẽ đọc
keystừ package.json (Arrow, Enter, Back, ColorF0..F3...).
Lưu ý: Nếu môi trường TizenBrew của bạn yêu cầu format khác (manifest riêng), hãy điều chỉnh theo đúng loader bạn đang dùng, nhưng giữ nguyên appPath, serviceFile, keys.
Sử dụng
- Mở app IPTV Viet từ TizenBrew UI.
- Nhập URL playlist M3U/M3U8 rồi bấm "Nạp playlist".
- Mặc định đã điền mẫu:
https://raw.githubusercontent.com/thichcode/thichcode/refs/heads/main/filtered_playlist.m3u
- Mặc định đã điền mẫu:
- Dùng phím màu/remote:
- Đỏ: tải lại playlist hiện tại
- Lục: đánh dấu ưa thích kênh đang xem
- Vàng: focus ô tìm kiếm
- Lam: xóa tìm kiếm
- Lên/Xuống: di chuyển; OK: phát kênh
- App sẽ thử AVPlay trước; nếu lỗi sẽ tự fallback HTML5 video.
Ghi chú kỹ thuật
- AVPlay: cần quyền tizen.avplay; nếu TizenBrew chặn AVPlay, code sẽ tự chuyển sang
<video>. - HTML5 fallback: chỉ HLS (HTTP). DASH/DRM chưa hỗ trợ trong fallback.
- Lưu cục bộ: favorites và last channel lưu bằng localStorage.
Tùy chỉnh
- Thay playlist mặc định: chỉnh
initSample()trongapp/app.js. - Nếu muốn preload playlist khi mở app: gọi
loadPlaylist(url)tronginit()sau khi detectAvplay.
Dev nhanh (offline)
- Có thể mở
app/index.htmlbằng trình duyệt desktop để kiểm tra UI và logic parse (AVPlay không khả dụng, sẽ dùng HTML5 video).
