From f980a0c1dd25dd836f4e3dd86209fb579ec20a07 Mon Sep 17 00:00:00 2001 From: Medvidek77 Date: Fri, 14 Feb 2025 20:27:50 +0100 Subject: [PATCH 01/51] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 5d54be7..99a8aba 100644 --- a/README.md +++ b/README.md @@ -21,4 +21,5 @@ - (Optional) use unstable version: `git checkout dev` - Add permissions as root: `chmod +x src/tidler` - Run: `src/tidler` +- (Alternative) look into scripts/ for install scripts - Enjoy! :) \ No newline at end of file From d37e59476f80bfc3f59a1e7270950eb2cc2d4109 Mon Sep 17 00:00:00 2001 From: Medvidek77 Date: Fri, 14 Feb 2025 20:36:21 +0100 Subject: [PATCH 02/51] Update README.md --- README.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 99a8aba..ba29910 100644 --- a/README.md +++ b/README.md @@ -21,5 +21,10 @@ - (Optional) use unstable version: `git checkout dev` - Add permissions as root: `chmod +x src/tidler` - Run: `src/tidler` +<<<<<<< HEAD - (Alternative) look into scripts/ for install scripts -- Enjoy! :) \ No newline at end of file +- Enjoy! :) +======= +- (Alternative) Take a look at the installation scripts in `scripts/` +- Enjoy! :) +>>>>>>> 672c8b8 (Update README.md) From 14952482373922086fc8c069ec587271d573be73 Mon Sep 17 00:00:00 2001 From: Medvidek77 Date: Fri, 14 Feb 2025 20:39:11 +0100 Subject: [PATCH 03/51] Ooops --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index ba29910..d577dc7 100644 --- a/README.md +++ b/README.md @@ -26,5 +26,4 @@ - Enjoy! :) ======= - (Alternative) Take a look at the installation scripts in `scripts/` -- Enjoy! :) ->>>>>>> 672c8b8 (Update README.md) +- Enjoy! :) \ No newline at end of file From f2ffd58606b0dc35347396b6f144aa87f8abae7d Mon Sep 17 00:00:00 2001 From: Medvidek77 Date: Fri, 14 Feb 2025 20:39:47 +0100 Subject: [PATCH 04/51] Ops 2 --- README.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/README.md b/README.md index d577dc7..99a8aba 100644 --- a/README.md +++ b/README.md @@ -21,9 +21,5 @@ - (Optional) use unstable version: `git checkout dev` - Add permissions as root: `chmod +x src/tidler` - Run: `src/tidler` -<<<<<<< HEAD - (Alternative) look into scripts/ for install scripts -- Enjoy! :) -======= -- (Alternative) Take a look at the installation scripts in `scripts/` - Enjoy! :) \ No newline at end of file From d382c0bc70358958fa88cf421f62d553253cb6e5 Mon Sep 17 00:00:00 2001 From: Medvidek77 Date: Fri, 14 Feb 2025 20:40:18 +0100 Subject: [PATCH 05/51] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 99a8aba..4a42ee3 100644 --- a/README.md +++ b/README.md @@ -21,5 +21,5 @@ - (Optional) use unstable version: `git checkout dev` - Add permissions as root: `chmod +x src/tidler` - Run: `src/tidler` -- (Alternative) look into scripts/ for install scripts +- (Alternative) look into scripts/ for install scripts in `scripts/` - Enjoy! :) \ No newline at end of file From 38c11332d9b199f60cce93812552676637ad0618 Mon Sep 17 00:00:00 2001 From: Medvidek77 Date: Fri, 14 Feb 2025 22:41:49 +0100 Subject: [PATCH 06/51] Add experimental version of album search/download --- src/tidler | 64 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 63 insertions(+), 1 deletion(-) diff --git a/src/tidler b/src/tidler index dceb5e3..d08d63c 100755 --- a/src/tidler +++ b/src/tidler @@ -18,6 +18,7 @@ downloadTrack() { curl "$url" -o "$filename" } + searchTrack() { if [ "$#" -ge 1 ]; then track_name="$1" @@ -51,6 +52,66 @@ searchTrack() { done } + +# ---- + +downloadAlbum() { + id="$1" + count=$(curl -s "https://tidal.401658.xyz/album/?id=$id" | jq -r '.[1].totalNumberOfItems') + album_tracks_ids=$(curl -s "https://tidal.401658.xyz/album/?id=305546892" | jq -r '.[1].items[] | .item.id') + + tracks_ids_list=() + while IFS= read -r list; do + tracks_ids_list+=("$list") + done <<< "$album_tracks_ids" + + for i in "${tracks_ids_list[@]}" + do + downloadTrack "$i" + #echo "$i" + done + +} + +searchAlbum() { + if [ "$#" -ge 1 ]; then + album_name="$1" + else + echo "Enter album name:" + read -r album_name + fi + + album_name=$(echo "$album_name" | sed 's/ /%20/g') + albums=$(curl -s "https://tidal.401658.xyz/search/?al=$album_name" | jq -r '.albums.items[] | "\(.id): \(.title)"') + + albums_list=() + while IFS= read -r list; do + albums_list+=("$list") + done <<< "$albums" + + if [ "${#albums_list[@]}" -eq 1 ]; then + echo "No albums found :(" + exit 1 + fi + + PS3="Please select an album: " + select t in "${albums_list[@]}"; do + if [ -n "$t" ]; then + album_id=$(echo "$t" | awk -F ' - ' '{print $1}') + echo "You selected: $t" + downloadAlbum "$album_id" + break + else + echo "Invalid selection. Please try again." + fi + done +} + + + + + + echo "Welcome to TiDLer -> Tidal music downloader" && echo "" if [ "$1" = "search" ]; then @@ -67,6 +128,8 @@ elif [ "$1" = "download" ]; then else downloadTrack fi +elif [ "$1" = "album" ]; then + searchAlbum else echo "Choose 1 for download track or 2 for search track and download" read option @@ -76,4 +139,3 @@ else searchTrack fi fi - From 23ac878b9d06c380ed8172997cde888c5c9cc6d3 Mon Sep 17 00:00:00 2001 From: Medvidek77 Date: Fri, 14 Feb 2025 22:51:56 +0100 Subject: [PATCH 07/51] Whitespaces... --- src/tidler | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/src/tidler b/src/tidler index d08d63c..6cd0fc0 100755 --- a/src/tidler +++ b/src/tidler @@ -1,5 +1,6 @@ #!/bin/bash + downloadTrack() { if [ "$#" -ge 1 ]; then echo "Downloading track with ID: $1" @@ -53,8 +54,6 @@ searchTrack() { } -# ---- - downloadAlbum() { id="$1" count=$(curl -s "https://tidal.401658.xyz/album/?id=$id" | jq -r '.[1].totalNumberOfItems') @@ -73,6 +72,7 @@ downloadAlbum() { } + searchAlbum() { if [ "$#" -ge 1 ]; then album_name="$1" @@ -108,10 +108,6 @@ searchAlbum() { } - - - - echo "Welcome to TiDLer -> Tidal music downloader" && echo "" if [ "$1" = "search" ]; then From 71c8f38ac6e2626e60dc5443d1c0fb161872d28e Mon Sep 17 00:00:00 2001 From: Medvidek77 Date: Sat, 15 Feb 2025 00:07:26 +0100 Subject: [PATCH 08/51] Update some minor things --- scripts/ArchLinux/ PKGBUILD-git | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 scripts/ArchLinux/ PKGBUILD-git diff --git a/scripts/ArchLinux/ PKGBUILD-git b/scripts/ArchLinux/ PKGBUILD-git new file mode 100644 index 0000000..901e7be --- /dev/null +++ b/scripts/ArchLinux/ PKGBUILD-git @@ -0,0 +1,16 @@ +pkgname=tidler +pkgver=0.1 +pkgrel=1 +pkgdesc="Tidal music downloader based on the hifi-tui API" +arch=('any') +url="https://medvidek77.tech/Medvidek77/tidler" +license=('BSD3-Clause') +depends=('bash' 'curl' 'jq') +source=("git+$url.git#branch=dev") +sha256sums=('SKIP') + +package() { + cd "$srcdir/$pkgname" + install -Dm755 src/tidler "$pkgdir/usr/bin/tidler" + install -Dm644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE" +} From e6ba414adc4fdadae8c4b0a2028addcedda77f5e Mon Sep 17 00:00:00 2001 From: Medvidek77 Date: Sat, 15 Feb 2025 00:15:05 +0100 Subject: [PATCH 09/51] Update src/tidler --- src/tidler | 1 - 1 file changed, 1 deletion(-) diff --git a/src/tidler b/src/tidler index 6cd0fc0..d45c888 100755 --- a/src/tidler +++ b/src/tidler @@ -67,7 +67,6 @@ downloadAlbum() { for i in "${tracks_ids_list[@]}" do downloadTrack "$i" - #echo "$i" done } From dcabc651909c205234255f4144aed35f9f50b5aa Mon Sep 17 00:00:00 2001 From: Medvidek77 Date: Sat, 15 Feb 2025 00:24:23 +0100 Subject: [PATCH 10/51] Fix some things --- src/tidler | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tidler b/src/tidler index d45c888..8b1ad75 100755 --- a/src/tidler +++ b/src/tidler @@ -57,7 +57,7 @@ searchTrack() { downloadAlbum() { id="$1" count=$(curl -s "https://tidal.401658.xyz/album/?id=$id" | jq -r '.[1].totalNumberOfItems') - album_tracks_ids=$(curl -s "https://tidal.401658.xyz/album/?id=305546892" | jq -r '.[1].items[] | .item.id') + album_tracks_ids=$(curl -s "https://tidal.401658.xyz/album/?id=$id" | jq -r '.[1].items[] | .item.id') tracks_ids_list=() while IFS= read -r list; do From eb1965e0ee86458541b4ef72b699919d45e7f7f9 Mon Sep 17 00:00:00 2001 From: Medvidek77 Date: Sat, 15 Feb 2025 01:10:16 +0100 Subject: [PATCH 11/51] Hotfix --- src/tidler | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/tidler b/src/tidler index 8b1ad75..17d3876 100755 --- a/src/tidler +++ b/src/tidler @@ -56,7 +56,6 @@ searchTrack() { downloadAlbum() { id="$1" - count=$(curl -s "https://tidal.401658.xyz/album/?id=$id" | jq -r '.[1].totalNumberOfItems') album_tracks_ids=$(curl -s "https://tidal.401658.xyz/album/?id=$id" | jq -r '.[1].items[] | .item.id') tracks_ids_list=() @@ -96,7 +95,7 @@ searchAlbum() { PS3="Please select an album: " select t in "${albums_list[@]}"; do if [ -n "$t" ]; then - album_id=$(echo "$t" | awk -F ' - ' '{print $1}') + album_id=$(echo "$t" | awk -F ': ' '{print $1}') echo "You selected: $t" downloadAlbum "$album_id" break From def38db78d68ce60ee7ba90bf97aec891fab1fa0 Mon Sep 17 00:00:00 2001 From: Medvidek77 Date: Sat, 15 Feb 2025 22:27:26 +0100 Subject: [PATCH 12/51] Update README.md --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index 4a42ee3..c10ecd9 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ *Tidal music downloader based on the hifi-tui API* ## Requirements -- `jq`, `bash`, `curl` +- `bash`, `curl`, `jq`, `awk` ## TODO - Create install scripts/guides @@ -21,5 +21,4 @@ - (Optional) use unstable version: `git checkout dev` - Add permissions as root: `chmod +x src/tidler` - Run: `src/tidler` -- (Alternative) look into scripts/ for install scripts in `scripts/` - Enjoy! :) \ No newline at end of file From 1b51e72fd55de920d87ea1739912af07ef772676 Mon Sep 17 00:00:00 2001 From: Medvidek77 Date: Sat, 15 Feb 2025 22:37:55 +0100 Subject: [PATCH 13/51] Update ArchLinux scripts --- scripts/ArchLinux/PKGBUILD | 4 ++-- scripts/ArchLinux/{ PKGBUILD-git => PKGBUILD-git} | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) rename scripts/ArchLinux/{ PKGBUILD-git => PKGBUILD-git} (89%) diff --git a/scripts/ArchLinux/PKGBUILD b/scripts/ArchLinux/PKGBUILD index 24e3074..983257d 100644 --- a/scripts/ArchLinux/PKGBUILD +++ b/scripts/ArchLinux/PKGBUILD @@ -1,13 +1,13 @@ # Maintainer: Medvidek77 pkgname=tidler -pkgver=0.1 +pkgver=0.2 pkgrel=1 pkgdesc="Tidal music downloader based on the hifi-tui API" arch=('any') url="https://medvidek77.tech/Medvidek77/tidler" license=('BSD3-Clause') -depends=('bash' 'curl' 'jq') +depends=('bash' 'curl' 'jq' 'awk') source=("git+$url.git#branch=stable") sha256sums=('SKIP') diff --git a/scripts/ArchLinux/ PKGBUILD-git b/scripts/ArchLinux/PKGBUILD-git similarity index 89% rename from scripts/ArchLinux/ PKGBUILD-git rename to scripts/ArchLinux/PKGBUILD-git index 901e7be..84b2f22 100644 --- a/scripts/ArchLinux/ PKGBUILD-git +++ b/scripts/ArchLinux/PKGBUILD-git @@ -1,11 +1,11 @@ pkgname=tidler -pkgver=0.1 +pkgver=0.2 pkgrel=1 pkgdesc="Tidal music downloader based on the hifi-tui API" arch=('any') url="https://medvidek77.tech/Medvidek77/tidler" license=('BSD3-Clause') -depends=('bash' 'curl' 'jq') +depends=('bash' 'curl' 'jq' 'awk') source=("git+$url.git#branch=dev") sha256sums=('SKIP') From 0e7d909ea36cf2ab9bcb51a43a16875743c59c3a Mon Sep 17 00:00:00 2001 From: Medvidek77 Date: Sun, 2 Mar 2025 15:12:31 +0100 Subject: [PATCH 14/51] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c10ecd9..8a05625 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ - Add default save directory ## Using -- Download repository: `git clone https://medvidek77.tech/Medvidek77/tidler.git && cd tidler` +- Download repository: `git clone https://git.medvidek77.tech/Medvidek77/tidler.git && cd tidler` - (Optional) use unstable version: `git checkout dev` - Add permissions as root: `chmod +x src/tidler` - Run: `src/tidler` From 066d88dac628fbba5b9e53dbea2496cbb57f7879 Mon Sep 17 00:00:00 2001 From: Medvidek77 Date: Wed, 5 Mar 2025 14:49:32 +0100 Subject: [PATCH 15/51] Add simple metadata --- src/tidler | 66 +++++++----------------------------------------------- 1 file changed, 8 insertions(+), 58 deletions(-) diff --git a/src/tidler b/src/tidler index 17d3876..f4947fb 100755 --- a/src/tidler +++ b/src/tidler @@ -1,6 +1,5 @@ #!/bin/bash - downloadTrack() { if [ "$#" -ge 1 ]; then echo "Downloading track with ID: $1" @@ -14,9 +13,14 @@ downloadTrack() { artist_name=$(echo "$json_data" | jq -r '.[0].artist.name') url=$(echo "$json_data" | jq -r '.[-1].OriginalTrackUrl') - filename="$artist_name - $track_name.flac" - filename=$(echo "$filename" | tr '/' '-') + filename="$track_name.flac" curl "$url" -o "$filename" + echo $filename + album_name=$(echo "$json_data" | jq -r '.[0].album.title') + + # Metadata + metaflac --set-tag="NAME=$track_name" --set-tag="ARTIST=$artist_name" --set-tag="ALBUM=$album_name" $filename + } @@ -53,59 +57,6 @@ searchTrack() { done } - -downloadAlbum() { - id="$1" - album_tracks_ids=$(curl -s "https://tidal.401658.xyz/album/?id=$id" | jq -r '.[1].items[] | .item.id') - - tracks_ids_list=() - while IFS= read -r list; do - tracks_ids_list+=("$list") - done <<< "$album_tracks_ids" - - for i in "${tracks_ids_list[@]}" - do - downloadTrack "$i" - done - -} - - -searchAlbum() { - if [ "$#" -ge 1 ]; then - album_name="$1" - else - echo "Enter album name:" - read -r album_name - fi - - album_name=$(echo "$album_name" | sed 's/ /%20/g') - albums=$(curl -s "https://tidal.401658.xyz/search/?al=$album_name" | jq -r '.albums.items[] | "\(.id): \(.title)"') - - albums_list=() - while IFS= read -r list; do - albums_list+=("$list") - done <<< "$albums" - - if [ "${#albums_list[@]}" -eq 1 ]; then - echo "No albums found :(" - exit 1 - fi - - PS3="Please select an album: " - select t in "${albums_list[@]}"; do - if [ -n "$t" ]; then - album_id=$(echo "$t" | awk -F ': ' '{print $1}') - echo "You selected: $t" - downloadAlbum "$album_id" - break - else - echo "Invalid selection. Please try again." - fi - done -} - - echo "Welcome to TiDLer -> Tidal music downloader" && echo "" if [ "$1" = "search" ]; then @@ -122,8 +73,6 @@ elif [ "$1" = "download" ]; then else downloadTrack fi -elif [ "$1" = "album" ]; then - searchAlbum else echo "Choose 1 for download track or 2 for search track and download" read option @@ -133,3 +82,4 @@ else searchTrack fi fi + From c1301a6e9c1649992dacd6cde403ab5726b2d9e2 Mon Sep 17 00:00:00 2001 From: Medvidek77 Date: Wed, 5 Mar 2025 14:55:22 +0100 Subject: [PATCH 16/51] Update src/tidler Ups --- src/tidler | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 57 insertions(+), 1 deletion(-) diff --git a/src/tidler b/src/tidler index f4947fb..1e789f2 100755 --- a/src/tidler +++ b/src/tidler @@ -1,5 +1,6 @@ #!/bin/bash + downloadTrack() { if [ "$#" -ge 1 ]; then echo "Downloading track with ID: $1" @@ -20,7 +21,6 @@ downloadTrack() { # Metadata metaflac --set-tag="NAME=$track_name" --set-tag="ARTIST=$artist_name" --set-tag="ALBUM=$album_name" $filename - } @@ -57,6 +57,59 @@ searchTrack() { done } + +downloadAlbum() { + id="$1" + album_tracks_ids=$(curl -s "https://tidal.401658.xyz/album/?id=$id" | jq -r '.[1].items[] | .item.id') + + tracks_ids_list=() + while IFS= read -r list; do + tracks_ids_list+=("$list") + done <<< "$album_tracks_ids" + + for i in "${tracks_ids_list[@]}" + do + downloadTrack "$i" + done + +} + + +searchAlbum() { + if [ "$#" -ge 1 ]; then + album_name="$1" + else + echo "Enter album name:" + read -r album_name + fi + + album_name=$(echo "$album_name" | sed 's/ /%20/g') + albums=$(curl -s "https://tidal.401658.xyz/search/?al=$album_name" | jq -r '.albums.items[] | "\(.id): \(.title)"') + + albums_list=() + while IFS= read -r list; do + albums_list+=("$list") + done <<< "$albums" + + if [ "${#albums_list[@]}" -eq 1 ]; then + echo "No albums found :(" + exit 1 + fi + + PS3="Please select an album: " + select t in "${albums_list[@]}"; do + if [ -n "$t" ]; then + album_id=$(echo "$t" | awk -F ': ' '{print $1}') + echo "You selected: $t" + downloadAlbum "$album_id" + break + else + echo "Invalid selection. Please try again." + fi + done +} + + echo "Welcome to TiDLer -> Tidal music downloader" && echo "" if [ "$1" = "search" ]; then @@ -73,6 +126,8 @@ elif [ "$1" = "download" ]; then else downloadTrack fi +elif [ "$1" = "album" ]; then + searchAlbum else echo "Choose 1 for download track or 2 for search track and download" read option @@ -83,3 +138,4 @@ else fi fi + From 145d475124c3067768b71e9f16c238d570720d16 Mon Sep 17 00:00:00 2001 From: Medvidek77 Date: Wed, 5 Mar 2025 14:57:03 +0100 Subject: [PATCH 17/51] Add flac as dependency --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 8a05625..c1e3760 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ *Tidal music downloader based on the hifi-tui API* ## Requirements -- `bash`, `curl`, `jq`, `awk` +- `bash`, `curl`, `jq`, `awk`, `flac` ## TODO - Create install scripts/guides From 44ec08cc9874a229356e13b0d83525442e49c5ac Mon Sep 17 00:00:00 2001 From: Medvidek77 Date: Wed, 5 Mar 2025 14:58:07 +0100 Subject: [PATCH 18/51] Add flac as dependency --- scripts/ArchLinux/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/ArchLinux/PKGBUILD b/scripts/ArchLinux/PKGBUILD index 983257d..5ca7ccd 100644 --- a/scripts/ArchLinux/PKGBUILD +++ b/scripts/ArchLinux/PKGBUILD @@ -7,7 +7,7 @@ pkgdesc="Tidal music downloader based on the hifi-tui API" arch=('any') url="https://medvidek77.tech/Medvidek77/tidler" license=('BSD3-Clause') -depends=('bash' 'curl' 'jq' 'awk') +depends=('bash' 'curl' 'jq' 'awk', 'flac') source=("git+$url.git#branch=stable") sha256sums=('SKIP') From 5828667b56d1027a3898ac3a11bd70d64020c47e Mon Sep 17 00:00:00 2001 From: Medvidek77 Date: Wed, 5 Mar 2025 14:58:24 +0100 Subject: [PATCH 19/51] Update scripts/ArchLinux/PKGBUILD-git --- scripts/ArchLinux/PKGBUILD-git | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/ArchLinux/PKGBUILD-git b/scripts/ArchLinux/PKGBUILD-git index 84b2f22..8da4876 100644 --- a/scripts/ArchLinux/PKGBUILD-git +++ b/scripts/ArchLinux/PKGBUILD-git @@ -5,7 +5,7 @@ pkgdesc="Tidal music downloader based on the hifi-tui API" arch=('any') url="https://medvidek77.tech/Medvidek77/tidler" license=('BSD3-Clause') -depends=('bash' 'curl' 'jq' 'awk') +depends=('bash' 'curl' 'jq' 'awk', 'flac') source=("git+$url.git#branch=dev") sha256sums=('SKIP') From 9d4def943cb19a39bf16fda7876e1c8c8fd34642 Mon Sep 17 00:00:00 2001 From: Medvidek77 Date: Wed, 5 Mar 2025 14:59:20 +0100 Subject: [PATCH 20/51] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c1e3760..6e375bb 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ ## TODO - Create install scripts/guides - Migrate from Bash to a POSIX-compliant shell -- Add Cover, and other metadata to ID3 tag +- Add Cover, and other metadata to vorbis tag - Lyrics download - Implement search & download for playlists, albums, and artists - Support downloading multiple search results From b1d1d6106485a2a5ac2e497eb3cfb99fcd16758d Mon Sep 17 00:00:00 2001 From: Medvidek77 Date: Wed, 5 Mar 2025 21:11:26 +0100 Subject: [PATCH 21/51] Add track cover --- src/tidler | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/src/tidler b/src/tidler index 1e789f2..7c504ef 100755 --- a/src/tidler +++ b/src/tidler @@ -9,18 +9,23 @@ downloadTrack() { echo "Enter track ID:" read -r id fi + json_data=$(curl -s "https://tidal.401658.xyz/track/?id=$id&quality=LOSSLESS") track_name=$(echo "$json_data" | jq -r '.[0].title') artist_name=$(echo "$json_data" | jq -r '.[0].artist.name') + album_name=$(echo "$json_data" | jq -r '.[0].album.title') url=$(echo "$json_data" | jq -r '.[-1].OriginalTrackUrl') - + cover_data=$(curl -s "https://tidal.401658.xyz/cover/?id=$id") + cover_url=$(echo "$cover_data" | jq -r '.[0]["1280"]') filename="$track_name.flac" curl "$url" -o "$filename" - echo $filename - album_name=$(echo "$json_data" | jq -r '.[0].album.title') + curl "$cover_url" -o "cover.png" # Metadata - metaflac --set-tag="NAME=$track_name" --set-tag="ARTIST=$artist_name" --set-tag="ALBUM=$album_name" $filename + metaflac --set-tag="NAME=$track_name" --set-tag="ARTIST=$artist_name" --set-tag="ALBUM=$album_name" --import-picture-from="cover.png" "$filename" + + rm cover.png + } @@ -33,7 +38,7 @@ searchTrack() { fi track_name=$(echo "$track_name" | sed 's/ /%20/g') tracks=$(curl -s "https://tidal.401658.xyz/search/?s=$track_name" | jq -r '.items[] | "\(.id) - \(.title) by \(.artist.name)"') - + tracks_list=() while IFS= read -r list; do tracks_list+=("$list") @@ -82,7 +87,7 @@ searchAlbum() { echo "Enter album name:" read -r album_name fi - + album_name=$(echo "$album_name" | sed 's/ /%20/g') albums=$(curl -s "https://tidal.401658.xyz/search/?al=$album_name" | jq -r '.albums.items[] | "\(.id): \(.title)"') @@ -132,10 +137,8 @@ else echo "Choose 1 for download track or 2 for search track and download" read option if [ "$option" -eq 1 ]; then - downloadTrack + downloadTrack elif [ "$option" -eq 2 ]; then searchTrack fi fi - - From d5fe38b570c7cdebbcf1211e4a5291d12a2f58a7 Mon Sep 17 00:00:00 2001 From: Medvidek77 Date: Wed, 5 Mar 2025 23:24:30 +0100 Subject: [PATCH 22/51] Added some experimental features: Album directory create, Config file, Choose files location --- src/tidler | 43 ++++++++++++++++++++++++++++++++++--------- src/tidler.conf | 1 + 2 files changed, 35 insertions(+), 9 deletions(-) create mode 100644 src/tidler.conf diff --git a/src/tidler b/src/tidler index 7c504ef..3a9119d 100755 --- a/src/tidler +++ b/src/tidler @@ -1,5 +1,6 @@ #!/bin/bash +. tidler.conf downloadTrack() { if [ "$#" -ge 1 ]; then @@ -17,14 +18,28 @@ downloadTrack() { url=$(echo "$json_data" | jq -r '.[-1].OriginalTrackUrl') cover_data=$(curl -s "https://tidal.401658.xyz/cover/?id=$id") cover_url=$(echo "$cover_data" | jq -r '.[0]["1280"]') + # lyrics_data=$(curl -s "https://tidal.401658.xyz/lyrics/?id=$id") + # lyrics=$(echo "$lyrics_data" | jq -r '.[0].lyrics') filename="$track_name.flac" - curl "$url" -o "$filename" - curl "$cover_url" -o "cover.png" + + if [ -n "$DOWNLOADS_DIR" ]; then + download_dir="$DOWNLOADS_DIR" + else + download_dir="$(pwd)" + fi + + mkdir -p "$download_dir" + curl "$url" -o "$download_dir/$filename" + curl "$cover_url" -o "$download_dir/cover.png" # Metadata - metaflac --set-tag="NAME=$track_name" --set-tag="ARTIST=$artist_name" --set-tag="ALBUM=$album_name" --import-picture-from="cover.png" "$filename" - - rm cover.png + metaflac \ + --set-tag="NAME=$track_name" \ + --set-tag="ARTIST=$artist_name" \ + --set-tag="ALBUM=$album_name" \ + --import-picture-from="$download_dir/cover.png" \ + "$download_dir/$filename" + rm "$download_dir/cover.png" } @@ -65,21 +80,31 @@ searchTrack() { downloadAlbum() { id="$1" + if [ -n "$DOWNLOADS_DIR" ]; then + base_dir="$DOWNLOADS_DIR" + else + base_dir="$(pwd)" + fi + json_data=$(curl -s "https://tidal.401658.xyz/track/?id=$id&quality=LOSSLESS") + album_name=$(echo "$json_data" | jq -r '.[0].album.title') + artist_name=$(echo "$json_data" | jq -r '.[0].artist.name') + album_title="$artist_name - $album_name" + album_dir="$base_dir/$album_title" + mkdir -p "$album_dir" album_tracks_ids=$(curl -s "https://tidal.401658.xyz/album/?id=$id" | jq -r '.[1].items[] | .item.id') - tracks_ids_list=() while IFS= read -r list; do tracks_ids_list+=("$list") done <<< "$album_tracks_ids" - for i in "${tracks_ids_list[@]}" + for track_id in "${tracks_ids_list[@]}" do - downloadTrack "$i" + downloadTrack "$track_id" "$album_dir" done - } + searchAlbum() { if [ "$#" -ge 1 ]; then album_name="$1" diff --git a/src/tidler.conf b/src/tidler.conf new file mode 100644 index 0000000..be10ebe --- /dev/null +++ b/src/tidler.conf @@ -0,0 +1 @@ +# DOWNLOADS_DIR=path From 97996d12e984ad83a383f2675e418a840d9e6672 Mon Sep 17 00:00:00 2001 From: Medvidek77 Date: Wed, 5 Mar 2025 23:35:45 +0100 Subject: [PATCH 23/51] Update README.md --- README.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 6e375bb..fad71b0 100644 --- a/README.md +++ b/README.md @@ -6,15 +6,15 @@ - `bash`, `curl`, `jq`, `awk`, `flac` ## TODO -- Create install scripts/guides +- Create install scripts/guides (WIP) - Migrate from Bash to a POSIX-compliant shell -- Add Cover, and other metadata to vorbis tag -- Lyrics download -- Implement search & download for playlists, albums, and artists +- Add Cover, and other metadata to vorbis tag (WIP) +- Lyrics download (WIP) +- Implement search & download for playlists, albums, and artists (WIP) - Support downloading multiple search results - Allow users to choose audio quality (currently defaults to LOSSLESS) -- Add a configuration file -- Add default save directory +- Add a configuration file (WIP) +- Add default save directory (WIP) ## Using - Download repository: `git clone https://git.medvidek77.tech/Medvidek77/tidler.git && cd tidler` From b3fb36bafe44f9eda39507b0ded29f0a490e9d8c Mon Sep 17 00:00:00 2001 From: Medvidek77 Date: Wed, 5 Mar 2025 23:38:22 +0100 Subject: [PATCH 24/51] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index fad71b0..7ec5157 100644 --- a/README.md +++ b/README.md @@ -15,6 +15,7 @@ - Allow users to choose audio quality (currently defaults to LOSSLESS) - Add a configuration file (WIP) - Add default save directory (WIP) +- Error handling ## Using - Download repository: `git clone https://git.medvidek77.tech/Medvidek77/tidler.git && cd tidler` From a0b04529f7c1906a33582184b9b3c804fa0da222 Mon Sep 17 00:00:00 2001 From: Medvidek77 Date: Fri, 7 Mar 2025 10:16:02 +0100 Subject: [PATCH 25/51] Updated some important things --- src/tidler | 51 ++++++++++++++++++++++++++++++++----------------- src/tidler.conf | 3 ++- 2 files changed, 35 insertions(+), 19 deletions(-) diff --git a/src/tidler b/src/tidler index 3a9119d..1301c6d 100755 --- a/src/tidler +++ b/src/tidler @@ -1,14 +1,20 @@ #!/bin/bash -. tidler.conf +. tidler.conf # Load ENVs from config file downloadTrack() { if [ "$#" -ge 1 ]; then - echo "Downloading track with ID: $1" - id="$1" + echo "Downloading track with ID: $1" + id="$1" else - echo "Enter track ID:" - read -r id + echo "Enter track ID:" + read -r id + fi + + if [ "$#" -ge 2 ]; then + album_dir="$2" + else + album_dir="" fi json_data=$(curl -s "https://tidal.401658.xyz/track/?id=$id&quality=LOSSLESS") @@ -17,10 +23,11 @@ downloadTrack() { album_name=$(echo "$json_data" | jq -r '.[0].album.title') url=$(echo "$json_data" | jq -r '.[-1].OriginalTrackUrl') cover_data=$(curl -s "https://tidal.401658.xyz/cover/?id=$id") - cover_url=$(echo "$cover_data" | jq -r '.[0]["1280"]') - # lyrics_data=$(curl -s "https://tidal.401658.xyz/lyrics/?id=$id") - # lyrics=$(echo "$lyrics_data" | jq -r '.[0].lyrics') + cover_url=$(echo "$cover_data" | jq -r '.[]["1280"]') + + track_number=$(echo "$json_data" | jq -r '.[0].trackNumber') filename="$track_name.flac" + cover_name="cover.png" if [ -n "$DOWNLOADS_DIR" ]; then download_dir="$DOWNLOADS_DIR" @@ -28,19 +35,28 @@ downloadTrack() { download_dir="$(pwd)" fi - mkdir -p "$download_dir" - curl "$url" -o "$download_dir/$filename" - curl "$cover_url" -o "$download_dir/cover.png" + final_path="$download_dir/$album_dir" + + mkdir -p "$final_path" + + curl "$url" -o "$final_path/$filename" + curl "$cover_url" -o "$final_path/$cover_name" # Metadata metaflac \ --set-tag="NAME=$track_name" \ --set-tag="ARTIST=$artist_name" \ --set-tag="ALBUM=$album_name" \ - --import-picture-from="$download_dir/cover.png" \ - "$download_dir/$filename" - rm "$download_dir/cover.png" + --set-tag="TRACKNUMBER=$track_number" \ + --import-picture-from="$final_path/$cover_name" \ + "$final_path/$filename" + # Ověř zda metadata byla úspěšně nastavena před smazáním cover.png + if [ $? -eq 0 ]; then + rm "$final_path/$cover_name" + else + echo "Chyba při nastavování metadat. Zachovávám cover.png pro další pokus." + fi } @@ -85,12 +101,11 @@ downloadAlbum() { else base_dir="$(pwd)" fi - json_data=$(curl -s "https://tidal.401658.xyz/track/?id=$id&quality=LOSSLESS") - album_name=$(echo "$json_data" | jq -r '.[0].album.title') + json_data=$(curl -s "https://tidal.401658.xyz/album/?id=$id&quality=LOSSLESS") + album_name=$(echo "$json_data" | jq -r '.[0].title') artist_name=$(echo "$json_data" | jq -r '.[0].artist.name') album_title="$artist_name - $album_name" - album_dir="$base_dir/$album_title" - mkdir -p "$album_dir" + album_dir="$album_title" album_tracks_ids=$(curl -s "https://tidal.401658.xyz/album/?id=$id" | jq -r '.[1].items[] | .item.id') tracks_ids_list=() while IFS= read -r list; do diff --git a/src/tidler.conf b/src/tidler.conf index be10ebe..0c266ee 100644 --- a/src/tidler.conf +++ b/src/tidler.conf @@ -1 +1,2 @@ -# DOWNLOADS_DIR=path +DOWNLOADS_DIR="/srv/music" +PROXY_URL="hifi-04ed2aaea09a.herokuapp.com" # Server without cache From c0b5b1b623da385eb3bb0dc75148f0f500b7bfa8 Mon Sep 17 00:00:00 2001 From: Medvidek77 Date: Fri, 7 Mar 2025 10:17:26 +0100 Subject: [PATCH 26/51] Update src/tidler.conf --- src/tidler.conf | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/tidler.conf b/src/tidler.conf index 0c266ee..f4251b8 100644 --- a/src/tidler.conf +++ b/src/tidler.conf @@ -1,2 +1 @@ -DOWNLOADS_DIR="/srv/music" -PROXY_URL="hifi-04ed2aaea09a.herokuapp.com" # Server without cache +# DOWNLOADS_DIR="path" From 0192452af75d9d57784573d4c670e08309a89abf Mon Sep 17 00:00:00 2001 From: Medvidek77 Date: Fri, 7 Mar 2025 10:23:53 +0100 Subject: [PATCH 27/51] Ups --- src/tidler | 7 ------- 1 file changed, 7 deletions(-) diff --git a/src/tidler b/src/tidler index 1301c6d..1d6df82 100755 --- a/src/tidler +++ b/src/tidler @@ -50,13 +50,6 @@ downloadTrack() { --set-tag="TRACKNUMBER=$track_number" \ --import-picture-from="$final_path/$cover_name" \ "$final_path/$filename" - - # Ověř zda metadata byla úspěšně nastavena před smazáním cover.png - if [ $? -eq 0 ]; then - rm "$final_path/$cover_name" - else - echo "Chyba při nastavování metadat. Zachovávám cover.png pro další pokus." - fi } From 2b06f4799e84938456161e64e70e8e80af64da89 Mon Sep 17 00:00:00 2001 From: Medvidek77 Date: Sun, 9 Mar 2025 16:47:08 +0100 Subject: [PATCH 28/51] Prepare for verison 0.3.0 -> New config options, some errors handling, etc --- src/tidler | 42 ++++++++++++++++++++++++++++++++++++------ src/tidler.conf | 13 ++++++++++++- 2 files changed, 48 insertions(+), 7 deletions(-) diff --git a/src/tidler b/src/tidler index 1d6df82..f1ffd46 100755 --- a/src/tidler +++ b/src/tidler @@ -2,6 +2,36 @@ . tidler.conf # Load ENVs from config file + +if [ -n "$PROXY_URL" ]; then + proxy_url="$PROXY_URL" +else + proxy_url="https://hifi-04ed2aaea09a.herokuapp.com" # Default value +fi + +if [ -n "$QUALITY" ]; then + if [ "$QUALITY" == "LOSSLESS" -o "$QUALITY" == "HI_RES" ]; then + quality="$QUALITY" + else + echo "Bad QUALITY option. Only allowed are \"LOSSLESS\", \"HI_RES\"." + fi +else + quality="LOSSLESS" # Default value +fi + +if [ -n "$COVER_RESOLUTION" ]; then + if [ "$COVER_RESOLUTION" == "1280" -o "$COVER_RESOLUTION" == "640" -o "$COVER_RESOLUTION" == "80" ]; then + cover_resolution="$COVER_RESOLUTION" + else + echo "Bad COVER_RESOLUTION option. Only allowed are \"1280\", \"640\", \"80\"." + echo "Using default value..." + + cover_resolution="1280" # Default value + fi +else + cover_resolution="1280" # Default value +fi + downloadTrack() { if [ "$#" -ge 1 ]; then echo "Downloading track with ID: $1" @@ -17,12 +47,12 @@ downloadTrack() { album_dir="" fi - json_data=$(curl -s "https://tidal.401658.xyz/track/?id=$id&quality=LOSSLESS") + json_data=$(curl -s "$proxy_url/track/?id=$id&quality=$quality") track_name=$(echo "$json_data" | jq -r '.[0].title') artist_name=$(echo "$json_data" | jq -r '.[0].artist.name') album_name=$(echo "$json_data" | jq -r '.[0].album.title') url=$(echo "$json_data" | jq -r '.[-1].OriginalTrackUrl') - cover_data=$(curl -s "https://tidal.401658.xyz/cover/?id=$id") + cover_data=$(curl -s "$proxy_url/cover/?id=$id") cover_url=$(echo "$cover_data" | jq -r '.[]["1280"]') track_number=$(echo "$json_data" | jq -r '.[0].trackNumber') @@ -61,7 +91,7 @@ searchTrack() { read -r track_name fi track_name=$(echo "$track_name" | sed 's/ /%20/g') - tracks=$(curl -s "https://tidal.401658.xyz/search/?s=$track_name" | jq -r '.items[] | "\(.id) - \(.title) by \(.artist.name)"') + tracks=$(curl -s "$proxy_url/search/?s=$track_name" | jq -r '.items[] | "\(.id) - \(.title) by \(.artist.name)"') tracks_list=() while IFS= read -r list; do @@ -94,12 +124,12 @@ downloadAlbum() { else base_dir="$(pwd)" fi - json_data=$(curl -s "https://tidal.401658.xyz/album/?id=$id&quality=LOSSLESS") + json_data=$(curl -s "$proxy_url/album/?id=$id&quality=$quality") album_name=$(echo "$json_data" | jq -r '.[0].title') artist_name=$(echo "$json_data" | jq -r '.[0].artist.name') album_title="$artist_name - $album_name" album_dir="$album_title" - album_tracks_ids=$(curl -s "https://tidal.401658.xyz/album/?id=$id" | jq -r '.[1].items[] | .item.id') + album_tracks_ids=$(curl -s "$proxy_url/album/?id=$id&quality=$quality" | jq -r '.[1].items[] | .item.id') tracks_ids_list=() while IFS= read -r list; do tracks_ids_list+=("$list") @@ -122,7 +152,7 @@ searchAlbum() { fi album_name=$(echo "$album_name" | sed 's/ /%20/g') - albums=$(curl -s "https://tidal.401658.xyz/search/?al=$album_name" | jq -r '.albums.items[] | "\(.id): \(.title)"') + albums=$(curl -s "$proxy_url/search/?al=$album_name" | jq -r '.albums.items[] | "\(.id): \(.title)"') albums_list=() while IFS= read -r list; do diff --git a/src/tidler.conf b/src/tidler.conf index f4251b8..d2ec9e0 100644 --- a/src/tidler.conf +++ b/src/tidler.conf @@ -1 +1,12 @@ -# DOWNLOADS_DIR="path" +# Default download directory +DOWNLOADS_DIR="~/Music" + +# hifi-tui API server URL -> https://github.com/sachinsenal0x64/Hifi-Tui +# You can use "https://tidal.401658.xyz" with cache enabled +PROXY_URL="https://hifi-04ed2aaea09a.herokuapp.com" + +# Set audio quality -> possible values are "LOSSLESS" and "HI_RES" +QUALITY="LOSSLESS" + +# Set cover art resolution -> "1280" = 1280x1280, "640" = 640x640, "80" = 80x80 +COVER_RESOLUTION="1280" From 0cacef649175eb7316cb8781d5b9535e02aeb162 Mon Sep 17 00:00:00 2001 From: Medvidek77 Date: Sun, 9 Mar 2025 16:57:04 +0100 Subject: [PATCH 29/51] Update README.md --- README.md | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 7ec5157..df4c53d 100644 --- a/README.md +++ b/README.md @@ -8,18 +8,22 @@ ## TODO - Create install scripts/guides (WIP) - Migrate from Bash to a POSIX-compliant shell -- Add Cover, and other metadata to vorbis tag (WIP) +- Add Cover, and other metadata to vorbis tag (Almost done) - Lyrics download (WIP) - Implement search & download for playlists, albums, and artists (WIP) - Support downloading multiple search results - Allow users to choose audio quality (currently defaults to LOSSLESS) -- Add a configuration file (WIP) -- Add default save directory (WIP) -- Error handling +- Add a configuration file (Done) +- Add default save directory (Done) +- Error handling (WIP) ## Using -- Download repository: `git clone https://git.medvidek77.tech/Medvidek77/tidler.git && cd tidler` -- (Optional) use unstable version: `git checkout dev` -- Add permissions as root: `chmod +x src/tidler` -- Run: `src/tidler` -- Enjoy! :) \ No newline at end of file +- Download repository: +`git clone https://git.medvidek77.tech/Medvidek77/tidler.git && cd tidler` +- (Optional) use unstable version: +`git checkout dev` +- Add permissions as root: +`chmod +x src/tidler` +- Run: +`src/tidler` +- Enjoy! :) From 7f064b7fc4ea6a7184feb48cef3003f9f1242e15 Mon Sep 17 00:00:00 2001 From: Medvidek77 Date: Sun, 9 Mar 2025 22:29:07 +0100 Subject: [PATCH 30/51] Added help command --- src/tidler | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/tidler b/src/tidler index f1ffd46..1d9215f 100755 --- a/src/tidler +++ b/src/tidler @@ -10,17 +10,20 @@ else fi if [ -n "$QUALITY" ]; then - if [ "$QUALITY" == "LOSSLESS" -o "$QUALITY" == "HI_RES" ]; then + if [ "$QUALITY" = "LOSSLESS" -o "$QUALITY" = "HI_RES" ]; then quality="$QUALITY" else echo "Bad QUALITY option. Only allowed are \"LOSSLESS\", \"HI_RES\"." + echo "Using default value..." + + quality="LOSSLESS" # Default value fi else quality="LOSSLESS" # Default value fi if [ -n "$COVER_RESOLUTION" ]; then - if [ "$COVER_RESOLUTION" == "1280" -o "$COVER_RESOLUTION" == "640" -o "$COVER_RESOLUTION" == "80" ]; then + if [ "$COVER_RESOLUTION" = "1280" -o "$COVER_RESOLUTION" = "640" -o "$COVER_RESOLUTION" = "80" ]; then cover_resolution="$COVER_RESOLUTION" else echo "Bad COVER_RESOLUTION option. Only allowed are \"1280\", \"640\", \"80\"." @@ -196,6 +199,16 @@ elif [ "$1" = "download" ]; then fi elif [ "$1" = "album" ]; then searchAlbum +elif [ "$1" = "help" ]; then + echo "" + echo "" + echo "search {text}-optional -> search any song" + echo "" + echo "download {song_id}-optional -> download any song" + echo "" + echo "album -> search and download any album" + echo "" + echo "help -> print this message and exit" else echo "Choose 1 for download track or 2 for search track and download" read option From 2073ff8011f4da725722d865c1b737a2afc297a4 Mon Sep 17 00:00:00 2001 From: Medvidek77 Date: Sun, 9 Mar 2025 22:32:03 +0100 Subject: [PATCH 31/51] Update README.md --- README.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/README.md b/README.md index df4c53d..1011041 100644 --- a/README.md +++ b/README.md @@ -19,11 +19,19 @@ ## Using - Download repository: + `git clone https://git.medvidek77.tech/Medvidek77/tidler.git && cd tidler` + - (Optional) use unstable version: + `git checkout dev` + - Add permissions as root: + `chmod +x src/tidler` + - Run: + `src/tidler` + - Enjoy! :) From 961788eb1c7b1d8701d52662a0abfe59fed92521 Mon Sep 17 00:00:00 2001 From: Medvidek77 Date: Sun, 9 Mar 2025 22:37:23 +0100 Subject: [PATCH 32/51] Update README.md --- README.md | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 1011041..40371ab 100644 --- a/README.md +++ b/README.md @@ -19,19 +19,19 @@ ## Using - Download repository: - -`git clone https://git.medvidek77.tech/Medvidek77/tidler.git && cd tidler` - +``` +git clone https://git.medvidek77.tech/Medvidek77/tidler.git && cd tidler +``` - (Optional) use unstable version: - -`git checkout dev` - +``` +git checkout dev +``` - Add permissions as root: - -`chmod +x src/tidler` - +``` +chmod +x src/tidler +``` - Run: - -`src/tidler` - +``` +src/tidler +``` - Enjoy! :) From f37362444e7f1238e68b5ac59ce4d71439a1441a Mon Sep 17 00:00:00 2001 From: Medvidek77 Date: Sun, 9 Mar 2025 22:37:54 +0100 Subject: [PATCH 33/51] Update README.md --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 40371ab..c731f38 100644 --- a/README.md +++ b/README.md @@ -22,16 +22,20 @@ ``` git clone https://git.medvidek77.tech/Medvidek77/tidler.git && cd tidler ``` + - (Optional) use unstable version: ``` git checkout dev ``` + - Add permissions as root: ``` chmod +x src/tidler ``` + - Run: ``` src/tidler ``` + - Enjoy! :) From 18b782a1f440b28feb0e76ff8672e7fecf2b5373 Mon Sep 17 00:00:00 2001 From: Medvidek77 Date: Wed, 19 Mar 2025 22:47:33 +0100 Subject: [PATCH 34/51] Fix single track download and fixed tidler.conf and edited text and added album search to interactive mode --- src/tidler | 31 +++++++++++++++++++++++++++---- src/tidler.conf | 2 +- 2 files changed, 28 insertions(+), 5 deletions(-) diff --git a/src/tidler b/src/tidler index 1d9215f..b443cc7 100755 --- a/src/tidler +++ b/src/tidler @@ -51,7 +51,14 @@ downloadTrack() { fi json_data=$(curl -s "$proxy_url/track/?id=$id&quality=$quality") + + if [ "$?" -gt 0 ]; then + echo "Error" + exit 1 + fi + track_name=$(echo "$json_data" | jq -r '.[0].title') + artist_name=$(echo "$json_data" | jq -r '.[0].artist.name') album_name=$(echo "$json_data" | jq -r '.[0].album.title') url=$(echo "$json_data" | jq -r '.[-1].OriginalTrackUrl') @@ -68,8 +75,12 @@ downloadTrack() { download_dir="$(pwd)" fi - final_path="$download_dir/$album_dir" - + if [ -z "$album_dir" ]; then + final_path="$download_dir" + else + final_path="$download_dir/$album_dir" + fi + mkdir -p "$final_path" curl "$url" -o "$final_path/$filename" @@ -181,7 +192,7 @@ searchAlbum() { } -echo "Welcome to TiDLer -> Tidal music downloader" && echo "" +echo "Welcome to TiDLer!" && echo "" if [ "$1" = "search" ]; then if [ "$#" -ge 2 ]; then @@ -200,6 +211,10 @@ elif [ "$1" = "download" ]; then elif [ "$1" = "album" ]; then searchAlbum elif [ "$1" = "help" ]; then + echo "" + echo "" + echo "If a valid parameter is provided, the corresponding function executes. Otherwise, TiDLer enters INTERACTIVE mode!" + echo "" echo "" echo "" echo "search {text}-optional -> search any song" @@ -210,11 +225,19 @@ elif [ "$1" = "help" ]; then echo "" echo "help -> print this message and exit" else - echo "Choose 1 for download track or 2 for search track and download" + echo "### Choose function! (Enter number) ###" + echo "" + echo "1. Download single track with ID" + echo "" + echo "2. Search single track with text" + echo "" + echo "3. Search and download whole album with text" read option if [ "$option" -eq 1 ]; then downloadTrack elif [ "$option" -eq 2 ]; then searchTrack + elif [ "$option" -eq 3 ]; then + searchAlbum fi fi diff --git a/src/tidler.conf b/src/tidler.conf index d2ec9e0..4ec5d0d 100644 --- a/src/tidler.conf +++ b/src/tidler.conf @@ -1,5 +1,5 @@ # Default download directory -DOWNLOADS_DIR="~/Music" +DOWNLOADS_DIR="/home/$USER/Music" # hifi-tui API server URL -> https://github.com/sachinsenal0x64/Hifi-Tui # You can use "https://tidal.401658.xyz" with cache enabled From 972ca07d6ef58f6029f9b051cc60ccf1355b89e2 Mon Sep 17 00:00:00 2001 From: Medvidek77 Date: Wed, 19 Mar 2025 22:58:25 +0100 Subject: [PATCH 35/51] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index c731f38..39e85ce 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,8 @@ *Tidal music downloader based on the hifi-tui API* +### https://github.com/sachinsenal0x64/Hifi-Tui + ## Requirements - `bash`, `curl`, `jq`, `awk`, `flac` From 06e2d2df7729f5640739a21d8f20c3af477ce159 Mon Sep 17 00:00:00 2001 From: Medvidek77 Date: Thu, 20 Mar 2025 20:11:45 +0100 Subject: [PATCH 36/51] Added some important features and update few things --- src/tidler | 182 ++++++++++++++++++++++++++++++++++-------------- src/tidler.conf | 3 + 2 files changed, 132 insertions(+), 53 deletions(-) diff --git a/src/tidler b/src/tidler index b443cc7..e620c9a 100755 --- a/src/tidler +++ b/src/tidler @@ -34,6 +34,19 @@ if [ -n "$COVER_RESOLUTION" ]; then else cover_resolution="1280" # Default value fi + +if [ -n "$MAX_ATTEMPTS" ]; then + if [ "$MAX_ATTEMPTS" -ge 1 -a "$MAX_ATTEMPTS" -le 100 ]; then + max_attempts="$MAX_ATTEMPTS" + else + echo "Bad MAX_ATTEMPTS option. Allowed are numbers from 1 to 100." + echo "Using default value..." + + max_attempts=10 # Default value + fi +else + max_attempts=10 # Default value +fi downloadTrack() { if [ "$#" -ge 1 ]; then @@ -50,25 +63,53 @@ downloadTrack() { album_dir="" fi - json_data=$(curl -s "$proxy_url/track/?id=$id&quality=$quality") + attempt_num=1 + success=false - if [ "$?" -gt 0 ]; then - echo "Error" - exit 1 + while [ $attempt_num -le $max_attempts ]; do + json_data=$(curl -# "$proxy_url/track/?id=$id&quality=$quality") + + if [ $? -eq 0 ]; then + track_name=$(echo "$json_data" | jq -r '.[0].title // empty') + + if [ -n "$track_name" ]; then + artist_name=$(echo "$json_data" | jq -r '.[0].artist.name // empty') + + if [ -n "$artist_name" ]; then + album_name=$(echo "$json_data" | jq -r '.[0].album.title // empty') + + if [ -n "$album_name" ]; then + url=$(echo "$json_data" | jq -r '.[-1].OriginalTrackUrl // empty') + + if [ -n "$url" ]; then + cover_data=$(curl -s "$proxy_url/cover/?id=$id") + cover_url=$(echo "$cover_data" | jq -r '.[]["1280"] // empty') + + if [ -n "$cover_url" ]; then + track_number=$(echo "$json_data" | jq -r '.[0].trackNumber') + filename="$track_name.flac" + cover_name="cover.png" + success=true + break + fi + fi + fi + fi + fi + fi + + if [ "$success" = false ]; then + echo "Attempt $attempt_num failed. Retrying..." + ((attempt_num++)) + sleep 1 # TODO: random sleep time + fi + done + + if [ "$success" = false ]; then + echo "Failed to download after $max_attempts attempts." + exit 1 fi - track_name=$(echo "$json_data" | jq -r '.[0].title') - - artist_name=$(echo "$json_data" | jq -r '.[0].artist.name') - album_name=$(echo "$json_data" | jq -r '.[0].album.title') - url=$(echo "$json_data" | jq -r '.[-1].OriginalTrackUrl') - cover_data=$(curl -s "$proxy_url/cover/?id=$id") - cover_url=$(echo "$cover_data" | jq -r '.[]["1280"]') - - track_number=$(echo "$json_data" | jq -r '.[0].trackNumber') - filename="$track_name.flac" - cover_name="cover.png" - if [ -n "$DOWNLOADS_DIR" ]; then download_dir="$DOWNLOADS_DIR" else @@ -76,9 +117,9 @@ downloadTrack() { fi if [ -z "$album_dir" ]; then - final_path="$download_dir" + final_path="$download_dir" else - final_path="$download_dir/$album_dir" + final_path="$download_dir/$album_dir" fi mkdir -p "$final_path" @@ -96,7 +137,6 @@ downloadTrack() { "$final_path/$filename" } - searchTrack() { if [ "$#" -ge 1 ]; then track_name="$1" @@ -105,7 +145,7 @@ searchTrack() { read -r track_name fi track_name=$(echo "$track_name" | sed 's/ /%20/g') - tracks=$(curl -s "$proxy_url/search/?s=$track_name" | jq -r '.items[] | "\(.id) - \(.title) by \(.artist.name)"') + tracks=$(curl -# "$proxy_url/search/?s=$track_name" | jq -r '.items[] | "\(.id) - \(.title) by \(.artist.name)"') tracks_list=() while IFS= read -r list; do @@ -138,60 +178,96 @@ downloadAlbum() { else base_dir="$(pwd)" fi - json_data=$(curl -s "$proxy_url/album/?id=$id&quality=$quality") - album_name=$(echo "$json_data" | jq -r '.[0].title') - artist_name=$(echo "$json_data" | jq -r '.[0].artist.name') - album_title="$artist_name - $album_name" - album_dir="$album_title" - album_tracks_ids=$(curl -s "$proxy_url/album/?id=$id&quality=$quality" | jq -r '.[1].items[] | .item.id') - tracks_ids_list=() - while IFS= read -r list; do - tracks_ids_list+=("$list") - done <<< "$album_tracks_ids" - for track_id in "${tracks_ids_list[@]}" - do - downloadTrack "$track_id" "$album_dir" + attempt_num=1 + success=false + + while [ $attempt_num -le $max_attempts ]; do + json_data=$(curl -# "$proxy_url/album/?id=$id&quality=$quality") + if [ $? -eq 0 ]; then + album_name=$(echo "$json_data" | jq -r '.[0].title') + artist_name=$(echo "$json_data" | jq -r '.[0].artist.name') + album_title="$artist_name - $album_name" + album_dir="$album_title" + album_tracks_ids=$(echo "$json_data" | jq -r '.[1].items[] | .item.id') + tracks_ids_list=() + while IFS= read -r list; do + tracks_ids_list+=("$list") + done <<< "$album_tracks_ids" + + for track_id in "${tracks_ids_list[@]}"; do + downloadTrack "$track_id" "$album_dir" + done + success=true + break + else + echo "Attempt $attempt_num failed. Retrying..." + ((attempt_num++)) + sleep 1 + fi done + + if [ "$success" = false ]; then + echo "Failed to download album after $max_attempts attempts." + exit 1 + fi } + + searchAlbum() { if [ "$#" -ge 1 ]; then - album_name="$1" + album_name="$1" else - echo "Enter album name:" - read -r album_name + echo "Enter album name:" + read -r album_name fi album_name=$(echo "$album_name" | sed 's/ /%20/g') - albums=$(curl -s "$proxy_url/search/?al=$album_name" | jq -r '.albums.items[] | "\(.id): \(.title)"') + attempt_num=1 + success=false - albums_list=() - while IFS= read -r list; do - albums_list+=("$list") - done <<< "$albums" + while [ $attempt_num -le $max_attempts ]; do + albums=$(curl -# "$proxy_url/search/?al=$album_name" | jq -r '.albums.items[] | "\(.id): \(.title)"') - if [ "${#albums_list[@]}" -eq 1 ]; then - echo "No albums found :(" - exit 1 - fi + albums_list=() + while IFS= read -r list; do + albums_list+=("$list") + done <<< "$albums" - PS3="Please select an album: " - select t in "${albums_list[@]}"; do - if [ -n "$t" ]; then - album_id=$(echo "$t" | awk -F ': ' '{print $1}') - echo "You selected: $t" - downloadAlbum "$album_id" - break + if [ "${#albums_list[@]}" -eq 0 ]; then + echo "No albums found. Retrying... (Attempt $attempt_num/$max_attempts)" + ((attempt_num++)) + sleep 1 else - echo "Invalid selection. Please try again." + PS3="Please select an album: " + select t in "${albums_list[@]}"; do + if [ -n "$t" ]; then + album_id=$(echo "$t" | awk -F ': ' '{print $1}') + echo "You selected: $t" + downloadAlbum "$album_id" + success=true + break + else + echo "Invalid selection. Please try again." + fi + done + if [ "$success" = true ]; then + break + fi fi done + + if [ "$success" = false ]; then + echo "Failed to find and download album after $max_attempts attempts." + exit 1 + fi } + echo "Welcome to TiDLer!" && echo "" if [ "$1" = "search" ]; then diff --git a/src/tidler.conf b/src/tidler.conf index 4ec5d0d..676c976 100644 --- a/src/tidler.conf +++ b/src/tidler.conf @@ -10,3 +10,6 @@ QUALITY="LOSSLESS" # Set cover art resolution -> "1280" = 1280x1280, "640" = 640x640, "80" = 80x80 COVER_RESOLUTION="1280" + +# If there is any problem with the API, Tidler will attempt to download the track again -> possible values are "1" to "100" +MAX_ATTEMPTS="10" From 3015d2469833abe2f2a74201edf4d8c89e7e6358 Mon Sep 17 00:00:00 2001 From: Medvidek77 Date: Thu, 20 Mar 2025 20:46:02 +0100 Subject: [PATCH 37/51] Updated album command(now with optional argument) --- src/tidler | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/tidler b/src/tidler index e620c9a..c3c481b 100755 --- a/src/tidler +++ b/src/tidler @@ -285,7 +285,14 @@ elif [ "$1" = "download" ]; then downloadTrack fi elif [ "$1" = "album" ]; then - searchAlbum + if [ "$#" -ge 2 ]; then + shift + jsw="$*" + searchAlbum "$jsw" + else + searchAlbum + fi + elif [ "$1" = "help" ]; then echo "" echo "" @@ -293,11 +300,11 @@ elif [ "$1" = "help" ]; then echo "" echo "" echo "" - echo "search {text}-optional -> search any song" + echo "search {track_name}-optional -> search any song" echo "" echo "download {song_id}-optional -> download any song" echo "" - echo "album -> search and download any album" + echo "album {album_name}-> search and download any album" echo "" echo "help -> print this message and exit" else From 6bad8f3055717da432211ff402c4a9402707c17c Mon Sep 17 00:00:00 2001 From: Medvidek77 Date: Thu, 20 Mar 2025 20:55:33 +0100 Subject: [PATCH 38/51] Fix text and fix progress bar --- src/tidler | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/tidler b/src/tidler index c3c481b..482a9b2 100755 --- a/src/tidler +++ b/src/tidler @@ -42,10 +42,10 @@ if [ -n "$MAX_ATTEMPTS" ]; then echo "Bad MAX_ATTEMPTS option. Allowed are numbers from 1 to 100." echo "Using default value..." - max_attempts=10 # Default value + max_attempts="10" # Default value fi else - max_attempts=10 # Default value + max_attempts="10" # Default value fi downloadTrack() { @@ -82,7 +82,7 @@ downloadTrack() { url=$(echo "$json_data" | jq -r '.[-1].OriginalTrackUrl // empty') if [ -n "$url" ]; then - cover_data=$(curl -s "$proxy_url/cover/?id=$id") + cover_data=$(curl -# "$proxy_url/cover/?id=$id") cover_url=$(echo "$cover_data" | jq -r '.[]["1280"] // empty') if [ -n "$cover_url" ]; then @@ -124,8 +124,8 @@ downloadTrack() { mkdir -p "$final_path" - curl "$url" -o "$final_path/$filename" - curl "$cover_url" -o "$final_path/$cover_name" + curl -# "$url" -o "$final_path/$filename" + curl -# "$cover_url" -o "$final_path/$cover_name" # Metadata metaflac \ @@ -304,7 +304,7 @@ elif [ "$1" = "help" ]; then echo "" echo "download {song_id}-optional -> download any song" echo "" - echo "album {album_name}-> search and download any album" + echo "album {album_name}-optional -> search and download any album" echo "" echo "help -> print this message and exit" else From 7f2ead4263339b2bea346039c7df85090dbd6ecf Mon Sep 17 00:00:00 2001 From: Medvidek77 Date: Thu, 20 Mar 2025 21:08:23 +0100 Subject: [PATCH 39/51] Add .deb file for debian-based distros --- scripts/DEB/TIDLER.deb | Bin 0 -> 3196 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 scripts/DEB/TIDLER.deb diff --git a/scripts/DEB/TIDLER.deb b/scripts/DEB/TIDLER.deb new file mode 100644 index 0000000000000000000000000000000000000000..4112a6b815b8def170d746fa7a0fd13590b0ef6a GIT binary patch literal 3196 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 PKmHKVpo6gePyhKZ%N*^P literal 0 HcmV?d00001 From 0c17bd4123e4cf89076977f2beeb7acbc71c81cb Mon Sep 17 00:00:00 2001 From: Medvidek77 Date: Thu, 20 Mar 2025 21:10:44 +0100 Subject: [PATCH 40/51] Add .deb file for debian-based distros --- scripts/Debian/tidler.deb | Bin 0 -> 3196 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 scripts/Debian/tidler.deb diff --git a/scripts/Debian/tidler.deb b/scripts/Debian/tidler.deb new file mode 100644 index 0000000000000000000000000000000000000000..4112a6b815b8def170d746fa7a0fd13590b0ef6a GIT binary patch literal 3196 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 PKmHKVpo6gePyhKZ%N*^P literal 0 HcmV?d00001 From e961bcecd229edf24d981a4374e53a4ec601a278 Mon Sep 17 00:00:00 2001 From: Medvidek77 Date: Thu, 20 Mar 2025 21:11:58 +0100 Subject: [PATCH 41/51] Update scripts/ArchLinux/PKGBUILD --- scripts/ArchLinux/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/ArchLinux/PKGBUILD b/scripts/ArchLinux/PKGBUILD index 5ca7ccd..d949654 100644 --- a/scripts/ArchLinux/PKGBUILD +++ b/scripts/ArchLinux/PKGBUILD @@ -1,7 +1,7 @@ # Maintainer: Medvidek77 pkgname=tidler -pkgver=0.2 +pkgver=0.3.0 pkgrel=1 pkgdesc="Tidal music downloader based on the hifi-tui API" arch=('any') From 3f2f78b104ab1012b125947b4f69a21438c12f24 Mon Sep 17 00:00:00 2001 From: Medvidek77 Date: Thu, 20 Mar 2025 21:12:12 +0100 Subject: [PATCH 42/51] Update scripts/ArchLinux/PKGBUILD-git --- scripts/ArchLinux/PKGBUILD-git | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/ArchLinux/PKGBUILD-git b/scripts/ArchLinux/PKGBUILD-git index 8da4876..06a3a81 100644 --- a/scripts/ArchLinux/PKGBUILD-git +++ b/scripts/ArchLinux/PKGBUILD-git @@ -1,5 +1,5 @@ pkgname=tidler -pkgver=0.2 +pkgver=0.3.0 pkgrel=1 pkgdesc="Tidal music downloader based on the hifi-tui API" arch=('any') From 8a0e16449cd1f490cc8d64ff83c952fbd623432b Mon Sep 17 00:00:00 2001 From: Medvidek77 Date: Thu, 20 Mar 2025 21:13:34 +0100 Subject: [PATCH 43/51] Add .deb file for debian-based distros --- scripts/DEB/TIDLER.deb | Bin 3196 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 scripts/DEB/TIDLER.deb diff --git a/scripts/DEB/TIDLER.deb b/scripts/DEB/TIDLER.deb deleted file mode 100644 index 4112a6b815b8def170d746fa7a0fd13590b0ef6a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3196 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 PKmHKVpo6gePyhKZ%N*^P From e5357c691bc3ed7800409a619dc9de32fddf6b31 Mon Sep 17 00:00:00 2001 From: Medvidek77 Date: Fri, 21 Mar 2025 14:00:01 +0100 Subject: [PATCH 44/51] Fix PKGBUILDs for ArchLinux --- scripts/ArchLinux/PKGBUILD | 4 ++-- scripts/ArchLinux/PKGBUILD-git | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/scripts/ArchLinux/PKGBUILD b/scripts/ArchLinux/PKGBUILD index d949654..1246f59 100644 --- a/scripts/ArchLinux/PKGBUILD +++ b/scripts/ArchLinux/PKGBUILD @@ -5,9 +5,9 @@ pkgver=0.3.0 pkgrel=1 pkgdesc="Tidal music downloader based on the hifi-tui API" arch=('any') -url="https://medvidek77.tech/Medvidek77/tidler" +url="https://git.medvidek77.tech/Medvidek77/tidler" license=('BSD3-Clause') -depends=('bash' 'curl' 'jq' 'awk', 'flac') +depends=('bash' 'curl' 'jq' 'awk' 'flac') source=("git+$url.git#branch=stable") sha256sums=('SKIP') diff --git a/scripts/ArchLinux/PKGBUILD-git b/scripts/ArchLinux/PKGBUILD-git index 06a3a81..9c3db5e 100644 --- a/scripts/ArchLinux/PKGBUILD-git +++ b/scripts/ArchLinux/PKGBUILD-git @@ -3,9 +3,9 @@ pkgver=0.3.0 pkgrel=1 pkgdesc="Tidal music downloader based on the hifi-tui API" arch=('any') -url="https://medvidek77.tech/Medvidek77/tidler" +url="https://git.medvidek77.tech/Medvidek77/tidler" license=('BSD3-Clause') -depends=('bash' 'curl' 'jq' 'awk', 'flac') +depends=('bash' 'curl' 'jq' 'awk' 'flac') source=("git+$url.git#branch=dev") sha256sums=('SKIP') From 8842ccaa00a7fe3ce1c980c8b5e5b79c6e3842d6 Mon Sep 17 00:00:00 2001 From: Medvidek77 Date: Fri, 21 Mar 2025 14:55:20 +0100 Subject: [PATCH 45/51] Updated ArchLinux PKGBUILD files --- scripts/ArchLinux/PKGBUILD | 5 +++-- scripts/ArchLinux/PKGBUILD-git | 3 ++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/scripts/ArchLinux/PKGBUILD b/scripts/ArchLinux/PKGBUILD index 1246f59..2860b30 100644 --- a/scripts/ArchLinux/PKGBUILD +++ b/scripts/ArchLinux/PKGBUILD @@ -2,11 +2,11 @@ pkgname=tidler pkgver=0.3.0 -pkgrel=1 +pkgrel=2 pkgdesc="Tidal music downloader based on the hifi-tui API" arch=('any') url="https://git.medvidek77.tech/Medvidek77/tidler" -license=('BSD3-Clause') +license=('BSD-3-Clause') depends=('bash' 'curl' 'jq' 'awk' 'flac') source=("git+$url.git#branch=stable") sha256sums=('SKIP') @@ -14,5 +14,6 @@ sha256sums=('SKIP') package() { cd "$srcdir/$pkgname" install -Dm755 src/tidler "$pkgdir/usr/bin/tidler" + install -Dm755 src/tidler.conf "$pkgdir/usr/bin/tidler" install -Dm644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE" } diff --git a/scripts/ArchLinux/PKGBUILD-git b/scripts/ArchLinux/PKGBUILD-git index 9c3db5e..9b58362 100644 --- a/scripts/ArchLinux/PKGBUILD-git +++ b/scripts/ArchLinux/PKGBUILD-git @@ -4,7 +4,7 @@ pkgrel=1 pkgdesc="Tidal music downloader based on the hifi-tui API" arch=('any') url="https://git.medvidek77.tech/Medvidek77/tidler" -license=('BSD3-Clause') +license=('BSD-3-Clause') depends=('bash' 'curl' 'jq' 'awk' 'flac') source=("git+$url.git#branch=dev") sha256sums=('SKIP') @@ -12,5 +12,6 @@ sha256sums=('SKIP') package() { cd "$srcdir/$pkgname" install -Dm755 src/tidler "$pkgdir/usr/bin/tidler" + install -Dm755 src/tidler.conf "$pkgdir/usr/bin/tidler" install -Dm644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE" } From 6c73942d070619f4e3ef40eb7d9d30f443ead5ba Mon Sep 17 00:00:00 2001 From: Medvidek77 Date: Fri, 21 Mar 2025 14:57:34 +0100 Subject: [PATCH 46/51] Update scripts/ArchLinux/PKGBUILD-git --- scripts/ArchLinux/PKGBUILD-git | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/ArchLinux/PKGBUILD-git b/scripts/ArchLinux/PKGBUILD-git index 9b58362..0b63000 100644 --- a/scripts/ArchLinux/PKGBUILD-git +++ b/scripts/ArchLinux/PKGBUILD-git @@ -1,6 +1,6 @@ pkgname=tidler pkgver=0.3.0 -pkgrel=1 +pkgrel=2 pkgdesc="Tidal music downloader based on the hifi-tui API" arch=('any') url="https://git.medvidek77.tech/Medvidek77/tidler" From 5f09b32e062ab7fe671bb68d1a7b89b3909eb695 Mon Sep 17 00:00:00 2001 From: Medvidek77 Date: Fri, 21 Mar 2025 15:40:11 +0100 Subject: [PATCH 47/51] Update PKGBUILD files --- scripts/ArchLinux/PKGBUILD | 6 ++++-- scripts/ArchLinux/PKGBUILD-git | 8 ++++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/scripts/ArchLinux/PKGBUILD b/scripts/ArchLinux/PKGBUILD index 2860b30..a5d0a4e 100644 --- a/scripts/ArchLinux/PKGBUILD +++ b/scripts/ArchLinux/PKGBUILD @@ -2,7 +2,7 @@ pkgname=tidler pkgver=0.3.0 -pkgrel=2 +pkgrel=3 pkgdesc="Tidal music downloader based on the hifi-tui API" arch=('any') url="https://git.medvidek77.tech/Medvidek77/tidler" @@ -14,6 +14,8 @@ sha256sums=('SKIP') package() { cd "$srcdir/$pkgname" install -Dm755 src/tidler "$pkgdir/usr/bin/tidler" - install -Dm755 src/tidler.conf "$pkgdir/usr/bin/tidler" + install -Dm644 src/tidler.conf "$pkgdir/usr/bin/tidler.conf" install -Dm644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE" } + +backup=('usr/bin/tidler.conf') diff --git a/scripts/ArchLinux/PKGBUILD-git b/scripts/ArchLinux/PKGBUILD-git index 0b63000..611a132 100644 --- a/scripts/ArchLinux/PKGBUILD-git +++ b/scripts/ArchLinux/PKGBUILD-git @@ -1,6 +1,8 @@ +# Maintainer: Medvidek77 + pkgname=tidler pkgver=0.3.0 -pkgrel=2 +pkgrel=3 pkgdesc="Tidal music downloader based on the hifi-tui API" arch=('any') url="https://git.medvidek77.tech/Medvidek77/tidler" @@ -12,6 +14,8 @@ sha256sums=('SKIP') package() { cd "$srcdir/$pkgname" install -Dm755 src/tidler "$pkgdir/usr/bin/tidler" - install -Dm755 src/tidler.conf "$pkgdir/usr/bin/tidler" + install -Dm644 src/tidler.conf "$pkgdir/usr/bin/tidler.conf" install -Dm644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE" } + +backup=('usr/bin/tidler.conf') From 761fd94395aa8898c58218d716ea38dab6461621 Mon Sep 17 00:00:00 2001 From: Medvidek77 Date: Fri, 21 Mar 2025 15:55:09 +0100 Subject: [PATCH 48/51] Update .deb package --- scripts/Debian/tidler.deb | Bin 3196 -> 3216 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/scripts/Debian/tidler.deb b/scripts/Debian/tidler.deb index 4112a6b815b8def170d746fa7a0fd13590b0ef6a..2f26673ca846be1dac04692c14c5e560506d417b 100644 GIT binary patch delta 2592 zcmV+*3g7ko7?2r|9RxNwH#dAoaik8q9xOur(O; zFp~5)UIm>E98@H+1nnQLEIcG!k=ogC+hW>6ik*m5RFokw!J>11C-NI%k@sZAt4Icq zqz3hscDeCOudLmE(`!I3Z24u)2hs;6QE0686G*-(3^(?(1a06*1)DfcO6P6Otw&LyepHcN23~s#mYMx!8YvL257huzARTqt}A~I`his@OoQiEQc|LZb{)j{`UF635Ai=6>W=vyh_);vGp z>BR3ce?DOWmCJ((;aDeHh50j)N>^_G4q#A3Yl@Ew zGebwkhhosK$xro^wqGksj8@HnF_S=yCCWmDAq&=GW-1e|NL+uj zRF}w?k|1sF@j(u}6c6ESQ=^ZY0H?Fw`^L4trqI8CNj`=RBJuzB{w!}}tXOUG;uDeV zX&mkcZ0%3baQSgo_e=&jSIuYk`7u2&QN3Y( z^bFeV<3kom7PrJ>UaPCP`@0TY8TZWvQ_A924;yVbfWD@T%>=Yf>Z90maBW&yHKj7aL)bH$YXHK* z#*Kf8PFS>uOXgc$#C(R!>6iml%g7%$JPS_y*j!j%615y3QpoW}1r`vltuR^D)HV@>UVx|p1~;CDR_q_ZsQ=sC#bW%> zQ-WKYBGg{^Ga0JwaHhMUCEhWwzKfuVd)|LMr~g%;E(IGky5nrD0K2%T3-;Alr-Z|x zHkUvV-&uzSa7uw3iM8vp2*0qzG`ds3>iI(V(!I#H3CT4$w;Jm_EK2&v4=FeQ^*Z|SDXa;QMC<}TIGq#Q7Bj*NdA zEqm#2K96$1uuW-z_Jm`rn-~ zS-LWu!Sux?sQ0|8kKmMLc(iv|kWPR4Y0id==jm|a;I0oXlH#XOEiJx^$+frA`=r{j zin*8w6TbaMvnvROg93t4qvaQJ2hyfPUmqE&SX^)_VzqVN3K;n+O^jp-T=M6dVO1fhasX!jHP3%B<>^*I z?6Zg2A`X7ARsjwnNnN777a_JkU~!g69FfWSSnL#ekMxqNOxOGwO=vmi|$_IwI+@_yJs}J)|q}33JG+a|~VGcx8WT+eZPix?|BIfZ3xniuEk^lGTY)ga?UoMhSL<@3o}wB&`E5 zyB}MQfBJ@gd1|Uy>Cco1b>aNNav(QwU|VU}o0sHZZ&tI^(Pt z&`HRkwsbtDt33mm$zq6{t1Yj{KN>ap@6`m|EmCeMDttx4qzVlvbhwx4n-L%&d3_Ec z<`r(sy)DJKfA?4(G*YU|*}a#jt2V4;{BF6EtuYEf?p z!WLrOBV+W?v|bWKzSqN31*d&g=L5i+FS8$b5PPom=3tD^zFX)_q$CzH99Jgm-AuC& zCjIXpvI?Ig3^F({6V9%X=#`Pzb`AnX_|5a&0U%x*2*O=6NRrkn1{1oH?_I8;MvrXP z-%}EdnVMH1@*G^U@>uu&v+g6&kAf6hAJjq-ms(2z##ZxAz987dt&T=5cbzvpo`#Ld z9jK4RZP25@3BQ;K8Bk&X0002lP>Co%g?)_x0kRZ;paB5;jSVcZ#Ao{g000001X)^~ C$Ljq6 delta 2572 zcmV+n3iI`l8T=TK9Rx5jFf@@NJOnT?Ff_4YumJ=xF)%cdAr}KOHZqeh0v8v86o8-s zApsTu0000001N5^iQrHF3Hp;=0&0JZGamvuvy$DZ16g}}dNf!M@{Vjf?;yqstrIf` z-8)fZBl}48AOFdJ_cnwJeoMr@sJI;gg-}fk=ex4R6gH!ZJA$kqbGc+`KW5FJ;Awqk z3MR4uGsifV{k8mhTxsxe$ktEn8wZu~kPydxCc?B6vp1&;TolN&)Q7l9p^WcJv3l(#_ zL@stM;jZ(_YV=G^@0=x6G0}hho_25>*Ao{Z$b;(=Q5QL-i(bHPBy&k6iwPC0vWOpu z@FSLcsLw&daA2BG)C^1Hu6E4rIxtd&tKwx70ifieO<)jgqKkEc_biAE^GR6E3LhsL|LLp)&?%98LeBEW?>6^9+ z!?P-^00sPG$YCsG13tGOEcAKbHqx(G{PB>{DEta~qqkFB>5RzicSi0`Tk-n9M}FkV z>=Pdb2d@|C$fjr})$IEIW1-(QX^wKw!K~R%9?^j(gIa>5V0`ndn$HE_J#J>=%@C~8 z?*!-+JAg%#MNH(eOeTM4w{~-B`HZS2`8$h|7*XXdoqvMHs-o>`7#e*{Zcyqowbo%t8ibXd4V)>$7E;k}#DRGn?N=8U5;YfmZ%bqjx+go6{?wBWP6s+HGJ zq5B932(t)lg8NaP0bKc_?c||2l9IETv$?`|GZi921<`W!?hs00GIv=i)}^*GkGfcQ z>+%5Dk!GpKvkCJ@LJVr1Ti8gCuHQXe4@2=VcA!S=$R2t->^*eFyxO_auU~`aPScjSxQD3u>7^at-xv} zdcg!aX^5NZ`XJuN6{7p+!VP-%zBJF$xc3Boa|2bAt{xj<<55eY4m6*Hz5bBu_lF(biv49*6cobLr<#kpfhr zaRq-f{{{q_;>TmAk;`z^<9gPFx6AF(<4jarfASToZnUT1n@SiBR3?}>#1CIxESGl? zuO_pMK*Zp^hPYB72$+PFY1m|N3X$SAfQ0=iW=kQ%?z~46k=DR#mG4gz_##7jCkHIH zku{JKsf=czu^3{})ch{9!RnAtun#4@I>>)p=1cR7{2$IvwkO8=kyL*OvF=192fB1} zka<&b6=Zz)LMoAw!X=M(O~aoE{C!&*p~FuoWJ9+2WGXZS%-N_^V^QpJE;u;$ z9=%{{Y|h1ChX9;z#O{H-T>J*}n4IC%w8B&h%G<8UZH+g!SwK%X{0sMe)Zt|wv;BXc zX=_HucVOGzF@P*;{)6ZA+=IJzYVhe4lG&p@iQP?uVeonwlj4%YNoWTV|vp)Dt<}m z6$7v*)9`PtFHszeN5@(HpF@GQZJ~eo=%ire-HS>gr}UG2M#*cQ^cUX~|YHsp92}kkp2BLqiPd!Hp z(eIIjTHE%R9r^X#S*65TL4l}Iz&<-{iw~*`L%wp)_?Bi8UPBHkk;+CESH-LF>{s}; z6xyr;yxlc;^kMEhK$%>(xef6QW8whFwb=0Tu4b8HdUI0`q+o&=Z>ysUhio!)>mLeG z0PCf4^H_%jks+*ovnG4O+M$1NjXYeH?o9OYi`UE{N#fZaBXlM{v0l0EzG@F4oN7NH!MwV#5_RpdzVOk znr4{dq{OG+{TjtskEXDn8TTQXY;)E?r+`atiY{%qT|Ot0d_zG?k&n|6AF$z?Jy3-W z`1#|j%q9JCn#02CYIoIxYpU9m(C(p-C*~_pS#ji^*{=cEbQOQ#KvpuXTXqusv-Dg^ zr$ZJy&*JRL7ACMUIsJi=7p4?|EDu_sG;O7|Z!KvH(p2~uigiAtFmgrXc9@1wn+?Gm2> z;&MjsyV^^@JpD*R{mhEpH&s~t6y& Date: Fri, 21 Mar 2025 23:42:32 +0100 Subject: [PATCH 49/51] Add version command --- src/tidler | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/tidler b/src/tidler index 482a9b2..6ee80f0 100755 --- a/src/tidler +++ b/src/tidler @@ -2,6 +2,7 @@ . tidler.conf # Load ENVs from config file +version="0.3.0" if [ -n "$PROXY_URL" ]; then proxy_url="$PROXY_URL" @@ -267,9 +268,6 @@ searchAlbum() { } - -echo "Welcome to TiDLer!" && echo "" - if [ "$1" = "search" ]; then if [ "$#" -ge 2 ]; then shift @@ -292,6 +290,8 @@ elif [ "$1" = "album" ]; then else searchAlbum fi +elif [ "$1" == "version" ]; then + echo "TiDLer $version by Medvidek77" elif [ "$1" = "help" ]; then echo "" @@ -306,6 +306,8 @@ elif [ "$1" = "help" ]; then echo "" echo "album {album_name}-optional -> search and download any album" echo "" + echo "version -> print TiDLer version" + echo "" echo "help -> print this message and exit" else echo "### Choose function! (Enter number) ###" From fca39791afa97028829227664da91a8192c112cd Mon Sep 17 00:00:00 2001 From: Medvidek77 Date: Sat, 22 Mar 2025 00:08:00 +0100 Subject: [PATCH 50/51] Added random sleep time --- src/tidler | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/tidler b/src/tidler index 6ee80f0..e015973 100755 --- a/src/tidler +++ b/src/tidler @@ -4,6 +4,7 @@ version="0.3.0" + if [ -n "$PROXY_URL" ]; then proxy_url="$PROXY_URL" else @@ -102,7 +103,7 @@ downloadTrack() { if [ "$success" = false ]; then echo "Attempt $attempt_num failed. Retrying..." ((attempt_num++)) - sleep 1 # TODO: random sleep time + sleep "1.$(tr -cd 0-9 Date: Sat, 22 Mar 2025 00:31:03 +0100 Subject: [PATCH 51/51] Updated .deb file --- scripts/Debian/tidler-0.3.0.deb | Bin 0 -> 3228 bytes scripts/Debian/tidler.deb | Bin 3216 -> 0 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 scripts/Debian/tidler-0.3.0.deb delete mode 100644 scripts/Debian/tidler.deb diff --git a/scripts/Debian/tidler-0.3.0.deb b/scripts/Debian/tidler-0.3.0.deb new file mode 100644 index 0000000000000000000000000000000000000000..09db682fed73d1f968293ac83311fa40ace25bcd GIT binary patch literal 3228 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 literal 0 HcmV?d00001 diff --git a/scripts/Debian/tidler.deb b/scripts/Debian/tidler.deb deleted file mode 100644 index 2f26673ca846be1dac04692c14c5e560506d417b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3216 zcmai$S5Om*5{47Hp@e2oh$o?mA_)mq5kWvOfOH6xfQp*Lv; zP(Y*{A{_+*rPo6TLAW~i-ZSSu-G6p=W@qPr*>4|yVP$(?M;8^4le2@Xy(hxK)zjWL z1P+Iz73E~)6)r0(UWUU_zvlmTGzz64CkKcBs{hCiB!fhO9KAgKeZAa~{`S7e;L!i? zmsM2w+y7HB6lVzlFwG5DYcaLdFc1udfe^sI^%6AeJSA}gMBo7e>`l;cV0z0r9hH#N z?|RPX*}&Vzpeaq_7^lf>ir%L~juv^tKB%KU`@kFD0mwLFXw$~Sck!q}q?OM_5>e~| zc^u}Uw?zIP09MDCA7MHbVC4^b-%99SUh8NpRu}3)tjyTW75WFLLbN^!Z>>D)AjtCE zxki5VKA&mzkC~sFO6!}f9B$*rh>|=(Xk_i_PYc;TV)@yy?HG-jiHqK4cjWrXE@Q%F zF;P9dWpJ;H1yzoX^pDX~9g^T`+wE^3wsy0zfBt=SDJ+`Mbzpi}FS;rtUOP3M}OviA#Brbo6 zCROZ~G~2S+%wLrq9g_YlX-zUlZ%x+ljpc{H?3xG=erySbf$U5~{4_J|BZS;Px}9~k z1?R?~Qy!^T;pi^&O(17b4w+Nw~DW>CwQ1de?5@n>Z54YvD!1y z5L8izUwY1RdaUW8wFgg~W+I1_C|Ukc`HB6*$8wb_5&j!%`<;H3o{PZ*aF7^GtTJF- zmq+Ve`RNXdwD-ufk*V|EQHL}Te0o@Za5XmdOxL*sXDQR1_(GK%1hL6%X^HGLWV~wV z8a*N;w8|{Dv)M*O!DqZ;BDP_e+z($=v3fX zTtG}$v&bj(enxYEjpb_NHs^~1!?YQP`}FI%Lj_;g@DwJ>?EzwFs-DEwA+B?^2HuW*>IAEy-7kv96kt z!K{g878V4gC3rZ^rOl)F5S2r>=BCv#9ASBj_gW)svorkfuy7Zva^BDez1_w~y8p4Q=Dj~3mFsm$ZsY-Y9xN17s~4)3=bCIaYMEs+x) zjmVU<+&<|V+{w|;_NMsgWE)v!hhI4F1F ze^~q|3@5&rzXB8p9Nkjq0TS|3CsqS`($9W z@Lc<1IP_cYZXix0OwYfiiF>5~rkmxmqng08XJ8|V8q%>NRVTOz%^NIu0J(8w1Wgdg zD)Y^WEP-oZ$aJN{>X{@yJPBsvN%HMMu!puAfXd$v0VGmXybpY^d$(9FoA=(?JwRWR zHhOCxzRmG@^}7ZH19{WtXhWse9X4`VpWW+aHtG6?1&e%-;4(I|vW)(`{*V?uON$*%F>&N`!WS#Cd2h(ZIbW6%UQDzs4n~@LZa};WER?@ zK_;_xyIs6!uZfa8^~5>2ItZ7d|HJjq*o65-@9C*hFe2?6*${!CJ^EPlrvEVibH$_j zXKZ}5pITLy*kYqV=wf~X(tm0@1$Z<4!ikvGiEMl3USy`!_H9FuPMBIyUqP6gpuPLU zq3?OK0=}&Mg&MZ7vlN`Qx1>W&z*o?j14%ui(<$rC`4{$P!bQG-+sE>K=-EZA+DcX2 zm46XZu>1H<>Kj31X(cYQ+J~ zp9WBEH_(q>c%4y#P{m2gfQn{hgcrL8%==2f74S?{AoN7OD!BOIW}%nRh|&RA`isee z#YkcoYi#{^VU8vhyrn?Y!x1CTh3+#PrGNIw$DV9yo0?v~E`BpUMK{SN=D z)Wn1JKLk!4=Ol^egqkD#WBfByyO(Y}wM4~zkW^Emv4Wf5;hAy2svaNpyub7CvH`N&;MM9Rf2Lv zIb<%Q`2H+SSx8SE3FKnX-0$5Q2f}TH*xun~F=@k+EPM@V>-f@_TFLIilP0{x=P%6R zo6yQl+}?53n&_wG2mF?>L3JLIr7oZYyQNQqkG7R0X(58L6qU1M6F;6SN^bX{=e3+_ je#Umz(BXIN95al+pc)gN2mn_8&WwP=L{6!HX3~EFaFOJg