Compare commits

...
6 Commits
Author SHA1 Message Date
Oskar Dudziński f5c8e96580 🔖 Bump version to 3.4.4 2026-07-07 15:45:07 +02:00
80a34962e0 📝 Added new templating note (#419)
* docs: document padding behavior

* Improve numeric fields note formatting in templating.md

Updated note formatting for numeric fields in templating documentation.

---------

Co-authored-by: xoconoch <xoconoch@cordovault.com>
Co-authored-by: Oskar Dudziński <56404247+oskvr37@users.noreply.github.com>
2026-06-26 21:04:30 +02:00
Oskar Dudziński 05d63d153e ✨ Added ac4 codecs support 2026-06-09 20:39:43 +02:00
Oskar Dudziński 04de8e677c 🐛 Fixed Auth errors (#374)
* 🐛 Fix core Auth API

* 🔖 Bump version to 3.4.3
2026-05-10 13:22:24 +02:00
Oskar Dudziński d0d146b87f 🔖 Bump version to 3.4.2 2026-05-10 13:18:00 +02:00
mvpetrico 77e488ff30 🐛 Fix core API errors (#367) 2026-05-10 13:16:48 +02:00
5 changed files with 12 additions and 6 deletions

No files matched your search

+4
View File
@@ -47,6 +47,10 @@ Each object type exposes fields you can use inside templates.
| `item.explicit` | Explicit content | `E` | str |
| `item.dolby:(Dolby Atmos)` | Dolby Atmos (track only, `UserFormat`) | `(Dolby Atmos)` | str |
> [!NOTE]
> Numeric fields `item.number` and `item.volume` can be padded with leading zeros
> using `:0<width>d` (e.g. `item.number:02d` → `03`, `item.volume:03d` → `001`).
---
### `album`
+1 -1
View File
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
[project]
name = "tiddl"
version = "3.4.1"
version = "3.4.4"
description = "Download Tidal tracks with CLI downloader."
readme = "README.md"
requires-python = ">=3.13"
+1 -1
View File
@@ -13,7 +13,7 @@ log = logging.getLogger("tiddl")
app = typer.Typer(name="tiddl", no_args_is_help=True, rich_markup_mode="rich")
register_commands(app)
VERSION = "v3.4.1"
VERSION = "v3.4.4"
@app.callback()
+3 -3
View File
@@ -23,9 +23,9 @@ class AuthResponse(BaseModel):
acceptedEULA: bool
created: int | str
updated: int | str
facebookUid: int
appleUid: Optional[str]
googleUid: Optional[str]
facebookUid: Optional[int] = None
appleUid: Optional[str] = None
googleUid: Optional[str] = None
accountLinkCreated: bool
emailVerified: bool
newUser: bool
+3 -1
View File
@@ -6,6 +6,8 @@ from xml.etree.ElementTree import fromstring
from tiddl.core.api.models import TrackStream, VideoStream
DOLBY_CODECS = ["eac3", "ac4"]
def parse_manifest_XML(xml_content: str):
"""
@@ -80,7 +82,7 @@ def parse_track_stream(track_stream: TrackStream) -> tuple[list[str], str]:
file_extension = ".flac"
if track_stream.audioQuality == "HI_RES_LOSSLESS":
file_extension = ".m4a"
elif codecs.startswith("mp4") or codecs == "eac3":
elif codecs.startswith("mp4") or codecs in DOLBY_CODECS:
file_extension = ".m4a"
else:
raise ValueError(f"Unknown codecs `{codecs}` (trackId {track_stream.trackId}")