Доступ mp3 Метаданные с Python

Как отметил @FelixKling, наиболее вероятным сценарием является то, что узлы, которые вы ищете, еще не существуют.

Однако современные методы разработки часто могут манипулировать элементами документа за пределами дерева документов либо с DocumentFragments, либо просто отсоединением / повторным подключением текущих элементов напрямую. Такие методы могут использоваться как часть шаблонов JavaScript или для предотвращения чрезмерных операций перерисовки / переплавки, в то время как элементы, о которых идет речь, сильно изменяются.

Аналогично, новая функциональность «Теневой DOM» развертывается в современных браузерах позволяет элементам быть частью документа, но не обрабатываться запросом document.getElementById и всеми его методами sibling (querySelector и т. д.). Это делается для инкапсуляции функциональных возможностей и, в частности, скрыть его.

Опять же, скорее всего, элемент, который вы ищете, просто (пока) в документе, и вы должны сделать, как предлагает Феликс , Тем не менее, вы также должны знать, что это все чаще является не единственной причиной того, что элемент может быть необоснованным (временно или постоянно).

113
задан Daniel Hedberg 8 February 2013 в 16:33
поделиться

8 ответов

Я использовал eyeD3 на днях с большим успехом. Я нашел, что это могло добавить иллюстрации к тегу ID3, который не могли другие модули, на которые я смотрел. Необходимо будет загрузить tar и выполниться python setup.py install от исходной папки.

Соответствующие примеры от веб-сайта ниже.

Чтение содержания mp3 файла, содержащего или v1 или v2, отмечают информацию:

 import eyeD3
 tag = eyeD3.Tag()
 tag.link("/some/file.mp3")
 print tag.getArtist()
 print tag.getAlbum()
 print tag.getTitle()

Read mp3 файл (отслеживают длину, скорость передачи, и т.д.) и доступ это - тег:

if eyeD3.isMp3File(f):
     audioFile = eyeD3.Mp3AudioFile(f)
     tag = audioFile.getTag()

Определенные версии тега могут быть выбраны:

 tag.link("/some/file.mp3", eyeD3.ID3_V2)
 tag.link("/some/file.mp3", eyeD3.ID3_V1)
 tag.link("/some/file.mp3", eyeD3.ID3_ANY_VERSION)  # The default.

Или можно выполнить итерации по необработанным кадрам:

 tag = eyeD3.Tag()
 tag.link("/some/file.mp3")
 for frame in tag.frames:
    print frame

, Как только тег связан с файлом, он может быть изменен и сохранен:

 tag.setArtist(u"Cro-Mags")
 tag.setAlbum(u"Age of Quarrel")
 tag.update()

, Если бы тег, связанный в, был v2 и требуется сохранить его как v1:

 tag.update(eyeD3.ID3_V1_1)

Read в теге и удаляют его из файла:

 tag.link("/some/file.mp3")
 tag.remove()
 tag.update()

Добавляют новый тег:

 tag = eyeD3.Tag()
 tag.link('/some/file.mp3')    # no tag in this file, link returned False
 tag.header.setVersion(eyeD3.ID3_V2_3)
 tag.setArtist('Fugazi')
 tag.update()
101
ответ дан Owen 24 November 2019 в 02:42
поделиться

Если можно использовать IronPython, существует TagLibSharp. Это может использоваться с любого языка.NET .

0
ответ дан Community 24 November 2019 в 02:42
поделиться

Это может зависеть от точно, что Вы хотите сделать в дополнение к чтению метаданных. Если это - просто скорость передачи / имя и т.д., что Вам нужно, и ничто иное, что-то легкое является, вероятно, лучшим.

, Если Вы управляете mp3 мимо, что PyMedia может подойти.

существуют довольно многие, независимо от того, что Вы действительно добираетесь, удостоверьтесь и проверьте его на большом количестве демонстрационных медиа. Существует несколько различных версий тегов ID3, в частности, поэтому удостоверьтесь, что это не слишком устарело.

Лично я использовал этот маленький класс MP3Info с удачей. Это довольно старо все же.

http://www.omniscia.org/~vivake/python/MP3Info.py

1
ответ дан Philip Reynolds 24 November 2019 в 02:42
поделиться

Этот инструментарий может сделать то, в чем Вы нуждаетесь. Я не могу сказать, "лучше" ли, но действительно, если это делает то, в чем Вы нуждаетесь, это - все, что имеет значение, правильно?

HTH

1
ответ дан Tim Sullivan 24 November 2019 в 02:42
поделиться

Простой пример от книжного Погружения В работы Python хорошо для меня, это является ссылкой на загрузку, примером является fileinfo.py. Не знайте, является ли это лучшим, но это может сделать основное задание.

вся книга доступна онлайн здесь .

6
ответ дан PabloG 24 November 2019 в 02:42
поделиться

Что Вы, после модуль ID3 . Это очень просто и даст Вам точно, в чем Вы нуждаетесь. Просто скопируйте файл ID3.py в свой каталог пакетов сайта, и Вы будете в состоянии сделать что-то как следующее:

from ID3 import *
try:
  id3info = ID3('file.mp3')
  print id3info
  # Change the tags
  id3info['TITLE'] = "Green Eggs and Ham"
  id3info['ARTIST'] = "Dr. Seuss"
  for k, v in id3info.items():
    print k, ":", v
except InvalidTagError, message:
  print "Invalid ID3 tag:", message
13
ответ дан Harley Holcombe 24 November 2019 в 02:42
поделиться

Я использовал мутаген для редактирования тегов в медиа-файлах прежде. Хорошая вещь о мутагене состоит в том, что он может обработать другие форматы, такие как mp4, FLAC и т.д. Я записал несколько сценариев с большим успехом с помощью этого API.

34
ответ дан Stypox 24 November 2019 в 02:42
поделиться

Я просмотрел приведенные выше ответы и обнаружил, что они не годится для моего проекта из-за проблем с лицензированием по GPL.

И я обнаружил следующее: PyID3Lib , хотя эта конкретная дата выпуска привязки python устарела, она использует ] ID3Lib , которая сама по себе обновлена.

Следует отметить, что обе являются LGPL , и их можно использовать.

5
ответ дан 24 November 2019 в 02:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: