Conversor de música sem cabeça com nome de arquivo baseado em tags

3

Eu tenho uma coleção de músicas composta por várias trilhas sonoras de filmes no Apple Lossless e gostaria de convertê-las em OkG Vorbis de 48kbps em uma estrutura de pastas completamente diferente com nomes de arquivos no seguinte formato:

/music folder/{album artist}/{album name}/{track number} {track title} - {track artist}.ogg

Eu também gostaria de extrair as capas dos álbuns em um arquivo separado chamado 'AlbumArt.jpg' na mesma pasta.

O problema é que eu quero fazer isso no meu servidor Ubuntu sem cabeça - apenas terminal.

Existe alguma maneira de fazer isso sem uma extensa escrita de scripts?

    
por Silke 06.08.2012 / 14:42

1 resposta

3

Aqui está um exemplo de script e como usá-lo.

Instale primeiro esses pacotes: libav-tools mediainfo ubuntu-restricted-extras

  • avconv (anteriormente conhecido como ffmpeg ) executa a conversão real
  • mediainfo fornece as informações da tag para criar a estrutura de pastas e nomear o arquivo.

O script é:

#!/bin/bash
OUTPUTBASE=converted-oggs #path to the base folder for output ALBUMARTIST='mediainfo --Inform="General;%Album/Performer%" ""' ALBUM='mediainfo --Inform="General;%Album%" ""' TNUMBER='mediainfo --Inform="General;%Track/Position%" ""' TTITLE='mediainfo --Inform="General;%Track%" ""' TARTIST='mediainfo --Inform="General;%Performer%" ""' mkdir -p "$OUTPUTBASE/$ALBUMARTIST/$ALBUM" mediainfo --Inform="General;%Cover_Data%" "" | base64 -d > "$OUTPUTBASE/$ALBUMARTIST/$ALBUM/AlbumArt.jpg" avconv -i "" -acodec libvorbis -b 48k "$OUTPUTBASE/$ALBUMARTIST/$ALBUM/$TNUMBER $TTITLE - $TARTIST.ogg"

Suponha que nomeie o script ~/silexcvt.sh e você converta todas as faixas m4a na pasta ~/soundtracks , você terá find e xargs chamando o script como:

find soundtracks -regex '.*m4a$' | xargs -I '{}' ./silexcvt.sh "{}"
    
por ish 20.08.2012 / 05:59