Как возобновить воспроизведение видеоплеера с того места, где я остановился в прошлый раз?

Как возобновить воспроизведение видеоплеера с того места, где я остановился в прошлый раз?

Я хотел бы иметь возможность запускать видеоплеер (VLC, SMPlayer) через Терминал, используя какую-нибудь команду, resume_mediaи тогда он автоматически найдет последний воспроизведенный медиафайл (.mkv, mp4 и т. д.) в папке и возобновит воспроизведение с того места, где оно было остановлено.

Как мне этого добиться?

решение1

Если в вашей системе запущен демон Zeitgeist, он должен сохранять некоторую полезную информацию в файле ~/.local/share/recently-used.xbel. Zeitgeist отслеживает доступ к файлам на диске, поэтому он должен знать ваш последний воспроизведенный видеофайл. К сожалению, файлы не сортируются по доступу к файлам, но база данных также содержит эту информацию, поэтому вы можете выполнить grep всех необходимых данных, а затем искать последний файл в цикле.

Я только что написал Bash-скрипт для поиска последнего воспроизведенного файла с типом MIME «video/*» и воспроизведения его с помощью SMPlayer (но вы, конечно, можете использовать любой видеоплеер).

#!/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"

Сохраните его в файл, добавьте разрешение на выполнение, и все должно заработать.

Связанный контент