YouTube | Stop Autoplay (2018)

Disabled automatic playback ("Autoplay") of YouTube videos.

当前为 2018-08-10 提交的版本,查看 最新版本

// ==UserScript==
// @name            YouTube | Stop Autoplay (2018)
// @namespace       de.sidneys.userscripts
// @homepage        https://gist.githubusercontent.com/sidneys/0a5bea36f989d445cdfbd776023a94ca/raw/
// @version         1.2.0
// @description     Disabled automatic playback ("Autoplay") of YouTube videos.
// @author          sidneys
// @icon            https://www.youtube.com/favicon.ico
// @include         http*://www.youtube.com/*
// @require         https://greasyfork.org/scripts/38888-greasemonkey-color-log/code/Greasemonkey%20%7C%20Color%20Log.js
// @run-at          document-end
// ==/UserScript==

/**
 * ESLint configuration
 * @external
 */
/* global DEBUG */

/**
 * @default
 * @constant
 */
DEBUG = false


/**
 * @default
 * @constant
 */
const urlPath = '/watch'


/**
 * Stop YouTube Video Player
 * @param {Element} element - YouTube Video Player
 */
let stopPlayback = () => {
    console.debug('stopPlayback')

    const player = document.querySelector('.html5-video-player')

    player.stopVideo()
    player.showControls()

    // Status
    console.info('Playback stopped.')

    // DEBUG
    console.debug('playerState', player.getPlayerState())
}


/**
 * Init
 */
let init = () => {
    console.info('init')

    // Check URL
    if (!window.location.pathname.startsWith(urlPath)) { return }

    stopPlayback()
}


/**
 * Immediately Invoked Function Expression
 */
(() => {
    init()

    /** @listens document:Event#DOMContentLoaded */
    document.addEventListener('DOMContentLoaded', () => {
        console.debug('document#DOMContentLoaded')

        init()
    })

    /** @listens window:Event#load */
    window.onload = () => {
        console.debug('window#load')

        init()
    }

    /** @listens window:Event#spfdone */
    window.addEventListener('spfdone', () => {
        console.debug('window#spfdone')

        init()
    })
})()