@OniMoni

Как вытащить теги из MP3?

Добрый день, у меня возник вопрос. Как вытащить из mp3 файла теги исполнителя и название
, я использовал следущие библиотеки:
1) Eyed3, но с ним происходят траблы, когда надо вызвать метод Tag, пишет у него нет такого атрибута, а на прямую мне тогда становятся недоступны нужные методы
2) Mutagen, с ним тоже не всё гладко он не понимает ключи наподобии ["TIT2"], ["TPE1"] и т.п.

Вот сам код:
import numpy as np
import os
import shutil
import re
import random
from mutagen.mp3 import EasyMP3 as MP3
from mutagen.id3 import ID3


path = r'Кэшированная музыка из ВК'
pathVK = r'Сюда перещаю нормальный .мр3 файл, но без названия и исполнителя'
Name = []

#Здесь парсит теги и даёт нормальное имя файлу
def Artist(file):
	os.chdir(pathVK)
	#try:
	trackInfo = MP3(file)
	STitle = trackInfo['title']
	SArtist = trackInfo['performer']
	os.rename(file, SArtist + " - " + SAlbum + '.mp3')
	#except:
		#print ('1')

#Здесь превращает файл в .mp3 
def ReName(file):
	for x in os.listdir(pathVK):
		y = int(x.replace('.mp3', ''))
		Name.append(y)

	os.chdir(path)
	shutil.move(file, pathVK)
	os.chdir(pathVK)
	os.rename(file, str(max(Name) + 1) + '.mp3')
	Artist(file)
	
#Удаляет, если не тот файл
def ReMove(file):
	os.chdir(path)
	os.remove(file)


for FileName in os.listdir(path):
	if FileName.endswith('.covers'):
		ReMove(FileName)
	else:
		ReName(FileName)
		
for audioFile in os.listdir(pathVK):
	Artist(audioFile)

Понимаю, код тот ещё УГ, но я новиик, главное что б работало, а там я потом отрефакторю) Спасибо за понимание))
  • Вопрос задан
  • 693 просмотра
Пригласить эксперта
Ответы на вопрос 1
Добрый день.
Для начала рекомендую изучить основы python style guide https://pythonworld.ru/osnovy/pep-8-rukovodstvo-po...
В функции remove смысла нет. Можно прямо после проверки на cover писать os.remove(filename), т.к. ты уже в этой папке

Я теги достаю через eyed3 как описано здесь https://eyed3.readthedocs.io/en/latest/
Python - регистрозависимый язык, для него Tag и tag это разные вещи
audiofile = eyed3.load("song.mp3")
artist = audiofile.tag.artist
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы