Форум сайта python.su
Привет всем. Подскажите, какой модуль заюзать чтобы прочитать часть удаленного файла по HTTP? Часть может быть либо сначала, либо с конца. На php юзал курл с костылями, может на пайтоне есть нормальные либы? Суть в том, что надо получить id3 теги mp3 файла. Есть 2 версии ID3v1 и ID3v2, в одной данные о композиции находятся сначала, в другой (ID3v1) в конце файла. Тянуть весь файл не подходит, ибо их не мало. Для локальных файлов нашел кучу модулей, но не для удаленных. Посоветуйте что-нибудь.
Офлайн
на питоне ещё не приходилось частичным скаиванием заниматься, так что не знаю какой модуль.
на “черный” случай можно на сокетах сделать, читай раздел “Докачка и фрагментарное скачивание” с википедии http://ru.wikipedia.org/wiki/HTTP
Офлайн
Ага, спасибо. Примерно также и делал на php. Я думал может есть модуль какой, которому говоришь: “Скачать первые/последние x байт”, или в идеале вообще модуль чтения тегов удаленного mp3 файла.
Офлайн
pycurl могёт вроде
curl.setopt(pycurl.RANGE, ...)
bla.putheader("range","bytes=10-40")
Офлайн
Принципиальный затык такой: HTTP (и TCP сокет в общем) дает только последовательный доступ. Так что файл все равно прийдется прочитать. После этого исползовать любую понравившуюся библиотеку.
Или читать кусочками по RANGE (если сервер умеет так отдавать) - и городить парсер тегов самому. Насколько мне известно, готовой либы для mp3 нет. Очень уж специфичный случай.
Офлайн
В mutagen, я думаю можно покопаться.
Если уж совсем плохо, то как вариант, делать фейковый mp3 файл, записывая в конец (начало) нужные структуры, чтоб mutagen принимал за нормальный mp3.
Сам недавно думал создать базу данных музыки, которая лежит на ftp провайдера.
Офлайн
>>Если уж совсем плохо, то как вариант, делать фейковый mp3 файл, записывая в конец (начало) нужные структуры, чтоб mutagen принимал за нормальный mp3.
Так и делаю, проблема не в этом, проблема в чтении куска файла. Но, как я понял, не с каждого сервера можно прочитать кусок в конце файла.
Офлайн