Chromiumの現在のダウンロードがすべて完了したことを確認するコマンドライン方法はありますか?ダウンロードとは、Youtubeからビデオをダウンロードすることを意味します。進行中のダウンロードがあることを確認するために、Chromiumの[ダウンロード]タブだけを表示したくありません。ダウンロードが進行中であることを確認するために実行できるコマンドまたはファイルはありますか?
答え1
ダウンロードしているファイルのパスがわかっている場合(たとえば、ファイルをすべて1つのディレクトリに保存した場合など)、ファイルがまだ開いていることを確認できます。
lsof ~/Downloads
Chromeで作成が完了したら通知を受け取ることができます(家庭)。Linux:
inotifywait -e close_write ~/Downloads
保留中のダウンロード(または完了したダウンロード)のすべてを一覧表示するには、Chromeデータベースにアクセスするのが不器用です。 Chromeはデータベースをロックされたままにするため、データベースに直接アクセスできず(少なくともコマンドラインツールを使用せずsqlite3
)、ファイルのコピーを作成する必要があり、一貫性のないビューを取得する可能性が低くなります。完全に信頼できませんが、カジュアルに使用するのに十分です。
tmp=$(mktemp)
cp ~/.config/google-chrome/Default/Downloads "$tmp"
echo 'select target_path from downloads where end_time is null;' | sqlite3 "$tmp"
rm "$tmp"
最善の方法は、ダウンロードが完了したらChromeから通知を送信することです。拡大するアラートのダウンロードただし、副作用があり、コマンドラインで簡単に使用できるよりもデスクトップ通知を提供します。コードの重要な部分は次のとおりです。
chrome.downloads.onChanged.addListener(function(obj) {
if (obj.hasOwnProperty("state") && obj.state.current === "complete") {
chrome.downloads.search({id: did}, function(items) {
filename = items[0].filename;
…
}
}
});
…
外部の世界と通信する方法を書く必要があること(おそらく拡張ディレクトリのどこかにファイルを作成すること)は、Chrome拡張プログラムのプログラミングに関する私の知識を超えています。