def traverse_calibre_library(library_dir):
    dirs = []
    for root, subdirs, files in os.walk(library_dir):
        if len(subdirs) == 0:
            if root == library_dir:
                continue
            m = re.search(r'.*\((\d+)\)$', root)
            if m:
                id = int(m.group(1))
                dirs.append((id, root, files))
    dirs.sort()
    for i in dirs:
        id = i[0]
        root = i[1]
        files = i[2]
        process_files(id, root, files)
