У меня Rhythmbox достаточно хорошо синхронизируется с моим телефоном на Android. Он автоматически транскодирует из FLAC в M4a и сохраняет правильную структуру каталогов и отслеживает имена файлов. Пока все хорошо.
Однако процесс синхронизации не копируется поверх обложки альбома. В каждом каталоге альбомов у меня есть файл с названием "cover.jpg", который Rhythmbox использует довольно хорошо, но он не делает путешествие на мою Android SD-карту. На Banshee обложка альбома скопирована, но у нее есть неприятный ряд других ошибок, которые мешают мне использовать ее в качестве обходного пути.
У меня очень похожая настройка за исключением того, что я не транскодирую свои файлы flac. Я обнаружил, что мне нужно встроить обложку альбома в сам файл flac, используя metaflac:
metaflac --import-picture-from = "yourcover.jpg" "yourmusicfile.flac"
You Мне нужно будет создать скрипт для этого процесса, но у меня есть Perl-скрипт, который вы можете использовать, который просто нужно изменить, чтобы он соответствовал расположению ваших каталогов:
#!/usr/bin/perl
use strict;
use warnings;
my $artist;
my $album;
my $filename;
my $cover_filename;
if($#ARGV != 0)
{
print("Usage: add_album_art_flac.pl <TOP DIR>\n");
exit;
}
print("Getting artist album info...\n");
my @flac_album_artist = `find . -type f -name \"*.flac\" -exec metaflac --with-filename --show-tag=\"Artist\" --show-tag=\"Album\" {} \\\;`;
print("Got artist album info\n");
foreach my $flac_file (@flac_album_artist)
{
if($flac_file =~ /^(.+):ARTIST=(.+)$/)
{
$filename = $1;
$artist = $2;
}
elsif($flac_file =~ /^(.+):ALBUM=(.+)$/)
{
if($filename ne $1)
{
undef $artist;
print("ERROR: Failed Sanity Check. Dying...");
die;
}
elsif(defined $artist)
{
$album = $2;
$cover_filename = "/home/fred/.cache/rhythmbox/covers/$artist - $album.jpg";
print("Fetching $cover_filename...\n");
system("metaflac --import-picture-from=\"$cover_filename\" \"$filename\"");
if($? == -1)
{
print("Failed to add $cover_filename to $artist - $album\n");
}
else
{
print("Successfully added $cover_filename to $filename\n");
}
}
undef $artist;
}
else
{
print("ERROR: Bad line. Dying...\n");
die;
}
}