exislow / tidal-dl-ng

TIDAL Media Downloader Next Generation! Up to HiRes Lossless / TIDAL MAX 24-bit, 192 kHz.
GNU Affero General Public License v3.0
447 stars 38 forks source link

[Feature] Polishing out the program #176

Open orbittwz opened 3 months ago

orbittwz commented 3 months ago

Current Situation

The program doesn't do the following:

  1. saving multiple discs albums in separate folders, i.e cd1, cd2 etc...
  2. looking at the metadata after FLAC file is being created with ffmpeg, it has a lot of issues: Most tags are lower cased. Artist tag has the right featured artists, but not written as separated, i.e with this character ; after each artist. I have no option to uncheck the irrelevant additional tags created, which not needed. (those I marked) image
  3. the format album setting doesn't have the multiple discs tag.

Suggestion / Feature Request

  1. Saving albums with multiple discs in separate folders, cd1, cd2 etc.
  2. Upper case all tags, or at least First letter upper case all the tags. change the albums artist tag and separate with ; character instead of , remove the additional tags which aren't relevant or add the option to do so.
  3. add the tag to the format album setting for multiple discs.

thanks!

orbittwz commented 3 months ago

Also when opening the program it defaults back to search for tracks instead of what I recently searched for. Maybe save the last search item type after the program exits.

orbittwz commented 3 months ago

3 more things: 1 .There is no option to check the search result tidal store page linked.

  1. add an option to embed URL tag for all tracks.
  2. add an option to embed UPC tag for all tracks. If possible to add those, would be nice.
orbittwz commented 3 months ago

also where is GENRE tag?

orbittwz commented 2 months ago

also lower case "encoder" tag duplicate is in the metadata... should be removed as well because Encoder main tag is already present

TheParaTiger commented 1 month ago

Was wondering where the GENRE tag went too lol It's essential and should be included

exislow commented 2 weeks ago

Thanks guys for all these details. Will try to fix them.

exislow commented 2 weeks ago
  • Saving albums with multiple discs in separate folders, cd1, cd2 etc.

Fixed with #151

  • Upper case all tags, or at least First letter upper case all the tags. change the albums artist tag and separate with ; character instead of , remove the additional tags which aren't relevant or add the option to do so.

