OzymandiasTheGreat / mopidy-ytmusic

Mopidy extension for playling music/managing playlists in Youtube Music
Apache License 2.0
79 stars 28 forks source link

Albums load but tracks don't #38

Open anverx opened 3 years ago

anverx commented 3 years ago

Brand new install, everything seems to be upgraded:

~$ sudo python3 -m pip install --upgrade mopidy-ytmusic
Requirement already up-to-date: mopidy-ytmusic in /usr/local/lib/python3.8/dist-packages (0.3.1)
Requirement already satisfied, skipping upgrade: ytmusicapi<0.20.0,>=0.19.1 in /usr/local/lib/python3.8/dist-packages (from mopidy-ytmusic) (0.19.1)
Requirement already satisfied, skipping upgrade: pytube<11.0,>=10.8 in /usr/local/lib/python3.8/dist-packages (from mopidy-ytmusic) (10.9.3)
Requirement already satisfied, skipping upgrade: Mopidy<4,>=3 in /usr/lib/python3/dist-packages (from mopidy-ytmusic) (3.0.1)
Requirement already satisfied, skipping upgrade: requests>=2.22 in /usr/lib/python3/dist-packages (from ytmusicapi<0.20.0,>=0.19.1->mopidy-ytmusic) (2.22.0)

Albums loaded even with cover art, however none have any tracks in them. Logs are full of:

Sep 06 01:52:37 kitchen-audio mopidy[7509]: AttributeError: 'YTMusicPlaybackProvider' object has no attribute 'should_download'
Sep 06 01:52:37 kitchen-audio mopidy[7509]: WARNING  [Core-10] mopidy.core.tracklist Track is not playable: ytmusic:track:HKynHVVuNR4
Sep 06 01:52:37 kitchen-audio mopidy[7509]: INFO     [YTMusicBackend-3] mopidy_ytmusic YTMusic Found AUDIO_QUALITY_MEDIUM stream with 131837 bitrate for DvHEbKn28QY
Sep 06 01:52:38 kitchen-audio mopidy[7509]: ERROR    [Core-10] mopidy.core.playback YTMusicBackend backend caused an exception.
Sep 06 01:52:38 kitchen-audio mopidy[7509]: Traceback (most recent call last):
Sep 06 01:52:38 kitchen-audio mopidy[7509]:   File "/usr/lib/python3/dist-packages/mopidy/core/playback.py", line 349, in _change
Sep 06 01:52:38 kitchen-audio mopidy[7509]:     if not backend.playback.change_track(pending_tl_track.track).get():
Sep 06 01:52:38 kitchen-audio mopidy[7509]:   File "/usr/lib/python3/dist-packages/pykka/_threading.py", line 45, in get
Sep 06 01:52:38 kitchen-audio mopidy[7509]:     _compat.reraise(*self._data['exc_info'])
Sep 06 01:52:38 kitchen-audio mopidy[7509]:   File "/usr/lib/python3/dist-packages/pykka/_compat/__init__.py", line 29, in reraise
Sep 06 01:52:38 kitchen-audio mopidy[7509]:     raise value
Sep 06 01:52:38 kitchen-audio mopidy[7509]:   File "/usr/lib/python3/dist-packages/pykka/_actor.py", line 193, in _actor_loop
Sep 06 01:52:38 kitchen-audio mopidy[7509]:     response = self._handle_receive(envelope.message)
Sep 06 01:52:38 kitchen-audio mopidy[7509]:   File "/usr/lib/python3/dist-packages/pykka/_actor.py", line 299, in _handle_receive
Sep 06 01:52:38 kitchen-audio mopidy[7509]:     return callee(*message.args, **message.kwargs)
Sep 06 01:52:38 kitchen-audio mopidy[7509]:   File "/usr/local/lib/python3.8/dist-packages/mopidy_ytmusic/playback.py", line 48, in change_track
Sep 06 01:52:38 kitchen-audio mopidy[7509]:     download=self.should_download(uri),
Sep 06 01:52:38 kitchen-audio mopidy[7509]: AttributeError: 'YTMusicPlaybackProvider' object has no attribute 'should_download'
impliedchaos commented 3 years ago

Hmm. Haven't seen that before. Can you try upgrading mopidy? You're on 3.0.1 but the latest is 3.2.0.

anverx commented 3 years ago

after upgrade:

