Closed PanForPancakes closed 1 year ago
Попробуйте скачать другие плейлисты (например автоматически сгенерированные Яндекс музыкой). Проблема сохраняется? Также было бы неплохо увидеть вывод программы с флагом --log-level DEBUG
.
Если кратко: проблема сохраняется с плейлистом от music-blog
(Яндекс Музыка)
Попробовал скачать вот этот плейлист: https://music.yandex.ru/users/music-blog/playlists/1475
~ $ python yandex-music-downloader/main.py --session-id "Yvxxxxxxxxxxxxxxxxxxxx" --url "https://music.yandex.ru/users/music-blog/playlists/1475"
16:27:08 |INFO| Треков: 84
16:27:14 |INFO| Загружается ONEIL/Shot/1 - Shot.mp3
16:27:27 |INFO| Загружается Imanbek/Gone (Da Da Da)/1 - Gone (Da Da Da).mp3
16:27:40 |INFO| Загружается Butch U/Combo/1 - Combo.mp3
^C
Но решил проверить то что я скачиваю треки полностью, а не первые 30 секунд. ...И оказалось что скачиваю первые 30 секунд. Поправил токен по инструкции и попробовал снова.
python yandex-music-downloader/main.py --session-id "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" --url "https://music.yandex.ru/users/music-blog/playlists/1475"
Traceback (most recent call last):
File "/data/data/com.termux/files/home/yandex-music-downloader/main.py", line 386, in <module>
result_tracks = get_playlist(session, args.playlist_id)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/data/data/com.termux/files/home/yandex-music-downloader/main.py", line 228, in get_playlist
tracks = [t for t in tracks if t is not None]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/data/data/com.termux/files/home/yandex-music-downloader/main.py", line 228, in <listcomp>
tracks = [t for t in tracks if t is not None]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/data/data/com.termux/files/home/yandex-music-downloader/main.py", line 100, in from_json
track_position = album_json['trackPosition']
~~~~~~~~~~^^^^^^^^^^^^^^^^^
KeyError: 'trackPosition'
~ $
(Плейлист выше очень большой, если использовать --log-level DEBUG
много json-данных, после их вывода вылетает Traceback)
Создал плейлист с тремя треками и попробовал его скачать с --log-level DEBUG
17:18:08 |DEBUG| Starting new HTTPS connection (1): music.yandex.ru:443
17:18:08 |DEBUG| https://music.yandex.ru:443 "GET /handlers/playlist.jsx?owner=username2023&kinds=1017&lang=ru HTTP/1.1" 400 5611
И тут я обратил внимание на значение owner
Мое имя пользователя выглядит примерно вот так: primer.username2023
Первая часть имени пользователя была обрезана и в значении owner
вышло username2023
Вполне возможно что проблема связана с этим.
Попробовал скачать с другим аккаунтом плейлист от Яндекса (https://music.yandex.ru/users/music-blog/playlists/1475) Проблема осталась, но то что я расписал выше вполне может быть ещё одним (отдельным) багом мешающим скачать плейлист.
Исправил проблему со скачиванием ваших плейлистов в 68e5457fd3a2aabff9140584e714bbe77bbefd30. Для того чтобы помочь вам с проблемой скачивания плейлистов от Яндекса, мне нужны json-данные из отладочного вывода
Для того чтобы помочь вам с проблемой скачивания плейлистов от Яндекса, мне нужны json-данные из отладочного вывода
...И этих данных больше нет, или есть, а нет, опять пропали...
Обновил программу через git pull
, смог начать скачивание своего плейлиста "Мне нравится", но при замене ссылки на https://music.yandex.ru/users/music-blog/playlists/1475 я не получаю какого-то постоянного результата, вывод программы меняется при запуске одной и той же команды.
(команда на 30 строке лога дала json, идентичная команда на 78 уже нет)
Вот лог терминала: terminal_log.txt
Исправил, пробуйте
Проверил, всё работает прекрасно! Спасибо!
Трек из примера использования скачивается, плейлисты нет. OS: Android 12 с Termux (без рута)