{"id":51118864,"url":"https://github.com/detain/phlix-tizen-client","last_synced_at":"2026-06-25T00:30:24.511Z","repository":{"id":358162729,"uuid":"1240294902","full_name":"detain/phlix-tizen-client","owner":"detain","description":"Samsung Tizen TV client for Phlix Media Server - Stream your media library to Samsung Smart TVs","archived":false,"fork":false,"pushed_at":"2026-06-21T21:26:07.000Z","size":4315,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-06-21T23:12:57.327Z","etag":null,"topics":["brightscript","dlna","electron-app","hls-streaming","home-media","htpc","jellyfin-alternative","media-player","media-server-client","mobile-app","phlix","plex-alternative","react-native","reactjs","samsung-tizen","smart-tv","streaming-client","tv-app","upnp","video-player"],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/detain.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-05-16T01:16:40.000Z","updated_at":"2026-06-21T21:26:09.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/detain/phlix-tizen-client","commit_stats":null,"previous_names":["detain/phlex-tizen-client","detain/phlix-tizen-client"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/detain/phlix-tizen-client","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/detain%2Fphlix-tizen-client","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/detain%2Fphlix-tizen-client/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/detain%2Fphlix-tizen-client/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/detain%2Fphlix-tizen-client/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/detain","download_url":"https://codeload.github.com/detain/phlix-tizen-client/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/detain%2Fphlix-tizen-client/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34755061,"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-24T02:00:07.484Z","response_time":106,"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":["brightscript","dlna","electron-app","hls-streaming","home-media","htpc","jellyfin-alternative","media-player","media-server-client","mobile-app","phlix","plex-alternative","react-native","reactjs","samsung-tizen","smart-tv","streaming-client","tv-app","upnp","video-player"],"created_at":"2026-06-25T00:30:23.990Z","updated_at":"2026-06-25T00:30:24.502Z","avatar_url":"https://github.com/detain.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Phlix Tizen TV App\n\nSamsung Smart TV client application for Phlix Media Server, built with Tizen SDK.\n\n## Table of Contents\n\n- [Overview](#overview)\n- [Features](#features)\n- [Prerequisites](#prerequisites)\n- [Installation](#installation)\n- [Configuration](#configuration)\n- [Building the App](#building-the-app)\n- [Testing](#testing)\n- [Deployment to TV](#deployment-to-tv)\n- [Supported Codecs](#supported-codecs)\n- [License](#license)\n\n## Overview\n\nPhlix Tizen is a native Samsung Smart TV application that connects to a Phlix Media Server, allowing users to browse their media library and play content directly on their television. The app is built using vanilla JavaScript with webpack for bundling and supports both direct play and transcoded streaming via HLS.\n\n## Features\n\n- **Library Browsing**: Browse movies, TV shows, music, and other media from Phlix\n- **Video Playback**: Support for direct play and HLS streaming with quality selection\n- **Remote Control**: Full Samsung remote control support with intuitive navigation\n- **User Authentication**: Secure login with Phlix account credentials\n- **Progress Tracking**: Automatic resume from last playback position\n- **Subtitle Support**: Multiple subtitle tracks and languages\n- **Audio Tracks**: Multiple audio track selection\n- **Search**: Search across your media library\n- **Favorites**: Mark items as favorites\n- **Watch History**: Track watched items\n- **Hub Mode**: Connect to a Phlix Hub to access and manage claimed servers with direct-LAN or relay-based routing\n- **SyncPlay**: Watch together with friends and family with synchronized playback across multiple devices\n\n## Prerequisites\n\n### Development Environment\n\n- **Node.js**: Version 18 or higher\n- **npm**: Version 8 or higher (included with Node.js)\n- **Git**: For version control\n\n### Samsung TV Development\n\n- **Tizen Studio**: Version 4.0 or higher\n- **Samsung TV SDK**: Tizen TV Extensions\n- **Samsung Smart TV**: 2016 model or newer (Tizen OS)\n\n### Phlix Media Server\n\n- **Phlix Media Server**: Version 4.8 or higher\n- **Network**: TV and server must be on the same network\n\n## Installation\n\n### 1. Clone the Repository\n\n```bash\ngit clone https://github.com/detain/phlix-tizen.git\ncd phlix-tizen\n```\n\n### 2. Install Dependencies\n\n```bash\nnpm install\n```\n\n### 3. Configure Environment\n\nCreate a `tizen.env` file in the project root (see [Configuration](#configuration) section).\n\n### 4. Start Development Server\n\n```bash\nnpm run serve\n```\n\nThe app will be available at `http://localhost:8080`.\n\n## Configuration\n\n### Environment Variables\n\nCreate or edit `tizen.env` in the project root:\n\n```env\nPHLIX_SERVER_URL=http://192.168.1.100:8096\nPHLIX_DEVICE_NAME=Living Room TV\nLOG_LEVEL=info\n```\n\n| Variable | Description | Default |\n|----------|-------------|---------|\n| `PHLIX_SERVER_URL` | URL of your Phlix Media Server | `http://localhost:8096` |\n| `PHLIX_DEVICE_NAME` | Display name for this TV device | `Samsung Tizen TV` |\n| `LOG_LEVEL` | Logging verbosity | `info` |\n\n### Tizen Configuration\n\nThe `app/config.xml` file contains Tizen-specific settings:\n\n- App ID and version\n- Network access permissions\n- TV capabilities declaration\n- Focus navigation settings\n\n## Building the App\n\n### Development Build\n\n```bash\n# Build with development settings\nnpm run build:dev\n\n# Watch for changes and rebuild\nnpm run watch\n```\n\n### Production Build\n\n```bash\n# Create production bundle\nnpm run build\n```\n\nOutput is placed in the `dist/` directory.\n\n### Packaging for Tizen\n\n```bash\n# Package the app for Tizen\nnode scripts/package.js\n```\n\nThis creates a `.wgt` widget file in the `dist/` directory.\n\n## Testing\n\n### Run All Tests\n\n```bash\nnpm test\n```\n\n### Run Unit Tests Only\n\n```bash\nnpm run test:unit\n```\n\n### Run Integration Tests\n\n```bash\nnpm run test:integration\n```\n\n### Code Linting\n\n```bash\nnpm run lint\n```\n\n### Run Linting with Auto-fix\n\n```bash\nnpm run lint -- --fix\n```\n\n## Deployment to TV\n\n### Option 1: Tizen Studio\n\n1. **Open Tizen Studio**\n   ```bash\n   tizen studio\n   ```\n\n2. **Import Project**\n   - File → Import → Tizen → Tizen Project\n   - Select the `phlix-tizen` directory\n   - Choose \"TV\" as the platform\n\n3. **Connect Device**\n   - Ensure your TV and computer are on the same network\n   - In Tizen Studio, go to Window → Preferences → Tizen TV → Devices\n   - Add your TV's IP address\n\n4. **Run on Device**\n   - Right-click the project → Run As → Tizen TV Application\n   - Or press `Shift + F11` to run\n\n### Option 2: CLI Deployment\n\n```bash\n# Package the app\nnpm run build\nnode scripts/package.js\n\n# Deploy via Tizen CLI\ntizen install -n dist/org.phlix.phlixtv.wgt -t \u003cTV_IP\u003e\n\n# Launch on TV\ntizen launch -n org.phlix.phlixtv\n```\n\n### Option 3: Debugging\n\n```bash\n# Start debug server\nnode scripts/debug.js\n\n# In Tizen Studio, attach debugger to running app\n```\n\n## Remote Control\n\nThe app supports full Samsung remote control navigation:\n\n| Button | Action |\n|--------|--------|\n| Arrow Up/Down/Left/Right | Navigate through items |\n| OK | Select item / Enter |\n| Back | Go back / Return |\n| Play/Pause | Toggle playback |\n| Stop | Stop playback and return to library |\n| Fast Forward | Seek forward 10 seconds |\n| Rewind | Seek backward 10 seconds |\n| Red (Color) | Toggle subtitles |\n| Green (Color) | Cycle audio tracks |\n| Yellow (Color) | Cycle quality levels |\n| Blue (Color) | Toggle favorite |\n| Info | Show/hide playback info panel |\n| Tools | Show options menu |\n\n## Supported Codecs\n\n### Video\n- H.264 (AVC)\n- H.265 (HEVC)\n- VP9\n\n### Audio\n- AAC\n- AC3 (Dolby Digital)\n- EAC3 (Dolby Digital Plus)\n- DTS\n- FLAC\n- MP3\n\n### Containers\n- MP4\n- MKV\n- WebM\n- TS (MPEG Transport Stream)\n\n### Streaming\n- HLS (HTTP Live Streaming)\n- MPEG-DASH\n- Progressive HTTP download\n\n## Project Structure\n\n```\nphlix-tizen/\n├── app/\n│   ├── index.html           # Main HTML entry point\n│   ├── config.xml           # Tizen configuration\n│   ├── js/\n│   │   ├── main.js          # Application bootstrap\n│   │   ├── api/            # API client modules\n│   │   │   ├── ApiClient.js\n│   │   │   ├── AuthManager.js\n│   │   │   ├── LibraryManager.js\n│   │   │   ├── PlayerManager.js\n│   │   │   └── SessionManager.js\n│   │   ├── player/          # Video player components\n│   │   │   ├── VideoPlayer.js\n│   │   │   ├── HlsPlayer.js\n│   │   │   ├── SubtitleRenderer.js\n│   │   │   └── QualitySelector.js\n│   │   ├── remote/          # Remote control handling\n│   │   │   ├── RemoteManager.js\n│   │   │   ├── PlayerRemoteHandler.js\n│   │   │   └── KeyMapping.js\n│   │   ├── ui/              # User interface views\n│   │   │   ├── App.js\n│   │   │   ├── Router.js\n│   │   │   ├── HomeView.js\n│   │   │   ├── LibraryView.js\n│   │   │   ├── DetailView.js\n│   │   │   └── PlayerView.js\n│   │   ├── syncplay/         # SyncPlay synchronized playback\n│   │   │   └── SyncPlayService.js\n│   │   ├── config/          # Configuration\n│   │   │   └── constants.js\n│   │   └── utils/           # Utility functions\n│   │       ├── Logger.js\n│   │       ├── Storage.js\n│   │       └── Helpers.js\n│   └── css/                 # Stylesheets\n│       ├── style.css\n│       ├── player.css\n│       ├── components.css\n│       └── themes/\n│           └── dark.css\n├── scripts/                  # Build scripts\n│   ├── build.js\n│   ├── package.js\n│   └── debug.js\n├── tests/                    # Test files\n│   └── unit/\n│       ├── api/\n│       │   └── ApiClient.test.js\n│       ├── remote/\n│       │   └── KeyMapping.test.js\n│       ├── syncplay/\n│       │   └── SyncPlayService.test.js\n│       └── utils/\n│           └── Helpers.test.js\n├── .github/\n│   └── workflows/\n│       ├── test.yml\n│       └── lint.yml\n├── babel.config.js           # Babel configuration\n├── webpack.config.js         # Webpack configuration\n├── package.json\n└── README.md\n```\n\n## Troubleshooting\n\n### App Won't Start\n\n1. Ensure your TV supports Tizen OS (2016+ models)\n2. Check that the TV is connected to the same network as the server\n3. Verify the Phlix Media Server is running and accessible\n\n### Playback Issues\n\n1. For buffering issues, check network bandwidth\n2. If direct play fails, the server may transcode (slower start)\n3. Check server logs for codec compatibility warnings\n\n### Remote Not Working\n\n1. Ensure no other device is controlling the TV\n2. Try restarting the TV\n3. Check that the remote's batteries are fresh\n\n## License\n\nMIT License\n\nCopyright (c) 2024 Phlix\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdetain%2Fphlix-tizen-client","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdetain%2Fphlix-tizen-client","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdetain%2Fphlix-tizen-client/lists"}