Загрузка обложки в оригинальном качестве

This commit is contained in:
Lev Plyusnin 2024-11-17 20:48:19 +07:00
parent a9222daf84
commit 0dde8d48b2
No known key found for this signature in database
GPG key ID: 21C6C2C9C0A4460D
3 changed files with 15 additions and 4 deletions

View file

@ -91,7 +91,7 @@ options:
--add-lyrics Загружать тексты песен --add-lyrics Загружать тексты песен
--embed-cover Встраивать обложку в аудиофайл --embed-cover Встраивать обложку в аудиофайл
--cover-resolution <Разрешение обложки> --cover-resolution <Разрешение обложки>
по умолчанию: 400 Разрешение обложки (в пикселях). Передайте "original" для загрузки в оригинальном (наилучшем) разрешении (по умолчанию: 400)
--delay <Задержка> Задержка между запросами, в секундах (по умолчанию: 0) --delay <Задержка> Задержка между запросами, в секундах (по умолчанию: 0)
--stick-to-artist Загружать альбомы, созданные только данным исполнителем --stick-to-artist Загружать альбомы, созданные только данным исполнителем
--only-music Загружать только музыкальные альбомы (пропускать подкасты и аудиокниги) --only-music Загружать только музыкальные альбомы (пропускать подкасты и аудиокниги)

View file

@ -49,6 +49,12 @@ def compatibility_level_arg(astr: str) -> int:
) )
def cover_resolution_arg(astr: str) -> int:
if astr == "original":
return -1
return int(astr)
def main(): def main():
parser = argparse.ArgumentParser( parser = argparse.ArgumentParser(
description="Загрузчик музыки с сервиса Яндекс.Музыка", description="Загрузчик музыки с сервиса Яндекс.Музыка",
@ -76,8 +82,10 @@ def main():
"--cover-resolution", "--cover-resolution",
default=core.DEFAULT_COVER_RESOLUTION, default=core.DEFAULT_COVER_RESOLUTION,
metavar="<Разрешение обложки>", metavar="<Разрешение обложки>",
type=int, type=cover_resolution_arg,
help=show_default(None), help=show_default(
'Разрешение обложки (в пикселях). Передайте "original" для загрузки в оригинальном (наилучшем) разрешении'
),
) )
common_group.add_argument( common_group.add_argument(
"--delay", "--delay",

View file

@ -218,7 +218,10 @@ def download_track(
cover = None cover = None
if track.cover_uri is not None: if track.cover_uri is not None:
cover_size = f"{cover_resolution}x{cover_resolution}" if cover_resolution == -1:
cover_size = "orig"
else:
cover_size = f"{cover_resolution}x{cover_resolution}"
if embed_cover: if embed_cover:
album_id = album.id album_id = album.id
if album_id and (cached_cover := covers_cache.get(album_id)): if album_id and (cached_cover := covers_cache.get(album_id)):