mirror of
https://github.com/CoolnsX/repos_scripts.git
synced 2025-12-20 07:15:20 +05:30
feat: better music tracking and playlist control
This commit is contained in:
@@ -5,8 +5,7 @@ menu_droid() {
|
||||
}
|
||||
|
||||
menu_linux() {
|
||||
[ -z "$3" ] && width="0.6" || width="$3"
|
||||
bemenu --fn 'Cascadia Mono 15' -i -c -W "$width" -B 3 -l 25 -p "$1"
|
||||
bemenu --fn 'Cascadia Mono 15' -i -c -W "0.${3:-6}" -B 3 -l 25 -p "$1"
|
||||
}
|
||||
|
||||
search_droid() {
|
||||
|
||||
2
ani-new
2
ani-new
@@ -3,7 +3,7 @@
|
||||
down() {
|
||||
[ -n "$debug" ] && printf "\033[1;32m %s\033[0m : %s\n" "$3" "$2" && return 0
|
||||
info_$os "$3 links fetched.."
|
||||
choice=$(printf "stream\ndownload\ncast\nnext mirror" | menu_$os "??")
|
||||
choice=$(printf "stream\ndownload\ncast\nnext mirror" | menu_$os "??" '' "2")
|
||||
[ -z "$choice" ] && exit 0
|
||||
[ "$choice" = "stream" ] && player_$os "$2" "$title" && info_$os "opening $title" "mpv" && exit 0
|
||||
[ "$choice" = "cast" ] && info_$os "casting $title" "podcast" && catt cast "$2" && exit 0
|
||||
|
||||
8
screen
8
screen
@@ -20,12 +20,12 @@ record() {
|
||||
source=$(printf "screen only\nspeaker\nmic" | menu "Audio Source:" "3")
|
||||
monitor=$(hyprctl monitors | sed -nE 's|Monitor ([^ ]*).*|\1|p')
|
||||
[ "$(printf '%s\n' "$monitor" | wc -l)" -gt 1 ] && monitor=$(printf '%s' "$monitor" | menu "Choose Monitor:" "3")
|
||||
#shellcheck disable=SC2089
|
||||
[ -z "$source" ] && info "" "2000" "No option Selected" && return 0
|
||||
info "simplescreenrecorder" "700" "Recording Started" "Capturing $monitor($source)"
|
||||
sleep 0.3
|
||||
[ "$source" != "screen only" ] && pactl set-default-source "$(eval "printf \$$source")" && arg=-a
|
||||
#shellcheck disable=SC2086
|
||||
setsid -f wf-recorder -t -m "mp4" -f "$tmp_file" --output "$monitor" $arg >/dev/null 2>&1
|
||||
#shellcheck disable=SC2086,SC2090
|
||||
info "simplescreenrecorder" "1000" "Select Region" "Tap/Click to select full" && setsid -f wf-recorder -x yuv420p -f /tmp/screenrecord.mp4 --output eDP-1 $arg -g "$(slurp)" >/dev/null 2>&1
|
||||
info "simplescreenrecorder" "700" "Recording Started" "Capturing $monitor($source)"
|
||||
}
|
||||
|
||||
compress() {
|
||||
|
||||
20
yt-music
20
yt-music
@@ -76,6 +76,7 @@ get_music_list(){
|
||||
\"enablePersistentPlaylistPanel\": true,
|
||||
\"tunerSettingValue\": \"AUTOMIX_SETTING_NORMAL\",
|
||||
\"playlistId\": \"RDAMVM$(cat "$logdir/start")\",
|
||||
\"index\": $(cat "$logdir/counter"),
|
||||
\"params\": \"wAEB\",
|
||||
$([ -e "$logdir/continue_token" ] && cat "$logdir/continue_token")
|
||||
\"isAudioOnly\": true,
|
||||
@@ -89,6 +90,8 @@ get_song_lyrics() {
|
||||
json_next="{
|
||||
\"enablePersistentPlaylistPanel\": true,
|
||||
\"tunerSettingValue\": \"AUTOMIX_SETTING_NORMAL\",
|
||||
\"playlistId\": \"RDAMVM$(cat "$logdir/start")\",
|
||||
\"index\": $(cat "$logdir/counter"),
|
||||
\"videoId\": \"$1\",
|
||||
\"isAudioOnly\": true,
|
||||
\"context\": $(cat "$logdir/context")
|
||||
@@ -110,7 +113,7 @@ get_song_lyrics() {
|
||||
},
|
||||
\"browseId\": \"$browseId\"
|
||||
}"
|
||||
get_data "browse" "$json_lyrics" "$droid_agent" "AIzaSyAOghZGza2MQSZkY_zfZ370N-PUdXEo8AI" | sed 's/metadata"/\n/g' | sed -nE 's|.*lyricLine":"([^"]*)","cueRange":\{"startTimeMilliseconds":"([^"]*)","endTimeMilliseconds":"([^"]*)".*|\3\t\1|p' > "$logdir/lyrics"
|
||||
get_data "browse" "$json_lyrics" "$droid_agent" "AIzaSyAOghZGza2MQSZkY_zfZ370N-PUdXEo8AI" | sed 's/metadata"/\n/g' | sed -nE 's|.*lyricLine":"([^"]*)","cueRange".*"endTimeMilliseconds":"([^"]*)".*|\2\t\1|p' > "$logdir/lyrics"
|
||||
fi
|
||||
}
|
||||
|
||||
@@ -131,8 +134,9 @@ loop() {
|
||||
done
|
||||
pos=$(echo '{ "command": ["get_property", "time-remaining"]}' | socat - /tmp/mpvsocket | sed -nE 's_.*data":([^\.]*).*_\1_p')
|
||||
pgrep -f "mpvsocket" >/dev/null || cleanup_shit
|
||||
[ -z "$pos" ] && i=$(cat "$logdir/counter") && : $((i+=1)) && pgrep -f "mpvsocket" >/dev/null && [ -n "$(cat "$logdir/next")" ] && play "$(sed -n "${i}p" "$logdir/next")" "$1" && printf '%s' "$i" > "$logdir/counter"
|
||||
[ "$(cat "$logdir/counter")" -ge "$(wc -l "$logdir/next" | cut -d' ' -f1)" ] && get_music_list
|
||||
#shellcheck disable=SC2030,SC2031
|
||||
[ -z "$pos" ] && i=$(cat "$logdir/counter") && : $((i+=1)) && pgrep -f "mpvsocket" >/dev/null && [ -n "$(cat "$logdir/next")" ] && play "$(sed -n "$((i+=1))p" "$logdir/next")" "$1" && printf '%s' "$i" > "$logdir/counter"
|
||||
tail -1 "$logdir/next" | grep -q "$(cut -d'>' -f2 < "$logdir/current")" && get_music_list
|
||||
done
|
||||
}
|
||||
|
||||
@@ -186,7 +190,7 @@ play() {
|
||||
|
||||
#next songs data
|
||||
[ -n "$3" ] && get_music_list &
|
||||
get_song_lyrics "$id" "" &
|
||||
get_song_lyrics "$id" &
|
||||
pgrep -f "yt-music loop" >/dev/null || setsid -f "$0" loop
|
||||
}
|
||||
|
||||
@@ -210,7 +214,9 @@ search_play() {
|
||||
get_cookies
|
||||
printf "0" > "$logdir/counter"
|
||||
printf '' > "$logdir/next"
|
||||
rm -f "$logdir/continue_token"
|
||||
res=$(get_data "search" "$json_search" "$agent" | sed 's/watchEndpoint"/\n/g' | sed -nE 's_.*videoId":"([^"]*)",.*label":"Play ([^"]*)".*_\2\t\1_p' | menu "Yt-music [Play]:")
|
||||
printf "%s\n" "$res" >> "$logdir/next"
|
||||
printf "%s" "$res" | cut -f2 > "$logdir/start"
|
||||
[ -z "$res" ] || play "$res" "verbose" "1"
|
||||
}
|
||||
@@ -223,10 +229,12 @@ play_next() {
|
||||
i=$(cat "$logdir/counter")
|
||||
if [ -z "$1" ]; then
|
||||
: $((i+=1))
|
||||
play "$(sed -n "${i}p" "$logdir/next")" "$1"
|
||||
#shellcheck disable=SC2030
|
||||
play "$(sed -n "$((i+=1))p" "$logdir/next")" "$1"
|
||||
else
|
||||
notify-send -h "string:x-canonical-private-synchronous:${0##*/}" -i "$logdir/default.jpg" "$(cut -d">" -f1 "$logdir/current" | tr ':' '\n')"
|
||||
next=$(nl -n'ln' "$logdir/next" | sed "s/^$i /& /" | menu "YT-music [play-next]: ")
|
||||
#shellcheck disable=SC2031
|
||||
next=$(nl -n'ln' -v0 "$logdir/next" | sed "s/^$i /& /" | menu "YT-music [play-next]: ")
|
||||
[ -z "$next" ] && return 0
|
||||
i=$(printf '%s' "$next" | sed 's///g' | cut -f1 | tr -d ' ')
|
||||
play "$(printf '%s' "$next" | cut -f2-)" "verbose"
|
||||
|
||||
Reference in New Issue
Block a user