python + FreeDB = sant (original) (raw)
Eftersom jag aldrig lyckats hitta någon CD-ripper som jag varit nöjd med (undantaget EAC, på den tiden jag körde proprietärt), rippar jag väldigt old-school. Jag är å andra sidan snart 40, så jag kanske är förlåten.
Rippa gör jag med cdparanoia och kodar gör jag med lame i konsollen. Det jobbiga har varit att skriva in låttitlarna på mp3-filerna, för det har jag gjort helt och hållet för hand.
Häromdagen kom jag på att jag skulle testa om det gick att använda python för att hämta album-data från CDDB/FreeDB. Och visst gick det. Genom att installera python-cddb får man tillgång till alla de klasser man behöver för att hämta data för ett album. Tack vare README och det här exemplet snodde jag ihop ett litet script som hämtar data från FreeDB:
import CDDB, DiscID
def print_disc(read_info, tracks):
print "\n%s\n" % read_info['DTITLE']
for i in range(tracks):
print "%0.2d - %s" % (i + 1, read_info['TTITLE' + i])
return
cdrom = DiscID.open("/dev/cdrom3")
disc_id = DiscID.disc_id(cdrom)
(query_status, query_info) = CDDB.query(disc_id)
if type(query_info).name == 'list': for x in range(len(query_info)): (read_status, read_info) = CDDB.read(query_info[x]['category'],query_info[x]['disc_id']) print_disc(read_info, disc_id[1]) print '------------------------------------------'
else: (read_status, read_info) = CDDB.read(query_info['category'],query_info['disc_id']) print_disc(read_info, disc_id[1])
Scriptet slår upp diskens id och skriver ut alla låtar på de skivor som matchar (ibland är det inte bara en träff). Allt detta med några få kodrader. Jag minns med fasa när jag gjorde samma sak i VB (usch och fy)! Imponerande måste jag säga.
Innehållet på skivan skrivs alltså ut i konsollen. Där kopierar jag texten och klistrar in i en ny emacs-buffer. Då kan jag också göra ev. ändringar i texten. Sedan sparar jag det hela i en ny fil, ex. titles.txt.
Och slutligen användare jag wavren för att döpa om filerna enligt vad som står i filen titles.txt.
Old school – visst, men med full kontroll!
This entry was posted on 20 september 2009 at 22:22 and is filed under Datorer. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.