Programiranje

Userskripta za velicinu fonta u YouTube titlovima?

Chupo sri 14.12.2022 23:35

Par sati sam trazio userskriptu koja bi u YouTube videima automatski aktivirala opcije za zutu boju subtitlova i za velicinu fonta za subtitlove od 150% kao da su te opcije odabrane u user interface-u od YouTube player-a. Mislio sam da ce takvih skripti biti na desetke ali nisam naso nijednu.

 

Na greasyfork forumu mi je netko predlozio da iskoristim neku od extenzija za promjenu CSS-a - tako bi se mogla rijesiti promjena boje ali velicina fonta za subtitlove cak i ako se odabere opcija 150% jos uvijek ovisi o tome da li se video gleda u normalnom prozoru, u theatre mode-u ili u full screen-u.

 

Zna netko kako programski aktivirati opciju za promjenu velicine fonta za titlove kao da je ta opcija odabrana preko user interface-a od YouTube player-a?

 

Ne znam gdje se odabrane opcije spremaju ali ako se spremaju u cookies-e onda bi se mozda moglo sa skriptom samo rekreirati cookie u kojem je spremljena opcija koja je odabrana za velicinu fonta.

 

To mi treba da cak i ako YouTube otvorim u incognito prozoru ne moram opcije podesavati svaki put ponovo.

Chupo sub 17.12.2022 02:20

Prema onom sta pise u opisu nema tu mogucnost ali u medjuvremenu sam s Developer Tools gledao gdje se spremaju opcije koje se promijene preko user interface-a od YouTube player-a i vidim da se opcije za font spremaju u local storage:

 

Key: yt-player-caption-display-settings
{data: "{"fontSizeIncrement":1,"color":"#ff0"}", expiration: epoch_time, creation: epoch_time}

 

epoch_time je 13 znamenkasti broj, creation je vrijeme kreiranja a expiration je vrijeme kreiranja plus 30 dana.

 

Za font velicine 100% je fontSizeIncrement nula, za manje fontove parametar ide u minus a za vece u plus.

 

Da bi to radilo mora postojati i key yt-player-sticky-caption koji ima vrijednost "true".

 

Kad se ti parametri promijene s Developer Tools pa se napravi refresh sve radi kako treba.

 

Sad samo moram vidjeti kako je najlakse kreirati ta dva elementa u local storage pa mozda napravim Tampermonkey skriptu ili browser extenziju.

Chupo sub 17.12.2022 05:18

Ovo rjesava problem:

 

opcije = localStorage.getItem('yt-player-caption-display-settings');
if (opcije) {
    parametri = JSON.parse(opcije);
    parametri['data'] = '{"fontSizeIncrement":1,"color":"#ff0"}'
}
else {
    parametri = {};
    parametri["data"] = '{"fontSizeIncrement":1,"color":"#ff0"}';
    danas = Date.now();
    parametri["creation"] = danas;
    parametri["expiration"] = danas + 30*864e5;
}
localStorage.setItem('yt-player-caption-display-settings', JSON.stringify(parametri));