Skip to content

Instantly share code, notes, and snippets.

@nnovzver
Last active May 1, 2021 17:17
Show Gist options
  • Save nnovzver/bf7d38c13f51df7848fc40142fbd2942 to your computer and use it in GitHub Desktop.
Save nnovzver/bf7d38c13f51df7848fc40142fbd2942 to your computer and use it in GitHub Desktop.
Mac OS script for watching a random movie
#!/usr/bin/env bash
# Mac OS
# Fun script to view random movie from given directory recursively
# Maybe you want to watch a random Friends episode :)
# Script depends on VLC media player(https://www.videolan.org/vlc/index.ru.html)
if [ $# -ne 1 ]; then
echo "Usage: $0 /path/to/movies/directory"
exit 1
fi
directory=$1
movies=()
# you can find and manage own file extensions with following one liner
# find . -type f -exec sh -c 'echo "${0##*.}"' {} \; | sort | uniq
while IFS= read -r -d $'\0'; do
movies+=("$REPLY")
done < <(find "$directory" -type f \
-iname '*.mkv' -print0 -o \
-iname '*.webm' -print0 -o \
-iname '*.flv' -print0 -o \
-iname '*.vob' -print0 -o \
-iname '*.ogg' -print0 -o \
-iname '*.ogv' -print0 -o \
-iname '*.drc' -print0 -o \
-iname '*gifv' -print0 -o \
-iname '*.mng' -print0 -o \
-iname '*.avi' -print0 -o \
-iname '*.mov' -print0 -o \
-iname '*.qt' -print0 -o \
-iname '*.wmv' -print0 -o \
-iname '*.yuv' -print0 -o \
-iname '*.rm' -print0 -o \
-iname '*.rmvb' -print0 -o \
-iname '*.asf' -print0 -o \
-iname '*.amv' -print0 -o \
-iname '*.mp4' -print0 -o \
-iname '*.m4v' -print0 -o \
-iname '*.mp' -print0 -o \
-iname '*.m?v' -print0 -o \
-iname '*.svi' -print0 -o \
-iname '*.3gp' -print0 -o \
-iname '*.flv' -print0 -o \
-iname '*.mpg' -print0 -o \
-iname '*.f4v' -print0 \
)
array_length=${#movies[@]}
if [ $array_length -eq 0 ]; then
exit 0
fi
random_index=$(($RANDOM % array_length))
open -a vlc "${movies[$random_index]}"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment