ReLoad

Thierry Jaouen ~ WikiBlog
"Rien à foutre d'être lu, tant que je peux me relire."

Outils pour utilisateurs

Outils du site


blog:2012:09:22:cddb

Table des matières

CDDB

Créé une entrée CDDB localement et la mettre en ligne pour le reste du Monde…

CDDB = base de données des CD

~~READMORE~~

introduction

J'ai recu un (double) CD : Devin Townsend Project - Epicloud - Special Edition

… et je tape la commande magique pour le ripper:

 $ abcde -a cddb,read,encode,tag,move,playlist,clean -d /dev/cdrom -o mp3:'--preset extreme' -V -x

Mais cddb n'étant pas à jour , me voila bien triste avec ça:

Executing customizable pre-read function... done.
Getting CD track info... Querying the CD for audio tracks...
Grabbing entire CD - tracks: 01 02 03 04 05 06 07 08 09 10 11 12 13
Checking CDDB server status...
Querying the CDDB server...
Obtaining CDDB results...
No CDDB match.
---- Unknown Artist / Unknown Album ----
1: Track 1
2: Track 2
3: Track 3
4: Track 4
5: Track 5
6: Track 6
7: Track 7
8: Track 8
9: Track 9
10: Track 10
11: Track 11
12: Track 12
13: Track 13

Edit selected CDDB data? [y/n] (y): 

“No CDDB match” !

Bon, on va faire ça nous-même.

localement

On va créer “localement” le fichier qui va bien.

D'abord, prendre l'empreinte du disk, au sens cddb:

$ cd-discid /dev/cdrom
aa0bb60d 13 150 3424 20910 35999 51047 71523 89663 114346 129145 156805 175149 180167 197970 3000

Ceci fait, extraire un template du disk:

$ cddb-tool template `cd-discid /dev/cdrom` > epicloud-disk-template.txt

Voila ce que contient le fichier:

$ cat epicloud-disk-template.txt 
# xmcd CD database file
#
# Track frame offsets:
#       150
#       3424
#       20910
#       35999
#       51047
#       71523
#       89663
#       114346
#       129145
#       156805
#       175149
#       180167
#       197970
#
# Disc length: 3000 seconds
#
# Submitted via: cddb-tool 0.4.7
#
#blues,classical,country,data,folk,jazz,newage,reggae,rock,soundtrack,misc
#CATEGORY=misc
DISCID=aa0bb60d
DTITLE=Unknown Artist / Unknown Album
DYEAR=
DGENRE=
TTITLE0=Track 1
TTITLE1=Track 2
TTITLE2=Track 3
TTITLE3=Track 4
TTITLE4=Track 5
TTITLE5=Track 6
TTITLE6=Track 7
TTITLE7=Track 8
TTITLE8=Track 9
TTITLE9=Track 10
TTITLE10=Track 11
TTITLE11=Track 12
TTITLE12=Track 13
EXTD=
EXTT0=
EXTT1=
EXTT2=
EXTT3=
EXTT4=
EXTT5=
EXTT6=
EXTT7=
EXTT8=
EXTT9=
EXTT10=
EXTT11=
EXTT12=
PLAYORDER=

Le corriger à la main pour avoir (juste les modifications faites):

#CATEGORY=jazz
DTITLE=The Devin Townsend Project / Epicloud
DYEAR=2012
DGENRE=Metal
TTITLE0=Effervescent!
TTITLE1=True North
TTITLE2=Lucky Animals
TTITLE3=Liberation
TTITLE4=Where We Belong
TTITLE5=Save Our Now
TTITLE6=Kingdom
TTITLE7=Divine
TTITLE8=Grace
TTITLE9=More!
TTITLE10=Lessons
TTITLE11=Hold On
TTITLE12=Angel

Maintenant, copier jusdicieusement ce fichier dans: ~/.cddb/ , par exemple:

$ mkdir -p ~/.cddb/local
$ cp epicloud-disk-template.txt /home/thierry/.cddb/local/aa0bb60d
:!: le nom du fichier final est le DISCID (voir plus haut)

Le répertoire .cddb peut déjà exister et contenir des informations.

J'ai choisit le sous répertoire “local” au hasard.

Maintenant, il suffit de relancer la commande magique pour ripper , mais en ajoutant -L pour “local”.

$ abcde -a cddb,read,encode,tag,move,playlist,clean -d /dev/cdrom -o mp3:'--preset extreme' -V -x -L
Executing customizable pre-read function... done.
Getting CD track info... Querying the CD for audio tracks...
Grabbing entire CD - tracks: 01 02 03 04 05 06 07 08 09 10 11 12 13
---- The Devin Townsend Project / Epicloud ----
Year: 2012
Genre: Metal
1: Effervescent!
2: True North
3: Lucky Animals
4: Liberation
5: Where We Belong
6: Save Our Now
7: Kingdom
8: Divine
9: Grace
10: More!
11: Lessons
12: Hold On
13: Angel
Locally cached CDDB entry found, use it? [y/n] (y): 

Etc…

Voila.

:!: #CATEGORY=jazz non, pas vraiment : voir la suite

freedb.org

Bien sur, on peut rendre public les fichiers qu'on a créé.

Pour cela, on peut les soumettre a: www.freedb.org

Mais il y a un petit problème a connaitre:

  • le protocole d'identification des disques est tellement simple qu'il ne créé pas d'identifiant unique.
    (Les “collisions” sont fréquentes)
  • freedb a prévu 11 catégories : ni plus , ni moins.

Or, un CD est identifié par son “DISCID” et sa “CATEGORY” .

Si on reprend l'exemple plus haut, le disque ID “aa0bb60d” est déjà présent dans:

D'où le choix de la catégorie jazz !!!

Il faut envoyer le contenu de la “template cddb” (un à la fois) à l'adresse mail: freedb-submit@freedb.org

… et avoir pour sujet de mail: cddb <CATEGORY> <DISCID>

Exemple: cddb jazz aa0bb60d

Exemple complet (enfin presque):

From: Thierry Jaouen <xxxxxxxx@xxxxx.xx>
To: freedb-submit@freedb.org
Subject: cddb jazz aa0bb60d

# xmcd CD database file
#
# Track frame offsets:
#       150
#       3424
#       20910
#       35999
#       51047
#       71523
#       89663
#       114346
#       129145
#       156805
#       175149
#       180167
#       197970
#
# Disc length: 3000 seconds
#
# Submitted via: cddb-tool 0.4.7
#
#blues,classical,country,data,folk,jazz,newage,reggae,rock,soundtrack,misc
#CATEGORY=jazz
DISCID=aa0bb60d
DTITLE=The Devin Townsend Project / Epicloud
DYEAR=2012
DGENRE=Metal
TTITLE0=Effervescent!
TTITLE1=True North
TTITLE2=Lucky Animals
TTITLE3=Liberation
TTITLE4=Where We Belong
TTITLE5=Save Our Now
TTITLE6=Kingdom
TTITLE7=Divine
TTITLE8=Grace
TTITLE9=More!
TTITLE10=Lessons
TTITLE11=Hold On
TTITLE12=Angel
EXTD=
EXTT0=
EXTT1=
EXTT2=
EXTT3=
EXTT4=
EXTT5=
EXTT6=
EXTT7=
EXTT8=
EXTT9=
EXTT10=
EXTT11=
EXTT12=
PLAYORDER=

Quelques minutes plus tard, le résultat est là: http://www.freedb.org/freedb/jazz/aa0bb60d

Voila.

blog/2012/09/22/cddb.txt · Dernière modification: 2012/09/23 14:21 par thierry