mirror of
https://github.com/Googolplexed0/zotify.git
synced 2026-04-24 22:05:53 +03:00
[GH-ISSUE #29] [Feature Request] Whole Library Lyric Downloader #24
Labels
No labels
bug
considering
discussion
documentation
enhancement
enhancement
good first issue
help wanted
pull-request
question
stale
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/zotify#24
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @PandaBear80 on GitHub (Jul 8, 2025).
Original GitHub issue: https://github.com/Googolplexed0/zotify/issues/29
Originally assigned to: @Googolplexed0 on GitHub.
command that scans an existing music library (folder and subfolders) and downloads all missing lyrics files.
@Googolplexed0 commented on GitHub (Jul 8, 2025):
Maybe. Couldn't this functionality be achieved already by turning on ALWAYS_CHECK_LYRICS, SKIP_EXISTING, SKIP_PREVIOUSLY_DOWNLOADED and then running through the albums/playlists that compose your music library?
@PandaBear80 commented on GitHub (Jul 19, 2025):
Would I have to do that using a link to my Spotify library? I'm wondering if it could work in reverse where the only reference it has to work from is titles of the tracks. I don't have a database of Spotify links for my downloaded library but I do have all the tracks already downloaded.
@PandaBear80 commented on GitHub (Jul 19, 2025):
If I did this, how would running though the albums/playlists work? Would I manually have to do them all one at a time?
@Googolplexed0 commented on GitHub (Jul 19, 2025):
Fundamentally, there isn't any reason why it couldn't perform a search based on each track's title. The problem is that wouldn't be reproducible, couldn't guarantee success, and isn't the purpose of this application. This tool exists to take your music from an external source and copy it to your local computer. Working backwards isn't something I want to do (as far as modifying the functionality of the program) and this isn't a lyrics manager (the lyrics are just a nice bonus when downloading some tracks).
Did you download them using this tool or was it done externally? If through this tool, I may still put together a small
--verify-librarymode that could do something similar to lyric checking using .song_archive/.song_id files. If external, my help won't be too useful.You can always create your own simple automation to call this tool for each track/album individually (time consuming but guaranteed accurate) or create something that picks the first search result (completely automatic but likely to mismatch something). Alternatively, you could create one giant playlist on the music platform with everything in your downloaded library you want to download and run the playlist mode on that.
Go into your local copy of the tool, hardcode a skip to always return true (change
track.pyline 289 toif True:) to never redownload any music, make sure ALWAYS_CHECK_LYRICS is True in your config, and it should always download a lyric file if available.@PandaBear80 commented on GitHub (Jul 20, 2025):
A lot of the library was downloaded using this tool and that functionality would be super useful but some of it was downloaded using draftkinner's fork of zotify. I'm wondering if it'd still work for that portion of the library though...
@Googolplexed0 commented on GitHub (Jul 27, 2025):
@PandaBear80 try out the new v0.9.0, hopefully the implementation works for your mutant library.
-vdoes require that your library be recorded in the global.song_archive(config optionDISABLE_SONG_ARCHIVE = Falseat the time of downloading) to work. Let me know if you encounter any issues.@PandaBear80 commented on GitHub (Aug 13, 2025):
Will do! Thanks for implementing this!
@PandaBear80 commented on GitHub (Oct 17, 2025):
I'm hitting an error:
" zotify -v
WARNING: NO GENRES FOUND
Track_Name: Billie Jean
File "/home/michael/.local/bin/zotify", line 7, in
sys.exit(main())
~~~~^^
File "/home/michael/.local/share/pipx/venvs/zotify/lib/python3.13/site-packages/zotify/main.py", line 119, in main
args.func(args)
~~~~~~~~~^^^^^^
File "/home/michael/.local/share/pipx/venvs/zotify/lib/python3.13/site-packages/zotify/app.py", line 321, in client
update_track_metadata(track_ids[i], track_path, tracks[i])
~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/michael/.local/share/pipx/venvs/zotify/lib/python3.13/site-packages/zotify/track.py", line 160, in update_track_metadata
mismatches = compare_audio_tags(track_path, reliable_tags, unreliable_tags)
File "/home/michael/.local/share/pipx/venvs/zotify/lib/python3.13/site-packages/zotify/utils.py", line 272, in compare_audio_tags
reliable_tags_onfile, unreliable_tags_onfile = get_audio_tags(track_path)
~~~~~~~~~~~~~~^^^^^^^^^^^^
File "/home/michael/.local/share/pipx/venvs/zotify/lib/python3.13/site-packages/zotify/utils.py", line 217, in get_audio_tags
genres = conv_genre_format(tags[GENRE].values)
File "/home/michael/.local/share/pipx/venvs/zotify/lib/python3.13/site-packages/zotify/utils.py", line 155, in conv_genre_format
return genres[0]
~~~~~~^^^
IndexError: list index out of range"