您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
extension for saving and setting last progress in Youtube Videos
当前为
- // ==UserScript==
- // @license MIT
- // @name YoutubePlayBack
- // @namespace http://tampermonkey.net/
- // @version 1.1
- // @description extension for saving and setting last progress in Youtube Videos
- // @author Costin Alexandru Sandu
- // @match https://www.youtube.com/watch*
- // @icon https://www.google.com/s2/favicons?sz=64&domain=tampermonkey.net
- // @grant none
- // ==/UserScript==
- (function() {
- 'strict'
- var savedProgressAlreadySet = false
- function executeFnInPageContext (fn) {
- const fnStringified = fn.toString()
- return window.eval('('+fnStringified+')'+'()')
- }
- function getVideoCurrentTime () {
- const currentTime = executeFnInPageContext(() => {
- const player = document.querySelector('#movie_player')
- return player.getCurrentTime()
- })
- return currentTime
- }
- function getVideoId () {
- const id = executeFnInPageContext(() => {
- const player = document.querySelector('#movie_player')
- return player.getVideoData().video_id
- })
- return id
- }
- function playerExists () {
- const exists = executeFnInPageContext(() => {
- const player = document.querySelector('#movie_player')
- return Boolean(player)
- })
- return exists
- }
- function setVideoProgress (progress) {
- window.eval('var progress ='+ progress)
- executeFnInPageContext(() => {
- const player = document.querySelector('#movie_player')
- player.seekTo(window.progress)
- })
- window.eval('delete progress')
- }
- function saveVideoProgress() {
- const videoProgress = getVideoCurrentTime()
- const videoId = getVideoId()
- window.localStorage.setItem(videoId, videoProgress)
- }
- function getSavedVideoProgress() {
- const videoId = getVideoId()
- const savedVideoProgress = window.localStorage.getItem(videoId)
- return savedVideoProgress
- }
- function logError(message) {
- console.log('[YoutubeRememberLastTime] '+message)
- }
- function setSavedProgress () {
- const savedProgress = getSavedVideoProgress();
- setVideoProgress(savedProgress)
- savedProgressAlreadySet = true
- }
- function isReadyToSetSavedProgress () {
- return !savedProgressAlreadySet && playerExists() && getSavedVideoProgress()
- }
- function main() {
- if (isReadyToSetSavedProgress()) {
- setSavedProgress()
- }
- saveVideoProgress()
- }
- function initialize() {
- if (isReadyToSetSavedProgress()) {
- setSavedProgress()
- }
- setInterval(main, 1500)
- }
- initialize()
- })();