Étude de cas
Snapstems : déposez un morceau, récupérez la voix, la batterie et la basse en pistes séparées
Un service web payant qui sépare un morceau en ses différentes parties. Un modèle open source fait la séparation ; j'ai construit tout ce qu'il y a autour et je le fais tourner seul.
Mon rôle
Celui-ci est mon propre produit. Je l'ai conçu, je l'ai écrit et je le fais tourner, seul.
La situation
Les producteurs, les DJ, les animateurs de karaoké et ceux qui remixent ont besoin des parties d'un morceau isolées : la voix seule, la batterie seule, la musique sans la voix. Un modèle open source appelé Demucs le fait bien, mais il faut que quelqu'un le fasse tourner. Snapstems le met derrière une page web : déposez un titre, patientez, téléchargez les pistes. Le travail, c'était tout ce qu'il y a autour du modèle : les envois de fichiers, les comptes, les crédits, le paiement, et les traitements qui échouent.
La contrainte
Un morceau est un gros fichier, et une séparation dure trop longtemps pour qu'une page web l'attende. Un fichier, jusqu'à 100 Mo, va du navigateur directement au stockage, sans jamais passer par mon serveur. Le serveur lance le traitement et répond aussitôt ; le service qui fait tourner le modèle rappelle quand c'est terminé. Une séparation encore en cours au bout de 10 minutes est annulée et les crédits sont rendus.
Chaque séparation me coûte de l'argent, donc un crédit ne peut jamais être perdu ni dépensé deux fois. Il est prélevé avant le début du traitement et rendu si le traitement échoue. Un paiement ajoute les crédits une seule fois par commande, même quand la notification de paiement arrive deux fois.
Les séparations gratuites attirent les abus. Un nouveau compte en reçoit 3, seulement après avoir confirmé son email. Chaque vraie boîte mail ne peut les obtenir qu'une fois, les adresses de 9 963 domaines d'email jetables n'en reçoivent aucune, et un plafond quotidien limite le total.
Ce que j'ai construit
Le service est en ligne sur snapstems.com. Tout ce qui suit est dans le code aujourd'hui ; ce qui n'est pas encore en ligne est listé plus bas.
- Quatre types de séparation : 4 pistes (voix, batterie, basse, le reste), 6 pistes (avec en plus la guitare et le piano), une version de meilleure qualité, et le karaoké. Six formats audio en entrée ; MP3, WAV ou FLAC en sortie.
- Déposez un fichier ou collez un lien direct. Après la séparation, la page indique quels instruments sont réellement présents dans le morceau, et vous cochez ce que vous voulez pour le télécharger dans un seul zip.
- Des comptes avec ma propre étape de confirmation d'email, un historique des séparations, une page de facturation et la suppression du compte, en 10 langues dont l'hébreu et l'arabe.
- Un registre de crédits : un pack et deux abonnements mensuels vendus via Polar, des notifications de paiement vérifiées par signature, et des remboursements qui reprennent les crédits.
- Un autotune gratuit pour la piste voix, qui tourne dans le navigateur.
- Un chat sur le site qui n'a le droit de répondre qu'à partir d'une liste fixe de faits publiés.
- Ce qui ne se voit pas : les fichiers audio envoyés sont supprimés au bout de 7 jours, et chaque échec écrit une ligne de log sans l'email de l'utilisateur.
Les chiffres
- 4types de séparation
- 10langues d'interface
- 0bibliothèque de code externe sur le serveur
- 20routes serveur derrière la page
- 306vérifications, dans 5 scripts d'auto-vérification
- 55commits, du 7 juillet au 12 novembre 2026
Chaque chiffre ci-dessus est compté depuis les fichiers et l'historique du projet, le 12 novembre 2026. Il n'y a sur cette page ni nombre d'utilisateurs, ni nombre de clients, ni chiffre d'affaires.
Ce que cette page montre, et ce qu'elle ne montre pas
C'est un produit que j'ai construit et que je fais tourner moi-même, et il en est à ses débuts. Il n'y a aucun chiffre d'usage sur cette page : elle montre que le logiciel existe et répond, pas que des gens paient pour s'en servir. Le modèle de séparation, Demucs, est open source et n'est pas mon travail ; il tourne sur un service hébergé (Replicate).
Une partie est construite sans être en ligne. L'application mobile est écrite et n'est pas sur les stores. L'essentiel du studio pour « chanter par-dessus » est dans le code, et le 12 novembre la page en ligne n'en avait que la première étape. Le paiement à la séparation effectué par un logiciel seul n'a tourné qu'avec de l'argent de test. Le paiement par carte est branché dans le code, et je ne montre ici aucune vente réelle.
Comment c'est testé : cinq scripts d'auto-vérification et un contrôle audio, lancés à la main. Rien ne les lance automatiquement à chaque modification. 51 des 55 commits portent une ligne de co-auteur IA. C'est ma façon d'écrire du code, et je préfère le dire ici.
Ce que je ferais autrement : mettre en place les vérifications et la journalisation avant d'ouvrir les portes. Le premier commit date du 7 juillet 2026. Le correctif de l'email de confirmation, sans lequel une inscription par email ne pouvait pas aboutir, date du 21 octobre, et les échecs ne sont écrits dans les logs que depuis le 3 novembre.
Stack technique
- Python
- Replicate
- Demucs
- Firebase Auth
- Firestore
- Cloud Run
- Cloud Storage
- Polar
À voir
Vous voulez la même chose ?
Dites-moi ce que vous construisez, ou ce que vous faites encore à la main, et je vous dirai comment je m'y prendrais. Sans engagement.