summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorexislow <exislow@users.noreply.github.com>2025-06-29 21:29:39 +0200
committerGitHub <noreply@github.com>2025-06-29 21:29:39 +0200
commit8fa41050ec1fe286ac0d188131af2823cf37a2af (patch)
treeece7e65f1a2900498d60cc9b9144e9180b4eac14
parent1d8d11dcc9e9a1635c2061196003c0e2fb095471 (diff)
parente8ca69fefa869f5e1b518e50a91f7ea51a5838fe (diff)
downloadtidal-dl-ng-8fa41050ec1fe286ac0d188131af2823cf37a2af.tar.gz
Merge pull request #462 from exislow/422-cli-crash-when-the-content-is-no-longer-available
422 cli crash when the content is no longer available
-rw-r--r--tidal_dl_ng/cli.py18
-rw-r--r--tidal_dl_ng/gui.py3
2 files changed, 18 insertions, 3 deletions
diff --git a/tidal_dl_ng/cli.py b/tidal_dl_ng/cli.py
index 3074306..75deba4 100644
--- a/tidal_dl_ng/cli.py
+++ b/tidal_dl_ng/cli.py
@@ -22,6 +22,12 @@ from tidal_dl_ng.constants import CTX_TIDAL, MediaType
from tidal_dl_ng.download import Download
from tidal_dl_ng.helper.path import get_format_template, path_file_settings
from tidal_dl_ng.helper.tidal import (
+ Album,
+ Artist,
+ Mix,
+ Playlist,
+ Track,
+ Video,
all_artist_album_ids,
get_tidal_media_id,
get_tidal_media_type,
@@ -128,13 +134,20 @@ def _download(ctx: typer.Context, urls: list[str], try_login: bool = True) -> bo
continue
+ try:
+ media: Track | Video | Album | Playlist | Mix | Artist = instantiate_media(
+ ctx.obj[CTX_TIDAL].session, media_type, item_id
+ )
+ except Exception:
+ print(f"Media not found (ID: {item_id}). Maybe it is not available anymore.")
+ continue
+
# Download media.
if media_type in [MediaType.TRACK, MediaType.VIDEO]:
download_delay: bool = bool(settings.data.download_delay and urls.index(item) < urls_pos_last)
dl.item(
- media_id=item_id,
- media_type=media_type,
+ media=media,
file_template=file_template,
download_delay=download_delay,
quality_audio=settings.data.quality_audio,
@@ -144,7 +157,6 @@ def _download(ctx: typer.Context, urls: list[str], try_login: bool = True) -> bo
item_ids: [int] = []
if media_type == MediaType.ARTIST:
- media = instantiate_media(ctx.obj[CTX_TIDAL].session, media_type, item_id)
media_type = MediaType.ALBUM
item_ids = item_ids + all_artist_album_ids(media)
else:
diff --git a/tidal_dl_ng/gui.py b/tidal_dl_ng/gui.py
index 9b87958..8f165d2 100644
--- a/tidal_dl_ng/gui.py
+++ b/tidal_dl_ng/gui.py
@@ -618,6 +618,9 @@ class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
result = []
for idx, item in enumerate(items):
+ if not item:
+ continue
+
explicit: str = ""
# Check if item is available on TIDAL.
if hasattr(item, "available") and not item.available: