[PYTHON] Ich möchte Tag-Informationen (Titel und Künstler) einer Musikdatei (flac, wav) extrahieren.

zunaechst

Ich weiß nichts über MP3, weil ich nur eine hochauflösende Tonquelle habe. Ich möchte die Tag-Informationen (Songtitel und Künstler) von FLAC und WAVE erhalten. In der Mutagenbibliothek habe ich die Pytaglib-Bibliothek verwendet, da ich die Tag-Informationen der Musikdatei im WAV-Format nicht abrufen konnte.

PC-Umgebung

windows10 pro 64bit python 3.8.1 64bit

Installieren Sie Pytaglib

pytaglib ist eine Bibliothek, die eine C ++ - Bibliothek namens TagLib bindet, damit sie von Python aus funktioniert.

Windows kann nicht mit "pip install pytaglib" verwendet werden.

"Manuelle Kompilierung: Windows" am Ende der Formel wurde unten implementiert. pytaglib offiziell

Vorbereitung

Laden Sie TagLib herunter und entpacken Sie es. (https://taglib.org/#windows)

Schritt 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.

Ich verwende SDK 8.1 zum Erstellen von C ++, kann SDK 8.1 jedoch nicht mit Microsoft Visual Studio 2019 installieren, daher installiere ich das alte Visual Studio.

Schritt 2-1

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

Laden Sie TagLib herunter und entpacken Sie es. (https://taglib.org/#windows)

Schritt 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

Führen Sie im Startmenü die Eingabeaufforderung "VS 2015 x64 Native Tools" aus. ★ Es gibt mehrere Eingabeaufforderungen, machen Sie also keinen Fehler! image.png

Schritt 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.

Gehen Sie zum Dekomprimierungsziel von taglib und führen Sie den folgenden Befehl aus (*) cmake -G "Visual Studio 14 2015 Win64" -DCMAKE_INSTALL_PREFIX=".\taglib-install"

Ein "taglib-install" -Ordner wird im taglib-Ordner erstellt und die Bibliothek wird erstellt.

Schritt 3

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

Wechseln Sie in Schritt 2 an der Eingabeaufforderung in das Verzeichnis pytaglib.

Schritt 4

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

Durchlaufen Sie den in Schritt 2 erstellten C ++ TagLib-Pfad.

Schritt 5

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

Führen Sie den folgenden Befehl aus, um ihn in Python verfügbar zu machen.

python setup.py build
python setup.py install

★ Wenn Sie einen Fehler machen und ihn an einer anderen Eingabeaufforderung ausführen, werden Sie über den "schwerwiegenden Fehler LNK1112" verärgert. Ich blieb hier für einen Tag stecken ...

Schließlich

Damit habe ich endlich die Tag-Informationen erhalten, als ob sie im Beispiel wären! Da Flac und Wave mit demselben Code erhalten werden können, war ich persönlich der Meinung, dass es besser ist als Mutagen. Das Erstellen der C ++ - Bibliothek von TagLib erfordert jedoch Arbeit, und es gibt nur wenige Informationen auf Japanisch, sodass die Vorbereitung schwierig ist.

sample.py


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

Referenz

Recommended Posts

Ich möchte Tag-Informationen (Titel und Künstler) einer Musikdatei (flac, wav) extrahieren.
Ich möchte gleichzeitig einen Musik-Player erstellen und Musik ablegen
Ich möchte dem Anfang einer WAV-Datei 1 Sekunde lang Stille hinzufügen
Ich möchte Betriebsinformationen über die Yahoo-Route erhalten
Ich möchte die Natur von Python und Pip kennenlernen
Ich möchte den Schnittpunkt einer Bezier-Kurve und einer geraden Linie finden (Bezier-Clipping-Methode)
Ich möchte die Ausführungszeit aufzeichnen und ein Protokoll führen.
Ich möchte Informationen von fstab am ssh-Verbindungsziel abrufen und den Befehl ausführen
Ich möchte die Frage nach der Methode "__init__" und dem Argument "self" der Python-Klasse klären.
[Python-Scraping] Geben Sie die URL und den Titel der Site mit einem bestimmten Schlüsselwort in eine Textdatei ein
Ich möchte eine Liste in der Reihenfolge anderer Listen sortieren
Ich habe versucht, die Phase der Geschichte mit COTOHA zu extrahieren und zu veranschaulichen
Ich möchte die Gefühle von Menschen analysieren, die sich treffen und zittern wollen
Ich habe ein Programm erstellt, um die Größe einer Datei mit Python zu überprüfen
Python: Ich möchte die Verarbeitungszeit einer Funktion genau messen
Ich möchte die Einstellungsdatei erhalten und prüfen, ob die von jinja2 generierte JSON-Datei eine gültige JSON ist
Ich möchte das Erscheinungsbild von zabbix anpassen
Ich möchte mit Python in eine Datei schreiben
Ich möchte den Pfad des Verzeichnisses abrufen, in dem die laufende Datei gespeichert ist.
Ich möchte nur verschiedene Zeilen der Textdatei mit diff anzeigen
Die Geschichte der IPv6-Adresse, die ich auf ein Minimum beschränken möchte
Ich möchte eine Datei auf tkinter ablegen und ihren Pfad abrufen [Tkinter DnD2]
Speichern Sie das numpy-Array mithilfe des Wave-Moduls in einer WAV-Datei
Ich möchte einen Lebenszyklus in der Aufgabendefinition von ECS festlegen
Ich möchte eine Liste der WebDAV-Dateien im Modul Anfragen anzeigen
Ich möchte den Dateinamen, die Zeilennummer und den Funktionsnamen in Python 3.4 erhalten
So speichern Sie die Feature-Point-Informationen des Bildes in einer Datei und verwenden sie zum Abgleichen
Ich habe versucht, das Update von "Werde ein Romanautor" mit "IFTTT" und "Werde ein Romanautor API" zu benachrichtigen.
Ich möchte das Ausführungsergebnis von strace erfassen
Ich möchte die Standortinformationen von GTFS Realtime auf Jupyter zeichnen! (Mit Ballon)
Ich möchte eine Datei mit Python zufällig testen
Ich möchte die Grundlagen von Bokeh vollständig verstehen
Ich habe versucht, den Text in der Bilddatei mit Tesseract der OCR-Engine zu extrahieren
Ich möchte einen Screenshot der Site in Docker mit einer beliebigen Schriftart erstellen
Ich möchte die Variablen in der Python-Vorlagendatei ersetzen und in einer anderen Datei in Massenproduktion herstellen
Ich habe versucht, die Spacha-Informationen von VTuber zu visualisieren
Ich wollte nur die Daten des gewünschten Datums und der gewünschten Uhrzeit mit Django extrahieren
Ich möchte die Sicherheit der SSH-Verbindung erhöhen
Extrahieren Sie nur den Klang eines bestimmten Instruments aus der MIDI-Datei und machen Sie es zu einer separaten Datei
Ich möchte eine wunderschön angepasste Wärmekarte der Korrelationsmatrix ausgeben. matplotlib edition
Ich habe versucht, das Musikgenre anhand des Songtitels im Recurrent Neural Network vorherzusagen
Ich habe die Methode des maschinellen Lernens und ihre Implementierungssprache anhand der Tag-Informationen von Qiita betrachtet
Ich habe versucht, die Standortinformationen des Odakyu-Busses zu erhalten
Ich möchte viele Prozesse von Python aus starten
Ich möchte nur die SudachiPy-Normalisierungsverarbeitung verwenden
Ich habe eine Funktion erstellt, um das Modell von DCGAN zu überprüfen
Ich möchte die Authentizität eines Elements eines numpy-Arrays bestimmen
Ich möchte den EDINET-Code und die Wertpapiernummer zuordnen
Keras Ich möchte die Ausgabe einer beliebigen Ebene erhalten !!
Ich möchte die Legende der IT-Technologiewelt kennenlernen
Ich möchte vorerst eine Docker-Datei erstellen.
Ich habe versucht, eine Site zu erstellen, mit der die aktualisierten Informationen von Azure einfach angezeigt werden können
Ich möchte mit Python eine beliebige URL aus der Zeichenfolge der HTML-Quelle extrahieren
Ich möchte ein Histogramm erstellen und die Normalverteilungskurve darauf überlagern. matplotlib edition
[Twitter] Ich möchte die heruntergeladenen vergangenen Tweets (meines Kontos) in eine schöne CSV verwandeln
Ich möchte den Namen der ausgeführten Funktion / Methode erhalten
[Pytorch] Ich möchte die Trainingsparameter des Modells manuell zuweisen
Bedingte Verzweigung aufgrund des Vorhandenseins einer Shell-Skriptdatei
[Einführung in Python] Ich habe die Namenskonventionen von C # und Python verglichen.