YouTube Optimizer

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

  1. // ==UserScript==
  2. // @name YouTube Optimizer
  3. // @namespace https://gf.qytechs.cn/en/users/1116584-simeonleni
  4. // @description Enhances your YouTube experience with optimized video playback, improved audio quality, bass boost, and enhanced buffering for maximum performance and enjoyment.
  5. // @include https://www.youtube.com/*
  6. // @grant none
  7. // @run-at document-end
  8. // @version 1.0
  9. // ==/UserScript==
  10.  
  11.  
  12. // Configuration
  13. const MAX_QUALITY = "2160p"; // Maximum video quality to buffer (change as needed)
  14. const BASS_BOOST_LEVEL = 3; // Bass boost level (adjust as needed)
  15.  
  16. // Entry point
  17. window.addEventListener("DOMContentLoaded", main);
  18.  
  19. function main() {
  20. const player = getPlayer();
  21. player.addEventListener("onStateChange", function (event) {
  22. if (event.data === 1) {
  23. updateSettings(player);
  24. }
  25. });
  26. }
  27.  
  28. function updateSettings(player) {
  29. try {
  30. if (!isPlayerAvailable(player)) {
  31. throw new Error("YouTube player not available.");
  32. }
  33.  
  34. const currentQuality = player.getPlaybackQuality();
  35. const currentAudioQuality = player.getPlaybackRate();
  36.  
  37. if (currentQuality !== MAX_QUALITY || currentAudioQuality === null) {
  38. const availableQualities = player.getAvailableQualityLevels();
  39. const targetQualityIndex = availableQualities.indexOf(MAX_QUALITY);
  40. if (targetQualityIndex !== -1) {
  41. const targetQuality = availableQualities[targetQualityIndex];
  42. player.setPlaybackQuality(targetQuality);
  43. } else {
  44. throw new Error(`Target quality '${MAX_QUALITY}' not available.`);
  45. }
  46. }
  47.  
  48. if (currentAudioQuality === null) {
  49. const availableAudioQualities = player.getAvailablePlaybackRates();
  50. const targetAudioQualityIndex = findBestAudioQualityIndex(availableAudioQualities);
  51. if (targetAudioQualityIndex !== -1) {
  52. const targetAudioQuality = availableAudioQualities[targetAudioQualityIndex];
  53. player.setPlaybackRate(targetAudioQuality);
  54. } else {
  55. throw new Error("No available audio qualities found.");
  56. }
  57. }
  58.  
  59. setBassBoost(player, BASS_BOOST_LEVEL);
  60. } catch (error) {
  61. console.error("An error occurred:", error.message);
  62. }
  63. }
  64.  
  65. function isPlayerAvailable(player) {
  66. return (
  67. player &&
  68. /https:\/\/www\.youtube\.com\/watch\?v=.*/.test(window.location.href) &&
  69. document.getElementById("live-chat-iframe") === null
  70. );
  71. }
  72.  
  73. function findBestAudioQualityIndex(availableAudioQualities) {
  74. // Find the index of the highest available audio quality
  75. let maxQualityIndex = -1;
  76. let maxQuality = -Infinity;
  77. availableAudioQualities.forEach((quality, index) => {
  78. const qualityNumber = Number(quality);
  79. if (!isNaN(qualityNumber) && qualityNumber > maxQuality) {
  80. maxQuality = qualityNumber;
  81. maxQualityIndex = index;
  82. }
  83. });
  84. return maxQualityIndex;
  85. }
  86.  
  87. function setBassBoost(player, level) {
  88. const bassBoostEffect = {
  89. name: "bassBoost",
  90. parameters: {
  91. gain: level,
  92. },
  93. };
  94. player.applyFilter(bassBoostEffect);
  95. }
  96.  
  97. function getPlayer() {
  98. const player = document.getElementById("movie_player");
  99. if (!player) {
  100. throw new Error("YouTube player not found.");
  101. }
  102. return player;
  103. }

QingJ © 2025

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