Récupérer des infos sur une chanson

Comme l'artiste, le genre ...

Le problème exposé dans ce sujet a été résolu.

Bonjour les agrumes,

J'aurai besoin de votre aide. Je développe une application WPF en C#, et j'aurai besoin de récupérer des informations sur une chanson (qui peut être à n'importe quel format : mp3, wav, etc). J'ai recherché sur le net, mais aucune solution ne me convenait, car le mieux que j'ai réussi à avoir se limite aux *.mp3. Si vous pouvez m'éclairer là-dessus … Merci d'avance !

Quelle type d'info tu veux et de quel qualité est la musique a reconnaître ?

Si tu veux les infos générales (artiste, titre, album, etc.) et que des données sont de bonne qualité, tu dois pouvoir t'en sortir avec MusicBrainz. La base de donnée peut etre interrogé avec une empreinte musicale numérique calculé à partir de la chanson. Il y a un Soft, Picard qui est open source et en Python pour le faire. Regarde si ce qu'il te permet de récupérer te convient. Si oui, check les source pour voir comment il fait ça. Il me semble que le calcul de l'empreinte est assuré par cette lib qui est en C et est Open Source.

Apres le reste c'est de l'encapsulation pour l'appeler depuis .net.

En gros, ça : https://bitbucket.org/acoustid/chromaprint/src/2065d46d76ff3d3db63d4c15de5a79c614a0be20/examples/fpcalc.c?at=master

Ça te crée un exécutable qui te calcule l'ID de la chanson. Tu dois pouvoir l'appeler directement depuis ton code et après faire ta requette à la base de donnée pour récupérer les infos.

Après si tu cherche un truc clé en main déjà tout fait en .net, je ne pense pas que ça existe actuellement pour MusicBrainz.


Une autre solution, si tu as déjà trouvé des services qui fonctionnent avec des mp3, est de convertir tes chansons en MP3 spécifiquement pour ce traitement. C'est crado mais si tu veux une solution quick & dirty ça peut le faire.

Je ne pense pas utiliser MusicBrainz, car si il faut se connecter à une BDD, le temps d'attente risque d'être trop long. Seulement j'aimerai que le nom s'affiche instantanément.

2 solutions :

  • Soit le format supporte les tags (mp3 oui, wav non par ex) et ces champs sont bien dans le fichier et dans ce cas aucun soucis. Il suffit d'une lib pour lire les tags. Cela s'appelle l'ID3 et tu n'auras pas de mal à trouver une lib pour les lires.
  • Soit le fichier ne contient pas ces infos (wav ou si simplement personne n'a rentré ces infos dans le fichier) et dans ce cas désolé mais tu ne pourra pas deviner le titre sans une mega base de donnée et des reconnaissance d'empreintes numérique auquel cas MusicBrainz est typiquement ce qu'il faut.

Quel est l'utilisation ? Un lecteur de musique ? La majorité des lecteurs se content des tags ID3.

En fait le prob est que chaque format a ces spécifités : les mp3 utilisent l'ID3, le wav tu n'a pas vraiment de solutions standard, le WMA utilise de mémoire l'ASF, Vorbis et Flac peuvent être empaqueté dans un conteneur Ogg pour ça, etc.

Bref ça dépend de chaque format audio.

Sinon, à titre purement pédagogique, c'est aussi très rigolo d'aller regarder les specs de ces formats pour parser toi-même les infos.

Je suppose que c'est pas le genre de truc que tu veux te permettre si ça rentre dans le cadre d'un plus gros projet, mais je te suggère de noter ça dans un coin pour plus tard.

Typiquement, ça permet de mettre un pied dans les divers formats binaires. Chose qui vient curieusement très peu à l'esprit des débutants, alors que c'est plus simple, plus gratifiant et plus formateur à faire que parser un format texte genre XML ou JSON.

+0 -0

C'est bien plus qu'un simple "entraînement". C'est découvrir comment c'est foutu, pour savoir ce que tu peux attendre d'une bibliothèque qui fasse le job, en particulier en termes de fonctionnalités communes et de performances. C'est aussi apprendre à se frotter à des formats binaires.

Mais comme je l'ai dit, dans le cadre de ton projet actuel ce n'est clairement pas la solution à privilégier. Je te conseille juste de le noter dans un coin pour penser à t'y frotter plus tard, indépendamment de tout projet.

+1 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte