ビデオ プレーヤーを最後に中断したところから再開するにはどうすればよいでしょうか?

ビデオ プレーヤーを最後に中断したところから再開するにはどうすればよいでしょうか?

次のようなコマンドを使用して、ターミナル経由でビデオ プレーヤー (VLC、SMPlayer) を起動できるようにしたいと思います。resume_mediaすると、フォルダー内の最後に再生されたメディア ファイル (.mkv、mp4 など) が自動的に検出され、停止した場所から再生が再開されます。

どうすればこれを実現できるでしょうか?

答え1

システムで Zeitgeist デーモンが動作している場合は、~/.local/share/recently-used.xbel ファイルに役に立つ情報が保存されます。Zeitgeist はディスク上のファイルへのアクセスを監視するため、最近再生したビデオ ファイルを認識しているはずです。残念ながら、ファイルはファイル アクセスによってソートされませんが、データベースにはその情報も含まれているため、必要なすべてのデータを grep してから、ループで最近再生したファイルを検索できます。

私は、最近再生された「video/*」MIME タイプのファイルを検索し、SMPlayer を使用して再生する Bash スクリプトを作成しました (もちろん、任意のビデオ プレーヤーを使用できます)。

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

ファイルに保存し、実行権限を追加すれば動作するはずです。

関連情報