A message from the forum staff:
As for May 2011, this component is the #1 source of third party component crashes, with 241 reports this month so far. Install it at your own risk.[!--sizeo:3--][span style=\"font-size:12pt;line-height:100%\"][!--/sizeo--]Current Version: 0.5.5.2 beta[/size][!--sizeo:3--][span style=\"font-size:12pt;line-height:100%\"][!--/sizeo--]Introduction:[/size]foo_lyricsgrabber2 is a plugin originally developed by T.P.Wang (unfortunately not maintained for a long time). It is designed to download lyrics from the web for specified songs.
[!--sizeo:3--][span style=\"font-size:12pt;line-height:100%\"][!--/sizeo--]Instructions:[/size]Right-Click a song and choose in the menu "Lyrics Grabber" the provider to download the lyrics from.
[!--sizeo:3--][span style=\"font-size:12pt;line-height:100%\"][!--/sizeo--]Requirements:[/size]Foobar 1.0 or later is supported.
For earlier versions please use the original lyricsgrabber you can find here (http://code.google.com/p/lyricsgrabber/downloads/list?can=2&q=+++%09+lyricsgrabber+).
[!--sizeo:3--][span style=\"font-size:12pt;line-height:100%\"][!--/sizeo--]Important:[/size][/color] Do not install both foo_lyricsgrabber and foo_lyricsgrabber2 at the same time. Those two will crash foobar! Only install one of them.
[!--sizeo:3--][span style=\"font-size:12pt;line-height:100%\"][!--/sizeo--]Changelog:[/size]0.5.5.2 beta:
- Fixed self inflicted bug
0.5.5.1 beta:
- Maintenance
0.5.5.0 beta:
- Added Leo's Lyrics to the providers
0.5.0.0 beta:
- merged foo_lyricsgrabber2.dll and foo_grabber_python.dll together
- few changes to better support Foobar2000 1.1 Installation/Update feature
- from now on available through the official components website (and thus updateable)
0.4.5.2 beta:
- foo_lyricsgrabber2
- aesthetic fix for DarkLyrics
0.4.5.1 beta:
- foo_lyricsgrabber2
- fixed LyrDB truncated lyrics problem (Text encoding problem)
0.4.5.0 beta:
- foo_lyricsgrabber2
- Added new option to enable title formatting for the Lyrics Tag (example in the preferences) after request of ximmox and Tedgo
- Fixed finally Googleluck problems and therefore Darklyrics
0.4.1.4 beta:
- foo_lyricsgrabber2
- fixed Darklyrics (not finding some songs of an album where it found songs)
0.4.1.3 beta:
- foo_lyricsgrabber2
- fixed LyricWiki again...
0.4.1.2 beta:
- foo_lyricsgrabber2
- fixed LyricWiki (problem when looking for a Song that is instrumental)
- got rid of some unnessecary linebreaks at the end of the lyrics (hopefully)
0.4.1.1 beta:
- foo_lyricsgrabber2
- fixed LyrDb
- fixed AZLyrics (hopefully)
0.4.1.0 beta:
- foo_lyricsgrabber2
- changed LyricWiki access to real website instead of the edit page
- added googleluck function to curl wrapper
- changed darklyrics to get to the right website using google's "I'm feeling lucky"
0.4.0.1 beta:
- foo_lyricsgrabber2
- fixed LyrDB again (hopefully really fixed!)
- fixed lyricwiki (Title caps)
0.4.0.0 beta:
- foo_lyricsgrabber2
- fixed Empty Album Tag in Darklyrics
- changed lyrDB search method --> fixed lyrDB not finding some songs (hopefully)
- Added LyricWiki
0.3.6.1 beta:
- foo_lyircsgrabber2
- fixed "search all" function
0.3.6.0 beta:
- foo_lyricsgrabber2
- fixed Darklyrics
- sort context menu
- foo_grabber_python
- corrected "Install.txt"
- renamed Python to Scripts in contextmenu and preferences
0.3.5.2 beta:
- fixed AZ Lyrics provider
0.3.5.1 beta:
- fixed progressbar behaviour
0.3.5.0 beta:
- foo_lyricsgrabber2:
- fixed in config windows quite to quiet
- added Darklyrics to the providers
- added AZ Lyrics to the providers
- added LyrDB
- removed lyricsplugin until a fix is known
- adjusted processbar for "search all"-function
- Added support for multi value Artist tags
- Added configuration page to preferences
- Removed some typos
- Moved configuration to preferences
- foo_grabber_python:
- changed system path to foobar2000 profile
0.3.2.0 alpha:
- Context Menu isn't in the legacy commands section anymore
- Added "Search All" to the Context Menu to provide a one-click method to search all built-in providers
- Compiled against the new SDK (05/21/2010)
[!--sizeo:3--][span style=\"font-size:12pt;line-height:100%\"][!--/sizeo--]License:[/size]As the original, this will be released under the MIT License (http://www.opensource.org/licenses/mit-license.php)
[!--sizeo:3--][span style=\"font-size:12pt;line-height:100%\"][!--/sizeo--]Credits:[/size]Obviously many thanks to T.P.Wang the initiator for this great plugin!
libcurl - Copyright © 1998 - 2008, Daniel Stenberg
Python - Copyright © 1990-2010, Python Software Foundation
DEELX Regular Expression Engine - Copyright 2006 © RegExLab.com, 史寿伟 (sswater shi)
[!--sizeo:3--][span style=\"font-size:12pt;line-height:100%\"][!--/sizeo--]Current Version: 0.5.5.2 beta[/size][!--sizeo:3--][span style=\"font-size:12pt;line-height:100%\"][!--/sizeo--]Download:[/size]Google Code (http://code.google.com/p/lyricsgrabber2/)
Components Page (http://www.foobar2000.org/components/view/foo_lyricsgrabber2)
Awesome!!! Works great. grabber2 and python have both same version number. Is this intended?
Awesome!!! Works great. grabber2 and python have both same version number. Is this intended?
Yes. I figured, I will always put both dlls in the package and thus it is easier to determine which version belongs to which.
I mean, how do you know version 0.1.2 belongs to 3.4.5?
Both will always have the same Version number. That makes things easier.
After downloading and installing pythongrabber i can't start foobar2000 anymore: It always crashes on startup. I already submitted the crashlog.
Edit: I deleted firstly all pythongrabber related parts of installation to see if they are causing crash - no luck. I had to deinstall lyricsgrabber itself. After adding lyricsgrabber again to componentsfolder it works again. Strange!
After downloading and installing pythongrabber i can't start foobar2000 anymore: It always crashes on startup. I already submitted the crashlog
Did you delete the original lyricsgrabber? I stated it up in the first post. You can not have both foo_lyricsgrabber and foo_lyricsgrabber2 in the components folder at the same time.
Also Note, that the python grabber, due to a change in lyricsgrabber, has also been changed. If you use my python grabber you must also use my lyricsgrabber.
Answer to Edit:
It was probably what I just explained. Because I hat the same issue when I renamed my project to foo_lyricsgrabber2. Once I deleted the foo_lyricsgrabber, it worked just fine.
I use the latest beta (beta 2) of foobar2000 1.1 and get following message popup when I start foobar:
foo_grabber_python: Traceback (most recent call last):
File "<string>", line 4, in <module>
ImportError: No module named traceback
Furthermore the way this plugin is distributed isn't very friendly with the new install system of foobar2000 1.1.
I use the latest beta (beta 2) of foobar2000 1.1 and get following message popup when I start foobar:
foo_grabber_python: Traceback (most recent call last):
File "<string>", line 4, in <module>
ImportError: No module named traceback
Furthermore the way this plugin is distributed isn't very friendly with the new install system of foobar2000 1.1.
About the distribution, might be. Originally I just wanted to fix a few things, that bugged me. Honestly, I don't know if I will maintain it very long, or just from time to time. I'll see about that. I have no problems giving this plugin over to anyone else, or adding someone to the Google Code project. Volunteers?
About that error, did this happen also with the version of T.P.Wang?
Did you delete the original lyricsgrabber?
It even wasn't installed in my current installation. After installing again the crash occurs again. Here the crash log:
Illegal operation:
Code: E06D7363h, flags: 00000001h, address: 7515B727h
Additional parameters: 19930520h 0046F990h 6F394FE8h
Message: Service duplicated
Call path:
entry=>initquit::on_init
Code bytes (7515B727h):
7515B6E7h: C0 89 45 B8 C7 45 BC CF B6 15 75 39 45 14 74 23
7515B6F7h: 8B 45 10 83 F8 0F 76 03 6A 0F 58 89 45 C0 C1 E0
7515B707h: 02 50 FF 75 14 8D 45 C4 50 E8 0D A9 02 00 83 C4
7515B717h: 0C EB 03 89 45 C0 8D 45 B0 50 FF 15 6C 11 15 75
7515B727h: C9 C2 10 00 CC CC CC CC CC 8B FF 55 8B EC 56 8B
7515B737h: 75 08 83 FE F4 72 18 83 FE F6 77 13 8D 45 08 50
7515B747h: 6A 00 56 E8 DD 02 00 00 85 C0 74 03 8B 75 08 56
7515B757h: FF 15 3C 10 15 75 5E 85 C0 7C 05 33 C0 40 EB 08
Stack (0046F8E8h):
0046F8C8h: 00000000 FFFFFD34 000002E4 FFFFFD34
0046F8D8h: 000002CC 00000019 00000000 0046F8E8
0046F8E8h: E06D7363 00000001 00000000 7515B727
0046F8F8h: 00000003 19930520 0046F990 6F394FE8
0046F908h: 00000000 10025425 771AFBDA 00000000
0046F918h: 00000004 0046F8FC 0046F958 0046F96C
0046F928h: 75185EB0 10D72F56 FFFFFFFE 7515D117
0046F938h: 0046F970 6F3774C4 E06D7363 00000001
0046F948h: 00000003 0046F964 E06D7363 00000001
0046F958h: 00000000 00000000 00000003 19930520
0046F968h: 0046F990 6F394FE8 0046F9A0 6F349B26
0046F978h: 0046F990 6F394FE8 6F39B5C4 0000032C
0046F988h: 0046FA50 00000004 6F393E7C 6F393E48
0046F998h: 00000000 6F393E48 0046FA84 6F33123C
0046F9A8h: 0046F9BC 6F393B78 65F71A26 0046FA58
0046F9B8h: 00000000 00000000 0046FA78 6F388AB8
0046F9C8h: FFFFFFFF 6F3406D2 0124E5E4 00000000
0046F9D8h: 0046FA58 65F71916 6F39A69C 0000000B
0046F9E8h: 0124FCA8 757E8BCD 6F393194 00000000
0046F9F8h: 00000000 00000000 00000023 0046FA34
Registers:
EAX: 0046F8E8, EBX: 00000000, ECX: 00000003, EDX: 00000000
ESI: 0124FAB0, EDI: 0046FA58, EBP: 0046F938, ESP: 0046F8E8
Crash location:
Module: KERNELBASE
Offset: B727h
Symbol: "RaiseException" (+58h)
Loaded modules:
foobar2000 loaded at 01370000h - 01555000h
ntdll loaded at 77190000h - 77310000h
kernel32 loaded at 75430000h - 75530000h
KERNELBASE loaded at 75150000h - 75196000h
COMCTL32 loaded at 74B40000h - 74CDE000h
msvcrt loaded at 74E30000h - 74EDC000h
GDI32 loaded at 75670000h - 75700000h
USER32 loaded at 757D0000h - 758D0000h
ADVAPI32 loaded at 75700000h - 757A0000h
sechost loaded at 75CF0000h - 75D09000h
RPCRT4 loaded at 76CA0000h - 76D90000h
SspiCli loaded at 74D00000h - 74D60000h
CRYPTBASE loaded at 74CF0000h - 74CFC000h
LPK loaded at 75090000h - 7509A000h
USP10 loaded at 751A0000h - 7523D000h
SHLWAPI loaded at 76C40000h - 76C97000h
DSOUND loaded at 709C0000h - 70A32000h
ole32 loaded at 75290000h - 753EC000h
WINMM loaded at 74030000h - 74062000h
POWRPROF loaded at 70B20000h - 70B45000h
SETUPAPI loaded at 74EE0000h - 7507D000h
CFGMGR32 loaded at 757A0000h - 757C7000h
OLEAUT32 loaded at 759D0000h - 75A5F000h
DEVOBJ loaded at 75530000h - 75542000h
UxTheme loaded at 749D0000h - 74A50000h
dbghelp loaded at 6FA80000h - 6FB6B000h
SHELL32 loaded at 75D10000h - 76959000h
shared loaded at 70A50000h - 70A7A000h
imagehlp loaded at 755E0000h - 7560A000h
COMDLG32 loaded at 76960000h - 769DB000h
zlib1 loaded at 5A4C0000h - 5A4D4000h
IMM32 loaded at 75550000h - 755B0000h
MSCTF loaded at 74D60000h - 74E2C000h
guard32 loaded at 10000000h - 10047000h
VERSION loaded at 73750000h - 73759000h
fltlib loaded at 73740000h - 73747000h
CLBCatQ loaded at 75A60000h - 75AE3000h
MMDevApi loaded at 70A80000h - 70AB9000h
PROPSYS loaded at 71470000h - 71565000h
dwmapi loaded at 74120000h - 74133000h
foo_ui_std loaded at 6F960000h - 6FA78000h
gdiplus loaded at 74250000h - 743E0000h
MSIMG32 loaded at 743E0000h - 743E5000h
foo_tagbox loaded at 02A60000h - 02AD3000h
foo_converter loaded at 70940000h - 709BA000h
foo_tlbRC loaded at 01170000h - 01197000h
foo_lyricsgrabber2 loaded at 6F8E0000h - 6F958000h
WLDAP32 loaded at 75240000h - 75285000h
WS2_32 loaded at 753F0000h - 75425000h
NSI loaded at 75140000h - 75146000h
foo_input_std loaded at 6F780000h - 6F8D4000h
foo_fileops loaded at 6FC10000h - 6FC56000h
foo_preview_custom loaded at 01110000h - 0111E000h
MSVCR80 loaded at 6FB70000h - 6FC0B000h
foo_wave_seekbar loaded at 6F5B0000h - 6F77A000h
foo_dsp_std loaded at 6F560000h - 6F5A8000h
foo_seek_box loaded at 70B60000h - 70B7D000h
foo_cdda loaded at 6F510000h - 6F55E000h
foo_unpack loaded at 6F4E0000h - 6F50F000h
foo_w7shell loaded at 012C0000h - 012FD000h
foo_albumlist loaded at 6F480000h - 6F4DD000h
foo_freedb2 loaded at 6F430000h - 6F471000h
foo_lyricsgrabber loaded at 6F330000h - 6F3A5000h
foo_rgscan loaded at 6F2E0000h - 6F32D000h
foo_dsp_crossfader loaded at 030A0000h - 030D2000h
USERENV loaded at 73430000h - 73447000h
profapi loaded at 73420000h - 7342B000h
ntmarta loaded at 74B10000h - 74B31000h
LINKINFO loaded at 73FB0000h - 73FB9000h
apphelp loaded at 73300000h - 7334B000h
gameux loaded at 71180000h - 713F8000h
XmlLite loaded at 71640000h - 7166F000h
CRYPT32 loaded at 769E0000h - 76AFC000h
MSASN1 loaded at 77160000h - 7716C000h
wer loaded at 71590000h - 715F0000h
ntshrui loaded at 71400000h - 7146F000h
srvcli loaded at 73370000h - 73389000h
cscapi loaded at 74020000h - 7402B000h
slc loaded at 74070000h - 7407A000h
CRYPTSP loaded at 73680000h - 73696000h
rsaenh loaded at 73630000h - 7366B000h
tiptsf loaded at 70EC0000h - 70F18000h
Stack dump analysis:
Address: 7515B727h (KERNELBASE+B727h), symbol: "RaiseException" (+58h)
Address: 6F394FE8h (foo_lyricsgrabber+64FE8h), symbol: "foobar2000_get_interface" (+4CB78h)
Address: 10025425h (guard32+25425h), symbol: "Exported" (+565h)
Address: 771AFBDAh (ntdll+1FBDAh), symbol: "ZwSetInformationFile" (+12h)
Address: 75185EB0h (KERNELBASE+35EB0h), symbol: "IsNLSDefinedString" (+4E0h)
Address: 7515D117h (KERNELBASE+D117h), symbol: "ReadFile" (+16Ah)
Address: 6F3774C4h (foo_lyricsgrabber+474C4h), symbol: "foobar2000_get_interface" (+2F054h)
Address: 6F394FE8h (foo_lyricsgrabber+64FE8h), symbol: "foobar2000_get_interface" (+4CB78h)
Address: 6F349B26h (foo_lyricsgrabber+19B26h), symbol: "foobar2000_get_interface" (+16B6h)
Address: 6F394FE8h (foo_lyricsgrabber+64FE8h), symbol: "foobar2000_get_interface" (+4CB78h)
Address: 6F39B5C4h (foo_lyricsgrabber+6B5C4h), symbol: "foobar2000_get_interface" (+53154h)
Address: 6F393E7Ch (foo_lyricsgrabber+63E7Ch), symbol: "foobar2000_get_interface" (+4BA0Ch)
Address: 6F393E48h (foo_lyricsgrabber+63E48h), symbol: "foobar2000_get_interface" (+4B9D8h)
Address: 6F393E48h (foo_lyricsgrabber+63E48h), symbol: "foobar2000_get_interface" (+4B9D8h)
Address: 6F33123Ch (foo_lyricsgrabber+123Ch)
Address: 6F393B78h (foo_lyricsgrabber+63B78h), symbol: "foobar2000_get_interface" (+4B708h)
Address: 6F388AB8h (foo_lyricsgrabber+58AB8h), symbol: "foobar2000_get_interface" (+40648h)
Address: 6F3406D2h (foo_lyricsgrabber+106D2h)
Address: 6F39A69Ch (foo_lyricsgrabber+6A69Ch), symbol: "foobar2000_get_interface" (+5222Ch)
Address: 757E8BCDh (USER32+18BCDh), symbol: "CreateWindowExW" (+33h)
Address: 6F393194h (foo_lyricsgrabber+63194h), symbol: "foobar2000_get_interface" (+4AD24h)
Address: 6F392F94h (foo_lyricsgrabber+62F94h), symbol: "foobar2000_get_interface" (+4AB24h)
Address: 6F393288h (foo_lyricsgrabber+63288h), symbol: "foobar2000_get_interface" (+4AE18h)
Address: 6F392F94h (foo_lyricsgrabber+62F94h), symbol: "foobar2000_get_interface" (+4AB24h)
Address: 6F39B5C4h (foo_lyricsgrabber+6B5C4h), symbol: "foobar2000_get_interface" (+53154h)
Address: 01170001h (foo_tlbRC+1h)
Address: 6F3938C8h (foo_lyricsgrabber+638C8h), symbol: "foobar2000_get_interface" (+4B458h)
Address: 6F38921Bh (foo_lyricsgrabber+5921Bh), symbol: "foobar2000_get_interface" (+40DABh)
Address: 013DB03Ah (foobar2000+6B03Ah)
Address: 70A52826h (shared+2826h), symbol: "uCallStackTracker::~uCallStackTracker" (+0h)
Address: 6F39A69Ch (foo_lyricsgrabber+6A69Ch), symbol: "foobar2000_get_interface" (+5222Ch)
Address: 014B6019h (foobar2000+146019h)
Address: 013DC621h (foobar2000+6C621h)
Address: 75603AE4h (imagehlp+23AE4h), symbol: "UnmapDebugInformation" (+17400h)
Address: 014DAAB8h (foobar2000+16AAB8h)
Address: 014DAAB8h (foobar2000+16AAB8h)
Address: 014DDE90h (foobar2000+16DE90h)
Address: 771BDF00h (ntdll+2DF00h), symbol: "RtlAllocateHeap" (+7Ah)
Address: 772003DDh (ntdll+703DDh), symbol: "WinSqmSetIfMaxDWORD" (+31h)
Address: 771BE1CCh (ntdll+2E1CCh), symbol: "RtlInitUnicodeString" (+164h)
Address: 771BDF32h (ntdll+2DF32h), symbol: "RtlAllocateHeap" (+ACh)
Address: 10025425h (guard32+25425h), symbol: "Exported" (+565h)
Address: 014A3FF5h (foobar2000+133FF5h)
Address: 014AA7ADh (foobar2000+13A7ADh)
Address: 01475F30h (foobar2000+105F30h)
Address: 014A7B60h (foobar2000+137B60h)
Address: 014AA7ADh (foobar2000+13A7ADh)
Address: 014A83F5h (foobar2000+1383F5h)
Address: 014C5343h (foobar2000+155343h)
Address: 70A527D8h (shared+27D8h), symbol: "uPrintCrashInfo_OnEvent" (+B1h)
Address: 014DE29Ch (foobar2000+16E29Ch)
Address: 70A5281Eh (shared+281Eh), symbol: "uCallStackTracker::uCallStackTracker" (+31h)
Address: 014DE29Ch (foobar2000+16E29Ch)
Address: 013DC93Ch (foobar2000+6C93Ch)
Address: 014ADB9Dh (foobar2000+13DB9Dh)
Address: 015121C8h (foobar2000+1A21C8h)
Address: 014A736Fh (foobar2000+13736Fh)
Address: 014A42C7h (foobar2000+1342C7h)
Address: 014A42C1h (foobar2000+1342C1h)
Address: 014D01B0h (foobar2000+1601B0h)
Address: 014D01B4h (foobar2000+1601B4h)
Address: 014CDF51h (foobar2000+15DF51h)
Address: 014A7B60h (foobar2000+137B60h)
Address: 014A42C1h (foobar2000+1342C1h)
Address: 014C591Dh (foobar2000+15591Dh)
Address: 014A51B2h (foobar2000+1351B2h)
Address: 01370000h (foobar2000+0h)
Address: 014ABE5Fh (foobar2000+13BE5Fh)
Address: 014A7B60h (foobar2000+137B60h)
Address: 75443677h (kernel32+13677h), symbol: "BaseThreadInitThunk" (+12h)
Address: 771C9D42h (ntdll+39D42h), symbol: "RtlInitializeExceptionChain" (+63h)
Address: 75603CBCh (imagehlp+23CBCh), symbol: "UnmapDebugInformation" (+175D8h)
Address: 75469775h (kernel32+39775h), symbol: "UnhandledExceptionFilter" (+0h)
Address: 75469775h (kernel32+39775h), symbol: "UnhandledExceptionFilter" (+0h)
Address: 772003DDh (ntdll+703DDh), symbol: "WinSqmSetIfMaxDWORD" (+31h)
Address: 771C9D15h (ntdll+39D15h), symbol: "RtlInitializeExceptionChain" (+36h)
Address: 014A5205h (foobar2000+135205h)
Address: 014A5205h (foobar2000+135205h)
Environment:
App: foobar2000 v1.1 beta 2
OS: Windows 6.1.7600 x64
CPU: AMD Athlon II X4 630 Processor, features: 3DNow!ex MMX SSE SSE2 SSE3
Audio: Lautsprecher (Realtek High Definition Audio); Realtek Digital Output (Realtek High Definition Audio)
UI: Default User Interface 0.9.5
Components:
Core (2010-08-03 11:27:02 UTC)
foobar2000 core 1.1 beta 2
foo_albumlist.dll (2010-08-03 11:25:22 UTC)
Album List 4.5
foo_cdda.dll (2010-08-03 11:25:20 UTC)
CD Audio Decoder 3.0
foo_converter.dll (2010-08-03 11:24:52 UTC)
Converter 1.5
foo_dsp_crossfader.dll (2010-01-13 19:46:10 UTC)
Gapless Crossfader 1.3.4.1
foo_dsp_std.dll (2010-08-03 11:25:20 UTC)
Standard DSP Array 1.0
foo_fileops.dll (2010-08-03 11:23:52 UTC)
File Operations 2.1.3
foo_freedb2.dll (2010-08-03 11:24:06 UTC)
freedb Tagger 0.6.2
foo_grabber_python.dll
foo_input_std.dll (2010-08-03 11:24:52 UTC)
Standard Input Array 1.0
foo_lyricsgrabber.dll (2010-08-06 18:03:00 UTC)
Lyrics Grabber 0.3.1.1 Alpha
foo_lyricsgrabber2.dll (2010-08-07 19:05:58 UTC)
Lyrics Grabber 0.3.2.0 Alpha
foo_preview_custom.dll (2010-08-06 22:39:35 UTC)
Preview Custom 1.0.1
foo_rgscan.dll (2010-08-03 11:24:52 UTC)
ReplayGain Scanner 2.0.9
foo_seek_box.dll (2010-08-06 21:19:04 UTC)
Seek box 0.0.3
foo_tagbox.dll (2010-08-07 16:14:20 UTC)
TagBox 0.170
foo_tlbRC.dll (2009-05-04 23:44:34 UTC)
TLB Remote Control 3.0
foo_ui_std.dll (2010-08-03 11:25:16 UTC)
Default User Interface 0.9.5
foo_unpack.dll (2010-08-03 11:24:20 UTC)
ZIP/GZIP/RAR Reader 1.6
foo_w7shell.dll (2010-01-17 02:09:20 UTC)
Windows 7 integration 0.2.9.1
foo_wave_seekbar.dll (2010-04-24 22:35:42 UTC)
Waveform seekbar 0.2.12
Recent events:
Watching: C:\Users\Public\Music\Sample Music
UI Element instantiation failure: UI Element Not Found
Album List refreshed in: 0:00.000367
Sample component: on_init()
Never used an older version of this component.
It is the latest lyricsgrabber dll wich lets foobar2000 crash. The one before (that worked without problems) was yours: did you change anything?
@stankovic:
strange... I'll look into that tomorrow. Could be that it is some issue with Foobar 1.1.
@The Link:
I've just installed this plugin to a clean install of foobar 2000 1.1 beta 2.. Nothing happened. So this could possibly be something caused by incompatibility with other plugins.
@stankovic again:
Err.. not that I know of.. Only this "search all" functionality. But it could be that, by testing stuff out, there is some remainder of this testing... As I said, I'll look into it tomorrow.
I combined the python stuff with lyricgrabber version dowloaded here (http://www.hydrogenaudio.org/forums/index.php?showtopic=62821&view=findpost&p=717144) and crashes doesn't appear anymore but i am told that grabberpython couldn't be loaded. Maybe that helps anyhow.
Edit:
Strange! I installed all in a fresh and clean install and have no crashes. Just: foo_grabberpython refuses to load. I got following message: "Failed to load DLL: foo_grabber_python.dll
Reason: This component is missing a required dependency, or was made for different version of foobar2000."
Rearranging the files and folder solved the problem but it seems you really have to mess with the foobar install directory. This behavior doesn't really go along well with the new foobar version. Would be nice if all the necessary dependencies could be put into the profile directory (perhaps even in the foo_grabber_python folder).
@ Stankovic:
You're probably missing the python25.dll
@ The Link:
You mean the python25.dll into the profile directory? I'm not sure if that is going to work, but I'll see what I can do.
PS: LyricsPlugin seems to have changed something again, unfortunately... I'm getting the www.lyricsvip.com again :S... If someone konws how to prevent that, I'd very appreciat it!
@ The Link:
You mean the python25.dll into the profile directory? I'm not sure if that is going to work, but I'll see what I can do.
No, I mean that the pygrabber folder has to be in the foobar2000 install folder. You can already put python25.dll into the component's folder in the profile and it works fine.
@ The Link:
You mean the python25.dll into the profile directory? I'm not sure if that is going to work, but I'll see what I can do.
No, I mean that the pygrabber folder has to be in the foobar2000 install folder. You can already put python25.dll into the component's folder in the profile and it works fine.
Where exactly is the profile folder? It is %appdata% or somewhere else? I'm running foobar1.0 on my PC, only testes 1.1 in a virtual machine briefly. I don't know much about the new stuff (and unfortunately I can't find much of a documentation either) Would be great if you could point me into the right direction.
Oh sorry, the crash was my fault!
I had the old lyricsgrabber in the user_componentsfolder and the new added in the components folder. I guess it is time to good-bye to old methods of installing components.
Can confirm www.lyricsvip.com occurrence with lyricsplugin.
I've standard installation.
%APPDATA%\foobar2000\pygrabber\scripts or libs
python25.dll in "Program Files\foobar2000"
py system files in "Program Files\foobar2000\pygrabber\system"
Installation of python plugin first then grabber-plugin with 1.1 "Install..."
(installs to %APPDATA%\foobar2000\user-component\)
btw. I've uploaded a new lyrics-script in Upload Section. Would be nice, someone can test it...
Where exactly is the profile folder?
On Win7/Vista it is %AppData%/Roaming/foobar2000/user-components/<component name>/<component name>.dll
%appdata% already points to the roaming profile folder in Vista/7.
Lyrics Plugin changed the URL to further prevent people from accessing it.
The new URL is
http://www.lyricsplugin.com/winamp03/plugin/content.php?artist=<artist>&title=<title>&time=<time>&check=<check>
<time> is the same "ts" from before.
<check> is new. It's some long string that's generated when visiting the page. One example: 86372e8998350ce034a353c81c5dd42a. I don't know how this value is derived, but if you refresh the page, it changes. I don't really know any more on this.
Hi!
I downloaded your version as the previous lyricsgrabber has been acting finicky and been producing lyrics containing "lyricsvip.com". Your's is doing the same, unfortunately... just thought I should let you know. Thanks.
--fragment
Is it possible to add a setting to handle multiple values in the ARTIST field? Thanks.
Many replies.. Hehe..
@ The Link:
I think I have found it in code where pygrabber/system is accessed. I will see to it that it works when put in the profile. There is already an existing pygrabber folder with libs and scripts folders in it. Scrips can already be copied over and work. So there won't be the possibility to have an pygrabber folder in the foobar2000 folder anymore.
But before I really do this:
@ All, does this change make sense to you? I want to make sure people think the same, I finde it sensible too.
@Hitchhiker:
I didn't know what TS stands for. What time actually is... Is it the time of the song? Well anyway... seems to look like LyricsPlugin is off limits as long as nobody knows how to access the site correctly But I will see to it, that more provider will be available in lyricsgrabber2. First of all I'll check out the existing scripts made in python.
@fragment:
Yes, I'm very aware of that, and it hasn't something to do with lyricsgrabber but the LyricsPlugin website. They changed again how to access the lyrics and at the moment I see no way I could get to them
@wolfsong:
What do you mean?
I find moving the pygrabber folder to the profile folder to be a good decision. I already keep my scripts in the profile folder, so relocating the other pygrabber files seems sensible.
The ts parameter is just a time stamp in Unix time for when the page is accessed.
I think I have found it in code where pygrabber/system is accessed. I will see to it that it works when put in the profile. There is already an existing pygrabber folder with libs and scripts folders in it. Scrips can already be copied over and work. So there won't be the possibility to have an pygrabber folder in the foobar2000 folder anymore...
...does this change make sense to you?
Yes!
@Hitchhiker:
I see.. well it didn't seem to be ecessary before they changed the site again... Anyway, better to implement a few alternatives, and just use the "search all" button to really get the lyrics.
As of now, Darklyrics is in and LyricsPlugin, for the time being, until a fix is know, out. But until there are more implemented, I won't make a release.
@Grimes and the others:
You all have your wish. the system folder, previously to be installed into the foobar directory, now goes to the profile directory (<profile>\pygrabber\system).
@wolfsong:
What do you mean?
One of the problems I've run into with both the original and the new version of Lyricsgrabber is that neither found results when the ARTIST field had multiple values. An example would be "Under Pressure" by Queen and David Bowie. With ID3 tags you can save both artists in the ARTIST field using a separator (in Foobar a semicolon but in some apps a comma). Ideally , Lyricsgrabber would do a search on each value but more than likely the first value would probably return a successful result. Thanks.
I see.
Is that some kind of convention that multiple values are always separated by a semicolon in foobar?
Problem is, though, I don't have a song like that, so it would be hard to test it.
I see.
Is that some kind of convention that multiple values are always separated by a semicolon in foobar?
Problem is, though, I don't have a song like that, so it would be hard to test it.
To my understanding yes it is. Actually T.P Wang responded (http://www.hydrogenaudio.org/forums/index.php?s=&showtopic=62821&view=findpost&p=603474) to the request but development stopped.
I'm fairly sure it would be simple to test with an existing file where the lyrics can be successfully found and adding a semicolon and a value to the ARTIST field. Right now I know that this will automatically fail to find results since the ARTIST field most likely is not parsed.
That's an intresting idea. I will test it that way!
Edit: I've just tried it out and found a problem with that approach... The thing is I get it as a comma.. unless there is a way to determine it is truly multi value, rather than a comma in the tag, I am forced to first check it as is, and then, if that failed, probably splitting it apart... Hopefully there is a variable that tells me it is multi value.
have a look at $meta_num
http://wiki.hydrogenaudio.org/index.php?ti...ence#Metadata_2 (http://wiki.hydrogenaudio.org/index.php?title=Foobar2000:Title_Formatting_Reference#Metadata_2)
have a look at $meta_num
http://wiki.hydrogenaudio.org/index.php?ti...ence#Metadata_2 (http://wiki.hydrogenaudio.org/index.php?title=Foobar2000:Title_Formatting_Reference#Metadata_2)
Thank you for your work. I've found another way, though, without relying on these tagging methods.
That's an intresting idea. I will test it that way!
Edit: I've just tried it out and found a problem with that approach... The thing is I get it as a comma.. unless there is a way to determine it is truly multi value, rather than a comma in the tag, I am forced to first check it as is, and then, if that failed, probably splitting it apart... Hopefully there is a variable that tells me it is multi value.
You can use the file_info interface class for this.
Thank you. That is exactly what I tried and found to be a very convenient method
Edit:
From now on forth, this is implemented in all built-in providers. Mind, that Python Scripts are not affected as it is up to the author how they work.
Hi Folks,
I have a quick question for you...
What do you prefer:
- Configuration in Foobar's Preferences only
- Configuration in Context Menu only
- Configuration in both
I personally think, in Foobar's Preferences is enough and better than the original, that is only accessible through the context menu.
I'd say preferences only, since the configuration doesn't depend on the song you right click on.
Thanks for this component. Am I right in thinking this is the most up to date plugin for searching lyrics?
I'd say preferences only, since the configuration doesn't depend on the song you right click on.
Thanks for this component. Am I right in thinking this is the most up to date plugin for searching lyrics?
Err.. I don't really know. But since the last Update was 2 Days ago, possibly. But unfortunately there are only a few providers, as LyricsPlugin changed, as stated a few times.
And yes, I share your opinion, preferences have nothing to do with a song, but with the plugin itself. Thank you.
What do you prefer:
Configuration in Foobar's Preferences only
Agreed, foobar preferences.
Very well. Done
The newest release is up and can be found here (http://code.google.com/p/lyricsgrabber2/downloads/list?q=label:Featured)
Unfortunately I am unable to edit the first post for the change log so I will put it here:
0.3.5.0 Beta:
- foo_lyricsgrabber2:
- fixed in config windows quite to quiet
- added Darklyrics to the providers
- added AZ Lyrics to the providers
- added LyrDB
- removed lyricsplugin until a fix is known
- adjusted processbar for "search all"-function
- Added support for multi value Artist tags
- Added configuration page to preferences
- Removed some typos
- Moved configuration to preferences
- foo_grabber_python:
- changed system path to foobar2000 profile
0.3.2.0 Alpha:
- Context Menu isn't in the legacy commands section anymore
- Added "Search All" to the Context Menu to provide a one-click method to search all built-in providers
- Compiled against the new SDK (05/21/2010)
So, quite a bit has happend. And I guess, for the time being, those 3 Providers plus those available through python, is okay. Also this time it is a little more Foobar 1.1 compliant as everything can be installed to the profile folder (including python25.dll) Have fun
http://www.lyricsplugin.com/winamp03/plugi...;title=Somebody (http://www.lyricsplugin.com/winamp03/plugin/?artist=Eagles&title=Somebody)
seems to be working for me without any additional parameters, just have to ditch content.php
http://www.lyricsplugin.com/winamp03/plugi...;title=Somebody (http://www.lyricsplugin.com/winamp03/plugin/?artist=Eagles&title=Somebody)
seems to be working for me without any additional parameters, just have to ditch content.php
http://www.lyricsvip.com
This is exactly what I see, when I click your link.
Hmm...I see lyrics in both Firefox and IE :S
As it seems, this site is very location-based. As Some in the US had an www.tunedrankings.com link at the bottom of ther lyrics attached.
Anyway, as there are now 3 Providers built-in I guess most of the songs get their lyrics Hopefully.
Very strange.. with IE, I get them also... But I don't seem to get them using the plugin...
http://www.lyricsplugin.com/winamp03/plugi...;title=Somebody (http://www.lyricsplugin.com/winamp03/plugin/?artist=Eagles&title=Somebody)
seems to be working for me without any additional parameters, just have to ditch content.php
Try looking at the page source of the link you posted. The lyrics aren't there. When you visit that site, a bit of javascript pulls the lyrics from content.php and inserts them into the body of the page you're viewing. Unfortunately, without calling content.php, we don't have access to the lyrics.
http://www.lyricsplugin.com/winamp03/plugi...;title=Somebody (http://www.lyricsplugin.com/winamp03/plugin/?artist=Eagles&title=Somebody)
seems to be working for me without any additional parameters, just have to ditch content.php
Try looking at the page source of the link you posted. The lyrics aren't there. When you visit that site, a bit of javascript pulls the lyrics from content.php and inserts them into the body of the page you're viewing. Unfortunately, without calling content.php, we don't have access to the lyrics.
But now the real joke... When using Internet Explorer.. I get the lyrics.. with that same link
Hm, as it seems, it is the javascript at it's work... You're right, no lyrics in the source code...
Thanks for the update. Works beautifully!
Thanks for the update. Works beautifully!
Do your multi-value Artist songs get their lyrics?
Oh yeah, and thanks for the update. There are some nice changes in there.
I messaged the one guy who maintains the alternative server for Leo's Lyrics but haven't received a reply.
Oh yeah, and thanks for the update. There are some nice changes in there.
I messaged the one guy who maintains the alternative server for Leo's Lyrics but haven't received a reply.
Which are the nice changes?
I wrote an E-Mail to the address on Leo's Lyrics website, as they offer a plugin for Winamp and iTunes. Btw. the idea behind LyrDB ist amazing. Opening up a whole API for both submitting and requesting lyrics, free for every tool to use. It was really fun to implement this.
Darklyrics was a little hassle and I guess downloading lyrics from there is the slowest at the moment, as the plugin has to read the whole page, and that contains already the lyrics of every song in that album.
Also, I found that requesting lyrics for the first time after starting foobar (no matter which provider) is quite slow, but every subsequent request is faster.
Well, personally I like the "search all", moving the configuration options to foobar preferences, and moving the pygrabber system files. Those were little things that have always bugged me a bit.
One more thing has always bugged me. Sometimes quite randomly pygrabber decides to "forget" which python scripts I have installed, and I have to go back to the configuration and refresh the list. I haven't specifically run into this bug since I started using your updates (though they've only existed for a few days), but I suspect that it's still present. I can't consistently repeat this bug so I'm not sure what causes it, but if you can find something in the pygrabber source code that might cause this behavior I'd appreciate it.
Also, the LyrDB behavior does sound pretty cool. It's a shame that the database isn't as large as Lyrics Plugin or Leo's Lyrics. Another user, grimes, recently posted a new python script in the uploads section of the forum for ChartLyrics. It seems that they use a similar API for accessing and submitting lyrics. I'm not sure how extensive their database is, but it might be worth looking into.
EDIT: Your post just made me think. Why don't we try contacting the Lyrics Plugin guys and see if they'd be willing to cooperate? I mean, they specifically make a plugin for Winamp, WMP, and iTunes. Maybe if we asked nicely instead of scraping their pages for lyrics, they'd help.
Well, personally I like the "search all", moving the configuration options to foobar preferences, and moving the pygrabber system files. Those were little things that have always bugged me a bit.
One more thing has always bugged me. Sometimes quite randomly pygrabber decides to "forget" which python scripts I have installed, and I have to go back to the configuration and refresh the list. I haven't specifically run into this bug since I started using your updates (though they've only existed for a few days), but I suspect that it's still present. I can't consistently repeat this bug so I'm not sure what causes it, but if you can find something in the pygrabber source code that might cause this behavior I'd appreciate it.
Also, the LyrDB behavior does sound pretty cool. It's a shame that the database isn't as large as Lyrics Plugin or Leo's Lyrics. Another user, grimes, recently posted a new python script in the uploads section of the forum for ChartLyrics. It seems that they use a similar API for accessing and submitting lyrics. I'm not sure how extensive their database is, but it might be worth looking into.
EDIT: Your post just made me think. Why don't we try contacting the Lyrics Plugin guys and see if they'd be willing to cooperate? I mean, they specifically make a plugin for Winamp, WMP, and iTunes. Maybe if we asked nicely instead of scraping their pages for lyrics, they'd help.
Yeah, those a tiny things that bug you, but sometimes those tiny things are too much to just change them in a hotfix. It wasn't a big deal, however. But not trivial either (but it could just me, having the very first contact with plugin development in general and foobar specifically.
Okay, I don't know about that pythongrabber bug. But it has probably something to do with the .cfg file you find in your profile folder. Other than that, I don't know.
I'll look into ChartLyrics, question is, how big is their Database?
And yes, that would be a wonderful idea. I'm going to write them right away. Thank you!
Edit: Err... there is nothing on ther website... Only the two download buttons... no contact info or anything else...
the time var is unix time and check is some sort of hash...once that is figured out we should be good to go
the time var is unix time and check is some sort of hash...once that is figured out we should be good to go
I would rather go the way and asking them, but due to the lack of an E-Mail Address... :S.. Maybe someone knows someone who knows the owner... or so .. hehe.
About the check... well, as Hitchhiker says, the check changes... maybe it depends on the time, yet we still don't know how it is calculated then.
I've just fixed a little problem with the progressbar, was more aesthetical but it really bugged me (when using search all the progressbar jumped back and forth instead of really progressing...)
0.3.5.1 Beta:
- fixed progressbar behaviour
0.3.5.0 Beta:
- foo_lyricsgrabber2:
- fixed in config windows quite to quiet
- added Darklyrics to the providers
- added AZ Lyrics to the providers
- added LyrDB
- removed lyricsplugin until a fix is known
- adjusted processbar for "search all"-function
- Added support for multi value Artist tags
- Added configuration page to preferences
- Removed some typos
- Moved configuration to preferences
- foo_grabber_python:
- changed system path to foobar2000 profile
0.3.2.0 Alpha:
- Context Menu isn't in the legacy commands section anymore
- Added "Search All" to the Context Menu to provide a one-click method to search all built-in providers
- Compiled against the new SDK (05/21/2010)
Anyway, as there are now 3 Providers built-in I guess most of the songs get their lyrics Hopefully.
Not me, many albums doesn't receive lyrics. Hopefully lyricsplugin will work again in future.
Between: I still have the issue that grabberpython won't load because of missing dependencies. I switched 3 weeks ago to Win7 (64). On my old XP i have installed several runtime libraries. Can someone tell me which one i need for the fresh install of my OS?
Anyway, as there are now 3 Providers built-in I guess most of the songs get their lyrics Hopefully.
Not me, many albums doesn't receive lyrics. Hopefully lyricsplugin will work again in future.
Between: I still have the issue that grabberpython won't load because of missing dependencies. I switched 3 weeks ago to Win7 (64). On my old XP i have installed several runtime libraries. Can someone tell me which one i need for the fresh install of my OS?
Pythongrabber only needs the python25.dll to operate. It works on a vanilla installation of Windows 7 x64 on my virtual machine with no problem.
And those albums did, when using lyricsplugin? Too bad I can't find an URL... err... Do you find your lyrics on Leo's Lyrics?
PS: just out of curiosty.. "between"? Did you men "btw = by the way"?
Pythongrabber only needs the python25.dll to operate. It works on a vanilla installation of Windows 7 x64 on my virtual machine with no problem.
Will test that! Everything is installed correctly. As far as i know from german forum other users made the same experience!
And those albums did, when using lyricsplugin?
Yep, it seems to be bigger and better.
PS: just out of curiosty.. "between"? Did you men "btw = by the way"?
Hmmm, i read sometimes in postings "btw" and thought it is abbrevation for "between" - i guess it means "by the way". Don't ask me why i ...!
I just wanted to point out a small bug. I'm not sure how you're querying AZ Lyrics, but it's reporting "Failed" for tracks whose lyrics are present in that database. Additionally, if I use the built-in AZ Lyrics it reports "Failed", but if I use my python AZ Lyrics script, it works fine.
Here's how I've been accessing that database:
# -*- coding: utf-8 -*-
import encodings.utf_8
import urllib
from xml.dom import minidom
from grabber import LyricProviderBase
class AZLyrics(LyricProviderBase):
def GetName(self):
return "A-Z Lyrics"
def GetVersion(self):
return "1"
def GetURL(self):
return "http://www.azlyrics.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://search.azlyrics.com/search.php?q=%s+%s" % (urllib.quote(artist), urllib.quote(title))).read()
result_start = string.find("<b>1.</b>")
url_start = string.find("<a href=\"", result_start) + 9
url_end = string.find("\"", url_start)
url = string[url_start:url_end]
lyrics_string = urllib.urlopen(url).read()
lyrics_string = lyrics_string[lyrics_string.find("<!-- END OF RINGTONE 1 -->") + 26:lyrics_string.find("<!-- RINGTONE 2 -->")]
lyric = lyrics_string[lyrics_string.find("<br>") + 15:lyrics_string.find("<br><br><br><br>") - 1]
lyric = lyric.replace("<br />","")
result.append(lyric)
except Exception, e:
traceback.print_exc(file=sys.stdout)
result.append('')
continue
return result
if __name__ == "__main__":
LyricProviderInstance = AZLyrics()
I'm not sure what the differences are, but I felt it's worth mentioning.
@Hitchhiker:
I have a little different approach. I try to go directly to the website, without using the search. But I can see the error in this. I must convert the artist and title to lower case and leave out anything non-alphanumeric (including whitespace). I will update that, to your approach. Thank you.
@stankovic:
That is strance.. try this please: http://www.microsoft.com/downloads/details...;displaylang=en (http://www.microsoft.com/downloads/details.aspx?familyid=9b2da534-3e03-4391-8a4d-074b9f2bc1bf&displaylang=en)
Pythongrabber only needs the python25.dll to operate. It works on a vanilla installation of Windows 7 x64 on my virtual machine with no problem.
Will test that! Everything is installed correctly. As far as i know from german forum other users made the same experience!
It's probably because msvcr71.dll is missing, which is needed by python25.dll.
@stankovic:
That is strance.. try this please: http://www.microsoft.com/downloads/details...;displaylang=en (http://www.microsoft.com/downloads/details.aspx?familyid=9b2da534-3e03-4391-8a4d-074b9f2bc1bf&displaylang=en)
This will not help, see above. You need to deploy msvcr71.dll together with python25.dll (see also here (http://support.microsoft.com/?scid=kb%3Ben-us%3B326922&x=15&y=5))
BTW: A good tool to determine dependencies is Dependency Walker (http://www.dependencywalker.com/)
Didn't think it was a python25 issue. But I won't deploy the runtime, because it can be downloaded for free anyway. *add the url to the install.txt*
I know dependency walker. Helped me a lot when I couldn't get foobar to load my dlls.
Edit: Once the files are on google code, you can download a fixed version for the AZ Lyrics provider
Changelog:
0.3.5.2:
- fixed AZ Lyrics provider
You can now download the newst version Have fun!
At last, it works! Thanks fbuser!
One issue to report: so far i couldn't find any lyrics with LyrDB. Strange is following: When i try search with that provider, the search doesn't last not even one second and poup of lyricsgrabber window appears.
At last, it works! Thanks fbuser!
One issue to report: so far i couldn't find any lyrics with LyrDB. Strange is following: When i try search with that provider, the search doesn't last not even one second and poup of lyricsgrabber window appears.
Very strange... Worked for me with every song I tried.. Over Blackmore's Night to Ensiferum...
Ok, i went to LyrDb Site to search for albums i have, checked the correct spelling, tried the search and ... it works! Guess, I have strange music. So far indeed the LyricsPlugin was matching best my taste.
I've just fixed a little problem with the progressbar, was more aesthetical but it really bugged me (when using search all the progressbar jumped back and forth instead of really progressing...)
Another aesthetical problem that really bugs me: Couldn't the context menu entry "Python" be renamed to "Scripts" - makes more sense and furthermore indicates better for other users on my PC what is meant:
"Hey, what is Python??"
I dont know if this is considerable request but i would love it.
Today ive tried to find Heidevolk - Vlammenzee lyric on DarkLyrics. It is there: http://www.darklyrics.com/lyrics/heidevolk...udegrond.html#3 (http://www.darklyrics.com/lyrics/heidevolk/uitoudegrond.html#3)... but it is tagged as "Vlammenzee (Sea Of Flames)"
Can we implement something like this (if i undesrtood you right you have whole page cached anyway):
try find lyrics for title as it is
if (notfound): drop everything behind "feat." keyword (if found) and try again on same result.
if (still not found): drop everything behind "(" char (if found) and try again
I know that this is not at all best solution (probably should be implemented via regexp) but i would love it so i dont have to rename whole album just to find lyrics. Maybe there can be some checkbox for this in darklyrics provider settings.
Didn't think it was a python25 issue. But I won't deploy the runtime, because it can be downloaded for free anyway. *add the url to the install.txt*
I know dependency walker. Helped me a lot when I couldn't get foobar to load my dlls.
Edit: Once the files are on google code, you can download a fixed version for the AZ Lyrics provider
Changelog:
0.3.5.2:
- fixed AZ Lyrics provider
You can now download the newst version Have fun!
I had one of the first versions installed and i think i made the update to the last version as you described it in the txt-file, but when i start foobar now i get this message:
"foo_grabber_python: Traceback (most recent call last):
File "<string>", line 4, in <module>
ImportError: No module named traceback"
I dont know if this is considerable request but i would love it.
Today ive tried to find Heidevolk - Vlammenzee lyric on DarkLyrics. It is there: http://www.darklyrics.com/lyrics/heidevolk...udegrond.html#3 (http://www.darklyrics.com/lyrics/heidevolk/uitoudegrond.html#3)... but it is tagged as "Vlammenzee (Sea Of Flames)"
Can we implement something like this (if i undesrtood you right you have whole page cached anyway):
try find lyrics for title as it is
if (notfound): drop everything behind "feat." keyword (if found) and try again on same result.
if (still not found): drop everything behind "(" char (if found) and try again
I know that this is not at all best solution (probably should be implemented via regexp) but i would love it so i dont have to rename whole album just to find lyrics. Maybe there can be some checkbox for this in darklyrics provider settings.
Since your request, I changed the algorithm a little. originally it compared every link at the beginning using Levenshtein algorithm (which calculates the edits necessary to convert one string to another).. In your Case, comparing Vlammenzee with Vlammenzee (Sea of Flames) it would be about 15 changes... that exceeds the threshold, unfortunately.
But now I had the idea, why not first test if the title is contained in the title that is displayed on darklyrics... In case of your Vlammenzee it is and it would immediately take that choice... But this is the theory, if that works in reality that well, I can't promise. After a few changes I will post the update.
@MuffPotter:
It seems, that something is missing from python, or it doesn't find it. Make sure, the system folder is in this path: (foobar profile)\pygrabber\ ... The Link posted this exact error on the first page, maybe you can ask him, how he got rid of it (and possibly let me know so I can either prevent it or tell others what to do when this error occurres)
@MuffPotter:
I've just checked myself. The system folder seems to be inaccessible. Make sure you find it in %appdata%\foobar2000\pygrabber\
@MuffPotter:
I've just checked myself. The system folder seems to be inaccessible. Make sure you find it in %appdata%\foobar2000\pygrabber\
Now I moved the pygrabber folder in my profile folder (...AppData\Roaming\foobar2000\) and it works. Before i had it just in the "C:\Program Files\foobar2000\" folder which i thought is what you mean with: "(4) Copy pygrabber directory and all its contents to foobar2000\ directory"
But i have to copy it in the ...AppData\Roaming\foobar2000\ folder, right?
@MuffPotter:
I've just checked myself. The system folder seems to be inaccessible. Make sure you find it in %appdata%\foobar2000\pygrabber\
Now I moved the pygrabber folder in my profile folder (...AppData\Roaming\foobar2000\) and it works. Before i had it just in the "C:\Program Files\foobar2000\" folder which i thought is what you mean with: "(4) Copy pygrabber directory and all its contents to foobar2000\ directory"
But i have to copy it in the ...AppData\Roaming\foobar2000\ folder, right?
Argh... I must have overlooked that point... of course is this misleading... Yes, it should be the profile folder not the program folder!
I'm currently uploading verion 0.3.6.0. There the install.txt is also corrected.
here the change log:
0.3.6.0:
- foo_lyricsgrabber2
- fixed Darklyrics
- sort context menu
- foo_grabber_python
- corrected "Install.txt"
- renamed Python to Scripts in contextmenu and preferences
@MuffPotter:
I've just checked myself. The system folder seems to be inaccessible. Make sure you find it in %appdata%\foobar2000\pygrabber\
Now I moved the pygrabber folder in my profile folder (...AppData\Roaming\foobar2000\) and it works. Before i had it just in the "C:\Program Files\foobar2000\" folder which i thought is what you mean with: "(4) Copy pygrabber directory and all its contents to foobar2000\ directory"
But i have to copy it in the ...AppData\Roaming\foobar2000\ folder, right?
Argh... I must have overlooked that point... of course is this misleading... Yes, it should be the profile folder not the program folder!
I'm currently uploading verion 0.3.6.0. There the install.txt is also corrected.
here the change log:
0.3.6.0:
- foo_lyricsgrabber2
- fixed Darklyrics
- sort context menu
- foo_grabber_python
- corrected "Install.txt"
- renamed Python to Scripts in contextmenu and preferences
No problem. I'm glad that I could help a little bit improving this plugin. You make a really great job!
Thank you very much. The funny thing is.. I didn't intend to do that much. Originally I just wanted to get LyricsPlugin running again... the rest followed... hehe.
Thanks to the admins I can now change the first post. So for the future you'll find the complete changelog there
Thank you for your support!
Darklyrics you say ? I am sold.
Foobar also informs that either something is missing or this was made for different version. I am using foobar2000 v1.1 beta 2 w/ XP sp3
"Failed to load DLL: foo_grabber_python.dll
Reason: This component is missing a required dependency, or was made for different version of foobar2000."
Followed the instructions step by step.
Darklyrics you say ? I am sold.
Foobar also informs that either something is missing or this was made for different version. I am using foobar2000 v1.1 beta 2 w/ XP sp3
"Failed to load DLL: foo_grabber_python.dll
Reason: This component is missing a required dependency, or was made for different version of foobar2000."
Followed the instructions step by step.
Make sure you have both foo_lyricsgrabber2.dll and foo_grabber_python.dll installed.
I presume the python25.dll is also at the right place (either foobar program folder or your profile folder).
If that is all as it should be, you could be missing the msvcr71.dll which can be downloaded from Microsoft themselves.
The usage of "Search All" leads always to a crash (report is sended).
Illegal operation:
Code: C0000005h, flags: 00000000h, address: 775AE25Bh
Access violation, operation: write, address: 00000000h
Call path:
threaded_process thread=>lyric_lookup_task::run=>lookup
Code bytes (775AE25Bh):
775AE21Bh: 83 D1 01 81 E3 FF 7F 00 00 66 3B 5E 14 0F 84 33
775AE22Bh: 56 00 00 8B 45 E0 8B 55 E4 0F AC D0 10 66 89 47
775AE23Bh: 08 2B 7D F4 33 C0 C1 EF 03 0F A4 F8 10 C1 E7 10
775AE24Bh: C1 EA 10 0B DF 0B C8 8B 06 C7 45 F8 01 00 00 00
775AE25Bh: 89 30 8B 45 E0 8B 55 E4 8D 7E 08 F0 0F C7 0F 3B
775AE26Bh: 45 E0 0F 85 07 5E 03 00 3B 55 E4 0F 85 FE 5D 03
775AE27Bh: 00 66 83 7D E0 00 0F 84 7C 60 00 00 83 7D F8 03
775AE28Bh: 0F 84 4C 8F 00 00 5F 5E B0 01 5B C9 C3 8B DF E9
Stack (07D0F84Ch):
07D0F82Ch: 00000000 FFFFFD34 000002E4 FFFFFD34
07D0F83Ch: 000002CC 00000019 00000000 00000080
07D0F84Ch: 00000000 030A0000 03C77B28 00000000
07D0F85Ch: 00000002 00000000 00000000 038BD000
07D0F86Ch: 000038BE 07D0F884 00000000 00000001
07D0F87Ch: 03C77B20 07D0F898 775ADE63 03C77B28
07D0F88Ch: 00000000 00000000 03C77B20 07D0F8AC
07D0F89Ch: 766814D1 030A0000 00000000 03C77B28
07D0F8ACh: 07D0F8F8 73BB38BB 030A0000 00000000
07D0F8BCh: 03C77B28 8E16C3A2 00000000 07D0F96C
07D0F8CCh: 00000000 00000000 6E70E7EA 07D0F9F4
07D0F8DCh: 00000000 07D0F8C0 07D0F3F0 07D0F9AC
07D0F8ECh: 73BBCBDE FA7BE96A FFFFFFFE 07D0F9B8
07D0F8FCh: 6E71536E 03C77B28 07D0F968 02AA4430
07D0F90Ch: 00000000 6E70E674 07D0F9AC 6E74A3E0
07D0F91Ch: FFFFFFFF 6E70E77F 03C77B28 6E701AE6
07D0F92Ch: 8E16C29D 038BEDF4 038BEDF0 6F042826
07D0F93Ch: 00001F80 0002FFFF 00000000 00000000
07D0F94Ch: 00000000 00000000 00000000 0000012C
07D0F95Ch: 000002BC 000004B0 00000708 6E6E1398
Registers:
EAX: 00000000, EBX: EF640001, ECX: 00000079, EDX: 00000000
ESI: 030A6C08, EDI: EF640000, EBP: 07D0F880, ESP: 07D0F84C
Crash location:
Module: ntdll
Offset: 2E25Bh
Symbol: "RtlInitUnicodeString" (+1F3h)
Loaded modules:
foobar2000 loaded at 013C0000h - 015A5000h
ntdll loaded at 77580000h - 77700000h
kernel32 loaded at 76670000h - 76770000h
KERNELBASE loaded at 76DB0000h - 76DF6000h
COMCTL32 loaded at 73FB0000h - 7414E000h
msvcrt loaded at 76AC0000h - 76B6C000h
GDI32 loaded at 760F0000h - 76180000h
USER32 loaded at 76490000h - 76590000h
ADVAPI32 loaded at 76B70000h - 76C10000h
sechost loaded at 76180000h - 76199000h
RPCRT4 loaded at 76CC0000h - 76DB0000h
SspiCli loaded at 750F0000h - 75150000h
CRYPTBASE loaded at 750E0000h - 750EC000h
LPK loaded at 761A0000h - 761AA000h
USP10 loaded at 77090000h - 7712D000h
SHLWAPI loaded at 76C60000h - 76CB7000h
DSOUND loaded at 6EC50000h - 6ECC2000h
ole32 loaded at 76E00000h - 76F5C000h
WINMM loaded at 73DF0000h - 73E22000h
POWRPROF loaded at 6F070000h - 6F095000h
SETUPAPI loaded at 76890000h - 76A2D000h
CFGMGR32 loaded at 77150000h - 77177000h
OLEAUT32 loaded at 753A0000h - 7542F000h
DEVOBJ loaded at 77130000h - 77142000h
UxTheme loaded at 74150000h - 741D0000h
dbghelp loaded at 6EB60000h - 6EC4B000h
SHELL32 loaded at 75490000h - 760D9000h
shared loaded at 6F040000h - 6F06A000h
imagehlp loaded at 76210000h - 7623A000h
COMDLG32 loaded at 76410000h - 7648B000h
zlib1 loaded at 5A4C0000h - 5A4D4000h
IMM32 loaded at 761B0000h - 76210000h
MSCTF loaded at 765A0000h - 7666C000h
guard32 loaded at 10000000h - 10047000h
VERSION loaded at 73B40000h - 73B49000h
fltlib loaded at 73B30000h - 73B37000h
CLBCatQ loaded at 76240000h - 762C3000h
MMDevApi loaded at 6F000000h - 6F039000h
PROPSYS loaded at 6F9D0000h - 6FAC5000h
dwmapi loaded at 745B0000h - 745C3000h
foo_cdda loaded at 6EB10000h - 6EB5E000h
foo_unpack loaded at 6EAE0000h - 6EB0F000h
foo_wave_seekbar loaded at 6E910000h - 6EADA000h
WS2_32 loaded at 76C10000h - 76C45000h
NSI loaded at 76C50000h - 76C56000h
MSIMG32 loaded at 745D0000h - 745D5000h
foo_ui_std loaded at 6E7F0000h - 6E908000h
gdiplus loaded at 72DE0000h - 72F70000h
foo_facets loaded at 02AB0000h - 02B31000h
foo_converter loaded at 6E770000h - 6E7EA000h
foo_random_pools loaded at 00F80000h - 00FAF000h
foo_lyricsgrabber2 loaded at 6E700000h - 6E762000h
WLDAP32 loaded at 75350000h - 75395000h
MSVCP90 loaded at 73C00000h - 73C8E000h
MSVCR90 loaded at 73B50000h - 73BF3000h
foo_w7shell loaded at 01040000h - 0107D000h
foo_grabber_python loaded at 6E6A0000h - 6E6FA000h
python25 loaded at 1E000000h - 1E208000h
MSVCR71 loaded at 7C340000h - 7C396000h
foo_fileops loaded at 6E650000h - 6E696000h
foo_seek_box loaded at 6E630000h - 6E64D000h
foo_tlbRC loaded at 01240000h - 01267000h
foo_freedb2 loaded at 6E5E0000h - 6E621000h
foo_input_std loaded at 6E480000h - 6E5D4000h
foo_playcount loaded at 6E440000h - 6E47B000h
foo_tagbox loaded at 02FE0000h - 03053000h
foo_preview_custom loaded at 01290000h - 0129E000h
MSVCR80 loaded at 6E3A0000h - 6E43B000h
foo_rgscan loaded at 6E350000h - 6E39D000h
foo_dsp_std loaded at 6E300000h - 6E348000h
foo_albumlist loaded at 6E2A0000h - 6E2FD000h
USERENV loaded at 73760000h - 73777000h
profapi loaded at 73750000h - 7375B000h
ntmarta loaded at 73F80000h - 73FA1000h
apphelp loaded at 74910000h - 7495B000h
gameux loaded at 6F440000h - 6F6B8000h
XmlLite loaded at 6F410000h - 6F43F000h
CRYPT32 loaded at 76770000h - 7688C000h
MSASN1 loaded at 760E0000h - 760EC000h
wer loaded at 6F3B0000h - 6F410000h
shdocvw loaded at 736E0000h - 7370E000h
LINKINFO loaded at 6F6C0000h - 6F6C9000h
ntshrui loaded at 6F340000h - 6F3AF000h
srvcli loaded at 737D0000h - 737E9000h
cscapi loaded at 6F330000h - 6F33B000h
slc loaded at 6F320000h - 6F32A000h
CRYPTSP loaded at 73A70000h - 73A86000h
rsaenh loaded at 73A30000h - 73A6B000h
tiptsf loaded at 73680000h - 736D8000h
_socket loaded at 03870000h - 0387D000h
WindowsCodecs loaded at 74750000h - 7484B000h
explorerframe loaded at 6F1B0000h - 6F31F000h
DUser loaded at 6F180000h - 6F1AF000h
DUI70 loaded at 6F0C0000h - 6F172000h
ieframe loaded at 718E0000h - 7235E000h
PSAPI loaded at 76590000h - 76595000h
OLEACC loaded at 73F10000h - 73F4C000h
iertutil loaded at 75150000h - 75349000h
urlmon loaded at 762D0000h - 76405000h
avsda loaded at 040B0000h - 040F7000h
IPHLPAPI loaded at 73CA0000h - 73CBC000h
WINNSI loaded at 73C90000h - 73C97000h
mswsock loaded at 73590000h - 735CC000h
wshtcpip loaded at 745E0000h - 745E5000h
wship6 loaded at 734A0000h - 734A6000h
DNSAPI loaded at 73540000h - 73584000h
rasadhlp loaded at 734B0000h - 734B6000h
fwpuclnt loaded at 734C0000h - 734F8000h
NLAapi loaded at 735D0000h - 735E0000h
winrnr loaded at 73530000h - 73538000h
napinsp loaded at 73520000h - 73530000h
pnrpnsp loaded at 73500000h - 73512000h
Stack dump analysis:
Address: 775ADE63h (ntdll+2DE63h), symbol: "RtlFreeHeap" (+7Eh)
Address: 766814D1h (kernel32+114D1h), symbol: "HeapFree" (+14h)
Address: 73BB38BBh (MSVCR90+638BBh), symbol: "free" (+CDh)
Address: 6E70E7EAh (foo_lyricsgrabber2+E7EAh)
Address: 73BBCBDEh (MSVCR90+6CBDEh), symbol: "_dllonexit" (+A7h)
Address: 6E71536Eh (foo_lyricsgrabber2+1536Eh)
Address: 6E70E674h (foo_lyricsgrabber2+E674h)
Address: 6E74A3E0h (foo_lyricsgrabber2+4A3E0h), symbol: "curl_formget" (+3330h)
Address: 6E70E77Fh (foo_lyricsgrabber2+E77Fh)
Address: 6E701AE6h (foo_lyricsgrabber2+1AE6h)
Address: 6F042826h (shared+2826h), symbol: "uCallStackTracker::~uCallStackTracker" (+0h)
Address: 6E6E1398h (foo_grabber_python+41398h), symbol: "foobar2000_get_interface" (+318C8h)
Address: 6E7536D8h (foo_lyricsgrabber2+536D8h), symbol: "curl_formget" (+C628h)
Address: 6E74AB98h (foo_lyricsgrabber2+4AB98h), symbol: "curl_formget" (+3AE8h)
Address: 6E753420h (foo_lyricsgrabber2+53420h), symbol: "curl_formget" (+C370h)
Address: 6E75A8A4h (foo_lyricsgrabber2+5A8A4h), symbol: "curl_formget" (+137F4h)
Address: 6E7536D8h (foo_lyricsgrabber2+536D8h), symbol: "curl_formget" (+C628h)
Address: 6E7534C4h (foo_lyricsgrabber2+534C4h), symbol: "curl_formget" (+C414h)
Address: 6E7536D8h (foo_lyricsgrabber2+536D8h), symbol: "curl_formget" (+C628h)
Address: 6E753DE0h (foo_lyricsgrabber2+53DE0h), symbol: "curl_formget" (+CD30h)
Address: 6F0427EDh (shared+27EDh), symbol: "uCallStackTracker::uCallStackTracker" (+0h)
Address: 6E71554Bh (foo_lyricsgrabber2+1554Bh)
Address: 6E749872h (foo_lyricsgrabber2+49872h), symbol: "curl_formget" (+27C2h)
Address: 01498006h (foobar2000+D8006h)
Address: 6F0427D8h (shared+27D8h), symbol: "uPrintCrashInfo_OnEvent" (+B1h)
Address: 01534330h (foobar2000+174330h)
Address: 01508AC8h (foobar2000+148AC8h)
Address: 01497F97h (foobar2000+D7F97h)
Address: 0150F2D9h (foobar2000+14F2D9h)
Address: 76683677h (kernel32+13677h), symbol: "BaseThreadInitThunk" (+12h)
Address: 775B9D42h (ntdll+39D42h), symbol: "RtlInitializeExceptionChain" (+63h)
Address: 766A9775h (kernel32+39775h), symbol: "UnhandledExceptionFilter" (+0h)
Address: 766A9775h (kernel32+39775h), symbol: "UnhandledExceptionFilter" (+0h)
Address: 775F03DDh (ntdll+703DDh), symbol: "WinSqmSetIfMaxDWORD" (+31h)
Address: 775B9D15h (ntdll+39D15h), symbol: "RtlInitializeExceptionChain" (+36h)
Address: 01497F60h (foobar2000+D7F60h)
Address: 01497F60h (foobar2000+D7F60h)
Environment:
App: foobar2000 v1.1 beta 2
OS: Windows 6.1.7600 x64
CPU: AMD Athlon II X4 630 Processor, features: 3DNow!ex MMX SSE SSE2 SSE3
Audio: Lautsprecher (Realtek High Definition Audio); Realtek Digital Output (Realtek High Definition Audio)
UI: Default User Interface 0.9.5
Components:
Core (2010-08-03 11:27:02 UTC)
foobar2000 core 1.1 beta 2
foo_albumlist.dll (2010-08-03 11:25:22 UTC)
Album List 4.5
foo_cdda.dll (2010-08-03 11:25:20 UTC)
CD Audio Decoder 3.0
foo_converter.dll (2010-08-03 11:24:52 UTC)
Converter 1.5
foo_dsp_std.dll (2010-08-03 11:25:20 UTC)
Standard DSP Array 1.0
foo_facets.dll (2010-08-08 19:19:17 UTC)
Facets 2008-02-25
foo_fileops.dll (2010-08-03 11:23:52 UTC)
File Operations 2.1.3
foo_freedb2.dll (2010-08-03 11:24:06 UTC)
freedb Tagger 0.6.2
foo_grabber_python.dll (2010-08-10 08:46:08 UTC)
Lyrics Grabber 2 Python Extension 0.3.6.0 beta
foo_input_std.dll (2010-08-03 11:24:52 UTC)
Standard Input Array 1.0
foo_lyricsgrabber2.dll (2010-08-10 08:42:11 UTC)
Lyrics Grabber 2 0.3.6.0 beta
foo_playcount.dll (2010-08-08 19:40:29 UTC)
Playback Statistics 3.0 beta 2
foo_preview_custom.dll (2010-08-06 22:39:35 UTC)
Preview Custom 1.0.1
foo_random_pools.dll (2010-06-21 19:44:24 UTC)
Random Pools 0.0.2.2
foo_rgscan.dll (2010-08-03 11:24:52 UTC)
ReplayGain Scanner 2.0.9
foo_seek_box.dll (2010-08-06 21:19:04 UTC)
Seek box 0.0.3
foo_tagbox.dll (2010-08-10 17:14:50 UTC)
TagBox 0.171
foo_tlbRC.dll (2009-05-04 23:44:34 UTC)
TLB Remote Control 3.0
foo_ui_std.dll (2010-08-03 11:25:16 UTC)
Default User Interface 0.9.5
foo_unpack.dll (2010-08-03 11:24:20 UTC)
ZIP/GZIP/RAR Reader 1.6
foo_w7shell.dll (2010-01-17 02:09:20 UTC)
Windows 7 integration 0.2.9.1
foo_wave_seekbar.dll (2010-04-24 22:35:42 UTC)
Waveform seekbar 0.2.12
Recent events:
File "C:\Users\[removed]\Desktop\foobar2000\pygrabber\scripts\LeosLyrics.py", line 30, in Query
File "D:\Python25\lib\urllib.py", line 82, in urlopen
File "D:\Python25\lib\urllib.py", line 190, in open
File "D:\Python25\lib\urllib.py", line 328, in open_http
File "D:\Python25\lib\httplib.py", line 1199, in getreply
File "D:\Python25\lib\httplib.py", line 928, in getresponse
File "D:\Python25\lib\httplib.py", line 385, in begin
File "D:\Python25\lib\httplib.py", line 343, in _read_status
File "D:\Python25\lib\socket.py", line 331, in readline
IOError: [Errno socket error] (10054, 'Connection reset by peer')
One question: Are the scripts included in the "search all" procedure?
I followed the instructions in the Install.txt but foobar crashes when I try to use the plug-in. Here is the Error-Log:
http://www.text-upload.com/read.php?id=399&c=2664853 (http://www.text-upload.com/read.php?id=399&c=2664853)
When I restart foobar it says:
foo_grabber_python: Traceback (most recent call last):
File "<string>", line 4, in <module>
ImportError: No module named traceback
Can somebody help me?
@ stankovic:
I'm looking at that error, right now. And no, the scripts are not included. I tried to implement it, yet made everything a little unstable. I constantly had crashes.
@mousepad:
please refer to this post: http://www.hydrogenaudio.org/forums/index....st&p=717723 (http://www.hydrogenaudio.org/forums/index.php?showtopic=82772&view=findpost&p=717723)
Edit:
Argh... I'm so stupid.. I rename Python to Scripts, but did still check in the searchall for a "Python" provider -.- Consider it fixed.
Edit2:
Argh... again. google code is currently maintaining something and I can't upload at the moment. Please bear with me, until the fix is up.
Version 0.3.6.1 is up.
Version 0.3.6.1 is up.
FYI, with 0.3.6.1 (and also with 0.3.6.0) I still got the same error as Mousepad:
foo_grabber_python: Traceback (most recent call last):
File "<string>", line 4, in <module>
ImportError: No module named traceback
Where is your pygrabber\system folder? The only possible reason I can imagine is, that this folder is somewhere it doesn't belong.
Qudeid can you add plyrics script? http://plyrics.com/ (http://plyrics.com/)
Where is your pygrabber\system folder? The only possible reason I can imagine is, that this folder is somewhere it doesn't belong.
My bad I didn't read carefully the install.txt file and kept the pygrabber\system folder in my foobar directory (as it was ok with the old lyricsgrabber component) instead of copying the pygrabber\system folder in my %appdata%\foobar directory.
Everything is working fine now. Thanks for your component and also for your help!
But now I had the idea, why not first test if the title is contained in the title that is displayed on darklyrics... In case of your Vlammenzee it is and it would immediately take that choice... But this is the theory, if that works in reality that well, I can't promise. After a few changes I will post the update.
Version 0.3.6.1 is up.
Working like a charm. Thank you very much!
There seems to be a problem with umlauts (ä, ö, ü) and certain Kanji characters (I haven't found out which in particular) in the track title.
Whenever I try to get lyrics (Search all) for tracks with these in the title foobar crashes.
There is no problem when they're in the artist field, though.
PS: I have not installed the phyton script part of the plugin, only foo_lyricsgrabber2.dll.
There seems to be a problem with umlauts (ä, ö, ü) and certain Kanji characters (I haven't found out which in particular) in the track title.
Whenever I try to get lyrics (Search all) for tracks with these in the title foobar crashes.
There is no problem when they're in the artist field, though.
PS: I have not installed the phyton script part of the plugin, only foo_lyricsgrabber2.dll.
Can you please keep an eye on that? ÄÜÖ seem to work fine for me using the Search All... And at least some Kanji work (although nothing really is found)
ohkey, found the .dll ^^
Hmm, I tried a few more tracks and no longer have any idea as to what causes the crashes.
I can search without problems for (default copy command formatting):
"In Extremo - [Live 2002 #13] Palästinalied"
"Die Ärzte - [Die Bestie In Menschengestalt #16] Kopfüber In Die Hölle"
"Die Ärzte - [Ist Das Alles (13 Höhepunkte mit den Ärzten) #03] 2000 Mädchen"
"SHIINA Ringo - [Shouso Strip #04] Gips"
"BENNIE K - [BEST OF THE BESTEST #16] モノクローム"
"Herbert Grönemeyer - [Mensch #08] Blick Zurück"
In fact, I couldn't even find the Kanji track again that crashed yesterday.
But searching for:
"Wolfsheim - Künstliche Welten"
produces this:
Illegal operation:
Code: C0000005h, flags: 00000000h, address: 01D874A0h
Access violation, operation: read, address: 00000000h
Call path:
threaded_process thread=>lyric_lookup_task::run=>lookup
Code bytes (01D874A0h):
01D87460h: 01 89 0D 3C AA DD 01 C7 05 F4 A9 DD 01 E0 35 DD
01D87470h: 01 B8 E8 A9 DD 01 C3 CC CC CC CC CC CC CC CC CC
01D87480h: 8B 09 85 C9 74 06 8B 01 8B 10 FF E2 C3 CC CC CC
01D87490h: 55 8B 6C 24 0C 56 8B C5 57 8D 50 01 8D 64 24 00
01D874A0h: 8A 08 40 84 C9 75 F9 8B 7C 24 10 2B C2 8B F0 53
01D874B0h: 83 C7 04 8D 5E 01 8B C7 E8 63 CB 00 00 8B 07 5B
01D874C0h: 85 F6 76 17 8B CD 2B C8 8B EE 8D 9B 00 00 00 00
01D874D0h: 8A 14 01 88 10 40 83 ED 01 75 F5 8B 44 24 10 8B
Stack (0732F934h):
0732F914h: 00000000 7C9200B8 003D49D0 0012F358
0732F924h: 7C920041 003D0868 7C92005D 00000000
0732F934h: FFFFFFFF 00000000 0732FBD8 01D83144
0732F944h: 0732FB08 00000000 9637F483 031E4BC8
0732F954h: 00000000 00000001 00000000 0732F970
0732F964h: 00000000 001ADCEC 00000000 01DD365C
0732F974h: 00000000 00000000 00000000 00000000
0732F984h: 01DD365C 00000000 00000000 00000000
0732F994h: 00000000 01DD365C 00000000 00000000
0732F9A4h: 00000000 00000000 01DD365C 00000000
0732F9B4h: 00000000 00000000 00000000 01DD365C
0732F9C4h: 00000000 00000000 00000000 00000000
0732F9D4h: 01DD365C 00000000 00000000 00000000
0732F9E4h: 00000000 01DD3448 00000000 00000000
0732F9F4h: FFFFFF00 00000000 00000000 00000000
0732FA04h: 0732FD00 00000000 00000000 00000000
0732FA14h: 3E87BF00 00000000 00000000 00000000
0732FA24h: 00326700 00000000 00000000 00000000
0732FA34h: 00000020 00400000 00000000 00570018
0732FA44h: 00000000 00000000 00000000 00000000
Registers:
EAX: 00000000, EBX: 00000000, ECX: 0732FB08, EDX: 00000001
ESI: 00000000, EDI: FFFFFFFF, EBP: 00000000, ESP: 0732F934
Crash location:
Module: foo_lyricsgrabber2
Offset: 74A0h
Loaded modules:
foobar2000 loaded at 00400000h - 005E5000h
ntdll loaded at 7C910000h - 7C9C9000h
kernel32 loaded at 7C800000h - 7C908000h
COMCTL32 loaded at 773A0000h - 774A3000h
msvcrt loaded at 77BE0000h - 77C38000h
ADVAPI32 loaded at 77DA0000h - 77E4A000h
RPCRT4 loaded at 77E50000h - 77EE2000h
Secur32 loaded at 77FC0000h - 77FD1000h
GDI32 loaded at 77EF0000h - 77F39000h
USER32 loaded at 7E360000h - 7E3F1000h
SHLWAPI loaded at 77F40000h - 77FB6000h
DSOUND loaded at 73E70000h - 73ECC000h
ole32 loaded at 774B0000h - 775ED000h
VERSION loaded at 77BD0000h - 77BD8000h
WINMM loaded at 76AF0000h - 76B1E000h
UxTheme loaded at 5B0F0000h - 5B128000h
dbghelp loaded at 59DD0000h - 59E71000h
SHELL32 loaded at 7E670000h - 7EE91000h
shared loaded at 10000000h - 1002A000h
imagehlp loaded at 76C50000h - 76C78000h
COMDLG32 loaded at 76350000h - 7639A000h
zlib1 loaded at 5A4C0000h - 5A4D4000h
IMM32 loaded at 76330000h - 7634D000h
LPK loaded at 62E10000h - 62E19000h
USP10 loaded at 75790000h - 757FB000h
MSCTF loaded at 746A0000h - 746EC000h
WINTRUST loaded at 76BF0000h - 76C1E000h
CRYPT32 loaded at 77A50000h - 77AE6000h
MSASN1 loaded at 77AF0000h - 77B02000h
wdmaud loaded at 72C90000h - 72C99000h
msacm32 loaded at 72C80000h - 72C88000h
MSACM32 loaded at 77BB0000h - 77BC5000h
midimap loaded at 77BA0000h - 77BA7000h
msctfime loaded at 75250000h - 7527E000h
foo_ui_std loaded at 01100000h - 01218000h
gdiplus loaded at 4EBA0000h - 4ED4B000h
MSIMG32 loaded at 76320000h - 76325000h
foo_deskband_controls loaded at 01230000h - 01239000h
MSVCR90 loaded at 78520000h - 785C3000h
foo_input_std loaded at 01260000h - 013B4000h
foo_playcount loaded at 013E0000h - 0141B000h
foo_fileops loaded at 01440000h - 01486000h
foo_uie_esplaylist loaded at 014B0000h - 01509000h
foo_uie_biography loaded at 01530000h - 01587000h
foo_discogs loaded at 015B0000h - 01611000h
WININET loaded at 77180000h - 7722B000h
OLEAUT32 loaded at 770F0000h - 7717B000h
foo_uie_lyrics2 loaded at 016E0000h - 017CE000h
foo_cdda loaded at 01670000h - 016BE000h
foo_textdisplay loaded at 018E0000h - 0191F000h
foo_bitcompare loaded at 01940000h - 01968000h
foo_facets loaded at 01990000h - 01A11000h
foo_popupplus loaded at 01A40000h - 01AC9000h
RICHED20 loaded at 74DB0000h - 74E1D000h
foo_albumlist loaded at 01AF0000h - 01B4D000h
foo_rgscan loaded at 01B70000h - 01BBD000h
foo_autoupdate loaded at 01BE0000h - 01C2C000h
POWRPROF loaded at 74A50000h - 74A58000h
foo_converter loaded at 01C40000h - 01CBA000h
foo_skip loaded at 01CE0000h - 01D02000h
foo_osd loaded at 01D30000h - 01D5E000h
foo_lyricsgrabber2 loaded at 01D80000h - 01DE2000h
WLDAP32 loaded at 76F20000h - 76F4D000h
MSVCP90 loaded at 78480000h - 7850E000h
WS2_32 loaded at 71A10000h - 71A27000h
WS2HELP loaded at 71A00000h - 71A08000h
foo_tagbox loaded at 01E40000h - 01EB3000h
foo_freedb2 loaded at 01EE0000h - 01F21000h
foo_gep loaded at 01F50000h - 0200F000h
foo_masstag loaded at 02030000h - 02084000h
foo_quicksearch loaded at 020B0000h - 020E2000h
foo_dsp_std loaded at 02100000h - 02148000h
foo_unpack loaded at 02170000h - 0219F000h
foo_queuecontents loaded at 021C0000h - 0227D000h
CLBCATQ loaded at 76F90000h - 7700F000h
COMRes loaded at 77010000h - 770E3000h
xpsp2res loaded at 05330000h - 05609000h
mswsock loaded at 719B0000h - 719F0000h
DNSAPI loaded at 76EE0000h - 76F07000h
rasadhlp loaded at 76F80000h - 76F86000h
Stack dump analysis:
Address: 01D83144h (foo_lyricsgrabber2+3144h)
Address: 01DD365Ch (foo_lyricsgrabber2+5365Ch)
Address: 01DD365Ch (foo_lyricsgrabber2+5365Ch)
Address: 01DD365Ch (foo_lyricsgrabber2+5365Ch)
Address: 01DD365Ch (foo_lyricsgrabber2+5365Ch)
Address: 01DD365Ch (foo_lyricsgrabber2+5365Ch)
Address: 01DD365Ch (foo_lyricsgrabber2+5365Ch)
Address: 01DD3448h (foo_lyricsgrabber2+53448h)
Address: 00400000h (foobar2000+0h)
Address: 00570018h (foobar2000+170018h)
Address: 7C91E920h (ntdll+E920h), symbol: "strchr" (+113h)
Address: 7C920060h (ntdll+10060h), symbol: "RtlFreeHeap" (+133h)
Address: 7C92005Dh (ntdll+1005Dh), symbol: "RtlFreeHeap" (+130h)
Address: 7C929DEDh (ntdll+19DEDh), symbol: "RtlReAllocateHeap" (+24Dh)
Address: 7C929DAAh (ntdll+19DAAh), symbol: "RtlReAllocateHeap" (+20Ah)
Address: 01DD3420h (foo_lyricsgrabber2+53420h)
Address: 01DD365Ch (foo_lyricsgrabber2+5365Ch)
Address: 01DD3420h (foo_lyricsgrabber2+53420h)
Address: 01DD3420h (foo_lyricsgrabber2+53420h)
Address: 01DD3420h (foo_lyricsgrabber2+53420h)
Address: 7C920222h (ntdll+10222h), symbol: "RtlAllocateHeap" (+15Eh)
Address: 01DD3448h (foo_lyricsgrabber2+53448h)
Address: 0059FAD8h (foobar2000+19FAD8h)
Address: 7C920228h (ntdll+10228h), symbol: "RtlAllocateHeap" (+164h)
Address: 7C920222h (ntdll+10222h), symbol: "RtlAllocateHeap" (+15Eh)
Address: 7C92019Bh (ntdll+1019Bh), symbol: "RtlAllocateHeap" (+D7h)
Address: 7C9201DBh (ntdll+101DBh), symbol: "RtlAllocateHeap" (+117h)
Address: 7C9200C4h (ntdll+100C4h), symbol: "RtlAllocateHeap" (+0h)
Address: 7C9200C4h (ntdll+100C4h), symbol: "RtlAllocateHeap" (+0h)
Address: 7C924606h (ntdll+14606h), symbol: "RtlQueryEnvironmentVariable_U" (+6Dh)
Address: 7C920460h (ntdll+10460h), symbol: "RtlReleasePebLock" (+Fh)
Address: 01DD36D8h (foo_lyricsgrabber2+536D8h)
Address: 7C9200B8h (ntdll+100B8h), symbol: "RtlFreeHeap" (+18Bh)
Address: 7C920041h (ntdll+10041h), symbol: "RtlFreeHeap" (+114h)
Address: 7C92005Dh (ntdll+1005Dh), symbol: "RtlFreeHeap" (+130h)
Address: 7C9200B8h (ntdll+100B8h), symbol: "RtlFreeHeap" (+18Bh)
Address: 01DCB3DCh (foo_lyricsgrabber2+4B3DCh)
Address: 01DD44D0h (foo_lyricsgrabber2+544D0h)
Address: 7858675Bh (MSVCR90+6675Bh), symbol: "realloc" (+35Fh)
Address: 78586792h (MSVCR90+66792h), symbol: "realloc" (+396h)
Address: 7C91E920h (ntdll+E920h), symbol: "strchr" (+113h)
Address: 7C9201DBh (ntdll+101DBh), symbol: "RtlAllocateHeap" (+117h)
Address: 7C9200B8h (ntdll+100B8h), symbol: "RtlFreeHeap" (+18Bh)
Address: 7C920041h (ntdll+10041h), symbol: "RtlFreeHeap" (+114h)
Address: 7C92005Dh (ntdll+1005Dh), symbol: "RtlFreeHeap" (+130h)
Address: 7C91E920h (ntdll+E920h), symbol: "strchr" (+113h)
Address: 7C91E920h (ntdll+E920h), symbol: "strchr" (+113h)
Address: 7C9201E0h (ntdll+101E0h), symbol: "RtlAllocateHeap" (+11Ch)
Address: 7C9201DBh (ntdll+101DBh), symbol: "RtlAllocateHeap" (+117h)
Address: 00533FF5h (foobar2000+133FF5h)
Address: 00505F30h (foobar2000+105F30h)
Address: 7C91E920h (ntdll+E920h), symbol: "strchr" (+113h)
Address: 7C92005Dh (ntdll+1005Dh), symbol: "RtlFreeHeap" (+130h)
Address: 78583C1Bh (MSVCR90+63C1Bh), symbol: "free" (+CDh)
Address: 01D8E665h (foo_lyricsgrabber2+E665h)
Address: 004081DAh (foobar2000+81DAh)
Address: 01D8E77Fh (foo_lyricsgrabber2+E77Fh)
Address: 01D8E7EAh (foo_lyricsgrabber2+E7EAh)
Address: 01D8E925h (foo_lyricsgrabber2+E925h)
Address: 01DD2984h (foo_lyricsgrabber2+52984h)
Address: 004D81F2h (foobar2000+D81F2h)
Address: 004D8200h (foobar2000+D8200h)
Address: 004D80DEh (foobar2000+D80DEh)
Address: 01D81AAFh (foo_lyricsgrabber2+1AAFh)
Address: 10002826h (shared+2826h), symbol: "uCallStackTracker::~uCallStackTracker" (+0h)
Address: 01DD36D8h (foo_lyricsgrabber2+536D8h)
Address: 01DCAB98h (foo_lyricsgrabber2+4AB98h)
Address: 01DD3420h (foo_lyricsgrabber2+53420h)
Address: 01DDA8A4h (foo_lyricsgrabber2+5A8A4h)
Address: 01DD36D8h (foo_lyricsgrabber2+536D8h)
Address: 01DD36D8h (foo_lyricsgrabber2+536D8h)
Address: 01DD34C4h (foo_lyricsgrabber2+534C4h)
Address: 01DD3DE0h (foo_lyricsgrabber2+53DE0h)
Address: 100027EDh (shared+27EDh), symbol: "uCallStackTracker::uCallStackTracker" (+0h)
Address: 01D9554Bh (foo_lyricsgrabber2+1554Bh)
Address: 01DC9872h (foo_lyricsgrabber2+49872h)
Address: 004D8006h (foobar2000+D8006h)
Address: 100027D8h (shared+27D8h), symbol: "uPrintCrashInfo_OnEvent" (+B1h)
Address: 00574330h (foobar2000+174330h)
Address: 00548AC8h (foobar2000+148AC8h)
Address: 004D7F97h (foobar2000+D7F97h)
Address: 0054F2D9h (foobar2000+14F2D9h)
Address: 7C80B729h (kernel32+B729h), symbol: "GetModuleFileNameA" (+1BAh)
Address: 7C839AD8h (kernel32+39AD8h), symbol: "ValidateLocale" (+2B0h)
Address: 7C80B730h (kernel32+B730h), symbol: "GetModuleFileNameA" (+1C1h)
Address: 004D7F60h (foobar2000+D7F60h)
Environment:
App: foobar2000 v1.1 beta 2
OS: Windows 5.1.2600 Service Pack 3 x86
CPU: Intel® Core2 Duo CPU T7300 @ 2.00GHz, features: MMX SSE SSE2 SSE3
Audio: Realtek HD Audio output
UI: Default User Interface 0.9.5
Components:
Core (2010-08-03 11:27:02 UTC)
foobar2000 core 1.1 beta 2
foo_albumlist.dll (2010-08-03 11:25:22 UTC)
Album List 4.5
foo_autoupdate.dll (2010-04-19 23:21:14 UTC)
Automatic Updater 1
foo_bitcompare.dll (2008-12-05 14:08:02 UTC)
Binary Comparator 1.2
foo_cdda.dll (2010-08-03 11:25:20 UTC)
CD Audio Decoder 3.0
foo_converter.dll (2010-08-03 11:24:52 UTC)
Converter 1.5
foo_deskband_controls.dll (2010-02-08 20:20:32 UTC)
Deskband Controls 0.1
foo_discogs.dll (2010-07-21 21:00:04 UTC)
Discogs Tagger 1.25
foo_dsp_std.dll (2010-08-03 11:25:20 UTC)
Standard DSP Array 1.0
foo_facets.dll (2008-07-14 16:26:15 UTC)
Facets 2008-02-25
foo_fileops.dll (2010-08-03 11:23:52 UTC)
File Operations 2.1.3
foo_freedb2.dll (2010-08-03 11:24:06 UTC)
freedb Tagger 0.6.2
foo_gep.dll (2010-04-21 22:04:42 UTC)
Game Emu Player 1.102
foo_input_std.dll (2010-08-03 11:24:52 UTC)
Standard Input Array 1.0
foo_lyricsgrabber2.dll (2010-08-10 17:09:41 UTC)
Lyrics Grabber 2 0.3.6.1 beta
foo_masstag.dll (2009-09-18 08:01:36 UTC)
Masstagger 1.8.4
foo_osd.dll (2010-07-22 20:59:28 UTC)
On-Screen Display GDI+ 1.61
foo_playcount.dll (2010-07-24 10:09:34 UTC)
Playback Statistics 3.0 beta 2
foo_popupplus.dll (2008-04-24 20:24:18 UTC)
PopUp Plus 20080424
foo_queuecontents.dll (2010-05-20 08:18:58 UTC)
Queue Contents Editor 0.3.9
foo_quicksearch.dll (2010-05-14 17:08:00 UTC)
Quick Search Toolbar 1.9
foo_rgscan.dll (2010-08-03 11:24:52 UTC)
ReplayGain Scanner 2.0.9
foo_skip.dll (2010-07-04 10:39:06 UTC)
Skip Track 1.2
foo_tagbox.dll (2010-08-07 16:14:20 UTC)
TagBox 0.170
foo_textdisplay.dll (2008-07-08 17:45:26 UTC)
Text Display UI Element 1.0 RC 3
foo_ui_std.dll (2010-08-03 11:25:16 UTC)
Default User Interface 0.9.5
foo_uie_biography.dll (2010-06-27 19:50:10 UTC)
Biography View 0.4.2.2
foo_uie_esplaylist.dll (2010-08-06 21:01:00 UTC)
EsPlaylist 0.1.1.0 beta 6
foo_uie_lyrics2.dll (2010-04-12 18:19:24 UTC)
Lyric Show Panel 2 0.4.6.15
foo_unpack.dll (2010-08-03 11:24:20 UTC)
ZIP/GZIP/RAR Reader 1.6
Recent events:
"✔ Rating 3 alles" : 0:00.072510
"✔ Rating 4" : 0:00.059728
"✔ Rating 4 alles" : 0:00.069255
"✔ Rating 5" : 0:00.059968
"✔ Rating 5 alles" : 0:00.064912
"✔ Rock" : 0:00.046553
"✔ Rock & Indie" : 0:00.035749
"✔ Soundtrack" : 0:00.086278
Sample component: on_init()
Startup time : 0:05.533271
also crashing:
"Wolfsheim - Kein Zurück"
"Megaherz - Schlag Zurück"
"Megaherz - Himmelfahrt"
...
Now that I look at it, it seems like a missing "album" tag is responsible.
Just to try that out I added an album tag to the last song from above:
"Megaherz - [ad] Himmelfahrt"
Now it doesn't crash anymore. Is an existing album tag compulsory?
Ah.. I now understand.
Yes that could be it. Darklyrics relies on the album. If there is no album, it should fail (as I search directly the lyrics, not via Google Luck or other search measures).
Thing is, I don't check if there is no album tag, I require it in that particular provider. I will change that, checking if there is something, if not, make that provider fail, rather than crashing foobar.
Thank you for observing this!
Can I ask why LyricWiki has been removed as a source? It seemed to be a good one.
Also, with the current providers, I get no hits for Mrs Robinson by Simon & Garfunkel, which is one of the most popular songs ever. By going to the LyrDB site, I see they have the lyrics but the plugin doesn't pick them up.
Another issue: I just ran the Search All on Bob Dylan The Times They Are A-Changin' and ended up with the lyrics for a different Dylan song ('Drake Bell').
After millions times test, it works! but there are still some issues.
1) I wonder if the leo's lyrics and 乐辞lyrics are available, I don't see any lyrics search by them!
2) I experience several crashes searching lyrics for the stream. Theoretically, if the stream has dynamic track title, we can search the lyrics, as foo_uie_lyrics2 does.
BTW: do you have interesting to maintain the foo_uie_lyrics2 which hasn't been maintained for a long time?
@ Yurk Yurk:
While I can not implement why or why not a wrong song text is returned, which might be the fault of the website itself, rather than me. In the next release I address the problem of lyrdb not finding lyrics they normally have. More than that, I can't do.
As to LyricWiki, I was of the impression that it wasn't possible to receive the lyrics anymore. But I can check if I can reimplement it.
@joelzhao:
First of all, I am not responsible for Scripts, I just have them from the original (T.P.Wang) but I haven't changed them. About Leo's Lyrics: I think they changed something in their lyrics system, so that script is probably outdated. I've sent an E-Mail to them, as they offer plugins for Winamp and iTunes, and asked if if could be possible to support me as well.
The crashes should be gone in the next release as they were caused by missing Album information. So theoretically, it could work to find lyrics to a dynamic title. Unfortunately I can't test it myself.
foo_lyricsgrabber2 is a huge workload all in itself, as I must check multiple times what doesn't etc. (haveing spent some times without doing anything else but implementing/maintaining the plugins). Also from September on, I won't be so active, as my future job will begin. So, no, maintaining foo_uie_lyrics2 wouldn't be possible at the moment.
@Yurk Yurk:
I looked into lyricwiki and found no possibility to for me to retrieve lyrics from there. While I could create, without any problem, a URL that point's to the correct address, due to the fact that they use javaScript to display the lyrics, I can't get it, as it isn't part of the html source. (Same as it applies to LyricsPlugin).
If you don't understand, what I mean, visit any lyrics there, but disable javaScript in your Browser before you do.
Edit mode on lyricwiki works
http://lyrics.wikia.com/index.php?title=Ta...amp;action=edit (http://lyrics.wikia.com/index.php?title=Taylor_Swift:Mine&action=edit)
Edit mode on lyricwiki works
http://lyrics.wikia.com/index.php?title=Ta...amp;action=edit (http://lyrics.wikia.com/index.php?title=Taylor_Swift:Mine&action=edit)
Nice idea,
I will try using that later today!
New Version is out.
fixed that crashing thing with the album tag. And introduced LyricWiki again Also I hopefully fixed that problem with lyrdb
a lot of error:101
No such a entry in the database. when there's nothing to find
I tried to search lyrics for The Faceless' two albums, Akeldama & Planetary Duality and only few was found and from Planetray Duality the one it found was a wrong one - and Darklyrics has them all and I searched from Darklyrics. I update to new version and see if this bug is still in there...
New Version is out.
fixed that crashing thing with the album tag. And introduced LyricWiki again Also I hopefully fixed that problem with lyrdb
Great! Thanks a lot for this great component.
A little problem: LyricWiki (at least this one) is case-sensitive and expects capitalized first letters for song titles. Is it possible to capitalize song titles before sending a request?
Version 0.4.0.1 is out. Hopefully fixing stuff for good
If i catch lyrics with LyricWiki i get two types of results if search was successful:
Either a text without multiple lines or an entry "<!-- PUT LYRICS HERE (and delete this entire line) -->". The latter phenomen can't mean that searching failed because i have also searches which are markes as "failed". Furthermore it is slow but i guess this is due to only possible search method?
Edit:
Whatever you did with LyrDB, it works really fast and great now.
Maybe it's just me, but I don't see LyricWiki on the context menu. It's listed in the preferences page, but I can't search it without doing a "search all".
Also, I can confirm the issue q-stankovic mentioned.
The issue with LyricWiki is, that I must open the "Edit Page" fo the wiki, because otherwise there is no lyrics I can fetch... I will see to that issue, or otherwise I will remove LyricWiki again...
About LyrDB... Well I changed the search from "Match", which requires something linke this "Artist|Title", but artist and title may not have special characters like ', & etc. to "fullt" (probably full-text), which has no such predefined structure. (And I updated a helper function... it was malfunctioning, that was probably the main cause for weird results).
@Hitchhiker:
Very strange... even if you restart Foobar? I've never seen that problem... :S
I did a search via google to look for other lyrics sites. there are so many but there is one that i like to mention: www.songtext.net
It seems to be the largest. It claims to have almost 3 millions lyrics (!). I searched for some artists that are less famous than - let's say: Bad Brains. I found many of them. I hope you will consider to implement this if and when you find some time.
I did a search via google to look for other lyrics sites. there are so many but there is one that i like to mention: www.songtext.net
It seems to be the largest. It claims to have almost 3 millions lyrics (!). I searched for some artists that are less famous than - let's say: Bad Brains. I found many of them. I hope you will consider to implement this if and when you find some time.
I find Lyrics, or at least that they are there, but I can't find the lyrics themselves... Best would be, if Leo's Lyrics would respond... Hitchhiker... have you any nes? Maybe you can ask the one that maintains the servers if he can ask if it would be possible to use their API?
I find Lyrics, or at least that they are there, but I can't find the lyrics themselves... :
Autsch, i assume you have to be registrated and logged-in.
Qudeid the lyrics from LyricWiki are saved as html entities on the normal lyrics page:
& #89;& #111;& #117; ...
Just decode them.
Qudeid the lyrics from LyricWiki are saved as html entities on the normal lyrics page:
& #89;& #111;& #117; ...
Just decode them.
That gives a little overhead, but that way, it would be possible... true. I'll look into it.
Edit:
In the next Release this is realized
I am obviously doing something wrong since it won't find any lyrics from Darklyrics.
I am obviously doing something wrong since it won't find any lyrics from Darklyrics.
Since I have no problem retrieving lyrics from Darklyrics, try checking the tags. If they don't match properly that might be the reason. (Artist and album must be correct)
Edit: I'll try another approach for Darklyrics and test it, maybe this works better. If so, it'll be changed in the next release.
I've just compiled a new version. Hope that solves once and for all the problems with Darklyrics! (And possibly LyricWiki)
Btw.: I've noticed that sometimes, using LyrDB, the Result Window doesn't display all of the lyrics, making it look like there is only a few lines of them. But upon saving they are complete. I don't know what causes this, but rest assured, if it says success it is successful (Hopefully with the correct lyrics to the song )
I've just compiled a new version. Hope that solves once and for all the problems with Darklyrics! (And possibly LyricWiki)
Btw.: I've noticed that sometimes, using LyrDB, the Result Window doesn't display all of the lyrics, making it look like there is only a few lines of them. But upon saving they are complete. I don't know what causes this, but rest assured, if it says success it is successful (Hopefully with the correct lyrics to the song )
I just saw that i have different version numbers of python(0.4.0.2 beta) and lyricsgrabber (0.4.1.0 beta), Shouldn't they have the same?
I've just compiled a new version. Hope that solves once and for all the problems with Darklyrics! (And possibly LyricWiki)
Btw.: I've noticed that sometimes, using LyrDB, the Result Window doesn't display all of the lyrics, making it look like there is only a few lines of them. But upon saving they are complete. I don't know what causes this, but rest assured, if it says success it is successful (Hopefully with the correct lyrics to the song )
I just saw that i have different version numbers of python(0.4.0.2 beta) and lyricsgrabber (0.4.1.0 beta), Shouldn't they have the same?
Yes, and they are now, Visual Studio didn't build the new dll, but I thought it did. Anyway, if you re-download it, it should be the same.
Best would be, if Leo's Lyrics would respond... Hitchhiker... have you any nes? Maybe you can ask the one that maintains the servers if he can ask if it would be possible to use their API?
I sent a message to the guy who maintains the server a week ago, but haven't received a response. I'll try posting on the main forum and see if someone can help.
However, it might not be necessary for him to reply. See, this script works on my computer:
# -*- coding: utf-8 -*-
import encodings.utf_8
import urllib
from xml.dom import minidom
from grabber import LyricProviderBase
class LeosLyrics(LyricProviderBase):
def GetName(self):
return "Leo's Lyrics"
def GetVersion(self):
return "0.3"
def GetURL(self):
return "http://www.leoslyrics.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://api.leoslyrics.com/api_search.php?auth=LeosLyrics5&artist=%s&songtitle=%s" % (urllib.quote(artist), urllib.quote(title))).read()
doc = minidom.parseString(string)
child = doc.getElementsByTagName("searchResults")[0]
hid = None
for e in child.getElementsByTagName("result"):
if e.getAttribute("exactMatch") == "true":
hid = e.getAttribute("hid").encode('utf_8')
break
if hid == None:
result.append('')
continue
string = urllib.urlopen("http://api.leoslyrics.com/api_lyrics.php?auth=LeosLyrics5&hid=%s" % hid).read()
doc = minidom.parseString(string)
child = doc.getElementsByTagName("lyric")[0]
text = child.getElementsByTagName("text")[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 = LeosLyrics()
In fact, it often returns successful results that the built-in providers miss. This is a very valuable database. However, the catch to getting this script to work is that the following line must be added to the user's hosts file:
77.79.210.222 api.leoslyrics.com
Essentially, this redirects traffic sent to the api.leoslyrics.com host name to the 77.79.210.222 IP address without querying the DNS server. Now, it's unreasonable to require every user who uses this component to modify their personal hosts files, however, if there is a way to bypass the DNS server when fetching the lyrics that can be programmed directly into the component, this would be a worthwhile fix. Unfortunately, I'm not nearly experienced enough in programming to know how to do this.
So, it's something to think about, and it's your choice as to what you want to implement. However, if this server were added to the built-in providers, speaking from experience, my success rate when using "Search All" would double.
-----
Oh, and on a side note, I'm an idiot. LyricWiki didn't appear on my context menu because I hid it in the preferences. I did this back when it broke a long time ago, and the preference carried over to your version. So, no problem here.
Very interesting, indeed.
but as far as I know, shouldn't api.leoslyrics.com be a substitute for the IP? I mean, if I were to write http://77.79.210.222/etc.. (http://77.79.210.222/etc..).. I should be the same as if I wrote http://api.leoslyrics.com (http://api.leoslyrics.com). At least I thought so, but obviously, this is not true. I get a "Not Found" error from the server. But I think there must be a way to somehow simulate thatyou get a static IP for that server.
On the otherhand... it is some kind of hack into the system and I'd rather use it openly with permission, but unfortunately I haven't received an E-Mail from Leo's Lyrics either
Besides: How were you able to hide LyricWiki? I see no option in the Preferences to Hide a Provider?
I have installed foobar2000 1.1 beta 3 with settings separeted per-user. And I have some questions about installing manual.
(1)Make sure you have foo_lyricsgrabber2 installed already
what does it mean?
2)Put python25.dll and msvcr71.dll into foobar2000\ directory (%appdata%\foobar2000\ should work as well)
works
only with this files in program files/foobar2000 directory
(3)Put foo_grabber_python.dll and foo_lyricsgrabber2.dll into foobar2000\components\ directory (in Foobar2000 1.1 you can also install them inside Foobar)
ok, both program files/foobar2000/components and appdata/foobar2000/usercomponents works fine
(4)Copy pygrabber directory and all its contents to %appdata%\foobar2000\ directory
Allright, this folder must be in user-profile foobar2000 folder...
3. After Installation or After Updating
Go to Foobar's preferences and find under tools "Lyrics Grabber 2". In "Provider", select "Python"
I see no "Python" in the list:
(http://audiophilesoft.ucoz.ua/misc/nopython.png)
Sorry, forgot to update the Install.txt
First should be obsolete, or rather it shoudl be saying "You must have foo_lyricsgrabber installed to use foo_grabber_python"
About the last point. I renamed "Python" to "Scripts" as some found it better, as not all know python. So you see "Scripts" there.
AZ Lyrics often gives false results. That is mainly annoying when it is preferred in the "Search all". I assumed that the false results are songs from other artists with same title but i can't proove that as the AZ lyrics site is a mess which doesn't allow to list songs alphabetically.
A small mistake in lyrdb: for Dendemann - "Metapher than leather" i receive Run-D.M.C - "Tougher than Leather". It seem to ignore artist and like similarity in title. (Edit: aah, lyrdb don't contain the artist Dendemann so it is looking just for the title. Could you remove that "feature"? Any news why sometimes lyrdb results are truncated in lyricsgrabber window?)
AZ Lyrics often gives false results. That is mainly annoying when it is preferred in the "Search all". I assumed that the false results are songs from other artists with same title but i can't proove that as the AZ lyrics site is a mess which doesn't allow to list songs alphabetically.
A small mistake in lyrdb: for Dendemann - "Metapher than leather" i receive Run-D.M.C - "Tougher than Leather". It seem to ignore artist and like similarity in title. (Edit: aah, lyrdb don't contain the artist Dendemann so it is looking just for the title. Could you remove that "feature"? Any news why sometimes lyrdb results are truncated in lyricsgrabber window?)
I'm not sure about AZLyrics but I implemented a check, that it, at least, really is the same title. As AZLyrics is accessed via the in-built search function of the site, and the first result taken, i could just have been similar. Hopefully, this is enough!
Abuot LyrDB: That is fixed. I check now of similarity to the artist as well. "Dendemann - Metapher than leather" for instance now returns failed, as it doesn't seem to be in the database of LyrDB.
Edit: Err.. new Version is out, of course
Thanks for new version!
I have one request: Could lyricsgrabber window remember its size. I make the window bigger to have a greater area for tracklisting and for lyricdisplay. After closing the window return to its small size.
Edit: No more false results in newest version!
Thanks for new version!
I have one request: Could lyricsgrabber window remember its size. I make the window bigger to have a greater area for tracklisting and for lyricdisplay. After closing the window return to its small size.
Sorry, possible, probably, practical for me, I don't think so. I'm not so experienced with this kind of dialogs, which means, I's take a few hours to make this happen. Sorry again.
LyricWiki often picks up lyrics like this:
External links
Amazon: search for… The Black Mages • The Black Mages II: The Skies Above • Zeromus FoxyTunes Planet: search for… The Black Mages • Zeromus
Hype Machine: search for… The Black Mages • Zeromus
Last.fm: search for… The Black Mages • The Black Mages II: The Skies Above • Zeromus
MusicBrainz: search for… The Black Mages • The Black Mages II: The Skies Above • Zeromus
Pandora: search for… The Black Mages • Zeromus Wikipedia: search for… The Black Mages • The Black Mages II: The Skies Above • Zeromus
YouTube: Zeromus
When looking for lyrics foor a batch of songs, this is a large problem. Could you look into it?
Also, a lot of lyrics seem to have trailing newlines at the end, which is kind of annoying.
Thank you for fixing the plugin! =]
I tried removing as many new lines as I can, maybe I forgot to do so in one provider.
About LyricWiki... could you please specify a song, so I can better look into the problem? (Song and Artist should be enough)
Thank you!
Artist: The Black Mages
Title: Zeromus
http://lyrics.wikia.com/The_Black_Mages:Zeromus (http://lyrics.wikia.com/The_Black_Mages:Zeromus)
I think this is a problem with instrumental songs. Any chance they could (optionally) have the lyrics "[Instrumental]"?
Artist: The Black Mages
Title: Zeromus
http://lyrics.wikia.com/The_Black_Mages:Zeromus (http://lyrics.wikia.com/The_Black_Mages:Zeromus)
I think this is a problem with instrumental songs. Any chance they could (optionally) have the lyrics "[Instrumental]"?
No not really. The thing is, that it is impossible to tell if a song is instrumental. Only because the plugin doesn't find any lyrics doesn't mean the song is instrumental.
Another thing is, if it is stated as such. (As in the Song you provided here).
What I was thinking of is how a lot of songs are listed as instrumental songs. Could the lyrics be formatted as "[Instrumental]", if this is the case, rather than "Instrumental"?
What I was thinking of is how a lot of songs are listed as instrumental songs. Could the lyrics be formatted as "[Instrumental]", if this is the case, rather than "Instrumental"?
Theorectically yes, but I don't think such a minor thing is so important as I must always check and this makes it slower (even if only a little, but many little things equals one big )
Anyway, this LyricWiki problem is hopefully fixed. And please check if the line breaks are still there in the relevent songs. If so, please post one so I can check this out. Thank you for your contribution!
Is libcurl really needed for this? switching to fb2k's internal api will help a lot speed wise
Also, this:
http://img22.imageshack.us/img22/9258/scre...asj00052010.png (http://img22.imageshack.us/img22/9258/screenshotstasj00052010.png)
http://img230.imageshack.us/img230/5830/sc...asj00042010.png (http://img230.imageshack.us/img230/5830/screenshotstasj00042010.png)
The lyrics are from the Dire Straits song Money for Nothing. In the first picture, it's caused by "La Noyée". In the second, "Soothsayer" made it worse.
Also, the "Unfortunately, we are not licensed" message ruins the lyrics.
The other problems seems okay, though. Thanks for fixing them this quick! =D
@icedtea:
Honestly, I've never considered as I never knew it was there. Also this is the very first plugin I really looked into. So theoretically foobar coul ddo this too I guess, but I don't know how, at the moment. Maybe I'll look into it. We'll see.
@Nemphael:
Err... You say, when searching for "La Noyée" (from whatever Artist) or "Soothsayer" you get the lyrics from Dire Straits' song Money for Nothing, right? Can I have a little more information on those two songs? then I might be able to look into it better.
Here is a very cultivated site that contains over 1 million lyrics. If you like to add one built-in provider more ...
LyricsNet (http://www.lyrics.net)
http://img411.imageshack.us/img411/2611/sc...asj00082010.png (http://img411.imageshack.us/img411/2611/screenshotstasj00082010.png)
In the uppermost dialog without La Noyée or Soothsayer, Be Somebody gets correct lyrics. When adding them, second dialog, the lyrics for Be Somebody is either that of Soothsayer's or La Noyée's (Both are instrumental songs).
In the third dialog, The Beatles' Her Majesty are correct, but in the fourth, they are instead Be Somebody's.
http://img411.imageshack.us/img411/2611/sc...asj00082010.png (http://img411.imageshack.us/img411/2611/screenshotstasj00082010.png)
In the uppermost dialog without La Noyée or Soothsayer, Be Somebody gets correct lyrics. When adding them, second dialog, the lyrics for Be Somebody is either that of Soothsayer's or La Noyée's (Both are instrumental songs).
In the third dialog, The Beatles' Her Majesty are correct, but in the fourth, they are instead Be Somebody's.
So.... Is it so they are mixed, meaning you searched for a few songs at the same time, and the lyrics are correct only assigned to the wrong song? Something like this? And this only happens with LyricWiki?
@IcedTea:
I just looked into the http_client.h and tested, and it worked. But I can't seem to find anything with proxy, and since there is an option to use a proxy, which I don't intent to throw away, I can't to the switch, so for the time being, curl is a necessity. Sorry.
Yes, that's what happens. Every result is "pushed" one or two songs down.As far as I can tell, it happens with LyricWiki alone.
Yes, that's what happens. Every result is "pushed" one or two songs down.As far as I can tell, it happens with LyricWiki alone.
Ah, thank you. Let me guess, this only happens if there are songs that are found to be instrumental?
Fixed in the next release (currently building and soon uploading)
Great work, Thank you very much
When I search for Chinese songs, there is no response
Great work, Thank you very much
When I search for Chinese songs, there is no response
That's probably because none of the Sites I implemented handles Kanji (I know it's not the chinese Word for them, but they are more or less equal).
Ans since I am not chinese and have no chinese songs, I'm afraid that I can't really add one. It would be too cryptic for me. Sorry
Great work, Thank you very much
When I search for Chinese songs, there is no response
You can search Chinese lyrics by script selecting "????", which is available while leo's lyrics and ?? can't work. furthermore the lyrics searched with timestamp. I tend to use foo_uie_lyrics because it's automatic. Sorry Qudeid.
Great work, Thank you very much
When I search for Chinese songs, there is no response
You can search Chinese lyrics by script selecting "????", which is available while leo's lyrics and ?? can't work. furthermore the lyrics searched with timestamp. I tend to use foo_uie_lyrics because it's automatic. Sorry Qudeid.
Why sorry? I force nobody to use this Plugin. It's your decision to use this or the other. And yes, there are scripts that are able to find chinese Lyrics, but I was talking about built-in provider.
I am obviously doing something wrong since it won't find any lyrics from Darklyrics.
Since I have no problem retrieving lyrics from Darklyrics, try checking the tags. If they don't match properly that might be the reason. (Artist and album must be correct)
Edit: I'll try another approach for Darklyrics and test it, maybe this works better. If so, it'll be changed in the next release.
No, Darklyrics not working. Tags are 100% right. I once managed to fetch Diabolical Masquerade lyrics, but nothing else. Idk what I am doing wrong since I followed the setup step-by-step.
I am obviously doing something wrong since it won't find any lyrics from Darklyrics.
Since I have no problem retrieving lyrics from Darklyrics, try checking the tags. If they don't match properly that might be the reason. (Artist and album must be correct)
Edit: I'll try another approach for Darklyrics and test it, maybe this works better. If so, it'll be changed in the next release.
No, Darklyrics not working. Tags are 100% right. I once managed to fetch Diabolical Masquerade lyrics, but nothing else. Idk what I am doing wrong since I followed the setup step-by-step.
Just to be sure, you've updated to Version 0..4.1.3 ?
If so, please post Album, Title and Artist please so i can check better.
After the update to latest version it fetches lyrics to two-three songs. Really weird. I can take almost any album and it does this or doesn't find lyrics at all even though they are in Darklyrics. Take for example Meshuggah.
http://img714.imageshack.us/img714/29/62077820.png (http://img714.imageshack.us/img714/29/62077820.png)
After the update to latest version it fetches lyrics to two-three songs. Really weird. I can take almost any album and it does this or doesn't find lyrics at all even though they are in Darklyrics. Take for example Meshuggah.
http://img714.imageshack.us/img714/29/62077820.png (http://img714.imageshack.us/img714/29/62077820.png)
That really is strange...
I use Google's "I'm feeling lucky" to get to Darklyrics.. for combustion it seems to work, but Electric Red returns a website with "Bad Request"... though the same, really the very same thing, using firefox, gives me the website of Darklyrics where the lyrics of obZen are....
Can anyone explain this to me?
Edit: I think I've fixed it... As DarkLyrics only needs the artist and the album to return the valid website, I just omit the title in the request to google.. and that seems to work... Why the other one wouldn'T work in foobar but in firefox, is but a mystery to me... New Version is uploading
Hello Qudeid,
just registered here to reach you, first of all thanks for picking up the project!
I would like to request a small feature: Could you add the option to save the Lyrics to more than one tag?
The reason ist the following, I'd like to stick to the standard LYRICS tag as I have done the past years,
but my iPod requires the Lyrics to be stored in UNSYNCED LYRICS, otherwise lyrics aren't shown when uploading with foo_dop.
Now I have to always copy the lyrics by hand after Lyricsgrabber saved them to LYRICS...
Perhaps it's simple to just make a ";" indicate a new tag, i.e. LYRICS; UNSYNCED LYRICS ?
Greetings from DE, Immo
Hello Qudeid,
just registered here to reach you, first of all thanks for picking up the project!
I would like to request a small feature: Could you add the option to save the Lyrics to more than one tag?
The reason ist the following, I'd like to stick to the standard LYRICS tag as I have done the past years,
but my iPod requires the Lyrics to be stored in UNSYNCED LYRICS, otherwise lyrics aren't shown when uploading with foo_dop.
Now I have to always copy the lyrics by hand after Lyricsgrabber saved them to LYRICS...
Perhaps it's simple to just make a ";" indicate a new tag, i.e. LYRICS; UNSYNCED LYRICS ?
Greetings from DE, Immo
Sounds trivial. Hope the implentation is also. I'll look into it.. Sure And you're welcome
Hi and thank you for your work.
I don't know if this has already been asked, but would you consider adding support for LyricsDB (http://lyrics.mirkforce.net/cgi-bin/stats.cgi?period=1) (HA thread (http://www.hydrogenaudio.org/forums/index.php?showtopic=36598))?
Maybe it's not as huge as some other sites discussed here but I always considered it sort of HA community repository (yes, you can also upload your lyrics there)...
Regards.
Alessandro
I miss lyricsplugin database so much Maybe someone already has a fixed script for it?
First things first...
I realized ximmox's (and Tedgo's) request to support "UNSYNCED LYRIC" tag... to a degree, though. I went another way as recommended by tedgo. You can now enable an option called "Title Formatting", which enables you to write something like this:
$if($stricmp(%codec%,mp3),UNSYNCED LYRICS,LYRICS) (as suggested by Tedgo)
This, for instance, uses the Tag "UNSYNCED LYRICS" for MP3 files and "LYRICS" for everything else. I think this is a much better solution than add extra (unnecessary) tags to a file.
For whatever reason, you could even go as far as saving the lyrics in a tag that is named after the title... or last time it was played...
Also I'm happy I finally found the reason of getting bad request errors when calling google luck... For everyone interested: When searching for a title that contains whitespace in the name (or album for that matter), it doesn't work, because it isn't http encoded. Now I replace the whitespace with a '+' and that's all it needed
About the new Provider:
At the moment I don't have the time necessary for adding new provider (which can take a few hours to complete unfortunately), but I will see to it.
About lyricsplugin:
I hope so too, or at least a way for me to reach the lyrics, but as they use JavaScript to conceal them I can't get to them
The reason ist the following, I'd like to stick to the standard LYRICS tag as I have done the past years,
but my iPod requires the Lyrics to be stored in UNSYNCED LYRICS, otherwise lyrics aren't shown when uploading with foo_dop.
As far as i kno foo_dop allows you tag mapping so that on transferring your files on iPod the content of LYRICS automatically will be written in UNSYNCED LYRICS which is by the way the standard field for not-timestamped lyrics.
@Qudeid
Now when it is possible to use titleformatting maybe it is a good idea that all the scripts that catch timestamped lyrics are able to know the proper place for storing (LYRICS) - something like a variable %timestamped_lyric%.
There is still a known annoyment in lyrDB: The truncated lyrics in display. I like to call multiple instances of lyricsgrabber window to compare the quality of lyrics from different sources.
I will look into the truncated lyrics.
But I don't know what you mean with the rest.
Edit: in 0.4.5.1 beta fixed. The problem was, that lyrDb lyrics seemed to be ANSI Encoded, while Foobar wants UTF-8
After updating to latest version it fetches wonderfully lyrics from DL, except for one little bug.
http://img842.imageshack.us/img842/1055/asdul.png (http://img842.imageshack.us/img842/1055/asdul.png)
See that gap in UNSYNCED LYRICS tag ? It is in every lyric, at the start.
After updating to latest version it fetches wonderfully lyrics from DL, except for one little bug.
http://img842.imageshack.us/img842/1055/asdul.png (http://img842.imageshack.us/img842/1055/asdul.png)
See that gap in UNSYNCED LYRICS tag ? It is in every lyric, at the start.
This happens with Darklyrics only? Is it space or is it a tab?
Edit: I think i have it fixed in 0.4.5.2 beta
Hey Qudeid, I have another small bug. Sometimes when I search for lyrics using Search All, the plugin stalls when trying to find lyrics for the first song. This can take a long time, and when it finally gives up, it stalls again on the next track. When the plugin is stalled, the Abort button refuses to work until the plugin is done with the song that's stalling. After playing around with it, this seems to be a DarkLyrics issue (possibly server problems on their end). Is it possible for you to implement a timeout when searching for lyrics, and if one provider causes a timeout, exclude that provider from the next lyric queries in the queue? Thanks.
I've been playing around with the Leo's Lyrics server (I haven't received a response yet), and it may be easy to implement. It seems that the 77.79.210.222 server only responds when the "Host" header is set to "api.leoslyrics.com". So, you previously fixed Lyrics Plugin by setting the "Referer" header (before they changed it again). This should be the same, only the "Host" header needs to be changed.
The URL for Leo's Lyrics queries:
http://77.79.210.222/api_search.php?auth=LeosLyrics5&artist=<artist>&songtitle=<title>
For instance, if you try this Firefox extension (https://addons.mozilla.org/en-US/firefox/addon/967/) and set the "Host" header to "api.leoslyrics.com", all queries formatted like above work.
I know it's not the most direct way of handling it, but this really is a worthwhile database. I really hope you consider adding it.
Hey Qudeid, I have another small bug. Sometimes when I search for lyrics using Search All, the plugin stalls when trying to find lyrics for the first song. This can take a long time, and when it finally gives up, it stalls again on the next track. When the plugin is stalled, the Abort button refuses to work until the plugin is done with the song that's stalling. After playing around with it, this seems to be a DarkLyrics issue (possibly server problems on their end). Is it possible for you to implement a timeout when searching for lyrics, and if one provider causes a timeout, exclude that provider from the next lyric queries in the queue? Thanks.
That stalling is often, when the first connection is established. Also with darklyrics is has to download or look at a long site. But as far as I know, there is already a timeout. Not in the plugin but in cURL, which is used to access the websites.
I've been playing around with the Leo's Lyrics server (I haven't received a response yet), and it may be easy to implement. It seems that the 77.79.210.222 server only responds when the "Host" header is set to "api.leoslyrics.com". So, you previously fixed Lyrics Plugin by setting the "Referer" header (before they changed it again). This should be the same, only the "Host" header needs to be changed.
The URL for Leo's Lyrics queries:
http://77.79.210.222/api_search.php?auth=LeosLyrics5&artist=<artist>&songtitle=<title>
For instance, if you try this Firefox extension (https://addons.mozilla.org/en-US/firefox/addon/967/) and set the "Host" header to "api.leoslyrics.com", all queries formatted like above work.
I know it's not the most direct way of handling it, but this really is a worthwhile database. I really hope you consider adding it.
sounds interesting. If I can set the host specifically like I can with the referer, I will surely consider it. But it won't happen the next few day, as I am not at home and on the road with my laptop --> no VS2008, only VS2010... which means, I am not willing to battle with some IDE problems. So this will have to wait until mid week, or so. But thank you for your help in adding Leo's Lyrics!
Just as a sidenote.. As Stankovic suggested I asked a staff member i I can get access to the components page so it will be easier, from Foobar 1.1 and forth, to get updates
Just a tip if anyone gets a dependency failure trying to load foo_lyricsgrabber2 under wine, I had to install vcrun2008 with winetricks to get msvcp90, loaded and worked fine after that. Thanks for all the work updating this
Just a tip if anyone gets a dependency failure trying to load foo_lyricsgrabber2 under wine, I had to install vcrun2008 with winetricks to get msvcp90, loaded and worked fine after that. Thanks for all the work updating this
Thank oyu for sharing this information and contributing to this plugin!
There is a workaround for the lyricsplugin which requires hosting a php file
People at the mediamonkey forums have done it but I don't know if it is ok to use their server without permission. Quedid maybe you can ask the server owner?
http://www.mediamonkey.com/forum/viewtopic...8&start=255 (http://www.mediamonkey.com/forum/viewtopic.php?f=2&t=47918&start=255)
Where exactly do I find information on that when I follow the link you've posted?
*bump* (Nah.. just kidding )
I do have an update to announce, so no unnecessary thread bumping here...
To the topic:
From now on Lyricsgrabber 2 will be available through the official components website (additionally still on google code, especially for the source code).
Another new thing is, that from now on, there is no foo_grabber_python.dll anymore. I've merged them together in to only one dll (which is surprisingly called foo_lyricsgrabber2). This helps preventing version issues, as they now really belong together, and easier to update, as there is only one file/package to update.
I've also updated the Install.txt, which is hopefully better to understand. Feel free help improving that file in telling me
All in all only little changes... Oh.. and please make sure to remove any foo_grabber_python files! I don't want your foobar to crash unnecessarily.
About the other suggested things.. I will look into it. Especially trying to get Leo's Lyrics up and running. (Later this week, hopefully)
Quedid the link I posted leads to a download that can be opened in 7zip. That has the js file with the url SquirrelScript is hosting the php file at. The details of the php file are in the thread as well.
Quedid the link I posted leads to a download that can be opened in 7zip. That has the js file with the url SquirrelScript is hosting the php file at. The details of the php file are in the thread as well.
Ah.. okay, I just tried it in Firefox and worked fine... Quess I have to register myself there, then.
Edit: Just asked SquirrelScript if we could use his script. Thanks again, icedtea for pointing that out.
I'm waiting for it for a long time. I think it's the best lyrics-getting plugin.
I'm waiting for it for a long time. I think it's the best lyrics-getting plugin.
What do you mean? Maintaining this plugin? Or adding Lyricsplugin to the list of providers?
Hi Folks,
it's me again
I've just used Hitchhiker's information about Leo's Lyrics to include it to the list of providers.
I hope it works as it should...
The funny thing is, I've used only for Leo's Lyrics the HTTP_API of Foobar, because CURL wouldn't want to resolve the host properly... which also means, that Leo's Lyrics won't work with Proxy.. if anyone could give me any information how to use a proxy with Foobar's HTTP_API. Thanks!
Greetings,
Qudeid
Awesome news! I just tried it out and it seems to work great.
EDIT: Oh, one quick thing. Sometimes some of the providers don't have the full lyrics (problem on their end), and truncate the lyrics with "[...]" (and I believe LyricWiki provides a message saying that they're not allowed to carry the full lyrics). Is it possible to parse the downloaded lyrics for "[...]" and discard them if present (allowing the "search all" to query the next source instead)? Thanks.
Awesome news! I just tried it out and it seems to work great.
EDIT: Oh, one quick thing. Sometimes some of the providers don't have the full lyrics (problem on their end), and truncate the lyrics with "[...]" (and I believe LyricWiki provides a message saying that they're not allowed to carry the full lyrics). Is it possible to parse the downloaded lyrics for "[...]" and discard them if present (allowing the "search all" to query the next source instead)? Thanks.
Sure, I can add that. But only for "Search All"...
Qudeid can you add plyrics script? http://plyrics.com/ (http://plyrics.com/)
plyrics would be great - I hope this is possible
*bump* (Nah.. just kidding )
I do have an update to announce, so no unnecessary thread bumping here...
To the topic:
From now on Lyricsgrabber 2 will be available through the official components website (additionally still on google code, especially for the source code).
Another new thing is, that from now on, there is no foo_grabber_python.dll anymore. I've merged them together in to only one dll (which is surprisingly called foo_lyricsgrabber2). This helps preventing version issues, as they now really belong together, and easier to update, as there is only one file/package to update.
I've also updated the Install.txt, which is hopefully better to understand. Feel free help improving that file in telling me
All in all only little changes... Oh.. and please make sure to remove any foo_grabber_python files! I don't want your foobar to crash unnecessarily.
About the other suggested things.. I will look into it. Especially trying to get Leo's Lyrics up and running. (Later this week, hopefully)
I'm not sure how this new update function in foobar should work. But isn't it so that if i have foobar 1.1 and lyrics grabber 0.5 installed i just have to click on "get updates" to start the process to get lyrics grabber 0.5.5? In my case it says "No updates are available at this time."
Honestly, I don't know. I wondered the same.
I don't think the "beta" word is the problem, as in the SDK it says, that it should be fine... Really, I don't now
About plyrics... I'll look into it. But in my opinion I don't want to add too many providers. 1-2 more is fine. (I still hope I can add Lyricsplugin again)
no news about lyricsplugin.com?
no news about lyricsplugin.com?
Sorry, no, not yet.
I could use the website, SquirrelScript has provided, but I won't do without his consent. So we'll have to wait on that...
On the other hand. I see a few Crashdumps that crash when querying "Search All".. specifically (as you could see in the text file) with azlyrics... Is there anyone experiencing this? I would like to know which Song it was you were looking for, because otherwise I couldn't prevent that crash or find the cause. It would be really great!
Thank you
I did a quick maintenance release (0.5.5.1 beta), that will show me a bit more in the crash dump about the issue with azlyrics making foobar crash.
So please update
"Search all" doesn't seem to work with the latest version. I immediately get status "failed" for all selected songs.
I can confirm The Link's problem. The individual providers seem to work fine.
It doesnt work. I always get the Status "Failed"
(and I have the scripts updated in the optional settings)
Foobar200 v 1.1
Sorry guys,
I was testing something and made a mistake when reverting. It should now work, and thanks to Kode54 you can now get the update inside Foobar!
Every time I look at this page there is a new version Thanks Qudeid ^^
Every time I look at this page there is a new version Thanks Qudeid ^^
Lol...
Well, which doesn't necessarily only mean good, but at least it shows that something is being done
Btw. the new version is still uploading... (And with 9 kb Upstream, this takes a little while)
Edit: It's up And tried updating it myself in Foobar, and it did it
Thanks for the latest update.
Though, I just wanted to add something. I tried to update using foobar's new component manager, but it wiped out all of my scripts. This may be unavoidable due to the way the component installer works, but I'll be manually updating in the future.
Thanks for the latest update.
Though, I just wanted to add something. I tried to update using foobar's new component manager, but it wiped out all of my scripts. This may be unavoidable due to the way the component installer works, but I'll be manually updating in the future.
I could make it so, that you can optionally put your scripts into the profile folder. That one wouldn't be deleted when updating.
Next Release has it.
(folder structure is the same.. pygrabber\scripts\ and pygrabber\libs)
Current Version: 0.5.5.2 beta
Introduction:
foo_lyricsgrabber2 (and foo_grabber_python) is a plugin originally developed by T.P.Wang (unfortunately not maintained for a long time). It is designed to download lyrics from the web for specified songs.
What do you mean not updated in a long time? It is showing that it was updated today?
By the way how does this compare to Lyric Show Panel 2?
THANKS
I believe foo_lyricsgrabber2 was updated, not foo_lyricsgrabber.
As you can see here, the original plugin was last updated in February.
http://code.google.com/p/lyricsgrabber/downloads/list (http://code.google.com/p/lyricsgrabber/downloads/list)
Thank you for explaining Nemphael. And let me add, it wasn't this February but last year, so more than 1,5 years. Maybe the use of words is wrong.
Point is, the original plugin, created by T.P.Wang, was last updated in February 2009. Then I took over a month or so ago, and first only updated it so it is Foobar 1.0 compliant (and foremost, not context menu items in "Legacy Commands (unsorted)"). After a few changes and new features I branched, so to speak, the development. That was also because I had no access to the google code project, T.P.Wang has opened.
About your other question, DasFox... I must honestly say, that I have no idea. I have never used it. So someone else must explain differences. Sorry.
It would be nice if there could be setting for files that have been searched for.
Say if you search 50 tracks and only find lyrics for 20.
At some later point you will probably try those missing 30 again.
However, it would be nice if you could "mark" attempted files somehow.
Just add a weird text value to the lyrics field.
Then when I try to update 100 songs and 30 of those have been attempted before I would get a prompt like:
"You have 30 songs that you tried finding lyrics for at an earlier point. Do you want to include these now?"
Probably need a setting for this prompt as well. Like the "silent" option existing today.
If you really want to go further you could use a numeric value which would tell how many times you actually have tried getting lyrics for that track and weigh that into the whole shebang.
Like:
"Don't attempt to download lyrics if it has been tried 10 times or more before".
Finally I'd just like to add that these are mere suggestions.
I love the plugin as it is all ready.
</thorbeck>
Thank you Thorbeck.
As it is, at the moment, I can't spare much time to work on this plugin as I have stated earlier, my Job started, so there really isn't much time to include such time consuming features.
But thank you for the idea, I will take this in consideration, in the future.
Hi there guys,
i have installed the newest version of the lyricsgrabber 2 (0.5.5.2. beta) in my portable foobar 1.1 version (via the preferences - components - install-thingy) but i cant update any of my lyrics.
when i right click on any song and go lyricsgrabber and do "search all" "darklyrics" or whatever, nothing happens...totally nothing...no window opens, no crash...it just goes on as if i didnt do anything..
what did i do wrong?^^
Hi there guys,
i have installed the newest version of the lyricsgrabber 2 (0.5.5.2. beta) in my portable foobar 1.1 version (via the preferences - components - install-thingy) but i cant update any of my lyrics.
when i right click on any song and go lyricsgrabber and do "search all" "darklyrics" or whatever, nothing happens...totally nothing...no window opens, no crash...it just goes on as if i didnt do anything..
what did i do wrong?^^
Check if there is an empty <lyrics> tag in the song. That is the only case I can imagine when this happenes.
ah yeah..that was the problem....lyricsvip.com was in the lyrics tag^^
thx ^^
ah yeah..that was the problem....lyricsvip.com was in the lyrics tag^^
thx ^^
That was probably an old problem with Lyricsplugin.
Glad I could be of help
I just found this plugin - this is great!
However, I get a strange error occasionally. Upon completion of a search, for some files that report "success", I get "Could not update tags (Unsupported format or corrupted file)" when I try to update the tag. The file seems fine in every way and not actually corrupted. This seems to occur just on some of my FLAC files - maybe on 5% of them. I've successfully run this plugin on many mp3 and flac files, and for the flac files on which I get the error, the mp3 version of the song updates successfully.
Anyone have any idea what is happening? Thanks!
@bigglerest
i have the same "problem", but just with MP3-Files. it says "Could not update tags (Sharing violation) on:" but all files seems to work proper and the lyrics are saved, too.
Another bug i have sometimes on just a few files..maybe 1 out of 10.000 that the search stops and i cannot abort or do anything... is this a know bug? i could upload some of these files somewhere to the creepy world wibe web
I found that if you re-run the plugin again on the failed files, you can usually get it to work - try several times. I think both my and your errors are stability issues with the plugin.
This is still the best lyrics tool I've seen, but I found you shouldn't run it on too many files at once (maybe 100 or so maximum), because it does tend to crash. I hope someone continues to develop it or something like it!
rescan wont work :/
i scan file amounts larger than 5000 files i usually mark a letter in the file browser and part them in 5 packages, so the search goes 5 times faster i guess. Never experienced a crash @ large scans. Just on the few files which seems to be broken...and a stream-rebuild wont work
thanks for this plugin. using the latest version, and have an issue:
preferences-quiet mode
it looks like this preference isn't saved after a restart. have to recheck it each time. can anyone confirm?
1 i do get crashes on large scans
2 when lookup fails, console stops updating
1 i do get crashes on large scans
2 when lookup fails, console stops updating
i have the same issue
Thanks for updating this great plugin!
Slightly unrelated question.....what are people using to view their lyrics?
uie_lyrics2 is still labelled as crashware, and other solutions (e.g. item details on columnsUI) don't scroll automatically.
Any other plugins i should try out?
Thanks for updating this great plugin!
Slightly unrelated question.....what are people using to view their lyrics?
uie_lyrics2 is still labelled as crashware, and other solutions (e.g. item details on columnsUI) don't scroll automatically.
Any other plugins i should try out?
foo_textdisplay
http://www.hydrogenaudio.org/forums/index....showtopic=64478 (http://www.hydrogenaudio.org/forums/index.php?showtopic=64478)
foo_textdisplay
http://www.hydrogenaudio.org/forums/index....showtopic=64478 (http://www.hydrogenaudio.org/forums/index.php?showtopic=64478)
I'm using Columns UI, so textdisplay doesn't work with that.
I guess foo_uie_lyrics2 is the only real option for scrolling lyrics
Hello!
I have a new album in cue+flac and I cant create lyrics tag for songs in it.
Lyrics grabber also can't.
Is it impossible by design of cue files or is this a bug?
P.S. I can change tags that are present already, but cant add new.
Thank you!
Hello!
I have a new album in cue+flac and I cant create lyrics tag for songs in it.
Lyrics grabber also can't.
Is it impossible by design of cue files or is this a bug?
P.S. I can change tags that are present already, but cant add new.
Thank you!
i think you need to use the masstagger component to create new fields
Darklyrics isn't working, haven't worked in a while. Any lyrics search returns as 'Failed'.
Darklyrics isn't working, haven't worked in a while. Any lyrics search returns as 'Failed'.
me too,plz tell my why??and biograp too,not search ...
I have the same problem as bigglerest:
However, I get a strange error occasionally. Upon completion of a search, for some files that report "success", I get "Could not update tags (Unsupported format or corrupted file)" when I try to update the tag. The file seems fine in every way and not actually corrupted. This seems to occur just on some of my FLAC files - maybe on 5% of them. I've successfully run this plugin on many mp3 and flac files, and for the flac files on which I get the error, the mp3 version of the song updates successfully.
However, for my it occurs with MP3s as well and the files are otherwise normal, playable and the tags are editable (id3v2.3 for iTunes compatability).
Any ideas what could wrong with these files?
I get crashes if I try to tell it to fetch lyrics for most/all of my collection.
From the recent events, it gets to about "Fl", then reaches a timeout and goes "kersplat". I get some interesting character spam though, and some "Unable to reach host" errors - possibly a bug with my MP3 files, checking now...
I use some old scripts from Lyricsgrabber 1 and they work well. But I can't use any scripts from the lastest one. The default datebases can't work,too.
this is one script from the old one which can work well:
# -*- coding: utf-8 -*-
import encodings.utf_8
import math
import urllib, urllib2
import random
import unicodedata
from xml.dom import minidom
from LevenshteinDistance import LevenshteinDistance
from grabber import LyricProviderBase
class TTPlayerCNC(LyricProviderBase):
def GetName(self):
return "千千静听(LRC)"
def GetDescription(self):
return "从千千静听服务器下载歌词(LRC)"
def GetURL(self):
return "http://www.ttplayer.com"
def GetVersion(self):
return "0.3"
def Query(self, handles, status, abort):
result = []
for handle in handles:
status.Advance()
if abort.Aborting():
return result
try:
artist = handle.Format("[%artist%]")
title = handle.Format("[%title%]")
s = urllib.urlopen("http://lrccnc.ttplayer.com/dll/lyricsvr.dll?sh?Artist=%s&Title=%s&Flags=0" % (self.ToQianQianHexString(artist), self.ToQianQianHexString(title))).read()
doc = minidom.parseString(s)
m = 0xFFFFFFFFFFFFFFFF
best = None
for e in doc.getElementsByTagName("lrc"):
i = LevenshteinDistance(artist, e.getAttribute("artist")) + LevenshteinDistance(title, e.getAttribute("title"))
if m > i:
m = i
best = e.getAttribute("id"), e.getAttribute("artist"), e.getAttribute("title")
if best == None:
result.append('')
continue
Id, artist, title = best
code = self.CreateQianQianCode(Id, artist, title)
txheaders = {'User-agent' : 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)'}
req = urllib2.Request("http://lrccnc.ttplayer.com/dll/lyricsvr.dll?dl?Id=%s&Code=%s&uid=01&mac=%012x" % (Id, code, random.randint(0,0xFFFFFFFFFFFF)), None, txheaders)
lyric = urllib2.urlopen(req).read()
if lyric.find("Search ID or Code error!") >= 0:
result.append('')
continue
else:
result.append(lyric)
except Exception, e:
traceback.print_exc(file=sys.stdout)
result.append('')
continue
return result
def RemoveAccents(self, str):
nfkd_string = unicodedata.normalize('NFKD', unicode(str))
return u"".join([c for c in nfkd_string if not unicodedata.combining©])
def ToHexStringUnicode(self, string):
s = self.RemoveAccents(string)
s = s.lower()
print s.encode('utf_8')
for c in " ,./<>?`~!@#$%^&*()-_=+\\|[]{};':\"":
s = s.replace(c, '')
tmp = ''
for c in s:
dec = ord©
tmp += "%02X" % (dec & 0xff)
tmp += "%02X" % (dec >> 8)
return tmp
def ToHexString(self, string):
#s = string.lower()
#s = s.replace(' ', '')
#s = s.replace("'", '')
tmp = ''
for c in string:
tmp += "%02X" % ord©
return tmp
def ToQianQianHexString(self, string, RequireConvertToUnicode = True):
if RequireConvertToUnicode:
return self.ToHexStringUnicode(unicode(string, 'utf_8'))
else:
return self.ToHexString(string.encode('utf_8'))
def Conv(self, i):
r = 0
r = i % 4294967296
if (i >= 0 and r > 2147483648):
r -= 4294967296
elif (i < 0 and r < 2147483648):
r += 4294967296
return r
def CreateQianQianCode(self, lrcId, artist, title):
lrcId = int(lrcId)
ttstr = self.ToQianQianHexString(artist + title, False)
length = len(ttstr) >> 1
song = []
for i in xrange(length):
song.append(int(ttstr[i*2:i*2+2], 16))
t1 = 0
t2 = 0
t3 = 0
t1 = (lrcId & 0x0000FF00) >> 8
if (lrcId & 0x00FF0000) == 0:
t3 = 0x000000FF & ~t1
else:
t3 = 0x000000FF & ((lrcId & 0x00FF0000) >> 16)
t3 |= (0x000000FF & lrcId) << 8
t3 <<= 8
t3 |= 0x000000FF & t1
t3 <<= 8
if (lrcId & 0xFF000000) == 0:
t3 |= 0x000000FF & (~lrcId)
else:
t3 |= 0x000000FF & (lrcId >> 24)
j = length - 1
while j >= 0:
c = song[j]
if c >= 0x80:
c -= 0x100
t1 = (c + t2) & 0xFFFFFFFF
t2 = (t2 << (j % 2 + 4)) & 0xFFFFFFFF
t2 = (t1 + t2) & 0xFFFFFFFF
j -= 1
j = 0
t1 = 0
while j <= length - 1:
c = song[j]
if c >= 0x80:
c -= 0x100
t4 = (c + t1) & 0xFFFFFFFF
t1 = (t1 << (j % 2 + 3)) & 0xFFFFFFFF
t1 = (t1 + t4) & 0xFFFFFFFF
j += 1
t5 = 0
t5 = self.Conv(t2 ^ t3)
t5 = self.Conv(t5 + (t1 | lrcId))
t5 = self.Conv(t5 * (t1 | t3))
t5 = self.Conv(t5 * (t2 ^ lrcId))
if (t5 > 2147483648):
t5 -= 4294967296
return str(t5 & 0xFFFFFFFF)
if __name__ == "__main__":
LyricProviderInstance = TTPlayerCNC()
Hi,
nice plugin, but i get crashes on lage scans too.
And foobar 1.1.2 reproducible crashes when using Lyricsgrabber2 on a track with no title-tag.
Tested on my normal installation and an freshly installed portable one on another computer, just standard components and Lyricsgrabber2.
I used 2 copys of a mp3-file.
First correctly taged: Lyrics found and written.
Second without %title% -> crash [1]
Crashreport:
Illegal operation:
Code: C0000005h, flags: 00000000h, address: 5ABFAD00h
Access violation, operation: read, address: 00000000h
Call path:
threaded_process thread=>lyric_lookup_task::run=>lookup=>provider_searchall::lookup=>provider_lyrdb::lookup_one
Code bytes (5ABFAD00h):
5ABFACC0h: 5A B8 78 DA C9 5A C3 CC CC CC CC CC CC CC CC CC
5ABFACD0h: B8 01 00 00 00 C3 CC CC CC CC CC CC CC CC CC CC
5ABFACE0h: 8B 09 85 C9 74 06 8B 01 8B 10 FF E2 C3 CC CC CC
5ABFACF0h: 55 8B 6C 24 0C 56 8B C5 57 8D 50 01 8D 64 24 00
5ABFAD00h: 8A 08 40 84 C9 75 F9 8B 7C 24 10 2B C2 8B F0 53
5ABFAD10h: 83 C7 04 8D 5E 01 8B C7 E8 93 E0 00 00 8B 07 5B
5ABFAD20h: 85 F6 76 17 8B CD 2B C8 8B EE 8D 9B 00 00 00 00
5ABFAD30h: 8A 14 01 88 10 40 83 ED 01 75 F5 8B 44 24 10 8B
Stack (044FF448h):
044FF428h: 807C2120 00000000 FFFFFD34 000002E4
044FF438h: FFFFFD34 000002CC 00000018 00000000
044FF448h: FFFFFFFF 00000000 044FF6E8 5ABF66E6
044FF458h: 044FF5E0 00000000 A91E77E8 02439428
044FF468h: 00000000 00000003 00000000 00000000
044FF478h: 00000000 00000003 5AC8CFB4 5AC8CDA0
044FF488h: 00000000 00000000 00000000 00000000
044FF498h: 5AC8CDA0 00000000 00000000 00000000
044FF4A8h: 00000000 5AC8CDA0 00000000 00000000
044FF4B8h: 00000000 00000000 5AC8CDA0 00000000
044FF4C8h: 00000000 00000000 00000000 5AC8CDA0
044FF4D8h: 00000000 00000000 00000000 00000000
044FF4E8h: 5AC8CDA0 00000000 00000000 00000000
044FF4F8h: 00000000 5AC8CFB4 00000000 00000000
044FF508h: 00000000 00000000 00000000 00000000
044FF518h: 00000000 00000000 00000000 00000000
044FF528h: 00000000 00000000 00000000 00000000
044FF538h: 00000000 00000000 00000000 00000000
044FF548h: 00000000 00000000 00000000 00000000
044FF558h: 00000000 00000000 00000000 00000000
Registers:
EAX: 00000000, EBX: 00000000, ECX: 044FF5E0, EDX: 00000001
ESI: 00000000, EDI: FFFFFFFF, EBP: 00000000, ESP: 044FF448
Crash location:
Module: foo_lyricsgrabber2
Offset: AD00h
Loaded modules:
foobar2000 loaded at 00240000h - 00430000h
ntdll loaded at 77050000h - 7718C000h
kernel32 loaded at 76CE0000h - 76DB4000h
KERNELBASE loaded at 75250000h - 7529A000h
COMCTL32 loaded at 740F0000h - 7428E000h
msvcrt loaded at 76930000h - 769DC000h
GDI32 loaded at 76520000h - 7656E000h
USER32 loaded at 756C0000h - 75789000h
LPK loaded at 77190000h - 7719A000h
USP10 loaded at 76670000h - 7670D000h
SHLWAPI loaded at 754B0000h - 75507000h
DSOUND loaded at 5ADD0000h - 5AE42000h
ADVAPI32 loaded at 76C40000h - 76CE0000h
sechost loaded at 76910000h - 76929000h
RPCRT4 loaded at 76470000h - 76511000h
ole32 loaded at 76EF0000h - 7704C000h
WINMM loaded at 712A0000h - 712D2000h
POWRPROF loaded at 746F0000h - 74715000h
SETUPAPI loaded at 75510000h - 756AD000h
CFGMGR32 loaded at 75350000h - 75377000h
OLEAUT32 loaded at 769E0000h - 76A6F000h
DEVOBJ loaded at 75330000h - 75342000h
UxTheme loaded at 73F70000h - 73FB0000h
SHELL32 loaded at 75790000h - 763D9000h
zlib1 loaded at 5A4C0000h - 5A4D4000h
shared loaded at 5F9F0000h - 5FA1B000h
imagehlp loaded at 77250000h - 7727A000h
dbghelp loaded at 6B710000h - 6B7FB000h
COMDLG32 loaded at 763E0000h - 7645B000h
Secur32 loaded at 75090000h - 75098000h
SSPICLI loaded at 750B0000h - 750CA000h
CRYPT32 loaded at 75380000h - 7549C000h
MSASN1 loaded at 75210000h - 7521C000h
gdiplus loaded at 73DE0000h - 73F70000h
IMM32 loaded at 771A0000h - 771BF000h
MSCTF loaded at 76E20000h - 76EEC000h
TfWah loaded at 10000000h - 10074000h
WS2_32 loaded at 76C00000h - 76C35000h
NSI loaded at 756B0000h - 756B6000h
CRYPTBASE loaded at 75120000h - 7512C000h
CLBCatQ loaded at 771C0000h - 77243000h
MMDevApi loaded at 73C60000h - 73C99000h
PROPSYS loaded at 73FB0000h - 740A5000h
dwmapi loaded at 73C40000h - 73C53000h
foo_ui_std loaded at 5ACB0000h - 5ADC8000h
MSIMG32 loaded at 73700000h - 73705000h
foo_lyricsgrabber2 loaded at 5ABF0000h - 5ACAC000h
WLDAP32 loaded at 76A70000h - 76AB5000h
python25 loaded at 1E000000h - 1E208000h
MSVCR71 loaded at 7C340000h - 7C396000h
foo_input_std loaded at 5AA90000h - 5ABE5000h
foo_albumlist loaded at 5F990000h - 5F9ED000h
AUDIOSES loaded at 6D740000h - 6D776000h
_socket loaded at 02AE0000h - 02AED000h
CRYPTSP loaded at 74C20000h - 74C36000h
rsaenh loaded at 749B0000h - 749EB000h
RpcRtRemote loaded at 75190000h - 7519E000h
explorerframe loaded at 6FFE0000h - 7014F000h
DUser loaded at 73CF0000h - 73D1F000h
DUI70 loaded at 73D20000h - 73DD2000h
mswsock loaded at 74BE0000h - 74C1C000h
wshtcpip loaded at 74730000h - 74735000h
Stack dump analysis:
Address: 5ABF66E6h (foo_lyricsgrabber2+66E6h)
Address: 5AC8CFB4h (foo_lyricsgrabber2+9CFB4h), symbol: "curl_formget" (+45284h)
Address: 5AC8CDA0h (foo_lyricsgrabber2+9CDA0h), symbol: "curl_formget" (+45070h)
Address: 5AC8CDA0h (foo_lyricsgrabber2+9CDA0h), symbol: "curl_formget" (+45070h)
Address: 5AC8CDA0h (foo_lyricsgrabber2+9CDA0h), symbol: "curl_formget" (+45070h)
Address: 5AC8CDA0h (foo_lyricsgrabber2+9CDA0h), symbol: "curl_formget" (+45070h)
Address: 5AC8CDA0h (foo_lyricsgrabber2+9CDA0h), symbol: "curl_formget" (+45070h)
Address: 5AC8CDA0h (foo_lyricsgrabber2+9CDA0h), symbol: "curl_formget" (+45070h)
Address: 5AC8CFB4h (foo_lyricsgrabber2+9CFB4h), symbol: "curl_formget" (+45284h)
Address: 5AC8D020h (foo_lyricsgrabber2+9D020h), symbol: "curl_formget" (+452F0h)
Address: 5AC8CD00h (foo_lyricsgrabber2+9CD00h), symbol: "curl_formget" (+44FD0h)
Address: 5AC8CD00h (foo_lyricsgrabber2+9CD00h), symbol: "curl_formget" (+44FD0h)
Address: 5AC8CD00h (foo_lyricsgrabber2+9CD00h), symbol: "curl_formget" (+44FD0h)
Address: 5AC8CD00h (foo_lyricsgrabber2+9CD00h), symbol: "curl_formget" (+44FD0h)
Address: 5AC8CD00h (foo_lyricsgrabber2+9CD00h), symbol: "curl_formget" (+44FD0h)
Address: 5AC8CD00h (foo_lyricsgrabber2+9CD00h), symbol: "curl_formget" (+44FD0h)
Address: 5AC8CFB4h (foo_lyricsgrabber2+9CFB4h), symbol: "curl_formget" (+45284h)
Address: 5AC8CD00h (foo_lyricsgrabber2+9CD00h), symbol: "curl_formget" (+44FD0h)
Address: 5AC8CD00h (foo_lyricsgrabber2+9CD00h), symbol: "curl_formget" (+44FD0h)
Address: 003E5B40h (foobar2000+1A5B40h)
Address: 5AC8D020h (foo_lyricsgrabber2+9D020h), symbol: "curl_formget" (+452F0h)
Address: 5AC8CFB4h (foo_lyricsgrabber2+9CFB4h), symbol: "curl_formget" (+45284h)
Address: 5AC8D020h (foo_lyricsgrabber2+9D020h), symbol: "curl_formget" (+452F0h)
Address: 003E5B40h (foobar2000+1A5B40h)
Address: 5AC8CD00h (foo_lyricsgrabber2+9CD00h), symbol: "curl_formget" (+44FD0h)
Address: 5AC8CFB4h (foo_lyricsgrabber2+9CFB4h), symbol: "curl_formget" (+45284h)
Address: 5AC8044Ah (foo_lyricsgrabber2+9044Ah), symbol: "curl_formget" (+3871Ah)
Address: 5AC8E678h (foo_lyricsgrabber2+9E678h), symbol: "curl_formget" (+46948h)
Address: 770A22AEh (ntdll+522AEh), symbol: "RtlAllocateHeap" (+211h)
Address: 770A2149h (ntdll+52149h), symbol: "RtlAllocateHeap" (+ACh)
Address: 770A209Dh (ntdll+5209Dh), symbol: "RtlAllocateHeap" (+0h)
Address: 0024E6D5h (foobar2000+E6D5h)
Address: 00378B3Dh (foobar2000+138B3Dh)
Address: 00272E00h (foobar2000+32E00h)
Address: 770A1FAFh (ntdll+51FAFh), symbol: "RtlFreeHeap" (+7Eh)
Address: 76D2F1CCh (kernel32+4F1CCh), symbol: "HeapFree" (+14h)
Address: 5AC5D3DAh (foo_lyricsgrabber2+6D3DAh), symbol: "curl_formget" (+156AAh)
Address: 5AC5D3F9h (foo_lyricsgrabber2+6D3F9h), symbol: "curl_formget" (+156C9h)
Address: 5ABF1C26h (foo_lyricsgrabber2+1C26h)
Address: 5F9F2826h (shared+2826h), symbol: "uCallStackTracker::~uCallStackTracker" (+0h)
Address: 5AC8D020h (foo_lyricsgrabber2+9D020h), symbol: "curl_formget" (+452F0h)
Address: 5AC8D020h (foo_lyricsgrabber2+9D020h), symbol: "curl_formget" (+452F0h)
Address: 5AC8CD00h (foo_lyricsgrabber2+9CD00h), symbol: "curl_formget" (+44FD0h)
Address: 5AC7FB41h (foo_lyricsgrabber2+8FB41h), symbol: "curl_formget" (+37E11h)
Address: 5AC9D854h (foo_lyricsgrabber2+AD854h), symbol: "curl_formget" (+55B24h)
Address: 5AC8D020h (foo_lyricsgrabber2+9D020h), symbol: "curl_formget" (+452F0h)
Address: 5AC8D11Ch (foo_lyricsgrabber2+9D11Ch), symbol: "curl_formget" (+453ECh)
Address: 5AC8D020h (foo_lyricsgrabber2+9D020h), symbol: "curl_formget" (+452F0h)
Address: 5AC8DF60h (foo_lyricsgrabber2+9DF60h), symbol: "curl_formget" (+46230h)
Address: 5F9F27EDh (shared+27EDh), symbol: "uCallStackTracker::uCallStackTracker" (+0h)
Address: 5AC14F4Bh (foo_lyricsgrabber2+24F4Bh), symbol: "initgrabber" (+4CBBh)
Address: 5AC7DF12h (foo_lyricsgrabber2+8DF12h), symbol: "curl_formget" (+361E2h)
Address: 0031CB56h (foobar2000+DCB56h)
Address: 5F9F27D8h (shared+27D8h), symbol: "uPrintCrashInfo_OnEvent" (+B1h)
Address: 003B9C78h (foobar2000+179C78h)
Address: 0038D4E8h (foobar2000+14D4E8h)
Address: 0031CAE7h (foobar2000+DCAE7h)
Address: 0038A3F9h (foobar2000+14A3F9h)
Address: 76D31194h (kernel32+51194h), symbol: "BaseThreadInitThunk" (+12h)
Address: 770AB3F5h (ntdll+5B3F5h), symbol: "RtlInitializeExceptionChain" (+63h)
Address: 73F569E5h (gdiplus+1769E5h), symbol: "GdipCreateSolidFill" (+12F994h)
Address: 76D42B55h (kernel32+62B55h), symbol: "UnhandledExceptionFilter" (+0h)
Address: 76D42B55h (kernel32+62B55h), symbol: "UnhandledExceptionFilter" (+0h)
Address: 7706D74Dh (ntdll+1D74Dh), symbol: "RtlAddMandatoryAce" (+5B1h)
Address: 770AB3C8h (ntdll+5B3C8h), symbol: "RtlInitializeExceptionChain" (+36h)
Address: 0031CAB0h (foobar2000+DCAB0h)
Address: 0031CAB0h (foobar2000+DCAB0h)
Environment:
App: foobar2000 v1.1.2
OS: Windows 6.1.7600 x86
CPU: AMD Athlon(tm) 64 X2 Dual Core Processor 4200+, features: 3DNow!ex MMX SSE SSE2 SSE3
Audio: Lautsprecher (Realtek AC'97 Audio); Realtek Digital Output (Realtek AC'97 Audio)
UI: Default User Interface 0.9.5
Components:
Core (2011-01-22 00:03:02 UTC)
foobar2000 core 1.1.2
foo_albumlist.dll (2011-01-22 00:01:28 UTC)
Album List 4.5
foo_input_std.dll (2011-01-22 00:00:58 UTC)
Standard Input Array 1.0
foo_lyricsgrabber2.dll (2011-01-30 16:56:41 UTC)
Lyrics Grabber 2 0.5.5.2 beta
foo_ui_std.dll (2011-01-22 00:00:58 UTC)
Default User Interface 0.9.5
Recent events:
Album List refreshed in: 0:00.000453
Startup time : 0:00.186510
Properties dialog refresh: 0:00.000074
Properties dialog display refresh: 0:00.002266
Properties dialog refresh: 0:00.001393
Properties dialog display refresh: 0:00.009907
Bye, Grymie
hi. appreciate the work on this plugin!
just one discrepancy i'd like to report. while fetching lyrics from lyricdb, it adds extra space after every line, and if there's already a space present, it results in a double space. this doesn't happen when i use lyricwiki for example, however, a lot of lyrics there tend to be unavailable, so you would only get "we are not licensed to display blablahblah", therefore i need to use lyricdb.
also, a heads up information for other users, you might want to check your files, especially if you mass tag files with lyricwiki, if you do a search through your lyrics for "licensed to dispay full lyrics" you'll find a lot of files with only a small part of lyrics, or even none.
So how do you guys display your lyrics in foobar?
I tried the "Item Details" panel, but it formats the lyrics with really large line spacing.
Is there any way to make it search automatically without navigating the menu? Like, just automatically checking if the <LYRICS> field is present, and if not query the databases in the background?
Am I doing something wrong? I can't seem to search for chinese songs' lyrics. Please Help. Thanks in advanced.
strange,
every time i restarted or starting again foobar2k i lose "quiet mode" setting for lyricsgrabber2
i have darkone v.3 skin but it's same with default standard UI
any solution?
tnx in advance
thanks for this plugin. using the latest version, and have an issue:
preferences-quiet mode
it looks like this preference isn't saved after a restart. have to recheck it each time. can anyone confirm?
same with me
please, mail or replay if you find a soultion
Hi.
Could you please add another source: http://www.shiron.net/ (http://www.shiron.net/)
(Hebrew)
As far as I can see the search string is http://www.shiron.net/searchSongs?q=%s&type=lyrics (http://www.shiron.net/searchSongs?q=%s&type=lyrics) (%s is the search string, naturally).
Thanks.
What is the rationale behind having LYRICS as the default lyric field ID3 tag?
All the default lyrics providers return UNSYNCED LYRICS as specified by the Foobar and ID3 standards.
http://wiki.hydrogenaudio.org/index.php?ti...ID3_Tag_Mapping (http://wiki.hydrogenaudio.org/index.php?title=Foobar2000:ID3_Tag_Mapping)
http://www.id3.org/id3v2.3.0 (http://www.id3.org/id3v2.3.0)
Wouldn't it make more sense to have UNSYNCED LYRICS as the default tag?
One small different suggestion.
The "Skip tracks which contain lyric field already" is wonderful when bulk loading lyrics. Occasionally I want to re-search for lyrics for one particular track. Currently I would have to delete the lyrics tag to try again. How about, if you call lyricsgrabber with just one track, the "Skip tracks..." checkbox is ignored? This would still seem a sensible intuitive interface.
is it possible to add a custom provider? very few of my foreign songs are getting results on the current providers
edit: and while im here I thought I'd ask.....I have songs that have no lyric metatag but still contain lyrics. How is this possible? Where are the lyrics stored for these songs? (lyrics came WITH the song when I dled them)
Great plugin, appreciated.
However LyricWiki lyrics with Gracenote fails. Like this one (http://lyrics.wikia.com/Gracenote:Corroded:Leave_Me_Alone)
Possibly because of the "Gracenote:%artist%:%song%" url?
With the lastest version of Foobar and components, this now only writes lyrics to a blank tag for me (it used to write to my specified tags just fine). Reinstalls of all did nothing to address the issue.
Anyone else expereince this, and if so, did you find a fix or workaround? thanks
So how do you guys display your lyrics in foobar?
I tried the "Item Details" panel, but it formats the lyrics with really large line spacing.
Sometimes there does seem to be double spacing, probably from the source. I find the spacing disappears when I copy the lyrics into a word processor and then copy back.
Item details is the easiest, but you can apparently modify biography panel to display lyrics.
Item details is the easiest, but you can apparently modify biography panel to display lyrics.
I recommend Br3tt's lyrics script (http://pastebin.com/eVfJ2Ss8). Just copy/paste or import it into a wsh panel mod window (untick safe mode from wsh panel preferences).
Darklyrics isn't working, haven't worked in a while. Any lyrics search returns as 'Failed'.
I wonder if they are ever gonna fix that
I don't know how to use it, I installed it, how do I put it in my layout?
I don't know how to use it, I installed it, how do I put it in my layout?
See Post #1:
Instructions:
Right-Click a song and choose in the menu "Lyrics Grabber" the provider to download the lyrics from.
Layout (DUI) with foo_textdisplay (=static, no scrolling) and %lyrics%
I see now, but it do not download synced lyrics...
Every query I've attempted has given me the "failed" status. Any ideas on what I may have done wrong?
Is there any alternative plug-in for fetching lyrics ? just need a similar plugin, simple one, which just fetches the lyrics and saves them to id3-tags, but this keeps crashing foobar all the time.
You might find useful this recent thread on the same question: Reliable/stable lyrics plugin (http://www.hydrogenaudio.org/forums/index.php?showtopic=88773), and there may be others discoverable via a search.
Hi, I always get a "Failed" message on the Dark Lyrics search, but when checking the website manually all the lyrics I've searched for are there.
I also tried an older version of the Dark Lyrics Script from this site: lyricsgrabber google code page (http://code.google.com/p/lyricsgrabber/source/browse/trunk/foo_grabber_python/dist/grabber_python/DarkLyrics.py?r=42) but on some (/most) tracks I also get the "Failed" message.
Is there any newer version of this script or will there be some bugfixes in Lyricsgrabber 2 ?
Besides, many lyrics can not be found because of some reasons, e.g.:
- track is listed under different name on the site
- ID3 has typos
I think this should be considered in future releases
Is there any newer version of this script or will there be some bugfixes in Lyricsgrabber 2 ?
As Qudeid started with his work on this mod of lyricsgrabber he also had announced that he won't have time when his first job starts. So the answer is "no" as long as nobody picks up the available source. I like this component and its easy-to-use concept so it would be a shame if that component dies.
Thanks Stankovic for clarifying that in my name,
and my sincere apologies for all who like this plugin. I still use it myself and am also annoyed if something isn't working right.
The problem is, besides the time issue, that I can't get the sources to compile, as I didn't make any notes on what dependencies I need or how they are to be compiled. And trust me, this is also really annoying for me.
As I am mainly a C# developer and until I find the time to look into foobar plugin development again, if ever possible, I am currently considering a standalone application, where you can drag/drop your music (even folders) and search for lyrics like this. This is a lot easier for me to develop and a whole lot less time consuming so I am able to do this in my free time. (I'm currently looking into the specifications of Tags, like ID3/FLAC/APE so I can add Lyrics to them.)
I'm also considering some kind of API to give the ability to develop "plug-ins" (rather additions) to the application so that other lyrics websites can be easily scanned for lyrics.
But, as already mentioned, it is a project I do on my own free time so no promises made as I am currently a full employee. Also I am aware that this isn't as easy to use like the context menu in foobar.. BUT, maybe I add a command line usage possibility so that someone who has more experience in C++ and Foobar Plugin development can just send the files over to my application.
Yet again, I am really sorry I couldn't fix those bugs and wasn't able to respond for most of the passed time.
Greetings,
Qudeid
PS: if someone should consider fixing those bugs etc. Please contact me here or via PN. I will gladly add you to the google code project!
the usage is simple, when putting a button to the button-bar as I did. Mark tracks or album(s), klick button. If you want use "silent mode".
I first installed "lyrics grabber" plus "lyrics grabber2" it kept crashing. I removed both installed only "lyrics grabber2" just today and it seems to work (knock on wood...)
works well for me, but is it possible to get synced lyrics?
No, not with lyricsgrabber2 - you would need to use foo_uie_lyrics3. If you particularly wanted the batch facility lyricsgrabber2 offered then I afraid that's not currently available as such in foo_uie_lyrics3 but there are workarounds with foo_uie_lyrics3. See:
http://www.hydrogenaudio.org/forums/index....st&p=783626 (http://www.hydrogenaudio.org/forums/index.php?s=&showtopic=90338&view=findpost&p=783626)
For reference, timestamped lyrics in lyrics3 plugin are:
Timestamped1 = Cicyzone
Timestamped2 = TTPlayer
Timestamped3 = MiniLyrics
Resource 1 doesn't seem to work here, while resource 2 is available in Lyrics grabber as last entry in 'scripts' context menu.
Now resource 3, or MiniLyrics, with no comments by vern, uses exotic feature of HTTP 1.1 server that's not implemented in Python HTTP library and is not doable w/o additional module.
No, not with lyricsgrabber2 - you would need to use foo_uie_lyrics3. If you particularly wanted the batch facility lyricsgrabber2 offered then I afraid that's not currently available as such in foo_uie_lyrics3 but there are workarounds with foo_uie_lyrics3. See:
http://www.hydrogenaudio.org/forums/index....st&p=783626 (http://www.hydrogenaudio.org/forums/index.php?s=&showtopic=90338&view=findpost&p=783626)
Thank's script works great.That's what I wanted...
Only one problem, you have to wait some seconds if you don't find lyrics, (10 sec to me).
It would be good if there is a possibility to write something like this :
if( fb.TitleFormat(''%search_progress%).Eval() ''then wait until End''.
Else
if( fb.TitleFormat( "%lyric_exists%" ).Eval() )
fb.Next();
I don't know how to write this...
I had a quick look. As far as I can tell, %search_progress% and %search_state% are not globally provided by lyrics3 and are only available within lyrics3, so unfortunately I do not believe you can do what you suggest - but it was a nice idea.
Thanks i did all the songs now, i had some 7000 without lyrics. and this also work ok...
I realize that this is an old thread and a somewhat dead component but I want to ask anyway.
About a year ago maybe (?) I started to get the following added to all lyrics that I downloaded from LyricWiki using Lyricgrabber2:
');var c=function(){cf.showAsyncAd(opts)};if(window.cf)c();else{cf_async=!0;var r=document.createElement("script"),s=document.getElementsByTagName("script")[0];r.async=!0;r.src="//srv.tonefuse.com/showads/showad.js";r.readyState?r.onreadystatechange=function(){if("loaded"==r.readyState||"complete"==r.readyState)r.onreadystatechange=null,c()}:r.onload=c;s.parentNode.insertBefore(r,s)};}})();
I would guess that something about the LyricWiki site changed enough to make some puncuation of the LyricWiki script that the grabber used to be wrong. Since then, whenever I download lyrics from there I have to manually remove the above manually. I know, tough cookies.
I tried to figure out where the script was to see if I could modify it myself. I failed.
Anyone run into this?
It seems like pity that no one cares to link this plugin against Python 2.7 (VS2008) as there won't be any 2.8.x or even better today to 3.4 (VS2010) because it's not just the lyrics, but anyone can automate filling of arbitrary tags. Although it still seems to work fine here as it is.
@onanboy, I can't help you, but your provider is built-in in component itself (I assume using it's API that is now changed). But you can make yourself lyricswiki scrapper with basic Python knowledge.
@onanboy, did you manage to solve this problem?
I am currently trying to look over the code and see if I can fix it. I am no Python expert (can't even call myself a programmer) but I'll give it a try.
PS: Din you manage somehow to sort the affected files. Because of the abundance of special characters in extra bad string, I didn't manage to evidentiate in the playlist the affected files.
I realize that this is an old thread and a somewhat dead component but I want to ask anyway.
About a year ago maybe (?) I started to get the following added to all lyrics that I downloaded from LyricWiki using Lyricgrabber2:
[...]
I would guess that something about the LyricWiki site changed enough to make some puncuation of the LyricWiki script that the grabber used to be wrong. Since then, whenever I download lyrics from there I have to manually remove the above manually. I know, tough cookies.
I tried to figure out where the script was to see if I could modify it myself. I failed.
Anyone run into this?
Yeah, LyricWiki changed something on their site a while ago, and the built-in scraper doesn't work anymore. The great thing about this component is that it's compatible with external "scripts" so that it's easy to make/edit your own when sites change their code. Here's a replacement LyricWiki script that works for me:
# -*- coding: utf-8 -*-
import encodings.utf_8
import urllib
from xml.dom import minidom
from LevenshteinDistance import LevenshteinDistance
from unescape import unescape
from grabber import LyricProviderBase
class LyricWiki(LyricProviderBase):
def GetName(self):
return "LyricWiki"
def GetVersion(self):
return "1.0"
def GetURL(self):
return "[url=http://lyrics.wikia.com/]http://lyrics.wikia.com/[/url]"
def Query(self, handles, status, abort):
result = []
for handle in handles:
status.Advance()
if abort.Aborting():
return result
artist = handle.Format("[%artist%]")
song = handle.Format("[%title%]")
try:
string = urllib.urlopen("[url=http://lyrics.wikia.com/api.php?artist=%s&song=%s&fmt=xml]http://lyrics.wikia.com/api.php?artist=%s&...=%s&fmt=xml[/url]" % (urllib.quote(artist), urllib.quote(song))).read()
doc = minidom.parseString(string)
child = doc.getElementsByTagName("LyricsResult")[0]
url = child.getElementsByTagName("url")[0]
url = url.childNodes[0].data.encode('utf_8')
found_artist = child.getElementsByTagName("artist")[0]
found_song = child.getElementsByTagName("song")[0]
found_artist = found_artist.childNodes[0].data.encode('utf_8')
found_song = found_song.childNodes[0].data.encode('utf_8')
artist = artist.lower()
song = song.lower()
found_artist = found_artist.lower()
found_song = found_song.lower()
if (LevenshteinDistance(artist, found_artist) < 5) and (LevenshteinDistance(song, found_song) < 7):
string2 = urllib.urlopen(url).read()
start = string2.find("<div class=\'lyricbox") + 22
start = string2.find("</script>",start) + 9
end = string2.find("<!--", start)
lyric = string2[start:end].replace("
","\r\n").replace("<i>","").replace("</i>","")
lyric = unescape(lyric).encode('utf8')
if (lyric.find("<script>") == -1 and lyric.find("</noscript>") == -1 and lyric.find("Unfortunately, we are not licensed to display the full lyrics for this song at the moment") == -1):
result.append(lyric)
else: result.append('')
else: result.append('')
except:
traceback.print_exc(file=sys.stdout)
result.append('')
continue
return result
if __name__ == "__main__":
LyricProviderInstance = LyricWiki()
You should just be able to save those contents into a *.py file and place it in your pygrabber\scripts directory. You'll now have to access LyricWiki using the "scripts" submenu.
---
While typing up this response, I just noticed that copying and pasting from a codebox on this forum doesn't seem to retain the indentations, which will break the script. I've uploaded the script code here:
http://codeviewer.org/view/code:5143 (http://codeviewer.org/view/code:5143)
Just use the dropdown in the upper-right to download the code with indentations intact. Again, rename it to *.py and place it in the appropriate directory.
@onanboy, did you manage to solve this problem?
I am currently trying to look over the code and see if I can fix it. I am no Python expert (can't even call myself a programmer) but I'll give it a try.
PS: Din you manage somehow to sort the affected files. Because of the abundance of special characters in extra bad string, I didn't manage to evidentiate in the playlist the affected files.
No I haven't solved this yet. I want to try phot0nics script but when I copied the LyricWiki.py script to the proper folder it will not show up as one of the available scripts. I restarted the program but did not reboot my computer yet. Maybe that will be next.
The affected files = all files.
Got the file in the correct Scripts folder this time but when I go to refresh my list of scripts for LyricGrabber2 I get the following:
foo_grabber_python: Traceback (most recent call last):
File "C:\Users\Gonzo\AppData\Roaming\foobar2000\user-components\foo_lyricsgrabber2\pygrabber\scripts\LyricWiki.py", line 6, in <module>
from unescape import unescape
ImportError: No module named unescape
What should I do next?
Got the file in the correct Scripts folder this time but when I go to refresh my list of scripts for LyricGrabber2 I get the following:
foo_grabber_python: Traceback (most recent call last):
File "C:\Users\Gonzo\AppData\Roaming\foobar2000\user-components\foo_lyricsgrabber2\pygrabber\scripts\LyricWiki.py", line 6, in <module>
from unescape import unescape
ImportError: No module named unescape
What should I do next?
It would load but not work it I removed the line about importing unescape.
It would load but not work it I removed the line about importing unescape.
Sorry about that. I thought the unescape function came with the component. Here's the code for that function:
http://codeviewer.org/view/code:5289 (http://codeviewer.org/view/code:5289)
Save the code as unescape.py, and store it in your "C:\Users\Gonzo\AppData\Roaming\foobar2000\user-components\foo_lyricsgrabber2\pygrabber\system\" directory.
For future reference (in case the codeviewer link breaks), here's the unescape function:
import re, htmlentitydefs
##
# Removes HTML or XML character references and entities from a text string.
#
# @param text The HTML (or XML) source text.
# @return The plain text, as a Unicode string, if necessary.
def unescape(text):
def fixup(m):
text = m.group(0)
if text[:2] == "&#":
# character reference
try:
if text[:3] == "&#x":
return unichr(int(text[3:-1], 16))
else:
return unichr(int(text[2:-1]))
except ValueError:
pass
else:
# named entity
try:
text = unichr(htmlentitydefs.name2codepoint[text[1:-1]])
except KeyError:
pass
return text # leave as is
return re.sub("&#?\w+;", fixup, text)
There is no need for special function...
You can unescape html/xml entities with standard library:
import HTMLParser
escape = '© %s666;' % '&#' # complicated escape sting example because of the stupid code parser on this forum
print HTMLParser.HTMLParser().unescape(escape)
It would load but not work it I removed the line about importing unescape.
Sorry about that. I thought the unescape function came with the component. Here's the code for that function:
http://codeviewer.org/view/code:5289 (http://codeviewer.org/view/code:5289)
Save the code as unescape.py, and store it in your "C:\Users\Gonzo\AppData\Roaming\foobar2000\user-components\foo_lyricsgrabber2\pygrabber\system\" directory.
For future reference (in case the codeviewer link breaks), here's the unescape function:
import re, htmlentitydefs
##
# Removes HTML or XML character references and entities from a text string.
#
# @param text The HTML (or XML) source text.
# @return The plain text, as a Unicode string, if necessary.
def unescape(text):
def fixup(m):
text = m.group(0)
if text[:2] == "&#":
# character reference
try:
if text[:3] == "&#x":
return unichr(int(text[3:-1], 16))
else:
return unichr(int(text[2:-1]))
except ValueError:
pass
else:
# named entity
try:
text = unichr(htmlentitydefs.name2codepoint[text[1:-1]])
except KeyError:
pass
return text # leave as is
return re.sub("&#?\w+;", fixup, text)
Thanks very much.
I will try it very soon. Leaving on a business trip this morning but I am eager to try it.
It would load but not work it I removed the line about importing unescape.
Sorry about that. I thought the unescape function came with the component. Here's the code for that function:
http://codeviewer.org/view/code:5289 (http://codeviewer.org/view/code:5289)
Save the code as unescape.py, and store it in your "C:\Users\Gonzo\AppData\Roaming\foobar2000\user-components\foo_lyricsgrabber2\pygrabber\system\" directory.
For future reference (in case the codeviewer link breaks), here's the unescape function:
import re, htmlentitydefs
##
# Removes HTML or XML character references and entities from a text string.
#
# @param text The HTML (or XML) source text.
# @return The plain text, as a Unicode string, if necessary.
def unescape(text):
def fixup(m):
text = m.group(0)
if text[:2] == "&#":
# character reference
try:
if text[:3] == "&#x":
return unichr(int(text[3:-1], 16))
else:
return unichr(int(text[2:-1]))
except ValueError:
pass
else:
# named entity
try:
text = unichr(htmlentitydefs.name2codepoint[text[1:-1]])
except KeyError:
pass
return text # leave as is
return re.sub("&#?\w+;", fixup, text)
That worked! Of course when I tried to copy and paste the code I got an indent error but when I just downloaded the text it worked beautifully! Gracias, phot0nic
---
While typing up this response, I just noticed that copying and pasting from a codebox on this forum doesn't seem to retain the indentations, which will break the script. I've uploaded the script code here:
http://codeviewer.org/view/code:5143 (http://codeviewer.org/view/code:5143)
Just use the dropdown in the upper-right to download the code with indentations intact. Again, rename it to *.py and place it in the appropriate directory.
Could you please re-upload the code? The link is broken and I couldn't make it work with the indentation problem.
LyricWiki made a small change to their API and the script I posted before stopped working. I fixed my script, and included the unescape function so that you don't need two files (klonuo's suggestion didn't work for me). I have attached the updated script to this post:
http://www.hydrogenaud.io/forums/index.php?showtopic=110032 (http://www.hydrogenaud.io/forums/index.php?showtopic=110032)