The freedb service is closed!

Why has no one informed me of this? :slight_smile:

I tried to rip a new CD with Python Audio Tools today, and it can’t get to freedb.freedb.org to get the metadata. I looked around, and apparently freedb is no more:

https://news.ycombinator.com/item?id=21902652

Yes, any software that relies on cloud provided services to function is ultimately doomed. Oh, wait a minute… :scream: :rofl:

4 Likes

I also found this out the hard way during the weekend. My CD Player extension relies on a tool called icedax that in turn relies on freedb for metadata.

At hydrogenaudio I read about a replacement hosted by dBpoweramp (http://freedb.dbpoweramp.com/~cddb/cddb.cgi), but I could not get this working with icedax.

For the extension my current strategy is to move over to MusicBrainz.

Yup - seems the post is 7 months old now. Pity. :disappointed:

1 Like

I wound up using the Discogs metadata, via a tool called discogs-tagger. Time to license SongKong, I think.

With Python Audio Tools, it’s pretty easy to redirect to the dbpoweramp clone of freedb. You put a file called .audiotools.cfg (note the leading period) in your home directory, with the lines:

[FreeDB]

server: freedb.dbpoweramp.com
1 Like

I’m a bit surprised at this, Jan. The Python Audio Tools uses that URL internally. I don’t know if this is any help to you, but here’s the Python code that generates the request:

# generate query to post with arguments in specific order
if len(args) > 0:
    POST.append((u"cmd", u"cddb %s %s" % (cmd, " ".join(args))))
else:
    POST.append((u"cmd", u"cddb %s" % (cmd)))

if PY3:
    POST.append((u"hello",
                 u"user %s %s %s" % (getfqdn(),
                                     u"audiotools",
                                     VERSION)))
else:
    POST.append((u"hello",
                 u"user %s %s %s" % (getfqdn().decode("UTF-8", "replace"),
                                     u"audiotools",
                                     VERSION.decode("ascii"))))

POST.append((u"proto", u"6"))

# get Request object from post
request = urlopen(
    "http://%s:%d/~cddb/cddb.cgi" % (freedb_server, freedb_port),
    urlencode(POST).encode("UTF-8") if (version_info[0] >= 3) else
    urlencode(POST))