logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 13-04-2021 08:29:38

Tawal
Membre
Distrib. : Debian Stable à jour
Noyau : amd64
(G)UI : Xfce
Inscription : 25-02-2021

[Résolu] Extraction Automatique CD audio + Encodage

Hello,

Je cherche à automatiser l'extraction de mes CD audios pour les compresser en MP3.

  1. J'ai essayé avec Sound-Juicer qui fonctionne très bien mais qui n'a pas la qualité sonore requise.
    Je n'ai pas su régler la qualité de compression MP3.

  2. J'ai essayé avec Asunder, la qualité est bonne, mais, n'a, malheureusement, aucune automatisation possible (pure GUI).

  3. J'ai essayé avec abcde, un outil en ligne de commande, l'extraction se passe bien, l'encodage aussi, mais le taggage des MP3 renvoie une erreur et arrête le programme.



Mes souhaits seraient :

  • Une qualité d'encodage 245kB/s mini en VBR voire 320kB/s en CBR

  • Une récupération automatique des :

    1. Numéros de piste

    2. Titres

    3. Artiste

    4. Album

  • Un nommage automatique des fichiers

  • Un taggage automatique des fichiers

  • Et, une structure de dossier automatique : Artiste/Album/


Un autre point, mais je m'en débrouillerai avec le logiciel utilisé (ou autre méthode), c'est de ne pas extraire si il n'y a pas de données CD.


Je ne demande pas qu'on me donne une solution toute faite.

Mais plutôt qu'on m'indique soit comment régler la qualité d'encodage de Sound-Juicer,
ou comment bien utiliser abcde (ou tout autre logiciels, je suis à l'écoute),
ou autre moyen dont je n'ai pas connaissance (ou pas pensé).

En vous remerciant de vos aides, explications, conseils ...
Au plaisir
.

Dernière modification par Tawal (13-04-2021 21:13:36)


Comme la science n'est pas infuse, elle se diffuse.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !

Hors ligne

#2 13-04-2021 08:35:30

otyugh
CA Debian-Facile
Lieu : Quimperlé/Arzano
Distrib. : Debian Stable
Inscription : 20-09-2016
Site Web

Re : [Résolu] Extraction Automatique CD audio + Encodage

D'avance je le fais jamais donc avis de béotien :
Faire un script avec "cdparanoia" pour l'extraction et puis éventuel post-traitament avec ffmpeg je dirai ? On dirait aussi qu'il faudra un traitement pour automatiser les taggs.
Si tu parles anglais je commencerai par cette doc : https://wiki.archlinux.org/index.php/Ri … Ds#Ripping

Dernière modification par otyugh (13-04-2021 08:39:21)


virtue_signaling.pngpalestine.png

En ligne

#3 13-04-2021 08:50:32

Tawal
Membre
Distrib. : Debian Stable à jour
Noyau : amd64
(G)UI : Xfce
Inscription : 25-02-2021

Re : [Résolu] Extraction Automatique CD audio + Encodage

Merci de ta réponse rapide.

Elle n'a l'air de rien, mais elle m'a ouvert les yeux.
Je cherchais un "tout en un", alors qu'il est possible de le faire par étape !

Je regarde ton lien, et je vois si je fais tout en script (étape par étape) ou si je passe en partie par une GUI (avec sound-Juicer, j'arrive à gérer les cas où les CDs n'ont pas de données cdtext).

Merci, déjà, j'avance smile

Comme la science n'est pas infuse, elle se diffuse.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !

Hors ligne

#4 13-04-2021 09:17:40

otyugh
CA Debian-Facile
Lieu : Quimperlé/Arzano
Distrib. : Debian Stable
Inscription : 20-09-2016
Site Web

Re : [Résolu] Extraction Automatique CD audio + Encodage

Apparemment c'est encore plus simple que je pensais. Pour un essai sur une piste (je n'ai pas de lecteur CD pour tester ~)

cdparanoia -XB 1 - | lame -b 320 - track01.mp3

Dernière modification par otyugh (13-04-2021 09:19:50)


virtue_signaling.pngpalestine.png

En ligne

#5 13-04-2021 10:30:44

Tawal
Membre
Distrib. : Debian Stable à jour
Noyau : amd64
(G)UI : Xfce
Inscription : 25-02-2021

Re : [Résolu] Extraction Automatique CD audio + Encodage

Re,

Oui, c'est pas trop dur d'obtenir un MP3

J'arrive à avoir le MP3 avec abcde, le tag passe aussi mais le renommage du fichier ne se fait pas.
Pourtant, j'ai bien configuré le ~/.abcde.conf avec

OUTPUTFORMAT='${ARTISTFILE}/${ALBUMFILE}/${TRACKNUM}.${TRACKFILE}'


Voilà, il ne me reste plus qu'à avoir le bon nom de fichier et la bonne arborescence
.


Comme la science n'est pas infuse, elle se diffuse.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !

Hors ligne

#6 13-04-2021 11:05:28

Anonyme
Invité

Re : [Résolu] Extraction Automatique CD audio + Encodage

Bonjour,
j'ai numérisé mes CD il a y quelques années.
Je n'ai rien trouvé sous Linux qui corresponde à ce besoin.
Par contre CDEX sous wine rempli parfaitement  son taf grâce à une base de donnée en ligne. Seuls quelques CD à édition confidentielle n'avaient pas été taggés.

#7 13-04-2021 11:09:16

enicar
Membre
Lieu : pas ici
Distrib. : sid
Noyau : Linux 6.5.3
(G)UI : openbox
Inscription : 26-08-2010

Re : [Résolu] Extraction Automatique CD audio + Encodage

Il y a xcfa qui donne de bons résultats. Ça fait longtemps que je ne l'ai pas utilisé.
C'est une interface graphique. Il existe aussi xcfa_cli qui est la version en ligne de
commande, comme son nom l'indique wink

En ligne

#8 13-04-2021 11:13:09

Tawal
Membre
Distrib. : Debian Stable à jour
Noyau : amd64
(G)UI : Xfce
Inscription : 25-02-2021

Re : [Résolu] Extraction Automatique CD audio + Encodage

Anonyme a écrit :

Par contre CDEX sous wine rempli parfaitement  son taf


Non, je ne passerai pas par wine juste pour ça, il y a tous les outils nécessaires en natif wink

@enicar:
Je vais voir xcfa wink


Comme la science n'est pas infuse, elle se diffuse.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !

Hors ligne

#9 13-04-2021 11:22:34

Tawal
Membre
Distrib. : Debian Stable à jour
Noyau : amd64
(G)UI : Xfce
Inscription : 25-02-2021

Re : [Résolu] Extraction Automatique CD audio + Encodage

Re,

apt search xcfa


En train de trier... Fait
Recherche en texte intégral... Fait
xcfa/stable,now 5.0.2-1+b1 amd64  [installé]
  convertisseur X de fichiers audio

xcfa-dbg/stable 5.0.2-1+b1 amd64
  X Convert File Audio – symboles de débogage
 


Pas de cli pour xcfa, et pas d'option GUI pour automatiser.
Je reste pour l'instant sur abcde, au pire je fais une boucle pour renommer ...
.


