Копирование файлов с Python на WAV

Я пишу программу, где мне нужно иметь возможность копировать файлы с компакт-диска в формат WAV (или FLAC, но WAV работает нормально). Он должен работать на Windows. Я видел другие ответы, в которых Express Rip и Audio Commander были рекомендованы в качестве инструментов командной строки. Но страница Audio Commander, похоже, больше не существует. И я не очень уверен насчет экспресс-рипа, он кажется немного отрывочным.

Затем они упомянули мутаген для получения метаданных.

У кого-нибудь есть опыт работы с этими утилитами или с этой целью? Я хотел бы иметь возможность копировать CD в WAV, сохранять метаданные, которые там есть, и, если возможно, также проверять архив метаданных на CD Archive.

Кто-нибудь когда-нибудь делал что-то подобное или у меня есть предложения по модулям, утилитам, методам и т. Д., Чтобы заставить меня работать? Даже небольшие примеры помогут. Это примеры копирования компакт-диска с помощью Python или модулей для выполнения задачи.

1 ответ

Решение

Возможно, вы захотите взглянуть на PyMedia

PyMedia - это модуль Python для манипуляций с файлами в форматах wav, mp3, ogg, avi, divx, dvd, cdda и др. Это позволяет анализировать, демультиплексировать, мультиплексировать, декодировать и кодировать все поддерживаемые форматы. Он может быть скомпилирован для Windows, Linux и Cygwin.

PyMedia была разработана, чтобы быть действительно простой и гибкой одновременно. Смотрите учебник для примера. Это позволяет вам создавать свои собственные мультимедийные приложения в считанные минуты и настраивать их под свои нужды, используя другие компоненты. Язык Python выбран из-за простой семантики, полного и расширенного набора функций.

Вы также можете использовать это как библиотеку:

С их аудио CD Grabber:

import pymedia.removable.cd as cd

def readTrack(track, offset, bytes):
  cd.init()
  if cd.getCount() == 0:
    print 'There is no cdrom found. Bailing out...'
    return 0

  c = cd.CD(0)
  props = c.getProperties()
  if props['type'] != 'AudioCD':
    print 'Media in %s has type %s, not AudioCD. Cannot read audio data.' % (c.getName(), props['type'])
    return 0

  tr0 = c.open(props['titles'][track - 1]['name'])
  tr0.seek(offset, cd.SEEK_SET)
  return tr0.read(bytes)

Обновление: для доступа к метаданным об аудио CD вы можете использовать PyCDDB lirbary.

Другие вопросы по тегам