HydrogenAudio

Hosted Forums => foobar2000 => 3rd Party Plugins - (fb2k) => Topic started by: T.P Wang on 2008-04-22 08:15:21

Title: Lyrics Grabber Feedback & Discussion
Post by: T.P Wang on 2008-04-22 08:15:21
foo_lyricsgrabber is a component which allow users to download lyrics from specified lyrics provider.
Current supported[!--sizeo:3--][span style=\"font-size:12pt;line-height:100%\"][!--/sizeo--]Instructions[/size]
In context menu, Find "Lyrics Grabber", Choose a provider to download lyrics for tracks just selected. Or config properites by choosing "Configuration".


[!--sizeo:3--][span style=\"font-size:12pt;line-height:100%\"][!--/sizeo--]Requirements[/size]
foobar2000 0.9.5 or later


[!--sizeo:3--][span style=\"font-size:12pt;line-height:100%\"][!--/sizeo--]Changlog[/size][/b]
Code: [Select]
[font=Courier]0.2.6.2 Beta[/font]
[font=Courier]FIX: Crash while decoding html entities that are at the end of the html content[/font]

[font=Courier]0.2.6.1 Beta
FIX: Addtion spaces at the begining of a line
FIX: Results from LyricsPlugin always shows "<found>" even they are empty
FIX: "Configruation" grayed out after used once

[/font][font=Courier]0.2.6 Beta
ADD: New provider for lyricsplugin.com
CHG: Minor cleanups

[/font][font=Courier]0.2.5 Beta
FIX: Lyric could not get from lyricwiki.org due to case mismatch

0.2.4 Beta
ADD: New option for skipping updating file whose tag already exists
FIX: Cannot parse lyrics in multi chapter
FIX: Some lyrics cannot be parsed due to incorrect regular expression

[/font]
[font=Courier]0.2.3 Beta
FIX: Quick fix for lyric parsing

0.2.2 Beta[/font]
[font=Courier]FIX: Quick fix for new lyricwiki.org site

0.2.1 Beta
FIX: Crashes when there is special character

0.2.0 Beta
ADD: In preview window, press "DELETE" key to remove selected items
ADD: Configruation window.
ADD: Lyric tag field name setting
ADD: Proxy setting (http, socks4, socks5)
FIX: Improved handling for lyric with sub-titles
FIX: Improved html tags & entities decoder
CHG: Various internal changes

[/font][font=Courier]0.1.6 Preview
FIX: LYRICS tag didn't have correct newline characters
FIX: LYRICS tag wirtten even if no lyrics found(null tag)
CHG: Some UI improvements

0.1.5 Preview
ADD: GUI for preview lyrics
FIX: Some glitches while updating tags

0.1.0 Preview
initial release[/font]


[!--sizeo:3--][span style=\"font-size:12pt;line-height:100%\"][!--/sizeo--]License[/size]
Released under MIT License (http://theo.foobar2000.com.cn/projects/foo_lyricsgrabber/license.txt)

[!--sizeo:3--][span style=\"font-size:12pt;line-height:100%\"][!--/sizeo--]Credits[/size]
Thanks kanak for introducing lyricwiki

libcurl - Copyright © 1998 - 2008, Daniel Stenberg
DEELX Regular Expression Engine - Copyright 2006 © RegExLab.com, 史寿伟 (sswater shi)




[!--sizeo:3--][span style=\"font-size:12pt;line-height:100%\"][!--/sizeo--]Download here (http://www.hydrogenaudio.org/forums/index.php?showtopic=62820)[/size][/font]
Title: Lyrics Grabber Feedback & Discussion
Post by: Spirit_of_the_ocean on 2008-04-22 12:06:51
As far as I can see it works via Context menu. It adds a button named "Functions" but by clicking it nothing happens. Is this intended? I am asking because this is a preview.

For me the important thing would be to have a preview of which lyrics are added. There was a component which had this feature.
Title: Lyrics Grabber Feedback & Discussion
Post by: T.P Wang on 2008-04-22 12:33:06
@Spirit_of_the_ocean:
GUI interface is working in progress.
It shouldn't be "Functions" in context menu, the default path for current version is Lyrics Grabber -> Lyricwiki, since there's only on provider now.

Once you've click that provider, a window will show progress, and then ask you to confirm the tag writting.
Title: Lyrics Grabber Feedback & Discussion
Post by: Spirit_of_the_ocean on 2008-04-22 20:31:51
Sorry. In the menu toolbar a button named "Functions" is appearing. This appeared with the instalation of your plugin.
Title: Lyrics Grabber Feedback & Discussion
Post by: thuan on 2008-04-22 20:55:53
Do you have foo_func then? It did that to me when I used it.
Title: Lyrics Grabber Feedback & Discussion
Post by: Spirit_of_the_ocean on 2008-04-22 21:06:01
Oh you are right.  Sorry my mistake.
Title: Lyrics Grabber Feedback & Discussion
Post by: q-stankovic on 2008-04-23 15:20:46
Very nice!!  I am eager to follow the development - hope you will keep it clean and simple.
Title: Lyrics Grabber Feedback & Discussion
Post by: pirlouy on 2008-04-23 16:10:56
What the best way to display LYRICS tag ? "Lyrics Show Panel" I guess, and it already has a grabber.
So this new plugin is nice, it works flawlessly but it lacks a simple plugin to display (long) tag.

By the way, is it a good thing to add all these data in a tag ? Is it not better to have lyrics in a file instead ?
Title: Lyrics Grabber Feedback & Discussion
Post by: T.P Wang on 2008-04-23 18:40:06
0.1.5 Preview is released.

Quote
Very nice!! I am eager to follow the development - hope you will keep it clean and simple.

Thank you, certinly I'll continue developing this component and try my best to make it clean and simple

Quote
By the way, is it a good thing to add all these data in a tag ? Is it not better to have lyrics in a file instead ?

I think if we want to keep it simple and clean, store lyrics in tag is a good choice, but may not be the best choice for everyone.

This component is aimed to provide a "universal" lyrics grabber, easy to use for downloading without any more clicks.
Title: Lyrics Grabber Feedback & Discussion
Post by: T.P Wang on 2008-04-24 04:10:50
0.1.6 Preview is out, with some quick fixes. Note that this component is still under unstable stage. Use it with caution.
Title: Lyrics Grabber Feedback & Discussion
Post by: zachastrife on 2008-04-24 08:56:22
I first tried this plugin on a track from the second CD of Dream Theater's Six Degrees of Inner Turbulence and was confused when I got the lyrics for the first song all the time.
Then I looked at LyricWiki and was rembered that this CD is named on the tracklist as 1 song =P
http://lyricwiki.org/Dream_Theater:Six_Deg...nner_Turbulence (http://lyricwiki.org/Dream_Theater:Six_Degrees_Of_Inner_Turbulence)

(I am not saying this is a great problem, as this probably only applies to some DT tracks..., just thought I'd notify you of it).
Title: Lyrics Grabber Feedback & Discussion
Post by: T.P Wang on 2008-04-24 18:19:50
Quote
(I am not saying this is a great problem, as this probably only applies to some DT tracks..., just thought I'd notify you of it).


I'll consider that in the next version, thanks for reporting.
Title: Lyrics Grabber Feedback & Discussion
Post by: zachastrife on 2008-04-24 19:24:33
Quote

(I am not saying this is a great problem, as this probably only applies to some DT tracks..., just thought I'd notify you of it).


I'll consider that in the next version, thanks for reporting.

Nice =)
A greater problem I just found though is tracks like DT's (again) The Glass Prison with "sub-titles",
as seen here:
http://lyricwiki.org/Dream_Theater:The_Glass_Prison (http://lyricwiki.org/Dream_Theater:The_Glass_Prison)

Your plugin again only finds the lyrics to the first part.
And this case is probably more frequent than the previous case so if you need to choose a behaviour, saving all the lyrics on the page is probably the best choice.
Title: Lyrics Grabber Feedback & Discussion
Post by: q-stankovic on 2008-04-25 16:17:11
Quote
By the way, is it a good thing to add all these data in a tag ? Is it not better to have lyrics in a file instead ?

I think if we want to keep it simple and clean, store lyrics in tag is a good choice, but may not be the best choice for everyone.


For me the right place for storing lyrics is the file but i also can understand the need for storing them as text-files. If people are content with the same folder as track file  the configuration would not bloat the preferences as a simple pattern like "%artist%-%title%" written in a textfield would be enough.

T.P Wang, can you give us the choice to write the lyrics in the "Unsynced Lyrics" frame?
Title: Lyrics Grabber Feedback & Discussion
Post by: abchk on 2008-04-26 09:12:58
Will it support custom_info db?
Title: Lyrics Grabber Feedback & Discussion
Post by: q-stankovic on 2008-04-26 22:01:39
What is the advantage of using custom_info db?
Title: Lyrics Grabber Feedback & Discussion
Post by: T.P Wang on 2008-04-27 05:59:49
Quote
And this case is probably more frequent than the previous case so if you need to choose a behaviour, saving all the lyrics on the page is probably the best choice.

Yes, I'll add some more code check for the toc title and then extract lyrics according to the toc title. It won't be easy for all these done 


Quote
Will it support custom_info db?

No, since development of custom_info stopped for a long time, and the metadb_display_hook API is deprecated, custom_info will sooner or later be a "broken" component, thus I won't support custom_info in the future.


Quote
For me the right place for storing lyrics is the file but i also can understand the need for storing them as text-files

Hmm, I consider these needs. I'll add that feature later.


Quote
can you give us the choice to write the lyrics in the "Unsynced Lyrics" frame?

Yes, I'm working on the configruation of Lyrics Grabber and such.
Title: Lyrics Grabber Feedback & Discussion
Post by: T.P Wang on 2008-04-28 17:24:17
0.2.0 Beta released 
Title: Lyrics Grabber Feedback & Discussion
Post by: cartman(2vd) on 2008-04-28 17:47:29
0.2.0 Beta released 


when i go in configurations and click provider/options/website internet explorer seems to be hardcoded as browser. not a big deal for me but would be nice if you could grab default browser from HKEY_CLASSES_ROOT\HTTP\shell\open\
Title: Lyrics Grabber Feedback & Discussion
Post by: T.P Wang on 2008-04-28 18:14:00
Quote
when i go in configurations and click provider/options/website internet explorer seems to be hardcoded as browser. not a big deal for me but would be nice if you could grab default browser from HKEY_CLASSES_ROOT\HTTP\shell\open\


Hmm, yes, so I've re-uploaded with that "quick fix" .
Title: Lyrics Grabber Feedback & Discussion
Post by: lyh on 2008-04-28 20:13:29
many lyrics can't find,but in the web if I search ,I can find many lyrics.
It can't find if the tags are not complete?
Title: Lyrics Grabber Feedback & Discussion
Post by: T.P Wang on 2008-04-29 09:42:24
@lyh:
It's highly depend on your TITLE and ARTIST tag.
It's not easy to support fuzzy matching for ARTIST and TITLE.
Title: Lyrics Grabber Feedback & Discussion
Post by: q-stankovic on 2008-05-01 11:56:13
It's not easy to support fuzzy matching for ARTIST and TITLE.


Would it be easier to look for ARTIST, ALBUM and TRACKNUMBER if lyrics are not found - so many times the lookup fails because the titles from file and from lyricwiki.org are a little bit different. (f.e. missing accents and so on)
Title: Lyrics Grabber Feedback & Discussion
Post by: Yong H on 2008-05-03 15:18:40
Hi ,very good pugins,but I have a problem,when it auto download from internet and output the *.lyr to my hard drive, the *.lyr 's name is different from the *.mp3.for example the song's name is (01. Candy Shop.mp3) but the lyr's name is (Madonna - Candy Shop.lrc) ,it's different .If I put these together to my MP3 player, it can't play the lyr. thanks.
Title: Lyrics Grabber Feedback & Discussion
Post by: T.P Wang on 2008-05-03 16:23:41
Would it be easier to look for ARTIST, ALBUM and TRACKNUMBER if lyrics are not found - so many times the lookup fails because the titles from file and from lyricwiki.org are a little bit different. (f.e. missing accents and so on)

Yes, I'll consider to implement that sooner after finishing scripting support and some UI improvements.


...when it auto download from internet and output the *.lyr to my hard drive ...

 
Have I added support for saving lyric in a file, or may be you've mistaken some softeares called "Lyrics Grabber"...
Title: Lyrics Grabber Feedback & Discussion
Post by: Chaser on 2008-05-03 18:10:08
Maybe he is using your other component?!
Title: Lyrics Grabber Feedback & Discussion
Post by: Hengest on 2008-05-24 09:34:52
Just to add to the problems with Dream Theater lyrics, trying to get the lyrics for To Live Forever (http://lyricwiki.org/Dream_Theater:To_Live_Forever) using 0.2.0 beta causes a crash saying "Unhandled exception in "Querying Lyricwiki": invalid string position"

Edit: also happens for this (http://lyricwiki.org/Dream_Theater%3a%44amage%2C_Inc). one.

2nd edit: something wrong with the forum code, but the second url is "http://lyricwiki.org/Dream_Theater:Damage%2C_Inc." (note the '.' at the end. For some reason, the forum software doesn't like it.)
Title: Lyrics Grabber Feedback & Discussion
Post by: T.P Wang on 2008-05-24 10:11:45
Quote
trying to get the lyrics for To Live Forever using 0.2.0 beta cause a crash saying "Unhandled exception in "Querying Lyricwiki": invalid string position"

Reproduced, fixed in the next version.
Title: Lyrics Grabber Feedback & Discussion
Post by: foorious on 2008-06-25 00:05:17
Any news of this promising component ?
Title: Lyrics Grabber Feedback & Discussion
Post by: aphasia on 2008-06-26 19:19:05
Crash while searching for lyrics:

Code: [Select]
<?xml version="1.0" encoding="UTF-16"?>
<DATABASE>
<EXE NAME="foobar2000.exe" FILTER="GRABMI_FILTER_PRIVACY">
    <MATCHING_FILE NAME="COMServer2Helper.exe" SIZE="118784" CHECKSUM="0xF5D248EB" BIN_FILE_VERSION="1.0.0.1" BIN_PRODUCT_VERSION="1.0.0.1" VERFILEDATEHI="0x0" VERFILEDATELO="0x0" VERFILEOS="0x4" VERFILETYPE="0x1" MODULE_TYPE="WIN32" PE_CHECKSUM="0x1F335" LINKER_VERSION="0x0" UPTO_BIN_FILE_VERSION="1.0.0.1" UPTO_BIN_PRODUCT_VERSION="1.0.0.1" LINK_DATE="07/31/2006 10:23:14" UPTO_LINK_DATE="07/31/2006 10:23:14" />
    <MATCHING_FILE NAME="foobar2000.exe" SIZE="1190912" CHECKSUM="0x3668EC67" BIN_FILE_VERSION="0.9.5.4" BIN_PRODUCT_VERSION="0.9.5.4" PRODUCT_VERSION="0, 9, 5, 4" FILE_DESCRIPTION="foobar2000 Application" PRODUCT_NAME=" foobar2000 Application" FILE_VERSION="0, 9, 5, 4" ORIGINAL_FILENAME="foobar2000.exe" INTERNAL_NAME="foobar2000" LEGAL_COPYRIGHT="Copyright © 2001-2008 Peter Pawlowski" VERFILEDATEHI="0x0" VERFILEDATELO="0x0" VERFILEOS="0x4" VERFILETYPE="0x1" MODULE_TYPE="WIN32" PE_CHECKSUM="0x12889B" LINKER_VERSION="0x0" UPTO_BIN_FILE_VERSION="0.9.5.4" UPTO_BIN_PRODUCT_VERSION="0.9.5.4" LINK_DATE="06/23/2008 07:57:25" UPTO_LINK_DATE="06/23/2008 07:57:25" VER_LANGUAGE="English (United States) [0x409]" />
    <MATCHING_FILE NAME="libmmd.dll" SIZE="2814044" CHECKSUM="0x38345C3E" BIN_FILE_VERSION="9.1.9.2" BIN_PRODUCT_VERSION="0.0.0.0" PRODUCT_VERSION="9.1" FILE_DESCRIPTION="Math Library for Intel® Compilers (thread-safe)" COMPANY_NAME="Intel Corporation" PRODUCT_NAME="Intel® C Compiler, Intel® C++ Compiler, Intel® Fortran Compiler" FILE_VERSION="9.1.9.2" ORIGINAL_FILENAME="libmmd.dll" INTERNAL_NAME="libmmd.dll" LEGAL_COPYRIGHT="Copyright © 1985-2005 Intel Corporation" VERFILEDATEHI="0x0" VERFILEDATELO="0x0" VERFILEOS="0x0" VERFILETYPE="0x0" MODULE_TYPE="WIN32" PE_CHECKSUM="0x0" LINKER_VERSION="0x0" UPTO_BIN_FILE_VERSION="9.1.9.2" UPTO_BIN_PRODUCT_VERSION="0.0.0.0" LINK_DATE="02/16/2007 14:29:27" UPTO_LINK_DATE="02/16/2007 14:29:27" VER_LANGUAGE="English (United States) [0x409]" />
    <MATCHING_FILE NAME="libpng13.dll" SIZE="262144" CHECKSUM="0x2EBB6801" BIN_FILE_VERSION="1.2.23.0" BIN_PRODUCT_VERSION="1.2.23.0" PRODUCT_VERSION="1" FILE_DESCRIPTION="PNG image compression library" PRODUCT_NAME="LibPNG" FILE_VERSION="1.2.23" ORIGINAL_FILENAME="LIBPNG13.DLL" INTERNAL_NAME="LIBPNG13 (Windows 32 bit)" LEGAL_COPYRIGHT="© 1998-2004 Glenn Randers-Pehrson et al." VERFILEDATEHI="0x0" VERFILEDATELO="0x0" VERFILEOS="0x4" VERFILETYPE="0x2" MODULE_TYPE="WIN32" PE_CHECKSUM="0x45149" LINKER_VERSION="0x0" UPTO_BIN_FILE_VERSION="1.2.23.0" UPTO_BIN_PRODUCT_VERSION="1.2.23.0" LINK_DATE="11/28/2007 16:24:29" UPTO_LINK_DATE="11/28/2007 16:24:29" VER_LANGUAGE="English (United States) [0x409]" />
    <MATCHING_FILE NAME="NeroAACWrapper.exe" SIZE="106496" CHECKSUM="0xEC890C6D" MODULE_TYPE="WIN32" PE_CHECKSUM="0x1E36C" LINKER_VERSION="0x0" LINK_DATE="04/22/2006 21:55:28" UPTO_LINK_DATE="04/22/2006 21:55:28" />
    <MATCHING_FILE NAME="nscrt.dll" SIZE="352256" CHECKSUM="0x9E92CAA4" BIN_FILE_VERSION="7.10.0.0" BIN_PRODUCT_VERSION="7.10.0.0" PRODUCT_VERSION="7.10.0000" FILE_DESCRIPTION="User-Generated Microsoft ® C/C++ Runtime Library" COMPANY_NAME="Nullsoft, Inc." PRODUCT_NAME="Win9x Unicode C Runtime Library" FILE_VERSION="7.10.0000" ORIGINAL_FILENAME="NSCRT.DLL" INTERNAL_NAME="NSCRT.DLL" LEGAL_COPYRIGHT="Copyright © Microsoft Corporation." VERFILEDATEHI="0x0" VERFILEDATELO="0x0" VERFILEOS="0x40004" VERFILETYPE="0x2" MODULE_TYPE="WIN32" PE_CHECKSUM="0x60A27" LINKER_VERSION="0x0" UPTO_BIN_FILE_VERSION="7.10.0.0" UPTO_BIN_PRODUCT_VERSION="7.10.0.0" LINK_DATE="05/24/2006 16:38:11" UPTO_LINK_DATE="05/24/2006 16:38:11" VER_LANGUAGE="English (United States) [0x409]" />
    <MATCHING_FILE NAME="shared.dll" SIZE="146432" CHECKSUM="0x82190961" MODULE_TYPE="WIN32" PE_CHECKSUM="0x2E902" LINKER_VERSION="0x0" LINK_DATE="06/22/2008 17:39:03" UPTO_LINK_DATE="06/22/2008 17:39:03" />
    <MATCHING_FILE NAME="tak_deco_lib.dll" SIZE="101888" CHECKSUM="0xBB5EB3DB" BIN_FILE_VERSION="1.0.7.0" BIN_PRODUCT_VERSION="1.0.7.0" PRODUCT_VERSION="1.0.4.0" FILE_DESCRIPTION="TAK Decoder Library" COMPANY_NAME="Thomas Becker, Osnabrueck" PRODUCT_NAME="TAK Lossless Audio Compressor" FILE_VERSION="1.0.7.0" ORIGINAL_FILENAME="tak_deco_lib.dll" INTERNAL_NAME="" LEGAL_COPYRIGHT="© 2006 by Thomas Becker, Osnabrueck, Germany" VERFILEDATEHI="0x0" VERFILEDATELO="0x0" VERFILEOS="0x4" VERFILETYPE="0x1" MODULE_TYPE="WIN32" PE_CHECKSUM="0x0" LINKER_VERSION="0x0" UPTO_BIN_FILE_VERSION="1.0.7.0" UPTO_BIN_PRODUCT_VERSION="1.0.7.0" LINK_DATE="06/19/1992 22:22:17" UPTO_LINK_DATE="06/19/1992 22:22:17" VER_LANGUAGE="English (United States) [0x409]" />
    <MATCHING_FILE NAME="uninstall-foo_comserver2.exe" SIZE="51580" CHECKSUM="0x8899ECC3" BIN_FILE_VERSION="0.7.0.3" BIN_PRODUCT_VERSION="0.7.0.3" PRODUCT_VERSION="0.7" FILE_DESCRIPTION="" COMPANY_NAME="Holger Stenger" PRODUCT_NAME="Automation server for foobar2000" FILE_VERSION="" LEGAL_COPYRIGHT="" VERFILEDATEHI="0x0" VERFILEDATELO="0x0" VERFILEOS="0x4" VERFILETYPE="0x1" MODULE_TYPE="WIN32" PE_CHECKSUM="0x0" LINKER_VERSION="0x0" UPTO_BIN_FILE_VERSION="0.7.0.3" UPTO_BIN_PRODUCT_VERSION="0.7.0.3" LINK_DATE="01/24/2006 18:42:56" UPTO_LINK_DATE="01/24/2006 18:42:56" VER_LANGUAGE="English (United States) [0x409]" />
    <MATCHING_FILE NAME="uninstall.exe" SIZE="144869" CHECKSUM="0x37A50BF4" BIN_FILE_VERSION="0.9.5.4" BIN_PRODUCT_VERSION="0.9.5.4" PRODUCT_VERSION="0.9.5.4 beta 2" FILE_DESCRIPTION="foobar2000 Installer" COMPANY_NAME="foobar2000.org" PRODUCT_NAME="foobar2000" FILE_VERSION="0.9.5.4 beta 2" ORIGINAL_FILENAME="foobar2000_0.9.5.4 beta 2.exe" LEGAL_COPYRIGHT="© Peter Pawlowski. All rights reserved." VERFILEDATEHI="0x0" VERFILEDATELO="0x0" VERFILEOS="0x4" VERFILETYPE="0x1" MODULE_TYPE="WIN32" PE_CHECKSUM="0x0" LINKER_VERSION="0x0" UPTO_BIN_FILE_VERSION="0.9.5.4" UPTO_BIN_PRODUCT_VERSION="0.9.5.4" LINK_DATE="06/09/2008 13:59:40" UPTO_LINK_DATE="06/09/2008 13:59:40" VER_LANGUAGE="Language Neutral [0x0]" />
    <MATCHING_FILE NAME="zlib1.dll" SIZE="143872" CHECKSUM="0xC032B638" BIN_FILE_VERSION="1.2.2.0" BIN_PRODUCT_VERSION="1.2.2.0" PRODUCT_VERSION="1.2.3" FILE_DESCRIPTION="zlib data compression library" PRODUCT_NAME="zlib" FILE_VERSION="1.2.3" ORIGINAL_FILENAME="zlib1.dll" INTERNAL_NAME="zlib1.dll" LEGAL_COPYRIGHT="© 1995-2004 Jean-loup Gailly &amp; Mark Adler" VERFILEDATEHI="0x0" VERFILEDATELO="0x0" VERFILEOS="0x10004" VERFILETYPE="0x2" MODULE_TYPE="WIN32" PE_CHECKSUM="0x2C28F" LINKER_VERSION="0x0" UPTO_BIN_FILE_VERSION="1.2.2.0" UPTO_BIN_PRODUCT_VERSION="1.2.2.0" LINK_DATE="11/28/2007 16:24:27" UPTO_LINK_DATE="11/28/2007 16:24:27" VER_LANGUAGE="English (United States) [0x409]" />
    <MATCHING_FILE NAME="components\foo_abx.dll" SIZE="179712" CHECKSUM="0x52DBE10D" MODULE_TYPE="WIN32" PE_CHECKSUM="0x3221D" LINKER_VERSION="0x0" LINK_DATE="05/24/2008 15:23:51" UPTO_LINK_DATE="05/24/2008 15:23:51" />
    <MATCHING_FILE NAME="components\foo_albumlist.dll" SIZE="419840" CHECKSUM="0x61DA897D" MODULE_TYPE="WIN32" PE_CHECKSUM="0x6A765" LINKER_VERSION="0x0" LINK_DATE="06/23/2008 07:47:37" UPTO_LINK_DATE="06/23/2008 07:47:37" />
    <MATCHING_FILE NAME="components\foo_autoplaylist.dll" SIZE="177664" CHECKSUM="0xAF9ACB8B" MODULE_TYPE="WIN32" PE_CHECKSUM="0x37716" LINKER_VERSION="0x0" LINK_DATE="08/04/2006 19:56:55" UPTO_LINK_DATE="08/04/2006 19:56:55" />
    <MATCHING_FILE NAME="components\foo_benchmark.dll" SIZE="142336" CHECKSUM="0x76F3AA00" MODULE_TYPE="WIN32" PE_CHECKSUM="0x30C36" LINKER_VERSION="0x0" LINK_DATE="08/04/2006 19:56:57" UPTO_LINK_DATE="08/04/2006 19:56:57" />
    <MATCHING_FILE NAME="components\foo_bitcompare.dll" SIZE="140288" CHECKSUM="0xE1F84B0A" MODULE_TYPE="WIN32" PE_CHECKSUM="0x2D050" LINKER_VERSION="0x0" LINK_DATE="08/04/2006 19:56:50" UPTO_LINK_DATE="08/04/2006 19:56:50" />
    <MATCHING_FILE NAME="components\foo_bubble_coverflow.dll" SIZE="269312" CHECKSUM="0x7F393EBF" MODULE_TYPE="WIN32" PE_CHECKSUM="0x4D836" LINKER_VERSION="0x0" LINK_DATE="05/24/2008 04:01:07" UPTO_LINK_DATE="05/24/2008 04:01:07" />
    <MATCHING_FILE NAME="components\foo_burninate.dll" SIZE="205312" CHECKSUM="0xB6D1D114" MODULE_TYPE="WIN32" PE_CHECKSUM="0x37B87" LINKER_VERSION="0x0" LINK_DATE="08/04/2006 19:56:44" UPTO_LINK_DATE="08/04/2006 19:56:44" />
    <MATCHING_FILE NAME="components\foo_cdda.dll" SIZE="238080" CHECKSUM="0x429F03DA" MODULE_TYPE="WIN32" PE_CHECKSUM="0x41D13" LINKER_VERSION="0x0" LINK_DATE="06/11/2008 18:30:19" UPTO_LINK_DATE="06/11/2008 18:30:19" />
    <MATCHING_FILE NAME="components\foo_chronflow.dll" SIZE="385024" CHECKSUM="0x8AD04FF1" MODULE_TYPE="WIN32" PE_CHECKSUM="0x6621E" LINKER_VERSION="0x0" LINK_DATE="04/13/2008 22:16:00" UPTO_LINK_DATE="04/13/2008 22:16:00" />
    <MATCHING_FILE NAME="components\foo_common.dll" SIZE="188928" CHECKSUM="0x41448DD8" BIN_FILE_VERSION="0.2.0.0" BIN_PRODUCT_VERSION="0.2.0.0" PRODUCT_VERSION="0, 2, 0, 0" FILE_DESCRIPTION="foobar2000 Common Services component" PRODUCT_NAME="foobar2000 Common Services" FILE_VERSION="0, 2, 0, 0" ORIGINAL_FILENAME="foo_common.dll" INTERNAL_NAME="foo_common" LEGAL_COPYRIGHT="Copyright © 2005 Holger Stenger" VERFILEDATEHI="0x0" VERFILEDATELO="0x0" VERFILEOS="0x4" VERFILETYPE="0x2" MODULE_TYPE="WIN32" PE_CHECKSUM="0x3BDB3" LINKER_VERSION="0x0" UPTO_BIN_FILE_VERSION="0.2.0.0" UPTO_BIN_PRODUCT_VERSION="0.2.0.0" LINK_DATE="01/22/2007 12:02:19" UPTO_LINK_DATE="01/22/2007 12:02:19" VER_LANGUAGE="English (United States) [0x409]" />
    <MATCHING_FILE NAME="components\foo_comserver2.dll" SIZE="337408" CHECKSUM="0x66329A23" MODULE_TYPE="WIN32" PE_CHECKSUM="0x5B826" LINKER_VERSION="0x0" LINK_DATE="07/31/2006 19:13:20" UPTO_LINK_DATE="07/31/2006 19:13:20" />
    <MATCHING_FILE NAME="components\foo_converter.dll" SIZE="400384" CHECKSUM="0x71535AEF" MODULE_TYPE="WIN32" PE_CHECKSUM="0x6F657" LINKER_VERSION="0x0" LINK_DATE="06/11/2008 18:30:19" UPTO_LINK_DATE="06/11/2008 18:30:19" />
    <MATCHING_FILE NAME="components\foo_convolve.dll" SIZE="309760" CHECKSUM="0xA81C73E7" MODULE_TYPE="WIN32" PE_CHECKSUM="0x4EE7A" LINKER_VERSION="0x0" LINK_DATE="08/04/2006 19:57:27" UPTO_LINK_DATE="08/04/2006 19:57:27" />
    <MATCHING_FILE NAME="components\foo_cwbowron.dll" SIZE="167936" CHECKSUM="0xC80AA1C7" MODULE_TYPE="WIN32" PE_CHECKSUM="0x31499" LINKER_VERSION="0x0" LINK_DATE="07/23/2007 12:28:08" UPTO_LINK_DATE="07/23/2007 12:28:08" />
    <MATCHING_FILE NAME="components\foo_dbsearch.dll" SIZE="440320" CHECKSUM="0x92B30F32" MODULE_TYPE="WIN32" PE_CHECKSUM="0x6FAD5" LINKER_VERSION="0x0" LINK_DATE="01/25/2007 20:58:48" UPTO_LINK_DATE="01/25/2007 20:58:48" />
    <MATCHING_FILE NAME="components\foo_dbsearch_api_demo.dll" SIZE="118784" CHECKSUM="0xDE3DA332" MODULE_TYPE="WIN32" PE_CHECKSUM="0x27C6F" LINKER_VERSION="0x0" LINK_DATE="01/22/2007 12:01:38" UPTO_LINK_DATE="01/22/2007 12:01:38" />
    <MATCHING_FILE NAME="components\foo_discogs.dll" SIZE="593920" CHECKSUM="0x79D1ADB1" MODULE_TYPE="WIN32" PE_CHECKSUM="0x0" LINKER_VERSION="0x0" LINK_DATE="03/16/2008 21:31:12" UPTO_LINK_DATE="03/16/2008 21:31:12" />
    <MATCHING_FILE NAME="components\foo_dop.dll" SIZE="838144" CHECKSUM="0xD8B2A1A0" MODULE_TYPE="WIN32" PE_CHECKSUM="0xDC0C8" LINKER_VERSION="0x0" LINK_DATE="06/05/2008 09:14:34" UPTO_LINK_DATE="06/05/2008 09:14:34" />
    <MATCHING_FILE NAME="components\foo_dsp_std.dll" SIZE="279040" CHECKSUM="0x36602D7C" MODULE_TYPE="WIN32" PE_CHECKSUM="0x4FA66" LINKER_VERSION="0x0" LINK_DATE="06/22/2008 17:39:30" UPTO_LINK_DATE="06/22/2008 17:39:30" />
    <MATCHING_FILE NAME="components\foo_fileops.dll" SIZE="268288" CHECKSUM="0x1ACE8AE9" MODULE_TYPE="WIN32" PE_CHECKSUM="0x494BF" LINKER_VERSION="0x0" LINK_DATE="06/07/2008 19:14:57" UPTO_LINK_DATE="06/07/2008 19:14:57" />
    <MATCHING_FILE NAME="components\foo_freedb2.dll" SIZE="246784" CHECKSUM="0xDAA3E363" MODULE_TYPE="WIN32" PE_CHECKSUM="0x3C642" LINKER_VERSION="0x0" LINK_DATE="06/07/2008 19:15:11" UPTO_LINK_DATE="06/07/2008 19:15:11" />
    <MATCHING_FILE NAME="components\foo_input_monkey.dll" SIZE="281088" CHECKSUM="0x301DC9F7" MODULE_TYPE="WIN32" PE_CHECKSUM="0x46542" LINKER_VERSION="0x0" LINK_DATE="04/13/2007 16:39:54" UPTO_LINK_DATE="04/13/2007 16:39:54" />
    <MATCHING_FILE NAME="components\foo_input_shorten.dll" SIZE="165376" CHECKSUM="0xA3DCBC8" MODULE_TYPE="WIN32" PE_CHECKSUM="0x2E677" LINKER_VERSION="0x0" LINK_DATE="08/21/2007 10:56:16" UPTO_LINK_DATE="08/21/2007 10:56:16" />
    <MATCHING_FILE NAME="components\foo_input_std.dll" SIZE="1213952" CHECKSUM="0xD7DCD373" MODULE_TYPE="WIN32" PE_CHECKSUM="0x12BCCB" LINKER_VERSION="0x0" LINK_DATE="06/15/2008 12:29:47" UPTO_LINK_DATE="06/15/2008 12:29:47" />
    <MATCHING_FILE NAME="components\foo_input_tak.dll" SIZE="254464" CHECKSUM="0xF5F4B2A8" MODULE_TYPE="WIN32" PE_CHECKSUM="0x442C5" LINKER_VERSION="0x0" LINK_DATE="04/08/2008 10:16:01" UPTO_LINK_DATE="04/08/2008 10:16:01" />
    <MATCHING_FILE NAME="components\foo_lnk.dll" SIZE="79360" CHECKSUM="0x37645BB3" BIN_FILE_VERSION="1.0.0.1" BIN_PRODUCT_VERSION="1.0.0.1" PRODUCT_VERSION="1, 0, 0, 1" FILE_DESCRIPTION="Shell link support for foobar2000" COMPANY_NAME=" " PRODUCT_NAME="foo_lnk" FILE_VERSION="1, 0, 0, 1" ORIGINAL_FILENAME="foo_lnk.dll" INTERNAL_NAME="foo_lnk" LEGAL_COPYRIGHT="Copyright © 2005 Holger Stenger" VERFILEDATEHI="0x0" VERFILEDATELO="0x0" VERFILEOS="0x40004" VERFILETYPE="0x2" MODULE_TYPE="WIN32" PE_CHECKSUM="0x1635A" LINKER_VERSION="0x0" UPTO_BIN_FILE_VERSION="1.0.0.1" UPTO_BIN_PRODUCT_VERSION="1.0.0.1" LINK_DATE="01/22/2007 12:05:17" UPTO_LINK_DATE="01/22/2007 12:05:17" VER_LANGUAGE="Language Neutral [0x0]" />
    <MATCHING_FILE NAME="components\foo_lyricsdb.dll" SIZE="184320" CHECKSUM="0x6CC2F3A4" MODULE_TYPE="WIN32" PE_CHECKSUM="0x38687" LINKER_VERSION="0x0" LINK_DATE="02/26/2007 15:41:58" UPTO_LINK_DATE="02/26/2007 15:41:58" />
    <MATCHING_FILE NAME="components\foo_lyricsgrabber.dll" SIZE="318976" CHECKSUM="0x841AD746" MODULE_TYPE="WIN32" PE_CHECKSUM="0x547C9" LINKER_VERSION="0x0" LINK_DATE="04/28/2008 17:09:19" UPTO_LINK_DATE="04/28/2008 17:09:19" />
    <MATCHING_FILE NAME="components\foo_masstag.dll" SIZE="311808" CHECKSUM="0xFDA9A258" MODULE_TYPE="WIN32" PE_CHECKSUM="0x56ACE" LINKER_VERSION="0x0" LINK_DATE="10/13/2007 14:17:26" UPTO_LINK_DATE="10/13/2007 14:17:26" />
    <MATCHING_FILE NAME="components\foo_out_asio.dll" SIZE="184320" CHECKSUM="0xBE8E4300" MODULE_TYPE="WIN32" PE_CHECKSUM="0x34896" LINKER_VERSION="0x0" LINK_DATE="08/13/2006 15:07:52" UPTO_LINK_DATE="08/13/2006 15:07:52" />
    <MATCHING_FILE NAME="components\foo_out_ks.dll" SIZE="148992" CHECKSUM="0x2DF73F35" MODULE_TYPE="WIN32" PE_CHECKSUM="0x3318B" LINKER_VERSION="0x0" LINK_DATE="08/04/2006 19:54:58" UPTO_LINK_DATE="08/04/2006 19:54:58" />
    <MATCHING_FILE NAME="components\foo_playlist_manager.dll" SIZE="263680" CHECKSUM="0xB8A43717" MODULE_TYPE="WIN32" PE_CHECKSUM="0x4667A" LINKER_VERSION="0x0" LINK_DATE="01/22/2007 12:05:13" UPTO_LINK_DATE="01/22/2007 12:05:13" />
    <MATCHING_FILE NAME="components\foo_popupplus.dll" SIZE="229376" CHECKSUM="0x55FD83C8" BIN_FILE_VERSION="2.1.0.0" BIN_PRODUCT_VERSION="2.1.0.0" PRODUCT_VERSION="2, 1, 0, 0" FILE_DESCRIPTION="Popup Plus plugin for Miranda IM" COMPANY_NAME="nullbie" PRODUCT_NAME="Popup Plus" FILE_VERSION="2, 1, 0, 0" ORIGINAL_FILENAME="popup.dll" INTERNAL_NAME="popup" LEGAL_COPYRIGHT="Copyright © 2002 Luca Santarelli, Copyright © 2004-2007 Victor Pavlychko" VERFILEDATEHI="0x0" VERFILEDATELO="0x0" VERFILEOS="0x4" VERFILETYPE="0x2" MODULE_TYPE="WIN32" PE_CHECKSUM="0x0" LINKER_VERSION="0x0" UPTO_BIN_FILE_VERSION="2.1.0.0" UPTO_BIN_PRODUCT_VERSION="2.1.0.0" LINK_DATE="04/24/2008 20:24:17" UPTO_LINK_DATE="04/24/2008 20:24:17" VER_LANGUAGE="Language Neutral [0x0]" />
    <MATCHING_FILE NAME="components\foo_pqview.dll" SIZE="167936" CHECKSUM="0xFC7AC05B" MODULE_TYPE="WIN32" PE_CHECKSUM="0x349FB" LINKER_VERSION="0x0" LINK_DATE="03/11/2008 18:02:52" UPTO_LINK_DATE="03/11/2008 18:02:52" />
    <MATCHING_FILE NAME="components\foo_quicktag.dll" SIZE="193536" CHECKSUM="0xF83AE2F1" MODULE_TYPE="WIN32" PE_CHECKSUM="0x38523" LINKER_VERSION="0x0" LINK_DATE="05/01/2008 17:39:03" UPTO_LINK_DATE="05/01/2008 17:39:03" />
    <MATCHING_FILE NAME="components\foo_random.dll" SIZE="231424" CHECKSUM="0x34D3A5C7" MODULE_TYPE="WIN32" PE_CHECKSUM="0x430C4" LINKER_VERSION="0x0" LINK_DATE="01/25/2007 21:50:17" UPTO_LINK_DATE="01/25/2007 21:50:17" />
    <MATCHING_FILE NAME="components\foo_removefromqueue.dll" SIZE="27648" CHECKSUM="0xA476A70C" MODULE_TYPE="WIN32" PE_CHECKSUM="0x14025" LINKER_VERSION="0x0" LINK_DATE="07/14/2007 11:29:57" UPTO_LINK_DATE="07/14/2007 11:29:57" />
    <MATCHING_FILE NAME="components\foo_rgscan.dll" SIZE="351744" CHECKSUM="0x16F6526A" MODULE_TYPE="WIN32" PE_CHECKSUM="0x5E98A" LINKER_VERSION="0x0" LINK_DATE="06/11/2008 18:30:19" UPTO_LINK_DATE="06/11/2008 18:30:19" />
    <MATCHING_FILE NAME="components\foo_rg_trn.dll" SIZE="102400" CHECKSUM="0x1EDFC9B0" MODULE_TYPE="WIN32" PE_CHECKSUM="0x250F3" LINKER_VERSION="0x0" LINK_DATE="02/10/2007 16:56:08" UPTO_LINK_DATE="02/10/2007 16:56:08" />
    <MATCHING_FILE NAME="components\foo_run.dll" SIZE="168448" CHECKSUM="0x3FAB506" BIN_FILE_VERSION="0.3.4.0" BIN_PRODUCT_VERSION="0.3.4.0" PRODUCT_VERSION="0, 3, 4, 0" FILE_DESCRIPTION="foo_run foobar2000 component" PRODUCT_NAME="foo_run foobar2000 component" FILE_VERSION="0, 3, 4, 0" ORIGINAL_FILENAME="foo_run.dll" INTERNAL_NAME="foo_run" LEGAL_COPYRIGHT="Copyright © 2006-2008 Florian Heidenreich" VERFILEDATEHI="0x0" VERFILEDATELO="0x0" VERFILEOS="0x4" VERFILETYPE="0x2" MODULE_TYPE="WIN32" PE_CHECKSUM="0x2A701" LINKER_VERSION="0x0" UPTO_BIN_FILE_VERSION="0.3.4.0" UPTO_BIN_PRODUCT_VERSION="0.3.4.0" LINK_DATE="01/17/2008 19:32:40" UPTO_LINK_DATE="01/17/2008 19:32:40" VER_LANGUAGE="German (Germany) [0x407]" />
    <MATCHING_FILE NAME="components\foo_runcmd.dll" SIZE="169984" CHECKSUM="0xAFE47FDB" MODULE_TYPE="WIN32" PE_CHECKSUM="0x311B3" LINKER_VERSION="0x0" LINK_DATE="01/22/2007 12:02:00" UPTO_LINK_DATE="01/22/2007 12:02:00" />
    <MATCHING_FILE NAME="components\foo_texttools.dll" SIZE="192000" CHECKSUM="0x97290425" MODULE_TYPE="WIN32" PE_CHECKSUM="0x33620" LINKER_VERSION="0x0" LINK_DATE="05/18/2008 15:40:42" UPTO_LINK_DATE="05/18/2008 15:40:42" />
    <MATCHING_FILE NAME="components\foo_tradersfriend.dll" SIZE="215040" CHECKSUM="0x4C0A4668" MODULE_TYPE="WIN32" PE_CHECKSUM="0x3604A" LINKER_VERSION="0x0" LINK_DATE="01/25/2007 21:34:04" UPTO_LINK_DATE="01/25/2007 21:34:04" />
    <MATCHING_FILE NAME="components\foo_uie_albumart.dll" SIZE="241664" CHECKSUM="0xEEEF1894" MODULE_TYPE="WIN32" PE_CHECKSUM="0x49CBA" LINKER_VERSION="0x0" LINK_DATE="12/16/2007 08:22:23" UPTO_LINK_DATE="12/16/2007 08:22:23" />
    <MATCHING_FILE NAME="components\foo_uie_albumlist.dll" SIZE="261632" CHECKSUM="0x418C272F" MODULE_TYPE="WIN32" PE_CHECKSUM="0x44377" LINKER_VERSION="0x0" LINK_DATE="06/11/2007 13:13:53" UPTO_LINK_DATE="06/11/2007 13:13:53" />
    <MATCHING_FILE NAME="components\foo_uie_console.dll" SIZE="87040" CHECKSUM="0x3F531B12" MODULE_TYPE="WIN32" PE_CHECKSUM="0x169FD" LINKER_VERSION="0x0" LINK_DATE="11/22/2006 12:59:04" UPTO_LINK_DATE="11/22/2006 12:59:04" />
    <MATCHING_FILE NAME="components\foo_uie_explorer.dll" SIZE="237568" CHECKSUM="0x729F4AEB" MODULE_TYPE="WIN32" PE_CHECKSUM="0x3ECC6" LINKER_VERSION="0x0" LINK_DATE="07/06/2006 14:43:27" UPTO_LINK_DATE="07/06/2006 14:43:27" />
    <MATCHING_FILE NAME="components\foo_uie_graphical_browser.dll" SIZE="586240" CHECKSUM="0x7416C281" MODULE_TYPE="WIN32" PE_CHECKSUM="0x0" LINKER_VERSION="0x0" LINK_DATE="04/19/2008 19:37:53" UPTO_LINK_DATE="04/19/2008 19:37:53" />
    <MATCHING_FILE NAME="components\foo_uie_lyrics.dll" SIZE="357376" CHECKSUM="0x44F03331" MODULE_TYPE="WIN32" PE_CHECKSUM="0x5FFCD" LINKER_VERSION="0x0" LINK_DATE="06/22/2008 15:59:14" UPTO_LINK_DATE="06/22/2008 15:59:14" />
    <MATCHING_FILE NAME="components\foo_uie_lyrics_panel.dll" SIZE="421888" CHECKSUM="0x54C71493" MODULE_TYPE="WIN32" PE_CHECKSUM="0x75484" LINKER_VERSION="0x0" LINK_DATE="12/09/2006 17:05:27" UPTO_LINK_DATE="12/09/2006 17:05:27" />
    <MATCHING_FILE NAME="components\foo_uie_panel_splitter.dll" SIZE="270336" CHECKSUM="0x43C5FEA0" BIN_FILE_VERSION="0.1.0.0" BIN_PRODUCT_VERSION="0.1.0.0" PRODUCT_VERSION="0, 1, 0, 0" FILE_VERSION="0, 1, 0, 0" ORIGINAL_FILENAME="foo_uie_panel_splitter.dll" VERFILEDATEHI="0x0" VERFILEDATELO="0x0" VERFILEOS="0x4" VERFILETYPE="0x2" MODULE_TYPE="WIN32" PE_CHECKSUM="0x4A79E" LINKER_VERSION="0x0" UPTO_BIN_FILE_VERSION="0.1.0.0" UPTO_BIN_PRODUCT_VERSION="0.1.0.0" LINK_DATE="03/19/2008 14:30:19" UPTO_LINK_DATE="03/19/2008 14:30:19" VER_LANGUAGE="Japanese [0x411]" />
    <MATCHING_FILE NAME="components\foo_uie_playlists_dropdown.dll" SIZE="225280" CHECKSUM="0x7F7046BE" MODULE_TYPE="WIN32" PE_CHECKSUM="0x3CF5C" LINKER_VERSION="0x0" LINK_DATE="09/29/2007 01:03:33" UPTO_LINK_DATE="09/29/2007 01:03:33" />
    <MATCHING_FILE NAME="components\foo_uie_queuemanager.dll" SIZE="197632" CHECKSUM="0x392B3F95" MODULE_TYPE="WIN32" PE_CHECKSUM="0x33422" LINKER_VERSION="0x0" LINK_DATE="12/17/2006 02:21:36" UPTO_LINK_DATE="12/17/2006 02:21:36" />
    <MATCHING_FILE NAME="components\foo_uie_quicksearch.dll" SIZE="278528" CHECKSUM="0x4CCFD565" MODULE_TYPE="WIN32" PE_CHECKSUM="0x4A5F6" LINKER_VERSION="0x0" LINK_DATE="05/18/2007 11:31:07" UPTO_LINK_DATE="05/18/2007 11:31:07" />
    <MATCHING_FILE NAME="components\foo_uie_tabs.dll" SIZE="163840" CHECKSUM="0xBBE2A649" BIN_FILE_VERSION="0.2.5.0" BIN_PRODUCT_VERSION="0.2.5.0" PRODUCT_VERSION="0, 2, 5, 0" FILE_VERSION="0, 2, 5, 0" ORIGINAL_FILENAME="foo_uie_tabs.dll" VERFILEDATEHI="0x0" VERFILEDATELO="0x0" VERFILEOS="0x4" VERFILETYPE="0x2" MODULE_TYPE="WIN32" PE_CHECKSUM="0x33DDA" LINKER_VERSION="0x0" UPTO_BIN_FILE_VERSION="0.2.5.0" UPTO_BIN_PRODUCT_VERSION="0.2.5.0" LINK_DATE="10/17/2006 13:54:31" UPTO_LINK_DATE="10/17/2006 13:54:31" VER_LANGUAGE="Japanese [0x411]" />
    <MATCHING_FILE NAME="components\foo_uie_typefind.dll" SIZE="188416" CHECKSUM="0x40E63F41" MODULE_TYPE="WIN32" PE_CHECKSUM="0x3404D" LINKER_VERSION="0x0" LINK_DATE="10/22/2007 21:30:44" UPTO_LINK_DATE="10/22/2007 21:30:44" />
    <MATCHING_FILE NAME="components\foo_uie_vis_egoh.dll" SIZE="110592" CHECKSUM="0x51896C6B" BIN_FILE_VERSION="1.1.0.0" BIN_PRODUCT_VERSION="1.1.0.0" VERFILEDATEHI="0x0" VERFILEDATELO="0x0" VERFILEOS="0x40004" VERFILETYPE="0x2" MODULE_TYPE="WIN32" PE_CHECKSUM="0x1C7AF" LINKER_VERSION="0x0" UPTO_BIN_FILE_VERSION="1.1.0.0" UPTO_BIN_PRODUCT_VERSION="1.1.0.0" LINK_DATE="01/12/2007 20:20:05" UPTO_LINK_DATE="01/12/2007 20:20:05" />
    <MATCHING_FILE NAME="components\foo_uie_wmpvis.dll" SIZE="241664" CHECKSUM="0x71EB8DE0" MODULE_TYPE="WIN32" PE_CHECKSUM="0x49DC9" LINKER_VERSION="0x0" LINK_DATE="04/05/2007 21:40:05" UPTO_LINK_DATE="04/05/2007 21:40:05" />
    <MATCHING_FILE NAME="components\foo_ui_columns.dll" SIZE="1189376" CHECKSUM="0x8DB768A" MODULE_TYPE="WIN32" PE_CHECKSUM="0x12AE32" LINKER_VERSION="0x0" LINK_DATE="06/26/2008 15:37:24" UPTO_LINK_DATE="06/26/2008 15:37:24" />
    <MATCHING_FILE NAME="components\foo_ui_std.dll" SIZE="847360" CHECKSUM="0x5381DA95" MODULE_TYPE="WIN32" PE_CHECKSUM="0xDDB21" LINKER_VERSION="0x0" LINK_DATE="06/22/2008 17:39:56" UPTO_LINK_DATE="06/22/2008 17:39:56" />
    <MATCHING_FILE NAME="components\foo_unpack.dll" SIZE="163328" CHECKSUM="0xAB2EC3EA" MODULE_TYPE="WIN32" PE_CHECKSUM="0x36224" LINKER_VERSION="0x0" LINK_DATE="05/24/2008 15:23:10" UPTO_LINK_DATE="05/24/2008 15:23:10" />
    <MATCHING_FILE NAME="components\foo_utils.dll" SIZE="259584" CHECKSUM="0x7E890BBC" BIN_FILE_VERSION="0.5.0.0" BIN_PRODUCT_VERSION="0.5.0.0" PRODUCT_VERSION="0, 5, 0, 0" FILE_DESCRIPTION="Utilities for foobar2000" COMPANY_NAME=" " PRODUCT_NAME="foo_utils" FILE_VERSION="0, 5, 0, 0" ORIGINAL_FILENAME="foo_utils.dll" INTERNAL_NAME="foo_utils" LEGAL_COPYRIGHT="Copyright © 2005 Holger Stenger" VERFILEDATEHI="0x0" VERFILEDATELO="0x0" VERFILEOS="0x40004" VERFILETYPE="0x2" MODULE_TYPE="WIN32" PE_CHECKSUM="0x44E55" LINKER_VERSION="0x0" UPTO_BIN_FILE_VERSION="0.5.0.0" UPTO_BIN_PRODUCT_VERSION="0.5.0.0" LINK_DATE="02/08/2008 22:26:59" UPTO_LINK_DATE="02/08/2008 22:26:59" VER_LANGUAGE="Language Neutral [0x0]" />
    <MATCHING_FILE NAME="components\foo_verifier.dll" SIZE="175104" CHECKSUM="0x70597674" MODULE_TYPE="WIN32" PE_CHECKSUM="0x2EE36" LINKER_VERSION="0x0" LINK_DATE="08/29/2006 20:09:17" UPTO_LINK_DATE="08/29/2006 20:09:17" />
    <MATCHING_FILE NAME="components\foo_vis_shpeck.dll" SIZE="151552" CHECKSUM="0xC49D3220" MODULE_TYPE="WIN32" PE_CHECKSUM="0x30A09" LINKER_VERSION="0x0" LINK_DATE="05/29/2008 23:07:53" UPTO_LINK_DATE="05/29/2008 23:07:53" />
    <MATCHING_FILE NAME="components\foo_whatsnew.dll" SIZE="192512" CHECKSUM="0xAD15B52C" MODULE_TYPE="WIN32" PE_CHECKSUM="0x3BAF8" LINKER_VERSION="0x0" LINK_DATE="10/20/2007 18:52:59" UPTO_LINK_DATE="10/20/2007 18:52:59" />
    <MATCHING_FILE NAME="winamp\uninst-vis_milk.dll.exe" SIZE="37675" CHECKSUM="0x292FD4F" MODULE_TYPE="WIN32" PE_CHECKSUM="0x0" LINKER_VERSION="0x0" LINK_DATE="04/28/2002 23:25:30" UPTO_LINK_DATE="04/28/2002 23:25:30" />
    <MATCHING_FILE NAME="winamp\winamp.exe" SIZE="0" />
    <MATCHING_FILE NAME="winamp\Plugins\vis_milk.dll" SIZE="512000" CHECKSUM="0xF74AE267" MODULE_TYPE="WIN32" PE_CHECKSUM="0x0" LINKER_VERSION="0x0" LINK_DATE="07/31/2003 21:01:32" UPTO_LINK_DATE="07/31/2003 21:01:32" />
    <MATCHING_FILE NAME="winamp\Plugins\vms_desktop.dll" SIZE="49152" CHECKSUM="0x5E73A18A" MODULE_TYPE="WIN32" PE_CHECKSUM="0x0" LINKER_VERSION="0x0" LINK_DATE="10/29/2002 20:54:32" UPTO_LINK_DATE="10/29/2002 20:54:32" />
</EXE>
<EXE NAME="foo_lyricsgrabber.dll" FILTER="GRABMI_FILTER_THISFILEONLY">
    <MATCHING_FILE NAME="foo_lyricsgrabber.dll" SIZE="318976" CHECKSUM="0x841AD746" MODULE_TYPE="WIN32" PE_CHECKSUM="0x547C9" LINKER_VERSION="0x0" LINK_DATE="04/28/2008 17:09:19" UPTO_LINK_DATE="04/28/2008 17:09:19" />
</EXE>
<EXE NAME="kernel32.dll" FILTER="GRABMI_FILTER_THISFILEONLY">
    <MATCHING_FILE NAME="kernel32.dll" SIZE="989696" CHECKSUM="0x7D737C09" BIN_FILE_VERSION="5.1.2600.5512" BIN_PRODUCT_VERSION="5.1.2600.5512" PRODUCT_VERSION="5.1.2600.5512" FILE_DESCRIPTION="Windows NT BASE API Client DLL" COMPANY_NAME="Microsoft Corporation" PRODUCT_NAME="Microsoft® Windows® Operating System" FILE_VERSION="5.1.2600.5512 (xpsp.080413-2111)" ORIGINAL_FILENAME="kernel32" INTERNAL_NAME="kernel32" LEGAL_COPYRIGHT="© Microsoft Corporation. All rights reserved." VERFILEDATEHI="0x0" VERFILEDATELO="0x0" VERFILEOS="0x40004" VERFILETYPE="0x2" MODULE_TYPE="WIN32" PE_CHECKSUM="0xF44A2" LINKER_VERSION="0x50001" UPTO_BIN_FILE_VERSION="5.1.2600.5512" UPTO_BIN_PRODUCT_VERSION="5.1.2600.5512" LINK_DATE="04/14/2008 00:11:24" UPTO_LINK_DATE="04/14/2008 00:11:24" VER_LANGUAGE="English (United States) [0x409]" />
</EXE>
</DATABASE>
Title: Lyrics Grabber Feedback & Discussion
Post by: Fifoxtasy on 2008-07-02 02:17:26
my foobar crashes so bad it doesn't even create a report!
it happens when searching for lyrics of tracks with accents in the name like à, ê and so on
Title: Lyrics Grabber Feedback & Discussion
Post by: T.P Wang on 2008-07-05 06:31:24
I am now rewirtting some important parts of this component, may solve strange crash.
And I'm also writting a scriptable addon for this component which provide python language for creating providers, more comfortable than edit/compile them in c++.
Title: Lyrics Grabber Feedback & Discussion
Post by: Palombasso on 2008-07-08 02:13:39
Hello,
Amazing component. Dead simple to use.

Only one request: Do you think it would be possible to have an option to skip files which already have the Lyrics tag, as to speed up processing large sets of files and don't have to overwrite existing tags.
Title: Lyrics Grabber Feedback & Discussion
Post by: _oao on 2008-07-08 03:53:27
I had some problems while downloading some lyrics to an Einstürzende Neubauten album (Ende Neu), with 2 tracks to be more precisely.
These lyrics were not found because:

(my track tag) vs (lyricwiki track title)
"Installation Nº1" vs "Installation No. 1"
"Nnnaaammm" vs "NNNAAAMMM"

Title: Lyrics Grabber Feedback & Discussion
Post by: Ritsl on 2008-07-08 15:55:55
Trying out this component now, but got an error message "Unhandled exception in querying LyricWiki..." "invalid string position". Looking at the file properties there is nothing exceptional, just lower half ASCII characters. Most songs from the same album don't give the problem, some do. If I try to look up the full album, the error message also shows, and lyrics for none of the songs will be made available. The album is 'Tracks' from Bruce Springsteen.

Edit: seems to happen when there are double encoded characters in the lyricwiki, as in
Code: [Select]
&quot;
Title: Lyrics Grabber Feedback & Discussion
Post by: Mar2zz on 2008-07-08 18:45:05
Nice component. 2.0 beta crashes foobar without leaving a report. foob is instantly gone. (selected 12000 tracks to update all)

1.6 is fine though. great component.
Title: Lyrics Grabber Feedback & Discussion
Post by: Ritsl on 2008-07-09 20:13:32
Crashes like Mar2zz describes on a specific song here: "Truckdrivin Neighbors Downstairs (Yellow Sweat)" by Beck, from the album Mellow Gold.
Title: Lyrics Grabber Feedback & Discussion
Post by: _oao on 2008-07-12 10:59:12
I getting a repeated crash with this song: "Teenage Sensation" by Gus Gus... :-(

I'm using Lyrics Grabber 0.2.0 Beta, tagging to an UNSYNCEDLYRICS tag!

I also have a feature request:
Can you add a link to the artists lyrics page on the results dialog?
Title: Lyrics Grabber Feedback & Discussion
Post by: T.P Wang on 2008-07-12 13:49:53
Because of a lot of crashes when meet special characters, I've fixed them 0.2.1 Beta, I hope I can finish a new rewritten Lyrics Grabber next month 

For all downloaded 0.2.0 beta, please use 0.2.1 beta instead, thankss for the bug report.
Title: Lyrics Grabber Feedback & Discussion
Post by: jmccrohan on 2008-09-27 17:38:51
Just thought I'd inform you that your plugin seems to be broken with the new lyric wiki (http://lyricwiki.org/Main_Page) site.


All tracks just return no lyrics found. Bit of fiddling with the regex and it should be back to normal
Title: Lyrics Grabber Feedback & Discussion
Post by: T.P Wang on 2008-09-27 19:07:56
Quote
Just thought I'd inform you that your plugin seems to be broken with the new lyric wiki site.


All tracks just return no lyrics found. Bit of fiddling with the regex and it should be back to norma


I've had a quick fix and uploaded 0.2.2 Beta, I hope it works now.
Title: Lyrics Grabber Feedback & Discussion
Post by: jmccrohan on 2008-09-27 20:29:10
Quote
Just thought I'd inform you that your plugin seems to be broken with the new lyric wiki site.


All tracks just return no lyrics found. Bit of fiddling with the regex and it should be back to norma


I've had a quick fix and uploaded 0.2.2 Beta, I hope it works now.

Much appreciated.
Title: Lyrics Grabber Feedback & Discussion
Post by: hariskar on 2008-10-01 17:02:25
lyricwiki.org is down? I can't find any lyrics with 0.2.2
Title: Lyrics Grabber Feedback & Discussion
Post by: anonnamiss on 2008-10-16 02:16:46
How do I install 0.2.2? I unzipped the file and it instantly went into my progfiles/foobar folder, created a folder called foo_lyricsgrabber.source. then when i open foo it didn't update in the components list. Then tried copying this "source" folder into the components folder, and it still didn't update. I'm just confused because there isn't a dll file like usual

Ah nvm...Just realized I downloading the wrong file. Ignore me
Title: Lyrics Grabber Feedback & Discussion
Post by: starchaos on 2008-10-16 16:56:44
Thanks for making this! I was searching for something to grab lyrics from lyricwiki for a long time.
Title: Lyrics Grabber Feedback & Discussion
Post by: wortels on 2008-10-21 18:23:16
On lyrics for some songs like this
http://lyricwiki.org/Nelly_Furtado:In_God%27s_Hands (http://lyricwiki.org/Nelly_Furtado:In_God%27s_Hands)

I only get "Send "Nelly Furtado:In God's Hands" Ringtone to Cell Phonephone" in the lyrics field.
Title: Lyrics Grabber Feedback & Discussion
Post by: wortels on 2008-10-22 06:04:25
I think this string they added is new and now its appearing in all the downloaded lyrics.

BTW are you download the whole page and then parsing or using the soap api?
Title: Lyrics Grabber Feedback & Discussion
Post by: u11n on 2008-10-22 07:21:03
it seems that this component searches for lyrics according to the file name...i cant find lyrics for APE files...
Title: Lyrics Grabber Feedback & Discussion
Post by: T.P Wang on 2008-10-22 09:30:53
@aliumalik:
I parse the whole page instead of using SOAP API just beacuse I can't find a efficient way to use SOAP in C++ without any anonying dependencies.
Anyway, this problem will be fixed soon.

@u11n:
Wrong, this component use titleformating [%artist%] and [%title%]


EDIG: I've fix that problem in the 0.2.3 Beta.
Title: Lyrics Grabber Feedback & Discussion
Post by: pyr0rrzzz on 2008-10-23 15:43:33
Great component. But how can I add more providers like darklyrics.com (probably the best source for metal lyrics)? Do I need to code and compile it myself? 
Title: Lyrics Grabber Feedback & Discussion
Post by: cartman(2vd) on 2008-10-23 19:21:37
Great component. But how can I add more providers like darklyrics.com (probably the best source for metal lyrics)? Do I need to code and compile it myself? 


+1 for this
Title: Lyrics Grabber Feedback & Discussion
Post by: Nemphael on 2008-10-23 20:10:53
I've been searching for a lot of lyrics today and I've been able to get some. Unfortunately, most of those are instrumentals I haven't marked yet - or they simply doesn't have lyrics on Lyricwiki. Still, the songs I did find lyrics for had to be updated. The problem, though, is foo_lyricsgrabber seems to update/rewrite tags for all files included in the search. Shouldn't foo_lyricsgrabber skip songs it didn't find lyrics for and just write lyrics it has found?
Title: Lyrics Grabber Feedback & Discussion
Post by: starchaos on 2008-10-24 11:15:26
[BUG REPORT] : When using this plugin to find popular songs, I get no hits, but they are on the site.

example:
I can find all of "Pretty Hate Machine" by Nine Inch Nails besides
1. Head Like a Hole (Pretty popular track; I was a little flabbergasted at the thought of it not being on there)
2. Sin

example 2:
I can find all of "The Downward Spiral" by Nine Inch Nails besides
1. Heresy
2. Closer (again two very popular songs)

example 3:
I can find all of "With Teeth" by Nine Inch Nails besides
1. The Hand That Feeds

example 4:
Nine Inch Nails - The Perfect Drug and all the remixes

All my tags are correct and they are ID3v2 2.4 in UTF-8 if that helps any. (I don't really know if it does or not)

Hope this helps you perfect your next release  Thanks again for writing such lovely plugin!

edit: I went to investigate to help you out a little further and it seems all the songs I'm not catching with this plugin has multiple versions; perhaps this is the underline cause?
Title: Lyrics Grabber Feedback & Discussion
Post by: T.P Wang on 2008-10-25 04:45:54
Quote
But how can I add more providers like darklyrics.com (probably the best source for metal lyrics)? Do I need to code and compile it myself?

It's not recommended to add it manually now, even I've reserved support for that. Because I'm not satisfied witch some design of this component and I've started to rewrite the component, in order to provide more and customized providers.
So, what on my schedule is:
Quote
When using this plugin to find popular songs, I get no hits, but they are on the site.

Fixed in 0.2.4 Beta
Title: Lyrics Grabber Feedback & Discussion
Post by: Nemphael on 2008-10-26 01:59:04
I still have problems with lyrics not being found. A search for almost any of Sarah McLachlan's songs (http://lyricwiki.org/Sarah_McLachlan) results in a "Not found"; except "World on Fire" (http://lyricwiki.org/Sarah_McLachlan:World_On_Fire) for which I get a "Found".
Title: Lyrics Grabber Feedback & Discussion
Post by: T.P Wang on 2008-10-26 07:59:35
@Nemphael:
Fixed in 0.2.5 Beta, due to a case mismatch(change $caps() to $caps2())
Title: Lyrics Grabber Feedback & Discussion
Post by: wolfsong on 2008-11-20 11:57:46
I've noticed that since I store multiple artists in the ARTIST tag, many of my searches fail. Any plans to either ignore the additional artists in the search or simply use them to search for featured artists on LW? A similar problem exists for punctuation.
Title: Lyrics Grabber Feedback & Discussion
Post by: S9Th on 2008-11-25 15:33:56
There is a problem with "/" character. Song is not found if its name contains this character.
Title: Lyrics Grabber Feedback & Discussion
Post by: Nemphael on 2008-11-25 16:05:59
As S9Th said, only it applies to both title and artist.

As for adding custom scripts, how's that going? I've found letssingit.com to be quite reliant/resourceful, especially for Norwegian music.
Title: Lyrics Grabber Feedback & Discussion
Post by: S9Th on 2008-11-25 16:27:14
One more thing. Let's say a word in a song title contains a hyphen, for instance "Punch-Drunk". Foobar capitalization makes it "Punch-drunk" and thus the song can't be found on lyricwiki. Same goes for the apostrophe, like in the word "L'Astronaut"
Title: Lyrics Grabber Feedback & Discussion
Post by: foorious on 2008-12-04 11:40:40
@S9Th : $caps would do what you are saying, but $caps2 would work perfectly with "Punch-Drunk", "L'Astronaut", and so.

@T.P Wang, several questions / suggestions / feature requests :

1. How is your code rewriting going ? What next version is supposed to be the "big rewritten one" ?

2. I think storing lyrics in tags isn't a good idea, since it messes up with foobar's search : it would be nice if foobar's search could optionally not take some tag fields into account, but right now it just searches all tag fields including the %lyrics%, %unsyncedlyrics%, etc., which can be a problem when you have embedded lyrics because you might get a lot of irrelevant results. So for me too the best is to store lyrics as separate files.

3. Have you given thought to q-stankovic suggestion ? (if %artist% and %title% doesn't work, then try to use %album artist%, %album% and %tracknumber%)

4. In fact I think q-stankovic suggestion would be even more efficient, since it would (at least in theory) allow to find different lyrics for different versions of the same song that would be present in different albums. Thus, I think maybe %album artist%, %album% and %tracknumber% could be optionally implemented as the default search method. What do you think ?

5. Even better : let's assume we find some lyrics with the %album artist%, %album% and %tracknumber% method, but that these lyrics don't match the audio file because of a different track order (different editions of the same album might have different track orders, especially for bonus tracks). In that case, embedding lyrics wouldn't be a good idea, obviously. Instead, saving the lyrics as a separate file like %album artist% - %album% - %title% (regardless of the track number) would still work perfectly.

6. Like many users, I store my music mainly as whole albums. For example among my 25.000 tracks, more than 23.000 are whole albums. So it could be nice to have another option where LyricsGrabber would :
- Look only for %album artist% and %album% information
- Find the corresponding LyricWiki page
- Then follow the links in order to download ALL album tracks
- And store them (once again) as separate text files.
It could be a "Get lyrics for the whole album" checkbox or something like that.
Bonus side effect : no more title orthograph problems to find the lyrics ! (provided the %album artist% and %album% are correct of course, but that's much easier)

7. There is one useful option that I'd really love to see. Let's assume I use LyricsGrabber to look for my 25.000 lyrics or so and store them as separate files. Once that is done, how can I use foobar to quickly find which tracks have found lyrics, and which tracks have missing lyrics ? Well, I would suggest an additional tag field (I would still call it %lyrics% but best would be if it was user-definable) where LyricsGrabber would write something (e.g. "Yes") ONLY if it has found lyrics for the corresponding song. That way we could do a simple foobar search : "%lyrics% PRESENT" or "%lyrics% MISSING" to get all the songs with lyrics or all the song with missing lyrics and deal with them.

8. Some minor suggestions to improve the search methods :
- Whatever the search method is (%artist% and %title% or %artist%, %album% and %tracknumber%), if both %album artist% and %artist% are present, then look alternatively for both in order to find the lyrics online (one never knows...),
- Be able to handle multivalue fields (e.g. : %artist% = "Brandy; Monica" => Look alternatively for "Brandy & Monica", "Brandy And Monica", "Brandy", and "Monica").

Well, what do you think ?
Title: Lyrics Grabber Feedback & Discussion
Post by: S9Th on 2008-12-04 13:42:21
Lyrics in tags are useful if you have an ipod and want it to display lyrics. So saving them to a file should be an option, not the only way to store them. I hope you meant that )
Title: Lyrics Grabber Feedback & Discussion
Post by: foorious on 2008-12-04 18:19:49
Of course I meant that : saving lyrics to a file should be an option (or maybe the default behaviour, provided saving them to tags remains an option). The fact is that both should be possible.

Of course Lyrics in tags are useful when you have a portable device such as an iPod. The only thing I've said is that embedded lyrics aren't useful within foobar because they simply mess up with foobar's search, that's all.

Other than that, I hope T.P Wang will find all my comments useful.
Title: Lyrics Grabber Feedback & Discussion
Post by: q-stankovic on 2008-12-04 18:32:15
Of course Lyrics in tags are useful when you have a portable device such as an iPod. The only thing I've said is that embedded lyrics aren't useful within foobar because they simply mess up with foobar's search, that's all.


Although i consider the file itself to be the best place for storing lyrics i understand the wish to store them as textfiles. Indeed it would be an improvment of this plugin to offer that as long as it doesn't result in bloated options. Concerning the problem you mentioned in the quote above i believe that it should be solved by the foobar core as they are other fields beside the lyrics tag that contain text (f.e. COMMENT) - the simplest i can imagine would be that foobar excludes that fields that are declared as multiline fields in the advanced preferences.
Title: Lyrics Grabber Feedback & Discussion
Post by: foorious on 2008-12-04 19:50:54
Yes of course, foobar core could exclude multiline fields from search queries. Or even better, we could set up manually a list of excluded fields (just like in advanced preferences). For example : "Excluded Search Fields : LYRICS;UNSYNCED LYRICS;COMMENTS;"

Unfortunately, we don't know if this functionality WILL be developed or not (it's not currently on the list of planned features AFAIK - maybe there should be a topic for that ?), and even if it was to be developed, we still wouldn't know WHEN it would be developed (and some features can take a whole lot of time before they are implemented).

So in the meanwhile, I still think storing lyrics as text files is a better solution for most users, at least for the "grabbing" part of the job. Because like I've just said above, text files allow us to get rid of the "tracknumber problem" inherent to the "album artist - album - tracknumber" search mode that you suggested and that I approved (I'll say it again - tracknumbers not corresponding between different editions of the same album).

But of course there could be a second part of the job (once foobar's core is ready for example), where the lyrics could be stored in the files, after checking them in order to be sure that the good lyric is related to the good file. In that case the text files would be a temporary (yet excellent) solution.

Best of both worlds ?


EDIT - one more suggestion, that will be number 9 :
In LyricWiki we can read this : "Tom Petty And The Heartbreakers instead of Tom Petty & The Heartbreakers - Words should not be substituted with their equivalent symbols"
Thus, I would recommend that LyricWiki can offer some tolerance here :
1. Search for %artist% (or %album artist% or whatever relevant field)
2. If the search gives results, then everything's fine,
3. If the search doesn't give results then also search for $replace(%artist%,' & ',' And ') (or $replace(%album artist%,' & ',' And ') or whatever relevant field)
Title: Lyrics Grabber Feedback & Discussion
Post by: T.P Wang on 2008-12-08 07:17:51
Quote
Any plans to either ignore the additional artists in the search or simply use them to search for featured artists on LW? A similar problem exists for punctuation.

Quote
There is a problem with "/" character. Song is not found if its name contains this character.

Quote
EDIT - one more suggestion, that will be number 9:
...

Quote
8. Some minor suggestions to improve the search methods
...

Reasonable, and they are now considered in the next version, some comments:
1. For multivalue fields: check return state of searching each separate part of %artist%(and %album artist% if exists), if 404, then start to alternative search the next one.
2. Handle special character: "&" and "/"  (& could be replaced with "And"), search them one by one, with the same criteria as for multivalue fields
And, if you have some other suggestions, feel free to post out.


Quote
As for adding custom scripts, how's that going?

Quote
1. How is your code rewriting going ? What next version is supposed to be the "big rewritten one" ?

Rewritting of foo_lyricsgrabber is nearing completion.
Finished the "Prototype" version of the extension which provids python scripting support won't take much time.
My plans on changing behavior and adding new options for Configruation window will be delayed becasue I need to get feedback of the next version and take some advice on how to make a "featured", "non-bloated" configruation window without confusing new users.


Quote
2. I think storing lyrics in tags isn't a good idea, since it messes up with foobar's search

I'll add it to the TODO List, and implement it in the near future.


Quote
3. Have you given thought to q-stankovic suggestion ? (if %artist% and %title% doesn't work, then try to use %album artist%, %album% and %tracknumber%)
...
4.In fact I think q-stankovic suggestion would be even more efficient,
...
5. Even better
...

Yes, I did try to implement that some time ago(Dream Theater should handled well enough), however, I found it hard to maintain since then. So I planed to rewrite the code and provide scriptting support, which is more reasonable to do that job than C++
Title: Lyrics Grabber Feedback & Discussion
Post by: T.P Wang on 2008-12-08 07:37:37
Quote
6. Like many users, I store my music mainly as whole albums.
...

I think you will run into trouble if there are "LIMITED", "BOUNES", "TRUNCATED" releases by different publishers.

Quote
7. There is one useful option that I'd really love to see.
...

It sounds reasonable but I have some question:
What should happened if lyrics file is moved or missing? Of course, monitoring files as Media Library is good but it's a technical for me, and I think it will make LyricsGrabber too complex.
Title: Lyrics Grabber Feedback & Discussion
Post by: prov on 2008-12-08 12:16:24
I don't know if it's planed for this next version, but I would really like if it was possible to download lrc lyrics, and store them in a file (the same name as music file, but with .lrc at the end)...
Title: Lyrics Grabber Feedback & Discussion
Post by: wolfsong on 2008-12-08 13:40:47
Quote

Any plans to either ignore the additional artists in the search or simply use them to search for featured artists on LW? A similar problem exists for punctuation.


Reasonable, and they are now considered in the next version, some comments:
1. For multivalue fields: check return state of searching each separate part of %artist%(and %album artist% if exists), if 404, then start to alternative search the next one.


I'm not sure I'm following you. Are you suggesting I rewrite the tags and search again?
Title: Lyrics Grabber Feedback & Discussion
Post by: foorious on 2008-12-08 13:50:32
Quote
7. There is one useful option that I'd really love to see. ...
It sounds reasonable but I have some question:
What should happened if lyrics file is moved or missing? Of course, monitoring files as Media Library is good but it's a technical for me, and I think it will make LyricsGrabber too complex.

What should happen ? Well, nothing in fact. Let me explain :
For me, the purpose of the (let's call it) %found lyrics% field (contents : either nothing or "Yes") is only to be able to find within foobar all songs which lyrics have been found and downloaded by Lyrics Grabber. It does not "associate" in any way the songs with the lyrics because that's not its purpose. So if the user decides to move or delete the lyrics files... well, that's his own problem : the %found lyrics% field will remain until he changes it within foobar.

So all I'm asking is for Lyrics Grabber to be able - optionally - to write a %found lyrics% tag with the "Yes" content every time it finds and downloads a given lyrics file, that's all. For me it would be a very useful feature, because I could easily monitor within an autoplaylist all songs with missing lyrics (query : "%found lyrics% MISSING") and try to find the missing lyrics either manually on LyricWiki or maybe on other lyrics sites, etc.

You probably could add this as a user-selectable option in Lyrics Grabber prefs (checkbox : "Add %found lyrics% tag when lyrics are found and downloaded" or something like that).

I would really like if it was possible to download lrc lyrics, and store them in a file

I'd like that too, but AFAIK LyricWiki doesn't store any LRC lyrics, and Lyrics Grabber currently only queries LyricWiki so...

There are however other 3rd-party components that can download LRC lyrics when they are present. Try Lyric Show Panel for instance (also maintained by T.P Wang  ).
Title: Lyrics Grabber Feedback & Discussion
Post by: T.P Wang on 2008-12-08 14:44:31
@wolfsong:
No, It's only a list of solution for multivalue fields.

@foorious:
Okay, I understand, I'll add it to the TODO list.
Title: Lyrics Grabber Feedback & Discussion
Post by: wolfsong on 2008-12-08 18:29:44
@wolfsong:
No, It's only a list of solution for multivalue fields.

I still don't understand what you're saying here.
Title: Lyrics Grabber Feedback & Discussion
Post by: prov on 2008-12-08 22:33:51
I would really like if it was possible to download lrc lyrics, and store them in a file

I'd like that too, but AFAIK LyricWiki doesn't store any LRC lyrics, and Lyrics Grabber currently only queries LyricWiki so...

From what I've read, the next version could allow other download sites and so I hope lrc lyrics sites !

Quote
There are however other 3rd-party components that can download LRC lyrics when they are present. Try Lyric Show Panel for instance (also maintained by T.P Wang  ).

Lyric show panel is quite buggy, and I can't use it. I have to use Lyricist, less buggy, but it has not Lyric Show database...
Title: Lyrics Grabber Feedback & Discussion
Post by: tpijag on 2008-12-08 22:43:15
Lyric show panel is quite buggy, and I can't use it. I have to use Lyricist, less buggy, but it has not Lyric Show database...


What bugs & problems do you have with Lyric show panel.
Not perfect, but it works pretty well for me.

terry

Edit: there is a specific thread / topic for lyric show panel
Title: Lyrics Grabber Feedback & Discussion
Post by: foorious on 2008-12-09 19:31:05
I agree : Lyric Show Panel is a good component, quite stable here (been using it for more than a year, no problems so far). Maybe a bit complicated, but once correctly set up, it does its job as intended (including LRC lyrics).

So prov, before pretending that a component is "quite buggy" as you have just said, please check your own configuration and try a fresh foobar (or Windows) install if needed. Chances are that the problem is coming from your side.

Funny how this happens often when a user comes saying that a given component is "buggy" (instead of saying "maybe I've done something wrong")... I think pretending those things without claim of proof is not very respectful for the developer/maintainer, which is T.P Wang for both components in case you missed it.

BTW thank you T.P Wang for your comments. Looking forward for the next improved Lyrics Grabber release ! 
Title: Lyrics Grabber Feedback & Discussion
Post by: q-stankovic on 2008-12-10 12:35:30
What should happen ? Well, nothing in fact. Let me explain :
For me, the purpose of the (let's call it) %found lyrics% field (contents : either nothing or "Yes") is only to be able to find within foobar all songs which lyrics have been found and downloaded by Lyrics Grabber. It does not "associate" in any way the songs with the lyrics because that's not its purpose. So if the user decides to move or delete the lyrics files... well, that's his own problem : the %found lyrics% field will remain until he changes it within foobar.


Not very elegant - if such an option already forces user interaction to remove tags manually which was written once automatically so why not use the quicktagger instead to set manually such a tag- the effort is not very much higher to do so. Don't be angry, foorious, but i believe that such options in summary have potential for bloating the components preferences.
Title: Lyrics Grabber Feedback & Discussion
Post by: prov on 2008-12-10 17:59:59
I'm very thankful for T.P.Wang and I know he is one of the best active component developers. But he has admitted himself Lyrics Show Panel has some limitations (due to the previous developer).

And I definitively think the Lyrics Grabber component is well-thought. It's independent of UI, and I suppose some (future) UI Lyrics components could/will use an API to consider Lyrics Grabber. :-)
Title: Lyrics Grabber Feedback & Discussion
Post by: T.P Wang on 2008-12-11 05:22:13
Tiny changes to the 0.2.x branch:
0.2.6 Beta
* Add lyricsplugin.com as an alternative source
* Minor cleanups
Title: Lyrics Grabber Feedback & Discussion
Post by: grimes on 2008-12-11 08:43:10
Thank you for new version!

Two Problems:

1. LyricsPlugin shows always <found> and adds empty <LYRICS>-Tags.

2. In context menu: Configuration is grayed out for some reason after used once.
Title: Lyrics Grabber Feedback & Discussion
Post by: T.P Wang on 2008-12-11 12:11:08
Quote
1. LyricsPlugin shows always <found> and adds empty <LYRICS>-Tags.

2. In context menu: Configuration is grayed out for some reason after used once.

Fixed in 0.2.6.1 Beta, Thanks for reporting.
Title: Lyrics Grabber Feedback & Discussion
Post by: foorious on 2008-12-11 12:30:13

What should happen ? Well, nothing in fact. Let me explain :
For me, the purpose of the (let's call it) %found lyrics% field (contents : either nothing or "Yes") is only to be able to find within foobar all songs which lyrics have been found and downloaded by Lyrics Grabber. It does not "associate" in any way the songs with the lyrics because that's not its purpose. So if the user decides to move or delete the lyrics files... well, that's his own problem : the %found lyrics% field will remain until he changes it within foobar.


Not very elegant - if such an option already forces user interaction to remove tags manually which was written once automatically so why not use the quicktagger instead to set manually such a tag- the effort is not very much higher to do so. Don't be angry, foorious, but i believe that such options in summary have potential for bloating the components preferences.

Why not use a tagging component ? Well, because it's impossible when you have separate lyrics files instead of embedded lyrics : how would you know exactly which of all my 25.000 music files have separate lyrics files if you don't set up previously a tag that says "Yes, this file has a separate lyrics file" ? 

This option is useless for those like you who have embedded lyrics. But it's very useful (I'd even say mandatory) for those like me who want to have separate lyrics files (until the blessed day when foobar will be able to handle the "Excluded search fields" in its advanced prefs  ).

Thanks T.P Wang for having understood that, and I'm really looking forward for an implementation of this feature to really begin using Lyrics Grabber.


P.S. : if we want to keep prefs simple, then this option could be automatically enabled when the option "store lyrics in a separate file" is enabled. So in the prefs there would be only a single visible option "store lyrics in a separate file" and we would have this operatory mode :
- Embedded lyrics => lyrics stored in a %lyrics% tag AND NO %found lyrics% tag
- Separate lyrics files => lyrics stored in a separate file AND %found lyrics% tag automatically enabled
Would that be simple enough for you q-stankovic ?
Title: Lyrics Grabber Feedback & Discussion
Post by: _oao on 2008-12-11 12:40:38
Hi T.P Wang, i think the download link is broken...
It is pointing to version v0.2.0 beta (Build: Apr 29 2008 00:10:12)!
Title: Lyrics Grabber Feedback & Discussion
Post by: T.P Wang on 2008-12-11 13:10:55
Quote
Hi T.P Wang, i think the download link is broken...
It is pointing to version v0.2.0 beta (Build: Apr 29 2008 00:10:12)!
f

Oh, Such A Mistake. My bad, please download it again
Title: Lyrics Grabber Feedback & Discussion
Post by: _oao on 2008-12-11 13:49:16
Thanks, the download link it's working now.

But i spotted one problem:

LyricsPlugin shows always <found> even for instrumentals and adds this to tags:
[ Edit ] [ Search Google ] [ Configure ]
Title: Lyrics Grabber Feedback & Discussion
Post by: T.P Wang on 2008-12-11 14:06:58
Quote
LyricsPlugin shows always <found> even for instrumentals and adds this to tags:
[ Edit ] [ Search Google ] [ Configure ]

I won't fix that soon, however, if you find it really anonying, just use a Hex editor to open foo_lyricsgrabber.dll, then find:
Code: [Select]
[\r\n]*(.+?)

Then changed it like this (change one character '+' to '*'):
Code: [Select]
[\r\n]*(.*?)
Title: Lyrics Grabber Feedback & Discussion
Post by: grimes on 2008-12-11 16:04:30
foobar crash during querying lyricsplugin:

artist: Bob Dylan
track title: Highway 61 Revisited
(maybe are numbers the problem)

(no crash report)
Title: Lyrics Grabber Feedback & Discussion
Post by: T.P Wang on 2008-12-11 18:34:16
foobar crash during querying lyricsplugin:

artist: Bob Dylan
track title: Highway 61 Revisited
(maybe are numbers the problem)

(no crash report)

Confirmed, it's because that "&quot;" at the end of the lyric, will fixed in the next version.
Title: Lyrics Grabber Feedback & Discussion
Post by: T.P Wang on 2008-12-12 10:24:30
0.2.6.2 beta released, if you find any problem, please let me know.
Title: Lyrics Grabber Feedback & Discussion
Post by: q-stankovic on 2008-12-12 12:45:32
Why not use a tagging component ? Well, because it's impossible when you have separate lyrics files instead of embedded lyrics : how would you know exactly which of all my 25.000 music files have separate lyrics files if you don't set up previously a tag that says "Yes, this file has a separate lyrics file" ? 


I am a little bit confused - if your tracks already contain lyrics as textfiles you must download them again to get your desired tag. Or are you planning to download all the lyrics for all 25000 tracks with one click?

This option is useless for those like you who have embedded lyrics. But it's very useful (I'd even say mandatory) for those like me who want to have separate lyrics files (until the blessed day when foobar will be able to handle the "Excluded search fields" in its advanced prefs tongue.gif ).


As i said lyricsfiles are a reasonable feature i was thinking about watching them outside of foobar in explorer/editor. Your initial point is a missing feature inside of foobar wich induced you to request a totally other feature in an special component. Your request shows how a fullfilled request (textfiles) causes an avalanche of new feature and option requests although the origin problem could be solved without any user interaction or option.

P.S. : if we want to keep prefs simple, then this option could be automatically enabled when the option "store lyrics in a separate file" is enabled. So in the prefs there would be only a single visible option "store lyrics in a separate file" and we would have this operatory mode :
- Embedded lyrics => lyrics stored in a %lyrics% tag AND NO %found lyrics% tag
- Separate lyrics files => lyrics stored in a separate file AND %found lyrics% tag automatically enabled
Would that be simple enough for you q-stankovic ?


Please don't get me wrong: I understand why you would like to have that feature. I even believe that it can make sense to have opportunity thatt foobar tells us if a track is mapped to a cover picture or lyrics file - that could be done by foobar. But please see that in your suggestion for lyrics_grabber every option of that kind forces new users to bother with its full meaning and that in that sense just 2 or 3 feature/options more of that style will result in breaking the promise to develop a simple and clean component. But finally it is up to T.P. Wang to write what he think is senseful.

By the way: You are an user of DUI? How will you display your lyrics then?
Title: Lyrics Grabber Feedback & Discussion
Post by: foorious on 2008-12-13 13:05:15
q-stankovic... I understand you are feeling concerned, but please understand one thing : what's a bit boring with you is that when you don't understand something, you are always requesting for more and more information and you are making endless posts simply because you don't know about (for example here) the details of my own config. So now I'm being forced to explain them to you, which will take me some time, and that is a bit boring because right now I'm focused on the implementation of that tiny new feature by T.P Wang, and not on going off-topic by explaining publicly the details of my config. I hope you undersand this.

So here are my answers, and I really hope you won't question me again  :

I am a little bit confused - if your tracks already contain lyrics as textfiles you must download them again to get your desired tag. Or are you planning to download all the lyrics for all 25000 tracks with one click?

None of my tracks (excepted some test files) have lyrics. I'm waiting for a component like Lyrics Grabber to be "mature enough" in order to start downloading them. And yes, I'm intending do do that in batch-mode if possible (although maybe not for 25.000 tracks at once).

As i said lyricsfiles are a reasonable feature i was thinking about watching them outside of foobar in explorer/editor. Your initial point is a missing feature inside of foobar wich induced you to request a totally other feature in an special component.

In no way I would want to watch separate lyrics files outside foobar ! All separate lyrics files will be accessed within foobar of course. How ? Read on.

I even believe that it can make sense to have opportunity thatt foobar tells us if a track is mapped to a cover picture or lyrics file

We're not talking about mapping here. We're only talking about saving a lyrics file and writing a tag that says "Yes, this track has a separate lyrics file". That's all, period.

By the way: You are an user of DUI? How will you display your lyrics then?

I have already said that in this topic. I'm using the excellent Lyric Show Panel (with Dockable Panels) and a keyboard shortcut to make it appear / disappear. It works great with DUI, no problems so far.
Title: Lyrics Grabber Feedback & Discussion
Post by: q-stankovic on 2008-12-13 14:22:52
what's a bit boring with you is that when you don't understand something ...


You don't understand something too!    F.E: With "As i said lyricsfiles are a reasonable feature i was thinking about watching them outside of foobar in explorer/editor. Your initial point is a missing feature inside of foobar wich induced you to request a totally other feature in an special component."
i just wanted to repeat again that the origin problem should be solved in foobar as the missing exclusion in searches are your initial and only point. With the first part of that quote i wanted to show some good reasons why textfiles can be useful. But if you have as only argument the search behaviour in foobar you indeed can't tell us any good reason to store lyrics inside textfiles instead of filetags. And just because of that search behaviour in foobar you are requesting an huge amount of features for another component: downloading textfiles, an option for storing a tag in files that lyrics are found, an option to define name of that tag and so on...

you are always requesting for more and more information and you are making endless posts simply because you don't know about (for example here) the details of my own config.


Hmm, i wasn't really interested in your configuration but in T.P. Wangs promise to develop a simple and clean component. Do you at least see why the requested way of implementing that desired feature could result in lost usabilty and simplicity for newbies - that is exactly the reason for me that i never used T.P. Wangs lyric_show_panel. Are you aware that if lyrics_grabber would have a feature to tag files automatically it then could be added to the list of problematic components like lyric_show_panel.

Based on your request let me ask a question: If you are more interested in the automatically settet tag than in the automatically setted tag would you be satisfied with following:

In the lyrics grabber window where you will have to press a button like "Store as textfile" and beside that button is a checkbox "tag files that lyrics are found" you will have to check - and nothing else: no options in preferences and no possibility to define the name of that tag.
You will have your desired feature and lyrics grabber wouldn't violate good behaviour with tagging files without user interaction.


By the way:
A direct question to Peter or Foosion: Can we expect that foobar somedays is changing its search behaviour in queries in that sense that multiline fields are excluded from simple search?

Edit: I took a look in the list of problematic and maybe an automatically setted tag like you, foorious, suggested wouldn't mean the same what brought lyric_show to the list - but however: it should be available as option in the download window and not anywhere in the preferences enabled by default.  Just my decent opinion how a good and usable component should be designed after i have seen so much horrible stuff in the last three or four years as components.
Title: Lyrics Grabber Feedback & Discussion
Post by: 2E7AH on 2008-12-13 15:05:52
why don't you PM each other and post the results?
Title: Lyrics Grabber Feedback & Discussion
Post by: foorious on 2008-12-13 17:31:07
@2E7AH : maybe because despite a part of off-topic (which I regret) we are still discussing about Lyrics Grabber ?

Your initial point is a missing feature inside of foobar wich induced you to request a totally other feature in an special component."

No : this is not true, because even if the "exclude search fields" feature was added to foobar someday, there would still be people interested in storing lyrics as separate text files, just like there are other people interested in storing artwork as separate picture files. It's their choice and we all need to respect that without asking them for their own personal reasons.
So to sum it up : I would have requested this feature anyway, simply because it becomes very useful as soon as you have lyrics as separate text files.

Do you at least see why the requested way of implementing that desired feature could result in lost usabilty and simplicity for newbies

IMO "newbie" doesn't mean "complete dumb"    : a single checkbox like "Store lyrics as separate text files and enable a %lyrics found% tag" in a prefs window (especially if it's unchecked by default) would definitely not make Lyrics Grabber prefs any more complex for newbies. Come on, be realistic.

i never used T.P. Wangs lyric_show_panel

Well, you should. It has really improved over time and it has become a great component thanks to T.P's work.

would you be satisfied with following...

I would be satisfied with anything that allows me to do the 3 things I want in an easy way :
- grab LiricWiki lyrics
- store them as tags or as separate text files
- add a tag (%found lyrics% or any other name) only when lyrics are being found and stored in separate text files
(all these 3 things in batch-mode of course)
So I'm trying to remain focused on the features and not in the way of presenting them. That is T.P's decision after all.

A direct question to Peter or Foosion: Can we expect that foobar somedays is changing its search behaviour in queries in that sense that multiline fields are excluded from simple search?

I second that idea  , but it's off-topic here and like I've already said it would really deserve a separate "Feature request" topic to be more "visible". Don't you think so ?

Besides, why only multiline fields ? An excluded search fields list in Advanced Prefs would be so much better !!
Code: [Select]
Excluded search fields : LYRICS; UNSYNCED LYRICS; COMMENTS; LOG; (etc.)


Now can we please stick with this topic's subject and go on with Lyrics Grabber discussion ? Thank you. 
Title: Lyrics Grabber Feedback & Discussion
Post by: Melomane on 2008-12-13 23:23:44
T. P Wang

great component thank you!


Title: Lyrics Grabber Feedback & Discussion
Post by: q-stankovic on 2008-12-14 15:40:03
Quote
This option is useless for those like you who have embedded lyrics. But it's very useful (I'd even say mandatory) for those like me who want to have separate lyrics files (until the blessed day when foobar will be able to handle the "Excluded search fields" in its advanced prefs ).


Quote
So to sum it up : I would have requested this feature anyway, simply because it becomes very useful as soon as you have lyrics as separate text files.


 

Let's make it sticky!
Title: Lyrics Grabber Feedback & Discussion
Post by: Mar2zz on 2008-12-17 18:54:08
TP thx for creating such an easy plugin. I have one big wish for it. Can you make an option or commandlineswitch for silent tagging?

Search and tag found lyrics without userinterference that is? (like the silent replaygainscan/tag).

I am running it from commandline.
Title: Lyrics Grabber Feedback & Discussion
Post by: foorious on 2009-01-19 20:36:09
(until the blessed day when foobar will be able to handle the "Excluded search fields" in its advanced prefs  )

Well, I think my prayers have been heard and that blessed day has come !  foobar 0.9.6.2 seems to have such ability (says the changelog, I haven't tried it myself). So embedding lyrics is now an acceptable option for me. 
Title: Lyrics Grabber Feedback & Discussion
Post by: T.P Wang on 2009-01-23 09:41:22
Quote
Can you make an option or commandlineswitch for silent tagging?

Search and tag found lyrics without userinterference that is?

Yes, I'll add it to the next new version.

Quote
Well, I think my prayers have been heard and that blessed day has come ! biggrin.gif foobar 0.9.6.2 seems to have such ability (says the changelog, I haven't tried it myself). So embedding lyrics is now an acceptable option for me. smile.gif

Bravo! So, I can release the new version earlier.
Title: Lyrics Grabber Feedback & Discussion
Post by: T.P Wang on 2009-01-23 10:12:03
Good news:

I've just tested(limited) the new, re-implemented Lyrics Grabber, I think It will be good for alpha test now.

Major changes:If you are intrested in the alpha test, please contact me  (via P.M, or just reply to the topic)

EDIT: typo and scripts description in foo_grabber_python
EDIT: typo
Title: Lyrics Grabber Feedback & Discussion
Post by: T.P Wang on 2009-01-24 13:23:35
Current status:If you have taked part in the alpha test, please go
http://code.google.com/p/lyricsgrabber/sou...grabber_python/ (http://code.google.com/p/lyricsgrabber/source/browse/trunk/foo_grabber_python/dist/grabber_python/)
and Download these four files:Copy and overwrite exsiting files in {your profile folder}/grabber_python

EDIT: typo
Title: Lyrics Grabber Feedback & Discussion
Post by: Mar2zz on 2009-01-24 19:24:16
Thank you very much for implementing the silent tagging!

This pythonscripting is a kewl thing. Python is very powerfull. Maybe one day in the future your component could be named advanced info grabber! (didn't see the SDK, but am curious to what it beholds.)
Title: Lyrics Grabber Feedback & Discussion
Post by: Nemphael on 2009-01-24 20:04:26
Woah, I've taken a look at the Python code and I'm pleasantly surprised to find you've searched for lyrics with Google. This gives me hope for letssingit.com.

Lyrics on letssingit.com have some kind of salt/hash/something on the end of their urls, like this: http://artists.letssingit.com/3-doors-down...out-you-tcf3wh7 (http://artists.letssingit.com/3-doors-down-lyrics-here-without-you-tcf3wh7), which makes a manual insertion impossible. As far as I'm concerned, I don't think they have an API - I didn't get any answers trying to open a thread, and I've tried looking around on the site.

Using Google with a search for "site:letssingit.com ["%artist%" ]["%title%"]" has sufficed so far, "http://www.google.no/search?q=site%3Aletssingit.com'+[%artist%+][%title%]", which returns results as simple as this: "3 Doors Down - Here Without You Lyrics if lyrics are found.

The main reason I like letssingit.com is because they have more Scandinavian lyrics than other pages I've seen.
Title: Lyrics Grabber Feedback & Discussion
Post by: T.P Wang on 2009-01-27 07:35:59
foo_grabber_python 0.1.7 Alpha and foo_lyricsgrabber 0.3.0.3 Alpha is released for alpha testers:
Enter (http://code.google.com/p/lyricsgrabber/downloads/list)

Make sure you have read the Wiki (http://code.google.com/p/lyricsgrabber/w/list) if you want foo_grabber_python to work.

Major Changes:
foo_lyrics_grabber:
FIX: Lyrics Grabber refused to query for lyrics while "skip tracks which contain lyric field already" is checked
FIX: Crash while "quite mode" is set
ADD: Splitter support to tagger dialog


foo_grabber_python:
FIX: Charset is wrong in AZLyrics.py. (Should be windows-1252, was latin-1)
ADD: new source: LyrDB.py
ADD: new sources for LRC lyrics: Lyricist(LRC).py TTPlayer(LRC).py (These souces are mainly for Chinese and Japanese lyricists)
ADD: Support expat, xml module
Title: Lyrics Grabber Feedback & Discussion
Post by: pyr0rrzzz on 2009-01-27 11:04:17
It's cool that you added DarkLyrics too foo_grabber_python but it doesn't work properly yet. I tried some songs which are available on darklyrics but the plugin didn't find them.
Actually I didn't find any lyrics using foo_grabber_python
Title: Lyrics Grabber Feedback & Discussion
Post by: novembre on 2009-01-27 12:31:55
Python grabber doesn't work here too, fb2k 0.9.6.2b3 on vista, i tried with smoke on the water, all python providers returned "failed".
I would like also to make a feature request: since this plugin will support .LRC files, can the plugin automatically choose the proper tag without editing the preferences, for example send LRC to %lyrics% while normal lyrics to %unsynced lyrics%? I personally keep two tags because Ipod reads only %unsynced lyrics%
Title: Lyrics Grabber Feedback & Discussion
Post by: T.P Wang on 2009-01-27 14:03:24
[a href="http://img230.imageshack.us/my.php?image=lukysv6.png" target="_blank"]
I'll look into it though.
A known problem is that username contains non-ascii character or Lib/ folder is not in grabber_python/
I'll fix the first problem.
Title: Lyrics Grabber Feedback & Discussion
Post by: 2E7AH on 2009-01-27 18:45:38
in the archive (python25.zip) there are compiled scripts for xml parsing for ex.
can we somehow use them (like html2text)?
the purpose is webservices

i've never written a python script but i just may give it a go, if i don't misunderstood of course
Title: Lyrics Grabber Feedback & Discussion
Post by: T.P Wang on 2009-01-28 08:34:16
Quote
in the archive (python25.zip) there are compiled scripts for xml parsing for ex.
can we somehow use them (like html2text)?
the purpose is webservices

Actually, they're compiled scripts of python standard library, and the python25.zip is added to sys.path already, so you can import them, as you like.
If you are willing to use 3rd-party libraries, you can also put them in grabber/Lib/ folder.

Notes:
Title: Lyrics Grabber Feedback & Discussion
Post by: 2E7AH on 2009-01-28 11:04:43
ok thanks, i'll try something, and as i thought this is going beyond lyrics grabbing
Title: Lyrics Grabber Feedback & Discussion
Post by: Mar2zz on 2009-01-28 19:10:25
Kudo's for the first person that is able to grab some cool other stuff from webpages then lyrics. Some things are usefull for in comment-field (and then combine with foo_textdisplay ^^.)

Or... maybe, just maybe, is this thing going to be able to grab genre from last.fm? (a much requested feature)

Request: tagfield-support for other fields then lyrics in a non-hackish way
Title: Lyrics Grabber Feedback & Discussion
Post by: TomBarlow on 2009-01-28 19:49:38
What about embedding album art? The current system of Album Art Downloader + mp3tag is rather long winded IMO... (sorry if this has been asked about before in this thread!)
Title: Lyrics Grabber Feedback & Discussion
Post by: foolver on 2009-01-28 22:05:11
can it save the lyrics in a file, somewhere on a main drive, instead of writing in to the tags?


like, a lyrics.db file which contains all the lyrics that are used in the songs, it gets bigger as more lyrics are added, but it stays away from the files and the tags?

thx in advance
Title: Lyrics Grabber Feedback & Discussion
Post by: T.P Wang on 2009-01-29 13:17:33
Quote
Request: tagfield-support for other fields then lyrics in a non-hackish way
Now it's planned, but the negative effect is that it's a bit harder to write scripts. (return a dict of a list of a two-element tuple(meta, value))
like this:
Code: [Select]
...
def Query(self, handles, status, abort):
result = {}
for handle in handles:
metas = []
...
metas.append(grabber.opt.LYRIC_FIELD_NAME, "blah"))
...
metas.append(("COMMENT","blah"))
...
result[handle] = metas
continue
return result
...


Quote
What about embedding album art?
foobar2000 SDK doesn't include album art write support, so at least it's not possible to implement in a comfortable way.


Quote
can it save the lyrics in a file, somewhere on a main drive, instead of writing in to the tags?
like, a lyrics.db file which contains all the lyrics that are used in the songs
Saving lyrics to files is now planned, but I haven't seen any advantages of saving them into database.
Yes its easy to save them into database, however, is there anyway easy to load or show them?
Title: Lyrics Grabber Feedback & Discussion
Post by: T.P Wang on 2009-01-29 13:36:03
foo_lyricsgrabber 0.3.0.4 Alpha and foo_grabber_python 0.1.9 Alpha is now released for alpha testers. Enter (http://code.google.com/p/lyricsgrabber/downloads/list)
Installation guide is now included in foo_grabber_python archive.
If you're using foo_grabber_python, you should also update foo_lyricsgrabber becase foo_grabber_python is highly depend on foo_lyricsgrabber's services

Major changes:
foo_lyricsgrabber:
ADD: Commandline handler (still working in progress).

foo_grabber_python:
FIX: Add support for non-ascii path
FIX: A bug which may crash due to wrong if statement
CHG: Folder structure chagned (was grabber_python, now is pygrabber)
CHG: All scripts now included traceback information
CHG: Critical error message is now showed as popup message
ADD: LeosLyrics.py (only exact match)
ADD: Customizable library path and scripts path


More information about new commandline handler:
/grabber_conf                  Bring up configration window of foo_grabber_python
/grabber_exec:name=providername <file1> [<file2> <file3> ...]                Start a new query using provider whose name is "name", for example:
Code: [Select]
foobar2000.exe /grabber_exec:name="Lyrics Plugin" file1, file2, file3, file3
foobar2000.exe /grabber_exec:name="Python/Dark Lyrics" file1, file2
Title: Lyrics Grabber Feedback & Discussion
Post by: elenhil on 2009-01-29 15:23:36
It crashes every time I try to do anything in the Python config window (i.e. add a path to the scripts). What should I report?
Title: Lyrics Grabber Feedback & Discussion
Post by: T.P Wang on 2009-01-29 16:12:31
Quote
It crashes every time I try to do anything in the Python config window (i.e. add a path to the scripts). What should I report?

Crash log, of course.
Title: Lyrics Grabber Feedback & Discussion
Post by: elenhil on 2009-01-29 16:22:17
Code: [Select]
Illegal operation:
Code: C0000005h, flags: 00000000h, address: 0118914Eh
Access violation, operation: read, address: FFFFFFC0h
Call path:
entry=>app_mainloop
Code bytes (0118914Eh):
0118910Eh:  0C 8B 58 0C 8B 4D 08 69 DB A8 00 00 00 8B 51 24
0118911Eh:  03 5A 2C 8D 44 24 24 50 C7 44 24 3C 00 00 00 00
0118912Eh:  FF 15 9C C1 1B 01 8B 0D 00 C5 1C 01 68 CA 00 00
0118913Eh:  00 51 FF 15 7C C1 1B 01 8B 3D 80 C1 1B 01 33 D2
0118914Eh:  39 53 68 8B F0 0F 94 C2 89 74 24 10 52 68 08 80
0118915Eh:  00 00 56 FF D7 33 C0 39 83 84 00 00 00 0F 94 C0
0118916Eh:  50 68 09 80 00 00 56 FF D7 8D 74 24 20 8D 44 24
0118917Eh:  10 E8 AC 02 00 00 8B 4D 08 8B 51 04 8B 7C 24 28
Code bytes (0118914Eh):
0118910Eh:  0C 8B 58 0C 8B 4D 08 69 DB A8 00 00 00 8B 51 24
0118911Eh:  03 5A 2C 8D 44 24 24 50 C7 44 24 3C 00 00 00 00
0118912Eh:  FF 15 9C C1 1B 01 8B 0D 00 C5 1C 01 68 CA 00 00
0118913Eh:  00 51 FF 15 7C C1 1B 01 8B 3D 80 C1 1B 01 33 D2
0118914Eh:  39 53 68 8B F0 0F 94 C2 89 74 24 10 52 68 08 80
0118915Eh:  00 00 56 FF D7 33 C0 39 83 84 00 00 00 0F 94 C0
0118916Eh:  50 68 09 80 00 00 56 FF D7 8D 74 24 20 8D 44 24
0118917Eh:  10 E8 AC 02 00 00 8B 4D 08 8B 51 04 8B 7C 24 28
Registers:
EAX: 0058069E, EBX: FFFFFF58, ECX: 0012F5C4, EDX: 00000000
ESI: 01209390, EDI: 7E37D2C4, EBP: 18247C83, ESP: 18247C8B
Crash location: "foo_grabber_python", loaded at 01180000h - 011D7000h
Symbol: "initgrabber" (+000049FEh)

Loaded modules:
foobar2000   loaded at 00400000h - 00539000h
ntdll loaded at 7C900000h - 7C9B0000h
kernel32 loaded at 7C800000h - 7C8F8000h
COMCTL32 loaded at 773C0000h - 774C3000h
msvcrt   loaded at 77C00000h - 77C58000h
ADVAPI32 loaded at 77DC0000h - 77E6C000h
RPCRT4   loaded at 77E70000h - 77F02000h
Secur32   loaded at 77FE0000h - 77FF1000h
GDI32 loaded at 77F10000h - 77F59000h
USER32   loaded at 7E360000h - 7E3F1000h
SHLWAPI   loaded at 77F60000h - 77FD6000h
SHELL32   loaded at 7C9C0000h - 7D1DB000h
ole32 loaded at 774D0000h - 7760D000h
shared   loaded at 10000000h - 1002A000h
UxTheme   loaded at 5B260000h - 5B298000h
COMDLG32 loaded at 76380000h - 763C9000h
IMM32 loaded at 76360000h - 7637D000h
LPK   loaded at 62F00000h - 62F09000h
USP10 loaded at 75540000h - 755AB000h
mzvkbd   loaded at 6D710000h - 6D723000h
PSAPI loaded at 76BE0000h - 76BEB000h
mzvkbd3   loaded at 6D730000h - 6D743000h
raphook   loaded at 00A90000h - 00AD4000h
AM30400   loaded at 00B00000h - 00B0C000h
ws2_32   loaded at 71A90000h - 71AA7000h
WS2HELP   loaded at 71A80000h - 71A88000h
msctfime loaded at 75310000h - 7533E000h
foo_playcount loaded at 00B80000h - 00BAA000h
foo_albumlist loaded at 00BD0000h - 00C3B000h
foo_uie_trackinfo_mod loaded at 00C60000h - 00CB6000h
MSVCP80   loaded at 7C420000h - 7C4A7000h
MSVCR80   loaded at 78130000h - 781CB000h
gdiplus   loaded at 4EBE0000h - 4ED86000h
foo_abx   loaded at 00CF0000h - 00D21000h
foo_freedb2_fix   loaded at 00D50000h - 00D65000h
foo_menu_addons   loaded at 00D90000h - 00DED000h
libmmd   loaded at 00E00000h - 010B1000h
foo_converter loaded at 010D0000h - 0113C000h
foo_dsp_vlevel   loaded at 01160000h - 0116B000h
foo_grabber_python   loaded at 01180000h - 011D7000h
python25 loaded at 1E000000h - 1E208000h
MSVCR71   loaded at 7C340000h - 7C396000h
foo_httpcontrol   loaded at 01310000h - 01352000h
WSOCK32   loaded at 71AB0000h - 71ABA000h
MPR   loaded at 71B00000h - 71B12000h
foo_uie_graphical_browser loaded at 01380000h - 01414000h
MSIMG32   loaded at 76350000h - 76355000h
foo_ui_std   loaded at 01430000h - 01504000h
foo_rgscan   loaded at 01530000h - 0158B000h
foo_infobox   loaded at 015B0000h - 015F0000h
foo_chronflow loaded at 01610000h - 01671000h
WINMM loaded at 76B20000h - 76B4E000h
OPENGL32 loaded at 5F220000h - 5F2EC000h
GLU32 loaded at 5FF90000h - 5FFB1000h
DDRAW loaded at 73720000h - 7376B000h
DCIMAN32 loaded at 73B80000h - 73B86000h
OLEAUT32 loaded at 77110000h - 7719B000h
foo_input_monkey loaded at 01FC0000h - 02009000h
foo_lyricsdb loaded at 02030000h - 0205F000h
WININET   loaded at 771A0000h - 7724A000h
CRYPT32   loaded at 77A70000h - 77B06000h
MSASN1   loaded at 77B10000h - 77B22000h
foo_uie_panel_splitter   loaded at 02080000h - 020CF000h
foo_managedWrapper   loaded at 02130000h - 021FA000h
mscoree   loaded at 79000000h - 79046000h
msvcm80   loaded at 7C4C0000h - 7C53D000h
mscorwks loaded at 79E70000h - 7A400000h
mscorlib.ni   loaded at 790C0000h - 79BB7000h
mscorjit loaded at 79060000h - 790BB000h
rsaenh   loaded at 68000000h - 68036000h
System.ni loaded at 7A440000h - 7ABC5000h
System.Drawing.ni loaded at 7ADE0000h - 7AF68000h
System.Windows.Forms.ni   loaded at 7AFD0000h - 7BBAD000h
xpsp2res loaded at 04850000h - 04B1D000h
dotnet_title loaded at 11000000h - 11014000h
foo_uie_vis_peakmeter_spectrum  loaded at 04F60000h - 04F9F000h
foo_out_asio loaded at 04FC0000h - 04FF7000h
foo_run   loaded at 05020000h - 0504E000h
foo_uie_vis_channel_spectrum loaded at 05070000h - 050AD000h
foo_ac3   loaded at 050D0000h - 050FB000h
foo_uie_albumlist loaded at 05120000h - 05163000h
foo_cdda loaded at 05190000h - 051D1000h
foo_freedb2   loaded at 05200000h - 05240000h
foo_history   loaded at 05260000h - 0527C000h
foo_dsp_std   loaded at 052A0000h - 052E8000h
foo_masstag   loaded at 05310000h - 05353000h
foo_uie_quicksearch   loaded at 05380000h - 053C6000h
foo_uie_elplaylist   loaded at 053F0000h - 05457000h
foo_lyricsgrabber loaded at 05480000h - 054E4000h
foo_input_std loaded at 05510000h - 0564C000h
foo_dsp_delta loaded at 05670000h - 0568E000h
foo_uie_trackinfo loaded at 056B0000h - 056DE000h
foo_ui_minilyrics loaded at 05700000h - 05720000h
foo_uie_lyrics   loaded at 05740000h - 0579D000h
foo_lastfm_radio loaded at 057C0000h - 05805000h
foo_uie_lyricist loaded at 05830000h - 0591A000h
foo_uie_playlists_dropdown   loaded at 05940000h - 05979000h
foo_dsp_mm   loaded at 059A0000h - 059E1000h
foo_popupplus loaded at 05A00000h - 05A89000h
RICHED20 loaded at 74DF0000h - 74E5D000h
foo_jesus loaded at 05AB0000h - 05ACC000h
foo_audioscrobbler   loaded at 05AE0000h - 05B10000h
foo_vis_shpeck   loaded at 05B30000h - 05B6E000h
foo_scheduler loaded at 05B90000h - 05BFF000h
POWRPROF loaded at 74A90000h - 74A98000h
foo_channel_mixer loaded at 05C20000h - 05C5B000h
foo_skip loaded at 05C70000h - 05C7C000h
MSVCR90   loaded at 78520000h - 785C3000h
foo_playlist_tree_mod loaded at 05CA0000h - 05D08000h
libmzsch360_000   loaded at 10400000h - 105D0000h
libmzgc360_000   loaded at 05D30000h - 05DD4000h
foo_fileops   loaded at 05E20000h - 05E66000h
foo_uie_vis_egoh loaded at 05E90000h - 05EAD000h
foo_ui_columns   loaded at 05EC0000h - 05FF2000h
foo_uie_wsh_panel loaded at 06020000h - 0604F000h
pshook   loaded at 08000000h - 08008000h
ctagent   loaded at 06410000h - 06417000h
mscms loaded at 73AF0000h - 73B05000h
WINSPOOL loaded at 72FC0000h - 72FE6000h
icm32 loaded at 58BE0000h - 58C21000h
SXS   loaded at 7E690000h - 7E740000h
CLBCATQ   loaded at 76FC0000h - 7703F000h
COMRes   loaded at 77040000h - 77107000h
VERSION   loaded at 77BF0000h - 77BF8000h
scrchpg   loaded at 6D8E0000h - 6D906000h
jscript   loaded at 75C20000h - 75C9D000h
klscav   loaded at 6D510000h - 6D51A000h
prremote loaded at 6D860000h - 6D875000h
prloader loaded at 6D810000h - 6D853000h
prkernel loaded at 6E360000h - 6E390000h
userenv   loaded at 769A0000h - 76A55000h
params   loaded at 6E240000h - 6E2BB000h
pxstub   loaded at 6E4B0000h - 6E4B9000h
tempfile loaded at 6E680000h - 6E686000h
mswsock   loaded at 71A30000h - 71A70000h
DNSAPI   loaded at 76F10000h - 76F37000h
iphlpapi loaded at 76D50000h - 76D69000h
hnetcfg   loaded at 698B0000h - 69908000h
wshtcpip loaded at 71A70000h - 71A78000h
MiniLyrics   loaded at 09660000h - 0984D000h
rasadhlp loaded at 76FB0000h - 76FB6000h
System.Xml.ni loaded at 637A0000h - 63CD6000h
ctasio   loaded at 0A450000h - 0A45E000h
ctosuser loaded at 0A460000h - 0A476000h
LvHook   loaded at 3AA00000h - 3AA42000h
RASAPI32 loaded at 76ED0000h - 76F0C000h
rasman   loaded at 76E80000h - 76E92000h
NETAPI32 loaded at 5BD50000h - 5BDA5000h
TAPI32   loaded at 76EA0000h - 76ECF000h
rtutils   loaded at 76E70000h - 76E7E000h
sensapi   loaded at 72290000h - 72295000h
urlmon   loaded at 7DF10000h - 7DFB2000h
IMAGEHLP loaded at 76C80000h - 76CA8000h
DBGHELP   loaded at 59C60000h - 59D01000h

Version info:
foobar2000 v0.9.6
UNICODE
Windows 5.1


Additional info:
ELPlaylist 0.6.3.0(beta)  (foo_uie_elplaylist)
Special file info box 2.0.3  (foo_infobox)
Egoh Spectrum analyser (uie) 1.1.2  (foo_uie_vis_egoh)
ASIO support 1.2.6  (foo_out_asio)
Menu Addons 0.4 (Intel SSE)  (foo_menu_addons)
Audioscrobbler 1.3.16  (foo_audioscrobbler)
VLevel 20080302.0  (foo_dsp_vlevel)
Columns UI 0.3.5.1  (foo_ui_columns)
CD Audio Decoder 2.1.3  (foo_cdda)
Lyrist foobar2000 Component 1.41 1.41  (foo_uie_lyricist)
ABX Comparator 1.3.3  (foo_abx)
LPCM <--> delta-PCM converter 0.1.1  (foo_dsp_delta)
Playlist Tree Mod Panel 3.0.6.0 [Jul 12 2008 - 23:39:03]  (foo_playlist_tree_mod)
Standard DSP Array 1.0  (foo_dsp_std)
Freedb2 characters fixer (masstagger addon) 0.02  (foo_freedb2_fix)
Run services 0.3.4  (foo_run)
History 0.2  (foo_history)
Standard Input Array 1.0  (foo_input_std)
Channel Spectrum panel 0.17.2  (foo_uie_vis_channel_spectrum)
WSH Panel (uie) 0.7.2  (foo_uie_wsh_panel)
Album list panel 0.2.3 beta  (foo_uie_albumlist)
Graphical Browser rev015  (foo_uie_graphical_browser)
File Operations 2.1.1  (foo_fileops)
Track info panel 0.8  (foo_uie_trackinfo)
Shpeck - Winamp vis plugins wrapper 0.3.0  (foo_vis_shpeck)
Lyric Show Panel 0.3.3.9 [Dec 12 2008 - 17:39:01]  (foo_uie_lyrics)
Album List 4.3  (foo_albumlist)
Monkey's Audio decoder 2.1.1  (foo_input_monkey)
Lyrics Grabber 0.3.0.4 Alpha  (foo_lyricsgrabber)
freedb Tagger 0.6  (foo_freedb2)
Scheduler 3.53  (foo_scheduler)
Autosave 0.0.2  (foo_jesus)
Playlists Dropdown 0.6 alpha 4  (foo_uie_playlists_dropdown)
HTTP Control 0.79  (foo_httpcontrol)
Last.fm Radio 0.5.2  (foo_lastfm_radio)
Quick Search Toolbar 2.8l  (foo_uie_quicksearch)
Default User Interface 0.9.5  (foo_ui_std)
foo_lyricsdb 0.0.7 beta 5  (foo_lyricsdb)
Panel Stack Splitter 0.3.6.2(alpha)  (foo_uie_panel_splitter)
Peakmeter Spectrum Visualisation 0.2.0.0 beta  (foo_uie_vis_peakmeter_spectrum)
Lyrics Grabber Dances With Python 0.1.9 Alpha  (foo_grabber_python)
Skip Track 1.0.0  (foo_skip)
foobar2000 core 0.9.6  (Core)
PopUp Plus 20080423  (foo_popupplus)
Chronial's Coverflow 0.3.0  (foo_chronflow)
AC3 decoder 0.7  (foo_ac3)
Channel Mixer 0.9.6.1  (foo_channel_mixer)
ReplayGain Scanner 2.0.8  (foo_rgscan)
foo_managedWrapper 0.4  (foo_managedWrapper)
Track info panel mod 0.8.0 beta [Jan  5 2007 - 13:36:12]  (foo_uie_trackinfo_mod)
Matrix Mixer 0.3  (foo_dsp_mm)
Masstagger 1.7.1  (foo_masstag)
Converter 1.2  (foo_converter)
Playback Statistics 2.1.7  (foo_playcount)
Title: Lyrics Grabber Feedback & Discussion
Post by: 2E7AH on 2009-01-29 17:54:14
hi, T.P Wang

i'm struggling with python and i need a little help with the scripts

first, i tried to change one of the scripts and it looks like this:

Code: [Select]
import urllib
from xml.dom import minidom
from grabber import LyricProviderBase

class last_fm_bio(LyricProviderBase):
    def GetName(self):
        return "last.fm bio summary"
   
    def GetVersion(self):
        return "0.1"
   
    def GetURL(self):
        return "http://ws.audioscrobbler.com/"
   
    def Query(self, handles, status, abort):
        result = []
       
        for handle in handles:
            status.Advance()
           
            if abort.Aborting():
                return result
           
            artist = handle.Format("[%artist%]")
           
            try:
                string = urllib.urlopen("http://ws.audioscrobbler.com/2.0/?method=artist.getinfo&artist=%s&api_key=032cdb2ecd03a8ba66e8d8f2a7c38e4e" % (urllib.quote(artist),)).read()    
doc = minidom.parseString(string)
                child = doc.getElementsByTagName("bio")[0]
                text = child.getElementsByTagName("summary")[0]
                lyric = text.childNodes[0].data.encode('utf-8')
result.append(lyric)
            except Exception, e:
                traceback.print_exc(file=sys.stdout)
                result.append('')
                continue
       
        return result

if __name__ == "__main__":
    LyricProviderInstance = last_fm_bio()
result is unfortunately "failed" and i don't get any output, to know where the mistake is
maybe with some command line arguments we could redirect output result from failure to file?

anyway, i tried the code in standalone python shell using this code:

Code: [Select]
import urllib.request
from xml.dom import minidom

string = urllib.request.urlopen('http://ws.audioscrobbler.com/2.0/?method=artist.getinfo&artist=Dead+can+dance&api_key=b25b959554ed76058ac220b7b2e0a026').read()
doc = minidom.parseString(string)
child = doc.getElementsByTagName("bio")[0]
text = child.getElementsByTagName("summary")[0]
lyric = text.childNodes[0].data.encode('utf-8')
print (lyric)
and the result is as expected:

Code: [Select]
>>> ================================ RESTART ================================
>>>
b'Dead Can Dance were originally based in Australia, formed in Melbourne in 1981 by Brendan Perry and was later joined by Lisa Gerrard. They disbanded in 1998, and temporarily reunited to do a highly successful world tour in 2005 with a view to recording another studio album together. But due to ongoing personal differences between Perry and Gerrard, Perry decided to finally put to rest any prospect of a future collaboration in order to concentrate on a solo career.  '
>>>
i've noticed that using python scripts i can't get any lyrics which do exist on dedicated sites (for ex. Air - Playground Love) so maybe it's something to do with my configuration
if not, my question is:
what am i doing wrong,
maybe some explanation about how script is working
and is there a way i could use the api_key without just putting it to requested url

then if everything is all right, using python grabber and putting the info in tags is just not elegant sometimes, so what are the chances we can use some variables to put requested info in, and than use it somehow in foobar panel
maybe extending lyrics show panel possibilities or just inventing other panel
requested info can be image, url, text...
what do you think?
Title: Lyrics Grabber Feedback & Discussion
Post by: novembre on 2009-01-29 20:00:29
Python grabber doesn't work here too, fb2k 0.9.6.2b3 on vista, i tried with smoke on the water, all python providers returned "failed".

Still getting "failed" with python in the new version, I don't know what I'm doing wrong
Title: Lyrics Grabber Feedback & Discussion
Post by: hsa2 on 2009-01-30 00:07:28
Hi there,
I am using Lyrics Grabber to sync lyrics to show them on my iPod touch 2g. However, although i've updated lyrics by Lyrics Grabber, they don't appear on my iPod. I've googled it, and found that to show them in ipod lyrics should be written to file itunes-styled. When i update lyrics on iTunes it works, but it doesn't have the sync ability. Is it possible to add itunes-styled lyric save to lyrics grabber?
Title: Lyrics Grabber Feedback & Discussion
Post by: T.P Wang on 2009-01-30 03:15:10
@elenhil:
Try to remove lyrics_grabber_provider.cfg in your foobar2000 profile folder.
I'll fix that later

@2E7AH:
Indentation of these two lines not seems to be right:
Code: [Select]
doc = minidom.parseString(string)
...
result.append(lyric)


Quote
maybe with some command line arguments we could redirect output result from failure to file?

One of python built-in functions is file(filename[, mode[, bufsize]]), so if you want to redirect failure to file, make use of that function like this:
Code: [Select]
except Exception, e:
       ...
       f = file('C:\errlog.log', 'w+')
       traceback.print_exc(file=f)
       f.close()
       ...


Quote
so what are the chances we can use some variables to put requested info in, and than use it somehow in foobar panel
maybe extending lyrics show panel possibilities or just inventing other panel
requested info can be image, url, text.

I'm also expecting someone to invent such a rich-text panel, it's beyond me.

@novembre:
Is there any message in the console, or, if there's any popup window?
Title: Lyrics Grabber Feedback & Discussion
Post by: 2E7AH on 2009-01-30 03:35:00
i don't understand: what about indentation, does it matter?

i've just pasted your posted script, and got this:

Code: [Select]
Traceback (most recent call last):
  File "C:\Program Files\foobar2000\pygrabber\scripts\bio_sum.py", line 30, in Query
    lyric = text.childNodes[0].data.encode('utf-8')
LookupError: no codec search functions registered: can't find encoding


EDIT: i just now read your comment about rich-text panel: are you sure?
Title: Lyrics Grabber Feedback & Discussion
Post by: T.P Wang on 2009-01-30 04:43:40
Quote
i don't understand: what about indentation, does it matter?

Here: http://diveintopython.org/getting_to_know_...nting_code.html (http://diveintopython.org/getting_to_know_python/indenting_code.html)

Quote
EDIT: i just now read your comment about rich-text panel: are you sure?

YES. I don't have any skills about that.

Quote
LookupError: no codec search functions registered: can't find encoding

I think there's something wrong in python25.zip or unicodedata.pyd, 'cause It's not possible to get this error if python25.zip/encodings is present.
I also upload the correction script here:
http://pastebin.com/m34abd744 (http://pastebin.com/m34abd744)
Title: Lyrics Grabber Feedback & Discussion
Post by: 2E7AH on 2009-01-30 05:10:06
ok, thanks for the code, i already paste it correctly considering the indentation

maybe it is something with the paths because i can't get any script working either (nothing in console)
the install instructions have been changed so maybe something happened then
the folders in foobar profile folder (libs, scripts) are empty, just to mention

and can anybody confirm that the scripts are working?
Title: Lyrics Grabber Feedback & Discussion
Post by: elenhil on 2009-01-30 07:16:01
Try to remove lyrics_grabber_provider.cfg in your foobar2000 profile folder.
Done. Crashed again.

Code: [Select]
Illegal operation:
Code: C0000005h, flags: 00000000h, address: 05CE914Eh
Access violation, operation: read, address: FFFFFFC0h
Call path:
entry=>app_mainloop
Code bytes (05CE914Eh):
05CE910Eh:  0C 8B 58 0C 8B 4D 08 69 DB A8 00 00 00 8B 51 24
05CE911Eh:  03 5A 2C 8D 44 24 24 50 C7 44 24 3C 00 00 00 00
05CE912Eh:  FF 15 9C C1 D1 05 8B 0D 00 C5 D2 05 68 CA 00 00
05CE913Eh:  00 51 FF 15 7C C1 D1 05 8B 3D 80 C1 D1 05 33 D2
05CE914Eh:  39 53 68 8B F0 0F 94 C2 89 74 24 10 52 68 08 80
05CE915Eh:  00 00 56 FF D7 33 C0 39 83 84 00 00 00 0F 94 C0
05CE916Eh:  50 68 09 80 00 00 56 FF D7 8D 74 24 20 8D 44 24
05CE917Eh:  10 E8 AC 02 00 00 8B 4D 08 8B 51 04 8B 7C 24 28
Code bytes (05CE914Eh):
05CE910Eh:  0C 8B 58 0C 8B 4D 08 69 DB A8 00 00 00 8B 51 24
05CE911Eh:  03 5A 2C 8D 44 24 24 50 C7 44 24 3C 00 00 00 00
05CE912Eh:  FF 15 9C C1 D1 05 8B 0D 00 C5 D2 05 68 CA 00 00
05CE913Eh:  00 51 FF 15 7C C1 D1 05 8B 3D 80 C1 D1 05 33 D2
05CE914Eh:  39 53 68 8B F0 0F 94 C2 89 74 24 10 52 68 08 80
05CE915Eh:  00 00 56 FF D7 33 C0 39 83 84 00 00 00 0F 94 C0
05CE916Eh:  50 68 09 80 00 00 56 FF D7 8D 74 24 20 8D 44 24
05CE917Eh:  10 E8 AC 02 00 00 8B 4D 08 8B 51 04 8B 7C 24 28
Registers:
EAX: 19E2031B, EBX: FFFFFF58, ECX: 0012F5C4, EDX: 00000000
ESI: 05D688E8, EDI: 7E37D2C4, EBP: 18247C83, ESP: 18247C8B
Crash location: "foo_grabber_python", loaded at 05CE0000h - 05D37000h
Symbol: "initgrabber" (+000049FEh)

Loaded modules:
foobar2000                      loaded at 00400000h - 00539000h
ntdll                            loaded at 7C900000h - 7C9B0000h
kernel32                        loaded at 7C800000h - 7C8F8000h
COMCTL32                        loaded at 773C0000h - 774C3000h
msvcrt                          loaded at 77C00000h - 77C58000h
ADVAPI32                        loaded at 77DC0000h - 77E6C000h
RPCRT4                          loaded at 77E70000h - 77F02000h
Secur32                          loaded at 77FE0000h - 77FF1000h
GDI32                            loaded at 77F10000h - 77F59000h
USER32                          loaded at 7E360000h - 7E3F1000h
SHLWAPI                          loaded at 77F60000h - 77FD6000h
SHELL32                          loaded at 7C9C0000h - 7D1DB000h
ole32                            loaded at 774D0000h - 7760D000h
shared                          loaded at 10000000h - 1002A000h
UxTheme                          loaded at 5B260000h - 5B298000h
COMDLG32                        loaded at 76380000h - 763C9000h
IMM32                            loaded at 76360000h - 7637D000h
LPK                              loaded at 62F00000h - 62F09000h
USP10                            loaded at 75540000h - 755AB000h
mzvkbd                          loaded at 6D710000h - 6D723000h
PSAPI                            loaded at 76BE0000h - 76BEB000h
mzvkbd3                          loaded at 6D730000h - 6D743000h
raphook                          loaded at 00A90000h - 00AD4000h
AM30400                          loaded at 00B00000h - 00B0C000h
ws2_32                          loaded at 71A90000h - 71AA7000h
WS2HELP                          loaded at 71A80000h - 71A88000h
msctfime                        loaded at 75310000h - 7533E000h
foo_uie_elplaylist              loaded at 00B80000h - 00BE7000h
gdiplus                          loaded at 4EBE0000h - 4ED86000h
foo_abx                          loaded at 00C20000h - 00C51000h
foo_lyricsgrabber                loaded at 00C80000h - 00CE4000h
OLEAUT32                        loaded at 77110000h - 7719B000h
foo_scheduler                    loaded at 00D10000h - 00D7F000h
POWRPROF                        loaded at 74A90000h - 74A98000h
WINMM                            loaded at 76B20000h - 76B4E000h
foo_masstag                      loaded at 00E20000h - 00E63000h
foo_freedb2                      loaded at 00E90000h - 00ED0000h
foo_out_asio                    loaded at 00EF0000h - 00F27000h
foo_run                          loaded at 00F50000h - 00F7E000h
foo_uie_trackinfo                loaded at 00FA0000h - 00FCE000h
foo_managedWrapper              loaded at 00FF0000h - 010BA000h
mscoree                          loaded at 79000000h - 79046000h
MSVCR80                          loaded at 78130000h - 781CB000h
MSVCP80                          loaded at 7C420000h - 7C4A7000h
msvcm80                          loaded at 7C4C0000h - 7C53D000h
mscorwks                        loaded at 79E70000h - 7A400000h
mscorlib.ni                      loaded at 790C0000h - 79BB7000h
mscorjit                        loaded at 79060000h - 790BB000h
rsaenh                          loaded at 68000000h - 68036000h
System.ni                        loaded at 7A440000h - 7ABC5000h
System.Drawing.ni                loaded at 7ADE0000h - 7AF68000h
System.Windows.Forms.ni          loaded at 7AFD0000h - 7BBAD000h
xpsp2res                        loaded at 03750000h - 03A1D000h
dotnet_title                    loaded at 11000000h - 11014000h
foo_playlist_tree_mod            loaded at 03E60000h - 03EC8000h
libmzsch360_000                  loaded at 10400000h - 105D0000h
WSOCK32                          loaded at 71AB0000h - 71ABA000h
libmzgc360_000                  loaded at 03EF0000h - 03F94000h
foo_audioscrobbler              loaded at 03FE0000h - 04010000h
foo_channel_mixer                loaded at 04030000h - 0406B000h
foo_freedb2_fix                  loaded at 04080000h - 04095000h
foo_infobox                      loaded at 040C0000h - 04100000h
foo_albumlist                    loaded at 04120000h - 0418B000h
foo_dsp_std                      loaded at 041B0000h - 041F8000h
foo_popupplus                    loaded at 04220000h - 042A9000h
RICHED20                        loaded at 74DF0000h - 74E5D000h
foo_uie_panel_splitter          loaded at 042D0000h - 0431F000h
foo_cdda                        loaded at 04340000h - 04381000h
foo_lastfm_radio                loaded at 043B0000h - 043F5000h
foo_uie_playlists_dropdown      loaded at 04420000h - 04459000h
foo_uie_graphical_browser        loaded at 04480000h - 04514000h
MSIMG32                          loaded at 76350000h - 76355000h
foo_uie_quicksearch              loaded at 04530000h - 04576000h
foo_dsp_vlevel                  loaded at 045A0000h - 045AB000h
foo_menu_addons                  loaded at 045C0000h - 0461D000h
libmmd                          loaded at 04630000h - 048E1000h
foo_uie_vis_egoh                loaded at 04900000h - 0491D000h
foo_converter                    loaded at 04930000h - 0499C000h
foo_uie_albumlist                loaded at 049C0000h - 04A03000h
foo_fileops                      loaded at 04A30000h - 04A76000h
foo_input_std                    loaded at 04AA0000h - 04BDC000h
foo_uie_vis_channel_spectrum    loaded at 04C00000h - 04C3D000h
foo_skip                        loaded at 04C60000h - 04C6C000h
MSVCR90                          loaded at 78520000h - 785C3000h
foo_jesus                        loaded at 04C90000h - 04CAC000h
foo_chronflow                    loaded at 04CC0000h - 04D21000h
OPENGL32                        loaded at 5F220000h - 5F2EC000h
GLU32                            loaded at 5FF90000h - 5FFB1000h
DDRAW                            loaded at 73720000h - 7376B000h
DCIMAN32                        loaded at 73B80000h - 73B86000h
foo_uie_lyricist                loaded at 055F0000h - 056DA000h
foo_ui_columns                  loaded at 05700000h - 05832000h
foo_uie_wsh_panel                loaded at 05860000h - 0588F000h
foo_uie_trackinfo_mod            loaded at 058E0000h - 05936000h
foo_vis_shpeck                  loaded at 05950000h - 0598E000h
foo_input_monkey                loaded at 059B0000h - 059F9000h
foo_uie_vis_peakmeter_spectrum  loaded at 05A20000h - 05A5F000h
foo_ac3                          loaded at 05A80000h - 05AAB000h
foo_playcount                    loaded at 05AD0000h - 05AFA000h
foo_ui_std                      loaded at 05B20000h - 05BF4000h
foo_dsp_delta                    loaded at 05C20000h - 05C3E000h
foo_uie_lyrics                  loaded at 05C60000h - 05CBD000h
WININET                          loaded at 771A0000h - 7724A000h
CRYPT32                          loaded at 77A70000h - 77B06000h
MSASN1                          loaded at 77B10000h - 77B22000h
foo_grabber_python              loaded at 05CE0000h - 05D37000h
python25                        loaded at 1E000000h - 1E208000h
MSVCR71                          loaded at 7C340000h - 7C396000h
foo_rgscan                      loaded at 05E90000h - 05EEB000h
foo_ui_minilyrics                loaded at 05F00000h - 05F20000h
foo_httpcontrol                  loaded at 05F40000h - 05F82000h
MPR                              loaded at 71B00000h - 71B12000h
foo_history                      loaded at 05FB0000h - 05FCC000h
foo_lyricsdb                    loaded at 05FF0000h - 0601F000h
foo_dsp_mm                      loaded at 06040000h - 06081000h
pshook                          loaded at 08000000h - 08008000h
ctagent                          loaded at 06520000h - 06527000h
mscms                            loaded at 73AF0000h - 73B05000h
WINSPOOL                        loaded at 72FC0000h - 72FE6000h
icm32                            loaded at 58BE0000h - 58C21000h
SXS                              loaded at 7E690000h - 7E740000h
CLBCATQ                          loaded at 76FC0000h - 7703F000h
COMRes                          loaded at 77040000h - 77107000h
VERSION                          loaded at 77BF0000h - 77BF8000h
scrchpg                          loaded at 6D8E0000h - 6D906000h
jscript                          loaded at 75C20000h - 75C9D000h
klscav                          loaded at 6D510000h - 6D51A000h
prremote                        loaded at 6D860000h - 6D875000h
prloader                        loaded at 6D810000h - 6D853000h
prkernel                        loaded at 6E360000h - 6E390000h
userenv                          loaded at 769A0000h - 76A55000h
params                          loaded at 6E240000h - 6E2BB000h
pxstub                          loaded at 6E4B0000h - 6E4B9000h
tempfile                        loaded at 6E680000h - 6E686000h
MiniLyrics                      loaded at 08E50000h - 0903D000h
mswsock                          loaded at 71A30000h - 71A70000h
DNSAPI                          loaded at 76F10000h - 76F37000h
iphlpapi                        loaded at 76D50000h - 76D69000h
System.Xml.ni                    loaded at 637A0000h - 63CD6000h
hnetcfg                          loaded at 698B0000h - 69908000h
wshtcpip                        loaded at 71A70000h - 71A78000h
rasadhlp                        loaded at 76FB0000h - 76FB6000h
ctasio                          loaded at 0A0E0000h - 0A0EE000h
ctosuser                        loaded at 0A0F0000h - 0A106000h
LvHook                          loaded at 3AA00000h - 3AA42000h
RASAPI32                        loaded at 76ED0000h - 76F0C000h
rasman                          loaded at 76E80000h - 76E92000h
NETAPI32                        loaded at 5BD50000h - 5BDA5000h
TAPI32                          loaded at 76EA0000h - 76ECF000h
rtutils                          loaded at 76E70000h - 76E7E000h
msv1_0                          loaded at 77C60000h - 77C84000h
sensapi                          loaded at 72290000h - 72295000h
urlmon                          loaded at 7DF10000h - 7DFB2000h
IMAGEHLP                        loaded at 76C80000h - 76CA8000h
DBGHELP                          loaded at 59C60000h - 59D01000h

Version info:
foobar2000 v0.9.6
UNICODE
Windows 5.1


Additional info:
CD Audio Decoder 2.1.3  (foo_cdda)
Playback Statistics 2.1.7  (foo_playcount)
ASIO support 1.2.6  (foo_out_asio)
PopUp Plus 20080423  (foo_popupplus)
Converter 1.2  (foo_converter)
ELPlaylist 0.6.3.0(beta)  (foo_uie_elplaylist)
Standard Input Array 1.0  (foo_input_std)
VLevel 20080302.0  (foo_dsp_vlevel)
Freedb2 characters fixer (masstagger addon) 0.02  (foo_freedb2_fix)
ReplayGain Scanner 2.0.8  (foo_rgscan)
Scheduler 3.53  (foo_scheduler)
Autosave 0.0.2  (foo_jesus)
Track info panel mod 0.8.0 beta [Jan  5 2007 - 13:36:12]  (foo_uie_trackinfo_mod)
Last.fm Radio 0.5.2  (foo_lastfm_radio)
Columns UI 0.3.5.1  (foo_ui_columns)
Playlist Tree Mod Panel 3.0.6.0 [Jul 12 2008 - 23:39:03]  (foo_playlist_tree_mod)
Chronial's Coverflow 0.3.0  (foo_chronflow)
LPCM <--> delta-PCM converter 0.1.1  (foo_dsp_delta)
Playlists Dropdown 0.6 alpha 4  (foo_uie_playlists_dropdown)
Monkey's Audio decoder 2.1.1  (foo_input_monkey)
Run services 0.3.4  (foo_run)
Album List 4.3  (foo_albumlist)
History 0.2  (foo_history)
Shpeck - Winamp vis plugins wrapper 0.3.0  (foo_vis_shpeck)
ABX Comparator 1.3.3  (foo_abx)
Graphical Browser rev015  (foo_uie_graphical_browser)
Matrix Mixer 0.3  (foo_dsp_mm)
Lyric Show Panel 0.3.3.9 [Dec 12 2008 - 17:39:01]  (foo_uie_lyrics)
freedb Tagger 0.6  (foo_freedb2)
Quick Search Toolbar 2.8l  (foo_uie_quicksearch)
Lyrics Grabber Dances With Python 0.1.9 Alpha  (foo_grabber_python)
WSH Panel (uie) 0.7.2  (foo_uie_wsh_panel)
Channel Mixer 0.9.6.1  (foo_channel_mixer)
Track info panel 0.8  (foo_uie_trackinfo)
Panel Stack Splitter 0.3.6.2(alpha)  (foo_uie_panel_splitter)
Peakmeter Spectrum Visualisation 0.2.0.0 beta  (foo_uie_vis_peakmeter_spectrum)
Lyrics Grabber 0.3.0.4 Alpha  (foo_lyricsgrabber)
foo_lyricsdb 0.0.7 beta 5  (foo_lyricsdb)
File Operations 2.1.1  (foo_fileops)
Masstagger 1.7.1  (foo_masstag)
Menu Addons 0.4 (Intel SSE)  (foo_menu_addons)
Skip Track 1.0.0  (foo_skip)
foo_managedWrapper 0.4  (foo_managedWrapper)
Audioscrobbler 1.3.16  (foo_audioscrobbler)
foobar2000 core 0.9.6  (Core)
HTTP Control 0.79  (foo_httpcontrol)
Egoh Spectrum analyser (uie) 1.1.2  (foo_uie_vis_egoh)
AC3 decoder 0.7  (foo_ac3)
Lyrist foobar2000 Component    1.41 1.41  (foo_uie_lyricist)
Default User Interface 0.9.5  (foo_ui_std)
Album list panel 0.2.3 beta  (foo_uie_albumlist)
Standard DSP Array 1.0  (foo_dsp_std)
Channel Spectrum panel 0.17.2  (foo_uie_vis_channel_spectrum)
Special file info box 2.0.3  (foo_infobox)

Title: Lyrics Grabber Feedback & Discussion
Post by: T.P Wang on 2009-01-30 14:29:47
@elenhil:
Try not to right click on that list, use Refresh button instead.
That error indicate right click on a item not present.
Title: Lyrics Grabber Feedback & Discussion
Post by: elenhil on 2009-01-30 15:24:55
Thanks!
Title: Lyrics Grabber Feedback & Discussion
Post by: hsa2 on 2009-01-30 16:04:47
Is there any option to sync lyrics without time stamps?

Edit: Sorry, it was a mistake caused by another plugin
Title: Lyrics Grabber Feedback & Discussion
Post by: novembre on 2009-01-30 18:11:13
@novembre:
Is there any message in the console, or, if there's any popup window?
Here's what I get in the console after searching for "Smoke On The Water" on AZlyrics:
Code: [Select]
Traceback (most recent call last):
  File "C:\Program Files\foobar2000\pygrabber\scripts\AZLyrics.py", line 38, in Query
html = unicode(html, 'windows-1252').encode('utf-8')
LookupError: no codec search functions registered: can't find encoding
With Dark Lyrics no messages in console.
With Leo's Lyrics:
Code: [Select]
Traceback (most recent call last):
  File "C:\Program Files\foobar2000\pygrabber\scripts\LeosLyrics.py", line 36, in Query
hid = e.getAttribute("hid").encode('utf-8')
LookupError: no codec search functions registered: can't find encoding
With LyrDB:
Code: [Select]
Traceback (most recent call last):
  File "C:\Program Files\foobar2000\pygrabber\scripts\LyrDB.py", line 44, in Query
Id, ti, ar = line.split("\\")  # id\titlle\arist
ValueError: too many values to unpack
Lyricist:
Code: [Select]
Traceback (most recent call last):
  File "C:\Program Files\foobar2000\pygrabber\scripts\Lyricist(LRC).py", line 72, in Query
    l = get_lyric_list(title, artist)
  File "C:\Program Files\foobar2000\pygrabber\scripts\Lyricist(LRC).py", line 40, in get_lyric_list
    l = __get_lyric_list(title, artist)
  File "C:\Program Files\foobar2000\pygrabber\scripts\Lyricist(LRC).py", line 12, in __get_lyric_list
    title = urllib.quote(unicode(title, 'utf-8').encode('gb18030'))
LookupError: no codec search functions registered: can't find encoding
TTPlayer:
Code: [Select]
[19:09:03] Traceback (most recent call last):
  File "C:\Program Files\foobar2000\pygrabber\scripts\TTPlayer(LRC).py", line 58, in Query
    lyric = urllib2.urlopen(req).read()
  File "D:\Python25\Lib\urllib2.py", line 124, in urlopen
  File "D:\Python25\Lib\urllib2.py", line 381, in open
  File "D:\Python25\Lib\urllib2.py", line 399, in _open
  File "D:\Python25\Lib\urllib2.py", line 360, in _call_chain
  File "D:\Python25\Lib\urllib2.py", line 1107, in http_open
  File "D:\Python25\Lib\urllib2.py", line 1079, in do_open
  File "D:\Python25\lib\httplib.py", line 866, in request
  File "D:\Python25\lib\httplib.py", line 889, in _send_request
  File "D:\Python25\lib\httplib.py", line 860, in endheaders
  File "D:\Python25\lib\httplib.py", line 732, in _send_output
  File "D:\Python25\lib\httplib.py", line 699, in send
  File "D:\Python25\lib\httplib.py", line 667, in connect
LookupError: no codec search functions registered: can't find encoding
No error popups, only the results window.
Hope this helps.
Title: Lyrics Grabber Feedback & Discussion
Post by: 2E7AH on 2009-01-30 18:45:53
ok, i found workaround

you have to do explicit import for encodings
put this in every script (the first lines, where you importing)

Code: [Select]
from encodings import utf_8

and now the scripts are working, and even my script is working

edit: and only for "lyrdb.py" change line 43:

[font= "Courier New"]for line in lines.split("\r\n"):[/font]

to this:

[font= "Courier New"]for line in lines.split("\n"):[/font]

no carriage return
Title: Lyrics Grabber Feedback & Discussion
Post by: T.P Wang on 2009-01-31 06:04:28
Quote
ok, i found workaround

you have to do explicit import for encodings
put this in every script (the first lines, where you importing)

Thanks for the tip

Title: Lyrics Grabber Feedback & Discussion
Post by: 2E7AH on 2009-01-31 06:15:47
hey, thanks to you for your great work
Title: Lyrics Grabber Feedback & Discussion
Post by: elenhil on 2009-01-31 06:54:39
Another crash trying to search for lyrics for a really large number of tracks

Code: [Select]
Illegal operation:
Code: C0000005h, flags: 00000000h, address: 03EC3C30h
Access violation, operation: read, address: 00000000h
Call path:
entry=>app_mainloop=>main_thread_callback::callback_run
Code bytes (03EC3C30h):
03EC3BF0h:  33 F6 EB 1F 8B 06 8B 50 18 57 8B CE FF D2 3B C3
03EC3C00h:  77 04 33 F6 EB 0D 8B 06 8B 50 1C 53 57 8B CE FF
03EC3C10h:  D2 8B F0 89 5C 24 24 89 5C 24 28 89 5C 24 2C 8B
03EC3C20h:  C6 C6 84 24 08 01 00 00 04 8D 50 01 8D 64 24 00
03EC3C30h:  8A 08 40 3A CB 75 F9 2B C2 8D 58 01 8D 44 24 24
03EC3C40h:  E8 9B 34 00 00 8B 7C 24 24 56 E8 41 4D 00 00 83
03EC3C50h:  C4 04 33 DB C6 84 24 08 01 00 00 05 8B C7 39 5C
03EC3C60h:  24 28 77 05 B8 D8 30 F0 03 8B C8 8D 71 02 8B FF
Code bytes (03EC3C30h):
03EC3BF0h:  33 F6 EB 1F 8B 06 8B 50 18 57 8B CE FF D2 3B C3
03EC3C00h:  77 04 33 F6 EB 0D 8B 06 8B 50 1C 53 57 8B CE FF
03EC3C10h:  D2 8B F0 89 5C 24 24 89 5C 24 28 89 5C 24 2C 8B
03EC3C20h:  C6 C6 84 24 08 01 00 00 04 8D 50 01 8D 64 24 00
03EC3C30h:  8A 08 40 3A CB 75 F9 2B C2 8D 58 01 8D 44 24 24
03EC3C40h:  E8 9B 34 00 00 8B 7C 24 24 56 E8 41 4D 00 00 83
03EC3C50h:  C4 04 33 DB C6 84 24 08 01 00 00 05 8B C7 39 5C
03EC3C60h:  24 28 77 05 B8 D8 30 F0 03 8B C8 8D 71 02 8B FF
Registers:
EAX: 00000000, EBX: 00000000, ECX: FFFFFFFF, EDX: 00000001
ESI: 00000000, EDI: FFFFFFFF, EBP: 00000000, ESP: 00000008
Crash location: "foo_lyricsgrabber", loaded at 03EB0000h - 03F14000h

Loaded modules:
foobar2000                      loaded at 00400000h - 00539000h
ntdll                            loaded at 7C900000h - 7C9B0000h
kernel32                        loaded at 7C800000h - 7C8F8000h
COMCTL32                        loaded at 773C0000h - 774C3000h
msvcrt                          loaded at 77C00000h - 77C58000h
ADVAPI32                        loaded at 77DC0000h - 77E6C000h
RPCRT4                          loaded at 77E70000h - 77F02000h
Secur32                          loaded at 77FE0000h - 77FF1000h
GDI32                            loaded at 77F10000h - 77F59000h
USER32                          loaded at 7E360000h - 7E3F1000h
SHLWAPI                          loaded at 77F60000h - 77FD6000h
SHELL32                          loaded at 7C9C0000h - 7D1DB000h
ole32                            loaded at 774D0000h - 7760D000h
shared                          loaded at 10000000h - 1002A000h
UxTheme                          loaded at 5B260000h - 5B298000h
COMDLG32                        loaded at 76380000h - 763C9000h
IMM32                            loaded at 76360000h - 7637D000h
LPK                              loaded at 62F00000h - 62F09000h
USP10                            loaded at 75540000h - 755AB000h
mzvkbd                          loaded at 6D710000h - 6D723000h
PSAPI                            loaded at 76BE0000h - 76BEB000h
mzvkbd3                          loaded at 6D730000h - 6D743000h
raphook                          loaded at 00A90000h - 00AD4000h
AM30400                          loaded at 00B00000h - 00B0C000h
ws2_32                          loaded at 71A90000h - 71AA7000h
WS2HELP                          loaded at 71A80000h - 71A88000h
msctfime                        loaded at 75310000h - 7533E000h
foo_uie_albumlist                loaded at 00B80000h - 00BC3000h
foo_audioscrobbler              loaded at 00BF0000h - 00C20000h
foo_popupplus                    loaded at 00C40000h - 00CC9000h
gdiplus                          loaded at 4EBE0000h - 4ED86000h
RICHED20                        loaded at 74DF0000h - 74E5D000h
foo_infobox                      loaded at 00D00000h - 00D40000h
foo_input_monkey                loaded at 00D60000h - 00DA9000h
foo_dsp_delta                    loaded at 00DD0000h - 00DEE000h
foo_managedWrapper              loaded at 00E10000h - 00EDA000h
mscoree                          loaded at 79000000h - 79046000h
MSVCR80                          loaded at 78130000h - 781CB000h
MSVCP80                          loaded at 7C420000h - 7C4A7000h
msvcm80                          loaded at 7C4C0000h - 7C53D000h
mscorwks                        loaded at 79E70000h - 7A400000h
mscorlib.ni                      loaded at 790C0000h - 79BB7000h
mscorjit                        loaded at 79060000h - 790BB000h
rsaenh                          loaded at 68000000h - 68036000h
System.ni                        loaded at 7A440000h - 7ABC5000h
System.Drawing.ni                loaded at 7ADE0000h - 7AF68000h
System.Windows.Forms.ni          loaded at 7AFD0000h - 7BBAD000h
xpsp2res                        loaded at 03570000h - 0383D000h
dotnet_title                    loaded at 11000000h - 11014000h
foo_uie_trackinfo                loaded at 03C80000h - 03CAE000h
foo_lyricsdb                    loaded at 03CD0000h - 03CFF000h
OLEAUT32                        loaded at 77110000h - 7719B000h
WININET                          loaded at 771A0000h - 7724A000h
CRYPT32                          loaded at 77A70000h - 77B06000h
MSASN1                          loaded at 77B10000h - 77B22000h
foo_ui_std                      loaded at 03DD0000h - 03EA4000h
MSIMG32                          loaded at 76350000h - 76355000h
foo_cdda                        loaded at 03D40000h - 03D81000h
foo_lyricsgrabber                loaded at 03EB0000h - 03F14000h
foo_dsp_mm                      loaded at 03F30000h - 03F71000h
foo_channel_mixer                loaded at 03F90000h - 03FCB000h
foo_fileops                      loaded at 03FE0000h - 04026000h
foo_playlist_tree_mod            loaded at 04050000h - 040B8000h
libmzsch360_000                  loaded at 10400000h - 105D0000h
WSOCK32                          loaded at 71AB0000h - 71ABA000h
libmzgc360_000                  loaded at 040E0000h - 04184000h
foo_out_asio                    loaded at 041D0000h - 04207000h
foo_uie_quicksearch              loaded at 04230000h - 04276000h
foo_abx                          loaded at 042A0000h - 042D1000h
foo_uie_wsh_panel                loaded at 04300000h - 0432F000h
foo_input_std                    loaded at 04380000h - 044BC000h
foo_skip                        loaded at 044E0000h - 044EC000h
MSVCR90                          loaded at 78520000h - 785C3000h
foo_uie_playlists_dropdown      loaded at 04510000h - 04549000h
foo_run                          loaded at 04570000h - 0459E000h
foo_freedb2                      loaded at 045C0000h - 04600000h
foo_menu_addons                  loaded at 04620000h - 0467D000h
libmmd                          loaded at 04690000h - 04941000h
foo_converter                    loaded at 04960000h - 049CC000h
foo_albumlist                    loaded at 049F0000h - 04A5B000h
foo_uie_vis_peakmeter_spectrum  loaded at 04A80000h - 04ABF000h
foo_ui_columns                  loaded at 04AE0000h - 04C12000h
foo_uie_graphical_browser        loaded at 04C40000h - 04CD4000h
foo_rgscan                      loaded at 04CF0000h - 04D4B000h
foo_dsp_vlevel                  loaded at 04D70000h - 04D7B000h
foo_ui_minilyrics                loaded at 04D90000h - 04DB0000h
foo_uie_vis_egoh                loaded at 04DD0000h - 04DED000h
foo_ac3                          loaded at 04E00000h - 04E2B000h
foo_grabber_python              loaded at 04E50000h - 04EA7000h
python25                        loaded at 1E000000h - 1E208000h
MSVCR71                          loaded at 7C340000h - 7C396000h
foo_uie_elplaylist              loaded at 04FE0000h - 05047000h
foo_freedb2_fix                  loaded at 05070000h - 05085000h
foo_httpcontrol                  loaded at 050B0000h - 050F2000h
MPR                              loaded at 71B00000h - 71B12000h
foo_uie_trackinfo_mod            loaded at 05120000h - 05176000h
foo_uie_lyricist                loaded at 05190000h - 0527A000h
foo_playcount                    loaded at 052A0000h - 052CA000h
foo_uie_vis_channel_spectrum    loaded at 052F0000h - 0532D000h
WINMM                            loaded at 76B20000h - 76B4E000h
foo_masstag                      loaded at 053D0000h - 05413000h
foo_chronflow                    loaded at 05440000h - 054A1000h
OPENGL32                        loaded at 5F220000h - 5F2EC000h
GLU32                            loaded at 5FF90000h - 5FFB1000h
DDRAW                            loaded at 73720000h - 7376B000h
DCIMAN32                        loaded at 73B80000h - 73B86000h
foo_lastfm_radio                loaded at 05D70000h - 05DB5000h
foo_uie_lyrics                  loaded at 05DE0000h - 05E3D000h
foo_dsp_std                      loaded at 05E60000h - 05EA8000h
foo_scheduler                    loaded at 05ED0000h - 05F3F000h
POWRPROF                        loaded at 74A90000h - 74A98000h
foo_jesus                        loaded at 05F60000h - 05F7C000h
foo_uie_panel_splitter          loaded at 05F90000h - 05FDF000h
foo_history                      loaded at 06000000h - 0601C000h
foo_vis_shpeck                  loaded at 06040000h - 0607E000h
pshook                          loaded at 08000000h - 08008000h
ctagent                          loaded at 06520000h - 06527000h
mscms                            loaded at 73AF0000h - 73B05000h
WINSPOOL                        loaded at 72FC0000h - 72FE6000h
icm32                            loaded at 58BE0000h - 58C21000h
SXS                              loaded at 7E690000h - 7E740000h
CLBCATQ                          loaded at 76FC0000h - 7703F000h
COMRes                          loaded at 77040000h - 77107000h
VERSION                          loaded at 77BF0000h - 77BF8000h
scrchpg                          loaded at 6D8E0000h - 6D906000h
jscript                          loaded at 75C20000h - 75C9D000h
klscav                          loaded at 6D510000h - 6D51A000h
prremote                        loaded at 6D860000h - 6D875000h
prloader                        loaded at 6D810000h - 6D853000h
prkernel                        loaded at 6E360000h - 6E390000h
userenv                          loaded at 769A0000h - 76A55000h
params                          loaded at 6E240000h - 6E2BB000h
pxstub                          loaded at 6E4B0000h - 6E4B9000h
tempfile                        loaded at 6E680000h - 6E686000h
mswsock                          loaded at 71A30000h - 71A70000h
DNSAPI                          loaded at 76F10000h - 76F37000h
iphlpapi                        loaded at 76D50000h - 76D69000h
System.Xml.ni                    loaded at 637A0000h - 63CD6000h
hnetcfg                          loaded at 698B0000h - 69908000h
wshtcpip                        loaded at 71A70000h - 71A78000h
rasadhlp                        loaded at 76FB0000h - 76FB6000h
MiniLyrics                      loaded at 0B1B0000h - 0B39D000h
LvHook                          loaded at 3AA00000h - 3AA42000h
DKZKey                          loaded at 0B7D0000h - 0B7DB000h
_socket                          loaded at 0B7F0000h - 0B7FD000h
IMAGEHLP                        loaded at 76C80000h - 76CA8000h
DBGHELP                          loaded at 59C60000h - 59D01000h

Version info:
foobar2000 v0.9.6
UNICODE
Windows 5.1


Additional info:
Graphical Browser rev015  (foo_uie_graphical_browser)
Channel Spectrum panel 0.17.2  (foo_uie_vis_channel_spectrum)
LPCM <--> delta-PCM converter 0.1.1  (foo_dsp_delta)
Lyric Show Panel 0.3.3.9 [Dec 12 2008 - 17:39:01]  (foo_uie_lyrics)
foo_managedWrapper 0.4  (foo_managedWrapper)
PopUp Plus 20080423  (foo_popupplus)
Columns UI 0.3.5.1  (foo_ui_columns)
foobar2000 core 0.9.6  (Core)
Panel Stack Splitter 0.3.6.2(alpha)  (foo_uie_panel_splitter)
Album list panel 0.2.3 beta  (foo_uie_albumlist)
ReplayGain Scanner 2.0.8  (foo_rgscan)
HTTP Control 0.79  (foo_httpcontrol)
Track info panel 0.8  (foo_uie_trackinfo)
Masstagger 1.7.1  (foo_masstag)
Peakmeter Spectrum Visualisation 0.2.0.0 beta  (foo_uie_vis_peakmeter_spectrum)
Lyrics Grabber Dances With Python 0.1.9 Alpha  (foo_grabber_python)
Quick Search Toolbar 2.8l  (foo_uie_quicksearch)
Special file info box 2.0.3  (foo_infobox)
Freedb2 characters fixer (masstagger addon) 0.02  (foo_freedb2_fix)
WSH Panel (uie) 0.7.2  (foo_uie_wsh_panel)
File Operations 2.1.1  (foo_fileops)
Matrix Mixer 0.3  (foo_dsp_mm)
Lyrics Grabber 0.3.0.4 Alpha  (foo_lyricsgrabber)
Skip Track 1.0.0  (foo_skip)
Monkey's Audio decoder 2.1.1  (foo_input_monkey)
Autosave 0.0.2  (foo_jesus)
Egoh Spectrum analyser (uie) 1.1.2  (foo_uie_vis_egoh)
Menu Addons 0.4 (Intel SSE)  (foo_menu_addons)
Scheduler 3.53  (foo_scheduler)
Standard Input Array 1.0  (foo_input_std)
Run services 0.3.4  (foo_run)
ABX Comparator 1.3.3  (foo_abx)
Chronial's Coverflow 0.3.0  (foo_chronflow)
CD Audio Decoder 2.1.3  (foo_cdda)
Playlists Dropdown 0.6 alpha 4  (foo_uie_playlists_dropdown)
Default User Interface 0.9.5  (foo_ui_std)
ELPlaylist 0.6.3.0(beta)  (foo_uie_elplaylist)
Playback Statistics 2.1.7  (foo_playcount)
foo_lyricsdb 0.0.7 beta 5  (foo_lyricsdb)
Converter 1.2  (foo_converter)
Album List 4.3  (foo_albumlist)
History 0.2  (foo_history)
Track info panel mod 0.8.0 beta [Jan  5 2007 - 13:36:12]  (foo_uie_trackinfo_mod)
AC3 decoder 0.7  (foo_ac3)
Standard DSP Array 1.0  (foo_dsp_std)
VLevel 20080302.0  (foo_dsp_vlevel)
Channel Mixer 0.9.6.1  (foo_channel_mixer)
Playlist Tree Mod Panel 3.0.6.0 [Jul 12 2008 - 23:39:03]  (foo_playlist_tree_mod)
ASIO support 1.2.6  (foo_out_asio)
freedb Tagger 0.6  (foo_freedb2)
Shpeck - Winamp vis plugins wrapper 0.3.0  (foo_vis_shpeck)
Lyrist foobar2000 Component    1.41 1.41  (foo_uie_lyricist)
Audioscrobbler 1.3.16  (foo_audioscrobbler)
Last.fm Radio 0.5.2  (foo_lastfm_radio)

Title: Lyrics Grabber Feedback & Discussion
Post by: novembre on 2009-01-31 12:35:02
I think I've found a bug: searching for lyrics for a track without %artist% (even if %album artist% is present) crashes foobar.
Title: Lyrics Grabber Feedback & Discussion
Post by: T.P Wang on 2009-01-31 13:25:24
@elenhil & novembre:
Your problems are the same...
I'll fix that later.
Title: Lyrics Grabber Feedback & Discussion
Post by: T.P Wang on 2009-01-31 13:52:16
I've uploaded both foo_lyricsgrabber and foo_grabber_python, please download and check again.
Title: Lyrics Grabber Feedback & Discussion
Post by: novembre on 2009-01-31 14:25:07
Good work, no more crashes
Title: Lyrics Grabber Feedback & Discussion
Post by: Jonas Nyrup on 2009-01-31 16:42:37
With the newest version none of the python-scripts can find lyrics for my songs.
When i perform a google lucky search for "site:azlyrics.com 'artist' 'title' lyrics" it works, but all of the python-scripts in foobar return "failed".
I fist triede with artist/songs with danish characters, but I also tried artist/song with no special characters.
I have tried to remove all lyricsgrabber and python files and resets lyricsgrabber_python settings but no luck.
I don't know if it has something to do with the new charset and the danish language.
Title: Lyrics Grabber Feedback & Discussion
Post by: T.P Wang on 2009-02-01 02:16:28
@Jonas Nyrup:
I thinks there's some errors occured. Is there anything in the console?
Title: Lyrics Grabber Feedback & Discussion
Post by: Jonas Nyrup on 2009-02-01 21:50:24
Okay this i weird.

Artist: Black Sabbath
Album: Black Sabbath
title: Black Sabath

azlyrics finds nothing (they have the lyrics and the second result when performing a search at the site)
darklyrics find nothing (also has the lyrics)
leolyrics succeeds
lyrDB succeeds
------------------------------------
Artist: Black Sabbath
Album: Paranoid
title: Iron Man

azlyrics succeeds
darklyrics succeds
leolyrics succeeds
lyrDB succeeds

-----------------------------
Artist: Outkast
Album: ATliens
title: Decatur Psalm

azlyrics finds nothing
darklyrics find nothing
leolyrics finds nothing (first result when searching the song title at the site)
 and writes this in console:
Code: [Select]
Traceback (most recent call last):
  File "C:\Program Files (x86)\foobar2000\pygrabber\scripts\LeosLyrics.py", line 46, in Query
    child = doc.getElementsByTagName("lyric")[0]
IndexError: list index out of range
lyrDB succeeds



And why does both AZlyrics rely on google lucky, when there is a site structure?
Azlyrics:
http://www.azlyrics.com/lyrics/%artist%/%title%.html (http://www.azlyrics.com/lyrics/%artist%/%title%.html)  - where both artist and title is trimmed from whitespaces

darklyrics:
http://www.darklyrics.com/lyrics/%artist%/...l#%tracknumber% (http://www.darklyrics.com/lyrics/%artist%/%album%.html#%tracknumber%)
Title: Lyrics Grabber Feedback & Discussion
Post by: elenhil on 2009-02-02 07:11:19
Grabber hangs trying to get lyrics for a large number of tracks. That is, it simply gets stuck somewhere in its process. The player still responds, but aborting the search or quitting the player hangs it completely. No crash report.
Title: Lyrics Grabber Feedback & Discussion
Post by: T.P Wang on 2009-02-05 03:45:06
@Jonas Nyrup:
Due to case sensitive, acents, you can see why lyricwiki is not as good as lyricsplugin....

@elenhil:
It will stop response if your connection lost, or provider's server refuse to connect, by default, the socket timeout is set to infinity.
Anyway, I've uploaded foo_grabber_python 0.1.11 Apha and foo_lyricsgrabber 0.3.0.6 Alpha, however, I don't know if they realy help.

CHANGES:
foo_lyricsgrabber:
FIX: Memory leak in context menu

foo_grabber_python:
ADD: Excute grabber_python/system/autoexec.py to do some stuff during startup
Title: Lyrics Grabber Feedback & Discussion
Post by: elenhil on 2009-02-09 14:43:34
You might want to do something with Google search engine abuse that comes from searching lyrics for a large number of tracks with a couple of your scripts. Like forcing a delay between queries so that it won't trigger bot detection algorythm.
Title: Lyrics Grabber Feedback & Discussion
Post by: tbg09 on 2009-02-10 13:04:06
T.P Wang thank you for an excellent Plugin. I have to say I am extremely impressed. I have a simple question, and I hope I can receive a simple answer.

How can I write the Lyrics to my music collection, so that I can see them on my iPod?
Title: Lyrics Grabber Feedback & Discussion
Post by: 2E7AH on 2009-02-10 13:24:44
try with "UNSYNCEDLYRICS" tag in lyrics grabber configuration
Title: Lyrics Grabber Feedback & Discussion
Post by: tbg09 on 2009-02-11 11:06:02
Hello. Thank you for the advise. Unfortunately, UNSYNCEDLYRICS did not add the Lyrics to my iPod/iTunes. Does anyone have any other ideas?
Title: Lyrics Grabber Feedback & Discussion
Post by: Nemphael on 2009-02-11 11:10:28
*"UNSYNCED LYRICS". He forgot the space. You should probably do a rewrite of the files in mp3tag afterward, if you find it doesn't work.
Title: Lyrics Grabber Feedback & Discussion
Post by: Mar2zz on 2009-02-19 09:50:28
Maybe it's just me, or it's a bug:
Lyrics grabber seems to forget quiet tagging is enabled between foobar or computerrestarts. Have to enable it every day again.

0.3.0.3 alpha.

edit:
0.3.0.7 alpha forgets also. The setting is lost when foobar is closed and restarted.
Title: Lyrics Grabber Feedback & Discussion
Post by: eDio on 2009-02-21 12:29:35
Maybe that was discussed previously, but I can not unpack archive. I use 7z plugin for total commander.

Sorry, that was my mistake: updating a tc's plugin solves problem.

TNX for this plugin
Title: Lyrics Grabber Feedback & Discussion
Post by: eDio on 2009-02-21 18:01:18
Is there any way to download lyrics automatically, when playback starts?

TNX in advance.
Title: Lyrics Grabber Feedback & Discussion
Post by: bubi jackson on 2009-02-21 18:56:47
Afaik only via http://www.hydrogenaudio.org/forums/index....showtopic=55692 (http://www.hydrogenaudio.org/forums/index.php?showtopic=55692)
Title: Lyrics Grabber Feedback & Discussion
Post by: eDio on 2009-02-22 12:32:40
I think it would be better to have a button "Force update" instead of corresponding option to rewrite lyrics tag, when it is already here.
Title: Lyrics Grabber Feedback & Discussion
Post by: T.P Wang on 2009-02-23 04:17:05
Quote
Maybe it's just me, or it's a bug:
Lyrics grabber seems to forget quiet tagging is enabled between foobar or computerrestarts. Have to enable it every day again.

Oops, forgot to write that during shutdown, I'll fix that later.

Quote
I think it would be better to have a button "Force update" instead of corresponding option to rewrite lyrics tag, when it is already here.

Good idea 

P.S: There'se significant changes in the next release, which supports custom meta field-value pair, I hope it will be useful for those who want to write custom providers not only grab lyrics 
Title: Lyrics Grabber Feedback & Discussion
Post by: 2E7AH on 2009-02-23 05:02:48
good news

please consider this:
Saving lyrics to files is now planned...

Title: Lyrics Grabber Feedback & Discussion
Post by: eDio on 2009-03-02 17:18:40
I have the next request, that IMHO can improve usability if implemented (sorry for my English, of course  ): I want lyrics grabber to be able to search lyrics with several engines at once and display results as in the picture f.ex.. It has to be possible to select not a complete row in list, but only the cell in one of the lyrics provider' columns.
This can be usefull, when comparing lyrics from different sources.

(http://img401.imageshack.us/img401/9305/lyrgrab.png)


And of course, thank you once more for this plugin. I have tried all avaliable plugins for getting lyrics, but I think this one is the best!
Title: Lyrics Grabber Feedback & Discussion
Post by: foolver on 2009-03-06 17:59:34
does it support iPod lyrics?
Title: Lyrics Grabber Feedback & Discussion
Post by: HalfBit on 2009-03-30 18:27:08
Quote
Maybe it's just me, or it's a bug:
Lyrics grabber seems to forget quiet tagging is enabled between foobar or computerrestarts. Have to enable it every day again.

Oops, forgot to write that during shutdown, I'll fix that later.

Quote
I think it would be better to have a button "Force update" instead of corresponding option to rewrite lyrics tag, when it is already here.

Good idea 

P.S: There'se significant changes in the next release, which supports custom meta field-value pair, I hope it will be useful for those who want to write custom providers not only grab lyrics 
T.P.,

Thanks for this excellent plugin.

Would it be possible to have an option to inspect files for existing lyrics, and only when none are found, search for lyrics at providers?  That option would allow for locating newly-available lyrics without needless network traffic and without invalidating proofed lyrics.

-HB
Title: Lyrics Grabber Feedback & Discussion
Post by: novembre on 2009-03-30 21:24:17
Would it be possible to have an option to inspect files for existing lyrics, and only when none are found, search for lyrics at providers?  That option would allow for locating newly-available lyrics without needless network traffic and without invalidating proofed lyrics.

Lyrics Grabber -> Configuration -> Skip tracks which contain lyrics field already
Title: Lyrics Grabber Feedback & Discussion
Post by: HalfBit on 2009-04-02 14:50:12
Would it be possible to have an option to inspect files for existing lyrics, and only when none are found, search for lyrics at providers?  That option would allow for locating newly-available lyrics without needless network traffic and without invalidating proofed lyrics.

Lyrics Grabber -> Configuration -> Skip tracks which contain lyrics field already
Thank you novembre.


Update:

I just went to implement the Configuration option and noticed that it's under the SAVE part of Configuration.  I had forgotten that I had already checked it. It reads:
[indent][/indent]“Skip UPDATING files whose tag already exists.”
So this implements the "avoid invalidating proofed lyrics" request, but does not eliminate the time and needless traffic of checking for lyrics where they already exist.  I request that option.
Title: Lyrics Grabber Feedback & Discussion
Post by: novembre on 2009-04-02 16:26:19
I just went to implement the Configuration option and noticed that it's under the SAVE part of Configuration.  I had forgotten that I had already checked it. It reads:
"Skip UPDATING files whose tag already exists."
So this implements the "avoid invalidating proofed lyrics" request, but does not eliminate the time and needless traffic of checking for lyrics where they already exist.  I request that option.

I think that option already does what you're trying to get. Try it yourself: select a few tracks with lyrics already and run lyrics grabber: nothing happens, lyrics grabber doesn't even start to search for lyrics.
Title: Lyrics Grabber Feedback & Discussion
Post by: HalfBit on 2009-04-02 23:15:14
I just went to implement the Configuration option and noticed that it's under the SAVE part of Configuration.  I had forgotten that I had already checked it. It reads:
"Skip UPDATING files whose tag already exists."
So this implements the "avoid invalidating proofed lyrics" request, but does not eliminate the time and needless traffic of checking for lyrics where they already exist.  I request that option.

I think that option already does what you're trying to get. Try it yourself: select a few tracks with lyrics already and run lyrics grabber: nothing happens, lyrics grabber doesn't even start to search for lyrics.
Lyricsgrabber seems to search every selected song every time.  I have a satellite connection, so the propogation delay makes the response very slow.
Title: Lyrics Grabber Feedback & Discussion
Post by: 2E7AH on 2009-04-10 17:10:29
here are two scripts which can fetch GENRE and STYLE tags from Discogs (http://wiki.discogs.com/index.php/Style_Guide-Related_Styles_Lists) and put them in appropriate tags on any number of files or maybe your whole library

speed isn't it strong side, but it functions like this:
from every track ARTIST and ALBUM tags are used to get the discogs release ID, which is chosen as the first from the response list, and then according to GENRE/STYLE tags they are written to files

to use them you need to copy the files to the scripts folder (usually "C:\Program Files\foobar2000\pygrabber\scripts")
then, go to context menu > lyrics grabber > configuration and change the lyric field to appropriate field i.e. GENRE or STYLE depending on which script will run

Discogs_GetGenre.py
Code: [Select]
import urllib, urllib2, gzip, cStringIO
import xml.etree.ElementTree
from xml.dom import minidom
from encodings import utf_8
from grabber import LyricProviderBase

class Discogs_GetGenre(LyricProviderBase):
    def GetName(self):
        return 'Discogs Genre Tag'
   
    def GetVersion(self):
        return '0.1'

    def GetURL(self):
        return 'http://www.discogs.com'

    def Query(self, handles, status, abort):
        result = []
        api_key = '783001745d'

        for handle in handles:
            status.Advance()
           
            if abort.Aborting():
                return result
           
            artist = handle.Format("[%artist%]")
            album = handle.Format("[%album%]")
           
            try:
                URL_s = 'http://www.discogs.com/search?type=all&q=' + artist.lower().replace(' ','+') + '+' + album.lower().replace(' ','+') + '&f=xml&api_key=' + api_key
                request = urllib2.Request(URL_s)
                request.add_header('Accept-Encoding', 'gzip')
                response = urllib2.urlopen(request)
                data = response.read()
                unzipped_data = gzip.GzipFile(fileobj = cStringIO.StringIO(data)).read()
                res = minidom.parseString(unzipped_data)
                uri_1 = res.getElementsByTagName("uri")[0]
                rel_id = uri_1.childNodes[0].data.encode('utf-8').rpartition('/')[2]

                URL_r = 'http://www.discogs.com/release/' + rel_id + '?f=xml&api_key=' + api_key
                request = urllib2.Request(URL_r)
                request.add_header('Accept-Encoding', 'gzip')
                response = urllib2.urlopen(request)
                data = response.read()
                unzipped_data = gzip.GzipFile(fileobj = cStringIO.StringIO(data)).read()
                xml.etree.ElementTree.fromstring(unzipped_data)

                def getGenres(tree):
                    genres = []
                    release = tree.find('release')
                    genreList = release.find('genres')
                    if genreList:
                        for i in genreList:
                            genres.append(i.text)
                    return genres

                lyric=getGenres(xml.etree.ElementTree.fromstring(unzipped_data))
                lyric=str(lyric).strip('[]').replace(',', ';').replace('\'','')
                result.append(lyric)
            except Exception, e:
                traceback.print_exc(file=sys.stdout)
                result.append('')
                continue
       
        return result

if __name__ == "__main__":
    LyricProviderInstance = Discogs_GetGenre()

Discogs_GetStyle.py
Code: [Select]
import urllib, urllib2, gzip, cStringIO
import xml.etree.ElementTree
from xml.dom import minidom
from encodings import utf_8
from grabber import LyricProviderBase

class Discogs_GetStyle(LyricProviderBase):
    def GetName(self):
        return 'Discogs Style Tag'
   
    def GetVersion(self):
        return '0.1'

    def GetURL(self):
        return 'http://www.discogs.com'

    def Query(self, handles, status, abort):
        result = []
        api_key = '783001745d'

        for handle in handles:
            status.Advance()
           
            if abort.Aborting():
                return result
           
            artist = handle.Format("[%artist%]")
            album = handle.Format("[%album%]")
           
            try:
                URL_s = 'http://www.discogs.com/search?type=all&q=' + artist.lower().replace(' ','+') + '+' + album.lower().replace(' ','+') + '&f=xml&api_key=' + api_key
                request = urllib2.Request(URL_s)
                request.add_header('Accept-Encoding', 'gzip')
                response = urllib2.urlopen(request)
                data = response.read()
                unzipped_data = gzip.GzipFile(fileobj = cStringIO.StringIO(data)).read()
                res = minidom.parseString(unzipped_data)
                uri_1 = res.getElementsByTagName("uri")[0]
                rel_id = uri_1.childNodes[0].data.encode('utf-8').rpartition('/')[2]

                URL_r = 'http://www.discogs.com/release/' + rel_id + '?f=xml&api_key=' + api_key
                request = urllib2.Request(URL_r)
                request.add_header('Accept-Encoding', 'gzip')
                response = urllib2.urlopen(request)
                data = response.read()
                unzipped_data = gzip.GzipFile(fileobj = cStringIO.StringIO(data)).read()
                xml.etree.ElementTree.fromstring(unzipped_data)

                def getStyles(tree):
                    styles = []
                    release = tree.find('release')
                    styleList = release.find('styles')
                    if styleList:
                        for i in styleList:
                            styles.append(i.text)
                    return styles

                lyric=getStyles(xml.etree.ElementTree.fromstring(unzipped_data))
                lyric=str(lyric).strip('[]').replace(',', ';').replace('\'','')
                result.append(lyric)
            except Exception, e:
                traceback.print_exc(file=sys.stdout)
                result.append('')
                continue
       
        return result

if __name__ == "__main__":
    LyricProviderInstance = Discogs_GetStyle()

[edit] well, it is limited (http://www.discogs.com/help/api) to 5,000 requests per 24-hour period, per IP address
Title: Lyrics Grabber Feedback & Discussion
Post by: 2E7AH on 2009-04-10 21:29:38
two more scripts (which are faster and easier to write then above) but results are less accurate because they came from Last.fm:

LastFm_TopTag.py - fetches the most counted tag (GENRE) through "track.gettoptags" for the particular ARTIST and TITLE:
Code: [Select]
import urllib
from xml.dom import minidom
from encodings import utf_8
from grabber import LyricProviderBase

class LastFm_TopTag(LyricProviderBase):
    def GetName(self):
        return "LastFm TopTag"

    def GetVersion(self):
        return "0.1"

    def GetURL(self):
        return "http://ws.audioscrobbler.com/"

    def Query(self, handles, status, abort):
        result = []
        api_key = 'b25b959554ed76058ac220b7b2e0a026'

        for handle in handles:
            status.Advance()

            if abort.Aborting():
                return result

            artist = handle.Format("[%artist%]")
            title = handle.Format("[%title%]")

            try:
                string=urllib.urlopen('http://ws.audioscrobbler.com/2.0/?method=track.gettoptags&artist=' + artist.lower().replace(' ','+') + '&track=' + title.lower().replace(' ','+') + '&api_key=' + api_key).read()
                doc = minidom.parseString(string)
                child = doc.getElementsByTagName("tag")[0]
                toptag = child.getElementsByTagName("name")[0]
                lyric = toptag.childNodes[0].data.encode('utf_8').capitalize()
                result.append(lyric)
            except Exception, e:
                traceback.print_exc(file=sys.stdout)
                result.append('')
            continue

        return result

if __name__ == "__main__":
    LyricProviderInstance = LastFm_TopTag()

LastFm_TrackTags.py - fetches all top tags (GENRE) through "track.getinfo" for the particular ARTIST and TITLE (obviously not very good idea):
Code: [Select]
import urllib
from xml.dom import minidom
from encodings import utf_8
from grabber import LyricProviderBase

class LastFm_TrackTags(LyricProviderBase):
    def GetName(self):
        return "LastFm TrackTags"

    def GetVersion(self):
        return "0.1"

    def GetURL(self):
        return "http://ws.audioscrobbler.com/"

    def Query(self, handles, status, abort):
        result = []
        api_key = 'b25b959554ed76058ac220b7b2e0a026'

        for handle in handles:
            status.Advance()

            if abort.Aborting():
                return result

            artist = handle.Format("[%artist%]")
            title = handle.Format("[%title%]")

            try:
                string=urllib.urlopen('http://ws.audioscrobbler.com/2.0/?method=track.getinfo&api_key=' + api_key + '&artist=' + artist.lower().replace(' ','+') + '&track=' + title.lower().replace(' ','+')).read()
                doc = minidom.parseString(string)
                child = doc.getElementsByTagName("toptags")[0]
                toptags = child.getElementsByTagName("tag")
                tags=[]
                for i in toptags:
                    tags.append(str(i.getElementsByTagName("name")[0].toxml()).replace('<name>','').replace('</name>','').capitalize( ))
                lyric=str(tags).strip('[]').replace(',', ';').replace('\'','')
                result.append(lyric)
            except Exception, e:
                traceback.print_exc(file=sys.stdout)
                result.append('')
            continue

        return result

if __name__ == "__main__":
    LyricProviderInstance = LastFm_TrackTags()
Title: Lyrics Grabber Feedback & Discussion
Post by: MartDann on 2009-04-10 23:26:00
Maybe this could interesting for fetching tags from Last.fm.
It was written for Picard Tagger, but i think it could also be usefull for this Plugin.
http://tiptoes.hobby-site.com/mbz/lastfm/ (http://tiptoes.hobby-site.com/mbz/lastfm/)
Title: Lyrics Grabber Feedback & Discussion
Post by: Industrial Pope on 2009-04-11 11:03:32
Maybe this could interesting for fetching tags from Last.fm.
It was written for Picard Tagger, but i think it could also be usefull for this Plugin.
http://tiptoes.hobby-site.com/mbz/lastfm/ (http://tiptoes.hobby-site.com/mbz/lastfm/)


I'm just going to lie down here, that's so extensive and awesome but it'll also wants to make me to tag my entire collection AGAIN. You bastards, why does this forum always give me acces to more information and stuff to catalogue my music even better?

Too bad it doesn't auto-recognize the different tags, that would make it a match made in heaven.
Title: Lyrics Grabber Feedback & Discussion
Post by: Aveneu on 2009-04-16 01:52:46
Would it be possible to make the "lyric field" field in configuration allow Foobar scripting? (Though the new Python stuffs might change things...) I want to set it up to put lyrics for m4a files in the <lyrics> tag, but lyrics for mp3's in the <unsynced lyrics> tag, since iTunes expects mp3 lyrics to be in unsynced lyrics but AAC/ALAC lyrics to be in lyrics because Apple doesn't like consistency.
Title: Lyrics Grabber Feedback & Discussion
Post by: 2E7AH on 2009-05-20 18:32:00
I updated my Windows, and now having problem with starting python grabber:

[font= "Lucida Console"]Failed to load DLL: foo_grabber_python.dll, reason: This component is missing a required dependency, or was made for different version of foobar2000.[/font][/size]

I downloaded again the latest release (06 Feb) and try to install it, but same error. On Vista I didn't have problem with it, so maybe I'm missing install instructions, but I followed them. Or does this component needs recompile?

Here is my list of files:

[font= "Lucida Console"]C:\Program Files\foobar2000>dir p*.dll /s/b & dir *grab* /s/b & dir pygrabber\* /s/b & ver
C:\Program Files\foobar2000\python25.dll
C:\Program Files\foobar2000\lyrics_grabber_provider.cfg
C:\Program Files\foobar2000\pygrabber
C:\Program Files\foobar2000\components\foo_grabber_python.dll
C:\Program Files\foobar2000\components\foo_lyricsgrabber.dll
C:\Program Files\foobar2000\pygrabber\libs
C:\Program Files\foobar2000\pygrabber\newscripts
C:\Program Files\foobar2000\pygrabber\scripts
C:\Program Files\foobar2000\pygrabber\system
C:\Program Files\foobar2000\pygrabber\newscripts\newscripts.rar
C:\Program Files\foobar2000\pygrabber\scripts\AZLyrics.py
C:\Program Files\foobar2000\pygrabber\scripts\DarkLyrics.py
C:\Program Files\foobar2000\pygrabber\scripts\Discogs_GetGenre.py
C:\Program Files\foobar2000\pygrabber\scripts\Discogs_GetStyle.py
C:\Program Files\foobar2000\pygrabber\scripts\LastFm_Bio.py
C:\Program Files\foobar2000\pygrabber\scripts\LastFm_TopTag.py
C:\Program Files\foobar2000\pygrabber\scripts\LastFm_TrackTags.py
C:\Program Files\foobar2000\pygrabber\scripts\LeosLyrics.py
C:\Program Files\foobar2000\pygrabber\scripts\LyrDB.py
C:\Program Files\foobar2000\pygrabber\scripts\Lyricist(LRC).py
C:\Program Files\foobar2000\pygrabber\scripts\TTPlayer(LRC).py
C:\Program Files\foobar2000\pygrabber\system\autoexec.py
C:\Program Files\foobar2000\pygrabber\system\BeautifulSoup.py
C:\Program Files\foobar2000\pygrabber\system\BeautifulSoup.pyc
C:\Program Files\foobar2000\pygrabber\system\Html2Text.py
C:\Program Files\foobar2000\pygrabber\system\Html2Text.pyc
C:\Program Files\foobar2000\pygrabber\system\LevenshteinDistance.py
C:\Program Files\foobar2000\pygrabber\system\LevenshteinDistance.pyc
C:\Program Files\foobar2000\pygrabber\system\Lucky.py
C:\Program Files\foobar2000\pygrabber\system\Lucky.pyc
C:\Program Files\foobar2000\pygrabber\system\pyexpat.pyd
C:\Program Files\foobar2000\pygrabber\system\Python25.zip
C:\Program Files\foobar2000\pygrabber\system\unicodedata.pyd
C:\Program Files\foobar2000\pygrabber\system\_socket.pyd

Microsoft Windows [Version 6.1.7127][/font]
[/size]
Title: Lyrics Grabber Feedback & Discussion
Post by: T.P Wang on 2009-05-20 18:40:12
Python25.dll requires MSVCR71.dll, so I may included that dependency in the next version.
Title: Lyrics Grabber Feedback & Discussion
Post by: 2E7AH on 2009-05-20 18:56:06
That solved the problem, thanks
I was planning to install VS later, and didn't know about this dependence
Title: Lyrics Grabber Feedback & Discussion
Post by: novembre on 2009-06-03 20:07:43
Quote
(I am not saying this is a great problem, as this probably only applies to some DT tracks..., just thought I'd notify you of it).


I'll consider that in the next version, thanks for reporting.

Any news on this issue? Not finding lyrics doesn't bother me (other providers work fine) but the annoyance is that FB2K crashes...
Title: Lyrics Grabber Feedback & Discussion
Post by: Cidinho on 2009-06-03 22:12:46
A good idea is to be able to search for a specific lyric when nothing is found, specifying the name and the artist.

Sometimes you have those songs with (Acoustic Live 2004) or (Acoustic version) or (lyrics by Jani Limateinen) that you really don't want to go, change the name, and then search and change back.
Title: Lyrics Grabber Feedback & Discussion
Post by: foorious on 2009-06-11 13:15:48
Hi there,

I've tried Lyrics Grabber on the following album :
- Album artist : Superbus
- Album : Lova Lova

The whole album is present on Lyric Wiki ( http://lyricwiki.org/Superbus:Lova_Lova_(2009) (http://lyricwiki.org/Superbus:Lova_Lova_(2009)) ), but two lyrics are currently failing to download. Why are they failing ? Because in Lyric Wiki their titles are :
- "Apprends moi"
- "Keyhole"

While in my library their titles are :
- "Apprends-moi"
- "Key Hole"

Of course I could modify the titles, but if I had to do it for all the tracks in my library it would be quite impossible.
Besides, the correct title for the first track would actually be "Apprends-moi" ("Apprends moi" is gramatically incorrect in french)

That's why I would suggest that Lyrics Grabber becomes "space tolerant" and "symbol tolerant" :
1. Take %title%
2. Eliminate all spaces and symbols
3. Do the same with Lyric Wiki's title
4. Compare both

That way, my titles would become "Apprendsmoi" and "Keyhole" and could match the corresponding Lyric Wiki titles "Apprendsmoi" and "Keyhole".

What do you think T.P. ? Can this be done ?
Title: Lyrics Grabber Feedback & Discussion
Post by: foorious on 2009-06-11 15:06:43
Another two missed lyrics :


1. From Britney Spears' "Circus" :
- My title : "MMM Papi"
- Lyric Wiki's title : "Mmm Papi"

So could Lyrics Grabber also be "caps tolerant" please ?  ("space tolerant", "symbol tolerant" and "caps tolerant")


2. From Alanis Morissette's "Underneath" CDS :
- My title : 20/20
- Lyric Wiki's title : 20/20 (yes ! the same title ! see it here : http://lyricwiki.org/Alanis_Morissette:20/20 (http://lyricwiki.org/Alanis_Morissette:20/20) )

I don't know where this error comes from, but I guess if Lyrics Grabber was "symbol tolerant" this wouldn't happen anymore, so...
Title: Lyrics Grabber Feedback & Discussion
Post by: foorious on 2009-06-18 18:15:45
I have also installed the python scripts to test them. I have currently 6 available scripts : AZ Lyrics, DarkLyrics, Leo's Lyrics, LyricDB, and 2 chinese LRC scripts.

On Superbus tracks :
- "Apprends-moi" : all failed (LyricWiki, Lyric Plugin, and the Python Scripts)
- "Key Hole" : all failed except Lyric Plugin (not because it's better, but rather because the track probably figures exactly as "Key Hole" at one of Lyric Plugin's sites while at LyricWiki it's "Keyhole")

I really think Lyrics Grabber needs to become "space tolerant", "symbol tolerant" and "caps tolerant", maybe by implementing some Levenshtein distance (http://en.wikipedia.org/wiki/Levenshtein_distance) code (thanks to 2E7AH for pointing this out  ).

T.P, are you there ? Tell us what you think please !!
Title: Lyrics Grabber Feedback & Discussion
Post by: 2E7AH on 2009-06-18 19:05:57
foorious,
DarkLyrics, LyrDB, Lyricist(LRC) and TTPlayer(LRC) already contain that code, but for searching after successful respond by provider. Maybe it's hard to implement it for actual search, but some string manipulation in case of failed search I think is possible
Title: Lyrics Grabber Feedback & Discussion
Post by: foorious on 2009-06-19 11:55:44
In foobar that's how we'd do the string simplification for common tag fields - easy (untested code, just to give an idea) :

Code: [Select]
$replace($lower($ascii(%album artist%)), ,,&,,",,'',,(,,-,,_,,),,=,,#,,{,,[,,\,,@,,],,°,,+,,},,$,,£,,%,,*,,',',,;,,:,,!,,?,,.,,/,,§,,)
$replace($lower($ascii(%album%)), ,,&,,",,'',,(,,-,,_,,),,=,,#,,{,,[,,\,,@,,],,°,,+,,},,$,,£,,%,,*,,',',,;,,:,,!,,?,,.,,/,,§,,)
$replace($lower($ascii(%title%)), ,,&,,",,'',,(,,-,,_,,),,=,,#,,{,,[,,\,,@,,],,°,,+,,},,$,,£,,%,,*,,',',,;,,:,,!,,?,,.,,/,,§,,)

Hope you get the idea. If we can do the same for the lyrics web sites data and compare the resulting strings, we'll have solved the problem, don't you think ?

BTW it would be nice if Lyrics Grabber could parse the %album artist% field BEFORE the %artist% field. I have the feeling that it only parses the %artist% field, which can lead to errors in many songs (e.g. all duets where %album artist% = name1 and %artist% = name1; name2)
Title: Lyrics Grabber Feedback & Discussion
Post by: 2E7AH on 2009-06-19 12:17:12
By now you could have made same python scripts  so why not try it? It's easy.
i.e. if you want to experiment improving some script by above suggestions, look for something like this in the script:

[font= "Lucida Console"]artist = handle.Format("[%artist%]")[/font]

and then change it to:

[font= "Lucida Console"]artist = handle.Format("[%artist%]").lower().replace('#','').replace('!','')[/font]...

only be careful with indentation

[edit] grammar
Title: Lyrics Grabber Feedback & Discussion
Post by: Nemphael on 2009-06-19 13:46:52
Code: [Select]
def RemoveInvalidChars(field, replacing=['#','!' ETC]):
          field = handle.Format(field).lower()
          for n in replacing:
                  field = field.replace(n,'')
          return field

artist = Fields("[%artist%]")


Less code which is easier to maintain? It's probably some bugs or weird names in there, but the general idea...

EDIT: Forgot [code]s
Title: Lyrics Grabber Feedback & Discussion
Post by: foorious on 2009-06-19 13:51:59
@2E7AH : unfortunately I have absolutely no experience with Python.  But if it's as easy as you say, then I'm sure somebody will come soon with a solution. Nemphael for example, if he feels up to the challenge.  I'm just giving some good ideas, that's all, but it will be up to T.P Wang or any Python scripter to translate them into usable things.

However, I still think these improvements should be made directly at the Lyrics Grabber level, not at the scripts level. Here's how I see it :

- If Lyrics Grabber itself was able to understand that the song "Apprends-moi" from album artist "Superbus" from album "Lova Lova" is THE SAME as the song "Apprends moi" from the same album artist and album,
- If Lyrics Grabber itself was able to understand that the song "Key Hole" from album artist "Superbus" from album "Lova Lova" is THE SAME as the song "Keyhole" from the same album artist and album,
- etc.

... then I believe that all scripts based on Lyrics Grabber should be able to benefit from this. Don't you think so ?

Those improvements should ideally be made at the "core", not script by script.
Title: Lyrics Grabber Feedback & Discussion
Post by: 2E7AH on 2009-06-19 14:07:45
Hmm... you are suggesting something like 3 custom input fields for artist-album-title somewhere in component's configuration. Not bad, but all scripts now will have to be changed (also the lyrics wiki and lyrics plugin).
Then also some (many I think) lyrics providers don't offer search with special chars, so you'll have to do the search for "Apprends-moi" and then again for "Apprends moi", or even worst case "Key Hole" and "Keyhole"
Title: Lyrics Grabber Feedback & Discussion
Post by: foorious on 2009-06-19 15:19:58
Let's take the LyricWiki example, and type in a search for "Superbus Apprends-moi" (correct orthograph). Here are the results : http://lyricwiki.org/Special:GoogleSearchR...p;sa=Search#229 (http://lyricwiki.org/Special:GoogleSearchResults?cx=partner-pub-7265006513689515%3Aenbi50a4igp&cof=FORID%3A9&ie=UTF-8&q=superbus+apprends-moi&sa=Search#229)

As you can see, the song "Apprends moi" is retrieved anyway, even if its title is different ! Why ? Because the integrated Google search "knows" that "Apprends moi" is "close" to "Apprends-moi", so the result can be relevant.

The same result could be obtained by googling the following query : 'Superbus "Apprends-moi" inurl:lyricwiki'. The result would of course be the same : http://www.google.fr/search?hl=fr&q=Su...mp;aq=f&oq= (http://www.google.fr/search?hl=fr&q=Superbus+%22Apprends-moi%22+inurl%3Alyricwiki&btnG=Recherche+Google&meta=&aq=f&oq=)

So I think we could put this to use into Lyric Grabber. If Lyrics Grabber can use the integrated LyricWiki Google search, the search motor will hopefully do the rest. Don't you think so ?
Title: Lyrics Grabber Feedback & Discussion
Post by: 2E7AH on 2009-06-19 22:09:15
Here is simple python script for fetching time-stamped lyrics from the site I found today (lrcDB). It has 26252 records as now, not much, but they are time-stamped
@foorious I left input fields as is, so you can improve them

lrcDB.py
Code: [Select]
import encodings.utf_8
import urllib
from grabber import LyricProviderBase

class lrcDB(LyricProviderBase):
    def GetName(self):
        return "lrcDB"
   
    def GetVersion(self):
        return "0.1"
   
    def GetURL(self):
        return "http://www.lrcdb.org/search.php"
   
    def Query(self, handles, status, abort):
        result = []
        lid = ''

        for handle in handles:
            status.Advance()
           
            if abort.Aborting():
                return result
           
            artist = handle.Format("[%artist%]")
            album = handle.Format("[%album%]")
            title = handle.Format("[%title%]")

            try:
                string = urllib.urlopen("http://www.lrcdb.org/search.php?artist=%s&album=%s&title=%s&query=plugin&type=plugin" % (urllib.quote(artist), urllib.quote(album), urllib.quote(title))).read()
                lid = string.split(': ')[1]

                if lid > '' and len(lid) < 10:
                    lyric = urllib.urlopen("http://www.lrcdb.org/lyric.php?lid=%s&astext=yes" % lid).read()
                    result.append(lyric)

            except Exception, e:
                traceback.print_exc(file=sys.stdout)
                result.append('')
                continue
       
        return result

if __name__ == "__main__":
    LyricProviderInstance = lrcDB()

[!--sizeo:1--][span style=\"font-size:8pt;line-height:100%\"][!--/sizeo--][edit] last minute correction[/size]
Title: Lyrics Grabber Feedback & Discussion
Post by: Jny on 2009-06-20 05:06:27
Some one can help and make script for http://www.plyrics.com (http://www.plyrics.com) please? thanks in advance
Title: Lyrics Grabber Feedback & Discussion
Post by: foorious on 2009-06-20 09:44:32
The LrcDB.org main page says this :

Quote
Please don't use bots to search the site.
Posted by tonyc on 2008-08-08 18:50:05
I got an automated email today telling me the web server's CPU usage had spiked to 100%. It looks like someone was running a search bot through their entire MP3 collection and trying to download the lyrics for all of them from the site.

This type of activity brings the server to a crawl, so I have no choice but to block IP addresses that are doing this. This is the only way I can ensure the site is available for all of the other users.

One query per second is the maximum I will allow. Anyone sending queries faster than this on a regular basis will be blocked from the site.

Have things improved since then or not ? (it's been almost a year). I'm saying this because the site seemed to be under heavy load this morning...


Oh, and another thing : what about a Lyrics Grabber option (checkbox) that would allow timestamped lyrics to be downloaded, even if non-timestamped lyrics are already present in the %lyrics% tag ? (automatic replacement of non-timestamped lyrics by timestamped ones, optional of course).
Title: Lyrics Grabber Feedback & Discussion
Post by: 2E7AH on 2009-06-21 05:57:52
Some one can help and make script for http://www.plyrics.com (http://www.plyrics.com) please? thanks in advance
PLyrics is almost the same as AZ Lyrics, so changing the AZ Lyrics script a little will get you there. Anyway I made that another way using reg.exp and here it is:

pLyrics.py
Code: [Select]
import encodings.utf_8
import urllib
import re
from grabber import LyricProviderBase


class pLyrics(LyricProviderBase):
    def GetName(self):
        return "pLyrics (Punk)"

    def GetURL(self):
        return "http://www.plyrics.com"
   
    def GetVersion(self):
        return "0.1"

    def Query(self, handles, status, abort):
       
        rx_lrc = re.compile(r"(^(?!All lyrics)^\w.+|^\(.+)|^\w.+<br>",re.M)
        rx_str = re.compile(r"\W+")
        result = []
        lyric = []
       
        for handle in handles:
            status.Advance()
           
            if abort.Aborting():
                return result

            artist = handle.Format('[%artist%]')
            title = handle.Format('[%title%]')
           
            artist = rx_str.sub('',artist.lower())
            title = rx_str.sub('',title.lower())
   
            try:
                string = urllib.urlopen('http://www.plyrics.com/lyrics/'+artist+'/'+title+'.html').read()

                if string.find('Page Not Found') == -1:
                        for match in rx_lrc.finditer(string.replace('<br>','')):
                                lyric.append(match.group())
                else:
                        result.append('')
                        continue
               
                lyric = '\r\n'.join(lyric)
                result.append(lyric)

            except Exception, e:
                traceback.print_exc(file=sys.stdout)
                result.append('')
                continue
       
        return result

if __name__ == '__main__':
    LyricProviderInstance = pLyrics()

This is modified version for lrcDB script, which now looks for artist-title if artist-album-title fails:

lrcDB.py
Code: [Select]
import encodings.utf_8
import urllib
from grabber import LyricProviderBase

class lrcDB(LyricProviderBase):
    def GetName(self):
        return 'lrcDB (LRC)'

    def GetVersion(self):
        return '0.2'
   
    def GetURL(self):
        return 'http://www.lrcdb.org/search.php'

    def Query(self, handles, status, abort):
        result = []
        lid = ''

        for handle in handles:
            status.Advance()
           
            if abort.Aborting():
                return result

            artist = handle.Format('[%artist%]')
            album = handle.Format('[%album%]')
            title = handle.Format('[%title%]')

            try:
                string = urllib.urlopen('http://www.lrcdb.org/search.php?artist=%s&album=%s&title=%s&query=plugin&type=plugin' % (urllib.quote(artist), urllib.quote(album), urllib.quote(title))).read()

                if string == 'no match':
                    string = urllib.urlopen('http://www.lrcdb.org/search.php?artist=%s&title=%s&query=plugin&type=plugin' % (urllib.quote(artist), urllib.quote(title))).read()
                    if string == 'no match':
                        result.append('')
                        continue

                string = string.split('\t')[0]
                lid = string.split(': ')[1]

                if lid != '':
                    lyric = urllib.urlopen('http://www.lrcdb.org/lyric.php?lid=%s&astext=yes' % lid).read()
                    result.append(lyric)

            except Exception, e:
                traceback.print_exc(file=sys.stdout)
                result.append('')
                continue
       
        return result

if __name__ == '__main__':
    LyricProviderInstance = lrcDB()
Title: Lyrics Grabber Feedback & Discussion
Post by: Jny on 2009-06-21 07:25:01
PLyrics is almost the same as AZ Lyrics, so changing the AZ Lyrics script a little will get you there.
i try, but no results
many thanks for script!

hmm, its work only for single track :/ if i choose full album only first track success
(http://img221.imageshack.us/img221/1796/43061981.th.jpg) (http://img221.imageshack.us/i/43061981.jpg/)
http://plyrics.com/a/alexisonfire.html (http://plyrics.com/a/alexisonfire.html)
Title: Lyrics Grabber Feedback & Discussion
Post by: 2E7AH on 2009-06-21 10:47:01
I tested it only on one track  , try this:

Code: [Select]
import encodings.utf_8
import urllib
import re
from grabber import LyricProviderBase


class pLyrics(LyricProviderBase):
    def GetName(self):
        return "pLyrics (Punk)"

    def GetURL(self):
        return "http://www.plyrics.com"
   
    def GetVersion(self):
        return "0.1"

    def Query(self, handles, status, abort):
       
        rx_lrc = re.compile(r"(^(?!All lyrics)^\w.+|^\(.+)|^\w.+<br>",re.M)
        rx_str = re.compile(r"\W+")
        result = []
        lrc = []
       
        for handle in handles:
            status.Advance()
           
            if abort.Aborting():
                return result

            artist = handle.Format('[%artist%]')
            title = handle.Format('[%title%]')
           
            artist = rx_str.sub('',artist.lower())
            title = rx_str.sub('',title.lower())
   
            try:
                string = urllib.urlopen('http://www.plyrics.com/lyrics/'+artist+'/'+title+'.html').read()

                if string.find('Page Not Found') == -1:
                        for match in rx_lrc.finditer(string.replace('<br>','')):
                                lrc.append(match.group())
                else:
                        result.append('')
                        continue
               
                lyric = '\r\n'.join(lrc)
                result.append(lyric)

            except Exception, e:
                traceback.print_exc(file=sys.stdout)
                result.append('')
                continue
       
        return result

if __name__ == '__main__':
    LyricProviderInstance = pLyrics()
Title: Lyrics Grabber Feedback & Discussion
Post by: 2E7AH on 2009-06-21 10:51:34
Here is another script, with the same reg.ex method for Lyrics.net.ua (184912 records as now)

lyricsNET.py
Code: [Select]
import encodings.utf_8
import urllib
import re
from grabber import LyricProviderBase

class LyricsNET(LyricProviderBase):
    def GetName(self):
        return "Lyrics.NET"

    def GetURL(self):
        return "http://lyrics.net.ua"

    def GetVersion(self):
        return "0.1"

    def Query(self, handles, status, abort):

        rx_lrc = re.compile(r"^\w.*<br />$|<p class=text>\w.*<br />",re.M)
        rx_str = re.compile(r"(?!\w+?)\W+?")
        rx_htm = re.compile(r"<.*?>")
        result = []
        lrc = []

        for handle in handles:
            status.Advance()

            if abort.Aborting():
                return result

            artist = handle.Format('[%artist%]')
            album = handle.Format('[%album%]')
            title = handle.Format('[%title%]')

            artist = rx_str.sub('_',artist.lower().replace('&','_amp_'))
            album = rx_str.sub('_',album.lower().replace('&','_amp_'))
            title = rx_str.sub('_',title.lower().replace('&','_amp_'))

            try:
                string = urllib.urlopen('http://lyrics.net.ua/lyrics/'+artist+'/'+album+'/'+title+'.html').read()

                if string.find('failed to open stream') == -1:
                        for match in rx_lrc.finditer(string):
                                lrc.append(rx_htm.sub('',match.group()))
                else:
                        result.append('')
                        continue

                lyric = '\r\n'.join(lrc)
                result.append(lyric)

            except Exception, e:
                traceback.print_exc(file=sys.stdout)
                result.append('')
                continue

        return result

if __name__ == '__main__':
    LyricProviderInstance = LyricsNET()
Title: Lyrics Grabber Feedback & Discussion
Post by: Jny on 2009-06-21 11:01:50
I tested it only on one track  , try this:
thank you
Title: Lyrics Grabber Feedback & Discussion
Post by: foorious on 2009-06-21 17:58:17
IMO we're all talking much about the scripts and not enough about Lyrics Grabber.

Maybe there should be a separate topic for all Lyrics Grabber scripts, so that we can keep discussing about Lyrics Grabber development and improvements.
Title: Lyrics Grabber Feedback & Discussion
Post by: 2E7AH on 2009-06-22 23:30:08
I've made couple of new scripts which I posted here (http://www.hydrogenaudio.org/forums/index.php?showtopic=72335&view=findpost&p=643032)
Don't want to trash this thread and also to avoid possible indentation error when user manages script

@T.P.Wang: I was trying to convert HTML enteties to unicode with "htmlentitydefs" and then with "BeautifulSoup", but always get this same message:
Code: [Select]
foo_grabber_python: TypeError: No registered converter was able to produce a C++ rvalue of type class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > from this Python object of type NavigableString

[edit] If someone knows of LRC (time-stamped) lyrics site or service, please post
Title: Lyrics Grabber Feedback & Discussion
Post by: elenhil on 2009-06-24 07:18:43
I got an error:

Code: [Select]
foo_grabber_python: Traceback (most recent call last):
  File "C:\Program Files\foobar2000\pygrabber\scripts\LyricsTXT.py", line 35, in Query
    url = 'http://www.lyricstxt.com/lyrics/'+artist[0]+'/'+artist+'/'+title+'_lyrics.html'
IndexError: string index out of range


Is it the script or the plugin?
Title: Lyrics Grabber Feedback & Discussion
Post by: 2E7AH on 2009-06-24 12:51:41
Is that error for some particular artist/album?

There is (mistype) error in the script at line 42:

[font= "Lucida Console"]if link == None:[/font]

should be:

[font= "Lucida Console"]if lyric == None:[/font]

Also read request will stop at " ’ " - char(8217) - that is fixed and can be downloaded from here (http://www.hydrogenaudio.org/forums/index.php?act=attach&type=post&id=5184)

If you notice any other anomaly, please report.
Title: Lyrics Grabber Feedback & Discussion
Post by: 2E7AH on 2009-06-24 21:36:29
Python script for fetching AMG review (album) here (http://www.hydrogenaudio.org/forums/index.php?s=&showtopic=72335&view=findpost&p=643393)

Allmusic has some limitation on number of accesses per IP. I don't know the number but it shouldn't worry us too much because in this case access is per album not per track. Of course use it with common sense.
For any error please post.
Title: Lyrics Grabber Feedback & Discussion
Post by: 2E7AH on 2009-07-19 13:31:01
Is there some way to use python debugger? I mean where is module grabber? Is it wrapped in foo_grabber_python.dll?
Title: Lyrics Grabber Feedback & Discussion
Post by: T.P Wang on 2009-07-19 14:11:05
T.P.Wang: I was trying to convert HTML enteties to unicode with "htmlentitydefs" and then with "BeautifulSoup", but always get this same message:
Code: [Select]
foo_grabber_python: TypeError: No registered converter was able to produce a C++ rvalue of type class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > from this Python object of type NavigableString

Sorry for my late reply.
You should use str(instance of NavigableString, 'utf_8') in order to convert it to utf-8 first.

Is there some way to use python debugger? I mean where is module grabber? Is it wrapped in foo_grabber_python.dll?

Yes, module grabber is embedded into foo_grabber_python.dll. It's always a headache to debug scripts.
I'd suggest write common scripts in a python IDE which contains debugging, then migrate them in foo_grabber_python env.


PS: I don't forget this project, there's a lot of inner changes in my current developing version (not compatable with previous versions), and changed frequently, and I'll consider a better configuration dialog (I mean I'm not good at designing a GUI, It always takes me a lot of time...  )
Title: Lyrics Grabber Feedback & Discussion
Post by: 2E7AH on 2009-07-19 16:10:13
You should use str(instance of NavigableString, 'utf_8') in order to convert it to utf-8 first.

I don't remember what I was doing back then, because I left the code. Trying now they both work fine
I guess passed string(?) was not in utf-8

I'd suggest write common scripts in a python IDE which contains debugging, then migrate them in foo_grabber_python env.

OK 
I got this very nice PyScripter and feel uncomfortable tracing strange behaviours with SciTE and foobar console

And looking forward to next python_grabber release  (especially "custom meta field-value pair")
Title: Lyrics Grabber Feedback & Discussion
Post by: 2E7AH on 2009-07-23 01:37:49
@T.P.Wang: I was testing Gracenote grabber script, and thought to suggest something regarding multiple tag value pairs:
- possibility to call simple dialog within the script so user can select which tags to be written and option for custom tag mapping

For example, AMG script can fetch at least: AMG REVIEW, GENRE, STYLE, MOOD, THEME, PUBLISHER, DATE, COMPOSER, RELEASES... from url respond.
So if I call this suggested dialog function from script, it will pop dialog box at user request with all defined tags contained in the script and some tick box for selecting/deselecting which tags to be written (and maybe input box aside tags for custom tag mapping defaulting to tag defined in script)
Title: Lyrics Grabber Feedback & Discussion
Post by: 2E7AH on 2009-07-23 02:51:33
...or that can be appended on existing querying result dialog, which is probably better, but with losing option for choosing tag before script search starts
Title: Lyrics Grabber Feedback & Discussion
Post by: harken93 on 2009-08-10 14:05:14
hi i have been using foo_uie_lyrics, but sometimes its online search does not find the song i am playing. i like how foo_uie_lyrics does not change the tag.

is there anyway to make lyrics grabber download the  lyrics instead of putting it into the tag like how foo_uie_lyrics lets you save to config folder?

thanks!
Title: Lyrics Grabber Feedback & Discussion
Post by: electricprophet on 2009-08-29 21:10:40
this is a great plugin, i use it all the time
Title: Lyrics Grabber Feedback & Discussion
Post by: Nemphael on 2009-09-05 23:42:20
I found out today I can't download lyrics for any song. The site is online and the songs I want lyrics for are in their database.

Anyone else experiencing problems?
Title: Lyrics Grabber Feedback & Discussion
Post by: Hengest on 2009-09-06 06:08:04
Works for me.
Title: Lyrics Grabber Feedback & Discussion
Post by: Mar2zz on 2009-09-23 19:09:44
2E7AH:
I tried all your genre-based pythonscripts, but they won't be imported.
It gives the following error:
Code: [Select]
foo_grabber_python:   File "C:\Program Files\foobar2000\pygrabber\scripts\LastFm_TrackTags.py", line 7
    def GetName(self):
      ^
IndentationError: expected an indented block


Every one of your genre scripts (also the discogs) gives this error (of course the path changes) when refreshing the scripts, so they won't be added.
Title: Lyrics Grabber Feedback & Discussion
Post by: 2E7AH on 2009-09-23 19:16:50
Mar2zz, use proper editor that won't ruin the indentation of the code.

[edit] And I won't suggest using Last.fm tags as I said, but suit yourself
Title: Lyrics Grabber Feedback & Discussion
Post by: Mar2zz on 2009-09-23 20:57:08
I am using notepad++ for creating the file. tried windows notepad too. it leaves out indentation completely (didn't know what that means, but I googletranslated it, and now I see what happens).

What editor are you using?

My plan was to use the discogs one, the last.fm tags was my last try.
Title: Lyrics Grabber Feedback & Discussion
Post by: 2E7AH on 2009-09-24 08:54:06
I generally use SciTE, but I tried now with Notepad++ and it's OK also. Maybe you have changed some options in the editor: there shouldn't be TAB characters but spaces i.e.
Anyway if you can't manage it to work, I've uploaded those Discogs script in foobar uploads forum, you can find them ready-made
Title: Lyrics Grabber Feedback & Discussion
Post by: Mar2zz on 2009-09-24 22:11:47
Thanx 2E7AH, for your always fast response and help!
I will look into that notepad++ option I maybe changed (or reinstall notepad), I want that to work as needed. If I can't find the solution to copying indentation I will use your uploads.
Title: Lyrics Grabber Feedback & Discussion
Post by: q-stankovic on 2009-09-26 19:26:23
Hello T.P Wang!

A very minor suggestion:

Do you think it is a good idea to rename the "Python Scripts" context menu entry to "More Sources" or similar - somehow it is ugly to use technical aspects for naming.
Another point: I noticed that 2E7AH wrote some scripts that fetch info stored in tags other than "lyrics". Couldn't these scripts/sources get its own submenu under the root of context menu.
Title: Lyrics Grabber Feedback & Discussion
Post by: TomBarlow on 2009-09-28 13:00:13
Lyricwiki doesn't seem to be working for me. Is the component affected by this? (http://groups.google.com/group/lyricwiki-api/browse_thread/thread/733ccd919d654040) Or the move to wikia?
Title: Lyrics Grabber Feedback & Discussion
Post by: Aveneu on 2009-10-26 00:46:19
Lyricwiki doesn't seem to be working for me. Is the component affected by this? (http://groups.google.com/group/lyricwiki-api/browse_thread/thread/733ccd919d654040) Or the move to wikia?

Yes, the recording labels killed the LyricWiki API, so this plugin no longer works with LyricWiki.
Title: Lyrics Grabber Feedback & Discussion
Post by: lokioki on 2009-11-11 18:28:01
Could you try adding metal-archives.com ? They have got huge loads of lyrics which LyricsPlugin don`t have for any metal-related band.
Title: Lyrics Grabber Feedback & Discussion
Post by: electricprophet on 2009-11-20 17:43:33
Could you try adding metal-archives.com ? They have got huge loads of lyrics which LyricsPlugin don`t have for any metal-related band.


i also want this, if it can be done
Title: Lyrics Grabber Feedback & Discussion
Post by: 2E7AH on 2009-11-21 01:14:24
T.P.Wang, foobar 1 context menu entries for python grabber doesn't show: any way to run scripts now?
Title: Lyrics Grabber Feedback & Discussion
Post by: T.P Wang on 2009-11-21 01:46:44
Seems that I should update the legacy version, I'll check it later
Title: Lyrics Grabber Feedback & Discussion
Post by: A16395 on 2009-11-21 14:31:17
Lyricwiki doesn't seem to be working for me. Is the component affected by this? (http://groups.google.com/group/lyricwiki-api/browse_thread/thread/733ccd919d654040) Or the move to wikia?

Yes, the recording labels killed the LyricWiki API, so this plugin no longer works with LyricWiki.


Hello,

maybe you can change your plugin it to the following api-lyrics-service: lyricsfly.com

the following greasmonkeyscript for firefox uses the api from lyricsfly.com
http://userscripts.org/scripts/show/36102 (http://userscripts.org/scripts/show/36102)
It works for the last.fm page and showed the lyrics in the browser

and perhaps you can use it for your foobar2000 plugin too.

here is an example how it works:

Song: Rush – Freewill

GET /api/api.php?i=55562032656-reeloo.net/wordpress/lyrics-for-lastfm-radio&a=Rush&t=Freewill HTTP/1.1
Host: lyricsfly.com
User-Agent: Mozilla/4.0 (compatible) Greasemonkey
Accept: application/xml
Accept-Language: de,en-us;q=0.7,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive


[21.11.2009 15:25:25:109]
HTTP/1.1 200 OK
Date: Sat, 21 Nov 2009 14:25:25 GMT
Server: Apache/2.0.52 (CentOS)
X-Powered-By: PHP/4.3.9
Content-Length: 4461
Connection: close
Content-Type: text/xml

<?xml version="1.0" encoding="utf-8"?><start>   <status>200</status><sg><cs>5dc6cf2720</cs><id>140427</id><ar>Rush</ar><tt>Freewill</tt><al>Different Stages</al><tx>There are those who think that

Life has nothing left to chance

A host of holy horrors

To direct our aimless dance




A planet of playthings, we dance on the strings

Of powers we cannot perceive

The stars aren't aligned or the Gods are malign

Blame is better to give than receive





[...cut...]


Title: Lyrics Grabber Feedback & Discussion
Post by: cartman(2vd) on 2009-12-04 14:00:29
Any information on v1.0 compatibility?
Title: Lyrics Grabber Feedback & Discussion
Post by: lokioki on 2009-12-04 14:02:56
Works.

Have you thought about adding metal-archives.com somehow in this plugin ? If there is not a way to do this, maybe you could contact them and find a solution ? They have a lots of lyrics for metal stuff that isn't on anywhere else.
Title: Lyrics Grabber Feedback & Discussion
Post by: cartman(2vd) on 2009-12-04 15:10:46
Using 0.307a with python grabber and "work it does not" sry

edit: just tried v1.0b3 and plugin seems to work so its not a big deal
Title: Lyrics Grabber Feedback & Discussion
Post by: OrcaMarinha on 2009-12-04 16:34:55
After it downloads the lyric doesnt appear how do I show it ?
Title: Lyrics Grabber Feedback & Discussion
Post by: jayg30 on 2009-12-06 23:38:42
Not sure why I can't get this to work correctly, and I don't have enough time to dig for an answer. Can someone help.

It won't find lyrics for any of my songs and I believe the reason why is that when it searches it is using the file type extension in the search. If you even try to manually search the lyricswiki site and include .ogg or .mp3 or whatever it gives no results. If you remove it it works.
I was under the impression this used the metadata for artist, title, etc. but doesn't look like it for me. If it did those fields are filled in correctly and it should work. I'm not about to change filenames and certainly will not remove file extensions.

Why is this happening and what can I do?
Title: Lyrics Grabber Feedback & Discussion
Post by: jayg30 on 2009-12-08 00:09:57
Just to update my last post. It looks like the lyricplugin does work for finding lyrics, but not the wiki. I'm really not sure why the wiki doesn't work though. Perhaps I'm the only one with the problem?
Title: Lyrics Grabber Feedback & Discussion
Post by: cartman(2vd) on 2009-12-28 16:20:21
here are two scripts which can fetch GENRE and STYLE tags from Discogs (http://wiki.discogs.com/index.php/Style_Guide-Related_Styles_Lists) and put them in appropriate tags on any number of files or maybe your whole library

speed isn't it strong side, but it functions like this:
from every track ARTIST and ALBUM tags are used to get the discogs release ID, which is chosen as the first from the response list, and then according to GENRE/STYLE tags they are written to files

Discogs_GetStyle.py


hello. ive used your getstyle script to get multi value tag for some of my albums. Ive reciever semi-colon delimitered strings and they are correctly inserted in genre tag (i want it this way)... problem is that i dont know why they are not seen as multi value. Not until i open explicit properties window rclick the genre line and choose "split value". the whole string stays the same but after saving tags they are seen by facets as multi value...

can it be somehow arranged that fields are seen as multi value right away? am i doing something wrong?
Title: Lyrics Grabber Feedback & Discussion
Post by: 2E7AH on 2009-12-28 16:35:45
That's the way how python grabber writes results, it can't be done from the script except providing semicolon presence for manual splitting

Also you must be using foobar version prior 1.0 betas, because python grabber doesn't work there, but new versions has nice new feature:
If you select all your library go to preferences and select "split values" it changes only affected files and not all files as it was in prior versions

And you can do library search i.e. "genre HAS ;" then it will list all genre tags that aren't splitted
Title: Lyrics Grabber Feedback & Discussion
Post by: cartman(2vd) on 2009-12-28 16:40:36
That's the way how python grabber writes results, it can't be done from the script except providing semicolon presence for manual splitting


Ok. i was thinking i was doing something wrong

Also you must be using foobar version prior 1.0 betas, because python grabber doesn't work there, but new versions has nice new feature:
If you select all your library go to preferences and select "split values" it changes only affected files and not all files as it was in prior versions

And you can do library search i.e. "genre HAS ;" then it will list all genre tags that aren't splitted


Em... just used PythonGrabber on 1.0b5 quite successfully

Title: Lyrics Grabber Feedback & Discussion
Post by: 2E7AH on 2009-12-28 16:51:37
eh, you are right  it needed refresh in it settings after new context menu in 1.0, which I didn't try and thought it's not working
thanks
Title: Lyrics Grabber Feedback & Discussion
Post by: FreakyF on 2010-01-03 20:48:45
Hello,

I found the version 0.3.0.7 Alpha in the Web. Can I use this version or is it corrupt?
Thanks for your help.

Here is the link: http://code.google.com/p/lyricsgrabber/dow...+lyricsgrabber+ (http://code.google.com/p/lyricsgrabber/downloads/list?can=2&q=+++%09+lyricsgrabber+)
Title: Lyrics Grabber Feedback & Discussion
Post by: zygzak on 2010-01-06 14:00:55
After installing 0.3.8.2 version of Colums UI  foo_grabber_python.dll (Python dll?) crashes on Foobar startup. Crashdump sent.

Code: [Select]
Illegal operation:
Code: C0000005h, flags: 00000000h, address: 1E044F03h
Access violation, operation: read, address: 00000004h

Call path:
entry=>initquit::on_init

Code bytes (1E044F03h):
1E044EC3h:  C3 8B 57 18 56 52 E8 32 D2 03 00 83 C4 08 5F 5E
1E044ED3h:  C3 CC CC CC CC CC CC CC CC CC CC CC CC 83 EC 08
1E044EE3h:  53 55 56 8B 74 24 18 85 F6 57 75 0F E8 9C 16 02
1E044EF3h:  00 5F 5E 5D 33 C0 5B 83 C4 08 C3 A1 A0 46 1F 1E
1E044F03h:  8B 78 04 8B 47 18 85 C0 89 7C 24 14 75 0D E8 3A
1E044F13h:  FE FF FF 85 C0 0F 85 15 01 00 00 8B C6 E8 6B F5
1E044F23h:  FF FF 85 C0 89 44 24 10 0F 84 02 01 00 00 8D 4C
1E044F33h:  24 10 51 E8 95 CA 07 00 8B 54 24 14 8B 47 1C 52

Stack (0018F65Ch):
0018F63Ch:  00000000 00000000 00000000 00000000
0018F64Ch:  00000000 00000000 00000000 00000000
0018F65Ch:  00000000 6CC4F34C 0018F6FC 6CC5D2D4
0018F66Ch:  6CC14503 0018F6F0 1E0DE59B 6CC4F34C
0018F67Ch:  00000013 6CC1489B 6CC4F34C 55756C9B
0018F68Ch:  00000001 6CC5D2C0 00000000 00000001
0018F69Ch:  00000000 00000000 00000000 00000000
0018F6ACh:  00000000 6CC4F2DC 00000000 00000000
0018F6BCh:  00000000 00000013 00E1F8F2 0802D1F8
0018F6CCh:  00E1F946 00000000 6CC5D33C 00000039
0018F6DCh:  6CC5D2D4 00E1F5FC 55756C5C 0018F5B8
0018F6ECh:  0018F688 0018F7C8 6CC4ACD0 00000000
0018F6FCh:  0018F710 6CC121B6 6CC5D2C0 00000000
0018F70Ch:  6CC5D2BC 0018F7D4 6C5B0539 0802D1FC
0018F71Ch:  00000000 0018F794 56A4ACE9 0018F7E8
0018F72Ch:  00000012 00000000 FFFFFFFF 6C5F387C
0018F73Ch:  00000000 00000000 00000000 00000013
0018F74Ch:  0000000C 00000002 0018F77C 6C5F3680
0018F75Ch:  047F1ED8 00000030 00000040 0000002F
0018F76Ch:  00000002 01DD5FD8 6C5F3910 0018F77C

Registers:
EAX: 00000000, EBX: 6CC5D2D4, ECX: 00000001, EDX: 00000072
ESI: 6CC4F34C, EDI: 00000000, EBP: 0018F6FC, ESP: 0018F65C

Crash location:
Module: python25
Offset: 44F03h
Symbol: "PyCodec_Lookup" (+23h)

Loaded modules:
foobar2000                      loaded at 00DE0000h - 00F7A000h
ntdll                            loaded at 77770000h - 77897000h
kernel32                        loaded at 76320000h - 763FC000h
COMCTL32                        loaded at 74D80000h - 74F1E000h
msvcrt                          loaded at 760A0000h - 7614A000h
ADVAPI32                        loaded at 775B0000h - 77676000h
RPCRT4                          loaded at 76820000h - 768E3000h
GDI32                            loaded at 77980000h - 779CB000h
USER32                          loaded at 76400000h - 7649D000h
SHLWAPI                          loaded at 77400000h - 77459000h
DSOUND                          loaded at 6F430000h - 6F4A0000h
ole32                            loaded at 77460000h - 775A5000h
WINMM                            loaded at 74660000h - 74692000h
OLEAUT32                        loaded at 75F30000h - 75FBD000h
OLEACC                          loaded at 74620000h - 7465D000h
POWRPROF                        loaded at 75120000h - 7513A000h
SHELL32                          loaded at 768F0000h - 77400000h
shared                          loaded at 10000000h - 1002B000h
imagehlp                        loaded at 778C0000h - 778E9000h
UxTheme                          loaded at 74B00000h - 74B3F000h
dbghelp                          loaded at 72CF0000h - 72DCC000h
COMDLG32                        loaded at 75EA0000h - 75F13000h
IMM32                            loaded at 778A0000h - 778BE000h
MSCTF                            loaded at 75FD0000h - 76098000h
LPK                              loaded at 75FC0000h - 75FC9000h
USP10                            loaded at 76150000h - 761CD000h
CLBCatQ                          loaded at 778F0000h - 77974000h
MMDevApi                        loaded at 745E0000h - 74608000h
SETUPAPI                        loaded at 76690000h - 7681A000h
WINTRUST                        loaded at 74F70000h - 74F9D000h
CRYPT32                          loaded at 75770000h - 75862000h
MSASN1                          loaded at 758D0000h - 758E2000h
USERENV                          loaded at 75CD0000h - 75CEE000h
Secur32                          loaded at 75CB0000h - 75CC4000h
foo_unpack                      loaded at 00D20000h - 00D4E000h
foo_dsp_vlevel                  loaded at 00CD0000h - 00CDB000h
MSVCR80                          loaded at 71270000h - 7130B000h
foo_input_std                    loaded at 02E00000h - 02F41000h
foo_queuecontents                loaded at 00D70000h - 00D95000h
foo_uie_typefind                loaded at 01C80000h - 01CB0000h
foo_input_shorten                loaded at 02080000h - 020AD000h
foo_cdda                        loaded at 020B0000h - 020F0000h
foo_freedb2                      loaded at 02F80000h - 02FC1000h
foo_dumb                        loaded at 02FD0000h - 0305F000h
foo_lastfm_radio                loaded at 03200000h - 03248000h
foo_run                          loaded at 03250000h - 032AF000h
foo_input_monkey                loaded at 032D0000h - 03318000h
foo_masstag                      loaded at 03320000h - 03363000h
foo_discogs                      loaded at 03520000h - 03585000h
WININET                          loaded at 77680000h - 77766000h
Normaliz                        loaded at 75F20000h - 75F23000h
urlmon                          loaded at 761D0000h - 76302000h
iertutil                        loaded at 764A0000h - 76688000h
gdiplus                          loaded at 748C0000h - 74A6B000h
foo_dsp_std                      loaded at 03370000h - 033B9000h
foo_uie_albumart                loaded at 03060000h - 0309D000h
foo_comserver2                  loaded at 03590000h - 035E6000h
foo_grabber_python              loaded at 6CC10000h - 6CC67000h
python25                        loaded at 1E000000h - 1E208000h
MSVCR71                          loaded at 7C340000h - 7C396000h
foo_uie_albumlist                loaded at 034D0000h - 0350D000h
foo_ui_std                      loaded at 03A20000h - 03B2E000h
MSIMG32                          loaded at 75110000h - 75115000h
foo_input_mslive                loaded at 035F0000h - 03631000h
WMVCore                          loaded at 6B860000h - 6BAAB000h
WMASF                            loaded at 6F4D0000h - 6F509000h
foo_stop_on_current              loaded at 73310000h - 7332C000h
foo_uie_tabs                    loaded at 037A0000h - 037C8000h
foo_uie_playlists_dropdown      loaded at 037E0000h - 0381C000h
foo_albumlist                    loaded at 03960000h - 039BB000h
foo_uie_quicksearch              loaded at 03B30000h - 03B76000h
foo_uie_graphical_browser        loaded at 6C4D0000h - 6C564000h
foo_sid                          loaded at 03E90000h - 03F0D000h
foo_audioscrobbler              loaded at 039D0000h - 03A01000h
foo_removefromqueue              loaded at 03B90000h - 03B9A000h
foo_uie_elplaylist              loaded at 03F20000h - 03F91000h
foo_uie_trackinfo_mod            loaded at 03D10000h - 03D66000h
MSVCP80                          loaded at 6C750000h - 6C7D7000h
foo_fileops                      loaded at 03C20000h - 03C66000h
foo_converter                    loaded at 04580000h - 045EC000h
foo_musicbrainz                  loaded at 6CB10000h - 6CB6C000h
WINHTTP                          loaded at 73720000h - 73780000h
foo_input_alac                  loaded at 03CC0000h - 03CE0000h
foo_lyricsgrabber                loaded at 6C5A0000h - 6C605000h
WS2_32                          loaded at 75E20000h - 75E4D000h
NSI                              loaded at 76310000h - 76316000h
foo_jesus                        loaded at 6F620000h - 6F647000h
foo_uie_panel_splitter          loaded at 046F0000h - 04749000h
foo_playlist_manager            loaded at 04750000h - 04794000h
foo_abx                          loaded at 04520000h - 04552000h
foo_uie_lyrics2                  loaded at 04950000h - 049C7000h
foo_ui_columns                  loaded at 04D60000h - 04ED2000h
foo_rgscan                      loaded at 048F0000h - 0493E000h
foo_verifier                    loaded at 04A20000h - 04A63000h
foo_facets                      loaded at 04C90000h - 04D10000h
foo_osd                          loaded at 04AE0000h - 04B14000h
foo_uie_bookmarks                loaded at 05120000h - 05181000h
foo_stopaftercuralbum            loaded at 049D0000h - 049EF000h
foo_uie_console                  loaded at 04AA0000h - 04ABA000h
foo_playcount                    loaded at 04D10000h - 04D40000h
foo_vis_shpeck                  loaded at 6CC80000h - 6CCC1000h
WindowsCodecs                    loaded at 73FE0000h - 740D4000h
apphelp                          loaded at 75C50000h - 75C7C000h
TortoiseOverlays                loaded at 051F0000h - 05207000h
tortoisehg                      loaded at 05220000h - 05229000h
win32api                        loaded at 1E8F0000h - 1E908000h
VERSION                          loaded at 754E0000h - 754E8000h
pywintypes25                    loaded at 1E7D0000h - 1E7EC000h
pythoncom25                      loaded at 05250000h - 052A9000h
win32trace                      loaded at 1ED10000h - 1ED17000h
rsaenh                          loaded at 751E0000h - 7521B000h
win32file                        loaded at 1EA40000h - 1EA5A000h
MSWSOCK                          loaded at 75420000h - 7545B000h
sfc                              loaded at 73980000h - 73985000h
sfc_os                          loaded at 732A0000h - 732AD000h
win32process                    loaded at 1EC20000h - 1EC2B000h
Psapi                            loaded at 75D80000h - 75D87000h
shell                            loaded at 1E830000h - 1E86B000h
win32event                      loaded at 1E9E0000h - 1E9E8000h
win32ui                          loaded at 1E280000h - 1E33C000h
MFC71                            loaded at 7C140000h - 7C246000h
WINSPOOL                        loaded at 734F0000h - 73532000h
win32gui                        loaded at 1EA70000h - 1EA98000h
bz2                              loaded at 1D170000h - 1D183000h
bdiff                            loaded at 66A00000h - 66A09000h
mpatch                          loaded at 61F00000h - 61F09000h
_hashlib                        loaded at 053B0000h - 053E8000h
_socket                          loaded at 05230000h - 0523D000h
_ssl                            loaded at 05DF0000h - 05E66000h
WSOCK32                          loaded at 75040000h - 75047000h
win32net                        loaded at 1EB60000h - 1EB73000h
NETAPI32                        loaded at 75B20000h - 75B96000h
base85                          loaded at 69C40000h - 69C48000h
diffhelpers                      loaded at 688C0000h - 688C8000h
TortoiseStub                    loaded at 05370000h - 0537E000h
TortoiseSVN                      loaded at 06E50000h - 06F18000h
SHFOLDER                        loaded at 75030000h - 75035000h
libapr_tsvn                      loaded at 6EEC0000h - 6EEE2000h
MSVCR90                          loaded at 74C80000h - 74D23000h
libaprutil_tsvn                  loaded at 6EE60000h - 6EE8F000h
WLDAP32                          loaded at 75E50000h - 75E99000h
intl3_tsvn                      loaded at 05440000h - 05452000h
MSVCP90                          loaded at 74BF0000h - 74C7E000h
DropboxExt.3                    loaded at 054A0000h - 054B3000h
MSVCP71                          loaded at 7C3A0000h - 7C41B000h
EhStorShell                      loaded at 74BD0000h - 74BEF000h
PROPSYS                          loaded at 74430000h - 744EB000h
IconCodecService                loaded at 74BB0000h - 74BB6000h
sud                              loaded at 6BBA0000h - 6BCCE000h
ADVPACK                          loaded at 6CCD0000h - 6CCFE000h
DUser                            loaded at 74AD0000h - 74B00000h

Stack dump analysis:
Address: 6CC4F34Ch (foo_grabber_python+3F34Ch), symbol: "foobar2000_get_interface" (+2F8FCh)
Address: 6CC5D2D4h (foo_grabber_python+4D2D4h), symbol: "foobar2000_get_interface" (+3D884h)
Address: 6CC14503h (foo_grabber_python+4503h)
Address: 1E0DE59Bh (python25+DE59Bh), symbol: "PyUnicodeUCS2_SetDefaultEncoding" (+Bh)
Address: 6CC4F34Ch (foo_grabber_python+3F34Ch), symbol: "foobar2000_get_interface" (+2F8FCh)
Address: 6CC1489Bh (foo_grabber_python+489Bh), symbol: "initgrabber" (+17Bh)
Address: 6CC4F34Ch (foo_grabber_python+3F34Ch), symbol: "foobar2000_get_interface" (+2F8FCh)
Address: 6CC5D2C0h (foo_grabber_python+4D2C0h), symbol: "foobar2000_get_interface" (+3D870h)
Address: 6CC4F2DCh (foo_grabber_python+3F2DCh), symbol: "foobar2000_get_interface" (+2F88Ch)
Address: 00E1F8F2h (foobar2000+3F8F2h)
Address: 00E1F946h (foobar2000+3F946h)
Address: 6CC5D33Ch (foo_grabber_python+4D33Ch), symbol: "foobar2000_get_interface" (+3D8ECh)
Address: 6CC5D2D4h (foo_grabber_python+4D2D4h), symbol: "foobar2000_get_interface" (+3D884h)
Address: 00E1F5FCh (foobar2000+3F5FCh)
Address: 6CC4ACD0h (foo_grabber_python+3ACD0h), symbol: "foobar2000_get_interface" (+2B280h)
Address: 6CC121B6h (foo_grabber_python+21B6h)
Address: 6CC5D2C0h (foo_grabber_python+4D2C0h), symbol: "foobar2000_get_interface" (+3D870h)
Address: 6CC5D2BCh (foo_grabber_python+4D2BCh), symbol: "foobar2000_get_interface" (+3D86Ch)
Address: 6C5B0539h (foo_lyricsgrabber+10539h)
Address: 6C5F387Ch (foo_lyricsgrabber+5387Ch), symbol: "foobar2000_get_interface" (+3BA4Ch)
Address: 6C5F3680h (foo_lyricsgrabber+53680h), symbol: "foobar2000_get_interface" (+3B850h)
Address: 6C5F3910h (foo_lyricsgrabber+53910h), symbol: "foobar2000_get_interface" (+3BAE0h)
Address: 6C5F3680h (foo_lyricsgrabber+53680h), symbol: "foobar2000_get_interface" (+3B850h)
Address: 6C5F3F60h (foo_lyricsgrabber+53F60h), symbol: "foobar2000_get_interface" (+3C130h)
Address: 6CC5D2BCh (foo_grabber_python+4D2BCh), symbol: "foobar2000_get_interface" (+3D86Ch)
Address: 00E05601h (foobar2000+25601h)
Address: 6C5EBAC3h (foo_lyricsgrabber+4BAC3h), symbol: "foobar2000_get_interface" (+33C93h)
Address: 00E3CFDBh (foobar2000+5CFDBh)
Address: 6C5FB65Ch (foo_lyricsgrabber+5B65Ch), symbol: "foobar2000_get_interface" (+4382Ch)
Address: 00EF6301h (foobar2000+116301h)
Address: 00E3E30Dh (foobar2000+5E30Dh)
Address: 00F10600h (foobar2000+130600h)
Address: 00F135D4h (foobar2000+1335D4h)
Address: 00F135D4h (foobar2000+1335D4h)
Address: 00DE0000h (foobar2000+0h)
Address: 777D6500h (ntdll+66500h), symbol: "RtlDeactivateActivationContextUnsafeFast" (+5Fh)
Address: 777799FAh (ntdll+99FAh), symbol: "WinSqmStartSession" (+27Bh)
Address: 777D68FDh (ntdll+668FDh), symbol: "RtlFreeHeap" (+28Dh)
Address: 777D661Fh (ntdll+6661Fh), symbol: "RtlAllocateHeap" (+AFh)
Address: 777D6570h (ntdll+66570h), symbol: "RtlAllocateHeap" (+0h)
Address: 00F43CC0h (foobar2000+163CC0h)
Address: 00EE223Bh (foobar2000+10223Bh)
Address: 00EE9717h (foobar2000+109717h)
Address: 00EE5670h (foobar2000+105670h)
Address: 00EE9717h (foobar2000+109717h)
Address: 00EE7BCEh (foobar2000+107BCEh)
Address: 03000300h (foo_dumb+30300h), symbol: "foobar2000_get_interface" (+16E40h)
Address: 00EE2928h (foobar2000+102928h)
Address: 1000260Dh (shared+260Dh), symbol: "uPrintCrashInfo_OnEvent" (+B0h)
Address: 00F176B4h (foobar2000+1376B4h)
Address: 00F016B2h (foobar2000+1216B2h)
Address: 10002650h (shared+2650h), symbol: "uCallStackTracker::uCallStackTracker" (+2Fh)
Address: 00F176B4h (foobar2000+1376B4h)
Address: 00E3E63Eh (foobar2000+5E63Eh)
Address: 00DE0000h (foobar2000+0h)
Address: 00F43CC0h (foobar2000+163CC0h)
Address: 00F08850h (foobar2000+128850h)
Address: 00DF07A6h (foobar2000+107A6h)
Address: 00EE5670h (foobar2000+105670h)
Address: 00EE2786h (foobar2000+102786h)
Address: 00EE279Ah (foobar2000+10279Ah)
Address: 00F08850h (foobar2000+128850h)
Address: 00F01955h (foobar2000+121955h)
Address: 00EE34CCh (foobar2000+1034CCh)
Address: 00DE0000h (foobar2000+0h)
Address: 00EEADD7h (foobar2000+10ADD7h)
Address: 00EE5670h (foobar2000+105670h)
Address: 7636D0E9h (kernel32+4D0E9h), symbol: "BaseThreadInitThunk" (+12h)
Address: 777B19BBh (ntdll+419BBh), symbol: "RtlInitializeExceptionChain" (+63h)
Address: 763BFD89h (kernel32+9FD89h), symbol: "UnhandledExceptionFilter" (+0h)
Address: 763BFD89h (kernel32+9FD89h), symbol: "UnhandledExceptionFilter" (+0h)
Address: 777799FAh (ntdll+99FAh), symbol: "WinSqmStartSession" (+27Bh)
Address: 777B198Eh (ntdll+4198Eh), symbol: "RtlInitializeExceptionChain" (+36h)
Address: 00EE3537h (foobar2000+103537h)
Address: 00EE3537h (foobar2000+103537h)
Address: 74006E00h (WindowsCodecs+26E00h), symbol: "DllGetClassObject" (+18013h)
Address: 74006100h (WindowsCodecs+26100h), symbol: "DllGetClassObject" (+17313h)
Address: 046F8A00h (foo_uie_panel_splitter+8A00h)
Address: 046F8A00h (foo_uie_panel_splitter+8A00h)
Address: 046F8A00h (foo_uie_panel_splitter+8A00h)
Address: 74006100h (WindowsCodecs+26100h), symbol: "DllGetClassObject" (+17313h)

Environment:
App: foobar2000 v0.9.6.9
OS: Windows 6.0.6002 Service Pack 2 x86
CPU: Intel® Core™2 Duo CPU    E7200  @ 2.53GHz, features: MMX SSE SSE2 SSE3 SSE4.1
Audio: Głośniki (Creative SB Audigy); SPDIF Out (Creative SB Audigy); Cyfrowe urządzenie wyjściowe (SPDIF) (Urządzenie zgodne ze standardem High Definition Audio); Głośniki (Bluetooth AV Audio); Głośniki (Bluetooth SCO Audio)
UI: Columns UI 0.3.8.2

Components:
Core (2009-08-22 11:25:22)
    foobar2000 core 0.9.6.9
foo_abx.dll (2009-06-07 13:25:26)
    ABX Comparator 1.3.4
foo_albumlist.dll (2009-08-22 11:23:44)
    Album List 4.3.1
foo_audioscrobbler.dll (2009-10-25 20:30:02)
    Audioscrobbler 1.4.3
foo_cdda.dll (2009-08-22 11:23:34)
    CD Audio Decoder 2.1.4
foo_comserver2.dll (2006-07-31 20:13:20)
    COM Automation server 0.7 alpha 6
foo_converter.dll (2009-08-22 11:23:26)
    Converter 1.2.1
foo_discogs.dll (2009-12-23 03:26:55)
    Discogs Tagger 1.22
foo_dsp_std.dll (2009-08-22 11:23:48)
    Standard DSP Array 1.0
foo_dsp_vlevel.dll (2008-03-02 23:42:06)
    VLevel 20080302.0
foo_dumb.dll (2009-11-28 11:13:44)
    DUMB module decoder 0.9.9.9
foo_facets.dll (2008-01-08 00:42:16)
    Facets 2008-01-04
foo_fileops.dll (2009-08-22 11:22:36)
    File Operations 2.1.2
foo_freedb2.dll (2009-08-22 11:22:52)
    freedb Tagger 0.6.1
foo_grabber_python.dll (2009-02-06 13:40:15)
    Lyrics Grabber Dances With Python 0.1.12 Alpha
foo_input_alac.dll (2009-03-22 14:15:46)
    ALAC Decoder 1.0.3
foo_input_monkey.dll (2009-05-01 13:40:52)
    Monkey's Audio Decoder 2.1.4
foo_input_mslive.dll (2009-01-05 19:46:44)
    mslive 0.4.9 (SSE)
foo_input_shorten.dll (2007-01-22 13:05:40)
    Shorten decoder 0.4.2a
foo_input_std.dll (2009-08-22 11:23:28)
    Standard Input Array 1.0
foo_jesus.dll (2010-01-03 13:41:18)
    Autosave & Autobackup 8
foo_lastfm_radio.dll (2009-02-25 22:05:24)
    Last.fm Radio 0.5.6b
foo_lyricsgrabber.dll (2009-02-07 07:12:47)
    Lyrics Grabber 0.3.0.7 Alpha
foo_masstag.dll (2008-11-29 12:13:26)
    Masstagger 1.7.1
foo_musicbrainz.dll (2009-04-10 21:27:28)
    MusicBrainz Tagger 0.2
foo_osd.dll (2007-01-25 13:58:44)
    On-Screen Display GDI+ 1.52
foo_playcount.dll (2009-04-29 19:09:32)
    Playback Statistics 2.1.9
foo_playlist_manager.dll (2007-01-22 12:05:12)
    Playlist Manager 1.0.2
foo_queuecontents.dll (2009-07-28 07:33:04)
    Queue Contents Editor 0.1.1
foo_removefromqueue.dll (2007-07-14 13:30:00)
    Remove from Queue 1
foo_rgscan.dll (2009-08-22 11:23:20)
    ReplayGain Scanner 2.0.9
foo_run.dll (2009-06-07 14:15:18)
    Run services 0.3.7
foo_sid.dll (2009-04-16 13:30:28)
    sidplay2 1.14
foo_stop_on_current.dll (2009-06-10 17:23:28)
    Stop on Current 0.2
foo_stopaftercuralbum.dll (2009-06-01 08:50:42)
    foo_stopaftercuralbum 0.2
foo_ui_columns.dll (2010-01-05 23:03:59)
    Columns UI 0.3.8.2
foo_ui_std.dll (2009-08-22 11:23:54)
    Default User Interface 0.9.5
foo_uie_albumart.dll (2007-12-15 23:22:24)
    Album Art Panel 0.2.7.1
foo_uie_albumlist.dll (2009-03-28 16:14:17)
    Album list panel 0.3.4
foo_uie_bookmarks.dll (2008-07-19 17:29:50)
    Bookmarks 0.2.6
foo_uie_console.dll (2009-08-29 17:06:24)
    Console panel 0.4
foo_uie_elplaylist.dll (2009-12-11 23:35:40)
    ELPlaylist 0.6.6.4(beta)
foo_uie_graphical_browser.dll (2008-04-19 20:37:52)
    Graphical Browser rev015
foo_uie_lyrics2.dll (2009-12-23 13:31:04)
    Lyric Show Panel 2 0.4.5
foo_uie_panel_splitter.dll (2009-12-10 00:16:12)
    Panel Stack Splitter 0.3.8.3(alpha)
foo_uie_playlists_dropdown.dll (2008-12-08 02:43:24)
    Playlists Dropdown 0.7 beta 1
foo_uie_quicksearch.dll (2007-05-18 12:31:10)
    Quick Search Toolbar 2.8l
foo_uie_tabs.dll (2008-12-10 23:06:50)
    Tabbed Panel Modified 0.2.7
foo_uie_trackinfo_mod.dll (2007-01-05 14:36:20)
    Track info panel mod 0.8.0 beta [Jan  5 2007 - 13:36:12]
foo_uie_typefind.dll (2007-10-22 22:30:44)
    Typefind 0.2 beta 2
foo_unpack.dll (2009-08-22 11:22:20)
    RAR reader 1.2
    ZIP/GZIP reader 1.0
foo_verifier.dll (2009-10-05 10:39:20)
    File Integrity Verifier 1.1
foo_vis_shpeck.dll (2009-09-25 14:08:48)
    Shpeck - Winamp vis plugins wrapper 0.3.6

Recent events:
Watching: H:\Alternative
Watching: H:\Mp3
Watching: H:\Oldies
Watching: H:\Metal
Watching: H:\OST
Watching: H:\Punk
Watching: H:\Rock
Watching: H:\Sorted
Watching: H:\Techno
Title: Lyrics Grabber Feedback & Discussion
Post by: icedtea on 2010-01-31 13:20:00
T.P Wang any possibility of getting this updated to 1.0 so that the commands come out of legacy commands? Also I think LyricWiki needs to be removed as it won't work any more.
Thanks
Title: Lyrics Grabber Feedback & Discussion
Post by: tore on 2010-03-15 09:43:36
Hm, I'm a newb to Python so forgive me if this question is stupid, but. After installing the python grabber, I get this message on foobar startup :

foo_grabber_python: Traceback (most recent call last):
  File "<string>", line 4, in <module>
ImportError: No module named traceback

And if I try to change settings for PYTHON in the lyricsgrabber and then press refresh to bring up new scripts, I get lots of importerrors.

What's up?

edit :

I did install python as well to c:\python. I see c:\Python\Lib has some of the files requested. However, moving the content of my python\lib folder to <user profile>\pygrabber\libs still results in a lot of errors!
Title: Lyrics Grabber Feedback & Discussion
Post by: 2E7AH on 2010-03-15 09:56:53
tore, you don't need to install python
look here (http://www.hydrogenaudio.org/forums/index.php?s=&showtopic=62821&view=findpost&p=635849) for example, how your folder structure should look like, I guess there is your problem
Title: Lyrics Grabber Feedback & Discussion
Post by: tore on 2010-03-15 10:00:26
Thanks, that did it  Brilliant!
Title: Lyrics Grabber Feedback & Discussion
Post by: Fridge on 2010-03-31 10:36:11
Can't tell if this is still being actively worked on or not, but thought I'd drop a feature request.  Basically, I'd appreciate an option where, if "[Artist] - [Title] (Blah Blah Remix)" or "[Artist] - [Title] (Live/Acoustic)" failed, the plugin would try just "[Artist] - [Title]" and drop the parenthetical.  Not a big deal, but it'd be nice.  Anyway, thanks for all the work on this, fantastic plugin.
Title: Lyrics Grabber Feedback & Discussion
Post by: icedtea on 2010-04-27 04:55:18
Quote
The following components found on your system are known to be problematic and should be either uninstalled or updated to their latest versions:

foo_lyricsgrabber.dll : Lyrics Grabber 0.3.0.7 Alpha
Reason: Repeated crash reports.


Can we have an update please?
Title: Lyrics Grabber Feedback & Discussion
Post by: electricprophet on 2010-04-27 18:57:32
yeah, an update would be great, I use this wonderful plugin all the time
Title: Lyrics Grabber Feedback & Discussion
Post by: odyssey on 2010-05-10 11:15:42
The python grabber is really cool! Finally I'm able to grab the info from last.fm that I've always wanted to!

The only drawback is that for different info I'm grabbing, I need to modify the tag-field every time. It would be great if you could map sources to a specific tag.
Title: Lyrics Grabber Feedback & Discussion
Post by: Joe30 on 2010-06-08 10:55:54
Edit: solved.
Title: Lyrics Grabber Feedback & Discussion
Post by: icedtea on 2010-06-08 11:46:25
I think this plugin is dead now...I have sent the developer a couple of PMs but no response there or in this thread. Can anyone please take this over since the source is available http://code.google.com/p/lyricsgrabber/ (http://code.google.com/p/lyricsgrabber/) It is MIT license so anyone can fork it
Title: Lyrics Grabber Feedback & Discussion
Post by: wolfsong on 2010-06-09 03:30:11
I think this plugin is dead now...I have sent the developer a couple of PMs but no response there or in this thread. Can anyone please take this over since the source is available http://code.google.com/p/lyricsgrabber/ (http://code.google.com/p/lyricsgrabber/) It is MIT license so anyone can fork it

Yes. I'd love to see this one updated.
Title: Lyrics Grabber Feedback & Discussion
Post by: Hitchhiker427 on 2010-06-09 08:04:34
Although I'd definitely be in favor of someone taking this over and fixing bugs/adding features, what I'd REALLY like is if someone can just recompile this with the new SDK and move the context menu items out of the "legacy commands" category.  I've never made a FB2K component before, but since the source is available, I imagine that this would be relatively easy for someone with a little experience.  Even if someone is not committed to taking over the entire project, this small change would be greatly appreciated.
Title: Lyrics Grabber Feedback & Discussion
Post by: tomaso on 2010-07-07 14:10:52
Hi, how do I make it to download the lyrics automatically?
Title: Lyrics Grabber Feedback & Discussion
Post by: Hitchhiker427 on 2010-08-01 00:13:28
I know it's been mentioned before that this component needs updated, but now it's a bit more important that it gets done.  Lyrics Plugin has changed their return format a bit.  It seems that the results now include a "tunerankings.com" url at the bottom of the lyrics. 

So, if I search for a track that has lyrics available, it'll append "tunerankings.com" to the bottom of the downloaded lyrics.  However more importantly, if I search for lyrics that are not available, the plugin will report "Success" and fill in the lyrics tag with "tunerankings.com".

So, now that the Lyrics Wiki portion is completely broken, the Lyrics Plugin portion is mostly broken, and the items appear on the "Legacy Commands" submenu, it'd be really nice if someone can release an update.  Thanks.
Title: Lyrics Grabber Feedback & Discussion
Post by: Hitchhiker427 on 2010-08-02 01:08:39
If anyone cares, I made up a pygrabber script to restore the LyricsPlugin functionality.  I've never programmed in Python before, so forgive me if it's rough around the edges:

Code: [Select]
# -*- coding: utf-8 -*-
import encodings.utf_8
import urllib
from xml.dom import minidom
from grabber import LyricProviderBase

class LyricsPlugin(LyricProviderBase):
    def GetName(self):
        return "Lyrics Plugin"
   
    def GetVersion(self):
        return "1"
   
    def GetURL(self):
        return "http://www.lyricsplugin.com"
   
    def Query(self, handles, status, abort):
        result = []
       
        for handle in handles:
            status.Advance()
           
            if abort.Aborting():
                return result
           
            artist = handle.Format("[%artist%]")
            title = handle.Format("[%title%]")
           
            try:
                string = urllib.urlopen("http://www.lyricsplugin.com/winamp03/plugin/?artist=%s&title=%s" % (urllib.quote(artist), urllib.quote(title))).read()
                start = string.find("<div id=\"lyrics\">") + 18
                end = string.find("<a href=", start)
                lyric = string[start:end].replace("<br />","")
                result.append(lyric)
            except Exception, e:
                traceback.print_exc(file=sys.stdout)
                result.append('')
                continue
       
        return result

if __name__ == "__main__":
    LyricProviderInstance = LyricsPlugin()
Title: Lyrics Grabber Feedback & Discussion
Post by: Qudeid on 2010-08-05 12:59:15
Hi there,

since a while, when requesting Lyrics via this plugin I get only this: "http://wwwlyricsvip.com" nothing more. Even Songs I know have lyrics in this database.. I don't know why that happens.

Anyway, because of that, I found this thread and the requests to recompile it for the newest SDK. I checked out the repository, downloaded the newest SDK and got it to compile... but unfortunately Foobar complains, that a dependency is missing or compiled against an old SDK... Well the SDK is the newest available fromt he Foobar website.... Also I noticed, the dll compiled by me is about 100 kb smaller than the one of the 0.3.0.7 Alpha version.

Could anyone point me into the right direction. Unfortunately I've never made a plugin for foobar but I think I'm experienced enough to get this to work with a few hints. (I'm using VS 2008)

Thanks!
Title: Lyrics Grabber Feedback & Discussion
Post by: Yirkha on 2010-08-05 16:22:25
Try using static CRT ("Multithread (/MT)").
Title: Lyrics Grabber Feedback & Discussion
Post by: MuffPotter on 2010-08-05 16:50:01
Hi there,

since a while, when requesting Lyrics via this plugin I get only this: "http://wwwlyricsvip.com" nothing more. Even Songs I know have lyrics in this database.. I don't know why that happens.

Anyway, because of that, I found this thread and the requests to recompile it for the newest SDK. I checked out the repository, downloaded the newest SDK and got it to compile... but unfortunately Foobar complains, that a dependency is missing or compiled against an old SDK... Well the SDK is the newest available fromt he Foobar website.... Also I noticed, the dll compiled by me is about 100 kb smaller than the one of the 0.3.0.7 Alpha version.

Could anyone point me into the right direction. Unfortunately I've never made a plugin for foobar but I think I'm experienced enough to get this to work with a few hints. (I'm using VS 2008)

Thanks!


It would be great if anyone could make this plugin work again. especially because there is no alternative, as fas as i know, and such a plugin is an absolute necessity.
Title: Lyrics Grabber Feedback & Discussion
Post by: Hitchhiker427 on 2010-08-05 19:25:17
Lyrics Plugin has changed how they display lyrics, and I'm not sure if it's possible to work around their changes.

Previously, the lyrics could be accessed by going to http://www.lyricsplugin.com/winamp03/plugi...e=<title> (http://www.lyricsplugin.com/winamp03/plugin/?artist=&lt;artist&gt;&title=&lt;title&gt;), and as the lyrics are part of the page source they can be easily parsed.  However, the lyrics are no longer a part of the page source, and are instead pasted into the body with some javascript upon visiting the site.  The lyrics are obtained from the slightly different URL, http://www.lyricsplugin.com/winamp03/plugi...t;timestamp> (http://www.lyricsplugin.com/winamp03/plugin/content.php?artist=&lt;artist&gt;&title=&lt;title&gt;&td=&lt;timestamp&gt;).  Unfortunately, this new URL will only work if the old URL http://www.lyricsplugin.com/winamp03/plugi...e=<title> (http://www.lyricsplugin.com/winamp03/plugin/?artist=&lt;artist&gt;&title=&lt;title&gt;) is set as the referer.  Unless it's possible to spoof the referer, I don't see a way around this.

However, it seems that lyricsplugin.com pulls its lyrics from lyricsvip.com.  So, if someone could make a script that grabs lyrics from lyricsvip.com, the functionality should be restored.  I've tried, but it's a bit difficult.  The lyricsvip.com URLs are case-sensitive, so when searching for many lyrics that are present, the script will report that the lyrics are unavailable.  This could be due to something stupid like using "The" instead of "the" in either the artist name or title.  So, if anyone out there has better programming skills than I do, this could be another option.
Title: Lyrics Grabber Feedback & Discussion
Post by: Qudeid on 2010-08-05 19:26:42
Try using static CRT ("Multithread (/MT)").


You mean in the Properties of foo_lyricsgrabber --> C\C++ --> Code Generation --> Runtime Library -> Multi-threaded (/MT) ? Because I can't find anything about "CRT". And MT is already selected in that project.

Thanks for the answer.

@Hitchhiker:

If there is any consistency in the site's Naming sceme of Artists, Albums and Tracktitles (like all new words are upper-case) it should be quite easy to achieve that. But I don't really know. Also.. how do you script for lyricsgrabber? I totally missed that. (PS: Darklyrics.com would be almost enough for me, hehe)
Title: Lyrics Grabber Feedback & Discussion
Post by: Hitchhiker427 on 2010-08-05 20:01:42
You can download foo_grabber_python here: http://code.google.com/p/lyricsgrabber/downloads/list (http://code.google.com/p/lyricsgrabber/downloads/list), and make your own python scripts.  The script I posted above for Lyrics Plugin worked using this method until they changed the system again.
Title: Lyrics Grabber Feedback & Discussion
Post by: Qudeid on 2010-08-06 09:04:58
You can download foo_grabber_python here: http://code.google.com/p/lyricsgrabber/downloads/list (http://code.google.com/p/lyricsgrabber/downloads/list), and make your own python scripts.  The script I posted above for Lyrics Plugin worked using this method until they changed the system again.


Downloaded, and working.. Then I looked at lyricsvip... but it seems they have no convention at all. Sometimes a word it capitalized sometimes it is not... Other than testing all possibilites, which makes it probably kind of slow, I see no way to otherwise download the lyrics.
Do you have some kind of generic script, which just needs the location and ready the lyrics in itself? Would be better than to just rewrite the whole script. And then I'll look at that.


But still... I would like to recompile it anyway, getting it out of the legacy commands and all (and maybe fixing the issue with the lyrics plugin website).. But first I must get it to compile and work, before that there is no way I could try to fix it.
Title: Lyrics Grabber Feedback & Discussion
Post by: Qudeid on 2010-08-06 10:34:43
Sorry for double posting...

@Hitchhiker:

for LyricsPlugin there is a possibility to set a referer. That much I found out. Yet, I can't obviously, not test that out, as compiling doesn't make it work in Foobar. Hope someone can point me into the right direction.
Title: Lyrics Grabber Feedback & Discussion
Post by: Hitchhiker427 on 2010-08-06 11:31:48
Unfortunately, I can't help when it comes to compiling code for foobar2000, however, I would like to see a proper update to the component.  Having the commands stuck in the "Legacy Commands" submenu is annoying.

But how did you set the referer?  I'm curious so that I can at least update my python script in the meantime.
Title: Lyrics Grabber Feedback & Discussion
Post by: Qudeid on 2010-08-06 11:58:32
Unfortunately, I can't help when it comes to compiling code for foobar2000, however, I would like to see a proper update to the component.  Having the commands stuck in the "Legacy Commands" submenu is annoying.

But how did you set the referer?  I'm curious so that I can at least update my python script in the meantime.


I don't think it is the same with the python script. It is due to cURL lyricsgrabber is using. And in cURL you can set the referer. So I can't tell you about that in python. But I'll look into it.. there seems to be a way. Let me a moment

Edit:

could you please tell me, what "timestamp" is in that URL you provided a few posts ago?
Title: Lyrics Grabber Feedback & Discussion
Post by: Qudeid on 2010-08-06 12:24:47
Sorry again for double posting..

And never mind, hitchhiker, I got it working
I just scanned a little the libraries of python and there I found how to do this, here's the working script:

Code: [Select]
# -*- coding: utf-8 -*-
import encodings.utf_8
import urllib
import urllib2
from xml.dom import minidom
from grabber import LyricProviderBase

class LyricsPlugin(LyricProviderBase):
    def GetName(self):
        return "Lyrics Plugin"

    def GetVersion(self):
            return "1"

    def GetURL(self):
        return "http://www.lyricsplugin.com"

    def GetAuthor(self):
        return "Hitchhiker427 + Qudeid"

    def Query(self, handles, status, abort):
        result = []

        for handle in handles:
            status.Advance()

            if abort.Aborting():
                return result

            artist = handle.Format("[%artist%]")
            title = handle.Format("[%title%]")

            try:
                req = urllib2.Request("http://www.lyricsplugin.com/winamp03/plugin/content.php?artist=%s&title=%s" % (urllib.quote(artist), urllib.quote(title)))
                req.add_header('Referer', "http://www.lyricsplugin.com/winamp03/plugin/?artist=%s&title=%s" % (urllib.quote(artist), urllib.quote(title)))
                string = urllib2.urlopen(req).read()
                start = string.find("<div id=\"lyrics\">") + 18
                end = string.find("</div>", start)
                lyric = string[start:end].replace("<br />","")
                result.append(lyric)
            except Exception, e:
                traceback.print_exc(file=sys.stdout)
                result.append('')
                continue

        return result

if __name__ == "__main__":
    LyricProviderInstance = LyricsPlugin()


Just a quick explanation...

There is another url lib called urllib2 (who would've thought that). There you can make a request, which is basically the same as you did with the old version, but instead of immediately opening the website, you can add headers to the request. If you add the request "Referer" .. well quess what, that's the referer, then you just open it and.. boom, there are your lyrics )
Also i've changed the "end" because otherwise there would have been a "</div>" at the end of the lyrics.

Now... would anyone be so kind and aid me in compiling a working dll, so that it is out of the legacy commands? Thanks!
Title: Lyrics Grabber Feedback & Discussion
Post by: Shemuel on 2010-08-06 14:36:30
It's great for a workaround to be up in such a short time. It shows the quality of the members in this forum.

Thanks Qudeid! I have seen a lack of return breaks on some lyrics, but that's probably not down to the code. I'll mention if it's a recurring problem.
Title: Lyrics Grabber Feedback & Discussion
Post by: Qudeid on 2010-08-06 14:47:49
Anyhow, I'd much rather the original working, than the workaround.
In theory it should, but, as I mentioned, I'm getting the one Error in Foobar that one or more dependencies are missing or build against an old SDK.

As the Code should work, in itself, it seems to be more of a configuration problem than the code, as I haven't changed much. (only the referer thing and the new SDK).
I would appreciate it very much, if someone could point me into the right direction.

And thanks for your approval

Edit: I know the problem now... My Dll requires curllib.dll, while the original doesn't.. But I don't know how I can get that code into the dll... Somehow it must work..
Title: Lyrics Grabber Feedback & Discussion
Post by: Qudeid on 2010-08-06 16:15:05
Only one hour time to edit a post?

Anyway... just for you to know. I got it to compile and it works... now I will face the issue with the legacy commands.
Seems like simply recompiling with the new SDK isn't enough... Anyone able to point me into the right direction?
Title: Lyrics Grabber Feedback & Discussion
Post by: Qudeid on 2010-08-06 17:18:08
Guys.. I've made it! *happy*

But unfortunately I am unable to upload it to that google code project, as I am not a member of that project. So I will upload it, including the license on my webspace, until Mr. Wang changes his own project (or adds me to it).
I will also include the current repository, archived in 7z, so anyone can look at the source code...

Plugin: Download (http://www.alexendris.com/misc/lyricsgrabber/foo_lyricsgrabber-0.3.1.0-Alpha.7z)
Source: Download (http://www.alexendris.com/misc/lyricsgrabber/foo_lyricsgrabber-0.3.1.0-Alpha-src.7z)

Fixes:

Just a little disclaimer... It works for me, with my own Foobar (Version 1.0). I've only tested it briefly and downloaded a song's lyrics using the LyricsPlugin option and it worked just fine.
Feel free to report anything to me or here. In the google Project Issue Tracker I won't be able to see it.
Title: Lyrics Grabber Feedback & Discussion
Post by: Hitchhiker427 on 2010-08-06 18:14:50
Guys.. I've made it! *happy*


Wow, awesome!  Thank you for doing this.

There's one little problem that I noticed.  The Lyrics Plugin command works, however, it still writes the "tunerankings.com" URL to the bottom of the lyrics.  This is particularly annoying when trying to download lyrics that don't exist, but Lyrics Grabber still reports success.

Thank you again.
Title: Lyrics Grabber Feedback & Discussion
Post by: Qudeid on 2010-08-06 18:26:43
Guys.. I've made it! *happy*


Wow, awesome!  Thank you for doing this.

There's one little problem that I noticed.  The Lyrics Plugin command works, however, it still writes the "tunerankings.com" URL to the bottom of the lyrics.  This is particularly annoying when trying to download lyrics that don't exist, but Lyrics Grabber still reports success.

Thank you again.


Very strange... it doesn't do that for me... If there are not Lyrics, it says "failed" to me, and if there are, the lyrics are correctly displayed. So I really can't check that out.
Maybe I check for that string... I try fixing it.
Title: Lyrics Grabber Feedback & Discussion
Post by: tedgo on 2010-08-06 18:36:26
Works for me too.
Thanks for this update
Title: Lyrics Grabber Feedback & Discussion
Post by: icedtea on 2010-08-06 18:39:27
Guys.. I've made it! *happy*


Thanks for the update
I would suggest you contact T.P Wang via PM if he is unresponsive start a different project with a similar name like foo_lyricsgrabber2 at google code if you intend to develop this component further. The license is MIT which allows for forking so it shouldn't be a problem.
Title: Lyrics Grabber Feedback & Discussion
Post by: Qudeid on 2010-08-06 18:40:17
Works for me too.
Thanks for this update


Very nice  Now we're even, TedGo . I use your DarkOne (as you might remember our correspondence in DeviantArt ) and you use, well at least something I have a little to do with ...

About the issue hitchhiker is having... I try to get a hold of him, so I can let him test for me, as I don't have that issue (which seems to be either location dependent, or it is because the lyrics themself contain that)

@icedtea:

Well, I don't really intent to develop it further... It's more like I maintain it a little. I don't plan to make any major changes or so. But OM him.. that I could really do, to at least get this version to google code and not a maybe lost thread post.
Title: Lyrics Grabber Feedback & Discussion
Post by: grimes on 2010-08-06 18:40:37
Thanks for your hard work, Qudeid.

Works here flawlessly.
Title: Lyrics Grabber Feedback & Discussion
Post by: tedgo on 2010-08-06 18:48:52
@Qudeid
Ah, if you're Mortanse i just linked to your own update...

Btw. is it possible to integrate some other lyrics sources too?
LyricsWiki doesn't works since a long time and should be removed instead.
With more integrated sources there wouldn't be the need to write scripts in python by the end-user.
Title: Lyrics Grabber Feedback & Discussion
Post by: Qudeid on 2010-08-06 19:13:19
@Qudeid
Ah, if you're Mortanse i just linked to your own update...

Btw. is it possible to integrate some other lyrics sources too?
LyricsWiki doesn't works since a long time and should be removed instead.
With more integrated sources there wouldn't be the need to write scripts in python by the end-user.


No. I'm either Qudeid or NamelessOne. *german myself* But was a while back. So no, you didn't

Err... possibly I could. But for the time being just use lyrics plugin as long as it works

btw.

Here are new links... those above don't work anymore!

Plugin: Download (http://www.alexendris.com/misc/lyricsgrabber/foo_lyricsgrabber.7z)
Source: Download (http://www.alexendris.com/misc/lyricsgrabber/foo_lyricsgrabber-src.7z)

Changes:
Title: Lyrics Grabber Feedback & Discussion
Post by: tedgo on 2010-08-06 20:36:45
Thanks again
Title: Lyrics Grabber Feedback & Discussion
Post by: cartman(2vd) on 2010-08-06 23:24:18
@Qudeid:

Thanks you so so SO much

(btw works perfectly)
Title: Lyrics Grabber Feedback & Discussion
Post by: Jny on 2010-08-07 08:45:46
finally! thanks Qudeid!
Title: Lyrics Grabber Feedback & Discussion
Post by: Qudeid on 2010-08-07 09:06:29
@Tedgo:

If you would be so kind to suggest some other sites, I could see to it, that they make it into the plugin. Though I'd say not mote than a total of 4-5 (including LyricsPlugin).

Also I'm probably trying to implement a function, which will be available through the context menu, that automatically checks all builtin provider, to find lyrics for a song (or more).
That way, to find the lyrics, if anywhere available, you just have to click once, and not mutiple providers and see, they don't have it. I will see, how this turn out. So priority is more builtin providers.

PS: As suggested, I PMed T.P.Wang, so we'll see, if something is coming from him. Otherwise, as suggested, I open up a whole new repository, as I don't want to have much traffic on my own webspace.
Title: Lyrics Grabber Feedback & Discussion
Post by: grimes on 2010-08-07 10:04:26
To get some ideas for sites to implement in lyricsgrabber, i can show you the python-scripts i use with grabberpython:

AZLyrics.py
DarkLyrics.py
Discogs_Genre.py
Discogs_Style.py
LeosLyrics.py
lrcDB.py
LyrDB.py
Lyricist(LRC).py
TTPlayer(LRC).py

Can't find the downloadlink for these script.
If you need those scripts, i can upload them again in Upload-Section.

AZ Lyrics, Leo's Lyrics and LyrDB seem to me useful sites.
Title: Lyrics Grabber Feedback & Discussion
Post by: Qudeid on 2010-08-07 10:12:31
Then.. why not add those 3 suggested plus DarkLyrics (as I use it quite often myself ).
That would make it then 5.

About the scripts, I have grabberpython, I'll look at the scripts that are already included, if a script is missing, I'll give you a call here.
Title: Lyrics Grabber Feedback & Discussion
Post by: grimes on 2010-08-07 10:31:15
Testing: LeosLyrics Script doesn't work anymore, but AZLyrics and LyrDB work.
Can't test DarkLyrics (I'm mother's darling).
Title: Lyrics Grabber Feedback & Discussion
Post by: Hitchhiker427 on 2010-08-07 10:59:53
Leo's Lyrics doesn't work due to server problems, not script problems.  There's a thread on their forum here (http://leoslyrics.com/posts/list/19769.page).  Also in that thread is a suggestion to add a line to your hosts file that works in fixing the script. 

On the one hand, it's a pretty hacked way to get the lyrics. On the other hand, the new server supposedly searches Leo's Lyrics, Lyrics Mode, Lyrics Wiki, MetroLyrics, AbsoluteLyrics, SongLyrics, LyricsTime, and possibly DarkLyrics.  Perhaps someone could get in touch with the poster in the linked thread who maintains the server so that we don't need to modify the hosts file.
Title: Lyrics Grabber Feedback & Discussion
Post by: Qudeid on 2010-08-07 11:04:16
On the one hand, it's a pretty hacked way to get the lyrics. On the other hand, the new server supposedly searches Leo's Lyrics, Lyrics Mode, Lyrics Wiki, MetroLyrics, AbsoluteLyrics, SongLyrics, LyricsTime, and possibly DarkLyrics.  Perhaps someone could get in touch with the poster in the linked thread who maintains the server so that we don't need to modify the hosts file.


That would mean adding Leo's Lyrics automatically searches all those other sites, and the output is always the same? That would reduce out need for providers in the Plugin quite a bit...

A quick status report:

I haven't started on implementing the provider yet, but I've implemented a provider, if you will, that combines all other Providers. But I'm not through with testing it yet.
Title: Lyrics Grabber Feedback & Discussion
Post by: Hitchhiker427 on 2010-08-07 11:15:07
That's how I understood it.  It seems that the one member on the Leo's Lyrics forum I linked to maintains the alternative server, so he could possibly provide more info on what the server does and how it can be accessed.
Title: Lyrics Grabber Feedback & Discussion
Post by: q-stankovic on 2010-08-07 14:00:10
Happy to see that work on this component continues and new sources will be added. Thanks, Qudeid! 

As i remember correctly LyricsWiki stopped working as a source for lyricsgrabber. Is it now possible to add this site (http://lyrics.wikia.com/Main_Page) that seems to be a follower? If not so please remove the LyricWiki entry in context menu.

What dou think about sources wich are more specialised like Dark Lyrics for metal? I am thinking amongst others about two sources: http://www.lololyrics.com/ (http://www.lololyrics.com/) and http://www.ohhla.com/ (http://www.ohhla.com/)
Title: Lyrics Grabber Feedback & Discussion
Post by: Qudeid on 2010-08-07 14:29:48
Happy to see that work on this component continues and new sources will be added. Thanks, Qudeid! 

As i remember correctly LyricsWiki stopped working as a source for lyricsgrabber. Is it now possible to add this site (http://lyrics.wikia.com/Main_Page) that seems to be a follower? If not so please remove the LyricWiki entry in context menu.

What dou think about sources wich are more specialised like Dark Lyrics for metal? I am thinking amongst others about two sources: http://www.lololyrics.com/ (http://www.lololyrics.com/) and http://www.ohhla.com/ (http://www.ohhla.com/)



In my development version, LyricsWiki is already removed.

I am currently waiting on information from hitchhiker about this lyrics server that scans multiple websites (including DarkLyrics). But if that will not happen, of course DarkLyrics will be added. I'm a DarkLyrics-User myself . *biased *

But all in all, I wouldn't like to add too many sites, afterall there is the possibility to use a python script. But the Major ones will be added for sure.  (And maybe even a possibility to click something like "Search All" and it scans all builtin lyrics provider, but I'm not sure about that one... I don't want to make a promise too early)
Title: Lyrics Grabber Feedback & Discussion
Post by: q-stankovic on 2010-08-07 14:35:35
And maybe even a possibility to click something like "Search All" and it scans all builtin lyrics provider, but I'm not sure about that one... I don't want to make a promise too early
A "Search All" feature would be useful for scanning one song and to choose the best source by comparing. Would like that! 
Title: Lyrics Grabber Feedback & Discussion
Post by: Qudeid on 2010-08-07 14:45:54
And maybe even a possibility to click something like "Search All" and it scans all builtin lyrics provider, but I'm not sure about that one... I don't want to make a promise too early
A "Search All" feature would be useful for scanning one song and to choose the best source by comparing. Would like that!


I haven't really thought about comparing.. it would be more like "First hit gets chosen"... I wouldn't bet on this comparison, sorry.
Title: Lyrics Grabber Feedback & Discussion
Post by: q-stankovic on 2010-08-07 14:57:43
Ah, i see what you mean: If a source doesn't return a result then the next source is asked. Nice as long as the order of sources definable.

Quote
I wouldn't bet on this comparison, sorry.
I won't!  Since inside lyricsgrabber the foobar window is available we already can call other lyricsgrabber windows quickly for comparison.


Edit
By the way: There is a typo in configuration window - it is spelled "quiet mode" and not "quite mode"
Title: Lyrics Grabber Feedback & Discussion
Post by: Qudeid on 2010-08-07 15:23:35
At first, the order is determined by the order in the context menu (which seems to change). So I will at first only implement that it is possible, and works. And later on, maybe, expand the configuration window to define the order. But as I am not really fond of C++ windows, dialogs, etc. I will push that back.

About that typo... I guess, if T.P.Wang doesn't say a word today, I will open up a google code project, so issues can be reported. Thanks for all your help!
Title: Lyrics Grabber Feedback & Discussion
Post by: Nachash on 2010-08-07 19:39:09
Is this possible?
http://www.hydrogenaudio.org/forums/index....st&p=716722 (http://www.hydrogenaudio.org/forums/index.php?showtopic=82693&view=findpost&p=716722)
Title: Lyrics Grabber Feedback & Discussion
Post by: Qudeid on 2010-08-07 19:52:05
Is this possible?
http://www.hydrogenaudio.org/forums/index....st&p=716722 (http://www.hydrogenaudio.org/forums/index.php?showtopic=82693&view=findpost&p=716722)


Once I've cleared thing a little for me in this project, could be. I don't want to promise anything, but I see no reason why that shouldn't be possible.

Would you want that additionally to the Tag? Or, either the .txt or the Tag?
Title: Lyrics Grabber Feedback & Discussion
Post by: lokioki on 2010-08-07 19:57:12
It would so amazing to have Metal-Archives as a source since they have huge amounts of lyrics, mission impossible ?
Title: Lyrics Grabber Feedback & Discussion
Post by: q-stankovic on 2010-08-07 20:03:32
IMHO lyricsgrabber should be restricted to save lyrics in files as tag. As lyrics are a trackspecific information i see no reason to store them as textfiles. One point i like about lyricsgrabber is its simple and clean concept - take a look in foo_uie_lyrics and its horrible bloatness in regard to reading and storing lyrics.

However, to grab lyrics from textfiles could be useful to quickly tag the music files with already downloaded textfiles.

In that context i would like to ask for a simple way to edit lyrics manually. I know that this could be done in properties dialogue but i am thinking of a more convenient way: a standalone and resizable window.
Title: Lyrics Grabber Feedback & Discussion
Post by: Qudeid on 2010-08-07 20:35:59
IMHO lyricsgrabber should be restricted to save lyrics in files as tag. As lyrics are a trackspecific information i see no reason to store them as textfiles. One point i like about lyricsgrabber is its simple and clean concept - take a look in foo_uie_lyrics and its horrible bloatness in regard to reading and storing lyrics.

However, to grab lyrics from textfiles could be useful to quickly tag the music files with already downloaded textfiles.

In that context i would like to ask for a simple way to edit lyrics manually. I know that this could be done in properties dialogue but i am thinking of a more convenient way: a standalone and resizable window.


Though this has nothing to do with Lyricsgrabber anymore. It's sole purpose is to find and download lyrics. And I intend to keep it that way. For the other task, I would suggest, either another plugin, or just using the properties.

About the textfiles.. we'll see. I'm at the Moment setting up a new Google Code project with the latest Dll and source. And I will open up a new thread, to keep thing a little separated, as my modified version of Lyricsgrabber hasn't, besides its origin, anything to do with Mr. Wang's.
Title: Lyrics Grabber Feedback & Discussion
Post by: q-stankovic on 2010-08-07 20:42:43
About the textfiles.. we'll see.

Another idea: if only one item is selected the windows clipboard might be a good source to grab.
Title: Lyrics Grabber Feedback & Discussion
Post by: Qudeid on 2010-08-07 21:00:54
About the textfiles.. we'll see.

Another idea: if only one item is selected the windows clipboard might be a good source to grab.


As I said, we'll see about that. First priority is to get a few more providers into the plugin (hopefully what Hitchhiker said is true!)

Also.. Please refer to this Thread from now on: http://www.hydrogenaudio.org/forums/index....showtopic=82772 (http://www.hydrogenaudio.org/forums/index.php?showtopic=82772)

Everything that is about Mr. Wang's version of the plugin can still be placed here, of course. He has nothing to do with what I do with foo_lyricsgrabber2, however.
Title: Lyrics Grabber Feedback & Discussion
Post by: Peppe Weapon on 2011-10-18 17:39:30
I cannot make it work! It gives me always "not found", but I'm sure that I selected a song with a lyric on Lyrics Wikia!
Title: Lyrics Grabber Feedback & Discussion
Post by: Peppe Weapon on 2011-10-20 13:32:50
Up