rexstout / abcde

Automatically exported from code.google.com/p/abcde
GNU General Public License v2.0
0 stars 0 forks source link

abcde/eyeD3 fails to write year tag most programs can read #126

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
The problem is that eyeD3 uses the TORY/TDRL (release year) tag to hold the 
year passed to -Y, whereas most programs read from TYER/TDRC.

I'll file a bug about this with eyeD3, but in the mean time it seems sensible 
to patch abcde. The required change is to use --text-frame="TDRC:$CDYEAR" 
instead of -Y="$CDYEAR" on eyeD3 0.7.x, or --set-text-frame on 0.6.x. I can 
provide an appropriate patch, depending on whether abcde is patched for issue 
#116 (eyeD 0.6 & 0.7 compatibility).

Original issue reported on code.google.com by rrt@sc3d.org on 3 Jan 2015 at 6:46

GoogleCodeExporter commented 9 years ago
I filed 
https://bitbucket.org/nicfit/eyed3/issue/82/year-setting-incompatible-with-many 
against eyeD3, and the author kindly pointed out it's a dup, and explained why 
he takes the view that eyeD3 is correct. I've asked him what he recommends 
programs like abcde should do.

Original comment by rrt@sc3d.org on 3 Jan 2015 at 8:58

GoogleCodeExporter commented 9 years ago
I have the eyeD3 fix queued at home:

andrew@ilium~/development/abcde$ git log -n 1
commit fdf3b877cc9cdd5b984fb44fdcc8e04cb51cae4d
Author: Andrew Strong <andrewxxxxxxxxxx@gmail.com>
Date:   Sun Jan 4 13:20:50 2015 +1100

    eyeD3 version switch < 0.7 vs. >= 0.7

    Thanks to Matthias Andree for this patch which
    accomodates mp3 tagging with both pre and
    post 0.7 eyeD3 versions.

    This rectifies Issue 116 and Issue 120
andrew@ilium~/development/abcde$ 

I am just waiting for Steve to emerge from ? holidays to sort out my access :)

Original comment by andrew.d...@gmail.com on 4 Jan 2015 at 2:33

GoogleCodeExporter commented 9 years ago
The eyeD3 maintainer's suggestion is: "set and prefer original-release and 
release…in that order". That means using both -Y and --orig-release-date. 
0.6.x will need a different syntax. I can prepare a patch that works for both.

Original comment by rrt@sc3d.org on 4 Jan 2015 at 3:21

GoogleCodeExporter commented 9 years ago
Patch attached (works for me!).

Original comment by rrt@sc3d.org on 15 Jan 2015 at 11:52

Attachments:

GoogleCodeExporter commented 9 years ago
On current git would the changes be better in:

eyed3_06) addopts=( \

and

*) addopts=( \

to avoid breakages in the pre and post versions of eyeD3?

Original comment by andrew.d...@gmail.com on 16 Jan 2015 at 8:23

GoogleCodeExporter commented 9 years ago
I'm sorry, when I said I could prepare a patch that works for both, and then 
attached a patch, those were two different patches. I'll have a look at current 
git.

Original comment by rrt@sc3d.org on 16 Jan 2015 at 8:26

GoogleCodeExporter commented 9 years ago
Mind you with git there is now a formalised option to use id3v2 while eyeD3 
remains the default. I will have a look in the near future and see if the date 
tag has the same issue when tagging with id3v2...

It is a little unsatisfactory when you see the array of date variables 
available for tagging and yet we are stuck with:

1. whatever arrives via cddb
2. whatever major applications chose to read from tags

As Travis points out the options in eyeD3 are highly specific:

  -Y YEAR, --release-year YEAR
                        Set the year the track was released. Use the date
                        options for more precise values or dates other than
                        release.
[...]

  --release-date DATE   Set the date the track/album was released
  --orig-release-date DATE
                        Set the original date the track/album was released
  --recording-date DATE
                        Set the date the track/album was recorded
  --encoding-date DATE  Set the date the file was encoded
  --tagging-date DATE   Set the date the file was tagged

Interesting.....

Original comment by andrew.d...@gmail.com on 17 Jan 2015 at 12:28

GoogleCodeExporter commented 9 years ago
The magic option for vlc and Audacious is of course:

  --recording-date DATE
                        Set the date the track/album was recorded

Original comment by andrew.d...@gmail.com on 17 Jan 2015 at 12:38

GoogleCodeExporter commented 9 years ago
I had a look and the attached patch might be the work around you had in mind? 
This catches pre and post eyeD3 versions and has a little explanatory note...

Original comment by andrew.d...@gmail.com on 17 Jan 2015 at 1:57

Attachments:

GoogleCodeExporter commented 9 years ago
I see that id3v2 also sets 'recording date' for --year:

----------------------------
andrew@ilium~/media/luckynight/test$ id3v2 --year 2005 test.mp3 
andrew@ilium~/media/luckynight/test$ eyeD3 test.mp3 
test.mp3    [ 946.09 KB ]
-------------------------------------------------------------------------------
Time: 02:01 MPEG1, Layer III    [ 64 kb/s @ 44100 Hz - Stereo ]
-------------------------------------------------------------------------------
ID3 v2.3:
title: 
artist: 
album: 
album artist: None
recording date: 2005
track:      
-------------------------------------------------------------------------------
andrew@ilium~/media/luckynight/test$ 

------------------------------

So if I don't hear back from you with any improvements of my patch I will 
commit tomorrow...

Original comment by andrew.d...@gmail.com on 17 Jan 2015 at 8:15

GoogleCodeExporter commented 9 years ago
Sorry I didn't get back earlier, yes, your patch looks great. Thanks so much 
for attending to this.

Original comment by rrt@sc3d.org on 17 Jan 2015 at 8:31

GoogleCodeExporter commented 9 years ago
Thanks too for your work on this one! I have committed the changes and 
hopefully resolved the issue. Please test the current git and let me know if 
any further adjustment is needed.

Original comment by andrew.d...@gmail.com on 18 Jan 2015 at 8:37