-
Notifications
You must be signed in to change notification settings - Fork 2
/
sync-ipod.py
41 lines (32 loc) · 1.07 KB
/
sync-ipod.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import mpd, os, sys
import mpdipod, mpdutils
# iPod mount point (make sure it's properly mounted)
MOUNT_POINT = '/media/usb0'
# mpd host, port
MPD_CONNECTION = ('localhost', 660)
# mpd root directory
MP3_ROOT = os.path.expanduser('/data/mp3s/done')
# Covers dir
COVERS_DIR = os.path.expanduser('~/.covers/')
def sync(ipod, playlists):
for mpd_playlist, ipod_playlist in playlists:
tracks = []
for filename in mpdutils.get_filenames(mpd_playlist,
MPD_CONNECTION,
MP3_ROOT):
track = ipod.track_factory(filename)
if track:
tracks.append(track)
if not ipod.check_freespace(tracks):
raise FreeSpaceException("Not enough free space!")
ipod.sync_playlist(ipod_playlist, tracks)
return True
def main():
playlists = []
for pl in sys.argv[1:]:
playlists.append((pl, pl))
ipod = mpdipod.iPod(MOUNT_POINT)
sync(ipod, playlists)
ipod.close()
if __name__ == '__main__':
main()