mpv scripts
This commit is contained in:
90
av/mpvmusic
Executable file
90
av/mpvmusic
Executable file
@@ -0,0 +1,90 @@
|
||||
#!/bin/bash
|
||||
|
||||
_list_audio_files() {
|
||||
if [[ $recursive -eq 0 ]]; then
|
||||
files=$( ls -p | grep -v /$ )
|
||||
else
|
||||
files=$( find . -type f )
|
||||
fi
|
||||
echo "$files" | \
|
||||
grep -i -e \.mp3$ -e \.ogg$ -e \.flac$ | \
|
||||
sort -V | \
|
||||
awk '{print "'"$PWD"'/"$0}'
|
||||
}
|
||||
|
||||
_print_audio_files() {
|
||||
n=$( wc -l "$1" | awk '{print $1}' )
|
||||
i=0
|
||||
while read line; do
|
||||
i=$(( i + 1 ))
|
||||
printf "%s/%s %s\n" \
|
||||
$i $n "$( basename "$line" )"
|
||||
done < "$1"
|
||||
}
|
||||
|
||||
_play() {
|
||||
mpv \
|
||||
--keep-open=no \
|
||||
--audio-display=no \
|
||||
--term-osd-bar \
|
||||
--msg-level=ffmpeg/audio=fatal,ad=fatal \
|
||||
--playlist="$1" $MPV_ARGS
|
||||
}
|
||||
|
||||
echo ' -r recursive
|
||||
MPV_ARGS=.. to pass them..
|
||||
|
||||
# MPV audio shortcuts'
|
||||
qolop c Y
|
||||
echo '
|
||||
| Key | Command |
|
||||
|:-------|:---------------------------|
|
||||
| p | Pause |
|
||||
| Q | Quit saving position |
|
||||
| <-/-> | Seek 5 seconds |
|
||||
| up/dn | Seek 60 seconds |
|
||||
| < / > | Prev/Next file |
|
||||
| [/] | Change speed |
|
||||
| m | Mute |
|
||||
| 9/0 | Modify volume |
|
||||
| * / | Modify volume |
|
||||
'
|
||||
qolop c Z
|
||||
|
||||
recursive=0
|
||||
for (( i=1; i<=$#; i++ )); do
|
||||
[[ "${!i}" = "-r" ]] && {
|
||||
recursive=1;
|
||||
continue
|
||||
}
|
||||
done
|
||||
|
||||
if [[ -e "$1" ]]; then
|
||||
if [[ "$1" = *".m3u8" ]]; then
|
||||
_play "$1"
|
||||
exit $?
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
playlistfile=$( mktemp )
|
||||
if [[ $recursive -eq 1 ]]; then
|
||||
_list_audio_files > "$playlistfile"
|
||||
else
|
||||
if [[ -n "$1" ]]; then
|
||||
for (( i=1; i<=$#; i++ )); do
|
||||
readlink -f "${!i}" >> "$playlistfile"
|
||||
done
|
||||
else
|
||||
_list_audio_files > "$playlistfile"
|
||||
fi
|
||||
fi
|
||||
|
||||
_print_audio_files "$playlistfile"
|
||||
if [[ -s "$playlistfile" ]]; then
|
||||
_play "$playlistfile"
|
||||
else
|
||||
echo Playlist empty
|
||||
fi
|
||||
|
||||
rm -f "$playlistfile"
|
||||
Reference in New Issue
Block a user