Comments (15)
Oops, it seems my podcast downloader (Media Monkey) gets the recorded date from the RSS file and updates that date to the MP3/M4A 'date' field which is "Recorded Date" in MediaInfo. Format yyyy-MM-dd ie: 2019-12-17
But still, ATLdotnet doesn't read it. I'm also in the process of programming my own RSS feed podcast downloader and I would like to use that date field.
from atldotnet.
Could you please provide a tagged file so that I can use it for tests?
from atldotnet.
One moment please ...
from atldotnet.
Here's a link to drive where you can download 2 files, one MP3 and one M4A
https://drive.google.com/drive/folders/1KzQSyzjS58ZWmgDICfY8uC-6oBP8Stba
from atldotnet.
Should I assume the following dates are the ones ATL should be reading ?
“The Do Something Democrats.”.mp3 -> 2019/12/12
Episode 34- Royce White, Elite Athlete and Mental Health Advocate.m4a -> 2019/12/16
from atldotnet.
I googled about mp3 "YEAR" & "DATE" and see there's some confusion, see this link and this link. It seems "YEAR" is a timestamp field and "DATE" a string?
The string format for DATE (if it's a string) should be yyyy-MM-dd I think.
So it would be: 2019-12-16 or (for example) 2019-12-01 (December 1st 2019, with a leading zero)
from atldotnet.
But yes, those are the dates MediaMonkey updated the DATE field with. But it looks like different apps use that field differently.
from atldotnet.
Oh. one minute please ... I remembered something. I need to look it up.
from atldotnet.
For MP3 files MediaMonkey puts the date in the "TDRC" field. And that is completely okay to use.
string recordedDate = theTrack.AdditionalFields["TDRC"];
But with the M4A example it isn't there,. Not in the TDRC or any other 'Additional Field' (I checked with your code snippet.
But it shows up in MediaInfo. I don't know where it gets this value, Or how to read it with ATL. I just want to read it from the M4A file.
from atldotnet.
For MP3 files MediaMonkey puts the date in the "TDRC" field. And that is completely okay to use.
Well, yes and no. TDRC
is a legit field according to the ID3v2.4 standard, that's true. The problem is in the file you've sent, MediaMonkey has written that field in an ID3v2.3 header, which renders it invalid. ID3v2.3 standard field for the date is not TDRC
but a combination between TDAT
(day & month) and TYER
(year).
Now that I'm done with the normative explanation, I can tweak the library to accept reading TDAT
even in an ID3v2.3 header. That's kinda dirty but works easily
from atldotnet.
M4A's own tagging standard uses the ©day
field to store that date. However that's the first time I've seen ©day
containing an entire date. I'm more used to seeing it containing a simple year.
I just checked the spec that in unclear about that. I'll make it so ©day
can store either entire dates or simple years.
from atldotnet.
FYI: With ATL I already could read the by Mediamonkey added "TDRC
" in the MP3. So I don't think a change to the library is needed for that.
But I recently got M4A files in my (MediaMonkey) podcast feed and I can't get the date from that (M4A) format. I can see the 'recording date' in MediaInfo and I would like to read that value.
And if I'm correct I should (when converting) put the date in "TDAT
" and "TYER
" for MP3 and M4A as you described earlier?
from atldotnet.
With MediaMonkey there's an option in settings to 'touch' the files directly after download. It puts a couple of setting in the tags. Two I can think of are "Genre" and "Album" which you can define as a user in MediaMonkey. And it will store the recording date (which it reads from the RSS) as well as described in my previous comment.
from atldotnet.
I've just publised version 2.15 that is able to read dates on both of the files you submitted.
If you have any other topic to discuss, please open a new issue. Thanks~
from atldotnet.
It works! I installed version 2.15 and I now can read the date with theTrack.Date
This works for both MP3 and M4A files.
FYI: previously with 2.14 (and earlier versions) I could read the date in "MediaMonkey MP3" files with:
string recordedDate = "";
if (theTrack.AdditionalFields.ContainsKey("TDRC"))
{
recordedDate = theTrack.AdditionalFields["TDRC"];
}
but that doesn't work anymore. If other people are using this, it would be a breaking change. I don't need to use this code anymore because I now can read the date with theTrack.Date
Thank you for adding this feature!
from atldotnet.
Related Issues (20)
- wav editing questions HOT 4
- Request: Id3 tag field trimming, Genre bug? HOT 5
- some ixml tags in ixml standard are not supported
- The Problem about ISO-8859-1 HOT 7
- Feature Request: Add ability to read and write custom APE tags to normal Windows PCM Wave files HOT 7
- Writing is not supported for OGG with embedded FLAC HOT 5
- Fails to work with OPUS files with cover embedded not using atldotnet HOT 11
- Feature Request: BPM (Beats Per Minute) Field HOT 6
- Pictures not showing in Spotify HOT 12
- Wrong track duration for stereo .mp3 files HOT 3
- Lyrics Issues HOT 12
- WAV - Padding removed after adding tags HOT 4
- WebP Image Detection HOT 5
- Unable To Save Files With LRC Lyrics HOT 5
- Large file size increase and invalid MPEG streams after save when ID3 exists HOT 10
- Crash When Saving Certain Files HOT 9
- Clearing all metadata fields on M4A File Corrupts File HOT 8
- Lyrics Language Code and Description Not Saving HOT 7
- Unable To Save Both Unsync and Sync Lyrics For Some Flac Files HOT 5
- Unable to load picture from OPUS HOT 6
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from atldotnet.