Como fazer com que um player de vídeo seja retomado de onde parei?

Como fazer com que um player de vídeo seja retomado de onde parei?

Gostaria de poder iniciar um reprodutor de vídeo (VLC, SMPlayer) via Terminal, usando algum comando como resume_mediae 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.

informação relacionada