Added some experimental features: Album directory create, Config file, Choose files location
This commit is contained in:
parent
b1d1d61064
commit
d5fe38b570
2 changed files with 35 additions and 9 deletions
43
src/tidler
43
src/tidler
|
@ -1,5 +1,6 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
|
. tidler.conf
|
||||||
|
|
||||||
downloadTrack() {
|
downloadTrack() {
|
||||||
if [ "$#" -ge 1 ]; then
|
if [ "$#" -ge 1 ]; then
|
||||||
|
@ -17,14 +18,28 @@ downloadTrack() {
|
||||||
url=$(echo "$json_data" | jq -r '.[-1].OriginalTrackUrl')
|
url=$(echo "$json_data" | jq -r '.[-1].OriginalTrackUrl')
|
||||||
cover_data=$(curl -s "https://tidal.401658.xyz/cover/?id=$id")
|
cover_data=$(curl -s "https://tidal.401658.xyz/cover/?id=$id")
|
||||||
cover_url=$(echo "$cover_data" | jq -r '.[0]["1280"]')
|
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"
|
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
|
# Metadata
|
||||||
metaflac --set-tag="NAME=$track_name" --set-tag="ARTIST=$artist_name" --set-tag="ALBUM=$album_name" --import-picture-from="cover.png" "$filename"
|
metaflac \
|
||||||
|
--set-tag="NAME=$track_name" \
|
||||||
rm cover.png
|
--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() {
|
downloadAlbum() {
|
||||||
id="$1"
|
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')
|
album_tracks_ids=$(curl -s "https://tidal.401658.xyz/album/?id=$id" | jq -r '.[1].items[] | .item.id')
|
||||||
|
|
||||||
tracks_ids_list=()
|
tracks_ids_list=()
|
||||||
while IFS= read -r list; do
|
while IFS= read -r list; do
|
||||||
tracks_ids_list+=("$list")
|
tracks_ids_list+=("$list")
|
||||||
done <<< "$album_tracks_ids"
|
done <<< "$album_tracks_ids"
|
||||||
|
|
||||||
for i in "${tracks_ids_list[@]}"
|
for track_id in "${tracks_ids_list[@]}"
|
||||||
do
|
do
|
||||||
downloadTrack "$i"
|
downloadTrack "$track_id" "$album_dir"
|
||||||
done
|
done
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
searchAlbum() {
|
searchAlbum() {
|
||||||
if [ "$#" -ge 1 ]; then
|
if [ "$#" -ge 1 ]; then
|
||||||
album_name="$1"
|
album_name="$1"
|
||||||
|
|
1
src/tidler.conf
Normal file
1
src/tidler.conf
Normal file
|
@ -0,0 +1 @@
|
||||||
|
# DOWNLOADS_DIR=path
|
Loading…
Add table
Add a link
Reference in a new issue