diff --git a/flac2mp3.pl b/flac2mp3.pl index bcdc7dc..ebf46cf 100755 --- a/flac2mp3.pl +++ b/flac2mp3.pl @@ -5,6 +5,7 @@ use Getopt::Long; use File::Find; use Data::Dumper; use File::Basename; +use File::Temp qw/ tempfile /; my $opt_no_genre; my $opt_comment; @@ -214,6 +215,31 @@ sub iterFlac { if ($? != 0) { exit(1); } + + embedImageFromFlac($flac, $dest); +} + +sub embedImageFromFlac { + my $flac = shift; + my $mp3 = shift; + + # I can't get the automatic deletion working :c + my (undef, $fname) = tempfile(); + # Export image from flac + qx(metaflac --export-picture-to='$fname' -- '$flac'); + if ($? != 0) { + # Probably no image + unlink($fname); + return; + } + # Extract mime type too + my $pinfo = qx(metaflac --list --block-type=PICTURE -- '$flac'); + $pinfo =~ m/MIME type: (.*)/; + my $mimeType = $1; + + # Add image to mp3 + qx(mid3v2 -p '${fname}:cover:3:$mimeType' -- '$mp3'); + unlink($fname); } sub argsToTags {