"Fran Burstall (Gmail)" <[email protected]> writes: > * Find a suitable replacement for emms-print-metadata as a way to > access > taglib. A current candidate is installing pytaglib. > > > I am happy to be involved in this. If pytaglib is to be used, it > comes with a small python script called pyprinttags which outputs > something like this:
Thank you for stepping up. > ************************************************************************* > TAGS OF '02. Peter Gunn (live) _ Where's Your Head At > (Head-a-Pella).mp3' > ************************************************************************* > ALBUM = As Heard on Radio Soulwax, > Part 2 > ALBUM ARTIST CREDIT = 2 Many DJ’s > ALBUMARTIST = 2 Many DJ’s > ALBUMARTISTSORT = 2 Many DJ’s > ARTIST = Emerson, Lake & Palmer / > Basement Jaxx > ARTIST CREDIT = Emerson, Lake & Palmer / [snip] I got something like this: ************************************ TAGS OF '01 - Prelude - Prelude.mp3' ************************************ ALBUM = Verdi: La Traviata COMMENT = Amazon.com Song ID: 204947184 COPYRIGHT = (C) 2005 Deutsche Grammophon GmbH, Hamburg CONDUCTOR = Carlo Rizzi ARTIST = Wiener Philharmoniker TITLE = Prelude - Prelude GENRE = Classical ALBUMARTIST = Anna Netrebko COMPOSER = Giuseppe Verdi DATE = 2005 TRACKNUMBER = 1/22 DISCNUMBER = 1/2 Unsupported tag elements: PRIV; APIC ...which looks easy enough to parse. Unfortunately, installing pytaglib on my Trisquel machine was as much work as emms-print-metadata. It involved manually downloading pytaglib-0.3.4, then installing cython, then: $ python setup.py build $ python setup.py install --user But I assume that it is easier on systems with pip, so this isn't a show-stopper. Moreover, it shows that this can run on a completely free system. If it couldn't then that would be another show-stopper. As an aside: looking at the command line of pyprinttags I note that we'll have to add the "-b" (batch) option so that pyprinttags doesn't try to ask the user questions and hang the elisp process call. > Clearly a little parsing would be necessary to get this into a shape > that emms could work with. > > I see two ways to go with this: > > 1. write emms-info-pytaglib.el which does the parsing. > > 2. write a python version of emms-print-metadata that is a drop-in > replacement for the C version. > > Both are easy though option 2 is probably easier. The downside of > option 2 is that we still have a piece of non-elisp to install in the > user's path. > > Preferences? Absolutely option 1, since otherwise we would be shipping C, C++, Perl, and Python; no thank you. The idea is to let the OS provide the packages, and let elisp do the rest. This is as opposed to what we do now, which is: let the OS provide a package, provide some glue code, and then let elisp do the rest. We are trying to get rid of the glue. I can write an implementation of emms-info-pytaglib and ping you to test it once I'm done, or you can do that. It really depends on whether you feel like writing that would be fun for you; your choice. Thank you nevertheless. -- "Cut your own wood and it will warm you twice"
