您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Updates the url so that it contains "?t={time}" corresponding to video.currentTime. Sometimes Youtube opens a video with a t parameter, but it doesn't get updated and when you refresh you go back to that time instead of where you left off.
当前为
- // ==UserScript==
- // @name Youtube Resumer
- // @description Updates the url so that it contains "?t={time}" corresponding to video.currentTime. Sometimes Youtube opens a video with a t parameter, but it doesn't get updated and when you refresh you go back to that time instead of where you left off.
- // @version 3
- // @match https://www.youtube.com/*
- // @grant none
- // @namespace https://greasyfork.org/users/206408
- // ==/UserScript==
- (async () => {
- function l(...args){
- console.log(`[Youtube Resumer]`, ...args)
- }
- function tryListen(){
- const video = document.querySelector('video');
- if(video){
- l('listening', video)
- listening = true
- video.addEventListener('timeupdate', (event) => {
- const time = parseInt(video.currentTime)
- if(time > 0) { //avoid having ?t=0
- const url = new URL(window.location.href)
- url.searchParams.set('t', time)
- window.history.replaceState(null, null, url);
- }
- })
- }
- }
- let listening = false //the video element exists even if you go back to the home page, so no need to readd event listeners
- //Event for each page change
- document.addEventListener("yt-navigate-finish", function() {
- l('navigate-finish')
- if(!listening) tryListen()
- });
- })();