Tags are by definition case-INsensitive (https://en.wikipedia.org/wiki/Vorbis_comment). Anyway I have capitalized them all.

  • add the tag to the format album setting for multiple discs.

Fixed with #151

1 .There is no option to check the search result tidal store page linked.

What do you mean by that? Do you have an example?

  1. add an option to embed URL tag for all tracks.

TODO

  1. add an option to embed UPC tag for all tracks.

What is actually an UPC tag?

also where is GENRE tag?

This is info is not available by TIDAL. I would be very happy if you could proof me wrong.

also lower case "encoder" tag duplicate is in the metadata... should be removed as well because Encoder main tag is already present

Cannot find it. Can you show a proof or post your command how to check?

orbittwz commented 2 weeks ago

Thanks for everything so far!

"There is no option to check the search result tidal store page linked."

For each search result, should be a link to the tidal site showing the result page.

"add an option to embed UPC tag for all tracks."

UPC is the full release BARCODE tag, it's the Universal Product Code.

"also where is GENRE tag?"

Pretty sure there is a GENRE tag, tidal must have this for each release.

"also lower case "encoder" tag duplicate is in the metadata... should be removed as well because Encoder main tag is already present"

I don't know, there are two tags for encoder, you need to remove the ADDITIONAL TAG, not the embedded one

Cheers

exislow commented 2 weeks ago

For each search result, should be a link to the tidal site showing the result page.

This is kinda doable. You are feel free to get me a PR for this.

UPC is the full release BARCODE tag, it's the Universal Product Code.

tidalapi does not offer that tag. But this is apparently offered by TIDAL API, see (https://developer.tidal.com/apiref?spec=catalogue-v2&at=THIRD_PARTY). You could raise an issue at the tidalapi (https://github.com/tamland/python-tidal) repo asking them to implement the tag, so we can use it here.

Pretty sure there is a GENRE tag, tidal must have this for each release.

Let me know, if you can find it.

I don't know, there are two tags for encoder, you need to remove the ADDITIONAL TAG, not the embedded one

Again: Cannot find it. Can you post your command how to verify it?

orbittwz commented 1 week ago

image Yo thanks for the program update! First impressions are great so far, works faster, downloading faster and tracks are encoded fast. Attached is an example track, which I drew on what is OK and what is not. with X is to remove, the COPYRIGHT tag should be at least changed to standard ORGANIZATION and LABEL tags. (PUBLISHER would be even better but not standard iirc) image also, why the search type keeps defaulting to track each application start?? can you save the last type searched? it's very easy to do... KR man!

exislow commented 1 week ago

also, why the search type keeps defaulting to track each application start?? can you save the last type searched? it's very easy to do...

Because it is implemented this way :-) It could be included in the next GUI update but no promises. If it is easy to do feel free to get me a pull request with your proposal.

Regarding the tag issues. Right after downloading (no tagging operations by this app have been made so far) the file (Mabel - Selfish Love (Stripped) [HI_RES_LOSSLESS]) looks like this, tag-wise:

❯ mediainfo /tmp/ecf5160b-2ee0-4b7d-bda6-b4a7ad8e07df.flac
General
Complete name                            : /tmp/ecf5160b-2ee0-4b7d-bda6-b4a7ad8e07df.flac
Format                                   : FLAC
Format/Info                              : Free Lossless Audio Codec
File size                                : 40.7 MiB
Duration                                 : 3 min 24 s
Overall bit rate mode                    : Variable
Overall bit rate                         : 1 668 kb/s
Writing application                      : Lavf61.7.100
major_brand                              : iso8
minor_version                            : 0
compatible_brands                        : mp41dash

Audio
Format                                   : FLAC
Format/Info                              : Free Lossless Audio Codec
Duration                                 : 3 min 24 s
Bit rate mode                            : Variable
Bit rate                                 : 1 668 kb/s
Channel(s)                               : 2 channels
Channel layout                           : L R
Sampling rate                            : 44.1 kHz
Bit depth                                : 24 bits
Compression mode                         : Lossless
Stream size                              : 40.7 MiB (100%)
Writing library                          : Lavf61.7.100
MD5 of the unencoded content             : AF38037F1E6A6C905D186C8C667D4442

All these tags you see are set by TIDAL itself. Right after tagging with this app it looks like this:

❯ mediainfo /tmp/ecf5160b-2ee0-4b7d-bda6-b4a7ad8e07df.flac
General
Complete name                            : /tmp/ecf5160b-2ee0-4b7d-bda6-b4a7ad8e07df.flac
Format                                   : FLAC
Format/Info                              : Free Lossless Audio Codec
File size                                : 40.7 MiB
Duration                                 : 3 min 24 s
Overall bit rate mode                    : Variable
Overall bit rate                         : 1 671 kb/s
Album                                    : High Expectations…Stripped
Album/Performer                          : Mabel
Part                                     : 1
Part/Total                               : 1
Track name                               : Selfish Love (Stripped)
Track name/Position                      : 6
Track name/Total                         : 14
Performer                                : Mabel
Recorded date                            : 2019-08-02
Writing application                      : Lavf61.7.100
ISRC                                     : GBUM72003517
Copyright                                : ℗ 2020 Mabel McVey, under exclusive licence to Universal Music Operations Limited
Cover                                    : Yes
Cover type                               : Cover (front)
Cover MIME                               : image/jpeg
major_brand                              : iso8
minor_version                            : 0
compatible_brands                        : mp41dash

Audio
Format                                   : FLAC
Format/Info                              : Free Lossless Audio Codec
Duration                                 : 3 min 24 s
Bit rate mode                            : Variable
Bit rate                                 : 1 668 kb/s
Channel(s)                               : 2 channels
Channel layout                           : L R
Sampling rate                            : 44.1 kHz
Bit depth                                : 24 bits
Compression mode                         : Lossless
Stream size                              : 40.7 MiB (100%)
Writing library                          : Lavf61.7.100
MD5 of the unencoded content             : AF38037F1E6A6C905D186C8C667D4442
  1. mediainfo does not show me your mentioned "encoder" tag.
  2. You propose to change COPYRIGHT to PUBLISHER or LABEL. But the information I get for this tag from TIDAL are published under the tag COPYRIGHT.

To be honest: Without a good reason I neither would like to modify their information nor alter the meaning.

orbittwz commented 1 week ago

No worries! About the encoder tag, it's an extra additional tag which is already present in the stream info, and not in the vorbis info. My guess is that during the FLAC encoding via FFMPEG, it's writing this tag. Maybe checking the code for this should help. Hope you can add everything else in the end mentioned above.