The finest search you can buy for no money
It comes both in a commandline interface tool and as a C library, both with an easy to use interface.
The sort of metadata glyr is searching (and downloading) is usually the data you see in your musicplayer.
And indeed, originally it was written to serve as internally library for a musicplayer, but has been extended to
work as a standalone program which is able to download:
- cover art
- artist biography
- album reviews
- tracklists of an album
- a list of albums from a specific artist.
- Tags, either related to artist, album or title
- relations, for example links to wikipedia
- similar artists
- similar songs
- backdrops (large artist photos)
To prevent disambiguation the following terms are used below:
- glyrc is the commandline interface to libglyr.
- libglyr is the library behind, which may be used by your program.
- a getter is a type of metadata to download, e.g.
cover, sometimes also called fetcher
- a provider is a source libglyr queries in order to find the data.
- glyros is the ruby wrapper for this lib. Currently it is not maintained.
- Many built-in providers (38 at this time), high success-rate
- Portable: Windows and Linux are supported (Developement on Linux) see 1 for Mac OSX,
- Fuzzy matching: Search providers with Levenshtein algorithm to eliminate typos and enhance search results.
- Decent Unicode support: All sort of valid UTF8 is taken, and UTf8 output can be forced.
- Fast Download: libcurl is used internally, and sources are searched in parallel, unneeded data is not downloaded if possible.
- Lightweight dependencies: libcurl and glib – typical linux systems have those installed.
- Download of a user defined amount of items,
glyrc cover -a Foo -b Bar -n 30loads 30 covers of album ‘Bar’ by artist ‘Foo’.
- Grouped download: Query providers by descending Accuray / Speed; controllable by the user over the
- Optional download of images, URL is returned otherwise – so it can act a bit like a search-engine.
- Free Software licensed under the terms of the GPLv3
- libglyr is portable, easy, threadsafe and lowlevel enough for everyone.
- …lots of other options like min/max size for images.
- A built-in cache to store the metadata (using SQLite)
See the compile page.
See the examples in src/examples for a quickstart.
There’s also a more gentle (and brief) introduction.
Also see the API Reference
Please note: The Api won’t be guaranteed to be stable before version 1.0.
Please refer to
glyrc -h which gives you a brief introduction to the arguments you can pass,
See the wiki for more detailed information about the options.
Indeed. Should have named it ‘Glyros’.
A decent knowledge of C might be required, but the code is straight forward most of the time.
In the ruby wrapper you can almost use english to order covers .
Bash scripts are even easier:
glyrc cover --artist Equilibrium --album Sagas
Well, as normal user you could use
glyrc to retrieve some metadata in a batchlike fashion.
As developers you have lots of option, you could write glyr-plugins for musicplayers (gmpc!), set up a webserver with this,
hack up little scripts showing covers on the desktop.. everything related to musicmetadat is possible here.
You could also extend libglyr itself but that’s a little harder.
- The kind of metadata downloaded by glyr differs heavily from musicbrainz.
i.e. glyr finds metadata for musicplayers while musicbrainz finds data for CD Rippers and taggers.
- Musicbrainz runs remotely on some server and uses a large database which is searched through lucene.
Glyr is a client program which hops over several sites and does not cache anything, unless you do it yourself.
You could of course let glyr run on a (remote) server, and cache all results to do something similiar.
See the AUTHORS file that comes in glyr’s distribution.
See also COPYING to know about your rights.
If you found one: Meh. Sorry for that.
If you file a bugreport: Wow, thank you!
Use the Issue Tracker to share your find.
Alternatively you may drop me a mail at <email@example.com>
If you hacked one: Excellent! Send it to me via mail or see below.
If you want to add new providers you should look at the existing provider plugins to get an idea how to write one.
Starting with lib/cover/lastfm.c isn’t a bad idea either, because it is one of the very simple ones.
Take the usual Git(Hub) approach:
- Fork this project
- Make your changes
- Make a Pull request
If you’re not familiar with git, or just don’t like it,
you can also drop me a mail: <firstname.lastname@example.org>
Thanks for any help in advance!
May sound strange, but you’re giving me a reason to maintain it, write new providers etc.
Also bugreports (well, there are no bugs, just in case) are appreciated, or just questions.
Those help to make the documentation more clear.
(For now only possible via Flattr or Paypal , you gonna need an account there – Sorry)
As usual, no warranty is granted that this software works like expected.
Refer to the GPLv3 copy you got with libglyr. It is here.
Glyr is just a way to find the data, it does not own any rights on the data it found.
1 Glyr has not been tested on Mac OSX yet. If you own a Mac, any help with ‘porting’ glyr is highly appreciated. My guess would be that no to almost no changes need to be done though.