Closed venkat2305 closed 1 year ago
This is an spotDL error. Will report it to the python lib.
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
The first version of Spowlo was released!
Can you report if tue problem has been solved?
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 │
│ 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 │
│ 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'
After researching, the synced lyrics seems to be the problem. Will report it to spotDL if you confirm it @venkat2305
Yep. Disabling synced lyrics fixed the issue
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
Synced? If the option is disabled, the song will contain lyrics but not synced.
for error report https://github.com/BobbyESP/spotdl-android/issues/9#issuecomment-1432988946