summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Honz <exislow+github@gmail.com>2024-01-14 18:10:58 +0100
committerRobert Honz <exislow+github@gmail.com>2024-01-14 18:10:58 +0100
commitaffaae101e67fd2ee1aebc04b2ea1b551fe05d2f (patch)
tree446dc85d74bc4c280eae9c520f4f4a7305b1a822
parent65c29cae291415cbbf0c857d2e108c673a4b2efc (diff)
downloadtidal-dl-ng-affaae101e67fd2ee1aebc04b2ea1b551fe05d2f.tar.gz
♻️ Refactored usage of settings.
-rw-r--r--tidal_dl_ng/download.py13
-rw-r--r--tidal_dl_ng/model/cfg.py12
2 files changed, 11 insertions, 14 deletions
diff --git a/tidal_dl_ng/download.py b/tidal_dl_ng/download.py
index beaa540..3da8e05 100644
--- a/tidal_dl_ng/download.py
+++ b/tidal_dl_ng/download.py
@@ -44,11 +44,12 @@ class RequestsClient:
class Download:
- # TODO: Implement download cover 1280.
+ settings: Settings = None
session: Session = None
skip_existing: SkipExisting = False
def __init__(self, session: Session, skip_existing: SkipExisting = SkipExisting.Disabled):
+ self.settings = Settings()
self.session = session
self.skip_existing = skip_existing
@@ -214,7 +215,7 @@ class Download:
# Download media.
tmp_path_file = self._download(fn_logger, media, progress, progress_gui, stream_manifest, tmp_path_file)
- if isinstance(media, Video):
+ if isinstance(media, Video) and self.settings.data.video_convert_mp4:
# TODO: Make optional.
# Convert `*.ts` file to `*.mp4` using ffmpeg
tmp_path_file = self._video_convert(tmp_path_file)
@@ -235,7 +236,6 @@ class Download:
return f"https://resources.tidal.com/images/{sid.replace('-', '/')}/{dimension.value}.jpg"
def metadata_write(self, track: Track, path_file: str):
- settings: Settings = Settings()
result: bool = False
release_date: str = (
track.album.release_date.strftime("%Y-%m-%d") if track.album and track.album.release_date else ""
@@ -244,7 +244,7 @@ class Download:
isrc: str = track.isrc if hasattr(track, "isrc") else ""
lyrics: str = ""
- if settings.data.lyrics_save:
+ if self.settings.data.lyrics_save:
# Try to retrieve lyrics.
try:
lyrics: str = track.lyrics().subtitles if hasattr(track, "lyrics") else ""
@@ -267,7 +267,7 @@ class Download:
totaltrack=track.album.num_tracks if track.album and track.album.num_tracks else 1,
totaldisc=track.album.num_volumes if track.album and track.album.num_volumes else 1,
discnumber=track.volume_num if track.volume_num else 1,
- url_cover=self.cover_url(track.album.cover, settings.data.metadata_cover_dimension) if track.album else "",
+ url_cover=self.cover_url(track.album.cover, self.settings.data.metadata_cover_dimension) if track.album else "",
)
m.save()
@@ -419,9 +419,8 @@ class Download:
elif mime_type == StreamManifestMimeType.VIDEO.value:
# Parse M3U8 video playlist
m3u8_variant: m3u8.M3U8 = m3u8.load(manifest)
- settings: Settings = Settings()
# Find the desired video resolution or the next best one.
- m3u8_playlist, codecs = self._extract_video_stream(m3u8_variant, settings.data.quality_video.value)
+ m3u8_playlist, codecs = self._extract_video_stream(m3u8_variant, self.settings.data.quality_video.value)
# Populate urls.
stream_urls: list[str] = m3u8_playlist.files
diff --git a/tidal_dl_ng/model/cfg.py b/tidal_dl_ng/model/cfg.py
index d58b3e2..088aa1b 100644
--- a/tidal_dl_ng/model/cfg.py
+++ b/tidal_dl_ng/model/cfg.py
@@ -14,15 +14,16 @@ class Settings:
#album_cover_save: bool = True
lyrics_save: bool = False
# TODO: Implement API KEY selection.
- api_key_index: bool = 0
- album_info_save: bool = False
+ #api_key_index: bool = 0
+ # TODO: Implement album info download to separate file.
+ #album_info_save: bool = False
video_download: bool = True
- multi_thread: bool = False
+ # TODO: Implement multi threading for downloads.
+ #multi_thread: bool = False
download_delay: bool = True
download_base_path: str = "./download"
quality_audio: Quality = Quality.low_320k
quality_video: QualityVideo = QualityVideo.P480
- use_playlist_folder: bool = True
format_album: str = "Albums/{artist_name} - {album_title}/{track_num}. {artist_name} - {track_title}"
format_playlist: str = "Playlists/{playlist_name}/{artist_name} - {track_title}"
format_mix: str = "Mix/{mix_name}/{artist_name} - {track_title}"
@@ -53,9 +54,6 @@ class HelpSettings:
'"HI_RES" (MQA 24 Bit, 96 kHz), "HI_RES_LOSSLESS" (up to 24 Bit, 192 kHz)'
)
quality_video: str = 'Desired video download quality: "360", "480", "720", "1080"'
- use_playlist_folder: str = (
- "Should items of playlist be downloaded to a separate playlist folder or to the tracks folder?"
- )
# TODO: Describe possible variables.
format_album: str = "Where to download albums and how to name the items."
format_playlist: str = "Where to download playlists and how to name the items."