iriver Attention! Libiriver is unmaintained, I don't own the hardware anymore. If you want to take up this small library, drop me a note What is Libiriver?

Libiriver is a library written to access the iRiver.

It is based upen the ifp driver.


libiriver-0.0.12.tar.gz - e6643f55d2f7b7cb5c1c19e6fa09a0f1
03 Aug 2004 : Applied fix from Jim Campbell:

  • Fix ifp_download_dir() (mkdir thinko)

libiriver-0.0.11.tar.gz - af247eacac133477268685ab3143b6de
27 Jul 2004 : Applied fixes from Yamashiro Jun:

  • Fix test/fts.c for avoid compile error on *BSD. (This fix contributed by anonymous in UNIX board of
  • Fix ifp_upload_file() from David's patch for ifp-line
  • Fix file list bug.

libiriver-0.0.10.tar.gz - 81265add319e32ee4acb03f7b5e83a11
03 Jun 2004 :

  • Applied a fix from Joseph Roback to not rely on the ordering of the endpoints of the usb device

libiriver-0.0.9.tar.gz - d3690a020cf939989d342d3f4e6c1237
(Note, I can't really test this release since I don't have an iRiver at the moment and won't for quite some time. So if something breaks drop me a line)
Thanks to Joseph Roback, libiriver support ifp 7xx and 8xx player series.
26 May 2004 :

  • I have attached a patch with solves the endpoint problems by looking at the endpoints from the usb_device structure for the addresses; and fixed the datasize problems by not using a hard-coded buffer size, but by using the size returned in the ctl[8] registers. These changes should work for all models and they work for 7XX definitely. (Joseph Roback)

libiriver-0.0.8.tar.gz - 9a6ea2ce24bd169e0fca8daeb9608fe2
(Note, I can't really test this release since I don't have an iRiver at the moment and won't for quite some time. So if something breaks drop me a line)
23 May 2004 :

  • *BSD portability fixes (Yamashiro, Jun)
  • Detect also iFP-5XX and later (Yamashiro, Jun)
  • Plugged some memory leaks
  • Removed all remaining warnings
  • Actually throw an exception in iriver.Iriver()

libiriver-0.0.7.tar.gz - 9833d68541bd15391eed2caa60653e06
08 Dec 2003 :

  • Added ifp_download_dir, ifp_upload_dir (thanks Abraar)
  • Added progress callbacks to most time-taking functions
  • Updated python bindings to define your own callbacks in python
  • Cleaned up the python API
  • Updated the docs

libiriver-0.0.6.tar.gz - c7e1ec22a341183f367484bd8dfbf459
04 Dec 2003 :

  • Fixed some major bugs in the python bindings (ifp_ls mostly)
  • Cleaned up the python API

libiriver-0.0.5.tar.gz - 17c5ddcfa13cb2e19f6c1be2fe050d91
25 Nov 2003 :

  • Added python bindings and a small python test program
  • Some code cleanup (no API changes)

libiriver-0.0.4.tar.gz - d998a6449dbbcb61d57ccc90de565959
24 Aug 2003 :

  • Fixed breakage in autotools configure
  • Made debian packages

libiriver-0.0.3.tar.gz - e03686de15aaa823be0661ab5f9dbfef
24 Jun 2003 :

  • Added support for iFP-3XXT series (from ifp-driver patch)

libiriver-0.0.2.tar.gz - b407f8ef02f6ffa320eb329461a23338
09 Jun 2003 :

  • Fixed ifp_ls and made a couple of minor cleanups

libiriver-0.0.1.tar.gz - d3b98652f7ef0fefcaf8f443cfcbe882
03 Jun 2003 :

  • Initial Release


Libiriver, comes with basic documentation. Online docs can be found here .


  • be sure that you have usbdevfs support either built into your kernel, or loaded as a module; additionally, be sure that usbdevfs is mounted in proc.
  • "no usb devices found" - no usbdevfs available; be sure, you have usb-enabled kernel
  • "no iRiver iFP found" - usb is available, but iFP doesn't seem to be connected; make sure "usb connected" is displayed on the unit; cable reconnecting may sometimes help; try some utility to check your usb topology (
  • "unable to open iFP device" - device is used by another process or you have no rights to write to usb devices, try to do that under root's privileges