À propos du projet

Tahti Player est le client d'écoute et de studio artiste de Tahti, une organisation à but non lucratif finlandaise et une plateforme de diffusion axée sur les chaînes pour les artistes indépendants. Il est construit sur l'interface de lecteur gratuite et sans publicité de Nuclear (React et un système de design partagé) et est actuellement proposé sous forme de SPA Vite sur beta.tahti.live, qui communique avec l'API de production en direct sur api.tahti.live. Le dépôt contient deux éléments principaux : @tahti-player/tahti-web, le client web d'écoute et de studio basé sur Nuclear, destiné à être candidat à la bascule pour le projet de production apps/web, et Tahti Player, l'application de bureau Tauri avec des extensions et des paquets d'interface partagés. Le client web n'est pas un backend distinct ; il utilise la même API publique Tahti, le même service de chat et le même CDN multimédia que la production. L'objectif affiché est un shell natif de lecteur avec file d'attente, thèmes et interface adaptée au clavier, ainsi qu'un studio qui ressemble à une régie pour passer en direct plutôt qu'à un tableau de bord SaaS générique. Des clients natifs sont disponibles pour Windows, Mac et Linux et permettent de charger ses propres morceaux pour la gestion, l'enrichissement des métadonnées et la gestion musicale générale. Les fonctionnalités d'auditeur incluent un annuaire des chaînes, le HLS des chaînes en direct et le replay des archives, un flux Tahti Radio 24h/24 et 7j/7, un chat de chaîne via des websockets Centrifugo avec réactions et accès réservé aux abonnés, des profils d'artistes, des collections et albums, des liens intelligents, des intégrations, un annuaire de salles, des motions de gouvernance, des rapports de transparence et l'état de la plateforme. Les fonctionnalités de compte couvrent les abonnements, les favoris, l'historique d'écoute, l'ajout à une liste de lecture, les abonnements de fans via Stripe Checkout, les messages privés, le vote des membres sur la gouvernance et une bibliothèque personnelle. Les fonctionnalités du studio artiste incluent un assistant de mise en direct avec OBS/RTMP et multidiffusion, une bibliothèque musicale avec téléversement, publications et concepteur d'albums, des listes de lecture et collections, un éditeur audio professionnel pour le rognage et le mastering, la programmation et un programme 24h/24, des créneaux radio et émissions, un concepteur de chaîne avec préréglages visuels et calques, des statistiques, des mises à jour par lettre d'information, des revenus via des paliers de fans et des versements Stripe Connect, la distribution via Revelator, des modérateurs de chaîne et des liens de partage audio. Un espace d'administration du conseil expose 22 surfaces d'administration réservées aux utilisateurs isBoard, couvrant le tableau de bord, les files de modération, la supervision des flux, les finances, la gouvernance, les subventions, l'assemblée générale annuelle (AGM), i18n, les fichiers et le stockage, les annonces, les demandes de fonctionnalités, le support et les soumissions radio. L'application de bureau Tauri est un lecteur complet basé sur Nuclear avec recherche, bibliothèque locale, extensions, thèmes et contrôle à distance. Elle inclut un serveur MCP intégré, conservé depuis le projet Nuclear en amont, qui permet à un agent IA de contrôler la lecture, la file d'attente, les favoris, les listes de lecture et les fournisseurs ; il se lie à localhost sur le port 8800 et est documenté comme étant réservé à l'application de bureau, car la SPA web servie par CDN ne peut pas héberger le pont local du plan de contrôle. Pour les développeurs, le projet propose un proxy /tahti-api de même origine vers l'API en direct sur la bêta, des documentations publiques OpenAPI/Scalar et un mode maquette hors ligne (VITE_FORCE_MOCK=1) dans lequel les fonctions de récupération court-circuitent vers des données de fixture sans appel réseau. La pile utilise pnpm et Turborepo, nécessite Node 24 et pnpm 10.x, et requiert les dépendances système de Tauri 2 ainsi que Rust 1.77.2 ou version ultérieure uniquement pour l'application de bureau. Les commandes couvrent les serveurs de développement du client web et de l'application de bureau, Storybook, les builds, lint, le contrôle de types et les tests. La configuration s'effectue via des variables d'environnement pour la cible du proxy API, l'URL de base de l'API, le mode maquette, le websocket Centrifugo, la clé de site hCaptcha et l'hôte d'écoute. Des assistants de déploiement existent pour le site bêta, et des assistants de publication, Flatpak et AUR se trouvent dans scripts. Le README est franc sur l'état du projet : la bêta couvre les parcours principaux des auditeurs et du studio sur des données en direct, tandis que certaines surfaces de production restent partielles ou hors du périmètre de l'interface Nuclear, comme les fonctions approfondies d'administration du conseil, le SEO/SSR complet et certains paramètres. La parité fonctionnelle et les écarts restants sont suivis dans FEATURES.md et FEATURES-REMAINING.md, avec la planification de la bascule dans CUTOVER.md. Le projet est sous licence AGPL-3.0-only, comme le projet Nuclear en amont, et inclut des conseils pour les agents dans AGENTS.md ainsi que des compétences dans .agents/skills.