nicfit / eyeD3

eyeD3 is a Python module and command line program for processing ID3 tags. Information about mp3 files (i.e bit rate, sample frequency, play time, etc.) is also provided. The formats supported are ID3v1 (1.0/1.1) and ID3v2 (2.3/2.4).
http://eyed3.nicfit.net/
GNU General Public License v3.0
547 stars 59 forks source link

Cannot set time earlier than 1000 (10:00 am) in TIME Date frame. #139

Open shillshocked opened 6 years ago

shillshocked commented 6 years ago

(Only relevant parts posted for brevity)

eyeD3 --text-frame TIME:0800 --text-frame TYER:2017 --text-frame TDAT:3012 ok.mp3

Setting b'TYER' text frame to '2017'
Setting b'TDAT' text frame to '3012'
ID3 v2.3:
recording date: 2017-12-30T08:00
Writing ID3 version v2.3
--------------------------------------------------------------------------------```

 eyeD3 ok.mp3

eyed3.core:WARNING: Invalid date: 0800

Time: 00:32 MPEG1, Layer III [ 320 kb/s @ 44100 Hz - Joint stereo ]

ID3 v2.3: eyed3.id3.tag:WARNING: Invalid v2.3 TYER, TDAT, or TIME frame: Invalid date string: 2017-12-30T: recording date: 2017-12-30 disc: 1/1 UserTextFrame: [Description: TOTALDISCS] 1 UserTextFrame: [Description: TOTALTRACKS] 8 FRONT_COVER Image: [Size: 1318206 bytes] [Type: image/jpeg] Description:



This will, however work if you set time to 1200

How can we set time to four characters without using a zero at the beginning?

3 characters doesn't work, either.
nicfit commented 6 years ago

There are definitely problems parsing the TIME and TDAT frames, thanks for the report! The good news is, unless you require ID3 2.3 and or these frames, you should be able to accomplish what you want with:

 eyeD3 --release-date 2017-12-30T08:00  test.id3