Μετακινήστε τα Ελληνικά στην κορυφή της λίστας Αυτόματης Μετάφρασης στο YouTube

based on "Move Preferred YouTube Subtitle Auto-translate Language Options To Top" by jcunews, preconfigured for Greek.

当前为 2025-10-12 提交的版本,查看 最新版本

您需要先安装一个扩展,例如 篡改猴Greasemonkey暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴Userscripts ,之后才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。

您需要先安装用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         Μετακινήστε τα Ελληνικά στην κορυφή της λίστας Αυτόματης Μετάφρασης στο YouTube
// @namespace    https://greasyfork.org/en/users/371031-geonetor
// @version      1.0
// @license      AGPLv3
// @author       geonetor
// @description  based on "Move Preferred YouTube Subtitle Auto-translate Language Options To Top" by jcunews, preconfigured for Greek.
// @match        https://www.youtube.com/*
// @grant        none
// ==/UserScript==

(() => {

  //*** CONFIGURATION BEGIN ***

  //One or more menu titles for "Auto-translate". If YouTube language is not English (US), title must be specified according to current YouTube language.
  //For English (US) language, the menu title is "Auto-translate". So, if the language is French, the title must be "Traduire automatiquement".
  //Multiple titles can be specified as e.g.: ["Auto-translate", "Traduire automatiquement"]
  let menuTitle    = "Αυτόματη μετάφραση";

  //One or more auto-translate language(s) to keep. Language names must also be specified according to current YouTube language.
  //For English (US) language, the language name for French is "French". But if the language is French, the language name for French must be "Français".
  //Multiple languages can be specified as e.g.: ["English", "French"]
  let keepLanguage = ["Ελληνικά"];

  //Also remove non preffered languages from the list, aside from moving the preferred languages to the top.
  let removeOtherLanguages = false;

  //*** CONFIGURATION END ***

  (function waitPlayerSettingsMenu(a) {
    if (a = document.querySelector(".ytp-settings-menu")) {
      (new MutationObserver(recs => {
        recs.forEach(rec => {
          rec.addedNodes.forEach((nd, a) => {
            if (nd.querySelector && (a = nd.querySelector(".ytp-panel-title")) && menuTitle.includes(a.textContent)) {
              a = 0;
              nd.querySelectorAll(".ytp-menuitem:not([aria-checked])>.ytp-menuitem-label").forEach(l => {
                if (keepLanguage.includes(l.textContent)) {
                  (l = l.parentNode).parentNode.insertBefore(l, l.parentNode.children[a++]);
                } else if (removeOtherLanguages) l.parentNode.remove();
              });
            }
          });
        });
      })).observe(a, {childList: true});
    } else setTimeout(waitPlayerSettingsMenu, 100);
  })();
})();