Uno script bash migliorato per mescolare file e anche i tag MP3
Il programma rimuove gli spazi e alcuni caratteri (come ', " e -) da una cartella di file predefiniti e poi li mescola aggiungendo un numero casuale seguito da un trattino basso. Inoltre per gli MP3 modifica anche i tag ID3 e ha una funzione aggiuntiva per aggiungerli se mancanti, partendo dal nome del file (solo se è rinominato così: nome_album-nome_artista-titolo.mp3 o nome-artista-titolo.mp3).
Grazie ad alcuni utili commenti emersi dal mio script precedente: Come mescolare efficacemente un elenco di file con uno script bash, ho avuto la possibilità di riscriverlo introducendo un nuovo metodo per generare il prefisso casuale e una nuova funzione per mescolare anche i tag ID3 dei file MP3, visto che i lettori musicali moderni ordinano i brani in funzione dei TAG e non considerano più il nome del file.
Per prima cosa vorrei ringraziare Sitaram Chamarty, la sua soluzione con il BASH_REMATCH si è rivelata molo semplice ma al tempo stesso elegante ed efficiente. Ora è molto più veloce e adatta il prefisso automaticamente in base al numero totale dei file presenti (00x se ci sono più di 100 file e così via).
Poi Joe con il suo suggerimento per semplificare il processo di pulizia.
Lo ho sviluppato alcuni mesi fa e dopo alcune revisioni, ho finalmente ritenuto che fosse pronto per la pubblicazione.
Requisiti
- id3v2
Ho scelto questo programma perché facile da installare e programmare, ma leggendo qualche discussione in rete probabilmente mid3v2 sarebbe stata una scelta più azzeccata.
Come si usa
Innanzitutto si verifica la sezione SETTINGS dello script e si cambia se necessario:
# SETTINGS: ext=mp3 # extension of the files to shuffle
In questo caso i file da mescolare sono gli MP3
Dopo l’eventuale modifica, funziona in questo modo:
./fileRandomizer.sh -shuffle directory --> to add a random prefix to a directory of mp3 ./fileRandomizer.sh -clean directory --> to remove the prefix to a directory of mp3 ./fileRandomizer.sh -tags directory --> to add id3 tags to a directory of mp3 from the filename: Album-Artist-Title.mp3
NOTA: il percorso della cartella non è necessario se si opera già all’interno di essa.
Download
Lo si può scaricare da qui:
- on GitHub: ..bash-scripts/shuffle_files_into_a_folder
Esempio
$ ls -a Example/ . fldgkr-scikjzho-tfcmpfvg.mp3 kvjfui-kpmmmmdw-frvvfkvr.mp3 vdnnhn-ydondrlz-nuimzjfu.mp3 .. fytuba-urksaxbg-gpdamiep.mp3 ldxtwg-xsedzjmt-ygccxtym.mp3 vqqjxb-kgtwdpxd-agcykotg.mp3 aqgbfc-xygqxlit-cqcmaxbk.mp3 ibxtvv-moxfcbey-hvcvtnve.mp3 rwfunt-jsjmwrof-fxxyefoy.mp3 xbwhvy-napflydm-oocbrckn.mp3 bmfcgg-unxqktni-hwsrjjoa.mp3 ilulvp-iwippocb-wbzyjked.mp3 rzroiq-azufwutp-vgqahoem.mp3 xfheij-plwlouwx-foqbfusz.mp3 divjyr-uvlfmxdf-sxofuvbf.mp3 iohgdx-koerbnva-osfhsgyq.mp3 sbjrsl-eijzbrbr-fjsrwrhh.mp3 elldzf-oytlqtfq-vneqgafq.mp3 jvbjoe-uarbinej-cyxhfxlt.mp3 txszoi-gjdrpqlm-ytbzmklp.mp3
$ ./fileRandomizer.sh -shuffle Example/ $ ls -a Example/ . 05-aqgbfc-xygqxlit-cqcmaxbk.mp3 11-divjyr-uvlfmxdf-sxofuvbf.mp3 17-sbjrsl-eijzbrbr-fjsrwrhh.mp3 .. 06-kvjfui-kpmmmmdw-frvvfkvr.mp3 12-ldxtwg-xsedzjmt-ygccxtym.mp3 18-fytuba-urksaxbg-gpdamiep.mp3 01-rwfunt-jsjmwrof-fxxyefoy.mp3 07-txszoi-gjdrpqlm-ytbzmklp.mp3 13-vdnnhn-ydondrlz-nuimzjfu.mp3 19-elldzf-oytlqtfq-vneqgafq.mp3 02-ibxtvv-moxfcbey-hvcvtnve.mp3 08-jvbjoe-uarbinej-cyxhfxlt.mp3 14-xfheij-plwlouwx-foqbfusz.mp3 20-fldgkr-scikjzho-tfcmpfvg.mp3 03-iohgdx-koerbnva-osfhsgyq.mp3 09-rzroiq-azufwutp-vgqahoem.mp3 15-bmfcgg-unxqktni-hwsrjjoa.mp3 04-xbwhvy-napflydm-oocbrckn.mp3 10-vqqjxb-kgtwdpxd-agcykotg.mp3 16-ilulvp-iwippocb-wbzyjked.mp3
$ ./fileRandomizer.sh -clean Example/ $ ls -a Example/ . fldgkr-scikjzho-tfcmpfvg.mp3 kvjfui-kpmmmmdw-frvvfkvr.mp3 vdnnhn-ydondrlz-nuimzjfu.mp3 .. fytuba-urksaxbg-gpdamiep.mp3 ldxtwg-xsedzjmt-ygccxtym.mp3 vqqjxb-kgtwdpxd-agcykotg.mp3 aqgbfc-xygqxlit-cqcmaxbk.mp3 ibxtvv-moxfcbey-hvcvtnve.mp3 rwfunt-jsjmwrof-fxxyefoy.mp3 xbwhvy-napflydm-oocbrckn.mp3 bmfcgg-unxqktni-hwsrjjoa.mp3 ilulvp-iwippocb-wbzyjked.mp3 rzroiq-azufwutp-vgqahoem.mp3 xfheij-plwlouwx-foqbfusz.mp3 divjyr-uvlfmxdf-sxofuvbf.mp3 iohgdx-koerbnva-osfhsgyq.mp3 sbjrsl-eijzbrbr-fjsrwrhh.mp3 elldzf-oytlqtfq-vneqgafq.mp3 jvbjoe-uarbinej-cyxhfxlt.mp3 txszoi-gjdrpqlm-ytbzmklp.mp3
$ ./fileRandomizer.sh -tags Example/ 1) aqgbfc_album_2-xygqxlit_artist_1-song_cqcmaxbk.mp3 hasn't the tags, they will be added. 2) aqgbfc_xygqxlit_cqcmaxbk.mp3 hasn't the tags, they will be added. Do nothing, the "aqgbfc_xygqxlit_cqcmaxbk.mp3" has a wrong format: only album-artist-title or artist-title is allowed $ id3v2 -l aqgbfc_album_2-xygqxlit_artist_1-song_cqcmaxbk.mp3 id3v1 tag info for aqgbfc_album_2-xygqxlit_artist_1-song_cqcmaxbk.mp3: Title : song cqcmaxbk Artist: xygqxlit artist 1 Album : aqgbfc album 2 Year: 2006, Genre: Unknown (255) Comment: Track: 1 id3v2 tag info for aqgbfc_album_2-xygqxlit_artist_1-song_cqcmaxbk.mp3: TYER (Year): 2006 TRCK (Track number/Position in set): 1 TALB (Album/Movie/Show title): aqgbfc album 2 TPE1 (Lead performer(s)/Soloist(s)): xygqxlit artist 1 TIT2 (Title/songname/content description): song cqcmaxbk $ id3v2 -l aqgbfc_xygqxlit_cqcmaxbk.mp3 id3v1 tag info for aqgbfc_xygqxlit_cqcmaxbk.mp3: Title : Artist: Album : Year: 2006, Genre: Unknown (255) Comment: Track: 1 aqgbfc_xygqxlit_cqcmaxbk.mp3: No ID3v2 tag
Aggiungi un commento