sudo python3 -m pip install --upgrade mopidy-ytmusic
Requirement already up-to-date: mopidy-ytmusic in /usr/local/lib/python3.8/dist-packages (0.3.1)
Requirement already satisfied, skipping upgrade: Mopidy<4,>=3 in /usr/lib/python3/dist-packages (from mopidy-ytmusic) (3.2.0)
Requirement already satisfied, skipping upgrade: ytmusicapi<0.20.0,>=0.19.1 in /usr/local/lib/python3.8/dist-packages (from mopidy-ytmusic) (0.19.1)
Requirement already satisfied, skipping upgrade: pytube<11.0,>=10.8 in /usr/local/lib/python3.8/dist-packages (from mopidy-ytmusic) (10.9.3)
Requirement already satisfied, skipping upgrade: requests>=2.22 in /usr/lib/python3/dist-packages (from ytmusicapi<0.20.0,>=0.19.1->mopidy-ytmusic) (2.22.0)

still traces:

Sep 06 20:04:19 kitchen-audio mopidy[681]: INFO     [MainThread] mopidy_mpd.actor MPD server running at [::ffff:0.0.0.0]:6600
Sep 06 20:04:19 kitchen-audio mopidy[681]: INFO     [MainThread] mopidy.commands Starting GLib mainloop
Sep 06 20:04:21 kitchen-audio mopidy[681]: ERROR    [Thread-4] mopidy_ytmusic YTMusic failed to load auto playlists
Sep 06 20:04:21 kitchen-audio mopidy[681]: Traceback (most recent call last):
Sep 06 20:04:21 kitchen-audio mopidy[681]:   File "/usr/local/lib/python3.8/dist-packages/mopidy_ytmusic/backend.py", line 141, in _get_auto_playlists
Sep 06 20:04:21 kitchen-audio mopidy[681]:     get_continuations(
Sep 06 20:04:21 kitchen-audio mopidy[681]:   File "/usr/local/lib/python3.8/dist-packages/ytmusicapi/parsers/utils.py", line 64, in get_continuations
Sep 06 20:04:21 kitchen-audio mopidy[681]:     contents = get_continuation_contents(results, parse_func)
Sep 06 20:04:21 kitchen-audio mopidy[681]:   File "/usr/local/lib/python3.8/dist-packages/ytmusicapi/parsers/utils.py", line 113, in get_continuation_contents
Sep 06 20:04:21 kitchen-audio mopidy[681]:     return parse_func(continuation[term])
Sep 06 20:04:21 kitchen-audio mopidy[681]:   File "/usr/local/lib/python3.8/dist-packages/mopidy_ytmusic/backend.py", line 139, in <lambda>
Sep 06 20:04:21 kitchen-audio mopidy[681]:     parse_func = lambda contents: parse_auto_playlists(contents)
Sep 06 20:04:21 kitchen-audio mopidy[681]:   File "/usr/local/lib/python3.8/dist-packages/mopidy_ytmusic/backend.py", line 212, in parse_auto_playlists
Sep 06 20:04:21 kitchen-audio mopidy[681]:     stitle = nav(car, CAROUSEL_TITLE + ["text"]).strip()
Sep 06 20:04:21 kitchen-audio mopidy[681]:   File "/usr/local/lib/python3.8/dist-packages/ytmusicapi/parsers/utils.py", line 155, in nav
Sep 06 20:04:21 kitchen-audio mopidy[681]:     raise err
Sep 06 20:04:21 kitchen-audio mopidy[681]:   File "/usr/local/lib/python3.8/dist-packages/ytmusicapi/parsers/utils.py", line 149, in nav
Sep 06 20:04:21 kitchen-audio mopidy[681]:     root = root[k]
Sep 06 20:04:21 kitchen-audio mopidy[681]: KeyError: 'header'
Sep 06 20:04:21 kitchen-audio mopidy[681]: INFO     [Thread-4] mopidy_ytmusic YTMusic Auto Playlists refreshed in 2.59s
Sep 06 20:04:26 kitchen-audio mopidy[681]: Exception in thread Thread-5:
Sep 06 20:04:26 kitchen-audio mopidy[681]: Traceback (most recent call last):
Sep 06 20:04:26 kitchen-audio mopidy[681]:   File "/usr/lib/python3.8/threading.py", line 932, in _bootstrap_inner
Sep 06 20:04:26 kitchen-audio mopidy[681]:     self.run()
Sep 06 20:04:26 kitchen-audio mopidy[681]:   File "/usr/local/lib/python3.8/dist-packages/mopidy_ytmusic/repeating_timer.py", line 18, in run
Sep 06 20:04:26 kitchen-audio mopidy[681]:     self._method()
Sep 06 20:04:26 kitchen-audio mopidy[681]:   File "/usr/local/lib/python3.8/dist-packages/mopidy_ytmusic/backend.py", line 99, in _refresh_youtube_player
Sep 06 20:04:26 kitchen-audio mopidy[681]:     self.playback.update_cipher(playerurl=url)
Sep 06 20:04:26 kitchen-audio mopidy[681]:   File "/usr/local/lib/python3.8/dist-packages/mopidy_ytmusic/playback.py", line 25, in update_cipher
Sep 06 20:04:26 kitchen-audio mopidy[681]:     self.PyTubeCipher = Cipher(js=response.text)
Sep 06 20:04:26 kitchen-audio mopidy[681]:   File "/usr/local/lib/python3.8/dist-packages/pytube/cipher.py", line 43, in __init__
Sep 06 20:04:26 kitchen-audio mopidy[681]:     self.throttling_plan = get_throttling_plan(js)
Sep 06 20:04:26 kitchen-audio mopidy[681]:   File "/usr/local/lib/python3.8/dist-packages/pytube/cipher.py", line 387, in get_throttling_plan
Sep 06 20:04:26 kitchen-audio mopidy[681]:     raw_code = get_throttling_function_code(js)
Sep 06 20:04:26 kitchen-audio mopidy[681]:   File "/usr/local/lib/python3.8/dist-packages/pytube/cipher.py", line 293, in get_throttling_function_code
Sep 06 20:04:26 kitchen-audio mopidy[681]:     name = re.escape(get_throttling_function_name(js))
Sep 06 20:04:26 kitchen-audio mopidy[681]:   File "/usr/local/lib/python3.8/dist-packages/pytube/cipher.py", line 278, in get_throttling_function_name
Sep 06 20:04:26 kitchen-audio mopidy[681]:     raise RegexMatchError(
Sep 06 20:04:26 kitchen-audio mopidy[681]: pytube.exceptions.RegexMatchError: get_throttling_function_name: could not find match for multiple
Sep 06 20:04:27 kitchen-audio mopidy[681]: ERROR    [HttpServer] mopidy_iris.handlers [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1108)
Sep 06 20:05:10 kitchen-audio mopidy[681]: ERROR    [YTMusicBackend-3] mopidy_ytmusic YTMusic failed getting tracks for album "FEmusic_library_privately_owned_release_detailb_po_CMqT8s6MmeqjZxIbMjAwINC_0L4g0LLRgdGC0YDQtdGH0L3QvtC5IgNncG0"
Sep 06 20:05:10 kitchen-audio mopidy[681]: Traceback (most recent call last):
Sep 06 20:05:10 kitchen-audio mopidy[681]:   File "/usr/local/lib/python3.8/dist-packages/mopidy_ytmusic/library.py", line 418, in lookup
Sep 06 20:05:10 kitchen-audio mopidy[681]:     tracks = self.albumToTracks(res, bId)
Sep 06 20:05:10 kitchen-audio mopidy[681]:   File "/usr/local/lib/python3.8/dist-packages/mopidy_ytmusic/library.py", line 866, in albumToTracks
Sep 06 20:05:10 kitchen-audio mopidy[681]:     artist = album["artists"][0]
Sep 06 20:05:10 kitchen-audio mopidy[681]: IndexError: list index out of range
Sep 06 20:05:18 kitchen-audio mopidy[681]: ERROR    [YTMusicBackend-3] mopidy_ytmusic YTMusic failed getting tracks for album "FEmusic_library_privately_owned_release_detailb_po_CMqT8s6MmeqjZxIQZGF5IHdpdGhvdXQgcmFpbiIDZ3Bt"
Sep 06 20:05:18 kitchen-audio mopidy[681]: Traceback (most recent call last):
Sep 06 20:05:18 kitchen-audio mopidy[681]:   File "/usr/local/lib/python3.8/dist-packages/mopidy_ytmusic/library.py", line 418, in lookup
Sep 06 20:05:18 kitchen-audio mopidy[681]:     tracks = self.albumToTracks(res, bId)
Sep 06 20:05:18 kitchen-audio mopidy[681]:   File "/usr/local/lib/python3.8/dist-packages/mopidy_ytmusic/library.py", line 866, in albumToTracks
Sep 06 20:05:18 kitchen-audio mopidy[681]:     artist = album["artists"][0]
Sep 06 20:05:18 kitchen-audio mopidy[681]: IndexError: list index out of range