Posts Tagged ‘ ffmpeg

Script para converter de FLAC para ALAC

Edit: Me tapei de nojo e escrevi em bash. Rola aí pra baixo pra pegar o código que funciona e mantém as tags (eu espero)

Com a USENET, conexão boa e um NAS recém montado (mais sobre isso num post futuro), resolvi refazer minha coleção musical toda em Lossless. O maior problema é que eu ouço música majoritariamente no meu iPod ou no iTunes no macbook, e eles não tocam FLAC, que é o padrão para músicas lossless.

O jeito é converter pra Apple Lossless (ALAC). Claro que eu podia fazer isso na mão, copiar os arquivos do NAS, rodar o Max neles, copiar de volta pro NAS, etc. Mas, não, eu resolvi seguir a risca a primeira lei dos programadores, que diz que

Se uma tarefa demanda um tempo x, um programador gastará um tempo ex para escrever um programa que executará a tarefa em um tempo 1/x

E foi o que eu fiz.

Sem mais, baixem ele aí:

http://gist.github.com/423161

Vou deixar o link do github mesmo para o caso de eu atualizar o script.

Dá pra executar ele manualmente, passando o endereço completo da pasta que contém FLACs, ou colocá-lo na pasta de scripts do SABnzbd+ e rodá-lo automaticamente após cada download de música.

Ainda deve ter uma série de bugs, não falha com tanta graça quanto deveria, mas, hey, funciona.

Precisa do ffmpeg compilado com suporte a ALAC, ruby (escrevi no 1.8.7) com a gem MediaInfo instalada, além do próprio MediaInfo.

edit: O ffmpeg não vem com suporte a ALAC no FreeBSD.

Se tiverem sugestões, nada melhor que enfiar a mão no código. Tá no github pra isso, seus vagabundos!

NOVO CÓDIGO:

flac2alac.sh

#!/bin/sh
ffmpeg  -i “$1″ -acodec alac “`basename “$1″ .flac`.m4a” \
-metadata title=\”"$(metaflac –show-tag=TITLE “$1″ | sed ‘s/title=//g’)”\” \
-metadata author=\”"$(metaflac –show-tag=ARTIST “$1″ | sed ‘s/artist=//g’)”\” \
-metadata album=\”"$(metaflac –show-tag=ALBUM “$1″ | sed ‘s/album=//g’)”\” \
-metadata year=\”"$(metaflac –show-tag=DATE “$1″ | sed ‘s/date=//g’)”\” \
-metadata track=\”"$(metaflac –show-tag=TRACKNUMBER “$1″ | sed ‘s/tracknumber=//g’)”\” \
-metadata genre=\”"$(metaflac –show-tag=GENRE “$1″ | sed ‘s/genre=//g’)”\”

process_music_dir.sh

#!bin/sh
cd “$1″
find “$1″ -type f | grep .flac | sed -e “s,[^.],\’&,” -e “s,\$,\’,” | xargs -I {} sh /root/SABScripts/flac2alac.sh {}
find “$1″ -type f | grep .m4a  | sed -e “s,[^.],\’&,” -e “s,\$,\’,” | xargs -I {} mv {} “/mnt/Media/iTunes/Automatically Add to iTunes”
cd -
rm -rf “$1″

 
SEO Powered by Platinum SEO from Techblissonline