À propos du projet

Opal est un lecteur multimédia et navigateur local-first gratuit et open-source qui vise à remplacer un ensemble d'outils séparés : un lecteur, un site de streaming, une interface serveur, un client torrent et un flux. Il est distribué sous forme d'un seul binaire natif construit avec Zig, dvui et mpv, et cible macOS (Apple silicon) et Linux x86_64, avec un support Windows x64 décrit comme alpha et pas encore au même niveau. Ce qu'il fait Une seule barre de recherche répartit une requête vers toutes les sources configurées et renvoie une liste classée et jouable. Les sources incluent le disque local, les torrents, Jellyfin, Plex, Stremio, anime, YouTube, la TV en direct, les métadonnées TMDB et le manga. Les liens magnet torrent se comportent comme des fichiers : appuyer sur lecture démarre le streaming pendant que le téléchargement continue. L'application propose également des murs de tendances, des genres et des explorations d'épisodes sur TMDB, YouTube, anime, Jellyfin et Plex. La TV en direct et l'IPTV sont prises en charge via un catalogue d'environ 40 000 chaînes avec recherche au fil de la frappe. Le support du manga utilise les extensions Mihon/Tachiyomi, Opal exécutant lui-même le serveur Suwayomi. La lecture YouTube est décrite comme compatible AV1. Un copilote IA local optionnel utilise un LLM local avec utilisation d'outils pour répondre à des questions telles que quoi regarder, en renvoyant des suggestions jouables. Les modèles vocaux et d'IA sont opt-in et rien ne se télécharge automatiquement. Un jeton TMDB v4 gratuit peut être ajouté pour des métadonnées plus riches. Lecteur et extras Le lecteur est construit sur mpv et inclut les sous-titres automatiques, les watch-party, la restauration de session, une télécommande de téléphone et une interface web sur le port 41595, plus une OCR sur les images vidéo, des flashcards de langue, RSS, un mode navigation privée, sept thèmes et une API JSON. La lecture peut optionnellement être transférée à VLC s'il est installé. Les raccourcis clavier couvrent la recherche, le navigateur, la bibliothèque, l'historique, le plein écran, la liste de lecture, la disposition en grille, l'ajustement/le recadrage, l'ouverture de fichier, les paramètres et une antisèche. Une extension MV3 multi-navigateur appelée Opal Connect (Chrome, Edge, Firefox) transforme un onglet en une action Opal : envoyer ou mettre en file d'attente une vidéo, ajouter un site de manga ou de roman comme source, ou piloter la lecture depuis une télécommande en panneau latéral. Confidentialité et données Le projet indique qu'il n'y a pas de comptes, pas de télémétrie, pas de cloud et pas d'abonnement. L'historique et la mémoire IA résident dans un fichier SQLite que l'utilisateur possède. Les fichiers sont conformes à XDG : config, jetons et opal.db sous ~/.config/opal, caches sous ~/.cache/opal, téléchargements dans ~/Downloads/opal, et plugins de contenu sous ~/.config/opal/plugins. Les sources de contenu sont livrées désactivées et doivent être installées depuis un registre de plugins ; les plugins consistent en un manifeste plus un exécutable de recherche/résolution qui affiche du JSON, avec Lua en bac à sable et les binaires natifs non isolés. Installation Un script d'installation en une seule commande détecte la plateforme, vérifie les sommes de contrôle et fait également office de mise à jour et de verrouillage de version ; sur Linux, il installe dans ~/.local sans sudo, avec un mode système opt-in pour apt, dnf, zypper ou AUR. Des paquets sont également fournis sous forme de dmg macOS, tap Homebrew, deb, rpm, AppImage et msi Windows ou zip portable. La compilation depuis les sources nécessite Zig 0.16.x plus des dépendances natives telles que mpv, sqlite, onnxruntime, SDL2, libtorrent-rasterbar et ffmpeg/whisper-cpp pour la voix. Les prérequis minimum sous Linux incluent libmpv 0.34 ou plus récent et, pour l'AppImage précompilé, glibc 2.38. Architecture et licence L'arborescence des sources sépare le cœur (allocateur, état, config, chemins, sqlite avec sqlite-vec), le lecteur (wrapper mpv, listes de lecture, sous-titres, historique), les services (recherche, IA, torrents, Jellyfin, API distante) et l'interface (widgets dvui), aux côtés d'une interface web compagnon et de l'extension. Le projet met l'accent sur un seul allocateur vérifié contre les fuites, des tampons de taille fixe, un hub d'état partagé unique sous des règles de sécurité des threads, et un repeint uniquement en cas de changement. Il est sous licence GPL-3.0, les dépendances incluses conservant leurs propres licences. Le README précise qu'Opal n'héberge, n'indexe et ne distribue rien, se connectant uniquement aux sources que l'utilisateur configure, et avertit que BitTorrent expose l'IP de l'utilisateur au swarm.