[PYTHON] Je souhaite extraire les informations d'étiquette (titre et artiste) d'un fichier de musique (flac, wav).

en premier

Je ne connais pas le mp3 car je n'ai qu'une source sonore haute résolution. Je souhaite obtenir les informations de balise (titre de la chanson et artiste) de FLAC et WAVE. Dans la bibliothèque mutagen, j'ai utilisé la bibliothèque pytaglib car je ne pouvais pas obtenir les informations de balise du fichier de musique au format wav.

Environnement PC

windows10 pro 64bit python 3.8.1 64bit

installer pytaglib

pytaglib est une bibliothèque qui lie une bibliothèque C ++ appelée TagLib afin qu'elle fonctionne à partir de python.

Windows ne peut pas être utilisé avec "pip install pytaglib"

"Compilation manuelle: Windows" au bas de la formule a été implémentée ci-dessous. officiel de pytaglib

Préparation

Téléchargez et décompressez TagLib. (https://taglib.org/#windows)

Étape 1

1. Install Microsoft Visual Studio 2015 Community Edition. In the installation process, be sure to enable C/C++ support. Alternatively, install Visual Studio 2017, but install the "v140" C++ toolset and use the "Visual Studio 2015" version of the developer command prompt below.

J'utilise le SDK 8.1 pour créer C ++, mais je ne peux pas installer le SDK 8.1 avec Microsoft Visual Studio 2019, je vais donc installer l'ancien Visual Studio.

Étape 2-1

Download the current taglib release and extract it somewhere on your computer.

Téléchargez et décompressez TagLib. (https://taglib.org/#windows)

Étape 2-2

Start the VS2015 x64 Native Tools Command Prompt. On Windows 8/10, it might not appear in your start menu, but you can find it here: C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Visual Studio 2015\Visual Studio Tools\Windows Desktop Command Prompts

Exécutez «Invite de commandes VS 2015 x64 Native Tools» à partir du menu Démarrer. ★ Il existe plusieurs invites de commande, alors ne vous trompez pas! image.png

Étape 2-3

3. Navigate to the extracted taglib folder and type: cmake -G "Visual Studio 14 2015 Win64" -DCMAKE_INSTALL_PREFIX=".\taglib-install" to generate the Visual Studio project files.

Accédez à la destination de décompression de taglib et exécutez la commande suivante (*) cmake -G "Visual Studio 14 2015 Win64" -DCMAKE_INSTALL_PREFIX=".\taglib-install"

Un dossier "taglib-install" sera créé dans le dossier taglib et la bibliothèque sera créée.

Étape 3

3. Still in the VS2015 command prompt, navigate to the pytaglib directory.

Accédez au répertoire pytaglib sur l'invite de commande à l'étape 2.

Étape 4

4. Tell pytaglib where to find taglib: set TAGLIB_HOME=C:\Path\To\taglib-install

Passez par le chemin C ++ TagLib créé à l'étape 2.

Étape 5

5. Build pytaglib: python setup.py build and install: python setup.py install

Exécutez la commande suivante pour la rendre disponible en python.

python setup.py build
python setup.py install

★ Si vous faites une erreur et que vous l'exécutez à une autre invite de commande, vous vous fâcherez avec "erreur fatale LNK1112". Je suis resté coincé ici pendant un jour ...

finalement

Avec cela, j'ai finalement obtenu les informations de balise comme si elles étaient dans l'exemple! Puisque flac et wave peuvent être obtenus avec le même code, j'ai personnellement estimé que c'était mieux que le mutagène. Cependant, la construction de la bibliothèque C ++ de TagLib nécessite du travail et il y a peu d'informations en japonais, donc la préparation est difficile.

sample.py


import taglib
song = taglib.File("/path/to/my/file.wave")
print(song.tags)

référence

Recommended Posts

Je souhaite extraire les informations d'étiquette (titre et artiste) d'un fichier de musique (flac, wav).
Je veux créer un lecteur de musique et enregistrer de la musique en même temps
Je veux ajouter du silence pendant 1 seconde au début d'un fichier wav
Je veux obtenir des informations sur le fonctionnement de Yahoo Route
Je veux connaître la nature de Python et pip
Je veux trouver l'intersection d'une courbe de Bézier et d'une ligne droite (méthode de découpage de Bézier)
Je souhaite enregistrer l'heure d'exécution et conserver un journal.
Je veux obtenir des informations de fstab à la destination de la connexion ssh et exécuter la commande
Je veux clarifier la question de la méthode "__init__" et de l'argument "self" de la classe Python.
[Python scraping] Affiche l'URL et le titre du site contenant un mot-clé spécifique dans un fichier texte
Je souhaite trier une liste dans l'ordre des autres listes
J'ai essayé d'extraire et d'illustrer l'étape de l'histoire à l'aide de COTOHA
Je veux analyser les sentiments des gens qui veulent se rencontrer et trembler
J'ai fait un programme pour vérifier la taille d'un fichier avec Python
Python: je souhaite mesurer proprement le temps de traitement d'une fonction
Je souhaite recevoir le fichier de configuration et vérifier si le fichier JSON généré par jinja2 est un JSON valide
Je souhaite personnaliser l'apparence de zabbix
Je veux écrire dans un fichier avec Python
Je veux obtenir le chemin du répertoire où le fichier en cours d'exécution est stocké.
Je souhaite afficher uniquement différentes lignes du fichier texte avec diff
L'histoire de l'adresse IPv6 que je souhaite conserver au minimum
Je veux déposer un fichier sur tkinter et obtenir son chemin [Tkinter DnD2]
Enregistrez le tableau numpy dans un fichier wav à l'aide du module wave
Je souhaite définir un cycle de vie dans la définition de tâche d'ECS
Je souhaite voir une liste de fichiers WebDAV dans le module Requêtes
Je veux obtenir le nom du fichier, le numéro de ligne et le nom de la fonction dans Python 3.4
Comment enregistrer les informations de point caractéristique de l'image dans un fichier et l'utiliser pour la mise en correspondance
J'ai essayé de notifier la mise à jour de "Devenir romancier" en utilisant "IFTTT" et "Devenir un romancier API"
Je veux grep le résultat de l'exécution de strace
Je veux tracer les informations de localisation de GTFS Realtime sur Jupyter! (Avec ballon)
Je veux échantillonner au hasard un fichier avec Python
Je veux bien comprendre les bases de Bokeh
J'ai essayé d'extraire le texte du fichier image en utilisant Tesseract du moteur OCR
Je souhaite prendre une capture d'écran du site sur Docker en utilisant n'importe quelle police
Je veux remplacer les variables dans le fichier de modèle python et le produire en masse dans un autre fichier
J'ai essayé de visualiser les informations spacha de VTuber
Je voulais juste extraire les données de la date et de l'heure souhaitées avec Django
Je souhaite augmenter la sécurité de la connexion SSH
Extraire uniquement le son d'un instrument spécifique du fichier MIDI et en faire un fichier séparé
Je souhaite produire une carte thermique magnifiquement personnalisée de la matrice de corrélation. édition matplotlib
J'ai essayé de prédire le genre de musique à partir du titre de la chanson sur le réseau neuronal récurrent
J'ai considéré la méthode d'apprentissage automatique et son langage d'implémentation à partir des informations de balise de Qiita
J'ai essayé d'obtenir les informations de localisation du bus Odakyu
Je veux démarrer beaucoup de processus à partir de python
Je souhaite utiliser uniquement le traitement de normalisation SudachiPy
J'ai fait une fonction pour vérifier le modèle de DCGAN
Je veux déterminer l'authenticité d'un élément du tableau numpy
Je souhaite mapper le code EDINET et le numéro de valeur
Keras Je veux obtenir la sortie de n'importe quelle couche !!
Je veux connaître la légende du monde des technologies informatiques
Je veux créer un Dockerfile pour le moment.
J'ai essayé de créer un site qui permet de voir facilement les informations mises à jour d'Azure
Je souhaite extraire une URL arbitraire de la chaîne de caractères de la source html avec python
Je veux créer un histogramme et superposer la courbe de distribution normale dessus. édition matplotlib
[Twitter] Je veux faire des tweets téléchargés (de mon compte) dans un beau CSV
Je veux obtenir le nom de la fonction / méthode en cours d'exécution
[Pytorch] Je souhaite attribuer manuellement les paramètres d'entraînement du modèle
Branche conditionnelle en raison de l'existence d'un fichier de script shell
[Introduction à Python] J'ai comparé les conventions de nommage de C # et Python.