Как известно, аудиоформат MP3 содержит внутри себя не только саму аудиодорожку, но и метаданные, к которым относятся название трека, название альбома, имя исполнителя, очерёдность трека и некоторые другие параметры.
И недавно у меня возникла необходимость зафиксировать очерёдность треков, относящихся к аудиокниге. Ведь последовательность глав имеет значение. Но вот оригинальные файлы почему-то не были помечены порядковым номером, из-за чего проигрыватели выставляли трекам порядок, какой им вздумается. Недолго думая, я решил прибегнуть к Python и, немного порывшись в интернете, нашёл информацию о библиотеке eyeD3, которая даёт доступ к метаданным аудиофайлов, позволяя не только их читать, но и редактировать.
Установка eyeD3:
pip install eyeD3
В моём случае очерёдность треков должна была соответствовать алфавитному названию файлов. Поэтому я написал и запустил следующий скрипт:
import os import eyed3 path = '/path/to/files/' names = os.listdir(path) names.sort() for num, name in enumerate(names, 1): audiofile = eyed3.load(os.path.join(path, name)) audiofile.tag.track_num = num audiofile.tag.save()
Это сработало: теперь треки запускаются в нужном мне порядке. О других возможностях eyeD3 можно прочесть на официальном сайте.