Comme la science n'est pas infuse, elle se diffuse.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !

Hors ligne

#10 13-04-2021 11:53:18

--gilles--
Membre
Lieu : Orléans - La Source
Distrib. : Debian 12
Noyau : Linux 6.1.0-18-amd64
(G)UI : Gnome - mutter 43.8-0+deb12u1
Inscription : 15-02-2016

Re : [Résolu] Extraction Automatique CD audio + Encodage

Ce n'est pas tout à fait la demande, mais je teste : message verbeux, arrêt en cas d'erreur, extraction des pistes 2 à 4, côté cdparanoia, côté lame, message verbeux, ancien algorithme à débit variable : ( j'avais des erreurs avec ta commande Otyugh avec le paramètre b côté lame )


cdparanoia -v -X 2-4  | lame --verbose -vbr-old --out-dir=/home/intervenant101/ piste-2-4.wav piste-2-4.mp3

cdparanoia III release 10.2 (September 11, 2008)

Using cdda library version: 10.2
Using paranoia library version: 10.2
Checking /dev/cdrom for cdrom...
  Testing /dev/cdrom for SCSI/MMC interface
    SG_IO device: /dev/sr0

CDROM model sensed sensed: hp DVD-RAM GH60L RD01
 

Checking for SCSI emulation...
  Drive is ATAPI (using SG_IO host adaptor emulation)

Checking for MMC style command set...
  Drive is MMC style
  DMA scatter/gather table entries: 1
  table entry size: 131072 bytes
  maximum theoretical transfer: 55 sectors
  Setting default read size to 27 sectors (63504 bytes).

Verifying CDDA command set...
WARNING: argument missing for 'b'
WARNING: libsndfile may ignore -r and perform fseek's on the input.
Compile without libsndfile if this is a problem.
lame: unrecognized option --
  Expected command set reads OK.

Attempting to set cdrom to full speed...
  drive returned OK.

Table of contents (audio tracks only):
track        length               begin        copy pre ch
===========================================================
  1.    15112 [03:21.37]        0 [00:00.00]    no   no  2
  2.    30170 [06:42.20]    15112 [03:21.37]    no   no  2
  3.    15278 [03:23.53]    45282 [10:03.57]    no   no  2
  4.    16267 [03:36.67]    60560 [13:27.35]    no   no  2
  5.    13643 [03:01.68]    76827 [17:04.27]    no   no  2
  6.    11792 [02:37.17]    90470 [20:06.20]    no   no  2
  7.    20960 [04:39.35]   102262 [22:43.37]    no   no  2
  8.    29670 [06:35.45]   123222 [27:22.72]    no   no  2
  9.    16748 [03:43.23]   152892 [33:58.42]    no   no  2
 10.    16650 [03:42.00]   169640 [37:41.65]    no   no  2
 11.    18160 [04:02.10]   186290 [41:23.65]    no   no  2
 12.    25830 [05:44.30]   204450 [45:26.00]    no   no  2
 13.    32057 [07:07.32]   230280 [51:10.30]    no   no  2
 14.    17698 [03:55.73]   262337 [58:17.62]    no   no  2
 15.    29570 [06:34.20]   280035 [62:13.60]    no   no  2
 16.    19947 [04:25.72]   309605 [68:48.05]    no   no  2
TOTAL  329552 [73:14.02]    (audio only)
 
Ripping from sector   15112 (track  2 [0:00.00])
    to sector   76826 (track  4 [3:36.66])

outputting to cdda.wav

 (== PROGRESS == [                              | 076826 00 ] == :^D * ==)  

Done.

 




Cela donne bien un fichier audible de bonne qualité sonore, avec les pistes 2-3-4 que je souhaitais, mais c'est un .wav !


exiftool cdda.wav


ExifTool Version Number         : 12.16
File Name                       : cdda.wav
Directory                       : .
File Size                       : 138 MiB
File Modification Date/Time     : 2021:04:13 12:09:36+02:00
File Access Date/Time           : 2021:04:13 12:41:27+02:00
File Inode Change Date/Time     : 2021:04:13 12:09:36+02:00
File Permissions                : rw-r--r--
File Type                       : WAV
File Type Extension             : wav
MIME Type                       : audio/x-wav
Encoding                        : Microsoft PCM
Num Channels                    : 2
Sample Rate                     : 44100
Avg Bytes Per Sec               : 176400
Bits Per Sample                 : 16
Duration                        : 0:13:43
 



abcde a l'air, à première vue rapide, plus maniable, plus équipé pour les tags que lame. Voir :

apt show abcde


Si tout le monde pense pareil, c'est qu'aucune personne ne pense beaucoup.
 Intel® Core™2 Duo E8500  × 2
4,0 Gio DDR3 - 1333 MHz
Et si vous cherchiez votre solution dans le wiki => https://debian-facile.org/accueil palestine.png

Hors ligne

#11 13-04-2021 12:07:35

enicar
Membre
Lieu : pas ici
Distrib. : sid
Noyau : Linux 6.5.3
(G)UI : openbox
Inscription : 26-08-2010

Re : [Résolu] Extraction Automatique CD audio + Encodage

Je viens de réessayer xcfa. Hum… Il faut changer la l'adresse de db, freedb ne fonctionne plus. Il faut
utiliser gnudb.gnudb.org. Sinon j'ai écrit un script en perl qui utilise CDDB_get (qui est dans debian sous
le nom : libcddb-get-perl). Par contre je l'ai programmé pour qu'il produise du flac. Ça serait facile
de l'adapter pour produire du mp3, ceci dit. Ce script nécessite donc perl, cdparanoia, flac et metaflac.
Voici le code du script :


#! /usr/bin/perl
use utf8;

sub to_utf8($) {
    my $str=shift;
    utf8::upgrade($str);
    return $str;
}

$device = "/dev/cdrom";

use CDDB_get qw( get_cddb );

my %config;

# following variables just need to be declared if different from defaults
$config{CDDB_HOST}="gnudb.gnudb.org";        # set cddb host
$config{CDDB_PORT}=8880;                       # set cddb port
$config{CDDB_MODE}="cddb";                     # set cddb mode: cddb or http
$config{CD_DEVICE}= $device;                 # set cd device
$config{HELLO_ID}="enikar royce.gaia virtualize 0.0.1";
# user interaction welcome?
$config{input}=1;   # 1: ask user if more than one possibility
             # 0: no user interaction

# get it on

my %cd=get_cddb(\%config);

unless(defined $cd{title}) {
     die "no cddb entry found";
}

# do somthing with the results
my @tracks=@{$cd{track}};
my ($name,$title,$year,$artist,$track,$t,$genre,$cddbid,$category,$trackno);

$artist=to_utf8($cd{artist});
$title=to_utf8($cd{title});
$category=to_utf8($cd{cat});

if ($cd{genre}) {
    $genre=to_utf8($cd{genre});
}

if ($cd{year}) {
    $year=$cd{year};
}

$cddbid=$cd{id};
$trackno=$cd{tno};


foreach my $t (@tracks) {
    $t=to_utf8($t);
}

