justin025 / onthespot

OnTheSpot is an easy-to-use music downloader built with Python and Qt. Search for songs, albums, or playlists and download them directly to your device.
GNU General Public License v2.0
27 stars 2 forks source link

OGG Cover Art en Lyrics Not embedding with latest DEV rease AppImage and Self Compile from Latest Source #13

Open Tribalwarfare opened 14 hours ago

Tribalwarfare commented 14 hours ago

Version: Latest DEV release/Source Tree and AppImage.

Issue: .ogg format cover art,song info and lyrics still not embedding.

Here are logs dumps from console:

[2024-10-03 11:36:47,123 :: gui.main_ui :: gui/mainui.py -> 567:generate_users_table() :: INFO] -> Accounts table was populated ! [2024-10-03 11:36:47,129 :: gui.main_ui :: gui/mainui.py -> 576: rebuild_threads() :: INFO] -> Spawning DL thread using session : 3705b0b3-dcd8-4dac-be77-232f8f70fc62 [2024-10-03 11:36:47,130 :: worker.downloader.SESSION_DL_TH-3705b0b3-dcd8-4dac-be77-232f8f70fc62 :: worker/downloader.py -> 359: run() :: INFO] -> Download worker SESSION_DL_TH-3705b0b3-dcd8-4dac-be77-232f8f70fc62 is running [2024-10-03 11:37:10,172 :: gui.main_ui :: gui/mainui.py -> 1020:get_search_results() :: INFO] -> Search clicked with value with url https://open.spotify.com/track/6mON860SlvCL3PTWBjVTQj?si=2d26e171a9184d1c [2024-10-03 11:37:10,173 :: gui.main_ui :: gui/mainui.py -> 1066: download_by_url() :: INFO] -> URL download clicked with value https://open.spotify.com/track/6mON860SlvCL3PTWBjVTQj?si=2d26e171a9184d1c [2024-10-03 11:37:10,173 :: utils :: utils/utils.py -> 115:regex_input_for_urls() :: INFO] -> Parsing url 'https://open.spotify.com/track/6mON860SlvCL3PTWBjVTQj?si=2d26e171a9184d1c' [2024-10-03 11:37:10,173 :: utils :: utils/utils.py -> 212: get_url_data() :: INFO] -> Parse result for url 'https://open.spotify.com/track/6mON860SlvCL3PTWBjVTQj?si=2d26e171a9184d1c'-> track, 6mON860SlvCL3PTWBjVTQj [2024-10-03 11:37:10,173 :: gui.main_ui :: gui/mainui.py -> 1207: send_to_pqp() :: INFO] -> Prepared media for parsing, adding to PQP queue ! [2024-10-03 11:37:10,173 :: gui.main_ui :: gui/mainui.py -> 1087: __download_by_url() :: INFO] -> URL "https://open.spotify.com/track/6mON860SlvCL3PTWBjVTQj?si=2d26e171a9184d1c" added to parsing queue [2024-10-03 11:37:10,174 :: worker.utility :: worker/utility.py -> 98: run() :: INFO] -> <librespot.core.Session object at 0x7f81fb2868a0> [2024-10-03 11:37:10,399 :: spotutils :: utils/spotify.py -> 178: sanitize_data() :: INFO] -> Sanitising string: "Die Piesangskille"; Allow path separators: False [2024-10-03 11:37:10,399 :: spotutils :: utils/spotify.py -> 178: sanitize_data() :: INFO] -> Sanitising string: "Almal Gly"; Allow path separators: False [2024-10-03 11:37:10,399 :: spotutils :: utils/spotify.py -> 178: sanitize_data() :: INFO] -> Sanitising string: "Inge"; Allow path separators: False [2024-10-03 11:37:10,399 :: worker.utility :: worker/utility.py -> 69: enqueue_tracks() :: INFO] -> PQP parsing Inge:6mON860SlvCL3PTWBjVTQj <-> track item: Inge:6mON860SlvCL3PTWBjVTQj [2024-10-03 11:37:10,399 :: worker.utility :: worker/utility.py -> 224: run() :: INFO] -> Finished parsing this item ! [2024-10-03 11:37:10,399 :: worker.utility :: worker/utility.py -> 91: run() :: INFO] -> Waiting for new item to parse [2024-10-03 11:37:10,876 :: spotutils :: utils/spotify.py -> 60:check_if_media_in_library() :: INFO] -> Checking if item is in library: <Response [200]> [2024-10-03 11:37:10,877 :: gui.main_ui :: gui/mainui.py -> 488:add_item_to_downloads() :: INFO] -> Adding item to download queue -> media_type:track, media_id: 6mON860SlvCL3PTWBjVTQj, extra_path:, extra_path_as_root: False, Prefix value: '' [2024-10-03 11:37:10,877 :: worker.downloader.SESSION_DL_TH-3705b0b3-dcd8-4dac-be77-232f8f70fc62 :: worker/downloader.py -> 373: run() :: INFO] -> Processing download for track by id '6mON860SlvCL3PTWBjVTQj', Attempt: 0/3 [2024-10-03 11:37:10,878 :: spotutils :: utils/spotify.py -> 178: sanitize_data() :: INFO] -> Sanitising string: "Die Piesangskille"; Allow path separators: False [2024-10-03 11:37:10,878 :: spotutils :: utils/spotify.py -> 178: sanitize_data() :: INFO] -> Sanitising string: "Almal Gly"; Allow path separators: False [2024-10-03 11:37:10,878 :: spotutils :: utils/spotify.py -> 178: sanitize_data() :: INFO] -> Sanitising string: "Inge"; Allow path separators: False [2024-10-03 11:37:13,721 :: worker.downloader.SESSION_DL_TH-3705b0b3-dcd8-4dac-be77-232f8f70fc62 :: worker/downloader.py -> 197: download_track() :: WARNING] -> Force raw is disabled for track by id '6mON860SlvCL3PTWBjVTQj', media converting and tagging will be done ! [2024-10-03 11:37:13,721 :: worker.downloader.SESSION_DL_TH-3705b0b3-dcd8-4dac-be77-232f8f70fc62 :: worker/downloader.py -> 201: download_track() :: INFO] -> Downloaded track by id '6mON860SlvCL3PTWBjVTQj' [2024-10-03 11:37:13,721 :: worker.downloader.SESSION_DL_TH-3705b0b3-dcd8-4dac-be77-232f8f70fc62 :: worker/downloader.py -> 204: download_track() :: INFO] -> Fetching lyrics for track id: 6mON860SlvCL3PTWBjVTQj, True [2024-10-03 11:37:13,995 :: spotutils :: utils/spotify.py -> 160: get_track_lyrics() :: ERROR] -> Failed to get lyrics for track id: 6mON860SlvCL3PTWBjVTQj, [2024-10-03 11:38:39,148 :: gui.main_ui :: gui/mainui.py -> 1020:get_search_results() :: INFO] -> Search clicked with value with url https://open.spotify.com/track/1AG7YrtmqKDQTe3wpBXKhp?si=d07bb34f5db14b9a [2024-10-03 11:38:39,148 :: gui.main_ui :: gui/mainui.py -> 1066: download_by_url() :: INFO] -> URL download clicked with value https://open.spotify.com/track/1AG7YrtmqKDQTe3wpBXKhp?si=d07bb34f5db14b9a [2024-10-03 11:38:39,148 :: utils :: utils/utils.py -> 115:regex_input_for_urls() :: INFO] -> Parsing url 'https://open.spotify.com/track/1AG7YrtmqKDQTe3wpBXKhp?si=d07bb34f5db14b9a' [2024-10-03 11:38:39,148 :: utils :: utils/utils.py -> 212: get_url_data() :: INFO] -> Parse result for url 'https://open.spotify.com/track/1AG7YrtmqKDQTe3wpBXKhp?si=d07bb34f5db14b9a'-> track, 1AG7YrtmqKDQTe3wpBXKhp [2024-10-03 11:38:39,148 :: gui.main_ui :: gui/mainui.py -> 1207: send_to_pqp() :: INFO] -> Prepared media for parsing, adding to PQP queue ! [2024-10-03 11:38:39,148 :: gui.main_ui :: gui/mainui.py -> 1087: download_by_url() :: INFO] -> URL "https://open.spotify.com/track/1AG7YrtmqKDQTe3wpBXKhp?si=d07bb34f5db14b9a" added to parsing queue [2024-10-03 11:38:39,148 :: worker.utility :: worker/utility.py -> 98: run() :: INFO] -> <librespot.core.Session object at 0x7f81fb2868a0> [2024-10-03 11:38:41,558 :: spotutils :: utils/spotify.py -> 178: sanitize_data() :: INFO] -> Sanitising string: "League of Legends"; Allow path separators: False [2024-10-03 11:38:41,558 :: spotutils :: utils/spotify.py -> 178: sanitize_data() :: INFO] -> Sanitising string: "Steve Aoki"; Allow path separators: False [2024-10-03 11:38:41,558 :: spotutils :: utils/spotify.py -> 178: sanitize_data() :: INFO] -> Sanitising string: "REMIX RUMBLE (Steve Aoki Remix)"; Allow path separators: False [2024-10-03 11:38:41,558 :: spotutils :: utils/spotify.py -> 178: sanitize_data() :: INFO] -> Sanitising string: "REMIX RUMBLE"; Allow path separators: False [2024-10-03 11:38:41,558 :: worker.utility :: worker/utility.py -> 69: enqueue_tracks() :: INFO] -> PQP parsing REMIX RUMBLE:1AG7YrtmqKDQTe3wpBXKhp <-> track item: REMIX RUMBLE:1AG7YrtmqKDQTe3wpBXKhp [2024-10-03 11:38:41,559 :: worker.utility :: worker/utility.py -> 224: run() :: INFO] -> Finished parsing this item ! [2024-10-03 11:38:41,559 :: worker.utility :: worker/utility.py -> 91: run() :: INFO] -> Waiting for new item to parse [2024-10-03 11:38:42,109 :: spotutils :: utils/spotify.py -> 60:check_if_media_in_library() :: INFO] -> Checking if item is in library: <Response [200]> [2024-10-03 11:38:42,110 :: gui.main_ui :: gui/mainui.py -> 488:__add_item_to_downloads() :: INFO] -> Adding item to download queue -> media_type:track, media_id: 1AG7YrtmqKDQTe3wpBXKhp, extra_path:, extra_path_as_root: False, Prefix value: '' [2024-10-03 11:38:42,110 :: worker.downloader.SESSION_DL_TH-3705b0b3-dcd8-4dac-be77-232f8f70fc62 :: worker/downloader.py -> 373: run() :: INFO] -> Processing download for track by id '1AG7YrtmqKDQTe3wpBXKhp', Attempt: 0/3 [2024-10-03 11:38:42,111 :: spotutils :: utils/spotify.py -> 178: sanitize_data() :: INFO] -> Sanitising string: "League of Legends"; Allow path separators: False [2024-10-03 11:38:42,111 :: spotutils :: utils/spotify.py -> 178: sanitize_data() :: INFO] -> Sanitising string: "Steve Aoki"; Allow path separators: False [2024-10-03 11:38:42,111 :: spotutils :: utils/spotify.py -> 178: sanitize_data() :: INFO] -> Sanitising string: "REMIX RUMBLE (Steve Aoki Remix)"; Allow path separators: False [2024-10-03 11:38:42,111 :: spotutils :: utils/spotify.py -> 178: sanitize_data() :: INFO] -> Sanitising string: "REMIX RUMBLE"; Allow path separators: False [2024-10-03 11:38:44,442 :: worker.downloader.SESSION_DL_TH-3705b0b3-dcd8-4dac-be77-232f8f70fc62 :: worker/downloader.py -> 197: download_track() :: WARNING] -> Force raw is disabled for track by id '1AG7YrtmqKDQTe3wpBXKhp', media converting and tagging will be done ! [2024-10-03 11:38:44,442 :: worker.downloader.SESSION_DL_TH-3705b0b3-dcd8-4dac-be77-232f8f70fc62 :: worker/downloader.py -> 201: download_track() :: INFO] -> Downloaded track by id '1AG7YrtmqKDQTe3wpBXKhp' [2024-10-03 11:38:44,442 :: worker.downloader.SESSION_DL_TH-3705b0b3-dcd8-4dac-be77-232f8f70fc62 :: worker/downloader.py -> 204: download_track() :: INFO] -> Fetching lyrics for track id: 1AG7YrtmqKDQTe3wpBXKhp, True [2024-10-03 11:38:44,962 :: spotutils :: utils/spotify.py -> 157: get_track_lyrics() :: WARNING] -> Failed to get lyrics for track id: 1AG7YrtmqKDQTe3wpBXKhp, statucode: 404, Text: Failed reading packet! [Errno 104] Connection reset by peer Exception in thread session-packet-receiver: Traceback (most recent call last): File "librespot/core.py", line 1644, in run File "librespot/crypto.py", line 58, in receive_encoded File "librespot/core.py", line 1548, in read ConnectionResetError: [Errno 104] Connection reset by peer

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "threading.py", line 1075, in _bootstrap_inner File "threading.py", line 1012, in run File "librespot/core.py", line 1657, in run File "librespot/core.py", line 959, in reconnect File "librespot/core.py", line 1520, in create ConnectionRefusedError: [Errno 111] Connection refused [2024-10-03 11:45:12,160 :: gui.main_ui :: gui/mainui.py -> 1020:get_search_results() :: INFO] -> Search clicked with value with url https://open.spotify.com/track/6qn9YLKt13AGvpq9jfO8py?si=5b10107a9a014cb7 [2024-10-03 11:45:12,160 :: gui.main_ui :: gui/mainui.py -> 1066: download_by_url() :: INFO] -> URL download clicked with value https://open.spotify.com/track/6qn9YLKt13AGvpq9jfO8py?si=5b10107a9a014cb7 [2024-10-03 11:45:12,160 :: utils :: utils/utils.py -> 115:regex_input_for_urls() :: INFO] -> Parsing url 'https://open.spotify.com/track/6qn9YLKt13AGvpq9jfO8py?si=5b10107a9a014cb7' [2024-10-03 11:45:12,160 :: utils :: utils/utils.py -> 212: get_url_data() :: INFO] -> Parse result for url 'https://open.spotify.com/track/6qn9YLKt13AGvpq9jfO8py?si=5b10107a9a014cb7'-> track, 6qn9YLKt13AGvpq9jfO8py [2024-10-03 11:45:12,160 :: gui.main_ui :: gui/mainui.py -> 1207: send_to_pqp() :: INFO] -> Prepared media for parsing, adding to PQP queue ! [2024-10-03 11:45:12,160 :: gui.main_ui :: gui/mainui.py -> 1087: download_by_url() :: INFO] -> URL "https://open.spotify.com/track/6qn9YLKt13AGvpq9jfO8py?si=5b10107a9a014cb7" added to parsing queue [2024-10-03 11:45:12,160 :: worker.utility :: worker/utility.py -> 98: run() :: INFO] -> <librespot.core.Session object at 0x7f81fb2868a0> [2024-10-03 11:45:12,161 :: worker.utility :: worker/utility.py -> 227: run() :: ERROR] -> Item parsing failed.. Connection error ! Trying to re init parsing account session ! [2024-10-03 11:45:13,501 :: utils :: utils/utils.py -> 35: re_init_session() :: INFO] -> Connectivity check done ! Status code "200" [2024-10-03 11:45:16,112 :: worker.utility :: worker/utility.py -> 91: run() :: INFO] -> Waiting for new item to parse [2024-10-03 11:45:16,112 :: worker.utility :: worker/utility.py -> 98: run() :: INFO] -> <librespot.core.Session object at 0x7f81fb208b00> [2024-10-03 11:45:17,622 :: spotutils :: utils/spotify.py -> 178: sanitize_data() :: INFO] -> Sanitising string: "Rihanna"; Allow path separators: False [2024-10-03 11:45:17,622 :: spotutils :: utils/spotify.py -> 178: sanitize_data() :: INFO] -> Sanitising string: "Calvin Harris"; Allow path separators: False [2024-10-03 11:45:17,622 :: spotutils :: utils/spotify.py -> 178: sanitize_data() :: INFO] -> Sanitising string: "Talk That Talk"; Allow path separators: False [2024-10-03 11:45:17,622 :: spotutils :: utils/spotify.py -> 178: sanitize_data() :: INFO] -> Sanitising string: "We Found Love"; Allow path separators: False [2024-10-03 11:45:17,622 :: worker.utility :: worker/utility.py -> 69: enqueue_tracks() :: INFO] -> PQP parsing We Found Love:6qn9YLKt13AGvpq9jfO8py <-> track item: We Found Love:6qn9YLKt13AGvpq9jfO8py [2024-10-03 11:45:17,622 :: worker.utility :: worker/utility.py -> 224: run() :: INFO] -> Finished parsing this item ! [2024-10-03 11:45:17,622 :: worker.utility :: worker/utility.py -> 91: run() :: INFO] -> Waiting for new item to parse [2024-10-03 11:45:18,053 :: spotutils :: utils/spotify.py -> 60:check_if_media_in_library() :: INFO] -> Checking if item is in library: <Response [200]> [2024-10-03 11:45:18,054 :: gui.main_ui :: gui/mainui.py -> 488:__add_item_to_downloads() :: INFO] -> Adding item to download queue -> media_type:track, media_id: 6qn9YLKt13AGvpq9jfO8py, extra_path:, extra_path_as_root: False, Prefix value: '' [2024-10-03 11:45:18,054 :: worker.downloader.SESSION_DL_TH-3705b0b3-dcd8-4dac-be77-232f8f70fc62 :: worker/downloader.py -> 373: run() :: INFO] -> Processing download for track by id '6qn9YLKt13AGvpq9jfO8py', Attempt: 0/3 [2024-10-03 11:45:18,054 :: spotutils :: utils/spotify.py -> 178: sanitize_data() :: INFO] -> Sanitising string: "Rihanna"; Allow path separators: False [2024-10-03 11:45:18,054 :: spotutils :: utils/spotify.py -> 178: sanitize_data() :: INFO] -> Sanitising string: "Calvin Harris"; Allow path separators: False [2024-10-03 11:45:18,055 :: spotutils :: utils/spotify.py -> 178: sanitize_data() :: INFO] -> Sanitising string: "Talk That Talk"; Allow path separators: False [2024-10-03 11:45:18,055 :: spotutils :: utils/spotify.py -> 178: sanitize_data() :: INFO] -> Sanitising string: "We Found Love"; Allow path separators: False [2024-10-03 11:45:20,214 :: worker.downloader.SESSION_DL_TH-3705b0b3-dcd8-4dac-be77-232f8f70fc62 :: worker/downloader.py -> 197: download_track() :: WARNING] -> Force raw is disabled for track by id '6qn9YLKt13AGvpq9jfO8py', media converting and tagging will be done ! [2024-10-03 11:45:20,214 :: worker.downloader.SESSION_DL_TH-3705b0b3-dcd8-4dac-be77-232f8f70fc62 :: worker/downloader.py -> 201: download_track() :: INFO] -> Downloaded track by id '6qn9YLKt13AGvpq9jfO8py' [2024-10-03 11:45:20,214 :: worker.downloader.SESSION_DL_TH-3705b0b3-dcd8-4dac-be77-232f8f70fc62 :: worker/downloader.py -> 204: download_track() :: INFO] -> Fetching lyrics for track id: 6qn9YLKt13AGvpq9jfO8py, True [2024-10-03 11:45:20,628 :: spotutils :: utils/spotify.py -> 160: get_track_lyrics() :: ERROR] -> Failed to get lyrics for track id: 6qn9YLKt13AGvpq9jfO8py,

PS: Existing file check and changes work well!

justin025 commented 6 hours ago

There is quite a bit of history surrounding with ogg cover art. In an mp3 for instance you must tag the artist tag as 'ARTIST' or cover as 'APIC' and all music players will pick that up, but with ogg files there is no such standard. Take a look at the image below for instance, although my file manager and my metadata editor pick up the cover art, vlc does not.

2024-10-03_02-41

There are a number of things you could consider, I do know that almost every music player supports leaving a file in the same directory called 'cover.png/jpeg' which will override any embedded thumbnails ('save album cover' in advanced settings will do this for you). You could also try changing the thumbnail format from png to some other format as some music players support jpeg but not png and vice versa. In summary, ogg files are known to be quite finicky.

As for the lyrics, I knew someone would find this issue eventually. It requires a premium account and one of my friends running the family plan I was using stopped using spotify mid development of this feature, I guess I'll have to make a free trial account now. I'll take a look at the lyrics issue sometime tomorrow.