{"id":50284530,"url":"https://github.com/lennylxx/webos-iptv-player","last_synced_at":"2026-06-11T23:00:40.785Z","repository":{"id":356664118,"uuid":"1194281343","full_name":"lennylxx/webos-iptv-player","owner":"lennylxx","description":"An IPTV player for LG webOS TVs","archived":false,"fork":false,"pushed_at":"2026-06-08T05:18:07.000Z","size":380,"stargazers_count":9,"open_issues_count":1,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-08T07:17:34.009Z","etag":null,"topics":["ipk","iptv","iptv-player","webos","webos-application","webos-homebrew"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lennylxx.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-28T06:15:13.000Z","updated_at":"2026-06-08T05:18:11.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/lennylxx/webos-iptv-player","commit_stats":null,"previous_names":["lennylxx/webos-iptv-player"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/lennylxx/webos-iptv-player","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lennylxx%2Fwebos-iptv-player","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lennylxx%2Fwebos-iptv-player/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lennylxx%2Fwebos-iptv-player/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lennylxx%2Fwebos-iptv-player/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lennylxx","download_url":"https://codeload.github.com/lennylxx/webos-iptv-player/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lennylxx%2Fwebos-iptv-player/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34221150,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-11T02:00:06.485Z","response_time":57,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ipk","iptv","iptv-player","webos","webos-application","webos-homebrew"],"created_at":"2026-05-28T01:30:52.270Z","updated_at":"2026-06-11T23:00:40.776Z","avatar_url":"https://github.com/lennylxx.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# webOS IPTV Player\n\nAn IPTV player for LG webOS TVs. Supports M3U playlists, XMLTV programme guides, and catch-up/timeshift playback.\n\n![icon](assets/icon.svg)\n\n## Preview\n\n![Channel list](https://github.com/user-attachments/assets/b9ae3b70-9ae0-42ad-acec-6c086d506826)\n\n| Programme guide | Settings |\n| --- | --- |\n| ![Programme guide](https://github.com/user-attachments/assets/4a2fecc8-bd32-45dd-9067-69d6f44649a6) | ![Settings](https://github.com/user-attachments/assets/107d2879-8e9a-4dd1-9b99-1cb1100a392a) |\n\n| Playback overlays | Channel info |\n| --- | --- |\n| ![Playback overlays](https://github.com/user-attachments/assets/c6209a19-2faf-41fe-bcd0-e3bceecbefe0) | ![Channel info](https://github.com/user-attachments/assets/bd3401d9-728c-499b-b7d1-bb8b057b5786) |\n\n## Features\n\n- **M3U Playlist Support** — Load multiple M3U/M3U8 playlists with auto-deduplication\n- **LAN M3U Upload** — Drop `.m3u` files onto the TV from any phone/laptop on the same network via a QR-scannable upload page; new playlists appear in Settings within milliseconds (push, not polling). See [`upload-service/README.md`](upload-service/README.md) for details.\n- **Electronic Programme Guide (EPG)** — Three-pane layout (channels / date bar / programmes), date range auto-derived from EPG data, with IndexedDB caching for instant reopen\n- **Catch-up / Timeshift** — Play past programmes using `catchup-source` URL templates from M3U\n- **Channel Search** — Find channels by name from both the channel list and the player sidebar; focus the search box and press OK to type. Search spans all groups and is scoped to the selected playlist tab\n- **Channel Sidebar** — Quick channel switching overlay with current programme info and auto-scrolling text\n- **Magic Remote Support** — Pointer-driven navigation for sidebar, menu, and channel selection\n- **Spatial Navigation** — Full D-pad/remote navigation across all views\n- **On-Screen Display** — Channel info bar with programme title, progress timeline, and timestamps\n- **Favorites** — Mark and filter favorite channels\n- **Auto-play** — Resume last watched channel on startup\n- **Desktop Preview** — Browser-based preview with HLS.js and mpegts.js fallbacks\n\n## Install on your TV\n\n1. **Download the app.** On your computer, open the\n   [Releases page](https://github.com/lennylxx/webos-iptv-player/releases/latest)\n   and download the latest `.ipk` file.\n\n2. **Install the webOS CLI tools.** Install [Node.js](https://nodejs.org/) (v18+), then run:\n\n   ```bash\n   npm install -g @webos-tools/cli\n   ```\n\n3. **Turn on Developer Mode on the TV.**\n   - Create a free account at the [LG webOS Developer site](https://webostv.developer.lge.com/).\n   - On the TV, open the **LG Content Store**, search for **Developer Mode**, then\n     install and open it.\n   - Sign in with your LG developer account and switch **Dev Mode Status** to **ON**.\n     The TV restarts. Note the **IP address** and **passphrase** the app shows.\n\n4. **Register your TV.** Add it as a device named `tv` (replace the IP with your TV's):\n\n   ```bash\n   ares-setup-device --add tv -i \"username=prisoner\" -i \"host=127.0.0.1\" -i \"port=9922\"\n   ```\n\n   Then fetch the device key, entering the **passphrase** from the Developer Mode app when prompted:\n\n   ```bash\n   ares-novacom --device tv --getkey\n   ```\n\n5. **Install the app.**\n\n   ```bash\n   ares-install --device tv ./com.lennylxx.iptv_\u003cversion\u003e_all.ipk\n   ```\n\n## Requirements\n\n- [Node.js](https://nodejs.org/) (v18+)\n- [webOS CLI tools](https://webostv.developer.lge.com/develop/tools/cli-installation) (`ares-*` commands)\n\n## Setup\n\n```bash\nnpm install\n```\n\n## Build\n\n```bash\n./build.sh\n```\n\n## Build \u0026 Install to TV\n\n```bash\n./build.sh --install [device-name]\n```\n\nIf no device name is given, the default device from `ares-setup-device` is used.\n\n## Preview in Browser\n\n```bash\nnpm run preview\n```\n\nOpens at http://localhost:3000. Video playback uses HLS.js/mpegts.js on desktop since browsers lack native TS/HLS support.\n\n## Settings\n\nOpen with the **Blue** key or click the gear icon in the channel list. Sections:\n\n- **Playlists** — add, edit, or remove M3U URLs. Re-applied on Save.\n- **Upload Playlist** — QR code + LAN URL on the left, list of currently uploaded playlists on the right. Scan the QR from a phone/laptop on the same network to upload `.m3u` files; they appear in this list within milliseconds via Luna push.\n- **EPG (Electronic Program Guide)** — set the XMLTV URL (also auto-detected from `x-tvg-url` in M3U).\n- **Playback** — toggle auto-play (resume last watched channel on launch).\n- **Data Management** — *Refresh All Data* re-fetches playlists and EPG; *Clear Cache* drops the cached playlist + EPG.\n- **Save \u0026 Apply** reloads channels from the new sources. **Cancel** discards edits.\n\n## Remote Control Mapping\n\n| Key | Player | Channel List | EPG |\n|-----|--------|-------------|-----|\n| Up/Down | Channel +/- | Navigate | Navigate within pane |\n| Left | Open sidebar | — | Back to channels / previous day |\n| Right | Open menu | — | To programmes / next day |\n| OK/Enter | Toggle OSD | Select channel / Open settings (gear) | Play channel / programme (catch-up if past) |\n| Back | Stop \u0026 return | Exit app (press twice) | Close guide |\n| Red | Open EPG | Open EPG | — |\n| Blue | Open settings | Open settings | Close guide |\n| Yellow | Show OSD | — | — |\n| Green | Toggle favorite (in sidebar/menu) | Toggle favorite (on focused channel) | Jump to today |\n| Ch +/- | Channel +/- | Page up/down | Jump 10 channels |\n| 0-9 | Direct channel entry | Direct channel entry | — |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flennylxx%2Fwebos-iptv-player","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flennylxx%2Fwebos-iptv-player","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flennylxx%2Fwebos-iptv-player/lists"}