[GH-ISSUE #30] Missing Metadata (Album Name & Genre) #27

Closed
opened 2026-02-27 04:57:10 +03:00 by kerem · 4 comments
Owner

Originally created by @aleks-mariusz on GitHub (Jul 8, 2025).
Original GitHub issue: https://github.com/Googolplexed0/zotify/issues/30

Originally assigned to: @Googolplexed0 on GitHub.

Hi,

First off, that you are keeping zotify working is incredible!

Minor complaint, the 'album' and 'genre' fields are missing in the downloaded files. Now i know that album should be def available, i'm unsure of genre (if spotify has this concept even).

Just thought i'd mention it. The example song i'm doing is:

$ zotify 'https://open.spotify.com/track/3cbTV3IZZvSBYVcl0xuZbY?si=84f8e77dc0684027'


        [●∙∙] Logging in...                                                                                                                                                                                             

        [●∙∙] Fetching track information...                                                                                                                                                                                    [∙●∙] Preparing download...                                                                                                                                                                                     
        [∙∙●] Preparing download...                                                                                                                                                                                     ouldn't extract expiration, invalid parameter in CDN url: https://audio-cf.spotifycdn.com/audio/85405c8c56061880b634edc1d56fdd067bdde3da?verify=1752058694-yIATzwf4YLKII8mCVBbKXJhqm8XWLo2PnLJn%2Fhqnt5w%3D
                                                                                                                                                                                                                       Failed r[∙∙∙] Converting file...                                                                                                                                                                                        


Local H - Bound For The Floor:  54%|████████████████████████████████████████████████████████████████████████████▎                                                                 | 4.85M/9.02M [01:59<01:41, 43.1kB/s

(it finishes - i tried it another time and didn't get the extract expiration invalid parameter message:

        [∙∙●] Preparing download...                                                                                                                                                                                     ouldn't[∙∙∙] Converting file...                                                                                                                                                                                                                                                                                                                                                                                                              

so that instead.

But in both instances, the album and genre are missing (curiously, the track number was written tho, so it's got SOME of the metadata).

Originally created by @aleks-mariusz on GitHub (Jul 8, 2025). Original GitHub issue: https://github.com/Googolplexed0/zotify/issues/30 Originally assigned to: @Googolplexed0 on GitHub. Hi, First off, that you are keeping zotify working is incredible! Minor complaint, the 'album' and 'genre' fields are missing in the downloaded files. Now i know that album should be def available, i'm unsure of genre (if spotify has this concept even). Just thought i'd mention it. The example song i'm doing is: ``` $ zotify 'https://open.spotify.com/track/3cbTV3IZZvSBYVcl0xuZbY?si=84f8e77dc0684027' [●∙∙] Logging in... [●∙∙] Fetching track information... [∙●∙] Preparing download... [∙∙●] Preparing download... ouldn't extract expiration, invalid parameter in CDN url: https://audio-cf.spotifycdn.com/audio/85405c8c56061880b634edc1d56fdd067bdde3da?verify=1752058694-yIATzwf4YLKII8mCVBbKXJhqm8XWLo2PnLJn%2Fhqnt5w%3D Failed r[∙∙∙] Converting file... Local H - Bound For The Floor: 54%|████████████████████████████████████████████████████████████████████████████▎ | 4.85M/9.02M [01:59<01:41, 43.1kB/s ``` (it finishes - i tried it another time and didn't get the extract expiration invalid parameter message: ``` [∙∙●] Preparing download... ouldn't[∙∙∙] Converting file... ``` so that instead. But in both instances, the album and genre are missing (curiously, the track number was written tho, so it's got SOME of the metadata).
kerem 2026-02-27 04:57:10 +03:00
Author
Owner

@Googolplexed0 commented on GitHub (Jul 9, 2025):

First off, that you are keeping zotify working is incredible!

Thanks, I'm doing my best.

Now i know that album should be def available, i'm unsure of genre

Album name should indeed always be written. Genres do exist, but only on a per-artist basis, and this is what is written to the genre metadata tag.

I checked the provided track myself and am seeing no issues with either the album name "As Good As Dead" or the genres "grunge, post-grunge". Can you confirm that the MD_SAVE_GENRES config is set to True? Providing a full config would be helpful.

<!-- gh-comment-id:3050638759 --> @Googolplexed0 commented on GitHub (Jul 9, 2025): > First off, that you are keeping zotify working is incredible! Thanks, I'm doing my best. > Now i know that album should be def available, i'm unsure of genre Album name should indeed always be written. Genres do exist, but only on a per-artist basis, and this is what is written to the genre metadata tag. I checked the provided track myself and am seeing no issues with either the album name "As Good As Dead" or the genres "grunge, post-grunge". Can you confirm that the MD_SAVE_GENRES config is set to True? Providing a full config would be helpful.
Author
Owner

@aleks-mariusz commented on GitHub (Jul 9, 2025):

ahh yes i guess it oculd be something about my settings:

{
    "SAVE_CREDENTIALS": "True",
    "CREDENTIALS_LOCATION": "",
    "OUTPUT": "",
    "ROOT_PATH": "",
    "ROOT_PODCAST_PATH": "",
    "SPLIT_ALBUM_DISCS": "False",
    "DOWNLOAD_LYRICS": "True",
    "MD_SAVE_GENRES": "False", <-- Indeed this was not set to True - why is this defaulted to False?
    "MD_ALLGENRES": "False",
    "MD_GENREDELIMITER": ",",
    "DOWNLOAD_FORMAT": "mp3",
    "DOWNLOAD_QUALITY": "auto",
    "TRANSCODE_BITRATE": "auto",
    "SKIP_EXISTING": "True",
    "SKIP_PREVIOUSLY_DOWNLOADED": "False",
    "RETRY_ATTEMPTS": "1",
    "BULK_WAIT_TIME": "1",
    "CHUNK_SIZE": "20000",
    "DOWNLOAD_REAL_TIME": "True",
    "LANGUAGE": "en",
    "PRINT_SPLASH": "False",
    "PRINT_SKIPS": "True",
    "PRINT_DOWNLOAD_PROGRESS": "True",
    "PRINT_ERRORS": "True",
    "PRINT_DOWNLOADS": "False",
    "PRINT_API_ERRORS": "True",
    "PRINT_PROGRESS_INFO": "True",
    "PRINT_WARNINGS": "True",
    "TEMP_DOWNLOAD_DIR": ""
}

So indeed, MD_SAVE_GENRES was not set to True - but what's the diff between that and MD_ALLGENRES ?? If i had to guess, i suppose that ALLGENRES saves multiple genres?

Anyway i just started to use Zotify yesterday, and then curiously, i got an email from spotify today:

Hi

To protect your Spotify account, we've reset your password due to detected suspicious activity.

You need to create a new password to log back in. Just click the big green button.

I wonder if they detected i'm using zotify ? I purposefully set DOWNLOAD_REAL_TIME to True to make ti seem as much like a client just playing music..

i'm wondering if it's related to zotify having to do the 'Loggin in' bit everytime i run it? Can't it save the session and just resume it rather than re-log in everytime (or am i misunderstanding what that part of running zotify is doing).

<!-- gh-comment-id:3052006210 --> @aleks-mariusz commented on GitHub (Jul 9, 2025): ahh yes i guess it oculd be something about my settings: ``` { "SAVE_CREDENTIALS": "True", "CREDENTIALS_LOCATION": "", "OUTPUT": "", "ROOT_PATH": "", "ROOT_PODCAST_PATH": "", "SPLIT_ALBUM_DISCS": "False", "DOWNLOAD_LYRICS": "True", "MD_SAVE_GENRES": "False", <-- Indeed this was not set to True - why is this defaulted to False? "MD_ALLGENRES": "False", "MD_GENREDELIMITER": ",", "DOWNLOAD_FORMAT": "mp3", "DOWNLOAD_QUALITY": "auto", "TRANSCODE_BITRATE": "auto", "SKIP_EXISTING": "True", "SKIP_PREVIOUSLY_DOWNLOADED": "False", "RETRY_ATTEMPTS": "1", "BULK_WAIT_TIME": "1", "CHUNK_SIZE": "20000", "DOWNLOAD_REAL_TIME": "True", "LANGUAGE": "en", "PRINT_SPLASH": "False", "PRINT_SKIPS": "True", "PRINT_DOWNLOAD_PROGRESS": "True", "PRINT_ERRORS": "True", "PRINT_DOWNLOADS": "False", "PRINT_API_ERRORS": "True", "PRINT_PROGRESS_INFO": "True", "PRINT_WARNINGS": "True", "TEMP_DOWNLOAD_DIR": "" } ``` So indeed, MD_SAVE_GENRES was not set to True - but what's the diff between that and MD_ALLGENRES ?? If i had to guess, i suppose that ALLGENRES saves multiple genres? Anyway i just started to use Zotify yesterday, and then curiously, i got an email from spotify today: ``` Hi To protect your Spotify account, we've reset your password due to detected suspicious activity. You need to create a new password to log back in. Just click the big green button. ``` I wonder if they detected i'm using zotify ? I purposefully set `DOWNLOAD_REAL_TIME` to True to make ti seem as much like a client just playing music.. i'm wondering if it's related to zotify having to do the 'Loggin in' bit everytime i run it? Can't it save the session and just resume it rather than re-log in everytime (or am i misunderstanding what that part of running zotify is doing).
Author
Owner

@Googolplexed0 commented on GitHub (Jul 9, 2025):

Indeed this was not set to True - why is this defaulted to False?

That was the default value for MD_SAVE_GENRES in the original repo and I was reluctant to change any of the old defaults. It may be worth doing if enough people don't check the available configs before using. Turn that on and retry the track, see if the tags are correct now. Still very confused about the lack of an album name though, that shouldn't ever have issues.

If i had to guess, i suppose that ALLGENRES saves multiple genres?

Correct, MD_SAVE_GENRES enables genre saving, ALLGENRES tells the metadata to include more than just the first genre available, and MD_GENREDELIMITER affects whether multiple genres are stored as an array or single (delimited) string.

Anyway i just started to use Zotify yesterday, and then curiously, i got an email

This has started happening recently, I assume it's just them wanting to confirm your account hasn't been hacked because its credentials are being used in a 3rd party application. It only happens once AFAIK. Do let me know if they take any action against your account.

i'm wondering if it's related to zotify having to do the 'Loggin in' bit everytime i run it? Can't it save the session and just resume it rather than re-log in everytime (or am i misunderstanding what that part of running zotify is doing).

It may be theoretically possible to reuse a session, but sessions can expire if a user takes too long (~3 minutes) to input selections with the interactive functions, so I doubt a session's lifespan is long enough to implement anything.

<!-- gh-comment-id:3054417903 --> @Googolplexed0 commented on GitHub (Jul 9, 2025): > Indeed this was not set to True - why is this defaulted to False? That was the default value for MD_SAVE_GENRES in the original repo and I was reluctant to change any of the old defaults. It may be worth doing if enough people don't check the available configs before using. Turn that on and retry the track, see if the tags are correct now. Still very confused about the lack of an album name though, that shouldn't ever have issues. > If i had to guess, i suppose that ALLGENRES saves multiple genres? Correct, MD_SAVE_GENRES enables genre saving, ALLGENRES tells the metadata to include more than just the first genre available, and MD_GENREDELIMITER affects whether multiple genres are stored as an array or single (delimited) string. > Anyway i just started to use Zotify yesterday, and then curiously, i got an email This has started happening recently, I assume it's just them wanting to confirm your account hasn't been hacked because its credentials are being used in a 3rd party application. It only happens once AFAIK. Do let me know if they take any action against your account. > i'm wondering if it's related to zotify having to do the 'Loggin in' bit everytime i run it? Can't it save the session and just resume it rather than re-log in everytime (or am i misunderstanding what that part of running zotify is doing). It may be theoretically possible to reuse a session, but sessions can expire if a user takes too long (~3 minutes) to input selections with the interactive functions, so I doubt a session's lifespan is long enough to implement anything.
Author
Owner

@aleks-mariusz commented on GitHub (Jul 10, 2025):

confused about the lack of an album name though

ok i feel silly but i figured out the issue is on my end.. it's friggen VLC's problem not zotify's.. in-fact macos quickview showed me the song's album tag is properly set, so it's something about vlc's implementation of id3 tag reading that seems broken..

also confirmed with ffprobe:

==<~/Music/Zotify Music/Local H/As Good As Dead>==
[pts/ttys022!4925]$ ffprobe *3
ffprobe version 7.1.1 Copyright (c) 2007-2025 the FFmpeg developers
  built with Apple clang version 16.0.0 (clang-1600.0.26.6)
  configuration: --prefix=/opt/homebrew/Cellar/ffmpeg/7.1.1_3 --enable-shared --enable-pthreads --enable-version3 --cc=clang --host-cflags= --host-ldflags='-Wl,-ld_classic' --enable-ffplay --enable-gnutls --enable-gpl --enable-libaom --enable-libaribb24 --enable-libbluray --enable-libdav1d --enable-libharfbuzz --enable-libjxl --enable-libmp3lame --enable-libopus --enable-librav1e --enable-librist --enable-librubberband --enable-libsnappy --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtesseract --enable-libtheora --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libxvid --enable-lzma --enable-libfontconfig --enable-libfreetype --enable-frei0r --enable-libass --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libspeex --enable-libsoxr --enable-libzmq --enable-libzimg --disable-libjack --disable-indev=jack --enable-videotoolbox --enable-audiotoolbox --enable-neon
  libavutil      59. 39.100 / 59. 39.100
  libavcodec     61. 19.101 / 61. 19.101
  libavformat    61.  7.100 / 61.  7.100
  libavdevice    61.  3.100 / 61.  3.100
  libavfilter    10.  4.100 / 10.  4.100
  libswscale      8.  3.100 /  8.  3.100
  libswresample   5.  3.100 /  5.  3.100
  libpostproc    58.  3.100 / 58.  3.100
Input #0, mp3, from 'Local H_Bound For The Floor.mp3':
  Metadata:
    title           : Bound For The Floor
    artist          : Local H
    track           : 3/13
    album           : As Good As Dead
    disc            : 1/0
    TDOR            : 1996
    encoder         : Lavf61.7.100
    album_artist    : Local H
    lyrics-eng      : [00:17.30]Born to be down
                    : [00:21.36]I've learned all my lessons before now
                    : [00:25.49]Born to be down
                    : [00:29.27]I think you'll get used to it
[...snip...]
                    : [03:27.73]And you don't
                    : [03:28.96]
                    :
  Duration: 00:03:43.01, start: 0.025056, bitrate: 324 kb/s
  Stream #0:0: Audio: mp3 (mp3float), 44100 Hz, stereo, fltp, 320 kb/s
      Metadata:
        encoder         : Lavc61.19
  Stream #0:1: Video: mjpeg (Baseline), yuvj444p(pc, bt470bg/unknown/unknown), 630x640 [SAR 118:118 DAR 63:64], 90k tbr, 90k tbn (attached pic)
      Metadata:
        title           : 0
        comment         : Cover (front)

the tags (at least album, since MD_SAVEGENRE i had not yet set to True) seem to be there this whole time :-/

sorry for the false alarm, i'll now need to figure out why vlc's is misbehaving instead

just them wanting to confirm your account hasn't been hacked because its credentials are being used in a 3rd party application

thanks for the re-assurance, hopefully that's just all and i'll have no further issues - if i do i'll post here

<!-- gh-comment-id:3056813223 --> @aleks-mariusz commented on GitHub (Jul 10, 2025): > confused about the lack of an album name though ok i feel silly but i figured out the issue is on my end.. it's friggen VLC's problem not zotify's.. in-fact macos quickview showed me the song's album tag **is** properly set, so it's something about vlc's implementation of id3 tag reading that seems broken.. also confirmed with ffprobe: ``` ==<~/Music/Zotify Music/Local H/As Good As Dead>== [pts/ttys022!4925]$ ffprobe *3 ffprobe version 7.1.1 Copyright (c) 2007-2025 the FFmpeg developers built with Apple clang version 16.0.0 (clang-1600.0.26.6) configuration: --prefix=/opt/homebrew/Cellar/ffmpeg/7.1.1_3 --enable-shared --enable-pthreads --enable-version3 --cc=clang --host-cflags= --host-ldflags='-Wl,-ld_classic' --enable-ffplay --enable-gnutls --enable-gpl --enable-libaom --enable-libaribb24 --enable-libbluray --enable-libdav1d --enable-libharfbuzz --enable-libjxl --enable-libmp3lame --enable-libopus --enable-librav1e --enable-librist --enable-librubberband --enable-libsnappy --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtesseract --enable-libtheora --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libxvid --enable-lzma --enable-libfontconfig --enable-libfreetype --enable-frei0r --enable-libass --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libspeex --enable-libsoxr --enable-libzmq --enable-libzimg --disable-libjack --disable-indev=jack --enable-videotoolbox --enable-audiotoolbox --enable-neon libavutil 59. 39.100 / 59. 39.100 libavcodec 61. 19.101 / 61. 19.101 libavformat 61. 7.100 / 61. 7.100 libavdevice 61. 3.100 / 61. 3.100 libavfilter 10. 4.100 / 10. 4.100 libswscale 8. 3.100 / 8. 3.100 libswresample 5. 3.100 / 5. 3.100 libpostproc 58. 3.100 / 58. 3.100 Input #0, mp3, from 'Local H_Bound For The Floor.mp3': Metadata: title : Bound For The Floor artist : Local H track : 3/13 album : As Good As Dead disc : 1/0 TDOR : 1996 encoder : Lavf61.7.100 album_artist : Local H lyrics-eng : [00:17.30]Born to be down : [00:21.36]I've learned all my lessons before now : [00:25.49]Born to be down : [00:29.27]I think you'll get used to it [...snip...] : [03:27.73]And you don't : [03:28.96] : Duration: 00:03:43.01, start: 0.025056, bitrate: 324 kb/s Stream #0:0: Audio: mp3 (mp3float), 44100 Hz, stereo, fltp, 320 kb/s Metadata: encoder : Lavc61.19 Stream #0:1: Video: mjpeg (Baseline), yuvj444p(pc, bt470bg/unknown/unknown), 630x640 [SAR 118:118 DAR 63:64], 90k tbr, 90k tbn (attached pic) Metadata: title : 0 comment : Cover (front) ``` the tags (at least album, since `MD_SAVEGENRE` i had not yet set to True) seem to be there this whole time :-/ sorry for the false alarm, i'll now need to figure out why vlc's is misbehaving instead > just them wanting to confirm your account hasn't been hacked because its credentials are being used in a 3rd party application thanks for the re-assurance, hopefully that's just all and i'll have no further issues - if i do i'll post here
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/zotify#27
No description provided.