Извлечение тегов ID3 ​​из URL-адреса MP3 с помощью Python

Я разрабатываю программу на Python, которая может извлекать теги ID3 из файлов mp3. Я использую urllib2 для проверки MIME-типа URL-адреса (если это audio / mpeg), после чего мне нужно найти информацию об этом MP3-файле.

Проблема в том, что я не хочу полностью загружать этот файл Mp3 на свой компьютер, я просто хочу извлечь теги ID3? так можно ли извлечь их без полной загрузки файла MP3, потому что загрузка замедлит мой процесс?

Пожалуйста, предложите что-нибудь.

Спасибо,


person Kevindra    schedule 26.05.2011    source источник
comment
К вашему сведению, будет намного проще создавать только теги ID3v2, потому что они являются заголовком ... просто загрузите достаточно данных, чтобы получить длину тега, загрузите эти байты, затем закройте соединение. Теги ID3v1 - это нижние колонтитулы в конце файла, поэтому, если они вам тоже понадобятся, это будет сложнее. ID3v2 имеет переменную длину (до 256 M), а его спецификация здесь: id3.org   -  person joelhardi    schedule 26.05.2011
comment
Вы успешно выполнили то, что искали? Удалось ли вам читать теги ID3? Было бы здорово, если бы вы могли поделиться фрагментом. Спасибо.   -  person bdhar    schedule 28.06.2015


Ответы (1)


Вы можете выполнить частичную загрузку: Загрузить файл с помощью частичной загрузки (HTTP) ( если сервер это поддерживает)

перечитав и увидев комментарий Джоэлхарди, это еще проще:

jcomeau@intrepid:/tmp$ python
Python 2.6.6 (r266:84292, Apr 20 2011, 11:58:30) 
[GCC 4.5.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import urllib
>>> urllib.urlopen('http://latest/temp.csv')
<addinfourl at 160617676 whose fp = <socket._fileobject object at 0x9872aec>>
>>> input=_
>>> input.read(128)
'gene,species,C_frame,start_exon1,end_exon1,start_exon2,end_exon2,start_exon3,end_exon3,start_exon4,end_exon4,intron1,intron2,int'
>>> input.close()
>>>
person jcomeau_ictx    schedule 26.05.2011