#!/usr/bin/perl # TODO - take a playlist in, copy all from that? use strict; use Audio::FLAC::Header; use MP3::Info; my @fields = qw/TITLE ARTIST ALBUM YEAR COMMENT GENRE TRACKNUM/; my ($f, $m, $src, $dst, $flac); $m = get_mp3tag($src = shift @ARGV) || die "Can't get tag for $_"; if ($flac = Audio::FLAC::Header->new($dst = shift @ARGV)) { $f = $flac->tags() ||die "Can't get flac tags - $!"; for (@fields) { $$f{ucfirst(lc($_))} = $$m{$_} } $$f{'Tracknumber'} = delete $$f{'Tracknum'}; $flac->write() || warn $!; $src =~m/([^\/]+)(?:.mp3)$/; if (length $1) { rename $dst, "$1.flac"; } } else { warn "Couldn't get header for $f"; }