#!/bin/bash # Randomly play media segments from a list of files with start and end # time line format: # 1:00//1:05//~/file.mp4 f="$1" n=$(cat "$f" | wc -l) while true; do while read -r line; do echo "$line" regex='([0-9:]+)//([0-9:]+)//(.+)' [[ "$line" =~ $regex ]] || continue start=${BASH_REMATCH[1]} end=${BASH_REMATCH[2]} media=${BASH_REMATCH[3]} media="${media/#~/${HOME}}" # echo "start: $start; end: $end; file: $media" mpv --start=$start --end=$end "$media" done <<<$(shuf -n $n "$f") sleep 1 done