Sobre o projeto

Opal é um reprodutor de mídia e navegador gratuito, de código aberto e local-first, que visa substituir um conjunto de ferramentas separadas: um reprodutor, um site de streaming, um front-end de servidor, um cliente de torrent e um feed. É distribuído como um único binário nativo construído com Zig, dvui e mpv, e tem como alvo macOS (Apple silicon) e Linux x86_64, com suporte a Windows x64 descrito como alfa e ainda não em paridade. O que ele faz Uma única caixa de busca expande uma consulta por todas as fontes configuradas e retorna uma lista única, classificada e reproduzível. As fontes incluem disco local, torrents, Jellyfin, Plex, Stremio, anime, YouTube, TV ao vivo, metadados TMDB e mangá. Magnets de torrent se comportam como arquivos: pressionar play inicia o streaming enquanto o download continua. O aplicativo também oferece paredes de tendências, gêneros e detalhamento de episódios em TMDB, YouTube, anime, Jellyfin e Plex. TV ao vivo e IPTV são suportadas por meio de um catálogo de aproximadamente 40.000 canais com busca enquanto digita. O suporte a mangá usa extensões Mihon/Tachiyomi, com o Opal executando o servidor Suwayomi por conta própria. A reprodução do YouTube é descrita como segura para AV1. Um copiloto de IA opcional no dispositivo usa um LLM local com uso de ferramentas para responder perguntas como o que assistir, retornando escolhas reproduzíveis. Modelos de voz e IA são opcionais e nada é baixado automaticamente. Um token gratuito TMDB v4 pode ser adicionado para metadados mais ricos. Reprodutor e extras O reprodutor é construído sobre mpv e inclui legendas automáticas, watch-party, restauração de sessão, controle remoto por telefone e uma interface web na porta 41595, além de OCR em quadros de vídeo, flashcards de idiomas, RSS, modo anônimo, sete temas e uma API JSON. A reprodução pode opcionalmente ser entregue ao VLC se instalado. Atalhos de teclado cobrem busca, navegador, biblioteca, histórico, tela cheia, lista de reprodução, layout de grade, ajustar/cortar, abrir arquivo, configurações e uma folha de referência. Uma extensão MV3 de navegador chamada Opal Connect (Chrome, Edge, Firefox) transforma uma aba em uma ação do Opal: enviar ou enfileirar um vídeo, adicionar um site de mangá ou novel como fonte, ou controlar a reprodução a partir de um controle remoto em painel lateral. Privacidade e dados O projeto declara que não há contas, telemetria, nuvem ou assinatura. Histórico e memória de IA ficam em um arquivo SQLite de propriedade do usuário. Os arquivos são compatíveis com XDG: config, tokens e opal.db em ~/.config/opal, caches em ~/.cache/opal, downloads em ~/Downloads/opal e plugins de conteúdo em ~/.config/opal/plugins. As fontes de conteúdo vêm desabilitadas e devem ser instaladas a partir de um registro de plugins; os plugins consistem em um manifesto mais um executável de busca/resolução que imprime JSON, com Lua em sandbox e binários nativos sem sandbox. Instalação Um script de instalação de um comando detecta a plataforma, verifica checksums e serve também como atualizador e fixador de versão; no Linux, instala em ~/.local sem sudo, com um modo opcional para todo o sistema para apt, dnf, zypper ou AUR. Pacotes também são fornecidos como dmg para macOS, tap Homebrew, deb, rpm, AppImage e msi ou zip portátil para Windows. Compilar a partir do código-fonte requer Zig 0.16.x além de dependências nativas como mpv, sqlite, onnxruntime, SDL2, libtorrent-rasterbar e ffmpeg/whisper-cpp para voz. Requisitos mínimos do Linux incluem libmpv 0.34 ou mais recente e, para o AppImage pré-construído, glibc 2.38. Arquitetura e licença A árvore de código-fonte separa core (alocador, estado, config, caminhos, sqlite com sqlite-vec), player (wrapper mpv, listas de reprodução, legendas, histórico), serviços (busca, IA, torrents, Jellyfin, API remota) e ui (widgets dvui), junto com uma interface web complementar e a extensão. O projeto enfatiza um único alocador com verificação de vazamentos, buffers de tamanho fixo, um hub de estado compartilhado sob regras de segurança de thread e repintura apenas em mudanças. É licenciado sob GPL-3.0, com dependências incluídas mantendo suas próprias licenças. O README observa que o Opal não hospeda, indexa ou distribui nada, conectando-se apenas a fontes que o usuário configura, e alerta que o BitTorrent expõe o IP do usuário ao swarm.