Come posso generare una playlist M3U dal terminale?

Mi piacerebbe generare una playlist M3U per una directory contenente i file mp3 sul mio server dal terminale. Dato che mi piacerebbe assicurarmi che ogni giocatore sia in grado di trasmettere in streaming quei file, vorrei aggiungere come prefisso ogni voce del file con l’URL assoluto a quella directory, in questo modo:

 

 
 ...

Quindi sfortunatamente semplicemente facendo ls -1 *.mp3 > play.m3u non è abbastanza. C’è un solo liner per raggiungere questo objective?

Penso che il seguente one-liner dovrebbe funzionare:

for f in *.mp3; do echo "http://..../$f" >> play.m3u; done

Questa è la risposta @ sincronitis con alcuni miglioramenti:

  • memorizza il nome del file sulla playlist $ variabile per un uso successivo
  • cancellerà il file se esiste in precedenza
  • scrive il percorso completo del file sulla playlist

Il comando

 playlist='play.m3u' ; if [ -f $playlist ]; then rm $playlist ; fi ; for f in *.mp3; do echo "$(pwd)/$f" >> "$playlist"; done 

Per giocare anche con mplayer sulla riga di comando

 mplayer -playlist play.m3u 

All’inizio hai chiesto di creare ciascuna voce come una linea formattata per URL web. Oltre a sostituire il percorso locale con http: // …, dovrai anche sostituire gli spazi con ‘% 20’. Quindi, lunga fila, ma qui vai:

 find /path/to/mp3s/ -name "*.mp3" | sed 's/ /%20/g' | sed 's|/path/to/mp3s/|http://www.server.com/serverpath/|g' > playlist.m3u