PlxNative
LG webOS TV용 빠르고 비공식적인 Plex 클라이언트입니다. 웹 페이지가 아니라 네이티브 앱이며, 인터페이스는 60fps로 GPU에 직접 그려지고 동영상은 TV 자체 디코더에서 재생됩니다.
웹사이트: plxnative.com · 설치 가이드 · 문제 해결
<a href="https://trendshift.io/repositories/244171?utm_source=repository-badge&utm_medium=badge&utm_campaign=badge-repository-244171" target="_blank" rel="noopener noreferrer"><img src="https://trendshift.io/api/badge/repositories/244171" alt="GLinnik21/plx-native | Trendshift" width="250" height="55"/></a>
2019년 LG TV에서 일상적으로 사용 중입니다. PlxNative는 독립적인 프로젝트이며 Plex, Inc. 또는 LG와 제휴 관계가 아닙니다. 동일한 설치 단계는 리포지토리에 있습니다: installation guide.
이 프로젝트가 존재하는 이유
제 오래된 LG TV의 공식 Plex 앱이 느립니다. 쉘프를 스크롤할 때 끊기고, 포스터 하나를 여는 데 너무 오랜 시간이 걸립니다. 웹 페이지처럼 작동하는데, 실제로도 그렇습니다. TV에 내장된 Chromium에서 실행되는 웹 앱이기 때문입니다. 패치해도 도움이 되지 않습니다. 한계는 코드가 아니라 브라우저 자체입니다.
그래서 저는 브라우저를 버렸습니다.
PlxNative는 GPU에 직접 그리고 동영상은 내장 앱이 사용하는 것과 같은 실리콘으로 전달합니다. Chromium도, JavaScript도, 웹 뷰도 없습니다. 그저 그립니다. 거의 모든 것이 Rust로 작성되었으며, 옆방 서버의 콘텐츠를 시청하기 위해 매일 사용하고 있습니다.
작동 방식
앱의 실제 화면을 캡처한 것입니다. 목업이 아닙니다. TV에서 실행되는 것과 동일한 코드를 데스크톱 시뮬레이터에서 열린 오픈 라이선스 영화 데모 라이브러리를 탐색하는 모습입니다 (credits). make screenshots를 실행하면 캡처 이미지가 재생성됩니다.
Home
홈(Home) — 현재 시청 중이거나 방금 도착한 콘텐츠로 구성된 회전형 히어로 섹션과 그 아래의 쉘프들입니다.
Library
라이브러리(Library) — 라이브러리가 전체 포스터 그리드 형태로 열리고, 측면에는 A–Z 순서의 트랙과 정렬 및 필터링을 위한 헤더 행(미시청 항목 전용 포함), 컬렉션 페이지, 추천 페이지가 있습니다. 선반들은 '추천' 탭에 위치하며, 현재 시청 중인 콘텐츠는 포커스 카드 아래에 남은 시간이 표시되고, 새로 추가된 콘텐츠도 확인할 수 있습니다 (여기에 그림).**
Search
검색(Search) — 접근 가능한 모든 서버에서 하나의 쿼리로 검색하며, 결과는 종류별로 그룹화됩니다.Player
플레이어(Player) — 챕터와 트랙 메뉴가 있는 미디어 플레이어로, TV가 스스로 디코딩하는 비디오 위에 표시됩니다. (이 스크린샷에서는 아래 프레임이 시뮬레이터에 의해 디코딩되었습니다.)
기능 설명
- 리모컨과 동기화되는 인터페이스. 제가 개발한 2019년형 세트에서 60fps로 작동하며, TV가 신뢰하는 대신 측정하여 프레임 속도 저하 장면을 보여줍니다.
- 화면에 표시되는 QR 코드를 사용하여 TV에서 로그인하고 Plex Home 프로필을 선택합니다.
- 라이브러리 탐색 및 검색 — 사용자의 서버와 공유된 서버의 라이브러리를 탐색할 수 있습니다. 즉, 사용자 서버의 라이브러리와 plex.tv 시청 목록(Watchlist)이 별도의 탭으로 존재하며, 모든 타이틀을 추가하거나 제거할 수 있습니다. 검색은 서버만 대상으로 합니다.
- H.264 및 HEVC의 직접 재생(Direct play) — 4K, 10비트, Dolby Vision 프로필 5와 8, E-AC-3 Atmos, 그리고 AV1 또는 VP9 (webOS 4 세트에 한해 10비트 VP9)를 지원하며, 코덱 테이블에 해당 디코더가 명시된 TV에서 재생됩니다. 그렇지 않은 경우 서버가 트랜스코딩(transcodes)하며, 사용자는 속도가 변하는 링크를 따라가기 위해 재생을 '자동(Auto)'으로 전환할 수 있습니다.
- 시청 시 기대하는 모든 기능: 재개(resume), 탐색(seek) 및 스크럽(scrub), 챕터, 오디오 및 자막 트랙(이미지 자막 포함), 인트로 건너뛰기(Skip Intro), 크레딧 건너뛰기(Skip Credits), 다음 콘텐츠 자동 진행(Up Next with auto-advance), 그리고 서버로 보고되는 진행률.
내 TV에서 작동할까요?
webOS 4.0 이상이 필요합니다. 다만, 테스트된 두 가지 예외가 있습니다: 2016년식 webOS 3.4.3 세트는 Developer Mode를 통해 브라우징, 검색 및 재생(직접 재생, 트랜스코딩, 자막 및 탐색)을 지원하며, 2018년식 세트는 60f99c7 이후 소스에서 빌드된 경우 동일하게 직접 재생합니다 — 카탈로그의 사전 구축된 v0.8.0은 이 수정 사항보다 이전입니다 (참고 Known issues). 다른 3.x 버전은 테스트되지 않았으며, 3.4보다 오래된 것은 알 수 없습니다. 그 이전은 아마도 어려울 것입니다. 저는 2019년식 세트에서 개발 및 테스트하며, 옵트인 사용 보고서에 따르면 webOS 11의 2018년부터 최신 세트까지 직접 재생과 서버 트랜스코딩 모두 가능하고, Developer Mode 설치도 포함됩니다.
소유자들의 리포트는 세트별로 compatibility list에서 확인할 수 있습니다.
Known issues (알려진 문제)
| 어디서 | 무슨 일이 발생하나요 |
|---|
| LG의 k5lp 또는 k3lp 칩이 장착된 일부 2019년식 세트, Developer Mode를 통해 설치한 경우 | 비디오가 재생되지 않습니다. 이러한 세트에서 LG의 Developer Mode 샌드박스는 기기가 필요한 비디오 경로를 차단할 수 있습니다 — Kodi와 Moonlight 모두 같은 문제에 부딪힙니다. 앱은 이를 확인하고 충돌하는 대신 그렇게 표시합니다; 동일한 칩을 사용하는 다른 세트는 정상적으로 작동합니다. Homebrew Channel이 있는 root 권한의 TV에서는 실패 화면에서 Repair를 제공하며, 이는 샌드박스에 Homebrew Channel 수정을 적용합니다 (한 소유자가 root 쉘에서 이 방식으로 수정했습니다; 아직 영향을 받은 세트에서 버튼 자체가 실행된 적은 없습니다). root 권한이 없으면 해결책이 없습니다. |
문제가 발생하면 먼저 문제 해결(Troubleshooting)을 확인하고, 그 다음 발생한 상황을 알려주세요 — 그리고 위에 나열된 세트 중 하나를 소유하고 있다면, 작동하는 것 역시 실패하는 것만큼 유용한 보고서입니다: Discussions > Compatibility 아래에 게시해 주세요.
설치하기
LG Content Store 외부에서 앱을 처음 설치하는 경우? 단계별 설치 가이드를 따르세요. 이 가이드는 일반 LG webOS TV, 동일 네트워크의 컴퓨터, 그리고 자신 또는 공유 서버에 접근할 수 있는 Plex 계정으로 시작합니다. 루트 권한은 필요하지 않습니다.
LG 개발자 모드(Developer Mode)를 설정하고 webOS Dev Manager로 연결한 다음 다음 중 하나를 선택하세요:
- PlxNative 직접 설치: TV에 PlxNative만 추가하고, 향후
.ipk 업데이트는 컴퓨터에서 설치합니다.
- Homebrew Channel 먼저 설치: TV에 앱 카탈로그를 받은 다음, 리모컨으로 PlxNative와 그 업데이트를 설치합니다.
이미 Homebrew Channel이 있는 경우? 카탈로그에서 PlxNative 찾기를 찾아 **설치(Install)**를 선택하세요. 컴퓨터 설정 단계는 건너뛰세요.
개발자 모드는 주기적인 갱신이 필요합니다. 만료되어 LG가 개발자 모드를 비활성화하면, 이를 통해 설치된 앱은 제거됩니다. 개발자 모드를 통해 Homebrew Channel을 설치하는 것이 이러한 요구 사항을 제거하지는 않습니다. 가이드에서 세션 갱신 방법을 설명합니다.
수동 .ipk 다운로드의 경우, 설치하기 전에 릴리스 체크섬을 확인하세요. Homebrew Channel은 카탈로그 다운로드를 대신 검증해 줍니다.
Nightly builds (야간 빌드)
매일 main 브랜치가 이동하며, CI가 현재 위치에서 야간 .ipk 파일을 생성합니다. 이는 일반 앱 옆에 **
Homebrew Channel을 통해 설치하는 경우: 설정(Settings)에서 Add repository를 선택하고 https://plxnative.com/nightly/repo.json을 입력한 후 PlxNative Nightly를 설치하세요. 이후에 나오는 모든 nightly 버전은 업데이트로 표시됩니다. nightly builds guide에 단계, 버전 작동 방식 및 문제가 발생했을 때의 조치 방법이 나와 있습니다.
Homebrew Channel을 사용하지 않는 경우: 각 빌드는 prerelease이며, 가장 최신 버전은 항상 plxnative.com/nightly/latest.json에서 링크됩니다. Dev Manager를 사용하여 설치하세요. 이렇게 설치된 패키지는 스스로 업데이트되지 않습니다.
이것은 텔레비전에서는 테스트되지 않았습니다. 일반 릴리스와 동일한 자동 빌드 및 패키징 검사를 통과하지만, 아무도 이것을 재생하는 것을 본 적이 없습니다. 각 nightly 버전은 게시 후 30일이 지나면 삭제되므로 특정 .ipk 링크는 사용자 책임 하에 이용하세요.
Release candidates (릴리스 후보)
릴리스가 나오기 전에 CI(Continuous Integration)에서 PlxNative 0.8.0-rc.1과 같이 이름 붙은 릴리스 후보를 prerelease로 게시할 수 있습니다. 이것 자체가 릴리스 빌드이므로, 업데이트처럼 일반 PlxNative 앱으로 설치되며 기존 버전을 대체합니다. 이는 Homebrew Channel에 포함되지 않으며, Channel 역시 최종 릴리스를 통해 제공하지 않을 것이므로, 최종 버전은 출시된 후 직접 재설치해야 합니다.
개인 정보 보호 (Privacy)
사용자의 라이브러리 데이터는 저에게 절대 전송되지 않습니다. 이 앱은 사용자의 Plex 서버와 로그인하기 위해 plex.tv에, 그리고 캐스트 전기(cast biographies) 및 Watchlist를 위해 discover.provider.plex.tv에 연결됩니다 (읽거나, 요청 시 활성 프로필의 plex.tv 토큰을 사용하여 제목을 추가하거나 제거합니다).
충돌 보고서와 사용 분석은 켜기 전까지는 작동하지 않습니다. 이는 두 개의 별도 첫 실행 질문이며, 각각 '공유 안 함(Don't Share)'으로 답변할 수 있고, 나중에 계정(Account) → 설정(Settings) → 개인 정보 및 데이터(Privacy & data)에서 되돌릴 수 있습니다. 어떤 제목, 검색어, 자막 줄, 서버 이름 또는 주소도 보고서에 나타날 수 없습니다. PRIVACY.md에 스키마를 포함하여 전체 진술이 담겨 있습니다.
ASS/SSA 자막은 다이렉트 플레이(direct play) 중 스타일, 위치 지정, 겹치는 사인 및 대화, 노래방(karaoke), 임베디드 폰트를 포함하여 네이티브하게 렌더링됩니다. 외부 ASS 파일은 원래의 스크립트를 유지합니다. 재인코딩(re-encode)을 하면 선택된 자막이 서버에 구워지지만, 리먹스(remux)를 할 경우 앱이 사이드카(sidecar)를 그리고 링크가 로컬이고 파트가 1..=30000 kbps일 때 임베디드 트랙을 그리며, 그렇지 않은 경우에는 서버에서 구워집니다.
솔직한 범위 (The honest scope)
저는 제가 시청하는 방식에 맞춰 이것을 만들었기 때문에 Plex의 기능보다는 좁습니다:
- 영화 및 TV 쇼. 음악, 사진, 라이브 TV 또는 DVR은 지원하지 않습니다.
- 서버 주소 타이핑 불필요. 서버는 사용자의 Plex 계정에서 가져옵니다. 휴대폰이나 PC에서 설정하고 목록에서 선택할 수 있습니다. Plex의 릴레이(relay)를 통해 도달하거나 암호화된 연결이 필요한 서버는 지원되지만, 종단 간(end to end)으로 시청된 기록은 없습니다.
- 한 사람의 여가 시간. 제가 당신처럼 시청하지 않기 때문에 제가 발견하지 못한 버그들이 있을 것입니다.
만약 이것이 적합하다면, 정말 사용하기 좋습니다. 그렇지 않다면 공식 앱이 더 나은 서비스를 제공할 것입니다.
기여 (Contributing)
버그 리포트(Issues)와 풀 리퀘스트(pull requests)는 환영하며, 특히 저의 라이브러리나 TV 환경과 다른 분들의 의견을 기다립니다 — docs/building.md에는 빌드 및 테스트 루프가 설명되어 있으며 제가 가장 도움을 필요로 하는 하드웨어에 대해 언급하고 있습니다. 기능 아이디어는 Discussions > Ideas로 보내주세요. 보안 문제는 공개 이슈 대신 SECURITY.md를 통해 접수해 주십시오.
감사의 글 (Acknowledgements)
<a href=
GPL-3.0 이상 라이선스(LICENSE)에 따라, © 2026 Gleb Linnik. PlxNative 이름과 그 브랜드 아트는 제외됩니다 — Plex와 LG의 비제휴 명시가 포함된 TRADEMARKS.md를 참조하세요.
서드파티 컴포넌트 및 해당 라이선스는 THIRD-PARTY-NOTICES.md와 licenses/에 있습니다 — 특히 이 앱은 자체 LGPL 버전의 FFmpeg를 빌드하여 배포합니다. 이러한 공지 사항과 라이선스 텍스트는 .ipk 내부에도 포함되므로, 이 저장소뿐만 아니라 바이너리와 함께 이동합니다.
Electronics. "Plex", "Rotten Tomatoes", "IMDb", "TMDB", "LG" 및 "webOS"는 각 소유자의 상표입니다; 앱에 표시되는 경우, 해당 서비스 또는 점수가 누구의 것인지 식별하는 역할을 합니다.
스타 히스토리