YouTube Optimizer

Enhances your YouTube experience with optimized video playback, improved audio quality, and enhanced buffering for maximum performance and enjoyment.

目前為 2025-07-04 提交的版本,檢視 最新版本

// ==UserScript==
// @name         YouTube Optimizer
// @namespace    https://greasyfork.org/en/users/1116584-simeonleni
// @description  Enhances your YouTube experience with optimized video playback, improved audio quality, and enhanced buffering for maximum performance and enjoyment.
// @include      https://www.youtube.com/*
// @grant        none
// @run-at       document-end
// @version      2.0
// ==/UserScript==

// Configuration
const MAX_QUALITY = "hd2160"; // Maximum video quality to buffer (change as needed)

// Entry point
window.addEventListener("DOMContentLoaded", main);

function main() {
  const player = getPlayer();
  
  if (!player) {
    console.error("Player not found.");
    return;
  }

  // Check when the player is ready and set the quality
  player.addEventListener('onStateChange', function(event) {
    if (event.data === 1) { // Player is playing
      updateSettings(player);
    }
  });
}

function updateSettings(player) {
  try {
    if (!isPlayerAvailable(player)) {
      throw new Error("YouTube player not available.");
    }

    // Setting maximum quality
    const availableQualities = player.getAvailableQualityLevels();
    if (!availableQualities.includes(MAX_QUALITY)) {
      console.warn(`Desired quality '${MAX_QUALITY}' not available, setting to highest available.`);
      player.setPlaybackQuality(availableQualities[0]);
    } else {
      player.setPlaybackQuality(MAX_QUALITY);
    }

  } catch (error) {
    console.error("An error occurred:", error.message);
  }
}

function isPlayerAvailable(player) {
  return player && player.getAvailableQualityLevels && player.getPlaybackQuality;
}

function getPlayer() {
  const player = document.getElementById("movie_player");
  return player;
}