
Ktag
Source (link to git-repo or to original if based on someone elses unmodified work):
It support adding and saving picture in id3v2 tags.
ktag comes with a kde services plugin which display the cover in konqui file preview.
The KTag icon is the work of Marco Meijer http://www.kde-apps.org/usermanager/search.php?username=korrel
Changes since 0.3
- moved to TagLib 1.2, so no more dependencies for id3lib and vorbisfile
- add MusicBrainz server and proxy configuration
- add personalized commands to get play/enqueue/current in your favorite media player
- allow ID3 removal
- allow saving cover to JPEG
- add ability to create an index.html in the album folder using current language and encoding
- add clear tags
- add %_artist %_album %_Artist %_Album %!artist %!album %!Artist %!Album for cover patterns
- change openFile DCOP call from QString to KURL
- clean bug with artist/album/genre/year submenus which were clear each time we use one
--
Changes since 0.2.1
- recent file list
- file rename and save as with personalized naming patterns
- Album menu with:
* rename all opened files
* save as all opened files
* set current album for all files
* set current artist for all files
* set current genre for all files
* set current year for all files
* download cover and save it in the album folder
- MusicBrainz animated button with popup menu to select the correct result or search again
- if there's no cover in the mp3 tag, it search for cover.png,jpg,jpeg in the parent folder and display the first found.
- dutch translation
--
Changes since 0.2
- now use lib MusicBrainz if found to fill Artist/Album/Title and Track fields
--
Changes since 0.1
- multiple files editing using tabs
- download cover on the net
- add and manage cover sites with patterns like: http://coversite.com/%l/%artist-%album.jpg (see in the config dialog for real exemples)
Ratings & Comments
25 Comments
/usr/include/kde/keditlistbox.h:60: warning: 'class KEditListBox::CustomEditor' has virtual functions but non-virtual destructor ktag.moc:252: error: no 'void Ktag::mbStart(QStringList&)' member function declared in class 'Ktag' ktag.moc:265: error: no 'void Ktag::mbFound(QStringList&)' member function declared in class 'Ktag' ktag.moc:278: error: variable or field 'signalStartQuery' declared void ktag.moc:278: error: 'int Ktag::signalStartQuery' is not a static member of 'class Ktag' ktag.moc:278: error: 'MusicBrainzQuery' was not declared in this scope ktag.moc:278: error: 't0' was not declared in this scope ktag.moc:279: error: expected ',' or ';' before '{' token ktag.moc:291: error: no 'void Ktag::signalStartTRM()' member function declared in class 'Ktag' ktag.moc: In member function 'virtual bool Ktag::qt_invoke(int, QUObject*)': ktag.moc:321: error: 'mbSearch' was not declared in this scope ktag.moc:322: error: 'MusicBrainzQuery' has not been declared ktag.moc:322: error: expected primary-expression before 'const' ktag.moc:322: error: expected `)' before 'const' ktag.moc:323: error: 'updateMbList' was not declared in this scope ktag.moc:324: error: 'setFromMb' was not declared in this scope ktag.moc:325: error: 'mbPopup' was not declared in this scope ktag.moc:326: error: 'MusicBrainzQuery' was not declared in this scope ktag.moc:326: error: expected primary-expression before ')' token ktag.moc:326: error: 'mbQuery' was not declared in this scope ktag.moc:327: error: 'updateTip' was not declared in this scope ktag.moc: In member function 'virtual bool Ktag::qt_emit(int, QUObject*)': ktag.moc:348: error: 'MusicBrainzQuery' was not declared in this scope ktag.moc:348: error: expected primary-expression before ')' token ktag.moc:348: error: 'signalStartQuery' was not declared in this scope make[4]: *** [ktag.lo] Error 1 make[4]: Leaving directory `/home/Software/SoftwareTesting/Need Assistance/Ktag-0.5/Ktag-0.5/src/libktag' make[3]: *** [all-recursive] Error 1 make[3]: Leaving directory `/home/Software/SoftwareTesting/Need Assistance/Ktag-0.5/Ktag-0.5/src/libktag' make[2]: *** [all-recursive] Error 1 make[2]: Leaving directory `/home/Software/SoftwareTesting/Need Assistance/Ktag-0.5/Ktag-0.5/src' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/home/Software/SoftwareTesting/Need Assistance/Ktag-0.5/Ktag-0.5' make: *** [all] Error 2 I believe I have all the deps needed to build it but still I get errors. Sorry for the long post.
A SlackWare 10.2 TGZ Package with SlackBuild script is ready to download!! http://www.slacky.it http://www.slacky.it/index.php?option=com_remository&Itemid=29&func=fileinfo&filecatid=684&parent=category
the link doesnt work.
This looks very promising, however it fails to build for me. I'm running Slackware Linux 10.0 with KDE 3.3, TagLib 1.3, and MusicBrainz Client Library 2.1.1.
Compilation fails with the following errors:
ktag.cpp: In member function `void Ktag::mbSearch()': ktag.cpp:218: error: no matching function for call to `MusicBrainzQuery:: SetServer(QString&, int&)' /usr/local/include/musicbrainz/musicbrainz.h:53: error: candidates are: bool MusicBrainz::SetServer(const std::string&, short int) ktag.cpp:220: error: no matching function for call to `MusicBrainzQuery:: SetProxy(QString&, int&)' /usr/local/include/musicbrainz/musicbrainz.h:55: error: candidates are: bool MusicBrainz::SetProxy(const std::string&, short int)
Your app is really cool, but unfortunately I can't use it (only because I need the Musicbrainz function - see below). I'm using Mandrake 10.1 (Cooker), so I may be asking for trouble, anyway... If I install the RPMs, Ktag crashes (bringing up a Kcrash window) when I try to save a file. The Musicbrainz and Download Album Cover functions works well, however. If I compile from source, Ktag allows me to save, but when I try to do a Musicbrainz search, the program just exits when successfully finding information (it doesn't if Musicbrainz nothing). Here's the console output when I do a Musibrainz search: ktag: Adding new tab ktag: Generation finished 8eacef15-1686-434f-bcd9-218934a7c3d4 ktag: 3 entrie(s) in query result. an then *poof* the window closes. No crash message, no segmentation fault message...I press a key and I'm back to the prompt... Anyway, it looks like a very promising app that deserves a higher score. I'll vote for you for sure, and try to install it again in the future.
This tools is looking very promising. I have few comments: - %Artist, %Title, etc (meaning that first letter should be upper) should lower the case of the rest of letters, currently strings like "ENIGMA" (all uppercase) would still be the same with %Artist variable. IMHO it should change it to "Enigma". The same is for automatic changing case of letters in tags. Maybe %ARTIST, etc vars should be introduced. - ability for setting comment for all opened files would be very useful. - I can't find any way to close all opened files except closing each tab one by one, or closing whole ktag, and reopening it with different set of files. File/Close and File/Close all would be nice thing to have. - configure script don't stop and warn when it can't find taglib or musicbrainz files, and Ktag fails to compile without any of them installed. I like the ability to find covers for albums!
- You are right, i'll add %ARTIST, etc... - Right too, i'll add an entry in the album menu - it's normal from musicbrainz (Ktag can work without) but not for taglib, i'll correct this quickly. Thank for your comments, they give me pleasure to continue on Ktag ;)
oh I'll add too a function which will close all tabs without closing Ktag. I've update my TODO list ;)
Hi, I haven't still tried it out, but I was wondering if it had the ability to change tags massively, an ability found in a little gtk app I'm "forced" to use on my KDE: easytag. With easytag, given a dir full of mp3's, I can easy setup, say, a default comment tag to be applied to all of the files selected. If it's not so, it would be cool to implement that for a kde app nice interface anyway :-)
it's available in the album menu for Album/Artist/Genre/Year, this will set the current value for all opened files.
In file included from ktagmainwin.h:43, from main.cpp:30: ktag.h:43:21: ktagdlg.h: No such file or directory ktag.h:44:21: dlcover.h: No such file or directory In file included from ktagmainwin.h:43, from main.cpp:30: ktag.h:55: error: syntax error before `{' token ktag.h:56: error: virtual outside class declaration ktag.h:56: error: non-member function `const char* className()' cannot have ` const' method qualifier ktag.h:56: error: virtual outside class declaration ktag.h:56: error: virtual outside class declaration ktag.h:56: error: virtual outside class declaration ktag.h:56: error: virtual outside class declaration ktag.h: In function `QObject* qObject()': ktag.h:56: error: invalid use of `this' in non-member function ktag.h: At global scope: ktag.h:56: error: syntax error before `private' ktag.h:66: error: destructors must be member functions ktag.h:66: error: virtual outside class declaration ktag.h:71: error: syntax error before `private' ktag.h:79: error: syntax error before `private' ktag.h:85: error: syntax error before `::' token ktag.h:91: error: syntax error before `protected' ktag.h:96: error: syntax error before `}' token In file included from main.cpp:30: ktagmainwin.h:44:27: ktagconfigdlg.h: No such file or directory ktagmainwin.h:45:28: configpatterns.h: No such file or directory In file included from main.cpp:30: ktagmainwin.h:74: error: type/value mismatch at argument 1 in template parameter list for `template class QPtrList' ktagmainwin.h:74: error: expected a type, got `Ktag()' ktagmainwin.h:74: error: ISO C++ forbids declaration of `ktagList' with no type tags.h:173: warning: `const char*sorted_genres[150]' defined but not used ktag.h:56: warning: `bool qt_static_property(QObject*, int, int, QVariant*)' declared `static' but never defined ktag.h:56: warning: `QMetaObject* staticMetaObject()' declared `static' but never defined ktag.h:56: warning: `QString tr(const char*, const char*)' declared `static' but never defined ktag.h:56: warning: `QString trUtf8(const char*, const char*)' declared `static' but never defined make[3]: *** [main.o] Error 1 make[3]: Leaving directory `/home/felboe/Downloads/ktag-0.2.1/src' make[2]: *** [all-recursive] Error 1 make[2]: Leaving directory `/home/felboe/Downloads/ktag-0.2.1/src' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/home/felboe/Downloads/ktag-0.2.1' make: *** [all] Error 2
it's look like that uic haven't done his job. Try to run make -f admin/Makefile.common before ./configure script
make still fails: make[3]: Entering directory `/home/felboe/Downloads/ktag-0.2.1/src' source='main.cpp' object='main.o' libtool=no \ depfile='.deps/main.Po' tmpdepfile='.deps/main.TPo' \ depmode=gcc3 /bin/sh ../admin/depcomp \ g++ -DHAVE_CONFIG_H -I. -I. -I.. -I/usr/include/kde -I/usr/lib/qt-3.3/include -I/usr/X11R6/include -DQT_THREAD_SUPPORT -D_REENTRANT -Wnon-virtual-dtor -Wno-long-long -Wundef -Wall -W -Wpointer-arith -Wwrite-strings -ansi -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align -Wconversion -Wchar-subscripts -O2 -Wformat-security -Wmissing-format-attribute -fno-exceptions -fno-check-new -fno-common -c -o main.o `test -f 'main.cpp' || echo './'`main.cpp In file included from ktagmainwin.h:43, from main.cpp:30: ktag.h:85: error: syntax error before `::' token tags.h:173: warning: `const char*sorted_genres[150]' defined but not used make[3]: *** [main.o] Error 1 make[3]: Leaving directory `/home/felboe/Downloads/ktag-0.2.1/src' make[2]: *** [all-recursive] Error 1 make[2]: Leaving directory `/home/felboe/Downloads/ktag-0.2.1/src' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/home/felboe/Downloads/ktag-0.2.1' make: *** [all] Error 2
can you send me your config.log and the full output of the make command?
Hi there, tried to explain this issue to the krename guy but he couldn't get the Win progs to run. I would love to see a feature which could contact the freedb and update my album dir tags/filenames according to my preferred schema... For a detailed description of what i wanted to see: http://www.kbarcode.net/forum/viewtopic.php?t=91 If you could manage to do that, you'd be the bomb! Greetings, Martin
I'll have a look on the libcddb api doc to see if i can do something with it, it could be interesting for adding entries in the different combobox. Thank's for the idea ;)
You're welcome. :-) Thats what the community is for... BTW, are you building this as a kpart? This could be included in a bunch of apps to enhance there functionality. Greetings, Martin
Maybe this site is better because it can recognise seperate mp3 ogg files. (that is what they say). And they include gpl software to do so. http://www.musicbrainz.org/products/tunepimp/download.html
CDDB is not very usefull without the CD id, MusicBrainz is more adapted for this so for now i use it but i continue to look at the CDDB use. I'll will also look for the benefits of making Ktag as a kpart, so wai and see ;)
Isn't this already available trough the meta information in the konqueror file properties dialog?
Yes that's right only for ogg files and there's not list for genres.
You should probably move this to kde-apps.org Just log in there, edit it, and change its category to one of its multimedia tool things.
it's on kde-apps that i've add this and not on kde-look, but i've choose kde improvement and that's why it appears on kde-look. I don't see in which category i can put it, cause i don't think that Multimedia/Sound correspond to my apps (it's not a sound player/processor/editor).
Well but it has to do with multimedia anyway, so I think that this should be the best fit category
moved ;)