Gostaria de poder iniciar um reprodutor de vídeo (VLC, SMPlayer) via Terminal, usando algum comando como resume_media
e então ele encontrará automaticamente o arquivo de mídia reproduzido mais recentemente (.mkv, mp4 etc.) em uma pasta e retomará o reprodução de onde foi interrompida.
Como posso conseguir isso?
Responder1
Se você tiver o daemon Zeitgeist em execução em seu sistema, ele deverá salvar algumas informações úteis no arquivo ~/.local/share/recently-used.xbel. O Zeitgeist monitora o acesso aos arquivos no disco, por isso deve saber o arquivo de vídeo reproduzido mais recentemente. Infelizmente, os arquivos não são classificados por acesso ao arquivo, mas o banco de dados também contém essas informações, para que você possa obter todos os dados necessários e procurar o arquivo mais recente em um loop.
Acabei de escrever um script Bash para encontrar o arquivo reproduzido mais recentemente com o tipo MIME "video/*" e reproduzi-lo usando o SMPlayer (mas você pode usar qualquer reprodutor de vídeo, é claro).
#!/bin/bash
date_recent=""
file_name=""
# get list of files with MIME type "video/*"
video_files_list=$(grep -B3 "<mime:mime-type type=\"video/" ~/.local/share/recently-used.xbel | grep "modified=")
while read -r line
do
# extract modification time (last access to file)
date_line=$(echo "$line" | cut -d'"' -f6)
if [ "$date_recent" \< "$date_line" ]
then
date_recent=$date_line
file_name=$(echo "$line" | cut -d'"' -f2)
fi
done <<< "$video_files_list"
# file name is encoded like URL, use Python to decode it
file_name=$(python -c "import sys, urllib as ul; print ul.unquote_plus(\"$file_name\")")
# play video
smplayer "$file_name"
Salve-o em um arquivo, adicione permissão para executar e deve funcionar.