您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Запоминает позицию просмотра видео и возобновляет с этого места (минус 5 секунд)
当前为
- // ==UserScript==
- // @name YouTube Resume Playback
- // @namespace http://tampermonkey.net/
- // @version 1.0
- // @description Запоминает позицию просмотра видео и возобновляет с этого места (минус 5 секунд)
- // @author YourName
- // @match https://www.youtube.com/watch*
- // @grant none
- // @license MIT
- // ==/UserScript==
- (function() {
- 'use strict';
- // Функция для получения ID видео из URL
- function getVideoId() {
- const urlParams = new URLSearchParams(window.location.search);
- return urlParams.get('v');
- }
- // Функция для сохранения времени просмотра
- function saveVideoTime(videoId, currentTime) {
- localStorage.setItem(`yt_time_${videoId}`, currentTime.toString());
- }
- // Функция для загрузки сохраненного времени
- function loadVideoTime(videoId) {
- const savedTime = localStorage.getItem(`yt_time_${videoId}`);
- return savedTime ? parseFloat(savedTime) : 0;
- }
- // Основная функция
- function init() {
- const video = document.querySelector('video');
- if (!video) return;
- const videoId = getVideoId();
- if (!videoId) return;
- // Загружаем сохраненное время
- const savedTime = loadVideoTime(videoId);
- if (savedTime > 0) {
- // Устанавливаем время на 5 секунд раньше сохраненного
- const resumeTime = Math.max(0, savedTime - 5);
- video.currentTime = resumeTime;
- }
- // Сохраняем время каждые 5 секунд
- setInterval(() => {
- if (!video.paused) {
- saveVideoTime(videoId, video.currentTime);
- }
- }, 5000);
- // Сохраняем время при закрытии страницы
- window.addEventListener('beforeunload', () => {
- saveVideoTime(videoId, video.currentTime);
- });
- }
- // Ждем когда видео будет готово
- const checkVideo = setInterval(() => {
- if (document.querySelector('video')) {
- clearInterval(checkVideo);
- init();
- }
- }, 500);
- })();