您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Periodically records the current playing time while you watch videos, so you don't lose track of where you were watching.
// ==UserScript== // @name Niconico position saver // @name:ja ニコニコ動画 再生位置保存 // @version 1.0.0 // @namespace http://www.agj.cl/ // @description Periodically records the current playing time while you watch videos, so you don't lose track of where you were watching. // @description:ja 定期的に保存されるため、再読み込みしても再生位置がリセットされません。 // @license Unlicense // @match *://*.nicovideo.jp/watch/* // @grant none // ==/UserScript== // Configuration const saveIntervalSeconds = 10; const previewSeconds = 5; // Utilities const onLoad = (cb) => /interactive|complete/.test(document.readyState) ? setTimeout(cb, 0) : document.addEventListener("DOMContentLoaded", cb, { once: true }); const getVideo = () => document.querySelector("#MainVideoPlayer video"); const getTimeToSave = (seconds) => Math.max(0, Math.floor(seconds - previewSeconds)); onLoad(() => { // Position saving let video; const saveTime = () => { if (!video || !video.document) { video = getVideo(); if (!video) return; video.addEventListener("seeked", saveTime); } const seconds = video.currentTime; const url = new URL(location); url.searchParams.set("from", getTimeToSave(seconds).toString()); history.replaceState(history.state, document.title, url.toString()); }; setInterval(saveTime, saveIntervalSeconds * 1000); });