open(INFO, ">:encoding(utf8)", "info.txt") or die("Impossible d'ouvrir 'info.txt' en écriture\n");
select(INFO);
print "artist: $artist\n";
print "title: $title\n";
print "category: $category\n";
print "genre: $genre\n" if($genre);
print "year: $year\n" if($year);
print "cddbid: $cddbid\n";
print "trackno: $trackno\n";
my $n=1;
foreach my $t (@tracks) {
        print "track $n: $t\n";
        $n++;
}
close(INFO);
select(STDOUT);

system("cdparanoia -d ${device} -output-wav -B") and
   die("Echec de la commande cdparanoia : $?");
if ( -e "track00.cdda.wav") {
    unlink "track00.cdda.wav";
}
system("flac *.wav") and die("Echec de la commande flac : $?");
unlink <*.wav>;


if ($cd{genre}) {
    $genre=$cd{genre}
} else {
    $genre = 'Unknown'
}

while (<*.flac>) {
   m|^track(\d+)\.cdda\.flac$|;
   $n = 0 + $1;
   $track = $tracks[$n-1];
   $t = $track;
   $t =~ s/ +/_/g;
   $t =~ s|/+|-|g;
   $t =~ s/_([-:.,;])_/$1/g;
   $t =~ s/_([-:.,;])/$1/g;
   $t =~ s/([-:.,;])_/$1/g;
   $t =~ s/[éèëê]/e/g;
   $t =~ s/[ÉÈÊË]/E/g;
   $t =~ s/[àâä]/a/g;
   $t =~ s/[ÀÂÄ]/A/g;
   $t =~ s/[ïî]/i/g;
   $t =~ s/[ÎÏ]/I/g;
   $t =~ s/[öô]/o/g;
   $t =~ s/[ÔÖ]/O/g;
   $t =~ s/[üûù]/u/g;
   $t =~ s/[ÛÜÙ]/U/g;
   $t =~ s/_{2,}/_/g;
   $name = sprintf("%02d_%s.flac", $n, $t);
   system("metaflac", "--set-tag=ALBUM=$title",
       "--set-tag=ARTIST=$artist", "--set-tag=TITLE=$track",
       "--set-tag=TRACKNUMBER=$n", "--set-tag=DATE=$year",
       "--set-tag=GENRE=$genre", $_) and
            die("Echec de la commande metaflac : $?\n");
   rename($_, $name) or die("Impossible de renomer '$_' en '$name'\n");
}
 



Ce script produit les fichiers avec certains tags dans les fichiers… Mais pour le genre par
exemple ce n'est pas toujours renseigné. Il produit également un fichier info.txt qui contient
les renseignements nécessaires pour récrire les tags avec un autre script en ruby cette fois-ci :


#! /usr/bin/ruby
# encoding: utf-8

genres = Hash.new
genres["Blues"]="0"
genres["Classic Rock"]="1"
genres["Country"]="2"
genres["Dance"]="3"
genres["Disco"]="4"
genres["Funk"]="5"
genres["Grunge"]="6"
genres["Hip-Hop"]="7"
genres["Jazz"]="8"
genres["Metal"]="9"
genres["New Age"]="10"
genres["Oldies"]="11"
genres["Other"]="12"
genres["Pop"]="13"
genres["R&B"]="14"
genres["Rap"]="15"
genres["Reggae"]="16"
genres["Rock"]="17"
genres["Techno"]="18"
genres["Industrial"]="19"
genres["Alternative"]="20"
genres["Ska"]="21"
genres["Death Metal"]="22"
genres["Pranks"]="23"
genres["Soundtrack"]="24"
genres["Euro-Techno"]="25"
genres["Ambient"]="26"
genres["Trip-Hop"]="27"
genres["Vocal"]="28"
genres["Jazz+Funk"]="29"
genres["Fusion"]="30"
genres["Trance"]="31"
genres["Classical"]="32"
genres["Instrumental"]="33"
genres["Acid"]="34"
genres["House"]="35"
genres["Game"]="36"
genres["Sound Clip"]="37"
genres["Gospel"]="38"
genres["Noise"]="39"
genres["AlternRock"]="40"
genres["Bass"]="41"
genres["Soul"]="42"
genres["Punk"]="43"
genres["Space"]="44"
genres["Meditative"]="45"
genres["Instrumental Pop"]="46"
genres["Instrumental Rock"]="47"
genres["Ethnic"]="48"
genres["Gothic"]="49"
genres["Darkwave"]="50"
genres["Techno-Industrial"]="51"
genres["Electronic"]="52"
genres["Pop-Folk"]="53"
genres["Eurodance"]="54"
genres["Dream"]="55"
genres["Southern Rock"]="56"
genres["Comedy"]="57"
genres["Cult"]="58"
genres["Gangsta"]="59"
genres["Top 40"]="60"
genres["Christian Rap"]="61"
genres["Pop/Funk"]="62"
genres["Jungle"]="63"
genres["Native American"]="64"
genres["Cabaret"]="65"
genres["New Wave"]="66"
genres["Psychedelic"]="67"
genres["Rave"]="68"
genres["Showtunes"]="69"
genres["Trailer"]="70"
genres["Lo-Fi"]="71"
genres["Tribal"]="72"
genres["Acid Punk"]="73"
genres["Acid Jazz"]="74"
genres["Polka"]="75"
genres["Retro"]="76"
genres["Musical"]="77"
genres["Rock & Roll"]="78"
genres["Hard Rock"]="79"
genres["Folk"]="80"
genres["Folk-Rock"]="81"
genres["National Folk"]="82"
genres["Swing"]="83"
genres["Fast Fusion"]="84"
genres["Bebob"]="85"
genres["Latin"]="86"
genres["Revival"]="87"
genres["Celtic"]="88"
genres["Bluegrass"]="89"
genres["Avantgarde"]="90"
genres["Gothic Rock"]="91"
genres["Progressive Rock"]="92"
genres["Psychedelic Rock"]="93"
genres["Symphonic Rock"]="94"
genres["Slow Rock"]="95"
genres["Big Band"]="96"
genres["Chorus"]="97"
genres["Easy Listening"]="98"
genres["Acoustic"]="99"
genres["Humour"]="100"
genres["Speech"]="101"
genres["Chanson"]="102"
genres["Opera"]="103"
genres["Chamber Music"]="104"
genres["Sonata"]="105"
genres["Symphony"]="106"
genres["Booty Bass"]="107"
genres["Primus"]="108"
genres["Porn Groove"]="109"
genres["Satire"]="110"
genres["Slow Jam"]="111"
genres["Club"]="112"
genres["Tango"]="113"
genres["Samba"]="114"
genres["Folklore"]="115"
genres["Ballad"]="116"
genres["Power Ballad"]="117"
genres["Rhythmic Soul"]="118"
genres["Freestyle"]="119"
genres["Duet"]="120"
genres["Punk Rock"]="121"
genres["Drum Solo"]="122"
genres["A capella"]="123"
genres["Euro-House"]="124"
genres["Dance Hall"]="125"
genres["Goa"]="126"
genres["Drum & Bass"]="127"
genres["Club-House"]="128"
genres["Hardcore"]="129"
genres["Terror"]="130"
genres["Indie"]="131"
genres["Britpop"]="132"
genres["Negerpunk"]="133"
genres["Polsk Punk"]="134"
genres["Beat"]="135"
genres["Christian Gangsta Rap"]="136"
genres["Heavy Metal"]="137"
genres["Black Metal"]="138"
genres["Crossover"]="139"
genres["Contemporary Christian"]="140"
genres["Christian Rock"]="141"
genres["Merengue"]="142"
genres["Salsa"]="143"
genres["Thrash Metal"]="144"
genres["Anime"]="145"
genres["JPop"]="146"
genres["Synthpop"]="147"

