SelixyWatch
Vidéos et musique regardées ensemble, à la même seconde
SelixyWatch permet de regarder des vidéos et d’écouter de la musique à plusieurs, à la même seconde, chacun chez soi.
Playlists et rooms
Le site a deux pages. Les playlists rangent des médias dans des dossiers imbriqués, avec un rangement par glisser-déposer. Un même média peut être dans plusieurs playlists. On y importe des fichiers, on cherche sur YouTube, ou on colle un lien YouTube ou Spotify : le serveur lit les titres et les durées, et retrouve les morceaux Spotify sur YouTube.
La room joue la playlist dans laquelle on est entré. Tous ceux qui y sont voient et entendent la même chose. Elle a un lecteur avec raccourcis clavier, un mode cinéma, une file « À suivre » avec boucle et aléatoire partagés, un chat et des réactions emoji qui flottent sur la vidéo.
Comment la synchro marche
Le serveur garde l’état de chaque room (média, position, lecture ou pause) et le diffuse en SSE. Chaque navigateur mesure son écart avec l’horloge du serveur, calcule la position cible et corrige toute dérive de plus de 0,4 s. Quand un média se termine, la room passe au suivant.
Comptes et partage
Les comptes se créent avec un pseudo et un mot de passe, ou en anonyme avec un compte éphémère. Un dossier ou une playlist se partage par lien d’invitation, en lecture ou en édition. Sur téléphone, le site s’utilise en plein écran une fois ajouté à l’écran d’accueil.
Technique
L’interface est un site statique en modules JavaScript, sans compilation. Une coque garde les vues chargées, si bien que la lecture continue pendant qu’on parcourt les playlists. L’API est un petit serveur Python avec PostgreSQL, dans un pod Podman derrière nginx.