Dumb Youtube lowest quality chooser

Auto select the lowest available quality of videos (more eco-friendly, and you can still manually select a higher resolution when needed)

目前为 2020-03-08 提交的版本。查看 最新版本

// ==UserScript==
// @name            Dumb Youtube lowest quality chooser
// @name:fr         Vidéos Youtube en basse minimale par défaut
// @version         1
// @description     Auto select the lowest available quality of videos (more eco-friendly, and you can still manually select a higher resolution when needed)
// @description:fr  Choisir automatiquement la qualité minimum pour la lecture des vidéos (plus eco-friendly, avec toujours la possibilité de choisir manuellement une meilleure qualité quand nécessaire)
// @author          Les noix de coco
// @include         http://youtube.com/*
// @include         https://youtube.com/*
// @include         http://www.youtube.com/*
// @include         https://www.youtube.com/*
// @include         http://gaming.youtube.com/*
// @include         https://gaming.youtube.com/*
// @noframes
// @grant           none
// @namespace https://gf.qytechs.cn/users/456082
// ==/UserScript==

(function() {

    "use strict"

    function sortNumber(a, b) {
      return a - b;
    }

    const DELAY = 1

    function setLowestQuality()
    {
      if (!window.location.href.match(/\?.*v=/)) {
        // Not a video
      	return
      }
      console.log('Will try to set video quality...')
      setTimeout(() => {
        const videoSettingsButtonEl = document.querySelector('.ytp-settings-button')
        if (!videoSettingsButtonEl) {
          return
        }
      	videoSettingsButtonEl.dispatchEvent(new Event('click'))

        setTimeout(() => {
          let found = false
          for (const el of document.querySelectorAll('.ytp-menuitem')) {
            if (el.textContent.match(/Qual|Calidad/)) {
              found = true
            	el.dispatchEvent(new Event('click'))
              break
            }
          }
          if (!found) {
            return
          }

          setTimeout(() => {
            const qualities = {}
            for (const el of document.querySelectorAll('.ytp-menuitem')) {
              const match = el.textContent.match(/(\d+)p/)
            	if (match) {
                const qualityNum = match[1]
              	qualities[qualityNum] = el
              }
            }
            //let qualitiesList = Object.keys(qualities).map(x => { return parseInt(x) })
            let qualitiesList = Object.keys(qualities).sort(sortNumber)
            console.log('Qualities (sorted):', qualitiesList)
            const quality = qualitiesList[0]
            console.log(`Setting lowest quality: ${quality}p`)
            qualities[quality].dispatchEvent(new Event('click'))
          }, DELAY)

        }, DELAY)

      }, DELAY)
    }

    window.addEventListener("yt-navigate-finish", setLowestQuality, true)

})();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址