begin
  f = File.new "info.txt", "r"
  trackNames = Array.new()
  trackNames[0] = ''
  artist = String.new()
  album = String.new()
  year = String.new()
  genre_num = "255"
  genre_txt = "Unknown"

  f.each_line() {|l|
    l.chomp
    if l =~ %r'\Atrack (\d+): (.*)\Z'
      trackNo = $1.to_i
      name = $2
      trackNames[trackNo] = name
    elsif l =~ %r'\Aartist: (.*)\Z'
      artist = $1
    elsif l =~ %r'\Atitle: (.*)\Z'
      album = $1
    elsif l =~ %r'\Ayear: (.*)\Z'
      year = $1
    elsif l =~ %r'\Agenre: (.*)\Z'
      genre_txt = $1.capitalize
      genre_num = genres[genre_txt]
      if genre_num.nil?
          genre_num = "255"
          genre_txt = "Unknown"
      end
    end
  }
  files = Dir.glob("track[0-9][0-9].cdda.*")
  if files.size != 0
      motif = %r'track(\d{2}).cdda.(.*)\Z'
  else
      files = Dir.glob("[0-9][0-9]*")
      motif = %r'\A(\d{2}).*\.(mp3|ogg|flac)\Z'
  end
  files.each { |file|
    trackNo = file.sub(motif,'\1').to_i
    fileExtension = $2
    if not (fileExtension =~ %r'\A(mp3|ogg|flac)\Z')
      $stderr.print "Error: unknown file extension: #{fileExtension}\n"
      next
    end
    track = trackNames[trackNo]
    t = track.clone
    t.gsub!(%r'[\x00-\x1f]', '')
    t.gsub!(%r' +', '_')
    t.gsub!(%r'/+', '-')
    t.gsub!(%r'_([-:.,;])_', '\1')
    t.gsub!(%r'_([-:.,;])', '\1')
    t.gsub!(%r'([-:.,;])_', '\1')
    t.gsub!(%r'-+', '-')
    t.gsub!(%r'[éèëê]', 'e')
    t.gsub!(%r'[ÉÈÊË]', 'E')
    t.gsub!(%r'[àâä]', 'a')
    t.gsub!(%r'[ÀÂÄ]', 'A')
    t.gsub!(%r'[ïî]', 'i')
    t.gsub!(%r'[ÏÎ]', 'I')
    t.gsub!(%r'[öô]', 'o')
    t.gsub!(%r'[ÖÔ]', 'O')
    t.gsub!(%r'[üûù]', 'u')
    t.gsub!(%r'[ÜÛÙ]', 'U')
    t.gsub!(%r'_{2,}', '_')
    name = sprintf("%02d_%s.%s", trackNo, t, fileExtension)
    if File.exist?(name)
      $stderr.print "File \"#{name}\" exists!\n"
    else
      File.rename(file, name)
    end
    begin
      case fileExtension
      when 'flac'
        system "metaflac", "--remove-all-tags", name
        system("metaflac", "--set-tag=ALBUM=#{album}",
              "--set-tag=ARTIST=#{artist}", "--set-tag=DATE=#{year}",
              "--set-tag=TRACKNUMBER=#{trackNo}",
              "--set-tag=TITLE=#{track}", "--set-tag=GENRE=#{genre_txt}", name)
      when 'ogg'
        system("vorbiscomment", "-w", name, "-t", "ARTIST=#{artist}", "-t",
           "ALBUM=#{album}", "-t", "DATE=#{year}", "-t",
           "TRACKNUMBER=#{trackNo}", "-t" "TITLE=#{track}", "-t",
              "GENRE=#{genre_txt}")
      when 'mp3'
        system 'id3v2', '--delete-all', name
        system("id3v2", "--album", album, "--artist", artist, "--song",
          track, "--year", year, "--track", trackNo.to_s, "--genre", genre_num,
          name)
      end  
    rescue SystemCallError => err
      $stderr.print "#{err}\n"
    end
  }

rescue SystemCallError => err
  $stderr.print "IO failed ! : ", err, "\n"
  exit 1
ensure
  f.close
end
 


