Exporte uma playlist m3u para um diretório para que elas apareçam na playlist

3

Existe uma maneira de rsync a playlist m3u entrar em um diretório de destino.

Como posso processar a lista e numerar a saída para que ela ordene que os arquivos correspondam à ordem da lista de reprodução?

Por exemplo, o m3u:

/music/song-yellow.mp3
/music/song-red.mp3
/music/song-blue.mp3

copiaria / rsync o conteúdo da lista de reprodução, renomeando os arquivos para:

/dest-path/01-song-yellow.mp3
/dest-path/02-song-red.mp3
/dest-path/03-song-blue.mp3

É para poder criar playlists de mixtape e copiá-las para as pessoas.

Qualquer conselho apreciado.

    
por invert 23.01.2012 / 18:38

1 resposta

2

Tente algo assim:

#!/usr/bin/python

FILE = '/home/my-home/my-playlist.m3u'
DIR = '/some-target-directory'

import os.path, shutil, sys

for i, s in enumerate(open(FILE)):
    s = s.rstrip()
    try:
        shutil.copy(s, os.path.join(DIR, '%03d-%s' % (i+1, os.path.basename(s))))
    except IOError, e:
        sys.stderr.write('warning: %s\n' % e)

# End of file.

Obviamente, defina FILE e DIR com o que você precisa. Desculpas para ir além do topo e usar o Python para isso - ajuda a não ter que escapar de todos os caracteres que os shells gostam de anexar significados especiais.

O script não falhará nos erros de E / S, apenas emitirá um aviso. Fora isso, não há verificações de sanidade (como você provavelmente pode ver). Também não exclui comentários do M3U. Entretanto, ele copia qualquer caractere que você jogue, com as exceções óbvias de NUL s e barras que são caracteres especiais no nível do sistema de arquivos.

    
por 24.01.2012 / 03:48