Closed alibek2023 closed 1 year ago
Мне кажется лучше кэшировать информацию об альбомах (которая возвращается из функции get_full_album_info
). Можно добавить флаг --enable-caching
при использовании которого кэш будет сохранятся во временной папке. Кэш очищать через 8 часов.
Вам виднее, как лучше делать. Кеширование было бы действительно удобным, только мне кажется, что более эффективным было бы кешировать не album_info, а содержимое result_tracks, чтобы можно было продолжить закачку после остановки скрипта.
Но если поменять логику прохода цикла по альбомам, то можно было бы обойтись без временных файлов.
Фрагмент скрипта начиная с for track in result_tracks
можно было бы выделить в функцию (подпрограмму), а в цикле прохода по альбомам просто вызывать ее.
У некоторых исполнителей очень много альбомов, например у этого: https://music.yandex.ru/artist/84210 Загрузить треки такого исполнителя очень сложно, потому что скрипт вначале пытается считать информацию по всем альбомам, и только потом начинает загружать треки. Но если при считывании информации по альбомам произошла ошибка, то и скрипт прекращает работу; когда альбомов так много, то вероятность такого сбоя велика.
Может быть немного поменять логику работы скрипта? Пусть он загрузит данные по одному альбому, потом загрузит треки альбома, потом будет обрабатывать следующий альбом?