web-dev-qa-db-fra.com

Comment préparer ma musique pour la synchronisation avec un service cloud?

Ma collection de musique est maintenant passée à env. 4000 fichiers au fil des ans. Ils se composent principalement de mp3 téléchargés à partir de différentes boutiques en ligne à différents débits, de mp3 extraits de CD que je possède et de fichiers m4a sans DRM d'iTunes.

Dans le cas où cela importe, j'ai fait quelques efforts pour que mes fichiers soient sauvegardés de manière ordonnée avec le modèle suivant:

/shared/music/artist/album/track# title.mp3

Maintenant, je prévois de les télécharger sur un service de musique en nuage (je pensais à Google Play). Je comprends que ces services sont capables de ne pas réellement télécharger les données musicales de mes fichiers, mais plutôt de simplement fournir un lien vers des chansons qu'ils ont déjà sur leurs serveurs.

C'est très bien car en raison de la bande passante limitée, et en raison d'une possible violation des lois sur les droits d'auteur dans mon pays, je ne veux pas que mes fichiers musicaux soient téléchargés n'importe où.

De plus, je ne veux pas que mes fichiers se retrouvent comme ceci:

/artist/album/track# title1.mp3
/artist/collection/sometrack# title2.mp3
/artist/best_of/yetanothertrack# title3.mp3
/artist/bonusalbum_from_japan_only/specialtrack# title4.mp3

Comment dois-je préparer ma collection musicale pour qu'elle soit correctement reconnue par le service? Quelles applications sont disponibles pour m'aider à le faire?

6
Takkat

En testant avec Google Music, j'ai réalisé que tout dépend de la balise ID3. Quoi que vous y mettiez, Google l'utilise. peu importe le nom de vos fichiers, il s'agit de l'ID3. Même si vous avez des chansons où l'artiste et l'artiste de l'album sont différents, Google affichera les deux correctement sans aucune confusion. Je vous suggère d'organiser votre musique exactement comme vous le souhaitez. Il semble que Google respecte assez bien la norme ID3, donc tant que vous suivez également cette norme, vous êtes très bien.

J'ai également une structure similaire et je suis assez obsédé par la façon dont ma musique doit être organisée, non seulement les noms de fichiers, mais aussi les métadonnées.

J'utilise deux programmes pour y parvenir: pour quelques modifications de quelques fichiers, utilisez kid3-qt . Il n'a pas de dépendances sur kde et c'est le meilleur logiciel de tag ID3 dans Ubuntu. Vous disposez de nombreuses options pour baliser vos données à partir du nom de fichier ou vice-versa. Vous pouvez voir tous les tags ID3 (car les logiciels comme easytag masquent ceux qu'ils ne connaissent pas). Vous pouvez même sélectionner la version d'ID3 et l'encodage de texte, de sorte que votre collection entière est standard. J'ai utilisé ID3v2.4 avec UTF8. Vous pouvez installer kid3-qt ici: http://apt.ubuntu.com/p/kid3-qt

Pour votre cas, je recommande d'utiliser un script et d'utiliser eyeD3 pour cela. Il utilise python et possède des capacités incroyables, et peut accéder à presque toutes les balises dans ID3. Vous pouvez utiliser eyeD3 directement depuis la ligne de commande mais je la trouve plus puissante lorsque vous créez un script avec python. Vous pouvez installer eyeD3 en cliquant ici: http: //apt.ubuntu.com/p/eyed

La page Web contient des exemples de scripts python sur la façon de les utiliser dans un script. Je publie un exemple de script qui met tous les artistes, albums, pistes # et titres dans l'ID3 suivant le format de votre répertoire de musique. Il enregistre la balise dans ID3v2.4 avec l'encodage UTF8 Vous devez exécuter le script dans votre dossier de musique racine (/ shared/music /).

#! /usr/bin/python
import fnmatch
import os
import eyeD3

audiofile = eyeD3.Tag()

