Вы также можете получить это с помощью eyed3, если это ваш вкус, выполнив:
import eyed3
duration = eyed3.load('path_to_your_file.mp3').info.time_secs
Обратите внимание, что при этом используется выборка для определения длины трека.В результате, если он использует переменную скорость передачи данных, выборки могут не быть репрезентативными для целого, и оценка может быть неверной в значительной степени (я видел, что эти оценки отклоняются более чем на 30% в судебных записях).
Я не уверен, что это намного хуже, чем другие варианты, но это то, что нужно помнить, если у вас переменная скорость передачи данных.