Package: idrivetools
iDriveToolsTools for managing BMW iDrive music backups. There are two tools included in this package.This tool requires Python 3.7+InstallationThese utilities can be installed using pip. pip can be installed following the instructionherepip install idrivetoolsEventually, this will have standalone executables for Windows and Mac. But for now, pip will also install
on the same operating systems.bmwunpackThis takes a BMW backup and converts everything to regular media files.Typical arguments contain the source and destination folders.Usagebmwunpack BMWData unpackedbmwpackThis is the opposite of bmwunpack in that it will take a hierarchy of folders and
create a BMW backup that can be restored back into the iDrive systemUsagebmwpack unpacked BMWDatabmwcreatenewbackupThis command is used to create an empty backup folder structure. This folder structure
can be populated with media files and then packed later.Usagebmwcreatenewbackup new_backupbmwconvertThis command takes a folder full of media files and converts it to a backup structure.Usagebmwconvert media_folder new_backupNotesA typical BMW backup has a single BMWData top folder, a Music sub-folder, USB drive name
sub-folders below that and then the actual media files themselves.There are several metadata files that are required by the backup. These files are
calculated by bmwpack and added automatically. Without these metadata files, the
backup will not be recognised by the iDrive system.An example backup file structure.BMWData
+ Music
  + USB1
    + Media folder 1
      + file1.mp3
      + file2.mp3
      + file3.mp3
      + ...
    + Media folder 2
      + file4.mp3
      + file5.mp3
      + ...
  + USB2
    + Media folder 1
      + file1.mp3
      + file2.mp3
      + file3.mp3
      + ...
    + Media folder 2
      + file4.mp3
      + file5.mp3
      + ...
  + data_1
  + data_1_count
  + info
+ BMWBackup.verThere are several file types that are supported by this script. I suspect there are more
file types that are supported by the iDrive system. These are the ones I have come across
so far and their “encrypted” extensions:Media filesMP3 (BR4, BR28)MP4 (BR3, BR27)AAC (BR25)FLAC (BR48)WMA (BR5, BR29)JPG (BR67)BMWP (BR30) - A playlist filePlaylist SupportThe BMWP playlist file is a plain text file that contains a list of absolute paths
located on the iDrive system itself. They start from the USB drive name going forwards
with a UNIX file format name (forward slashes). They typically look like this:/USB1/CAKE - Pressure Chief/01 - CAKE - Wheels.mp3
/USB1/CAKE - Pressure Chief/02 - CAKE - No Phone.mp3
/USB1/CAKE - Pressure Chief/03 - CAKE - Take It All Away.mp3
/USB1/CAKE - Pressure Chief/04 - CAKE - Dime.mp3
/USB1/CAKE - Pressure Chief/05 - CAKE - Carbon Monoxide.mp3
/USB1/CAKE - Pressure Chief/06 - CAKE - The Guitar Man.mp3
/USB1/CAKE - Pressure Chief/07 - CAKE - Waiting.mp3
/USB1/CAKE - Pressure Chief/08 - CAKE - Baskets.mp3
/USB1/CAKE - Pressure Chief/09 - CAKE - End of the Movie.mp3
/USB1/CAKE - Pressure Chief/10 - CAKE - Palm of Your Hand.mp3
/USB1/CAKE - Pressure Chief/11 - CAKE - Tougher Than It Is.mp3These can be edited to keep the same absolute path. They are included in the _Playlists folder.How Do I Give FeedbackThis code lives at thisrepoand there is a section at the top for reporting issues and
giving feedback. I’m pretty friendly and keen on making this better, so make suggestions.What’s PlannedThere is scope here to provide some more functionality:Generate playlists from foldersGenerate an empty backup structure ready for fillingBetter command line feedback, like a progress barAn in-place editing mode, where you can edit files without having to unpackExpose core functionality as modules/packages so it can integrated into other projectsMaybe some kind of GUI later down the track.