Audible-sync
As I mentioned back in my little rant about Audible’s horrible mobile app, I had an idea that would perhaps allow me to sync playback position between devices. I took the chance to try it out between books, and I can report that it actually does work – with some important notes in the margin.

The method uses Dropsync, which I’m already using to sync everything from photos to save game files on my two Android devices. Dropsync allows you to sync folders two ways using Dropbox, and since Audible stores all the data in a /Audible folder…well you see where I’m going with this. Basically you need to set up Dropsync to sync the Auible folder with a folder in your Dropbox account, and then do the same for the other device. For the initial setup though, you should select one device to be the master which syncs its data with the Dropbox folder first, then delete all the data in the Audible folder on the other device, and then sync that device so that it only downloads data. That means you’ll have to download the actual audio book files again (unless you leave those files alone when you’re deleting, which is perfectly possible), but even if you do it should pick back up just fine.

Now to the notes in the margin. First off, to make this work at all, you need to sync hidden files – that’s a setting in Dropsync. A lot of the /Audible/* folders are hidden, i.e. startng with a period (e.g. /Audible/.playback_position), so this is a must have. Ifyou’ve used Dropsync for a while without that setting enabled, enabling it might make Dropsync start picking up a lot of new subfolders in other directories, like thumbnails in the DCIM (camera) folder. This can be countered by using the filter functionality in Dropsync to exclude those folders. You should also enable Dropsync’s ability to monitor folders, as that will sync any changes done to the Audible folder immediately when they happen.

The biggest issue with this setup is how easy it is to get the two devices out of sync “for good”. If you open the Audible app on both devices at the same time, or open it on one device before the updates from the other device have synced to it, Dropsync will discover conflicts and start renaming some of the uploads to create two sets of files to prevent data loss – half of which Audibe can’t read. Dropsync can’t monitor Dropbox folder changes, so while it uploads files immediately on the device you just used Audible on, downloading them to the other device so it’s ready for continuing on that only happens whenever you intiate a sync manually or when the auto sync occurs. In practice, that means that if you come home, quit Audible on your phone and start it up on your tablet, the changes will have synced from the phone to Dropbox, but not from Dropbox to the tablet unless you wait a while or initiate a sync manually. If you forget to do that, you’re in trouble.

There are ways of adding safety mechanisms, namely using Tasker. Dropsync adds itself as a Tasker plugin, so you can create a task that first runs Dropsync and then Audible, with some sort of delay in between. I originally hoped I could somehow use the ongoing notification that Dropsync displays to control the delay, but unfortunately Tasker can only treat notifications as events (one time thing when they happen), not states (i.e. a value is “1” while it’s displaying, then reverts to “0”. As such, a time delay is the best I can do for now, even though that delays you every time you start the app. If you sit down and tinker with Tasker enough though, it should be possible to make it actually ask you if you want to sync or not before starting Audible.

This isn’t eactly a perfect solution, especially not with the Tasker delay system and all that, but nothing about Audible’s app is ideal. Syncing is a feature that Audible should have put in there, not a feature I should have to add to it myself. Until Audible decides to get a grip and add the feature, this somewhat cumbersome way will have to do if you want to listen to books on multiple devices without losing your position in the book.