1 votes

Comment faire pour que Rhythmbox synchronise les pochettes d'album sur Android ?

Rhythmbox se synchronise très bien avec mon téléphone Android. Il convertit automatiquement les fichiers FLAC en M4a et conserve la structure de répertoire et les noms de fichiers corrects. Jusqu'à présent, tout va bien.

Cependant, le processus de synchronisation ne copie pas la pochette de l'album. Dans chaque répertoire d'album, j'ai un fichier appelé "cover.jpg" que Rhythmbox utilise très bien, mais il ne fait pas le voyage jusqu'à la carte SD de mon Android. Sur Banshee, la pochette de l'album est copiée, mais il a un ensemble vexant d'autres bugs qui m'empêchent de l'utiliser comme solution de rechange.

1voto

dwjohnston Points 169

J'ai une installation très similaire, à l'exception que je ne transcode pas mes fichiers flac. J'ai découvert que j'avais besoin d'intégrer la pochette d'album dans le fichier flac lui-même en utilisant metaflac :

metaflac --import-picture-from="yourcover.jpg" "yourmusicfile.flac"

Vous devrez faire un script pour ce processus, mais j'ai un script perl que vous pouvez utiliser et qui a juste besoin d'être modifié pour correspondre à vos emplacements de répertoire :

#!/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;
    }
}

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X