Ce script existe car tous les cd ne sont pas dans la base gnudb. Quand ça se produit je créer un fichier
info.txt à la main. Puis je lance ce script. Malheureusement, ruby est assez susceptible avec les caractères
qui ne sont pas utf8 et le programme va alors planter (lamentable !). Et donc, il ne peut pas servir
pour renomer des fichiers qui sont été écrits en latin1 vers utf8. Mais il y a une astuce. Si je me trouve dans
ce cas j'utilise rename qui va permettre de renommer les fichiers pour supprimer tous les caractères non ascii.
Bref, ce n'est pas la panacée, mais j'ai la flemme de faire un programme plus résistant que je devrais faire
dans un autre langage que perl ou ruby (mais ce n'est pas un soucis pour moi).

Voilà je vous les donne comme ils sont. Et vous pouvez en faire ce que bon vous semble.

En ligne

#12 13-04-2021 12:12:55

enicar
Membre
Lieu : pas ici
Distrib. : sid
Noyau : Linux 6.5.3
(G)UI : openbox
Inscription : 26-08-2010

Re : [Résolu] Extraction Automatique CD audio + Encodage

Tawal a écrit :

Pas de cli pour xcfa, et pas d'option GUI pour automatiser.


Remarque le programme xcfa_cli doit faire partie du paquet xcfa.
En ce qui concerne l'automatisation, c'est possible. Il faut sélectionner l'onglet CD.
Puis, correctement paramétrer la db à utiliser avec gnudb.gnub.org. On clique sur le
champ mp3, pour dire de convertir toutes les pistes en mp3, on peut régler la qualité du mp3
dans preferences… Dans l'onglet CD, on peut sélectionner le dossier destination et enfin lancer
l'extraction avec le bouton qui porte ce nom.

En ligne

#13 13-04-2021 12:15:42

Tawal
Membre
Distrib. : Debian Stable à jour
Noyau : amd64
(G)UI : Xfce
Inscription : 25-02-2021

Re : [Résolu] Extraction Automatique CD audio + Encodage

Triple post ops.gif Bah non le temps d'écrire le message ...
Mais j'avance.

Extraction, Encodage, Tagage, Renommage, Arborescence, Qualité : OK
Toujours avec abcde, j'ai modifié le fichier ~/.abcde.conf qui est une copie de /etc/abcde.conf en dé-commentant ces variables et en les affectant :

CDDBMETHOD=musicbrainz,cdtext
CDDBPROTO=6
LAMEOPTS="-V 0"
EYED3OPTS="--non-std-genres"
OUTPUTTYPE=mp3
OUTPUTFORMAT='${ARTISTFILE}/${ALBUMFILE}/${TRACKNUM}.${TRACKFILE}'
ONETRACKOUTPUTFORMAT=$OUTPUTFORMAT

Avec
CDDBMETHOD = méthode de récupération des infos disque
CDDBPROTO = Choisir UTF-8
LAMEOPTS = passer une option à lame, ici -V 0 (245kB/s) mini
EYED3OPTS = éviter l'erreur (stoppante) sur le genre (qui est vide souvent) lors du tagage du fichier.
OUTPUTYPE = le type de format en sortie
OUTPUTFORMAT = le formatage et l'arborescence des fichiers en sortie
ONETRACKOUTPUTFORMAT = le formatage et l'arborescence qu'en 1 seul fichier en sortie (1 piste ou 1 fichier pour tout le disque).

Et je lance la commande suivante pour procéder :

abcde -N -a move,clean


Le -N pour la non-interactivité
Le -a pour lancer les actions move et clean
Le move pour la récupération des infos disque, l'extraction, l'encodage, le tagage, le renommage
Le clean pour supprimer les dossiers/fichiers temporaires/sauvegardes.

Vli,vlà,vloù, il ne me reste plus qu'à coder un petit script à exécuter dès l'insertion d'un CD audio smile
.

Dernière modification par Tawal (14-04-2021 06:31:22)


Comme la science n'est pas infuse, elle se diffuse.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !

Hors ligne

#14 13-04-2021 12:24:29

Tawal
Membre
Distrib. : Debian Stable à jour
Noyau : amd64
(G)UI : Xfce
Inscription : 25-02-2021

Re : [Résolu] Extraction Automatique CD audio + Encodage

enicar a écrit :

En ce qui concerne l'automatisation, c'est possible. Il faut sélectionner l'onglet CD.
Puis, correctement paramétrer la db à utiliser avec gnudb.gnub.org. On clique sur le
champ mp3, pour dire de convertir toutes les pistes en mp3, on peut régler la qualité du mp3
dans preferences… Dans l'onglet CD, on peut sélectionner le dossier destination et enfin lancer
l'extraction avec le bouton qui porte ce nom.


Justement, je voudrais m'abroger des manipulations.
Insertion CD = Dossier Musique.

Merci.


Comme la science n'est pas infuse, elle se diffuse.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !

Hors ligne

#15 13-04-2021 13:51:32

solar66
Membre
Distrib. : debian stable
Noyau : Linux 5.10.0-9-amd64
(G)UI : cinnamon
Inscription : 23-08-2016

Re : [Résolu] Extraction Automatique CD audio + Encodage

salut,
xcfa te fait tout cela,
après avoir installé xcfa, icône en haut à droite: applications externes: installer les paquets manquants,
et pour les tags:
https://doc.ubuntu-fr.org/xcfa

Freedb n'étant plus accessible, pour accéder à la base de données libre gnudb.org :
Choisir l'onglet CD en haut de la fenêtre
Tout en bas de la fenêtre, à droite de Normaliser, colonne Serveur : cliquez sur le triangle pour faire apparaître la ligne Param CDDB et dans la case à droite entrez le nom du serveur :
gnudb.gnudb.org:80/~cddb/cddb.cgi
Cliquez à nouveau sur le triangle pour faire apparaître la ligne Param PROXY et dans la case tout de suite à droite entrez le nom du proxy :
proxy.gnudb.org 
Enfin dans la case encore à droite, entrez le port du proxy :
3128



et lorsque xcfa ne  trouve pas tu peux essayer:  musicbrainz picard

apt install picard

Dernière modification par solar66 (13-04-2021 13:55:51)

Hors ligne

#16 13-04-2021 14:23:22

Tawal
Membre
Distrib. : Debian Stable à jour
Noyau : amd64
(G)UI : Xfce
Inscription : 25-02-2021

Re : [Résolu] Extraction Automatique CD audio + Encodage

Le principe que je veux obtenir (sur le point d'aboutir à mon avis) :
À l'insertion d'un CD audio dans le lecteur, ne pas avoir à ouvrir manuellement une appli quelconque pour extraire ou pas.
Je veux, si les données disque sont accessibles/présentes, lancer l'extraction, encodage ...
Si il n'y a pas de données disque, alors dans ce cas basculer dans une GUI quelconque de bonne facture (donc pas Sound Juicer car la qualité mp3 n'est pas au rendez-vous)

J'ai vraiment avancé dans mon investigation avec abcde.
Je fignole quelques réglages, fais différents tests sur différents CD audio (reconnu, non-reconnu, venant de l'étranger etc ...)
Et puis j'écris un petit script et vous donne un retour wink

Edit:
C'est déjà pas mal, voire bon smile

shopt -s globstar; ls -1 ./**/*


'Arthur H/Fête trouble/01.John la reine des pommes.mp3'
'Arthur H/Fête trouble/02.Onirique attaque.mp3'
'Arthur H/Fête trouble/03.Petite reine.mp3'
'Arthur H/Fête trouble/04.Le Premier Pas.mp3'
"Arthur H/Fête trouble/05.La Lionne et l'Éléphant.mp3"
'Arthur H/Fête trouble/06.La Tour Eiffel sidérale.mp3'
"Arthur H/Fête trouble/07.La Garde de nuit à l'Yser.mp3"
'Arthur H/Fête trouble/08.La Télé.mp3'
'Arthur H/Fête trouble/09.Trouble fête.mp3'
'Arthur H/Fête trouble/10.Good Bye My Friend.mp3'

'Arthur H':
'Fête trouble'

'Arthur H/Fête trouble':
'01.John la reine des pommes.mp3'
'02.Onirique attaque.mp3'
'03.Petite reine.mp3'
'04.Le Premier Pas.mp3'
"05.La Lionne et l'Éléphant.mp3"
'06.La Tour Eiffel sidérale.mp3'
"07.La Garde de nuit à l'Yser.mp3"
'08.La Télé.mp3'
'09.Trouble fête.mp3'
'10.Good Bye My Friend.mp3'

Dernière modification par Tawal (13-04-2021 14:28:23)


Comme la science n'est pas infuse, elle se diffuse.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !

Hors ligne

#17 13-04-2021 16:20:14

saitama-san
Membre
Inscription : 28-07-2019

Re : [Résolu] Extraction Automatique CD audio + Encodage

pour les tags et renommage : https://packages.debian.org/buster/picard
je ne sais pas si ça répond à ton besoin mais le logiciel est vraiment puissant

Hors ligne

#18 13-04-2021 17:41:56

Anonyme
Invité

Re : [Résolu] Extraction Automatique CD audio + Encodage

Bonjour,

le mien qui fait pas mal de choses  automatiquement: ( 3 choix freedb, sauvegarde et correction du fichier toc, sauvegarde wav + cue, rip single flac (tagué) + séparation en multi flacs (tagués), sauvegarde du CDDB, choix perso du title s'il ne plait pas avec injection de celui-ci dans le fichier toc, création du fichier m3u ... )

pour yatoc2cue, il faudra l'installer à la mano par contre, c'est le seul hic mais il est plus abouti hmm
https://sourceforge.net/projects/yatoctocue/

à mettre dans:


/usr/bin/
ou
/usr/local/bin/
 






yatoc2cue présent, on peut donc continuer.
CD Audio détecté.

Différents titres vous sont proposés:
1.  Renaud - Putain de camion ====> sur le site freac.org
2.  Renaud - Putain de camion ====> sur le site gnudb.org
3.  Renaud - Putain de camion ====> sur le site dbpoweramp.com

Entrer votre choix, 0 pour quitter:
 




Entrer votre choix, 0 pour quitter: 1

Le nom de l'album sera donc: Renaud - Putain de camion
Confirmé vous ce choix ? [Y/n]
 




Oui
cdparanoia III release 10.2 (September 11, 2008)

 

Attempting to set speed to 48x...
Ripping from sector      32 (track  1 [0:00.00])
    to sector  231976 (track 12 [5:02.31])

outputting to Renaud - Putain de camion.wav

 (== PROGRESS == [>                             | 003631 00 ] == :^D O ==)
 





OK, Rip terminé!
On cherche l'info sur freedb.freac.org
 




Cdrdao version 1.2.4 - (C) Andreas Mueller <andreas@daneb.de>
/dev/sr0: PLEXTOR DVDR   PX-880SA Rev: 1.12
Using driver: Generic SCSI-3/MMC - Version 2.0 (options 0x20000)

Reading toc data...

Track   Mode    Flags  Start                Length
------------------------------------------------------------
 1      AUDIO   0      00:00:32(    32)     05:00:63( 22563)
 2      AUDIO   0      05:01:20( 22595)     02:56:05( 13205)
 3      AUDIO   0      07:57:25( 35800)     05:10:00( 23250)
 4      AUDIO   0      13:07:25( 59050)     06:15:45( 28170)
 5      AUDIO   0      19:22:70( 87220)     04:42:00( 21150)
 6      AUDIO   0      24:04:70(108370)     02:10:12(  9762)
 7      AUDIO   0      26:15:07(118132)     04:01:40( 18115)
 8      AUDIO   0      30:16:47(136247)     02:54:20( 13070)
 9      AUDIO   0      33:10:67(149317)     03:40:25( 16525)
10      AUDIO   0      36:51:17(165842)     04:42:15( 21165)
11      AUDIO   0      41:33:32(187007)     04:57:13( 22288)
12      AUDIO   0      46:30:45(209295)     05:02:32( 22682)
Leadout AUDIO   0      51:33:02(231977)

PQ sub-channel reading (audio track) is supported, data format is BCD.
Raw P-W sub-channel reading (audio track) is supported.
Cooked R-W sub-channel reading (audio track) is supported.
Analyzing track 01 (AUDIO): start 00:00:32, length 05:00:63...
Found pre-gap: 00:00:32
Analyzing track 02 (AUDIO): start 05:01:20, length 02:56:05...
Analyzing track 03 (AUDIO): start 07:57:25, length 05:10:00...
Analyzing track 04 (AUDIO): start 13:07:25, length 06:15:45...
Analyzing track 05 (AUDIO): start 19:22:70, length 04:42:00...
Analyzing track 06 (AUDIO): start 24:04:70, length 02:10:12...
Analyzing track 07 (AUDIO): start 26:15:07, length 04:01:40...
Analyzing track 08 (AUDIO): start 30:16:47, length 02:54:20...
Analyzing track 09 (AUDIO): start 33:10:67, length 03:40:25...
Analyzing track 10 (AUDIO): start 36:51:17, length 04:42:15...
Analyzing track 11 (AUDIO): start 41:33:32, length 04:57:13...
Analyzing track 12 (AUDIO): start 46:30:45, length 05:02:32...
         
CDDB: Connecting to http://freedb.freac.org:80/~cddb/cddb.cgi ...
CDDB: Ok.
Reading CDDB record for: ba0c150c-data-Renaud / Putain de camion
CDDB: Connecting to http://freedb.freac.org:80/~cddb/cddb.cgi ...
CDDB: Ok.
CD-TEXT data was added to toc-file.
Reading of toc data finished successfully.
 




Le fichier toc ne contient pas de messages trop longs ...
Slash de type AC/DC non détecté...
Le fichier CDDB à le bon encodage UTF-8.
 




flac 1.3.3
Copyright (C) 2000-2009  Josh Coalson, 2011-2016  Xiph.Org Foundation
flac comes with ABSOLUTELY NO WARRANTY.  This is free software, and you are
welcome to redistribute it under certain conditions.  Type `flac' for details.

Renaud - Putain de camion.wav: wrote 315371117 bytes, ratio=0,578
Splitting [Renaud - Putain de camion/Renaud - Putain de camion.flac] (51:32.45) --> [Renaud - Putain de camion/FLACS/split-track01.flac] (5:00.63) : 100% OK
Splitting [Renaud - Putain de camion/Renaud - Putain de camion.flac] (51:32.45) --> [Renaud - Putain de camion/FLACS/split-track02.flac] (2:56.05) : 100% OK
Splitting [Renaud - Putain de camion/Renaud - Putain de camion.flac] (51:32.45) --> [Renaud - Putain de camion/FLACS/split-track03.flac] (5:10.00) : 100% OK
Splitting [Renaud - Putain de camion/Renaud - Putain de camion.flac] (51:32.45) --> [Renaud - Putain de camion/FLACS/split-track04.flac] (6:15.45) : 100% OK
Splitting [Renaud - Putain de camion/Renaud - Putain de camion.flac] (51:32.45) --> [Renaud - Putain de camion/FLACS/split-track05.flac] (4:42.00) : 100% OK
Splitting [Renaud - Putain de camion/Renaud - Putain de camion.flac] (51:32.45) --> [Renaud - Putain de camion/FLACS/split-track06.flac] (2:10.12) : 100% OK
Splitting [Renaud - Putain de camion/Renaud - Putain de camion.flac] (51:32.45) --> [Renaud - Putain de camion/FLACS/split-track07.flac] (4:01.40) : 100% OK
Splitting [Renaud - Putain de camion/Renaud - Putain de camion.flac] (51:32.45) --> [Renaud - Putain de camion/FLACS/split-track08.flac] (2:54.20) : 100% OK
Splitting [Renaud - Putain de camion/Renaud - Putain de camion.flac] (51:32.45) --> [Renaud - Putain de camion/FLACS/split-track09.flac] (3:40.25) : 100% OK
Splitting [Renaud - Putain de camion/Renaud - Putain de camion.flac] (51:32.45) --> [Renaud - Putain de camion/FLACS/split-track10.flac] (4:42.15) : 100% OK
Splitting [Renaud - Putain de camion/Renaud - Putain de camion.flac] (51:32.45) --> [Renaud - Putain de camion/FLACS/split-track11.flac] (4:57.13) : 100% OK
Splitting [Renaud - Putain de camion/Renaud - Putain de camion.flac] (51:32.45) --> [Renaud - Putain de camion/FLACS/split-track12.flac] (5:02.32) : 100% OK
 




ID=arch
On est sous Archlinux, on utilise la commande cuetag.sh
 




Le fichier Renaud - Putain de camion/FLACS/split-track01.flac a bien été renommé avec son numéro, ainsi que son titre:
01 - Jonathan.flac


Le fichier Renaud - Putain de camion/FLACS/split-track02.flac a bien été renommé avec son numéro, ainsi que son titre:
02 - Il pleut.flac


Le fichier Renaud - Putain de camion/FLACS/split-track03.flac a bien été renommé avec son numéro, ainsi que son titre:
03 - La Mère à Titi.flac


Le fichier Renaud - Putain de camion/FLACS/split-track04.flac a bien été renommé avec son numéro, ainsi que son titre:
04 - Triviale poursuite.flac


Le fichier Renaud - Putain de camion/FLACS/split-track05.flac a bien été renommé avec son numéro, ainsi que son titre:
05 - Me jette pas.flac


Le fichier Renaud - Putain de camion/FLACS/split-track06.flac a bien été renommé avec son numéro, ainsi que son titre:
06 - Rouge-gorge.flac


Le fichier Renaud - Putain de camion/FLACS/split-track07.flac a bien été renommé avec son numéro, ainsi que son titre:
07 - Allongés sous les vagues.flac


Le fichier Renaud - Putain de camion/FLACS/split-track08.flac a bien été renommé avec son numéro, ainsi que son titre:
08 - Cent ans.flac


Le fichier Renaud - Putain de camion/FLACS/split-track09.flac a bien été renommé avec son numéro, ainsi que son titre:
09 - Socialiste.flac


Le fichier Renaud - Putain de camion/FLACS/split-track10.flac a bien été renommé avec son numéro, ainsi que son titre:
10 - Petite.flac


Le fichier Renaud - Putain de camion/FLACS/split-track11.flac a bien été renommé avec son numéro, ainsi que son titre:
11 - Chanson dégueulasse.flac


Le fichier Renaud - Putain de camion/FLACS/split-track12.flac a bien été renommé avec son numéro, ainsi que son titre:
12 - Putain de camion.flac

 




Temps total écoulé: 00:03:12  (HH:MM:SS)




Contenu :


├── [ 646]  ba0c150c
├── [332M]  FLACS
│   ├── [ 34M]  01 - Jonathan.flac
│   ├── [ 16M]  02 - Il pleut.flac
│   ├── [ 34M]  03 - La Mère à Titi.flac
│   ├── [ 41M]  04 - Triviale poursuite.flac
│   ├── [ 29M]  05 - Me jette pas.flac
│   ├── [ 13M]  06 - Rouge-gorge.flac
│   ├── [ 28M]  07 - Allongés sous les vagues.flac
│   ├── [ 18M]  08 - Cent ans.flac
│   ├── [ 27M]  09 - Socialiste.flac
│   ├── [ 30M]  10 - Petite.flac
│   ├── [ 35M]  11 - Chanson dégueulasse.flac
│   ├── [ 29M]  12 - Putain de camion.flac
│   └── [ 708]  Renaud - Putain de camion.m3u
├── [1,2K]  Renaud - Putain de camion.cue
├── [301M]  Renaud - Putain de camion.flac
├── [ 528]  Renaud - Putain de camion.tags
├── [2,3K]  Renaud - Putain de camion.toc
├── [520M]  Renaud - Putain de camion.wav
└── [ 499]  toc2tag.pl

 1.1G used in 1 directory, 20 files
 



https://debian-facile.org/viewtopic.php?id=28296

Voilà, si cela peut aider wink
toute ma collection de Cds est passée sans problème.

Dernière modification par Anonyme (15-04-2021 18:11:13)

#19 13-04-2021 21:12:59

Tawal
Membre
Distrib. : Debian Stable à jour
Noyau : amd64
(G)UI : Xfce
Inscription : 25-02-2021

Re : [Résolu] Extraction Automatique CD audio + Encodage

Merci de votre aide et autres conseils, même si j'en ai fait qu'à ma tête big_smile

J'ai persévéré dans la voie abcde et j'ai abouti à un résultat plutôt satisfaisant.

Si des données disque sont trouvées, l'extraction, l'encodage, le tagage, le renommage avec arborescence se font automatiquement.
Si aucune donnée n'est trouvée, alors lancement d'asunder et gestion manuelle.
Et ce, à l'insertion d'un disque audio dans le lecteur.

Je récapitule ma solution :

  • Installation d'asunder

  • Installation d'abcde

  • Installation d'eyed3 (pour le tagage)

  • Configuration d'abcde (voir plus bas)

  • Écriture d'un script pour l'automatisation



La configuration d'abcde :
Copier le fichier /etc/abcde.conf dans /home/$USER et cacher le fichier.

cp /etc/abcde.conf /home/$USER/.abcde.conf


Puis modifier ces variables dans le fichier /home/$USER/.abcde.conf

CDDBMETHOD=musicbrainz,cdtext
CDDBPROTO=6
LAMEOPTS="-V 0"
EYED3OPTS="--non-std-genres"
OUTPUTDIR=/media/Datas_250Go/Musiques/A_Ranger
WAVOUTPUTDIR=/tmp
OUTPUTTYPE=mp3
OUTPUTFORMAT='${ARTISTFILE}/${ALBUMFILE}/${TRACKNUM}.${TRACKFILE}'
ONETRACKOUTPUTFORMAT=$OUTPUTFORMAT

La variable WAVOUTPUDIR=tmp est importante pour le script ci-dessous.

Et toujours dans le fichier /home/$USER/.abcde.conf, j'ai activée en la modifiant une fonction mungefilename() :

mungefilename ()
{
    echo "$@" | sed 's/[:\/]/ /g; s/ [ ]*/ /g; s/^ *//; s/ *$//'
}

Pour garder tous les caractères possibles dans les titres.

Ensuite j'ai écris ce tout petit script pour automatiser tout ça :

#!/bin/bash

abcde -N -a cddb

if [ "$(find /tmp/abcde.* -type f -name "cddbread.0")" ]
then
    abcde -N -a clean
    asunder &
    disown %1
else
    abcde -N -a move,clean -x
fi

exit


On lance abcde pour obtenir (ou pas) les données CD.
On teste la présence du fichier cddbread.0, c'est lui qui détermine (extérieurement à abcde) si des données CD ont étés trouvées.
Si ce fichier est présent alors pas de données CD sinon c'est un fichier cddbread.1 2 3 ... qui est créé avec les  données trouvées.
Donc si ce fichier est trouvé, on nettoie les dossiers temporaires d'abcde et on lance asunder.
Sinon, extraction automatique et éjection du CD à la fin de la lecture (pas de l'encodage, donc l'éjection peut se faire avant la fin du script).

On donne les droits d'exécution à ce script, et on met la commande d'exécution dans "Disques et Médias Amovibles".
Et tout roule cool

Encore merci.gif
.


Comme la science n'est pas infuse, elle se diffuse.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !

Hors ligne

#20 14-04-2021 04:58:23

Anonyme
Invité

Re : [Résolu] Extraction Automatique CD audio + Encodage

Bonjour,

j'ai du mal à comprendre l'utilisation de abcde et asunder. Ils font la même chose. C'est pas vraiment automatique tout çà ... non ? smile

#21 14-04-2021 06:17:33

Tawal
Membre
Distrib. : Debian Stable à jour
Noyau : amd64
(G)UI : Xfce
Inscription : 25-02-2021

Re : [Résolu] Extraction Automatique CD audio + Encodage

Le principe: insérer un CD et attendre !

Si des données cddb sont trouvées --> abcde qui fait tout.
Sinon, gestion manuelle via asunder.

J'ai pas envie de me retrouver avec un dossier "Artiste Inconnu", tout ça parce que l’extraction aurait été faite même sans données cddb.

Bien sûr que si c'est automatique : Si je n'insère que des CDs reconnus par MusicBrainz, je ne fais rien du tout.

Au plaissr
.

Comme la science n'est pas infuse, elle se diffuse.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !

Hors ligne

#22 14-04-2021 06:37:37

Anonyme
Invité

Re : [Résolu] Extraction Automatique CD audio + Encodage

Tawal a écrit :


J'ai pas envie de me retrouver avec un dossier "Artiste Inconnu", tout ça parce que l’extraction aurait été faite même sans données cddb.



C'est vrai, c'est pour cela que j'ai mis une option dans mon script qui me permet, ( si les infos cddb sur 3 sites différents ne font pas l'affaire), de mettre un titre qui me convient smile Mais c'est rare vu qu'on cherche sur plusieurs sites.

freedb.freac.org
gnudb.gnudb.org
freedb.dbpoweramp.com

Dernière modification par Anonyme (14-04-2021 06:44:16)

#23 14-04-2021 07:29:05

Tawal
Membre
Distrib. : Debian Stable à jour
Noyau : amd64
(G)UI : Xfce
Inscription : 25-02-2021

Re : [Résolu] Extraction Automatique CD audio + Encodage

Pour l'instant, je n'utilise que MusicBrainz, et sur la dizaine de CD déjà passés, 1 seul n'avait pas de données cddb.
Mon script a basculé sur asunder qui trouvé les données text du cd, donc quasi rien à faire, juste un coup d'oeil si tout est ok et extraction.
Bon,asunder est configuré pour encoder à mes besoins (placement des dossiers/fichiers, nommage, éjection, 245kB/s etc ...)

J'essaierai d'utiliser ces adresses que tu cites wink

Merci smile
.

Comme la science n'est pas infuse, elle se diffuse.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !

Hors ligne

#24 14-04-2021 11:32:59

Tawal
Membre
Distrib. : Debian Stable à jour
Noyau : amd64
(G)UI : Xfce
Inscription : 25-02-2021

Re : [Résolu] Extraction Automatique CD audio + Encodage

Re,

J'ai amélioré le script qui était, faut bien le dire, archaïque.
Il intègre une boucle pour parcourir les différentes adresses cddb. merci.gif à gologot200 pour les avoir fournies wink
Il y a une pop-up zenity en cas de plantage d'abcde lors de l'extraction

Le principe :
On lance abcde avec une url de cddb, on teste si il trouve, sinon on passe à l'url suivante.
Si après toutes les url, rien n'est trouvé, on tente avec MusicBrainz sinon on bascule sur asunder.
Simple mais efficace !

Le script :

#!/bin/bash

titre_zen="abcde-auto - Erreur !"
text_zen="\nUne erreur est survenue lors de l'extraction-encodage du CD.\n\nVérifiez les fichiers MP3 créés."

no_cddb=""

for i in {1..4}
do
    abcde -c /home/$USER/.abcde-$i-* -N -a cddb
   
    if [ "$(find /tmp/abcde.* -type f -name "cddbread.0")" ]
    then
        abcde -N -a clean
        no_cddb="OK"
        continue
    else
        abcde -N -a move,clean -x || zenity --error --width 250 --title "$titre_zen" --text "$text_zen"
        no_cddb=""
        break
    fi
done


if [ "$no_cddb" ]
then
    asunder &
    disown %1
fi

exit


Avec dans le ~/.abcde.conf :

CDDBMETHOD=cddb

Plus de musicbrainz dans la config, c'est moi qui choisis de l'utiliser (ou pas) par la ligne de commande.
La ligne CDDBURL est commentée aussi (c'est pas la peine, normalement, la variable passée à la commande écrase celle lue dans le fichier, mais bon)

PS: L'ordre des url est importante puisqu'à la première qui trouve, on extrait avec ces données.
J'ai fait plusieurs tests avec différents albums (des doubles cd, ...) et c'est gnudb.gnudb.org qui me convient le mieux.
Mais au cas où il n'y aurait pas retour, on scrute avec les autres wink

Merci à vous encore merci.gif

Edit: Modification du script, l'ancien ne fonctionnait pas ops.gif
En fait, le fait de passer la variable à la commande n'écrasait pas celle de la config.
Donc, j'ai fait plusieurs copies du fichier ~/.abcde.conf (1 par url, méthode) que j'ai nommées comme ceci :

  1. .abcde-1-gnu.conf

  2. .abcde-2-freac.conf

  3. .abcde-3-poweramp.conf

  4. .abcde-4-musicbrainz.conf

J'ai enlevé toutes lignes inutiles.
Ensuite, je fais appel ces fichiers par la commande abcde -c fichier ...
Dont voici le contenu du 1er (gnu) :

CDDBMETHOD=cddb
CDDBURL="http://gnudb.gnudb.org/~cddb/cddb.cgi"
CDDBPROTO=6
LAMEOPTS="-V 0"
EYED3OPTS="--non-std-genres"
OUTPUTDIR=/media/Datas_250Go/Musiques/A_Ranger
WAVOUTPUTDIR=/tmp
OUTPUTTYPE=mp3
OUTPUTFORMAT='${ARTISTFILE}/${ALBUMFILE}/${TRACKNUM}.${TRACKFILE}'
ONETRACKOUTPUTFORMAT=$OUTPUTFORMAT
MAXPROCS=2

mungefilename ()
{
    echo "$@" | sed 's/[:\/]/ /g; s/ [ ]*/ /g; s/^ *//; s/ *$//'
}

Pour "MusicBrainz", il faut enlever la ligne CDDBURL et changer CDDBMETHOD=cddb en CDDBMETHOD=musicbrainz

Voilà, petit correctif et c'est fonctionnel smile
.

Dernière modification par Tawal (14-04-2021 13:21:24)


Comme la science n'est pas infuse, elle se diffuse.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !

Hors ligne

#25 14-04-2021 17:43:21

Anonyme
Invité

Re : [Résolu] Extraction Automatique CD audio + Encodage

Re,

si tu tombes par hasard sur un cd-audio avec protection et abcde, fais moi un petit retour wink

Pied de page des forums