BobbyESP / Spowlo

A Spotify songs downloader for Android made with Jetpack Compose, Material You and the spotDL Python library
https://t.me/spowlo_chatroom
GNU General Public License v3.0
957 stars 19 forks source link

getting error while downloading runaway aurora song #12

Closed venkat2305 closed 1 year ago

venkat2305 commented 1 year ago

image

for error report https://github.com/BobbyESP/spotdl-android/issues/9#issuecomment-1432988946

BobbyESP commented 1 year ago

IMG_20230216_131322.jpg

This is an spotDL error. Will report it to the python lib.

BobbyESP commented 1 year ago

Today I think I will finally release the first version of Spowlo here, in GitHub, so wait for today's release. I improved the error reporting hugely

BobbyESP commented 1 year ago

The first version of Spowlo was released!

BobbyESP commented 1 year ago

Can you report if tue problem has been solved?

venkat2305 commented 1 year ago

Nope. It is still there

App version: 1.0.0 (10000) Device information: Android 12 (API 31) Supported ABIs: [arm64-v8a, armeabi-v7a, armeabi] spotDL version: Hand-imported v4.1.0 (Preview)

URL: runaway aurora Error executing command: [/data/app/dQV5NBLrHmN6L8-GC7Fn5w==/com.bobbyesp.spowlo-qz22wxVtyi_V5qZhg0f8zA==/lib/arm64/libpython.bin.so, /data/user/0/com.bobbyesp.spowlo/no_backup/spotdl_android/spotdl/spotdl_bin, download, https://open.spotify.com/track/23rdcrD0Eky4vYn2TZidxJ, --output, /storage/emulated/0/Download/Spowlo, --ytm-data, --lyrics, synced, --bitrate, disable, --format, m4a, --no-cache, --ffmpeg, /data/app/dQV5NBLrHmN6L8-GC7Fn5w==/com.bobbyesp.spowlo-qz22wxVtyi_V5qZhg0f8zA==/lib/arm64/libffmpeg.bin.so], exit code: 1, stderr:

stdout: Processing query: https://open.spotify.com/track/23rdcrD0Eky4vYn2TZidxJ
AURORA - Runaway Download Started ━━━━━━━━━━━━━━━━━━━━━━━ 0% -:--:-- AURORA - Runaway Download Started ━━━━━━━━━━━━━━━━━━━━━━━ 0% -:--:-- AURORA - Runaway Download Started ━━━━━━━━━━━━━━━━━━━━━━━ 0% -:--:-- AURORA - Runaway Download Started ━━━━━━━━━━━━━━━━━━━━━━━ 0% -:--:-- AURORA - Runaway Download Started ━━━━━━━━━━━━━━━━━━━━━━━ 0% -:--:-- AURORA - Runaway Download Started ━━━━━━━━━━━━━━━━━━━━━━━ 0% -:--:-- AURORA - Runaway Download Started ━━━━━━━━━━━━━━━━━━━━━━━ 0% -:--:-- AURORA - Runaway Download Started ━━━━━━━━━━━━━━━━━━━━━━━ 0% -:--:-- AURORA - Runaway Download Started ━━━━━━━━━━━━━━━━━━━━━━━ 0% -:--:-- AURORA - Runaway Download Started ━━━━━━━━━━━━━━━━━━━━━━━ 0% -:--:-- AURORA - Runaway Download Started ━━━━━━━━━━━━━━━━━━━━━━━ 0% -:--:-- AURORA - Runaway Download Started ━━━━━━━━━━━━━━━━━━━━━━━ 0% -:--:-- AURORA - Runaway Download Started ━━━━━━━━━━━━━━━━━━━━━━━ 0% -:--:-- AURORA - Runaway Download Started ━━━━━━━━━━━━━━━━━━━━━━━ 0% -:--:-- AURORA - Runaway Download Started ━━━━━━━━━━━━━━━━━━━━━━━ 0% -:--:-- An error occurred
╭───────────────────── Traceback (most recent call last) ──────────────────────╮ │ /data/user/0/com.bobbyesp.spowlo/no_backup/spotdl_android/spotdl/spotdl_bin/ │ │ spotdl/console/entry_point.py:120 in console_entry_point │ │ │ │ [Errno 20] Not a directory: │ │ '/data/user/0/com.bobbyesp.spowlo/no_backup/spotdl_android/spotdl/spotdl_bin │ │ /spotdl/console/entry_point.py' │ │ │ │ /data/user/0/com.bobbyesp.spowlo/no_backup/spotdl_android/spotdl/spotdl_bin/ │ │ spotdl/console/download.py:28 in download │ │ │ │ [Errno 20] Not a directory: │ │ '/data/user/0/com.bobbyesp.spowlo/no_backup/spotdl_android/spotdl/spotdl_bin │ │ /spotdl/console/download.py' │ │ │ │ /data/user/0/com.bobbyesp.spowlo/no_backup/spotdl_android/spotdl/spotdl_bin/ │ │ spotdl/download/downloader.py:250 in download_multiple_songs │ │ │ │ [Errno 20] Not a directory: │ │ '/data/user/0/com.bobbyesp.spowlo/no_backup/spotdl_android/spotdl/spotdl_bin │ │ /spotdl/download/downloader.py' │ │ │ │ /data/user/0/com.bobbyesp.spowlo/no_backup/spotdl_android/packages/python/us │ │ r/lib/python3.8/asyncio/base_events.py:608 in run_until_complete │ │ │ │ 605 │ │ if not future.done(): │ │ 606 │ │ │ raise RuntimeError('Event loop stopped before Future comp │ │ 607 │ │ │ │ ❱ 608 │ │ return future.result() │ │ 609 │ │ │ 610 │ def stop(self): │ │ 611 │ │ """Stop running the event loop. │ │ │ │ /data/user/0/com.bobbyesp.spowlo/no_backup/spotdl_android/spotdl/spotdl_bin/ │ │ spotdl/download/downloader.py:307 in pool_download │ │ │ │ [Errno 20] Not a directory: │ │ '/data/user/0/com.bobbyesp.spowlo/no_backup/spotdl_android/spotdl/spotdl_bin │ │ /spotdl/download/downloader.py' │ │ │ │ /data/user/0/com.bobbyesp.spowlo/no_backup/spotdl_android/packages/python/us │ │ r/lib/python3.8/concurrent/futures/thread.py:57 in run │ │ │ │ 54 │ │ │ return │ │ 55 │ │ │ │ 56 │ │ try: │ │ ❱ 57 │ │ │ result = self.fn(*self.args, **self.kwargs) │ │ 58 │ │ except BaseException as exc: │ │ 59 │ │ │ self.future.set_exception(exc) │ │ 60 │ │ │ # Break a reference cycle with the exception 'exc' │ │ │ │ /data/user/0/com.bobbyesp.spowlo/no_backup/spotdl_android/spotdl/spotdl_bin/ │ │ spotdl/download/downloader.py:467 in search_and_download │ │ │ │ [Errno 20] Not a directory: │ │ '/data/user/0/com.bobbyesp.spowlo/no_backup/spotdl_android/spotdl/spotdl_bin │ │ /spotdl/download/downloader.py' │ │ │ │ /data/user/0/com.bobbyesp.spowlo/no_backup/spotdl_android/spotdl/spotdl_bin/ │ │ spotdl/download/downloader.py:341 in search_lyrics │ │ │ │ [Errno 20] Not a directory: │ │ '/data/user/0/com.bobbyesp.spowlo/no_backup/spotdl_android/spotdl/spotdl_bin │ │ /spotdl/download/downloader.py' │ │ │ │ /data/user/0/com.bobbyesp.spowlo/no_backup/spotdl_android/spotdl/spotdl_bin/ │ │ spotdl/providers/lyrics/synced.py:33 in get_lyrics │ │ │ │ [Errno 20] Not a directory: │ │ '/data/user/0/com.bobbyesp.spowlo/no_backup/spotdl_android/spotdl/spotdl_bin │ │ /spotdl/providers/lyrics/synced.py' │ │ │ │ /data/user/0/com.bobbyesp.spowlo/no_backup/spotdl_android/packages/python/us │ │ r/lib/python3.8/site-packages/syncedlyrics/init.py:40 in search │ │ │ │ 37 │ lrc = None │ │ 38 │ for provider in _providers: │ │ 39 │ │ logger.debug(f"Looking for an LRC on {provider.class.__name │ │ ❱ 40 │ │ lrc = provider.get_lrc(search_term) │ │ 41 │ │ if is_lrc_valid(lrc, allow_plain_format): │ │ 42 │ │ │ logger.info( │ │ 43 │ │ │ │ f'synced-lyrics found for "{search_term}" on │ │ {provider.class.name}' │ │ │ │ /data/user/0/com.bobbyesp.spowlo/no_backup/spotdl_android/packages/python/us │ │ r/lib/python3.8/site-packages/syncedlyrics/providers/lyricsify.py:30 in │ │ get_lrc │ │ │ │ 27 │ │ href_match = lambda h: h.startswith("/lyric/") │ │ 28 │ │ a_tags_boud = SoupStrainer("a", href=href_match) │ │ 29 │ │ soup = generate_bs4_soup(self.session, url, parse_only=a_tags_b │ │ ❱ 30 │ │ a_tag = soup.find_all("a", string=lambda t: text_match(t) > 80, │ │ 31 │ │ if not a_tag: │ │ 32 │ │ │ return None │ │ 33 │ │ │ │ /data/user/0/com.bobbyesp.spowlo/no_backup/spotdl_android/packages/python/us │ │ r/lib/python3.8/site-packages/bs4/element.py:1892 in find_all │ │ │ │ 1889 │ │ generator = self.descendants │ │ 1890 │ │ if not recursive: │ │ 1891 │ │ │ generator = self.children │ │ ❱ 1892 │ │ return self._find_all(name, attrs, string, limit, generator, │ │ 1893 │ findAll = find_all # BS3 │ │ 1894 │ findChildren = find_all # BS2 │ │ 1895 │ │ │ │ /data/user/0/com.bobbyesp.spowlo/no_backup/spotdl_android/packages/python/us │ │ r/lib/python3.8/site-packages/bs4/element.py:827 in _find_all │ │ │ │ 824 │ │ │ except StopIteration: │ │ 825 │ │ │ │ break │ │ 826 │ │ │ if i: │ │ ❱ 827 │ │ │ │ found = strainer.search(i) │ │ 828 │ │ │ │ if found: │ │ 829 │ │ │ │ │ results.append(found) │ │ 830 │ │ │ │ │ if limit and len(results) >= limit: │ │ │ │ /data/user/0/com.bobbyesp.spowlo/no_backup/spotdl_android/packages/python/us │ │ r/lib/python3.8/site-packages/bs4/element.py:2181 in search │ │ │ │ 2178 │ │ # Don't bother with Tags if we're searching for text. │ │ 2179 │ │ elif isinstance(markup, Tag): │ │ 2180 │ │ │ if not self.string or self.name or self.attrs: │ │ ❱ 2181 │ │ │ │ found = self.search_tag(markup) │ │ 2182 │ │ # If it's text, make sure the text matches. │ │ 2183 │ │ elif isinstance(markup, NavigableString) or \ │ │ 2184 │ │ │ │ isinstance(markup, str): │ │ │ │ /data/user/0/com.bobbyesp.spowlo/no_backup/spotdl_android/packages/python/us │ │ r/lib/python3.8/site-packages/bs4/element.py:2152 in search_tag │ │ │ │ 2149 │ │ │ │ │ found = markup │ │ 2150 │ │ │ │ else: │ │ 2151 │ │ │ │ │ found = markup_name │ │ ❱ 2152 │ │ if found and self.string and not self._matches(found.string, │ │ 2153 │ │ │ found = None │ │ 2154 │ │ return found │ │ 2155 │ │ │ │ /data/user/0/com.bobbyesp.spowlo/no_backup/spotdl_android/packages/python/us │ │ r/lib/python3.8/site-packages/bs4/element.py:2213 in _matches │ │ │ │ 2210 │ │ │ return markup is not None │ │ 2211 │ │ │ │ 2212 │ │ if isinstance(match_against, Callable): │ │ ❱ 2213 │ │ │ return match_against(markup) │ │ 2214 │ │ │ │ 2215 │ │ # Custom callables take the tag as an argument, but all │ │ 2216 │ │ # other ways of matching match the tag name as a string. │ │ │ │ /data/user/0/com.bobbyesp.spowlo/no_backup/spotdl_android/packages/python/us │ │ r/lib/python3.8/site-packages/syncedlyrics/providers/lyricsify.py:30 in │ │ │ │ │ │ 27 │ │ href_match = lambda h: h.startswith("/lyric/") │ │ 28 │ │ a_tags_boud = SoupStrainer("a", href=href_match) │ │ 29 │ │ soup = generate_bs4_soup(self.session, url, parse_only=a_tags_b │ │ ❱ 30 │ │ a_tag = soup.find_all("a", string=lambda t: text_match(t) > 80, │ │ 31 │ │ if not a_tag: │ │ 32 │ │ │ return None │ │ 33 │ │ │ │ /data/user/0/com.bobbyesp.spowlo/no_backup/spotdl_android/packages/python/us │ │ r/lib/python3.8/site-packages/syncedlyrics/providers/lyricsify.py:26 in │ │ │ │ │ │ 23 │ │ # Just processing the a tags whose href attribute starts wi │ │ 24 │ │ # and whose text is similar to the query too. │ │ https://github.com/maxbachmann/RapidFuzz#scorers │ │ 25 │ │ _t = lambda s: s.lower().replace("-", "") │ │ ❱ 26 │ │ text_match = lambda t: rapidfuzz.fuzz.token_sort_ratio(_t(searc │ │ 27 │ │ href_match = lambda h: h.startswith("/lyric/") │ │ 28 │ │ a_tags_boud = SoupStrainer("a", href=href_match) │ │ 29 │ │ soup = generate_bs4_soup(self.session, url, parse_only=a_tags_b │ │ │ │ /data/user/0/com.bobbyesp.spowlo/no_backup/spotdl_android/packages/python/us │ │ r/lib/python3.8/site-packages/syncedlyrics/providers/lyricsify.py:25 in │ │ │ │ │ │ 22 │ │ │ │ 23 │ │ # Just processing the a tags whose href attribute starts wi │ │ 24 │ │ # and whose text is similar to the query too. │ │ https://github.com/maxbachmann/RapidFuzz#scorers │ │ ❱ 25 │ │ _t = lambda s: s.lower().replace("-", "") │ │ 26 │ │ text_match = lambda t: rapidfuzz.fuzz.token_sort_ratio(_t(searc │ │ 27 │ │ href_match = lambda h: h.startswith("/lyric/") │ │ 28 │ │ a_tags_boud = SoupStrainer("a", href=href_match) │ ╰──────────────────────────────────────────────────────────────────────────────╯ AttributeError: 'NoneType' object has no attribute 'lower'

BobbyESP commented 1 year ago

After researching, the synced lyrics seems to be the problem. Will report it to spotDL if you confirm it @venkat2305

venkat2305 commented 1 year ago

Yep. Disabling synced lyrics fixed the issue

gwapocmacky commented 1 year ago

It does fix the downloading issue by disabling synced lyrics, and by far every songs that I have downloaded somewhat includes a synced lyrics even after disabling it

BobbyESP commented 1 year ago

Synced? If the option is disabled, the song will contain lyrics but not synced.