Summary: | Tags are not stored in music files | ||
---|---|---|---|
Product: | [Applications] amarok | Reporter: | prasadae <amithash> |
Component: | Metadata Editing and Reading | Assignee: | Amarok Developers <amarok-bugs-dist> |
Status: | RESOLVED FIXED | ||
Severity: | minor | CC: | 123kash, ralf-engels |
Priority: | NOR | ||
Version: | 2.4.3 | ||
Target Milestone: | 2.5 | ||
Platform: | Ubuntu | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | 2.5 | |
Sentry Crash Report: |
Description
prasadae
2011-09-03 19:07:43 UTC
Why would you remove that folder in the first place? I understand if you remove one configuration file or the Amarok database, but all the $HOME/.kde/ folder? That removes all settings of KDE and its applications. Anyway, just to make sure: you do have writing permissions in the folder where these tracks are located, don't you? Yeah, just deleting the database is sufficient not the entire .kde dir. I confirmed by doing the following: chmod a+rw $HOME/Music # My music directory. open amarok, edit a file (one of my music files is missing the "Artist" tag, so I added the correct artist to it). now, exited amarok, and deleted: ~/.kde/share/apps/amarok/mysqle restarted Amarok, and initiated a re-scan The music file in question does not show up with the updated "Artist" Tag. Oops, sorry chmod a+rw -R $HOME/Music Thank you for the feedback. New developments. I wrote a small code using taglib (C as I am not that good with C++ :-) ): printf("Artist = \"%s\"\n", taglib_tag_artist(taglib_file_tag(taglib_file_new(argv[1])))); ./a.out ~/Music/King\ Crimson/Thrak/10-Radio\ II.mp3 Artist = "King Crimson" But when I look at Amarok's collection: The Tag Artist is: "0" But the tag: "Album Artist" correctly is "King Crimson" I believe that this is more or less to do with the collection scanner than saving tags. Could you try to look metadata of this track from File collection? What version of taglib is used? Tbh, I can't reproduce It here. My taglib version is: 1.7-1 Here are my detailed steps of all the things I have tried; Music/King Crimson/Thrak/10-Radio II.mp3 Title: Radio II Artist: 0 Composer: King Crimson Album: THRAK Changed it to: Title: Radio II Artist: King Crimson Composer: King Crimson Album: THRAK Restarted amarok, and I see that the tags are present. ls -l 10-Radio\ II.mp3 -rw-rw-rw- 1 <snip> 10-Radio II.mp3 shutdown amarok deleted .kde/share/apps/amarok/mysqle started amarok, tools->update collection tags of the file is back to Title: Radio II Artist: 0 Composer: King Crimson Album: THRAK shutdown amarok deleted .kde/share/apps/amarok/mysqle Now, I converted id3v1 tag to id3v2 tag and then deleted the id3v1 tag id3v2 --convert 10-Radio\ II.mp3 id3v2 --delete-v1 10-Radio\ II.mp3 Now start amarok, and rescan the collection. Now the tags for the collection is: Title: Radio II Artist: 0 Composer: "" Album artist: 0 Album: THRAK Which I changed to the correct fields and saved it. Restarting amarok, I see that the changes are present. shutdown amarok deleted .kde/share/apps/amarok/mysqle start amarok and rescan collection The tags are back to Title: Radio II Artist: 0 Composer: King Crimson Album: THRAK But as posted earlier I still see the correct tags if I use taglib to view them directly. If you can give me your email address (Or email me on amithash AT gmail DOT com, I can email you the problem-some mp3 track. PS: The reason I did the id3v2 step is because I had a hunch that this was something to do with id3v1 vs id3v2. PS: This does not happen to 99.999% of my tracks. Just a few. I have no clue whats up with them :-) From kid3 Here is the full information about the track: ID3v1.1 Title: "" Artist: "King Crimson" Album: "THRAK" Comment: "" Date: "1995" Track Number: "11" Genre: "Other" ID3v2.4.0 Title: "" Artist: "King Crimson" Album: "THRAK" Comment: "" Date: "1995" Track Number: "11" Genre: "Other" Album Artist: "King Crimson" Unknown: "0" I feel that the "Unknown" Tag is causing some problems as thats the value getting used as "Artist". Found the real issue. I deleted both id3v1 and id3v2 tags using the tool id3v2. Then I manually edited the track using kid3 and then the track stuck. Then I restored the track (Of course I had backed it up! :-) and instead of editing it through kid3, I did it using amarok (Remove db, rescan collection, edit the offending track's id, save, exit, delete db, start amarok, observe): the ID was restored to the wrong values. When viewed using kid3, I see that the 1.1 and 2.4.0 tag version have magically appeared. Proper reproduction steps at last. (I tried it with a functional mp3) Take an mp3, strip its tags using the tool id3v2: id3v2 --delete-v1 track.mp3 id3v2 --delete-v2 track.mp3 Now, delete the amarok collection, and start amarok and rescan the collection. Edit the track and add the correct values. save. exit amarok, delete the db, start amarok and rescan the collection. Observe the saved tags -- it is weird. This is a cornercase, since once a database is created it is not supposed to be erased again. Updates to newer versions are automatic. I use the same database since several versions back. Changed importance, subscribing Ralf. Hi, sorry for making you wait so long (dumn job eats all my time). Could you please mail me this file on 123kash at gmail, I'll try to find out what's going wrong. Setting status correctly. Aha, found It. Your file is ok. The only thing you need to reproduce it: empty Artist tag and set Album Artist, - in this case amarok use Album Artist tag as Artist, It was done since some programs uses TPE2 (Album Artist) frame to store Artist data. I don't know is It good or bad, since It's not a bug, but feature. :) Git commit 04f622a8f174f5394b798d0299e95afbb015bfa6 by Sergey Ivanov. Committed on 30/10/2011 at 16:01. Pushed by ivanov into branch 'master'. Do not use Album Artist as Artist for files without Artist metadata. BUG: 281283 M +1 -0 ChangeLog M +3 -2 src/core-impl/meta/file/File_p.h http://commits.kde.org/amarok/04f622a8f174f5394b798d0299e95afbb015bfa6 |