Wie kann ich einen Videoplayer dort fortsetzen, wo ich zuletzt aufgehört habe?

Wie kann ich einen Videoplayer dort fortsetzen, wo ich zuletzt aufgehört habe?

Ich möchte einen Videoplayer (VLC, SMPlayer) über das Terminal starten können, indem ich einen Befehl wie diesen verwende. resume_mediaAnschließend findet er automatisch die zuletzt abgespielte Mediendatei (.mkv, mp4 usw.) in einem Ordner und setzt die Wiedergabe dort fort, wo sie gestoppt wurde.

Wie kann ich das erreichen?

Antwort1

Wenn auf Ihrem System der Zeitgeist-Daemon läuft, sollte er einige hilfreiche Informationen in der Datei ~/.local/share/recently-used.xbel speichern. Zeitgeist überwacht den Zugriff auf Dateien auf der Festplatte und sollte daher Ihre zuletzt abgespielte Videodatei kennen. Leider sind die Dateien nicht nach Dateizugriff sortiert, aber die Datenbank enthält diese Informationen ebenfalls, sodass Sie alle benötigten Daten durchsuchen und dann in einer Schleife nach der zuletzt abgespielten Datei suchen können.

Ich habe gerade ein Bash-Skript geschrieben, um die zuletzt abgespielte Datei mit dem MIME-Typ „video/*“ zu finden und sie mit SMPlayer abzuspielen (Sie können aber natürlich jeden beliebigen Videoplayer verwenden).

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

Speichern Sie es in einer Datei, fügen Sie die Ausführungsberechtigung hinzu und es sollte funktionieren.

verwandte Informationen