Projet
Extension Chrome : AutoSongLink
Transforme les liens musicaux en liens de partage entre plateformes, sans dépendre d'une API distante.
AutoSongLink
📝 Mise à jour avec Glob — Je lui ai raconté la refonte d’AutoSongLink, il m’a aidé à mettre cette histoire en forme.
Je partage souvent de la musique sur les réseaux. Envoyer un lien Spotify, c’est simple… jusqu’au moment où la personne qui le reçoit utilise Apple Music ou YouTube. Elle doit alors retrouver le morceau à la main. Et, soyons honnêtes, on ne le fait pas toujours.
J’ai donc créé AutoSongLink, une petite extension Chrome qui transforme un lien musical en lien de partage compatible avec plusieurs plateformes. L’objectif n’a jamais été de construire un gros outil : juste de rendre le partage un peu plus pratique.
La première version (0.1.0) : un bouton de plus, mais utile
La première version était volontairement rudimentaire. Un champ, un bouton, quelques explications et l’API publique d’Odesli — le service derrière Songlink — pour retrouver les liens équivalents.
J’aurais aimé que tout se fasse en un clic, mais Chrome ne donne pas un accès libre au presse-papier. Il faut que la personne fasse une action dans l’extension. La première mouture faisait donc le travail en deux étapes : préparer le lien, puis le copier.
Ça marchait, et c’était déjà plus rapide qu’une recherche manuelle. Mais l’interface était bricolée, un peu trop bavarde, et l’extension dépendait entièrement d’un service externe.
Version 1.0 : revenir à une petite extension pratique
Le 5 octobre 2026, l’API publique utilisée par l’ancienne version a commencé à répondre PUBLIC_API_ACCESS_DEPRECATED. L’extension ne pouvait donc plus remplir sa fonction comme avant. Plutôt que de remplacer une dépendance par une autre, j’ai repris le fonctionnement à la base.
La nouvelle version construit directement les liens publics Songlink ou Albumlink à partir des identifiants Spotify, Apple Music, YouTube et YouTube Music. La génération se fait dans l’extension : pas d’appel API, pas de compte, pas de clé à gérer et pas de serveur à maintenir.
Il y a une nuance importante : AutoSongLink fabrique le lien, puis c’est Songlink qui cherche les correspondances lorsqu’on l’ouvre. Ça ne garantit pas qu’un morceau existe sur toutes les plateformes — et la page de destination a besoin d’Internet. Mais l’extension, elle, n’a plus besoin d’interroger l’ancienne API pour faire son travail.
J’en ai profité pour refaire l’interface en français, avec un fond olive sombre et une touche citron. Après une première proposition trop chargée, j’ai retiré les slogans et les éléments décoratifs : il ne reste que le champ, le résultat et le bouton de copie. Une petite fenêtre, et c’est tout.
On peut coller un lien, le saisir ou reprendre celui de l’onglet actif. Si le champ est vide, « Convertir et copier » fait les deux d’un coup. Sinon, le lien est préparé et on confirme avec « Copier le lien ». Les erreurs sont visibles, et le clavier fonctionne aussi — notamment la touche Entrée.
La compatibilité s’est élargie aux morceaux et albums Spotify, aux morceaux et albums Apple Music, ainsi qu’aux vidéos YouTube et YouTube Music. Les liens Songlink et Albumlink existants passent aussi. En revanche, les playlists, les profils d’artistes et certaines sources non prises en charge sont refusés clairement plutôt que de produire un résultat douteux.
Sous le capot, le projet est passé à TypeScript strict et à une chaîne de développement remise à neuf. J’ai aussi supprimé l’ancien processus de fond et réduit les permissions. L’extension ne surveille pas le presse-papier : elle ne le lit qu’après une action de la personne, et ne copie qu’à sa demande. Pas d’historique, pas de télémétrie, pas de données personnelles stockées ni de code distant.
Les 48 tests, les contrôles de types, le lint et le build passent. J’ai aussi vérifié le rendu dans un navigateur, le copier-coller, les erreurs et les liens générés. Ça ne remplace pas encore une validation complète de l’extension installée dans Chrome : le comportement natif de certaines permissions reste à vérifier dans ce contexte.
La version passe de 0.1.0 à 1.0.0. J’ai chargé le nouveau ZIP sur la fiche Chrome Web Store existante, avec une description, une icône, une capture et des justifications de permissions actualisées. La mise à jour est soumise pour examen à Google ; je ne la présente pas comme approuvée ou disponible tant que ce n’est pas confirmé.
Le chantier concerne uniquement l’extension Chrome. La version Raycast n’a pas été refondue.
Le code est sur GitHub. Pour les détails sur les données et les permissions, la politique de confidentialité explique ce qui est — et n’est pas — collecté.
Technologies utilisées
- TypeScript
- Bun
- Vite
- Biome