Hace unos días vi el último capítulo de The Office, y aunque me gustó bastante, no lo suficiente como para repetir capítulos. No me gusta Breaking Bad, que también ya terminó, así que en lo que inicia la siguiente temporada de How I met your mother estaré viendo  en mi computadora reruns de Scrubs. Sí, tengo las temporadas en mi disco duro, como en los viejos tiempos.

Así que, para evitar sesgos entre las temporadas y darle la misma oportunidad de nuevo a todos los capítulos, decidí buscar la forma de reproducir capítulos aleatoriamente. Como tengo todos los archivos en una misma carpeta, esto fue fácil. Encontré en este post la forma que mejor me funcionó, sólo la modifiqué un poco para que se ajustara a mis necesidades específicas:

#!/bin/bash
# Reads a given directory and picks a random file.

# The directory you want to use. You could use "$1" instead if you
# wanted to parametrize it.
#DIR="."
DIR="$1"

# Internal Field Separator set to newline, so file names with
# spaces do not break our script.
IFS='
'

if [[ -d "${DIR}" ]]
then
  # Runs ls on the given dir, and dumps the output into a matrix,
  # it uses the new lines character as a field delimiter, as explained above.
  file_matrix=($(ls --ignore=*.srt --ignore=*.sh "${DIR}"))
  num_files=${#file_matrix[*]}
  # This is the command you want to run on a random file.
  # Change "ls -l" by anything you want, it's just an example.
  vlc "${DIR}/${file_matrix[$((RANDOM%num_files))]}"
fi

exit 0

En este ejemplo estoy filtrando los archivos de subtítulos srt y el script mismo el cual también boté en la carpeta y al final reproduzco el resultado en vlc. Simple as pie.

Después de esto, le asigné un atajo de teclado a la llamada del script y listo, un video aleatorio de Scrubs on-demand con tan sólo oprimir algunas teclas :D

 

ACTUALIZACIÓN: Si ya no vives en la era de las cavernas y ves tus series favoritas en Netflix, puedes instalar la extensión de Chrome “Play Random Episode“, la cual te añadirá un botón en la página de las series de Netflix para que veas un episodio al azar, ¡bastante útil!

2013-11-24_0017