프로젝트 소개
Opal은 무료 오픈소스 로컬 우선 미디어 플레이어이자 브라우저로, 플레이어, 스트리밍 사이트, 서버 프론트엔드, 토렌트 클라이언트, 피드 등 별도 도구들의 조합을 대체하는 것을 목표로 합니다. Zig, dvui, mpv로 빌드된 단일 네이티브 바이너리로 배포되며, macOS(Apple silicon)와 Linux x86_64를 대상으로 하고, Windows x64 지원은 알파 단계로 패리티에 도달하지 않았습니다.
기능
단일 검색창이 모든 구성된 소스에 쿼리를 전달하고 하나의 순위가 매겨진 재생 가능한 목록을 반환합니다. 소스에는 로컬 디스크, 토렌트, Jellyfin, Plex, Stremio, 애니메이션, YouTube, 라이브 TV, TMDB 메타데이터, 만화가 포함됩니다. 토렌트 마그넷은 파일처럼 동작합니다: 재생을 누르면 다운로드가 계속되는 동안 스트리밍이 시작됩니다. 또한 TMDB, YouTube, 애니메이션, Jellyfin, Plex에 걸쳐 트렌딩 월, 장르, 에피소드 드릴다운을 제공합니다.
라이브 TV와 IPTV는 약 40,000개 채널의 카탈로그와 타이핑 즉시 검색 기능을 통해 지원됩니다. 만화 지원은 Mihon/Tachiyomi 확장을 사용하며, Opal이 Suwayomi 서버 자체를 실행합니다. YouTube 재생은 AV1 세이프로 설명됩니다.
선택적 기기 내장 AI 코파일럿은 로컬 LLM과 도구 사용을 활용해 무엇을 볼지 같은 질문에 답하고 재생 가능한 추천을 반환합니다. 음성 및 AI 모델은 옵트인 방식이며 자동으로 다운로드되는 것은 없습니다. 더 풍부한 메타데이터를 위해 무료 TMDB v4 토큰을 추가할 수 있습니다.
플레이어 및 추가 기능
플레이어는 mpv 기반으로 구축되었으며, 자동 자막, 함께보기, 세션 복원, 폰 리모컨, 포트 41595의 웹 UI, 비디오 프레임 OCR, 언어 플래시카드, RSS, 시크릿 모드, 7가지 테마, JSON API를 포함합니다. 설치된 경우 VLC로 재생을 넘길 수 있습니다. 키보드 단축키는 검색, 브라우저, 라이브러리, 기록, 전체화면, 재생목록, 그리드 레이아웃, 맞춤/자르기, 파일 열기, 설정, 치트 시트를 다룹니다.
Opal Connect(Chrome, Edge, Firefox)이라는 크로스 브라우저 MV3 확장은 탭을 Opal 액션으로 전환합니다: 비디오를 전송하거나 대기열에 추가, 만화나 소설 사이트를 소스로 추가, 또는 사이드 패널 리모컨으로 재생을 제어할 수 있습니다.
프라이버시 및 데이터
프로젝트는 계정, 텔레메트리, 클라우드, 구독이 없다고 명시합니다. 기록과 AI 메모리는 사용자가 소유한 SQLite 파일에 저장됩니다. 파일은 XDG 규격을 따릅니다: config, 토큰, opal.db는 ~/.config/opal 아래에, 캐시는 ~/.cache/opal 아래에, 다운로드는 ~/Downloads/opal에, 콘텐츠 플러그인은 ~/.config/opal/plugins 아래에 위치합니다. 콘텐츠 소스는 기본적으로 비활성화 상태로 제공되며 플러그인 레지스트리에서 설치해야 합니다. 플러그인은 매니페스트와 JSON을 출력하는 검색/해결 실행 파일로 구성되며, Lua는 샌드박스 처리되고 네이티브 바이너리는 샌드박스 처리되지 않습니다.
설치
원커맨드 설치 스크립트는 플랫폼을 감지하고 체크섬을 검증하며, 업데이터와 버전 고정 기능도 겸합니다. Linux에서는 sudo 없이 ~/.local에 설치되며, apt, dnf, zypper, AUR용 옵트인 시스템 전체 모드를 제공합니다. macOS dmg, Homebrew tap, deb, rpm, AppImage, Windows msi 또는 포터블 zip 패키지도 제공됩니다. 소스에서 빌드하려면 Zig 0.16.x와 mpv, sqlite, onnxruntime, SDL2, libtorrent-rasterbar, 음성용 ffmpeg/whisper-cpp 등의 네이티브 의존성이 필요합니다. Linux 최소 요구사항은 libmpv 0.34 이상이며, 사전 빌드된 AppImage의 경우 glibc 2.38입니다.
아키텍처 및 라이선스
소스 트리는 core(할당자, 상태, config, 경로, sqlite-vec 포함 sqlite), player(mpv 래퍼, 재생목록, 자막, 기록), services(검색, AI, 토렌트, Jellyfin, 원격 API), ui(dvui 위젯)를 분리하며, 컴패니언 웹 UI와 확장도 포함합니다. 프로젝트는 단일 누수 검사 할당자, 고정 크기 버퍼, 스레드 안전 규칙 하의 하나의 공유 상태 허브, 변경 시에만 다시 그리기를 강조합니다. GPL-3.0으로 라이선스되며, 번들된 의존성은 각자의 라이선스를 유지합니다. README는 Opal이 호스팅, 인덱싱, 배포하는 것은 없으며 사용자가 구성한 소스에만 연결된다고 명시하고, BitTorrent가 사용자의 IP를 스웜에 노출시킨다고 경고합니다.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.