mirror of
https://github.com/th-ch/youtube-music.git
synced 2026-01-11 10:31:47 +00:00
Plugin Captions Selector - Add disable captions by default
This commit is contained in:
@ -91,6 +91,10 @@ const defaultConfig = {
|
|||||||
"saveSize": false,
|
"saveSize": false,
|
||||||
"hotkey": "P"
|
"hotkey": "P"
|
||||||
},
|
},
|
||||||
|
"captions-selector": {
|
||||||
|
enabled: false,
|
||||||
|
disableCaptions: false
|
||||||
|
}
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -1,25 +1,39 @@
|
|||||||
const { ElementFromFile, templatePath } = require("../utils");
|
const { ElementFromFile, templatePath } = require("../utils");
|
||||||
const { ipcRenderer } = require("electron");
|
const { ipcRenderer } = require("electron");
|
||||||
|
|
||||||
|
function $(selector) { return document.querySelector(selector); }
|
||||||
|
|
||||||
const captionsSettingsButton = ElementFromFile(
|
const captionsSettingsButton = ElementFromFile(
|
||||||
templatePath(__dirname, "captionsSettingsTemplate.html")
|
templatePath(__dirname, "captionsSettingsTemplate.html")
|
||||||
);
|
);
|
||||||
|
|
||||||
module.exports = () => {
|
module.exports = (options) => {
|
||||||
document.addEventListener('apiLoaded', setup, { once: true, passive: true });
|
document.addEventListener('apiLoaded', (event) => setup(event, options), { once: true, passive: true });
|
||||||
}
|
}
|
||||||
|
|
||||||
function setup(event) {
|
/**
|
||||||
|
* If captions are disabled by default,
|
||||||
|
* unload "captions" module when video changes.
|
||||||
|
*/
|
||||||
|
const videoChanged = (api, options) => {
|
||||||
|
if (options.disableCaptions) {
|
||||||
|
setTimeout(() => api.unloadModule("captions"), 100);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function setup(event, options) {
|
||||||
const api = event.detail;
|
const api = event.detail;
|
||||||
|
|
||||||
document.querySelector('.right-controls-buttons').append(captionsSettingsButton);
|
$("video").addEventListener("srcChanged", () => videoChanged(api, options));
|
||||||
|
|
||||||
|
$(".right-controls-buttons").append(captionsSettingsButton);
|
||||||
|
|
||||||
captionsSettingsButton.onclick = function chooseQuality() {
|
captionsSettingsButton.onclick = function chooseQuality() {
|
||||||
|
api.loadModule("captions");
|
||||||
|
|
||||||
const captionTrackList = api.getOption("captions", "tracklist");
|
const captionTrackList = api.getOption("captions", "tracklist");
|
||||||
|
|
||||||
if (captionTrackList?.length) {
|
if (captionTrackList?.length) {
|
||||||
api.pauseVideo();
|
|
||||||
|
|
||||||
const currentCaptionTrack = api.getOption("captions", "track");
|
const currentCaptionTrack = api.getOption("captions", "track");
|
||||||
const currentIndex = captionTrackList.indexOf(captionTrackList.find(track => track.languageCode === currentCaptionTrack.languageCode));
|
const currentIndex = captionTrackList.indexOf(captionTrackList.find(track => track.languageCode === currentCaptionTrack.languageCode));
|
||||||
|
|
||||||
|
|||||||
12
plugins/captions-selector/menu.js
Normal file
12
plugins/captions-selector/menu.js
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
const { setOptions } = require('../../config/plugins');
|
||||||
|
|
||||||
|
module.exports = (_win, options) => [
|
||||||
|
{
|
||||||
|
label: "No captions by default",
|
||||||
|
type: "checkbox",
|
||||||
|
checked: options.disabledCaptions,
|
||||||
|
click: (item) => {
|
||||||
|
setOptions("captions-selector", { disableCaptions: item.checked });
|
||||||
|
},
|
||||||
|
}
|
||||||
|
];
|
||||||
Reference in New Issue
Block a user