Следующий код, который я считаю минимальной программой для загрузки музыки
db = Database('/media/[email protected] 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 присутствует.
Что я делаю неправильно? Кто-нибудь получил это (оболочка Python libgpod) для работы?
Одна из возможных подсказок: gtkpod предлагает мне тип iPod (Classic 160GB). Я не устанавливаю эту информацию выше. Как я могу это установить? update. Я попробовал показанный выше вызов и упомянул в ответе ниже, но это, казалось, не имело никакого эффекта (я не включил его изначально, потому что я думал, что это, должно быть, было неправильно, но, возможно, это и проблема в другом месте). Кроме того, gtkpod называет его "xB150"?!
Я попросил список рассылки libgpod/gtkpod, но не получил ответа. Это как с последней стабильной версией, так и с соединительной магистралью git (скомпилировано с CFLAGS = -w).
update Я удалил всю музыку, а затем выполнил код выше с C297 и xB150. в любом случае файл Extras.itdb(который выглядит как sqlite db) меняет размер, а отключенный iPod не содержит песен. связанные файлы находятся по ссылкам:
- SysInfo (пустой файл)
- SysInfoExtended
- Extras.itdb (sqlite db?)
Общие замечания по этой проблеме, которые будут обновляться в будущем здесь.