Connaitre les attributs d'un fichier mp3 (ou mp4)

TchouboudouTchouboudou Membre
23:33 modifié dans API AppKit #1
Bonjour,

Dans ma découverte de Cocoa, je teste les fichiers musicaux. Le problème qui se pose est le suivant :
Imaginons que j'aies un fichier mp3 ayant ce joli nom : z23hj.mp3. Je ne connais rien de ce qu'il y a à  l'intérieur. Comment accéder aux données du mp3, du style artist, name, etc ? (Je sais q'il y en a, c'est possible de les extraire en ActionScript).

Merci d'avance,
Tchouboudou

Réponses

  • BruBru Membre
    23:33 modifié #2
    Tu peux utiliser le framework ID3Tag.framework. C'est gratuit, et je crois que le source est disponible.

    .
  • TchouboudouTchouboudou Membre
    23:33 modifié #3
    Merci pour le framework, mais ça marche pas :'(

    J'ai ce code (le fichier existe) :

    TagAPI *tag = [[TagAPI alloc] initWithGenreList:NULL];<br />	[tag examineFile:@&quot;/Volumes/Guigui/iTunes/Aaron/Vrac&#39;/U-turn (Lili) 1.mp3&quot;];<br />	NSLog(@&quot;%@&quot;, [tag getTitle]);
    


    Mais, ça m'affiche (null).
  • BruBru Membre
    23:33 modifié #4
    Ben chez moi ça marche...
    <br />{<br />&nbsp; &nbsp; id tag;<br />&nbsp; &nbsp; tag=[[TagAPI alloc] initWithGenreList:nil];<br />&nbsp; &nbsp; [tag examineFile:@&quot;/Users/bruno/Music/iTunes/iTunes Music/Franz Ferdinand/Franz Ferdinand/03 Take Me Out.mp3&quot;];<br />&nbsp; &nbsp; NSLog(@&quot;%@&quot;, [tag getTitle]);<br />&nbsp; &nbsp; NSLog(@&quot;%@&quot;, [tag getArtist]);<br />&nbsp; &nbsp; [tag release];<br />}<br />
    


    Ce qui donne :
    [tt][Session started at 2007-05-26 16:58:50 +0200.]
    2007-05-26 16:58:50.939 mp3-tag[1817] Take Me Out
    2007-05-26 16:58:50.939 mp3-tag[1817] Franz Ferdinand
    [/tt]

    .
  • 23:33 modifié #5
    Tchouboudou : tu n'as pas oublié de lier le framework à  ton application dans "target" ?
  • TchouboudouTchouboudou Membre
    mai 2007 modifié #6
    Je viens de supprimer et remettre le framework, et ça marche. Merci à  tous :) .
    Par contre, ça ne marche pas avec les m4a
  • 23:33 modifié #7
    Je ré-up le sujet parce que je suis pô du tout content du framework  ;D
    Je cherche à  modifier les artworks de mes MP3.. sauf que ça ne marche pas.. du moins iTunes ne voit pas la pochette ajoutée.. alors que si je vérifie en utilisant l'application de démonstration fournie avec le framework, je vois bien mon artwork s'afficher..

    J'ai beau chercher sur le net, je ne trouve rien du tout pour m'aider.. y aurait-il une âme charitable, très très charitable parmis nos membres qui pourrait m'aider?  :P

    D'ailleurs je me demande si avec QTKit on peut pas faire quelque chose?
  • olofolof Membre
    23:33 modifié #8
    Ca ne serait pas un problème de cache de iTunes ? As-tu essayé de re-importer ton MP3 dans iTunes ?
  • juillet 2009 modifié #9
    dans 1246509328:

    Ca ne serait pas un problème de cache de iTunes ? As-tu essayé de re-importer ton MP3 dans iTunes ?


    Oui j'ai réessayé d'importer. Et normalement même QuickLook devrait mettre la pochette en aperçu :(
    En tout cas j'aurai bien les boules si je trouve pas de solution rapidement  :crackboom:-

    Je tiens à  noter également que si j'applique une image via l'application démo fournie avec le framework, cette meme application repère bien l'image si je re-selectionne le mp3 que j'avais modifié. En revanche aucun changement du côté de QuickLook et iTunes.
    La faute à  Apple?
    Quoi qu'il en soit, mon but est clairement que ça s'affiche dans iTunes et que la preview QuickLook soit disponible.
  • schlumschlum Membre
    23:33 modifié #10
    Je te dirais bien d'aller voir la spec des attributs (c'est super simple...) et de coder ton truc toi même en C ; mais puisque tu n'es pas super fan de ça...
  • 23:33 modifié #11
    dans 1246539239:

    Je te dirais bien d'aller voir la spec des attributs (c'est super simple...) et de coder ton truc toi même en C ; mais puisque tu n'es pas super fan de ça...


    Tant pis si je ne suis pas du tout fan de ça.. je tiens vraiment à  ma fonctionnalité et je ferai tout pour l'obtenir  :adios!:
    faudra juste me filer un petit coup de main sur ce coup?  ::)
  • schlumschlum Membre
    23:33 modifié #12
    Ben c'est un peu comme le fichier XML qui t'avait fait peur l'autre jour... même genre de truc avec tels bytes indiques la taille de la data etc.

    Tu trouveras les specifications sur le site d'ID3 :
    http://www.id3.org/Developer_Information
    Ou alors, peut-être plus simple pour toi, trouver une bibliothèque avec une license LGPL ou BSD qui le fait :
    http://www.id3.org/Implementations
  • 23:33 modifié #13
    Merci ;)
  • juillet 2009 modifié #14
    Bon j'ai réussi.. mais je suis confronté à  un léger problème de type "rafraichissement".
    J'utilise QuickLook pour récupérer les illustrations (qui est très très rapide d'ailleurs), ducoup quand j'applique un artwork, j'aimerai que la modification soit visible directement.
    Je vous joins une petite vidéo qui vous montre le comportement du fichier après la modification.
    Vous verrez que si je fait "duplicate", l'illustration apparait sur la copie du mp3.
    Si je renomme le fichier "principal", rien ne se passe.

    J'ai donc tenté de faire un copy, remove, move, via NSFileManager histoire de reproduire ce que je fais.. ça fonctionne mais je trouve ça un peu barbare surtout à  cause du remove.

    Il n'y a pas une astuce plus simple?

    http://www.eagle-of-liberty.com/conservatoir/foutoir_videos/artworkid3.mov
  • 23:33 modifié #16
    dans 1246558095:


    Déjà  essayé aussi.. marche pas
  • juillet 2009 modifié #17
    J'avoue ne pas trop comprendre sur le coup...
    Pour l'instant j'ai laissé le copy - remove - move suivi d'un noteFileSystemChanged:
    ça marche.. y'a juste iTunes qui ne prend pas en compte la pochette sauf si je modifie la musique (la notation par exemple, ou les tags - dès que je fais "get info" la nouvelle pochette est affiché dans iTunes).
  • yoannyoann Membre
    23:33 modifié #18
    Pour iTunes c'est "normal" il y a un cache d'artwork si tu regarde bien, donc il ne doit le recharger qu'à  l'ouverture des info avancé.

    Les fichier itc de cache sont nommé de cette manière UID_Lib-PersistantID_Music.itc et tu a ces deux info dans le xml.

    Test donc quand tu update un artwork de faire une recherche dans le dossier iTunes/Album Artwork sur le bon nom de fichier et de le supprimer


    Pour le finder par contre, le refresh n'a jamais été son fort
Connectez-vous ou Inscrivez-vous pour répondre.