for root, dirnames, filenames in os.walk('.'):

    # Linking of ID3 tags and fixing Images
    for file in fnmatch.filter(filenames, '*.mp3'):

        # Splits the directory name
        dirSplit = root.split('/')
        fileSplit = file.split(' ',1)

        # Linking of tags
        audiofile.link(root + "/" + file, eyeD3.ID3_V2)

        audiofile.setTextEncoding(eyeD3.UTF_8_ENCODING)

        print fileSplit[0]

        # Setting the Artist, album, number and title
        audiofile.setArtist(dirSplit[1])
        audiofile.setAlbum(dirSplit[2])
        audiofile.setTrackNum([fileSplit[0]])
        audiofile.setTitle(fileSplit[1])

        audiofile.do_tdtg = 0     # set to not use the TDTG frame
        audiofile.update(eyeD3.ID3_V2_4,0)

Vous pouvez utiliser ce script comme point de départ et peut-être lire le nom de fichier complet et le répertoire et l'utiliser pour marquer chacun de vos fichiers exactement comme vous le souhaitez. Si vous n'êtes pas aussi obsédant que moi avec les métadonnées, kid3-qt avec la possibilité de définir les métadonnées comme structure de fichier (et vous pouvez définir la structure exactement comme vous le souhaitez) fonctionnera parfaitement. BTW, vous pouvez également utiliser eyeD3 pour supprimer par lots ID3V1.1 que je trouve extrêmement ennuyeux car c'est un ancien standard qui manque de nombreuses fonctionnalités et de personnes et les appareils devraient cesser de l'utiliser complètement.

6
Felipe

Je ferais deux choses. Parce que votre structure de répertoire est si soignée (compliment), j'utiliserais cette structure pour a) mettre autant d'informations que possible dans le nom de fichier et b) mettre ces informations dans les balises.

Vous pouvez renommer vos fichiers artiste-album-track. Vous pouvez également écrire un script bash pour les renommer en fonction de la structure de votre répertoire . Si vous avez les bonnes balises ID3 1.x , vous pouvez utiliser mp3info pour extraire les données et les utiliser dans un bash script pour renommer vos fichiers en fonction de leurs balises pour obtenir un résultat similaire.

Si vous le souhaitez, vous pouvez même utiliser la structure de votre répertoire pour ajouter les balises album et artist dans vos fichiers. Encore une fois, vous pouvez utiliser mp3info ici:

mp3info est un utilitaire utilisé pour lire et modifier les balises ID3 dans les fichiers MPEG couche 3 (MP3). Il peut également (en option) afficher divers attributs techniques du fichier MP3.

2
don.joey

Remarque: Je voulais modifier mon autre réponse, mais cet outil mérite une réponse distincte pour référence future.

Pour les utilisateurs qui ont métadonnées dans leurs mp3 (ce qui est souvent le cas lorsque la musique est achetée légalement), il est possible de renommer les fichiers en fonction des métadonnées.

Il existe un excellent package qui fait renommer en fonction des métadonnées pour la musique et les images: pyRenamer . On peut l'installer en utilisant Sudo apt-get install pyrenamer.

Il utilise essentiellement des expressions régulières et des métadonnées pour renommer des fichiers. Vous pouvez ainsi renommer les fichiers pour inclure les informations disponibles dans les métadonnées. Voici une capture d'écran.

A screenshot of PyRenamer

Cela fonctionne également pour les images .

Sources:

1
don.joey

Cela peut être complètement hors-base, mais j'ai utilisé un programme appelé Picard de Musicbrainz qui vous permet d'ajouter des balises et des illustrations aux fichiers. Il est exceptionnellement bon pour déterminer quels sont les fichiers.

Il est disponible ici: http://musicbrainz.org/doc/MusicBrainz_Picard

1
Craig Maloney

Personnellement, j'aime mp3tag . Il peut modifier toutes les balises avec de nombreuses fonctions utiles. Il peut également renommer des fichiers en fonction de leurs métadonnées et même extraire des métadonnées à partir de noms de fichiers. C'est un programme Windows mais il fonctionne parfaitement avec wine.

Si vous voulez un programme natif Linux, essayez easytag. Il semble avoir des fonctionnalités similaires mais je ne l'ai jamais essayé moi-même. Il doit être installable à l'aide de apt-get ou le centre logiciel.

1
André Stannek