View Single Post
Old 12-02-2010, 12:54 AM   #1 (permalink)
excetara2
New Member
 
Join Date: Dec 2010
Model: 9650
PIN: N/A
Carrier: Vodafone (Verizon Branded)
Posts: 2
Post Thanks: 0
Thanked 0 Times in 0 Posts
Default Script to Copy/Sync Playlists and Music to Blackberry

Please Login to Remove!

This is a script I wrote to copy my playlists and associated Music from rhythmbox over to a blackberry. All my music is in a Music Folder and I output the playlist files from rhythmbox into the Music folder so it uses relative indexing (rhythmbox will use relative if it can so all music in the playlist is contained in that music folder. If not, it will use absolute paths). Then the same directory structure is set up on the blackberry and music is transferred as well as the same playlists in a format blackberry understands.

I may write a rhythmbox plugin for this if I get time because shouldn't be difficult and would fully automate the process. There may already be an easier way to do this I just didn't find one relatively quickly.

Note: If it uses absolute paths so my setup above isn't followed the script would need to be slightly modified.


USAGE:
  1. Change dirBlackMusic to the blackberry mount location (should be '/media/???????/BlackBerry/music/' where ?????? is whatever your system decides)
  2. Change dirCompMusic to your music folder
  3. Set-up so you input playlist without the .m3u etension (make sure to output playlists from rhythmbox as .m3u) and if you just hit enter and input nothing it runs the playlists set in listPlaylist
  4. Note: dirPlayNameBlack was for absolute paths on blackberry but currently not using it in the script because using relative on PC and blackberry.


Need to comment the code below but any questions just ask.

Code:
import os
import shutil

def ensureDir(f):
    d = os.path.dirname(f)
    if not os.path.exists(d):
        os.makedirs(d)
inputPlaylist = raw_input('Enter Name of Playlist:')
inputPlaylist += '.m3u'
if (inputPlaylist == '.m3u'):
    listPlaylist = ['Blackberry.m3u','Acoust.m3u','Country.m3u','LiamTomTom.m3u','New Great.m3u','PowerHour.m3u','That Stanky Shit.m3u','Other Stuff.m3u'] #Works on spaces properly but need \' and \"
else:
    listPlaylist = inputPlaylist
dirCompMusic = '/mnt/data/Music/'
dirBlackMusic = '/media/424D-549E/BlackBerry/music/'
dirBlackPlaylist = dirBlackMusic
dirPlayNameBlack = 'file:///SDCard/BlackBerry/music'
if (os.path.exists(dirBlackMusic)):  
    for namePlaylist in listPlaylist:
        readPlay = open(namePlaylist, 'r')  
        writePlay = open(dirBlackMusic + namePlaylist, 'w')
        for line in readPlay:
            line = line.strip()
            if (line[0] == '#'):
                pass
            else:
                line = line.replace('"','\"')
                line = line.replace("'","\'")
                dirBlackPath = dirBlackMusic + line
                ensureDir(dirBlackPath)
                if (not os.path.isfile(dirBlackPath)):
                    #ospath = line.replace(' ','\\ ')
                    # os.system("cp %s %s" % (ospath, blackberrypath))
                    shutil.copy(line, dirBlackPath)
                playNameBlack = line.replace(' ','%20')
                writePlay.write(playNameBlack + '\n')
        writePlay.close()
        readPlay.close()
else:
    print "Please Mount your Blackberry or Change dirBlackMusic to reflect music Folder"

Cheers
Offline   Reply With Quote