#!/bin/sh instance='sound.redeyes.club' default_player=mpv ordering='title' funkwhale_api_check_api_limits() { curl -s "https://$instance/api/v1/rate-limit/" | jj -p } funkwhale_api_get_tracks() { get_json=$(curl -s "https://$instance/api/v1/tracks?ordering=$ordering&playable=true&page=$1" 2>&1 | tee preload) export count_all_tracks=$(echo $get_json | jj -l count) echo $get_json | jj -l 'results.#.uploads.0.listen_url' | sed 's/"//g' } funkwhale_api_get_albums() { curl -s https://$instance/api/v1/albums/ | jj -p results } load_tracks_to_playlist() { echo "Loading page $1 ..." echo '#EXTM3U\n' > playlist.m3u8 counter_titles=0 for i in $(funkwhale_api_get_tracks $1); do title=$(cat preload | jj results."$counter_titles".title) echo "#EXTINF:-1, $counter_titles - $title" >> playlist.m3u8 counter_titles=$(expr $counter_titles + 1) echo "https://$instance$i\n" >> playlist.m3u8 done } funkwhale_api_get_tracks 1 1>> /dev/null echo "Tracks avalaible on $instance: $count_all_tracks\n" downloadtrackspls='Download tracks in playlist' startplayer='Start player' checkapilimits='Check API limits (debug)' Exit='Exit' while true; do choice=$(echo "$downloadtrackspls\n$startplayer\n$checkapilimits\n$Exit" | fzy) if [ "$choice" = "$downloadtrackspls" ]; then echo 'Enter page number: ' read page load_tracks_to_playlist $page elif [ "$choice" = "$startplayer" ]; then $default_player --no-vid --no-ytdl playlist.m3u8 elif [ "$choice" = "$checkapilimits" ]; then funkwhale_api_check_api_limits | more elif [ "$choice" = "$Exit" ]; then exit 0 fi done