Ускорение загрузки треков из плейлиста

This commit is contained in:
Lev Plyusnin 2025-04-26 15:55:52 +07:00
parent 557f65aecc
commit 57e6e3bae4
No known key found for this signature in database
GPG key ID: 21C6C2C9C0A4460D
2 changed files with 7 additions and 3 deletions

View file

@ -7,7 +7,7 @@ build-backend = "setuptools.build_meta"
[project]
name = "yandex-music-downloader"
version = "3.4.4b0"
version = "3.4.5b0"
description = "Загрузчик музыки с сервиса Яндекс.Музыка"
requires-python = ">=3.9"
readme = "README.md"

View file

@ -22,6 +22,8 @@ ALBUM_RE = re.compile(r"album/(\d+)$")
ARTIST_RE = re.compile(r"artist/(\d+)$")
PLAYLIST_RE = re.compile(r"([\w\-._]+)/playlists/(\d+)$")
FETCH_PAGE_SIZE = 10
logger = logging.getLogger("yandex-music-downloader")
@ -270,8 +272,10 @@ def main():
def playlist_tracks_gen() -> Generator[Track]:
tracks = playlist.fetch_tracks()
for track in tracks:
yield track.fetch_track()
for i in range(0, len(tracks), FETCH_PAGE_SIZE):
yield from client.tracks(
[track.id for track in tracks[i : i + FETCH_PAGE_SIZE]]
)
result_tracks = playlist_tracks_gen()