Une API Apple payante
ProblèmeMusicKit sur le web demande un compte développeur Apple payant.
SolutionUn pont local sur le Mac de l'hôte, en Python et AppleScript, qui lit directement l'app Musique.
Dans le bureau : le tourne-disque
La même chanson, à la seconde près.
OsaParty crée des salons d'écoute partagée. L'hôte diffuse depuis son Mac, les invités rejoignent avec un code ou un QR code et suivent la même musique en direct, avec les paroles synchronisées, un chat, des réactions, un blind test et un récap de fin de soirée.
01Le point de départ
« Apple réserve son API musicale aux comptes développeur payants. On a contourné le problème par le Mac. »
L'idée : écouter de la musique ensemble à distance, comme si on était dans la même pièce. Le problème : MusicKit, l'API web d'Apple Music, demande un compte développeur payant.
La solution ressemble au « Rich Presence » de Discord. Un petit pont tourne sur le Mac de l'hôte : il lit l'état de l'app Musique (titre, position, file d'attente) et l'envoie au serveur. Les invités n'ont besoin que d'un navigateur. Depuis, OsaNotch peut jouer ce rôle de pont nativement.
02En images



03Comment ça marche
Le serveur ne fait que relayer. Toute l'intelligence musicale vient du Mac de l'hôte.
L'hôte crée un salon : un code à 6 chiffres et un QR code s'affichent à l'écran.
Un script Python pilote Apple Music en AppleScript (ou OsaNotch le fait nativement) et envoie l'état de lecture au serveur.
Le serveur diffuse le morceau, la position et la file d'attente à tous les invités du salon.
Pochette en 600 × 600 via l'API iTunes, paroles synchronisées via LRCLIB, fond teinté par la couleur dominante de la pochette.
Chat, réactions, vote pour passer un titre, blind test, contrôles de l'hôte, et un « Wrapped » à la fin.
✦À toi de jouer
L'hôte diffuse, trois invités écoutent avec des connexions différentes. Coupe la synchronisation pour voir les écarts apparaître, et envoie des réactions.
!Les défis
ProblèmeMusicKit sur le web demande un compte développeur Apple payant.
SolutionUn pont local sur le Mac de l'hôte, en Python et AppleScript, qui lit directement l'app Musique.
ProblèmeApple n'expose pas la fonction « Lire ensuite » aux scripts.
SolutionLire la playlist en cours : l'hôte lance sa musique depuis une playlist, et le site affiche les 10 titres suivants.
ProblèmeChaque invité reçoit l'état avec un délai différent.
SolutionL'hôte envoie la position et la durée du morceau, et chaque navigateur cale les paroles LRCLIB sur cette position.
ProblèmeL'optimisation d'images de Next.js coûtait trop cher sur un petit VPS.
SolutionOptimisation désactivée, pochettes servies directement par Apple en haute définition.
⏱Journal de bord
Le site et le Mac Bridge fonctionnent ensemble.
Le site devient une PWA, utilisable comme un petit widget.
Le pont devient une vraie app macOS.
Chat, paroles, vote pour passer, volume et support de Spotify.
Paroles synchronisées et fonds dynamiques.
Un mode quiz et un récap de soirée.
Verrouiller le salon, exclure, exporter la playlist.
Le projet rejoint l'écosystème OsaLabs.
Nouvelle interface, et OsaNotch comme pont natif.
Page de création refaite avec la mascotte, comme OsaDrop et OsaCast.
Astuce : les flèches ← → de ton clavier passent d'un projet à l'autre.