Использование Python и libgpod (gtkpod )для загрузки музыки на iPod из Linux

Следующий код, который я считаю минимальной программой для загрузки музыки

db = Database('/media/andrew@acooke.org ipod')
itdb_device_set_sysinfo(db._itdb.device, "ModelNumStr", "C297")
db.import_file('/home/andrew/some-track.mp3')
db.copy_delayed_files()
db.close()

печатает следующее в stderr:

** (utrunner.py:11333): WARNING **: Itdb_Track ID '0' not found.
** (utrunner.py:11333): CRITICAL **: itdb_get_mountpoint: assertion `itdb' failed
** (utrunner.py:11333): CRITICAL **: prepare_itdb_for_write: assertion `link' failed
** (utrunner.py:11333): CRITICAL **: mk_mhla: assertion `fexp->albums' failed
** (utrunner.py:11333): CRITICAL **: mk_mhli: assertion `fexp->artists' failed
** (utrunner.py:11333): CRITICAL **: itdb_splr_validate: assertion `at != ITDB_SPLAT_UNKNOWN' failed

и не загружает музыку.

Когда я запускаю gtkpod (, который использует libgpod -, они оба из одного проекта ), он действительно работает (и печатает только начальное предупреждение и ITDB_SPLAT_UNKNOWNсообщение ). ]. Все пути указаны правильно, и я могу открывать каталоги, записывать файлы и т. д. Объект базы данных выглядит правильно (, показывает 2 списка воспроизведения, например ), и присутствует файл SysInfoExtended.

Что я делаю не так? Кто-нибудь заставил эту (оболочку libgpod Python )работать?

Одна из возможных подсказок заключается в том, что gtkpod предлагает мне тип iPod (Classic 160GB ). Я не устанавливаю эту информацию выше. Как я могу это установить? обновление-Я попробовал вызов, показанный выше и упомянутый в ответе ниже,но, похоже, это не имело никакого эффекта (Я не включил его изначально, потому что подумал, что это должно быть неправильно, но, возможно, это необходимо, и проблема в другом ). Кроме того, gtkpod называет это «xB150»?!

Я обратился в список рассылки libgpod/gtkpod, но не получил ответа. Это относится как к последней стабильной версии, так и к git trunk (, скомпилированному с CFLAGS= -w ).

update Я удалил всю музыку, затем запустил приведенный выше код как для C297, так и для xB150. ни в том, ни в другом случае файл Extras.itdb (, который выглядит как sqlite db ), не изменил размер, а на отключенном iPod нет песен. связанные файлы находятся по следующим ссылкам:

Общие замечания по этому вопросу, которые будут обновляться в будущем, здесь.

10
задан andrew cooke 11 August 2012 в 17:55
поделиться